Přehled vývoje infrastruktury pro diskless Debian na katedře DCE

From DCEwiki
Jump to navigation Jump to search

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) vytvořil tehdejší správce Zdeněk Šebek na základě open source variantě linuxové distribuce Red Hat (dnes Fedora) s upravenou verzí zavaděče GRUB.

Zavaděč, GRUB verze 0.97, byl nainstalován na lokálním blokovém zařízení každé klientské stanice, kde měl pro sebe vyhrazen svůj samostatný diskový oddíl. Kromě toho byl pro linux vyhrazen ještě jeden diskový oddíl pro swap. Na ostatních diskových oddílech pak byly různé instalace MS Windows XP.

Úprava zavaděče spočívala v tom, že měl zakompilovaný ovladač síťové karty, což umožnilo zavádět bezdiskový linuxový systém klientské stanice po síti. Kromě toho umožňoval zavaděč podle potřeby měnit typ NTFS oddílů z „NTFS” (7) na „Hidden NTFS” (17), takže bylo možné provozovat na jednom fyzickém stroji několik různých verzí lokálně instalovaných MS Windows XP, aniž by mezi nimi docházelo ke kolizím.

Po Zdeňku Šebkovi, který koncem roku 2006 z katedry odešel, dostal na starost laboratorní infrastrukturu Lukáš Moc.

Disc overlay

Zásadním nedostatkem stávajícího řešení bylo, že každá bezdisková klientská stanice musela mít na serveru svůj vlastní adresáře publikovaný přes NFS, který se mountoval na /etc, ve kterém měla specifické konfigurační nastavení, a kromě toho ještě jeden adresář, mountovaný na /var, do kterého mohl bezdiskový systém klientské pracovní stanice zapisovat.

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 původní distribuci vycházející z Red Hatu nahradil Debianem. A 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[1] to umožnilo překrýt systémový adresář transparentní vrstvou, jejíž změny bylo možné ukládat jinam. Z pohledu uživatele se překrytý souborový systém publikovaný přes NFS v režimu jen pro čtení jeví jako kdyby byl normálně zapisovatelný, ale i kdyby byl, původních souborů se žádná změna nedotkne. Proto se tento koncept nazývá overlay filesystem – překrytý souborový systém.

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

Xen vyžadoval podporu paravirtualizace v jádře hosta i hostitele. Protože šlo o virtualizační řešení, jehož vývoj neprobíhal v rámci hlavní větve linuxového jádra, bylo třeba u většiny distribucí aplikovat na zdrojové kódy linuxového jádra poměrně rozsáhlý patch. To nebylo nutné u distribuce SUSE LINUX 10.1, která měla upravené jádro a potřebné nástroje k jeho administraci dispozici již v podobě binárních balíčků.


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.

2008.svg

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

2011.svg

Diskless Debian v prostředí KVM – srpen 2012

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ří

2016.svg

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.[2]

Chtěl mimo jiné přetáhnout i celou katedru DCE, a dlouhobé lavírování vedlo k tomu, že Aleš Kapica, správce disklessové infrastruktury, který nehodlal opustit historickou budovu ČVUT na Karlově náměstí, se dohodnul s novým vedoucím katedry kybernetiky Janem Kybicem – který nahradil Vladimíra Maříka, že začne v rámci částečného úvazku spravovat laboratoře DC, kde nasadil stejnou disklessovou infrastrukturu jako byla na DCE.

Sendvič – recept na rozdílné ověřování uživatelů vůči MS AD a lokálnímu LDAPu

Laboratorní systémy DC a DCE mohly být téměř shodné, ale na DC se používal jiný způsob ověřování uživatelů než na DCE.

Jak už bylo zmíněno výše, na DCE se původně ověřovali uživatelé vůči Novellu, jenže v roce 2014 šla firma Novell definitivně do kopru, takže bylo nutné najít jiné řešení.

Počítačové laboratoře na katedře DC nikdy nepoužívaly lokálně instalované MS Windows, pouze Linux, který se již od roku 2011 ověřoval vůči vlastnímu LDAPu. Řešení, které zvolili na DC je z praktického hlediska mnohem výhodnější neboť uživatel musí použít tzv. hlavní heslo ČVUT jen pro nastavení pracovního hesla. Takže…

  • Není nutné vymýšlet a pamatovat složitá hesla
  • Je menší riziko, že uživatel omylem napíše své hlavní heslo jinam než by měl
  • A pokud své pracovní heslo zapomene, nemusí za nikým chodit, aby mu heslo pro přístup do laborek nastavil

Jenže na DCE bylo potřeba ověřovat také přihlášení do lokálně instalovaného systému MS Windows. Proto padla nakonec volba na MS AD, které provozuje VIC – tím se otevřela do budoucna cesta ke sjednocení uživatelských jmen, ID, i jednotnému přihlašování do všech laboratorních systémů v rámci celého ČVUT.

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í.

V prosinci 2016 bylo definitivně rozhodnuto, že katedra DCE na CIIRC nepůjde a zůstane na Karlově náměstí. Odchod nespokojenců uklidnil zjitřené vášně a Martin Samek z katedry DCE, dostal nabídku, aby se stal novým vedoucím SVTI, což do budoucna otevřelo cestu k posílení vzájemné spolupráce v oblasti IT nejenom mezi katedrami na Karlově náměstí ale v rámci celé FEL ČVUT.


Přesun uživatelských účtů na netapp – únor 2017

Sjednocení laboratorních systémů DC a DCE umožnilo také budoucí sjednocení uživatelských účtů v rámci centrálního sdíleného úložiště. Prvním krokem k tomu bylo využití sdíleného prostoru v rámci NETappu, se kterým přes NFSv3 komunikuje pouze jediný stroj, který se nikam neověřuje, protože je součástí diskless infrastruktury.

Laboratorní stroje v rámci disklessové infrastruktury s ním komunikují pouze jednostranně prostřednictvím SSH, přes které odesílají po úspěšném ověření uživatele informace nezbytné pro založení uživatelského profilu – ID a username.

Nikde nefigurují žádná hesla. Stroje se ověřují klíčem lokálního roota a komunikaci „na druhé straně” odchytává skript, který nespouští žádný shell.

V případě, že komunikace selže, se stane maximálně to, že se ověřenému uživateli nenamountuje domovský adresář sdílený přes NFS. Což znamená, že se mu vytvoří nový profil v RAM, kde nebude mít žádná data.

Využití disklessu pro práci s lokální instalací MS Windows

Pro distribuci lokálně instalovaných MS Windows se v rámci laboratoří DCE začal linuxový disklessový systém využívat od února 2010.

únor 2010 – jednoduché klonovací skripty exportHDD.sh a importHDD.sh
listopad 2018 – ntfs-radio.sh

Dynamický ramdisk a laboratorní diskless provozovaný přes Wi-Fi – září 2019

2019.svg

Vzdálený přístup do laboratoří – březen 2020

Přizpůsobit linuxovou laboratorní infrastrukturu ke vzdálené práci, bylo plánováno na letní mezidobí roku 2020, ale realizaci výrazně urychlila situace vyvolaná obavami z šíření viru covid-19 v České republice.

Od samého počátku roku zpravodajská média ve zvýšené míře publikovala zprávy, které znepokojovaly širokou veřejnost a probouzely obavy z šíření viru covid-19. Nebyla to první co se pokoušely Neúměrně zvýšená pozornost vedla k tomu, že již 2. března 2020 – den poté co byla v ČR potvrzena první nákaza tímto virem – byla proděkanem FEL ČVUT Jiřím Jakovenkem přijata první opatření, která se týkala původně jen těch, co se vraceli z rizikových zemí.

Všeobecná hysterie opanovala celou ČR, jejíž vláda, pod taktovkou Andreje Babiše, rozhodla 10. března o uzavření škol a následně vyhlásila nouzový stav (12.3.2020), který jí umožnil zavést řadu omezení. To vše v situaci, kdy v celé ČR nebyla ani stovka nakažených – první nákaza tímto virem byla potvrzena 1. března 2020. A k prvnímu úmrtí, které mělo být způsobené tímto virem, došlo až 18.3.2020 – šlo o 95 letého muže, s chronickými srdečními problémy.

Výuka na ČVUT byla oficiálně přerušena 22.3.2020 ale laboratorní infrastruktura byla připravena ke vzdálené výuce již od 18.3.2020, protože jsem využil situace, která nastala počátkem března, k tomu, abych dal do pořádku laboratorní stroje, umožnil jejich „probouzení” po síti a přizpůsobil disklessový linuxový systém takovým způsobem, aby bylo možné na laboratorních strojích pracovat vzdáleně. Byly to dlouhodobě plánované úpravy, které měly být realizované v létě 2020.

Na katedře DC tak bylo připraveno 74 laboratorních strojů a na katedře DCE 21.

2021.svg

Obnova prezenční výuky v říjnu 2021

Jelikož nebylo do poslední chvíle jasné, zda bude či nebude obnovena prezenční výuka, nebylo možné (tak jako dřív) provést v období od poloviny srpna do října pravidelnou údržbu. Že budou změny nutné, ukázaly již první týdny prezenční výuky.

Výrazně se zvýšil počet studentských notebooků
Studenti totiž začali ve zvýšené míře využívat při výuce vlastní notebooky. Obzvláště v laboratořích E230 a E132 kde byl již před kovidem nedostatek zásuvek to bylo tragické, protože studenti vytahovali zástrčky strojů a monitorů aby si mohli dobíjet své notebooky, ale jen málokterý vše po skončení výuky uvedl do původního stavu.
Souběžné využití strojů ke vzdálené i prezenční práci bylo problematické
Mnozí si také zvykli na pohodlný vzdálený přístup a tak bylo pro ně velice nepříjemné, že další koexistence několika studentů při práci na jednom laboratorním počítači není možná. Fyzicky přítomný student totiž nemohl tušit, že na stejném stroji pracuje vzdáleně také jiný student.
Obzvláště kritická byla situace v laboratoři K23, katedry DCE, protože většina prezenční výuky probíhala v prostředí MS Windows, což vedlo pokaždí k „vybití” zásobníku dostupných strojů.
A zvýšený počet Wi-Fi zařízení odhalil také nedostatky původního řešení TurtleBotů
Zcela zásadním nedostatkem původního řešení byla závislost TurtleBota na stálé konektivitě. A když se na stejné AP připojily také „agresivní” studentské notebooky docházelo k jejich zatuhnutí a následně i kolapsu. AP totiž řešilo stav přetížení sítě tak, že násilně odpojilo všechny klienty. Jenže TurtleBotí připojení v ramdisku nehlídal žádný démon a tak, na rozdíl od studentských notebooků, zůstávaly „viset” ve stavu, který bylo možné vyřešit jen fyzickým vypínačem.

Bohužel na vyřešení všech uvedených problémů nebyl dostatek času, protože bylo nutné ze všeho nejdřív sjednotit uživatelské účty.

Sjednocení uživatelských účtů – léto 2022

Jak už bylo zmíněno, od roku 2017 jsou všechny uživatelské účty v jednom úložišti, ale až do léta 2022 byly uživatelské účty DC a DCE oddělené. Prioritní bylo sjednocení používaných systémů, což se víceméně podařilo vyřešit během koronavirové přestávky.

Sjednocení by bylo jednoduché, kdyby nebylo studentů a vyučujících pracujících jak na infrastruktuře DC, tak DCE. Jejich data bylo potřeba sjednotit a přesunout tak, aby o nic nepřišli. Jenže nebylo snadné rozhodnout, který uživatelský profil má vyšší prioritu.

Stav disklessové infrastruktury kateder DCE a DC po sjednocení.

2023.svg

Autonomní diskless – prosinec 2023

Koncept disklessu provozovaného přes Wi-Fi, využívajícího kešování na lokální blokového zařízení, tak čekal na přepracování od října 2021, kdy se v reálném nasazení zjistily nedostatky stávajícího řešení s využitím mcachefs, až do prosince 2023.

Bohužel interval mezi letním a zimním semestrem 2022 byl na realizaci změn příliš krátký. Jak už bylo zmíněno, bylo nutné prioritně vyřešit sjednocení systémových vrstev a následně sloučit uživatelské účty.

Během srpna až října 2023 prošla radikální změnou také disklessová infrastruktura, která se definitivně zbavila závislosti na externích službách.

Práce na vývoji tzv. autonomního disklessu tak mohla začít až v prosinci 2023.

Nejprve bylo nutné vytvořit obslužné skripty SQimage.sh, SQcrypt.sh a také ramdiskový skript crypto. V testovacím prostředí stroje lab-burget bylo ověřeno, že je řešení funkční ještě před koncem roku 2023.

Následně bylo potřeba řešení ověřit v praxi. Ukázalo se, že jde o řešení velmi dobré, ale objevil se jiný problém.

Projevoval se nespolehlivým nahozením TurtleBotí wifi. Potíž byla v tom, že zcela nahodile a u všech strojů. Změn, které na to mohly mít vliv, bylo více.[3] A tak až téměř po měsíci (26.2.2024) se podařilo zjistit, že je na vině chyba linuxového jádra verze 6.x – k testování nového řešení TurtleBotů se totiž využívala původní instalace na jádře verze 5.x

2024.svg
  1. Poté, co infrastrukturu převzal Aleš Kapica (2009) se místo unionfs začalo používat aufs a to od roku 2014 overlay, který byl začleněn do hlavního kódu linuxového jádra. Více viz Překrytí systémového disku - overlay filesystem
  2. Pro vybudování vlastního „pomníku”, byl inspirován pravděpodobně vznikem UCEEBu (2012). A protože chtěl vybudovat přední pracoviště v rámci celé ČVUT, usiloval o to, aby přetáhnul z Fakulty elektrotechnické ekonomicky nejperspektivnější subjekty.
  3. Byl aktualizován DHCP server a rozšířen o DDNS. Bylo vyměněno Wi-Fi AP za jiný typ. A byl také aktualizován stávající systém postavený na Debianu Bullseye na aktuální stable verzi Debian Bookworm, včetně veškerých aplikací.