Virtlab:Virtuální spojovací pole
Z VirtlabWiki
← Starší verze | Novější verze →
Obsah |
OBSOLETE
Popis nové verze spojovače viz Virtuální spojovací pole verze 2.
Postup generování a upload konfigurací spojovacích prvků distribuovaného virtuálního spojovacího pole
Iniciuje Aktivacni server. V case nejblizsi rezervace (zjisti z DB nebo je informovan o nove rezervaci rezervacnim serverem pomoci TCP) spusti aktivacni skript podle polozky conf-activator v souboru act-server.conf (implicitne activator-script/activate.sh). Jako parametry se předává čas ukončení dané rezervace a odkaz na soubor s popisem požadované topologie. V nem se nejprve spusti skript generatoru konfiguraci pro spojovaci prvky (ten si po dobu sveho behu spusti VLANstore), nasledne skript pro generovani konfiguraci tunelovacich serveru vsech lokalit a nakonec se vsechny vygenerovane konfigurace pomoci uploadovaciho skriptu zaslou konfiguracnim serverum prislusnych lokalit, ktere je nahraji do zadanych spojovacich prvku. Z aktivačního skriptu se rovněž spouští skript pro výmaz konfigurací laboratorních prvků použitých v dané rezervaci (/opt/virtlab/act-server/erase-activator/activate-erase.sh)
Skripty generátoru konfigurací se spouští v domovském adresáři spojovače (/opt/virtlab/spojovac), skript uploaderu v adresáři aktivátoru konfigurací (/opt/virtlab/act-server/activator-script) a skript mazače konfigurací laboratorních prvků z /opt/virtlab/act-server/erase-activator. Konfigurace pro spojovací prvky se generují do /opt/virtlab/spojovac/workdir.
VLANstore dočasně zapůjčuje čísla VLAN z rozsahu přiděleného lokalitě (/etc/virtlab/vlanstore.conf, proměnné VLANS_FROM a VLANS_TO).
Komunikace probíhá pomocí named pipes:
- /opt/virtlab/vlanstore/npToVlanStore - žádosti o čísla VLAN (vždy s určením konce timeslotu rezervace)
- /opt/virtlab/vlanstore/npFromVlanStore - odpovědi, přidělená čísla VLAN.
Pozor, generátor make-conn-configs přepisuje novými výstupy případné konfigurace z předchozího běhu a také VLANstore se nesmí spustit současně vícekrát. Aktivační server musí tedy volání skriptu activate.sh serializovat (nesmí se spustit podruhé, než poprvé skončí). Musí se také zajistit sériovost provádění všech dalších skriptů spouštěných z activate.sh, resp. čekání na jejich dokončení, abychom věděli, že activate.sh skutečně dokončil veškerou práci, když skončil.
Serializace je v aktivačním serveru realizována pomocí globálního semaforu hlídajícího spouštění dětských procesů, z nichž se pak spouští aktivační skript. V serializaci je potenciální problém, protože aktivace se může zadrhnout i na dost dlouho (navazování spojení netcatem při uploadu konfigurace spojovacího prvku nebo mazání laboratorního prvku), možná i nekonečně, čímž by se aktivační server zablokoval. Proto se při volání aktivačního skriptu spustí nejprve další pomocný proces (wrapper), který hlídá maximální dobu běhu svého dítěte - procesu aktivačního skriptu (a z něj spuštěných mazacích a uploadovacích skriptů). V případě překročení pevně přednastaveného času celou větev procesů (označenou stejným Process Group) zabije a uvolní semafor.
Interakce komponent při aktivaci konfigurace
Při rezervování úlohy rezervační server přijme od řídícího serveru popis požadované topologie (a.k.a. "topologie.conf") přiřazený ke konkrétní rezervaci příkazem ATTACH. Dočasně si jej uloží v pomocném souboru <RESID>.dat, který rovnou přepošle aktivačními serveru a u sebe smaže. Aktivační server topologii ukládá do svého souboru <RESID>.dat.
Skript aktivátoru konfigurací spouštěný v době spuštění úlohy (začátku jejího timeslotu) aktivačním serverem se určuje v souboru /etc/virtlab/act-server.conf položkou conf-activator (implicitně /opt/virtlab/act-server/activator-script/activate.sh)
Soubor <RESID>.dat maže
- skript aktivátoru konfigurace po provedení aktivace
- při CANCEL rezervace aktivační server (rezervační příkaz CANCEL přepošle aktivačnímu).
Aktivačnímu skriptu activate.sh předává aktivační server tyto parametry:
- čas konce timeslotu rezervace (v jednotkách funkce time() ) - přeposílá se při žádosti o číslo VLAN na vlanstore.
- jméno souboru s rezervací (bez cesty - aktivační server vytváří ve svém current adresáři)