Jak jsem se na Silvestra učil virtualizovat

5. 7. 2012

Sdílet

 Autor: Redakce

Ačkoliv tu máme léto v plném proudu, rozhodl jsem se podělit s jednou silvestrovskou příhodou. Právě proběhlý víkend možná někteří z vás označují jako „Půlsilvestr“, takže tematicky to snad úplně mimo není.

Když se na začátku prosince 2010 rozebíraly termíny dovolené, zrovna jsem nebyl přítomen, a tak není divu, že se na mě nedostalo ­­– prostě mi bylo suše oznámeno, že budu držet službu. Přiznám se, že mi to až tak moc nevadilo.

Možná jsem jediný, kdo nemá potřebu sedět o Vánocích doma. Nervózní máma lítá po kuchyni, babičky se ptají na nepříjemné otázky, nikde ani chvilka klidu… děkuji, nechci. Samozřejmě jsem ale musel v práci trochu protestovat, nerad bych, aby se to stalo pravidlem.

 

Jak se blížily Vánoce, začala být v práci nuda. Většina zákazníků vyhlásila celozávodní dovolenou nebo přepnula do „standby“ režimu. Kancelářská křesla kolegů zela prázdnotou a já se nudil tak moc, že jsem málem začal dopisovat dokumentaci. Ble!

Šéf si toho asi všiml. Zastavil mě 23. 12. při přibližně patnácté cestě na cigáro a sdělil mi, že si mám vyplnit dovolenkový protokol na celý týden, že je prostě zbytečné, abych tam seděl. Při cigárku jsem si začal malovat, co za celý týden všechno stihnu udělat – hlavně si pořádně odpočinout.

Vrátil jsem se na dílnu, vytiskl si protokol a začal vyplňovat. Rychlým krokem jsem se přesouval do šéfovy kanceláře, nakonec jsem jej potkal na půl cesty, s telefonem u ucha. Tušil jsem průšvih. A taky že jo!

Vánoce, Nevánoce

Jak jsem jen o malou chvíli později zjistil, na druhé straně telefonu byl IT administrátor jednoho našeho zákazníka. Z šéfova: „hm, hm, ano, hm, ano, vyřídím, budeme tu čekat“ jsem jasně vytušil, že dovolená se minimálně pro dnešek ruší.

Na začátku jsem psal, že jsem o dovolenou vlastně až tak moc nestál, ale znáte to, člověk se nakonec, po nějaké náhlé změně, začne těšit na to, co má přijít, a když to nakonec nepřijde a vrátí se to k původnímu stavu, začne být pěkně nakrknutý.

Šéf mi přetlumočil v rychlosti problém – ve firmě A mají jakýsi server 2000, který před několika minutami sám od sebe vypnul a odmítá naběhnout. Konkrétně se zasekne na nějaké hlášce v BIOSu. Správce sítě není na místě, má dovolenou kdesi v Krkonoších a byl by hrozně rád, kdyby ji nemusel rušit. To já teď taky…

Z dalšího hovoru vyplynulo, že server je už na cestě k nám, někdo ze zaměstnanců jej vytrhnul z racku (!) a přiveze ho. Server má na starosti komunikaci s prodejnami po celé republice – do SQL databáze zapisuje informace o tržbách a skladových položkách. Začal jsem být trochu nervózní, ale pořád jsem si říkal, že zaseklý BIOS nebude vážný problém. Třeba pomůže lehká změna nastavení a za deset minut už budu sedět v autě směr domov.

Kdyby jen BIOS

Na úhledně uklizeném pracovním stole (ano, z nudy jsem nejen uklidil, dokonce jsem i srovnal šroubováky podle velikosti a roztřídil instalační média) jsem ani nemusel dělat místo. Po pár minutách se u příjmu objevil jakýsi človíček s očekávaným serverem. O závadě nevěděl vůbec nic, prý to jen přivezl a jede domů. Nechtěl ani deset minut počkat, kdyby se jednalo o prkotinu, spěchá domů.

Mašinu jsem zapojil a světe div se, normálně naběhla. Prostředí Windows server 2000 jsem do té doby nikdy neviděl, a byl jsem za to rád. Už už jsem se chystal volat adminovi, že mu to hodím zpátky, když jsem si řekl, že raději zkusím pár restartů. Napodruhé už se mi „dařilo“ mnohem lépe.

Server zůstal viset na hlášce teplotního čidla procesoru (CPU Temp warning), teplota údajně přes 100 °C. Zlehka jsem prstem zavadil o obrovský pasiv procesoru – rozhodně by se na něm čaj vařit nedal. Server jsem vypnul a začal rozebírat systém chlazení.

Obvykle tento problém vzniká špatným stykem plochy chladiče a procesoru, často způsobeným stržením závitu na šroubu nebo utrženou sponou. Obojí však bylo v pořádku. Dostal jsem se až k procesoru, provedl očištění a přepastování. Jednalo se o Xeon ze „slavné“ éry Pentia 4, konkrétní model si však už nevybavím.

Po chvilce trápení mi však bylo jasné, že systém chlazení je v pořádku a čidlo si takto vysokou teplotu prostě jen vymýšlí. Začal jsem své snažení stáčet směrem k nastavení BIOSu, třeba půjde čidlo alespoň nouzově vypnout. Nepůjde.

Teplotní čidlo umí někdy pěkně lhát

Základní deska sice BIOS měla, ale jednalo se spíše o parodii. Nastavení dohromady žádné, tedy pokud do toho nepočítáte i změnu data a času. Na tenhle neduh jsem zvyklý z levných notebooků, u serveru jsem to ale opravdu nečekal.

Deska byla dvouprocesorová, začal jsem koketovat s myšlenkou, že bych procesor jen přesunul do druhého socketu, čímž by se dalo deaktivovat čidlo. Nicméně v manuálu jasně psali, že deska v tomto osazení prostě nenaběhne. Nelhali.

V hlavě jsem začal vymýšlet, jak co nejjednodušeji (a nejlevněji) problém vyřešit, v tu chvíli mne ale vyrušilo vyzvánění telefonu. Volal mi administrátor, že to neuvěřitelně hoří a že server tam potřebuje do odpoledne mít. Když jsem mu vysvětlil problém, řekl mi, že to potřebuje prostě co nejdřív a že mám vzít klidně nějaký starý počítač a přesunout na něj systém, pak mám objednat nový server a až dorazí, přesuneme systém na něj.

P2P migrace není legrace

Pokud jste někdy přesouvali systém (typicky třeba po výměně základní desky, což je mimochodem v případě OEM licence nelegální), víte, že pokud se hardware výrazně liší, může to být taky sranda na několik dní.

Já migroval z dvouprocesorové desky ze serveru HP na bezejmennou základní desku s Pentiem 4. Do pěti odpoledne jsem se pokoušel naohýbat registry systému tak, aby bez větších problémů dokázal naběhnout do systému a spustit server MS SQL. Největší legrace byla s původními dvěma disky v RAID 1 na SCSI řadiči. Nakonec se však zadařilo, já nový skoroserver odvezl k zákazníkovi a úspěšně přidal do sítě. Ne úplně bez problému, ale úspěšně. Pokračování 26. 12. v pondělí, hned jak dojde nový server. Alespoň jsem věděl, že nejsem jediný idiot v práci, protože server musel někdo od dodavatele přivézt. Dovolenkový protokol jsem při odchodu z práce vyhodil do koše.

Nové železo, starý problém

Před odvozem počítače k zákazníkovi jsem si ještě naklonoval původní partition, abych měl z čeho pak obnovit systém na nové železo. Vzhledem k tomu, že zákazník fungoval na polorozpadlém hardware bez jakékoliv záruky, nechtěl jsem proces nijak zvlášť zdržovat. Navíc jsem pořád tiše doufal v rychlé vyřízení a nástup na dovolenou.

S administrátorem jsme se shodli na tom, že nemá smysl na novém železe zkoušet rozeběhnout Windows Server 2000. Hovor směřoval k jasnému cíli ­– Windows Server 2008 s Hyper-V rolí a virtualizovaný Windows Server 2000.

Snažil jsem se ještě chvilku tlačit na upgrade operačního systému, nicméně to nebylo možné. Dodavatel databázového systému držel podporu jen na systémy s konkrétní verzí MS SQL, která zase pro změnu neběžela na ničem jiném než na Windows 2000. Ocitl jsem se v začarovaném kruhu.

Dal jsem se tedy do instalace, konečně mě práce začala i trochu bavit. S virtualizací jsem tehdy měl jen malé zkušenosti, navíc jsem do té doby vždy instaloval do virtuálu pouze novější operační systémy, které jsou na to stavěné.

Hyper-V jsem rozeběhnul během hodinky, a to včetně nejnovějších záplat. Zbývalo naklopit oddíly do virtuálu. Ty jsem měl připravené ve formátu VHD, který se pro virtuální stroj přímo nabízel. To jsem ale ještě netušil, že právě v tuto chvíli jsem udělal kardinální blbost, která mě stála další tři dny života…

Nasypal jsem oddíly na virtuální disk, nejdřív se jim moc nechtělo, ale co nejde silou, to jde větší silou. Když mi poté „dvoulitry“ začaly padat na hubu, vůbec jsem se už nedivil. Modrá smrt s kódem, který jsem do té doby nikdy neviděl, to asi chvilku potrvá.

Potil jsem se s tím celý den, po práci jsem vzal nový server do auta, připojil ho doma a pokračoval v krasojízdě. Ve dvě hodiny ráno, kdy server byl ve stejném stavu, jako když jsem ho přivezl, s odvařenými mozkovými závity, jsem upadl do postele.

Předlouhé čtyři hodinky spánku (měl jsem v plánu víc, ale administrátor na horách si přivstal a to samé asi očekával ode mě) mi na atraktivitě nepřidaly. Server jsem čapl do teplých a odnesl ho zpět do auta. Poté jsem si dal rychlokurz škrábání, protože celou noc pršelo, ale zároveň bylo dost pod nulou. Věčně odkládané problémy s topením v autě vyústily v odvaření motorku ventilace. Volně přeloženo – jak jsem sklo oškrábal, hned zase zamrzlo a teplota v autě byla zhruba o stupeň nižší než venku.

Po příjezdu do práce jsem musel server nechat chvilku ohřát. Udělal jsem si čaj a rozhodl jsem se trochu „googlit“ informace o mém problému. Proč jsem to neudělal už včera? Mohl jsem si prodloužit život. Windows server 2000 bez SP4 není oficiálně podporovaný v Hyper-V (to jsem věděl), po instalaci integračních nástrojů virtualizace padá do modré smrti (to jsem nevěděl, a už to vím). Service Pack jsem ale nainstalovat nemohl, protože dodavatel databázového softwaru není na takové novoty připravený.

Zbylo mi jediné – odebrat nástroje Hyper-V, čímž ale přijdu o část výkonu a hlavně pohodlné ovládání. Vrátil jsem se tedy i obrazu původního stavu a integrační nástroje jsem nenainstaloval. Následovala další modrá smrt, tentokrát s jiným, známějším kódem. Systému se nejspíš nelíbil řadič disku, protože „Inaccesible boot device!.

Ani se nedivím, funkci pro přepnutí se z RAIDu nad SCSI disky do virtualizovaného IDE asi zrovna vývojáři dvanáct let starého operačního systému neimplementovali. Po zkušenostech s registry u přesunu na jiný hardware jsem ale už celkem věděl, kde hledat problém. Alespoň jsem si to myslel.

Udělal jsem nespočet úprav v registrech, systém ale pořád nenabíhal. Začínal jsem se bát o vlastní rozum, na dílně jsem byl sám, a přesto jsem si povídal. Nebyl tam nikdo, kdo by mi pomohl nadhodit správnou myšlenku. Vždy, když už jsem se cítil nejhůř, zavolal mi administrátor, aby mě dodělal. Už tam budém? A kdy? Nikdy.

Když více znamená méně

Už už jsem to chtěl vzdát, nenápadně to upadnout pod stůl a odejít se někam oběsit, když mi najednou svitlo v hlavě a do cíle jsem měl už jen pár metrů. Tak dlouho jsem hledal problém v nekompatibilitě virtualizovaného hardwaru a originálního stroje, že jsem se nedokázal koukat na základní problémy.

Při převodu do formátu VHD jsem totiž diskový oddíl roztáhl na 400 GB, vůbec nevím proč, ale udělal jsem to. A s tím se, pánové (a dámy?), Windows Server 2000 rozhodně kamarádit nebude!

bitcoin_skoleni

Zmenšil jsem tedy velikost partition na původních 20 GB (což pro systém i data bohatě dostačovalo). Jenže mi pak zase hrozně vadilo, že soubor VHD zabírá 400 GB na hostiteli. Předpokládal jsem, že administrátor se časem rozhodne přesunout na tento server i jiné virtuály, chybějící gigabajty by pak mohly chybět. Spustil jsem tedy parádní nástroj VHD resizer a změnil velikost virtuálního disku.

Operace běžela přes 30 hodin. Server jsem odvážel k zákazníkovi 31. prosince ve dvě hodiny odpoledne. A malá poznámečka na závěr – i když se jednalo o dočasné řešení, server tam stojí dodnes.