Virtualizovaný cluster
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)
Příprava stroje A
Vytvoření systémového disku sdíleného přes NFS
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
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
/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 ...
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
4. Přihlásit se přes chroot
root@stroj:~# chroot /path_to_mountpoint/A
root@stroj:~/#
|
4.1 aktualizovat systém
root@stroj:~/# apt-get update && apt-get dist-upgrade
...
root@stroj:~/# apt-get install linux-image...
...
|
4.2 doinstalovat linuxový kernel
root@stroj:~/# apt-get install linux-image...
...
|
4.3 nastavit heslo
root@stroj:~/# setpwd
...
|
4.4 nastavit hostname
Příprava stroje A na spuštění
5. Nastavení pro Pacemaker
5.1 Vytvoření nového zdroje A v konfiguraci Pacemakeru
Spuštění stroje A
5.1 Spuštění zdroje A
root@peanuts~# crm resource start A
|
6. Připojení přes spice klienta
user@stroj~# spicec -h 147.32.87.215 -p 7101 -w testovaci
|
Přístup do vnější sítě ze stroje A
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
|
Naklonování strojů B, C, D a E
Snapshoty.. a proč zrovna.
F
$ qemu-system-x86_64 -device qxl-vga,? 2>&1 | grep size qxl-vga.ram_size=uint32 qxl-vga.vram_size=uint32 qxl-vga.ram_size_mb=uint32 qxl-vga.vram_size_mb=uint32 qxl-vga.vram64_size_mb=uint32 $ qemu-system-x86_64 ... -vga qxl -global qxl-vga.ram_size_mb=256 -global qxl-vga.vram64_size_mb=512 ...
root@F:~# lspci ... 00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 04) ... root@F:~# lspci -v -s 00:02.0 00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 04) (prog-if 00 [VGA controller]) Subsystem: Red Hat, Inc QEMU Virtual Machine Physical Slot: 2 Flags: fast devsel, IRQ 10 Memory at e0000000 (32-bit, non-prefetchable) [size=256M] Memory at f0000000 (32-bit, non-prefetchable) [size=64M] Memory at f4020000 (32-bit, non-prefetchable) [size=8K] I/O ports at c000 [size=32] Memory at c0000000 (64-bit, prefetchable) [size=512M] Expansion ROM at f4000000 [disabled] [size=64K]