Virtualizovaný cluster

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání
Zadání : Vytvořit virtualizované clusterové prostředí z bezdiskových linuxových systémů, které umožňuje testovat agenty pro Pacemaker.


Zadání vyžaduje:

  • Instalaci výchozího bezdiskového virtuálního stroje A, který se po vytvoření instaĺace Pacemakeru naklonuje jako stroje B, C, D a E
  • Stroje mají do vnější sítě přístup pouze za účelem aktualizace software pouze prostřednictvím stroje git, který vůči nim funguje jako výchozí brána (defaultní gateway)

Instalace stroje A

1.   Vytvořit subvolume v rámci souborového systému Btrfs na sdíleném DRBD úložišti, publikovaném přes NFS server

Poznámka
root@datastore~# btrfs subvolume create /srv/share/virtual_machines/temporary/A

2.   Do konfigurace souboru exports pro NFS server doplnit následující záznam

Poznámka
/srv/share/virtual_machines/temporary/A     10.0.0.112(rw,nohide,async,no_subtree_check,no_root_squash) \
                                            10.0.0.201(rw,nohide,async,no_subtree_check,no_root_squash)

3.   Připojit nasdílený adresář na stroji stroj s IP adresou 10.0.0.112 ...

Poznámka
root@stroj~# mkdir -p /path_to_mountpoint/A
root@stroj~# mount 10.0.0.3:/srv/share/virtual_machines/temporary/A /path_to_mountpoint/A
...a pomocí příkazu deboostrap do něj provést výchozí instalaci
Poznámka
root@stroj~# cd /path_to_mountpoint/A
root@stroj:/path_to_mountpoint/A# debootstrap --verbose \
	--keyring=/usr/share/keyrings/debian-archive-keyring.gpg \
	--include=debian-keyring,etckeeper \
	--arch=amd64 \
	jessie \
	./ \
	http://ftp.cz.debian.org/debian
 ...
root@stroj:/path_to_mountpoint/A#

4.   Přihlásit se přes chroot

Poznámka
root@stroj:~# chroot /path_to_mountpoint/A
root@stroj:~/#
4.1   aktualizovat systém
Poznámka
root@stroj:~/# apt-get update && apt-get dist-upgrade
...
root@stroj:~/# apt-get install linux-image... 
...
4.2   doinstalovat linuxový kernel
Poznámka
root@stroj:~/# apt-get install linux-image... 
...
4.3   nastavit heslo
Poznámka
root@stroj:~/# setpwd
...
4.4   nastavit hostname

5.   Nastavení pro Pacemaker

5.1   Vytvoření nového zdroje A v konfiguraci Pacemakeru
Poznámka
primitive A ocf:dce:kvm \
        params workdir="/root" binfile=qemu-system-x86_64
                ifup="/etc/openvswitch/ovs-ifup" ifdown="/etc/openvswitch/ovs-ifdown" 
                cpu=kvm64 memory=1024 monitor="/tmp/7101.monitor" 
                kernel_vmlinuz="/mnt/A/vmlinuz-3.14-2-amd64" 
                kernel_initrd="/mnt/A/initrd.img-3.14-2-amd64" 
                kernel_append="'root=/dev/nfs boot=nfs ip=10.0.0.201:10.0.0.3:10.0.0.255:255.255.255.0:A:eth0 nfsroot=10.0.0.3:/srv/share/virtual_machines/temporary/A,v3,nolock,rsize=32768,wsize=32768,tcp,rw debug'" 
                nic="be:be:be:00:71:01,virtio,tap,interni" serial="file:/var/log/A.serial" 
                logfile="/var/log/A.log" pidfile="/var/run/kvm_A.pid" 
                spice="port=7101,password=testovaci" errlogfile="/var/log/A.err" \
        meta target-role=Started is-managed=true \
        op monitor interval=20 \
        op start interval=0 timeout=30 \
        op stop interval=0 timeout=30
location pin-A A \
        rule $id="pin-A-rule" inf: #uname eq lucy or #uname eq patty
5.1   Spuštění zdroje A
Poznámka
root@peanuts~# crm resource start A

6   Připojení přes spice klienta

Poznámka
user@stroj~# spicec -h 147.32.87.215 -p 7101 -w testovaci

Konektivita do vnější sítě

Strojům virtualizovaného clusteru si stahují instalační balíčky prostřednictvím stroje git, který vůči nim zároveň funguje jako Puppetmaster.

A
eth0 IPv4 10.0.0.201
git
eth0 IPv4 10.0.0.101
eth1 IPv4 147.32.87.31

Na stroji git...

Na stroji git, který bude vůči stroji A vystupovat jako výchozí brána (default gateway) musí být nastaveno pravidlo do iptables pro směrování paketů přicházejících ze stroje A ( z rozhraní eth0 ) na jeho vnější rozhraní

git (PUPPET) :~# iptables -t nat -A POSTROUTING --source 10.0.0.201/32 -o eth1 -j SNAT --to 147.32.87.31

Aby však stroj git pravidlo akceptoval, musí být přes sysctl aktivován NAT protokolu IPv4

git (PUPPET) :~# sysctl net.ipv4.ip_forward=1

Na stroji A...

U stroje A pak musí být IPv4 adresa interního rozhraní stroje git nastavena jako výchozí brána ( default gateway ).

root@A :~# route add default gw 10.0.0.101

Klonování stroje A

Snapshoty.. a proč zrovna.