Přehled vývoje infrastruktury pro diskless Debian na katedře DCE
Debian zaváděný po síti se začal používat na katedře DCE při výuce předmětu počítačové systémy od zimního semestru 2005. Potřebnou infrastrukturu (DHCP, TFTP a NFS) zajišťoval tehdejší správce Zdeněk Šebek. Používal tehdy pro ten účel open source variantu linuxové distribuce Red Hat (dnes Fedora) a upravenou verzi zavaděče GRUB, která v sobě měla integrovaný ovladač síťové karty, což umožňovalo zavést bezdiskový linuxový systém klientské stanice po síti.
Na klientských stanicích byl vyhrazen jeden diskový oddíl pro zavaděč GRUB v. 0.97 a druhý pro swap. Na ostatních diskových oddílech pak byly různé instalace MS Windows XP.
GRUB umožňoval kromě zaváděí bezdiskového linuxu podle potřeby měnit u NTFS oddílů typ z NTFS (7) na Hidden NTFS (17) a obráceně, a tím spouštět podle potřeby různé verze MS Windows XP na jednom fyzickém stroji, aniž by mezi nimi docházelo ke kolizím.
Koncem roku 2006 Zdeněk Šebek z katedry odešel a na jeho místo byl přijat Lukáš Moc.
Disc overlay
Zásadním nedostatkem stávajícího řešení bylo, že bezdiskové klientské stanice musely mít v rámci NFS oddělené adresáře s konfigurací (/etc
) a adresáře do kterých bezdiskový systém klienta vyžadoval zápis (/var
).
Správu bezdiskového linuxu pro klientské stanice převzal Michal Sojka s Pavlem Píšou, kteří jej vyžívali při výuce.
Michal Sojka rozšířil původní GRUB o další ovladače a změnil bezdiskovou distribuci na Debian. Pavel Píša upravil původní koncept tak, aby klientské stanice nevyžadovaly extra adresáře na straně NFS serveru.
Docílil toho využitím unionfs (dnes používáme aufs, který z původního unionfs vyšel). Ten umožnil překrýt systémový adresář transparentní vrstvou, která umožňuje ukládat změny do jiného adresáře - kupř. na lokální disk. Z pohledu uživatele se pak takový překrytý adresář jeví jako kdyby byl normálně zapisovatelný, ale původních souborů se žádná změna nedotkne.
Tento koncept se nazývá overlay filesystem
Virtualizace diskless infrastruktury
S virtualizací se na katedře DCE začal na dvou identických strojích značky IBM Lukáš Moc, který nahradil Zdeňka Šebka, v průběhu r. 2007. Jako virtualizační prostředí byl vybrán Xen, který ve své době znamenal nejvýkonnější open source řešení. Na tyto stroje byl nainstalován SUSE LINUX 10.1
Stroj se jménem k335host pak sloužil výhradně potřebám diskless infrastruktury.
- Přes NFS propagoval systémové adresáře pro bezdiskový Debian a domovské adresáře studentů, a zároveň..
- hostil virtuální stroj k909, který klientským strojům v laboratořích K2 (laboratoř) a L909 (Strojovna) přiděloval přes DHCP IP adresy a nabízel ke stažení přes TFTP server linuxový kernel s ramdiskem pro diskless Debian.
Tato infrastruktura běžela až do konce letního semestru v r.2009.
Druhý, pojmenovaný dcehost, hostil virtuální stroje, které měly nahradit stávající fyzické stroje sloužící potřebám katedry.
Zavádění přes PXE
Stávající koncept diskless řešení se dal považovat vcelku za ustálený, ale další změnu, si vyžádal upgrade klientských stanic v laboratoři L909 (Strojovna).
Původní verze zavaděče GRUB 0.97 totiž vyžadovala pro bezdiskové zavádění linuxového systému zakompilovaný ovladač síťové karty. Vývoj této verze zavaděče však již byl tou dobou zastaven ve prospěch modernější verze GRUB2, která však měla koncept síťového zavádění navržen jinak a starší verze neměla pro novější typy síťových karet k dispozici potřebné ovladače.
GRUB2 místo zakompilovaných ovladačů využívá PXE, které je součástí všech moderních síťových karet. Na rozdíl od předchůdce nevyžadoval lokální instalaci na klientské stanici, protože jej bylo možné zavést po síti, ale jak se ukázalo, neuměl přes PXE zavést bezdiskový Debian. Nicméně výhody zavádění přes PXE byly natolik zřejmé, že nový správce diskless infrastruktury Aleš Kapica který problém řešil ve spolupráci s Pavlem Píšou, navrhnul kombinaci zavaděče PXELINUX v kombinaci se zaváděním lokálních systémů přes GRUB2.
Ke změnám došlo také na straně fyzického hostitele. Virtuály, které zajišťují služby pro katedru byly přesunuty do jiné virtualizační infrastruktury, takže bylo možné využít oba IBM stroje. Jeden jako hlavní virtualizační stroj a druhý pro zálohování a běh testovacího virtuálního bezdiskového stroje postel.
Stroje byly přeinstalovány na Debian. Stroj k335host změnil jméno na k909b a sesterský stroj dcehost na k909a. I nadále se k virtualizaci používal XEN, protože jejich procesory neměly podporu HW virtualizace, ale služby původního hostitelského stroje k335host a virtuálního stroje k909 byly sloučeny do nového virtuálu k2, postaveného rovněž na Debianu. Kromě publikování uživatelských adresářů přes NFS, DHCP a TFTP na něm byl spuštěn také licenční server pro potřeby laboratoří.
Takový byl stav do konce letního semestru r.2012. Tato koncepce bezdiskových linuxových stanic se osvědčila natolik, že ji Pavel Píša veřejně prezentoval v rámci akce InstallFest 2011
Diskless Debian v prostředí KVM
Poslední velká změna proběhla během prázdnin 2012. Touto změnou byl přesun diskless infrastruktury z virtuálního prostředí XEN do virtuálního prostředí KVM.
První pokus byl sice učiněn již o rok dříve, ale nakonec jsme se rozhodli migraci do virtualizačního prostředí KVM odložit. Výsledkem tohoto prvního pokusu je manuálová stránka KVM (konfigurace sítě).
Toto rozhodnutí se ukázalo zcela na místě, protože se postupem času ukázala použitá virtualizační infrastruktura pro KVM příliš zranitelná při administrátorské chybě. K takové chybě došlo v červenci 2012 a vedla k radikálnímu přehodnocení stávajícího konceptu.
Ve finálním řešení se mimo jiné odrazila i několikaletá veskrze pozitivní zkušenost s NFS a bezdiskovým Debianem, takže výsledkem je infrastruktura, která je schopna ustát i případnou administrátorskou chybu.
Postupem času u nás došlo ke specializaci strojů, takže z hlediska diskless Debianu došlo na stroji k2 opět k oddělení NFS serveru a licenčního serveru od zbylých služeb (DHCP a TFTP). Všechny virtualizované linuxové stroje běží jako bezdiskové - včetně k2 a jejich systémové "disky" poskytuje jeden a týž NFS server, který je z hlediska síťové komunikace zcela odříznutý od vnější sítě. Disk s daty virtuálních strojů se redundantně zrcadlí přes DRBD na záložní stroj, který je v případě potřeby schopen fungovat jako datový i virtualizační, a v pravidelných intervalech probíhá přes rsync zálohování na zcela oddělení diskové pole s Btrfs, kde má každý virtuální stroj samostatné subvolume, které se po každém odzálohování snapshotuje. Díky tomu lze kdykoliv v případě potřeby i zpětně dohledat změny na úrovni souborového systému.
Změna ověřování z NDS na LDAP
Do 10. února 2014 se uživatelé v laboratořích přihlašovali uživatelskými údaji Novellu.
pam_ldap.conf libnss-ldap.conf
GlusterFS
Od února 2015, v létě reálné nasazení. Použití blokových zařízení. Zdlouhavá resynchronizace.
Od listopadu 2016 nasazení NFS serveru Ganesha.
Přechod na distribuovaná bloková zařízení
V lednu 2016 přechod na Ceph (Sheepdog)
Export do duhových laboratoří
Disklessový sendvič – září 2016
Na další vývoj disklessové infrastruktury měly vliv tenze spojené s přetahováním katedry DCE na CIIRC – Český institut informatiky, robotiky a kybernetiky (anglicky Czech Institute of Informatics, Robotics and Cybernetics) vznikl jako součást ČVUT 1. července 2013 z iniciativy vedoucího katedry kybernetiky (DC - Department of Cybernetics) Vladimíra Maříka. Který chtěl vybudovat vlastní „pomník”, inspirovaný pravděpodobně roku 2012 vznikem UCEEBu, na který by přetáhnul z Fakulty elektrotechnické ekonomicky nejperspektivnější subjekty.
Lavírování katedry DCE vedlo k tomu, že se její správce disklessové infrastruktury Aleš Kapica, který nehodlal opustit historickou budovu ČVUT na Karlově náměstí, dohodnul na úvazku s novým vedoucím katedry kybernetiky Janem Kybicem, a implementoval do laboratoří DC stejnou infrastrukturu jako byla na DC.
Revoluční novinkou pro diskless bylo zavedení sendviče, který umožnil oddělit software, který byl součástí linuxové distribuce od software, který bylo nutné instalovat nestandardním způsobem. Velice brzy se však ukázalo, že lze tímto způsobem elegantně vyřešit i mnoho jiných, dříve jen s obtížemi řešitelných zadání.
Ověřování uživatelů vůči AD a LDAPu
Jedním z nich byl rozdílný způsob ověřování uživatelů na DCE a DC.
Na DCE se původně ověřovali uživatelé vůči Novellu, tak aby měli shodné přihlašovací heslo. Jenže Novell byl zastaralý a hledalo se jiné řešení. A volba padla na MS AD, které provozuje VIC. Tím pádem se otevřela do budoucna cesta ke sjednocení uživatelských ID a jmen a jednotnému přihlašování do všech laboratorních systémů v rámci celého ČVUT.
Počítačové laboratoře na katedře DC však nepoužívaly MS Windows, ale linux který se již od roku 2011 ověřoval vůči vlastnímu LDAPu, který je z praktického hlediska mnohem výhodnější neboť uživatel musí zadat své hlavní heslo ČVUT jen při nastavení pracovního hesla.
- Není nutné si vymýšlet a pamatovat složitá hesla
Přesun uživatelských účtů na netapp
Únor 2017
Využití disklessu k distribuci lokálních instalací MS Windows
K distribuci lokálně instalovaných MS Windows se na DCE začal linuxový diskless využívat od února 2010.
Komprimovaný přenos dat po síti
Původně se používaly dva jednoduché skripty:
- Na zdroji se spouštěl
exportHDD.sh
, který data z exportovaného blokového zařízení (diskový odddíl, nebo celý disk) načítaná přesdd
, průběžně komprimoval pomocípigz
, a komprimovaný proud dál posílal přesnc
na vybraný port, odkud si ho pak "nasávala" cílová stanice.
- Na cílové stanici se spouštěl skript
importHDD.sh
. Ten navázal přesnc
spojení se zdrojem a poté začal přijímat komprimovaný proud dat, který nejprve dekomprimoval přespigz
a poté zapisoval pomocídd
na svoje lokální blokové zařízení. Během přenosu se dekomprimovaná data na cílové stanici proháněla ještě přespv
, aby bylo možné průběžně sledovat jaký je stav zpracování.
Byl to jednoduchý způsob, kterým se dal poměrně rychle 1:1 zkopírovat obsah disku z jednoho stroje na druhý.
U tohoto kopírování nezáleželo na typu diskového oddílu, ani jeho obsahu. Bylo tudíž možné takto kopírovat nejenom diskové oddíly formátované na NTFS, ale i ty na kterých byl linuxový souborový systém.
Háček byl v tom, že po překopírování bylo nutné pokaždé stroj nastartovat, přihlásit se, manuálně přejmenovat a restartovat, aby pak nedocházelo ke konfliktům na síti. Stroje se nekopírovaly najednou, ale postupně a to bylo dost zdlouhavé.
Přechodem na full-diskless se od září 2013 začal využívat lokální disk pracovních stanic v laboratořích výlučně pro MS Windows.
Využití ntfs-clone a hromadná distribuce dat přes UDP
Protože se nadále klonovala již pouze data z diskových oddílů formátovaných na NTFS, bylo možné místo původního dd
použít ntfs-clone
a původní skripty nahradily nové:
- Na zdroji se nově spouštěl skript
send-ntfs-img.sh
, který načítal přesntfs-clone
data z NTFS, získaný proud dat přespigz
zkomprimoval a pak přesudp-sender
nabízel k broadcastové distribuci. Významným zlepšením tedy bylo, že jeden komprimovaný proud dat mohlo současně přijímat několik stanic současně. - Na cílových stanicích, se přes
pssh
paralelně spouštěl skriptreceive-ntfs-img.sh
, který navázal spojení s "vysílačem", a po zahájení přenosu přijímaná data průběžně dekomprimoval a přesntfsclone
ládoval do cílového diskového oddílu, formátovaného rovněž na NTFS. - Po skončení přenosu tento skript naklonovaný diskový oddíl připojil na přípojný bod
/mnt
a do adresáře/mnt/windows/Windows/System32/GroupPolicy/Machine/Scripts/Startup
vložil upravený skriptrename.vbs
, který po restartu naklonovaný systém automaticky přejmenoval a zrestartoval – tím odpadla nutnost naklonované stroje obcházet a postupně přejmenovávat.
Bohužel s přechodem na Active Directory přestalo být tohle řešení dostačující, protože kvůli zadoménování bylo nutné naklonované stroje stejně postupně obejít.
ntfs-radio.sh
Od listopadu 2018