Bezdiskový linux v laboratořích
Postup připojení hypotetické laboratoře KN:400
Přivedení konektivity ke strojům Peanuts
Nastavení nezbytná pro spuštění bezdiskového linuxu
Poté co je laboratoř KN:400 zapojená do VLAN 40, přivedené do trunkových portů switche kam jsou připojeny stroje Peanuts je třeba provést úpravy v..
- v modulech pro Puppet
- Základní konfigurace fyzických datových strojů Peanuts, které zajišťují sdílení systémových adresářů bezdiskových strojů přes NFS, je udržována prostřednictvím puppetovského agenta. Ten v pravidelných intervalech kontroluje stav manifestu na straně stroje master, a pokud dojde k nějaké změně, tak se sám automaticky postará o změnu konfigurace lokálního stroje.
Reakční dobu agenta lze zkrátit nastavením proměnné runinterval |
- v konfiguraci crm
- Stroje Peanuts mezi sebou komunikují přes corosync, nad kterým sedí démon crm, který na základě aktuálního stavu a nastavených pravidel spouští či zastavuje nakonfigurované zdroje. Takovým zdrojem je kupř. IP adresa, přes kterou bude NFS server komunikovat se stroji ve VLAN 40
Doplnění konfiguračního skriptu pro openvswitch
Veškerá síťová komunikace virtualizovaného prostředí a fyzických strojů v prostředí Peanuts probíhá přes virtuální switche.
Původně se v rámci Peanuts používalo VDE2, které má virtuální switche umístěné v userspace, ale s přechodem na nové stroje jsme přešli na openvswitch, který má virtuální switche umístěné přímo v linuxovém jádře. |
Základní konfiguraci pro virtuální switche udržuje openvswitch v lokální databázi. S tou lze oprativně pracovat prostřednictvím příkazové řádky. Aby však bylo možné v případě nutnosti rychle základní konfiguraci obnovit či aktualizovat, udržuje se na těchto strojích přes puppet agenta shellový skript /etc/openvswitch/openvswitch.sh
. Úpravy kódu tohoto skriptu se provádí v modulu 'network na straně stroje, který funguje jako puppet master.
I když by bylo možné udržovat pro stroje s identickou hardwarovou konfigurací pouze jeden výchozí skript, má každý stroj Peanuts svůj vlastní. Je to proto, aby bylo možné v případě nutosti nastavit i volby specifické pro konkrétní stroj. V tomto případě do to však znamená, že identickou úpravu je třeba provést ve zdrojovém skriptu všech strojů, ze kterých může potenciálně běžet NFS server |
Změny je možné provádět u příslušných strojů buď ihned na příkazové řádce, nebo dodatečně po ukončení změn a následné aktualizaci skriptu /etc/openvswitch/openvswitch.sh
agentem na straně datových strojů - jeho spuštěním.
Na straně kde je puppet master se provádí úpravy v souborech modulu network které mají příponu .openvswitch
Přidání VLAN do virtuálního switche main
Nejprve je třeba přidat VLAN 40, která vede do laboratoře KN-400 na portu, na port eth2 který přivádí trunk do virtuálního switche main.
-ovs-vsctl set port eth2 trunks=1,4,5,17,202,223,226
+ovs-vsctl set port eth2 trunks=1,4,5,17,40,202,223,226
|
Přidání portu pro NFS server
NFS server naslouchá přes virtuální síťové rozhraní nfs-k400 typu internal, které je vytvořeno nad virtuálním portem s vytaženou VLAN 40. Virtuální síťové rozhraní musí být typu internal, jinak by nebylo dostupné jako síťové zařízení, kterému lze nastavit IP adresu.
+ovs-vsctl --may-exist add-port main nfs-k400 tag=40 -- set Interface nfs-k328 type=internal
|
Úprava konfigurace pro Pacemaker
Stroje v hypotetické VLAN 40 komunikují na síťovém segmentu 192.168.40.x. Síťové rozhraní nfs-k400, přes které bude NFS server nabízet sdílené adresáře strojům v rámci této VLAN je vytvořeno na každém z datových strojů, ale IP adresu může mít nastavenou pouze na tom stroji na kterém NFS server aktuálně běží.
V rámci Peanuts je spuštění NFS serveru navázáno na spuštění skupiny tzv. "stěhovavých" IP adres s názvem ip. Tato skupina sdružuje zdroje, které mají pravidlem col-ip nařízeno běžet vždy pouze na jednom stroji. Pro síťové rozhraní nfs-k400 je tedy zapotřebí nejprve vytvořit nový zdroj k400-ip a ten pak přidat do skupiny ip a pravidla col-ip.
Pokud skupina ip zrovna běží, tak Pacemaker nakonfigurovanou adresu nahodí na aktuálním NFS serveru ihned po odeslání ověřené konfigurace.
Vytvoření zdroje k400-ip
crm(live)configure# primitive k400-ip ocf:heartbeat:IPaddr2 \
params ip="192.168.40.3" nic="nfs-k400" cidr_netmask="24" \
op monitor interval="10s"
|
Přidání k400-ip do skupiny ip
Přidání k400-ip do pravidla col-ip
-colocation col-ip inf: peanuts-ip k9-ip k2-ip public-ip k328-ip
+colocation col-ip inf: peanuts-ip k9-ip k2-ip public-ip k328-ip k400-ip
|
Ověření a uložení provedených změn
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# quit
|
Úprava konfigurace stroje k2
KVM
Pro obsluhu strojů virtualizovaných přes KVM využíváme vlastního agenta ocf::dce:kvm
distrubuovaného na virtualizační stroje prostřednictvím Puppetu.
Na rozdíl od jiných agentů, tento nepoužívá žádnou externí knihovnu, ale přímo sestavuje parametry příkazové řádku pro qemu.
Virtualizace v infrastruktuře Peanuts (Diskless)
Příprava virtuálního stroje pro bezdiskovou infrastrukturu je popsána v manuálu - Jak vytvořit bezdiskový stroj s operačním systémem GNU/Linux
- sdílený adresář s jádry a ramdisky
- nfs server a export adresářů
- závislosti na IP adresách
Virtualizace v infrastruktuře Schrot (GlusterFS)
Příprava virtuálního stroje pro infrastrukturu postavenou na GlusterFS je popsána v manuálu Jak nainstalovat virtualizovaný stroj na GlusterFS
- Podpora na straně qemu (patch pro záložní nod)
- Standardní qemu - virtuál může běžet pouze na stroji, který je zároveň nodem GlusterFS.
XEN
Pro obsluhu strojů virtualizovaných přes XEN se používá agent ocf::heartbeat:Xen, který je standardní součástí instalačního balíčku resource-agents
Úprava konfigurace na stroji k2
- Nastavení DHCP
- Vytvoření konfigurace pro přidělování adres v segmentu 192.168.40.x
- Konfigurace PXE
- Vytvoření konfiguračního souboru pro segment 192.168.40.x
Rozšíření konfigurace exportu NFS serveru
Úprava se opět dělá na stroji kde běží puppet master v modulu nfs