Portál AbcLinuxu, 1. května 2025 06:56
To je děs jak ten čas letí. Před rokem a půl jsem zde publikoval blogpost na téma - virtualizovaný cluster. Ten měl vzápětí následovat tento blogpost, ale protože koncem září je v našem prostředí nejvíc práce už nebyl čas na doladění důležité komponenty - virtuálního hostitele. Cílem blogpostu totiž je - nabídnout, všem co mají zájem - virtuální stroj, ve kterém by si mohli v izolovaném prostředí vyzkoušet jak se pracuje s Pacemakerem. Virtualizovaný cluster v prostředí virtuálního hostitele.
V minulém blogpostu jsem uvedl že si corosync a Pacemaker raději kompiluji sám. Jelikož nemám k dispozici zase tak moc volných fyzických strojů, chtěl jsem si již předloni udělat virtualizované testovací prostředí, ve kterém bych si mohl zkoušet zda všechno funguje jak má ještě před ostrým nasazením na produkční stroje.
První verzi takového virtuálního stroje jsem měl k dispozici již 13. září 2014, ale nestihnul jsem k němu dopsat tenhle blogpost a pak už nebyl na hraní čas.
Verze o které budu psát dále je udělána od základu znovu. Obsahuje aktuální Debian unstable s distribučním jádrem 4.5.0-1-amd64, a poměrně čerstvou kompilaci corosyncu 2.3.5 s pacemakerem verze 1.1.14.
Virtualizační hostitel je normální grafický desktop, a vše se dá průběžně aktualizovat, takže si nadále můžete jak hostitele, tak virtální nody udržovat sami.
To, v čem se obsah výchozího nodu liší od normální instalace přes debootstrap je především můj skript s duchaplným názvem virtual (což je ve skutečnosti symlink na bashový soubor /etc/virtual.sh
, který je určen pro práci s virtuálními nody.
Virtuální nody se vytváří jako snapshoty výchozího btrfs subvolume root-default, který obsahuje předinstalovaný mnou vytvořený binární balík crm
a předkonfigurovaný soubor corosync.conf
. I ten lze průběžně aktualizovat a případně před naklonováním virtuálních nodů doplnit o další softwarové balíky.
Po spuštění virtuálního hostitele máte dvě možnosti jak do něj přistupovat - buďto přes SSH (pokud si nastavíte při spuštění virtuálního hostitele forward portu 22, nebo přes grafickou konzoli. Použít můžete buď Spice, nebo VNC - jak je libo.
Ke spuštěným virtuálům pak můžete přistupovat obdobně - součástí instalace virtuálního hostitele je jak konzolový klient spicec, tak novější GTK+ klient spicy.
Založení virtuálního nodu je stupidně prosté:
root@pacemaker:~# virtual create a root@pacemaker:~# virtual start a a START
Můžete jich klidně založit i více najednou..
root@pacemaker:~# virtual create b c root@pacemaker:~# virtual start b c b START c START
Chcete-li vidět co se děje při nabíhání virtálního nodu (kupř. b
)můžete využít akci 'log'
root@pacemaker:~# virtual log b ...
Chcete-li zjistit jaké nody vlastně máte vytvořeny, použijte akci 'info' bez parametrů - ta vypíše výchozí nastavení proměnných a obsah souboru /opt/nodes
. Pokud přidáte jako parametr jméno vrtuálního nodu, tak se vypíše kromě portů, které bude využívat také informace o tom, kolik místa aktuálně zabírá příslušné subvolume.
root@pacemaker:~# virtual info a INFO b Order 2 MAC ba:bb:bc:bd:1b:5a Monitor 7002 Spice 7102 VNC 5902 ssh NAT 7202 Space occupied by b qgroupid rfer excl -------- ---- ---- 0/263 1.49GiB 3.69MiB
Pokud vás zajímá v jakém jsou virtuální nody aktuálně stavu můžete využít 'status'
root@pacemaker~# virtual status a b c a ON b ON c ON
Pokud z nich chcete vytvořit virtuální cluster, stačí se do nich postupně po spuštění přihlásit přes ssh a pak spustit..
root@pacemaker:~# ssh root@a root@a:~# /etc/init.d/corosync start Starting Corosync Cluster Engine (corosync): [ OK ] root@a:~# /etc/init.d/pacemaker start Starting Pacemaker Cluster Manager[ OK ] root@a:~# crm status Stack: corosync Current DC: a (version 1.1.14-pacemaker) - partition WITHOUT quorum Last updated: Tue Apr 19 12:07:39 2016 Last change: Tue Apr 19 09:31:04 2016 by hacluster via crmd on c 3 nodes and 0 resources configured Node b: UNCLEAN (offline) Node c: UNCLEAN (offline) Online: [ a ] Full list of resources:
Zastavení nodů je opět prosté:
root@pacemaker:~# virtual stop a b c ...
Nody budou postupně korektně vypnuty (využívá se sekvence sysrq příkazů).
Virtuální nody, které jsou spuštěné přes akci 'start' běží v rámci izolované sítě, která nemá vnější konektivitu. Pokud chcete aby měl virtuální nod přístup do vnější sítě, pak musí být spuštěn přes 'nat'. Pak ovšem neuvidí pro změnu na ostatní virtuální nody - pouze ven.
root@pacemaker:~# virtual nat a a START WITH NAT
Do takového stroje se pak lze přihlásit přes ssh na portu který najdete ve výpisu při akci 'info'
root@pacemaker:~# ssh localhost -p 7201
A pak je možné stroj dle libosti aktualizovat z repozitářů na vnější síti.
Je třeba mít na paměti, že se po svém založení stává každý z virtuálních nodů samostanou jednotkou. Tzn. že veškeré změny a úpravy konfigurace se v žádném jiném nodu neprojeví. Výjimkou je pouze výchozí virtuální nod default, který ani v jiném než NAT módu spustit nelze. Ovšem změny realizované v 'default' nodu se projeví pouze u nově založených nodů. Stačí stávající nody zrušit a pak založit znovu.
root@pacemaker:~# virtual stop a b c ... root@pacemaker:~# virtual delete a b c ... root@pacemaker:~# virtual create a b c ...
Pochopitelně se ale při zrušení ztratí veškeré změny a úpravy, které byly učiněny v rámci původních virtuálních nodů.
Takže pokud si to chcete vyzkoušet sami, napište mail a já vám pošlu link ze kterého si můžete stáhnout archiv, ve kterém je zapakovaný soubor pacemaker.qcow2 a soubor README, kde jsou nějaké poznámky k tomu jak to spustit, co a jak je v tom nainstalované a pochopitelně také přístupového hesla, které je stejné jak do hostitele, tak do virtuálních nodů.
Archiv, včetně opravných kódů pro par2 má 678MB, takže se to vleze i na CD. Po rozbalení má qcow2 soubor 2,6GB, ale může při použití nabobtnat až na max. velikost virtuálního disku (30GB) 8GB je vyhrazeno pro swapovací oddíl. Pro spuštění je nutný x86_64 procesor s podporou virtualizace a alespoň 1G vyhrazené paměti. Pochopitelně čím více paměti, tím lépe, protože pak nebude virtuál sahat na swap. Množstvím paměti je také limitován počet souběžně provozovatelných nodů - ve výchozím stavu mají nastaveno 1G virtuální RAM, ovšem sražené na provozní polovinu. Virtuály používají balloon, takže v případě potřeby jim lze za běhu paměť dofouknout.
Tím jsem skončil vy uličníci a žádám abyste se při mši svatý chovali slušně
Tiskni
Sdílej:
jehož jenže Původně měl pokračovat Jelikož se primárně věnují i řešil hromadu jiných věcí ...;)
šíří při tom své fantasmagorické nápady, bludy a lži?slovník: názory odlišné od názorů vašich.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.