Umíte nainstalovat otevřený OS na váš server? Fajn. A jak se instaluje otevřený síťový systém na otevřený prvek? To si dnes ukážeme – v textu i v krátkém videu.
Start každého prvku
Prakticky každý prvek na trhu je vybaven nějakým zavaděčem. Ten je odpovědný za natažení síťového operačního systému, přeskočení do záložní verze OS, pokud je ta hlavní poškozená, dokáže vám pomoci obnovit prvek v případě, že přijdete o celý OS. Pokud to na vašem prvku jde, zkuste mu vymazat všechny soubory, přeformátovat flash nebo něco podobného (pokud vám to tedy umožní). Zavaděč vás může zachránit. U každého výrobce a někdy i v každé modelové řadě to bude trochu jiné. To je rozdíl mezi proprietárním a open source světem. Některé vlastnosti, které rozhodně nejsou nijak inovativní a nepřináší žádné přidané vlastnosti oproti různým výrobcům, jsou pořád znovu a znovu vyvíjeny a udržovány. Pokud chcete oddělit hardware a software a umožnit tak větší flexibilitu a paralelní vývoj, bude to chtít jednotný zavaděč.
ONIE – Open Network Install Environment
První boot
Open Network Install Environment je kombinace zavaděče s malým obslužným Linux OS, jejíž úkolem je zavádět a spravovat operační systémy v síťovém železe. Pokud spouštíte prvek poprvé, skočíte do ONIE GRUB, kde je výchozí volbou nastartování procesu instalace síťového OS. Pokud ale včas zasáhnete, můžete zvolit i další volby – instalaci, záchranu, odinstalaci či aktualizaci samotného ONIE. Součástí může být také nějaká diagnostická utilitka dodaná výrobcem.
Discovery
V dalším kroku se ONIE pokusí získat instalátor operačního systému – tedy samotné ONIE není odpovědné za instalaci a nediktuje tak designové možnosti (například OpenSwitch instalátor si svůj prostor uspořádá tak, že vytvoří dvě partition kvůli redundanci a v každé vytvoří file system s OpenSwitch OS, ale je to volba vývojářů OpenSwitch, ONIE to nijak nenařizuje). Nejjednodušší metoda je, že se ONIE koukne na USB klíč a hledá známý název souboru, typicky onie-installer. To je dobré pro demo, ale v praxi bude výhodnější použít řešení ze sítě. ONIE si vezme IP adresu z DHCP a používá metody jako jsou DHCP options, mDNS apod. k objevení HTTP (případně TFTP) serveru, z kterého si soubor stáhne. Současně při tomto požadavku zasílá v HTTP hlavičkách informace o zařízení (sériové číslo, výrobce apod.), takže HTTP server může (ale nemusí) činit nějaká další rozhodnutí jaký instalátor naservíruje.
Instalace
Jakmile ONIE má instalátor síťového OS, předá mu řízení. Další fáze je tedy na samotném OpenSwitch instalátoru. Ten ve svém prostoru vytvoří a naformátuje dvojici partition, každou s kopií operačního systému, a ještě jednu třetí, ve které drží některé sdílené stavy typu zda při příštím bootu má jít do primární či sekundární oblasti, jsou tam nějaké záchranné prostředky apod. K závěru ještě nahraje svůj vlastní GRUB, který pak můžete použít k přerušení bootování a zvolit třeba z kterého oddílu nabootovat nebo skočit zpět do ONIE servisního OS. Na konci procesu instalace se switch restartuje.
Druhý boot
Při dalším startu už ONIE boot loader ví, že je k dispozici síťový OS, takže pokud ho nepřerušíte, nebude už spouštět ONIE servisní Linux. Místo ONIE GRUB tak skáče rovnou do síťového OS. V případě OpenSwitch tento začíná svým vlastním GRUBem, kde si můžete zvolit, z které partition chcete nastartovat nebo skočit do ONIE apod.
Video: jak se instaluje OpenSwitch na HPE Altoline 5712
V tomto krátkém videu můžete všechno vidět na vlastní oči včetně komentáře.
Nemáte switch a chcete si ONIE vyzkoušet?
Existuje možnost mít ONIE běžící ve VM. Nejprve potřebujete iso image s instalací ONIE (tzv. onie rescue), z kterého nastartujete a nainstalujete ve VM. Pokud chcete hotový, dejte mi vědět, rád vám ho pošlu – jinak nezbude než si ho zkomplilovat ze zdrojáků (na kompilaci použijte Debian 8):
su apt-get update apt-get install build-essential git sudo visudo (add your user here) exit git clone https://github.com/opencomputeproject/onie cd onie/build-config/ make debian-prepare-build-host git config --global user.email "you@example.com" git config --global user.name "Your Name" export PATH="/sbin:/usr/sbin:$PATH" make -j4 MACHINE=kvm_x86_64 all recovery-iso ls ~/onie/build/images/ kvm_x86_64-r0.initrd kvm_x86_64-r0.vmlinuz onie-recovery-x86_64-kvm_x86_64-r0.iso onie-updater-x86_64-kvm_x86_64-r0
Pak stačí ve VirtualBox vytvořit novou VM, nabootovat z CD a jít na volbu Embedd ONIE. Pozor ale na jednu věc – switch automaticky směruje všechno do sériové konzole, ale VM nejprve píše na grafickou obrazovku (GRUB) a pak do sériové linky. Budete tak potřebovat oboje. VirtualBox vám umožní vytvořit virtuální sériovou linku v nové pipe, do které se pak připojíte třeba z Putty.