Blog

Kuidas ma koju HCI-klastrit ehitama hakkasin - II osa

Veidi rohkem kui kuu tagasi kirjutasin blogi artikli sellest, kuidas ma otsustasin hakata isiklikku HCI katselaborit ehitama. Selleks otstarbeks sai hangitud päris suur hulk erinevat kola, mille keskmeks Intel NUC miniarvutid. Sellest ajast on üksjagu vett merre voolanud ning olen ka leidnud aega ühtteist valmis ehitada. Käesolevas postituses püüan edasi anda oma esmakogemused HCI keskkonna kokkupanekul.

Esimest korda karpe lahti võtma asudes otsustasin, et ei püüagi koheselt midagi uhket valmis saada, vaid eesmärgiks on katsetada, kas antud kola üldse töötab nii nagu plaanis oli. Arusaadavalt oli tarvis alustada võrgust, sest NUC seadmetest klastri ehitamiseks oli vaja võrguühendusi.


Võrk

Alustasin seega Cisco SG200-18 Smart switch-i ühendamisest. Otsustasin, et esialgu mingit keerulist võrguplaani ei tee, ühendan kõik seadmed koduse interneti-ruuteri sisevõrku. Olen pikaaegne Telia (Elion) interneti ja nutiTV kasutaja. Nii pikaaegne, et minu seadmed pole enam kõige uuemad. Kasutan veel eelmise põlvkonna Thomson ruuterit, mille kohta blogides palju häid sõnu ei leia. Kõik soovitavad üle minna uuemale Inteno seadmele. Mõtlesin, et küllap saab olemasolevaga ka hakkama.

Ühendasin oma Cisco switch-i Thomson-i ruuteri külge. Switch-i testimiseks ühendasin oma teise Motorola digiboksi sinna külge. Käivitasin digiboksi, see hakkas tarkvara uuendust tegema. Ja mõned sekundid hiljem jäi elutoas telekas vait, mis oli ühendatud läbi Arrise digiboksi otse ruuteriga. Lülitasin Motorola digiboksi välja, ikka vaikus. Võtsin Cisco switch-il ruuteri ühenduse maha. Mõne minuti pärast ärkas elutoa telekas taas ellu. Ühendasin switch-i tagasi, kõik ilus. Mõtlesin juba, et ehk oli ajutine koormusest tingitud jama. Kuid niipea kui Motorola digiboksi käivitasin, oli teleka pilt teises toas jälle kadunud. Ning sel korral kadus ka Wifi ühendus. Ei aidanud muu kui kogu ruuteri restart. Tegin veel mõned katsed, iga kord sama tulemus…

Helistasin Telia klienditoe numbrile ja kurtsin oma muret. Kahjuks ei osanud nemad midagi muud arvata, kui seda, et süüdi on see seade, mida ma ruuteri külge ühendan. Ja pakkusid mulle tasulist tehniku külaskäiku. Otsustasin sellest võimalusest siiski loobuda. Pakuti veel ka Thomsoni ruuterile tarvara uuenduste tegemist, mille võtsin lahkelt vastu ja mille Telia ise „kaugelt“ ära korraldas.

Asusin oma nutika switch-i häälestust üle kontrollima, kuigi ma pole kahjuks eriti võrguinimene. Esimene asi, mis mulle silma torkas, oli STP ehk spanning tree protocol. Oma VMware koolitaja aegadest mäletan, et aegajalt oli VMware keskkondades STP-ga probleeme ning seda soovitati kas tuunida või üldse välja lülitada. Tasus proovimist. Lülitasin STP välja. Ühendasin switch-i taas ruuteriga. Kõik korras. Lülitasin digiboksi sisse, mis alustas taas oma tarkvarauuendust. Aga ohh imet, elutoa telekal jäi pilt ette. Mõne minutiga oli Motorola digiboksil tarkvara uuendatud ning ka teisele telekale ilmus pilt ette. Voilaa, asi korras!


NUC

Seejärel võis asuda esimesi NUC-e kokku panema. Karbis leidus lisaks paljude otsikutega (US, UK, EU, jne) toiteadapterile veel ka eraldi kinnituspaneel, millega saaks NUC-i kruvida näiteks lauaplaadi alla või seinale. Igati mõistlik.

NUC-i kokkupanek oli imelihtne. Korpus käib lahti 4 kruviga, mille järel oli võimalik eemaldada põhi.

Põhja sees oli pesa 2.5“ SATA ketta jaoks. Kogu ülejäänud elektroonika jäi korpuse sisse. Esmalt oli vaja  lisada mälu (2x 16GB SODIMM), mis käisid lihtsalt klambritega oma pesadesse üksteise peal. Järgmisena M.2 SSD mälu, mille tagumine ots tuli kruviga kinni keerata. Kinnituskruvi oli vaikimisi pandud 80mm mälu jaoks. Kui kasutada 42mm mälu, tuleks kinnituskruvi eelnevalt teise pessa ümber tõsta. 2.5“ SATA ketas tuli lihtsalt libistada oma pessa ning suruda kuni lõpuni välja. Mingeid kruvisid selleks vaja polnud. Ja oligi komplekt koos. Põhi oma kohale tagasi, kruvid kinni ning NUC oli tarkvara installeerimiseks valmis.

Keda see protsess detailsemalt huvitama peaks, siis näiteks YouTube-st leiab selle kohta rikkalikult videosid, nagu näiteks see siin. Midagi erakordset siin pole, iga arvutikasutaja peaks sellega vabalt hakkama saama.


Installeerimine

NUC-i installeerimiseks tuli külge ühendada USB klaver, hiir ning monitor. Viimase ühenduseks oli nii HDMI kui ka mini-displayport liidesed. Esimese asjana vaatasin üle NUC-i BIOS-e, mis on kenasti graafiline. Saab isegi hiirega klikkida. Midagi erilist seal vaja muuta polnud. Vaatasin üle boot seadmete järjekorra ning keelasin ära üleliigsed seadmed, mida ma VMware ESXi serveris nagunii kasutada ei saaks – audio, BlueTooth ja Wifi.

Tõmbasin Intel-i kodulehelt alla ka uusima BIOS-i versiooni. Selle uuendamine oli imelihtne. BIOS-i uuendus tuli ühe failina, mida sai USB mälupulgale kopeeritult NUC-ile külge ühendada. Uuendamise käivitamiseks on kaks peamist võimalust – valida vastav valik olles juba graafilises BIOS-i liideses või vajutades bootimise ajal F7 klahvi. Mõlemal juhul tuleb valida USB mälupulgal paiknev fail ning edasi toimub kõik juba automaatselt. Jällegi, ei midagi keerulist, igaüks saaks sellega hakkama.

Järgmisena oli vaja installeerida VMware ESXi server. Otsustasin alustada tulevasest eraldiseisvast haldusserverist, millel puudub M.2 SSD mälu ning lisa võrgukaart. Sellele seadmele pidi tulema tasuta VMware Hypervisor, mis koodibaasilt on tegelikult täiesti tavaline ESXi server. Nagu juba eelmises artiklis kirjutasin, plaanisin oma NUC-id panna kõik bootima USB mälupulgalt. VMware ESXi installatsiooni paketid on saadaval ISO failidena. Intel NUC aga kahjuks ISO laadimiseks sobilikku CD/DVD draivi ei oma ning minul polnud ka sobivat USB seadet käepärast võtta. Seetõttu kasutasin vabavaralist UNetbootin utiliiti, millega saab ISO failidest teha bootivaid USB mälusid. Selle utiliidiga kirjutasin ESXi installmeedia ISO otse SanDisk mälupulgale, mida oli plaanis kasutada ka ESXi bootkettana. UNetbootin utiliiti on nii Windows-i, MacOS kui ka Linux-i platvormile. Mina kasutasin Windows-i versooni, mis koosneb ühest ainsast EXE-failist (pole vaja isegi installeerida). Kasutamine on imelihtne, tuleb valida ISO fail, millelt andmed loetakse ning USB mälu, millele andmed kirjutatakse. Kirjutamisprotsess võtab aega mõned minutid.

Seejärel torkasin USB mälupulga NUC-i külge ning lülitasin selle sisse. NUC bootis probleemideta üles USB mälule kirjutatud ESXi installrakendusse. Installatsiooni sihtseadmeks valisin sellesama USB mälupulga, millelt just bootisin. Installer kirjutab lihtsalt mälupulga üle. Ei hakka teid ESXi installeri detailidega rohkem vaevama, see on imelihtne, igaüks on seda näinud. Kuna tegu oli USB 3.0 mäluga, võttis installprotsess suhteliselt vähe aega ning peale restarti oligi mul olemas esimene ESXi server. Oma management IP-aadressi sai värske ESXi server Telia ruuteri DHCP teenuselt. Logisin serverisse veebikliendiga sisse ning veendusin, et kõik toimis korrektselt. Ei mingeid üllatusi. 500GB suurusele Samsungi EVO SSD kettale formateerisin VMFS failisüsteemi.

Kuna haldusserverit soovisin kasutada pikemaajaliselt kui VMware eval litsents võimaldab, siis selleks puhuks registreerisin omale VMware veebisaidis tasuta VMware Hypervisor-i litsentsi. Igati sobilik kodukasutuseks. 

Edasi tuli võtta ette järgmine NUC, millest pidi saama juba vSAN klastri server. Erinevus esimesena installeeritud NUC-ist oli siis see, et seal oli lisaks 2.5“ SATA kettale ka M.2 SSD mälu ning USB-to-Ethernet võrguadapter vSAN-siseseks andmeühenduseks.

Siinkohal pöördusin tagasi võrguhäälestuse juurde ning konfisin Cisco switch-i uue VLAN-i, millesse häälestasin kolm switch-i porti (access mode). Selles VLAN-is hakkab toimuma vSAN-i klastrisisene andmete sünkroniseerimine, kuhu igast klastri serverist plaanisin ühendada ühe võrgukaardi (USB-to-Ethernet). Vastavalt VMware parimatele praktikatele on mõistlik see liiklus muust liiklusest eraldada. Veendusin ka, et mu switch toetaks multicast-i, mida vSAN selles võrgus kasutab.

Kogu installatsiooni protsess oli analoogne eelneva serveriga. Peale ESXi booti sisse logides oli näha (nagu ka teada oli), et ESX näitas ainult ühte võrgukaarti, milleks oli integreeritud GigE adapter.

Oma esimeses artiklis juba viitasin ühele virtuallyGhetto artiklile, kus räägitakse entusiastlikest VMware fännidest, kes on ise kirjutanud USB-to-Ethernet adapteri draiverid ESX 5.5 ja 6.0 jaoks. Mainitud artiklist viidatud lingi alt laadisin alla sobiliku draiveri VIB faili, mille SFTP klienti kasutades laadisin üles oma uude ESXi serverisse /tmp kataloogi. Selleks tuleb muidugi eelnevalt ESXi serveris SSH teenus käivitada.

Edasi logisin oma ESXi serverisse SSH kliendiga sisse ning kontrollisin esxcfg-nics käsuga olemasolevaid võrguadaptereid.

Nagu pildilt näha, oli adaptereid ainult üks, sest draiver polnud veel installeeritud. Kontrollisin, kas üles laetud draiveri fail on ikka olemas.

Edasi kasutasin esxcli käsku, et draiver ära installeerida. Vaja on lisada ka võti „-f“, sest draiver on pärit VMware mõistes „tundmatust“ allikast.

Peale draiveri installeerimist oli käsuga esxcfg-nics taas kontrollides näha, et võrguadaptereid oli juba kaks ning mõlemad ka töötasid (link oli „up“). Seda kinnitas ka Cisco switch-i pordil süttinud tuli.

Sellega pidid vSAN-i installeerimiseks vajalikud riistvaralised eeldused olema loodud. Kordasin ülalkirjeldatud protseduure ka ülejäänud kahe NUC-i peal.

 


vCenter

Selleks, et VMware klastrit ehitada, on loomulikult vajalik vCenter. Mugavaimaks ja kiiremaks viisiks selle käivitamisel on tänapäeval VCSA – Linux-põhine vCenter appliance. Selle installeerimine on läbi graafilise wizard-i imelihtne ning ei vääri väga palju blogi ruumi. Oluliseks eelduseks on töötav nimelahendus ning soovituslik NTP olemasolu. Selle saavutamiseks installeerisin oma vast valminud VMware Hypervisor-iga haldusserverisse ühe CentOS 7.2 Minimal VM-i, millesse häälestasin BIND nimeserveri ning Chrony teenuse (RH maailmas NTP asendaja). Sinnasamma haldusserverisse paigaldasin ka VCSA.


vSAN

Edasi tuli toimetama hakata juba VMware vSphere Web Client-i kaudu. vSAN on uus tehnoloogia ning seda enam vanast „heast“ Windows-i kliendist häälestada ei saa. Kõigepealt viskasin pilgu peale serverite võrgukaartidele läbi graafilise liidese. Kõik paistis olema korras.

Seejärel kontrollisin üle, mis pilt paistis ketaste kohta. Nagu näha olid kõik kolm „ketast“ kenasti näha – SanDisk boot mälu, Intel 120GB suurune M.2 SSD mälu ning Samsung-i 500GB suurune EVO 850 SSD. Seega kõik vajalikud seadmed olid ESXi poolt üles leitud ja ära tuntud.

Järgmise asjana tuli kõigil serveritel ära häälestada vmkernel võrgud. Management võrk oli installi ajal juba automaatselt loodud ning sellega oli kõik juba korras. Lisasin management vmkernel pordile juurde veel ka vMotion funktsionaalsuse. Normaaljuhul tuleks see häälestada eraldi TCP/IP stack-iga, kuid kuna mul oli lihtsustatud riistvara, siis liitsin need kaks asja kokku. Eraldi lisasin juurde uue vswitch-i koos vSAN liikluse jaoks häälestatud vmkernel pordiga. Uplink-iks uuele vswitch-ile määrasin värskelt installeeritud uue USB võrguadapteri, mis oli ühendatud Cisco switch-is eraldi VLAN-i. Peale võrguhäälestuse muutmist nägi ESXi vmkernel häälestus välja selline nagu alloleval pildil näha. Sarnase häälestuse tegin kõigile kolmele serverile.

Nüüd ei jäänud enam muud üle kui hakata klastrit looma. Tegin vCenter-isse uue tühja klastri ning lisasin oma kolm installeeritud ESXi serverit sinna alla. vSAN-i häälestamiseks ei tohi VMware HA olla klastris lubatud. Selle saab sisse lülitada alles peale vSAN-i.

vSAN-i funktsionaalsus on ESXi-sse juba sisse ehitatud, midagi eraldi selleks installeerima ei pea. Klastri häälestuse alt leiab eraldi vSAN sektsiooni, mille alt saab käivitada häälestus wizard-i. Esimese asjana tuli valida klastri funktsionaalsused nagu näiteks pakkimine ja de-duplitseerimine. Viimane nõuab all-flash konfiguratsiooni (nii puhver kui ka mahu kettad peavad olema SSD), mis minu NUC-ide puhul oli olemas. Seetõttu oli antud funktsionaalsus ka juba automaatselt valitud. Valida tuli ka viis kuidas vSAN-i tarbeks kettaid valitakse – automaatselt või manuaalselt. Endast lugupidav IT insener valib alati loomulikult manuaalse režiimi.

Wizard-i järgmisel etapil tuli kinnitada võrguhäälestus ehk veenduda, et kõikides serverites oli olemas vSAN liikluseks häälestatud vmkernel port. Kuna minul sai see eelnevalt tehtud, siis polnud siin muud kui lihtsalt Next vajutada.

Järgmisel etapil tuli tegeleda kettavalikuga. Kuna mina valisin manuaalse režiimi, siis pidin siinkohal kinnitama, millised kettad lähevad puhvriks ning millised mahuketasteks. Eelvalik oli wizard-i poolt siiski juba ära tehtud, see tuli lihtsalt üle kontrollida ning kinnitada. Wizard oli üles näidanud märkimisväärset nutikust ning määranud 120GB suurused Intel-i M.2 mälud puhvri kihti ning 500GB suurused Samsung-i SSD-d mahu kihti. Ei jäänudki muud üle kui nõustuda ning kinnitada.

Jäi üle veel vajutada Finish ning läkski madinaks. vSAN klastri häälestamine võttis aega mõned minutid. Kui task vCenter-is lõpetas, paistis minu vSphere Web Client-i Datastores and Datastore Clusters vaatest välja selline pilt.

Ja oligi mul vSAN klaster! Mahuks pakuti algatuseks ca 1.3 TB. Polnud paha! Veendumaks, et vSAN ka tõepoolest töötab importisin klastrisse ühe CentOS 7.x Minimal virtuaalmasina. See läks kenasti tööle ning kolis ka vMotion-iga teise serverisse. Kloonisin seda VM-i veel paar korda. Kloonimise task küll ülemäära kiire polnud (võttis ca 1 minut), kuid olgem ausad, eks seda oli ka arvata.


Mis edasi? 

Edasi on plaanis oma vastvalminud klastriga läbi viia mõned loomkatsetused töökindluse ning jõudluse testimiseks. Proovin sellest jälle millalgi veidi lähemalt kirjutada koos konkreetsemate numbritega, mida õnnestus sellest kodukootud lahendusest välja pigistada. Eks hõikan jälle välja, kui miskit uut valmis.


Twitter: @KaidoKibin

Seotud postitused: