Blog

Kuidas ma koju HCI-klastrit ehitama hakkasin - I osa

Sattusin kord Twitteri vahendusel lugema William Lam’i artiklit sellest, kuidas ta kodus Inteli NUC miniarvutitest VMware vSAN klastrit ehitas. Mingil seletamatul põhjusel jäi see artikkel mind kummitama. Peale mitut päeva mõtisklemist jõudsin järeldusele, et tuleb see ilmselt ise järgi proovida. HCI-st on saanud ülemaailmne hype, eks oligi vaid aja küsimus, mil see ka kodukasutusse jõuab.

Mõeldud, tehtud. Olin siiski üsna veendunud, et küllap jääb see ettevõtmine mul juba eos katki ulmelise hinna või komponentide saadavuse puudumise tõttu. Kuid võta näpust! Pealiskaudne tuhnimine kohaliku sõbraliku distribuutori  online-andmebaasis näitas, et enamus vajalikke „jubinaid“ on Eestis saadaval, sealjuures mõistlike tarneaegade ning talutavate hinnanumbritega. Ratsionaalsete vabanduste kadumisel ei jäänudki muud üle kui hakata plaani koostama.


Plaan
Mõned päevad vaevlesin veel igipõlise IT-arhitekti dilemma käes – kas ehitada lihtne (loe: odav) või hea lahendus. Teadupärast on minimaalne säästu-vSAN-klaster võimalik ehitada juba kahe serveriga, kuid mõistlik lahendus algab siiski kolmest serverist. Nagu ka karta oli, sai headus minust võitu ning valik langes 3-serverilise klastri kasuks koos eraldiseisva haldusserveriga. Ehk plaan oli hankida kokku 4 Intel NUC miniarvutit koos kõige sinna juurde kuuluvaga.

VMware vSAN klastri ehitamiseks vajalik 2-kihiline andmesalvestuslahendus – nö puhver kiht (cache-tier), mis arusaadavalt vajab flash-mälu, ja mahu kiht (capacity-tier), mis serveerib klastrile reaalselt kasutatavat kettapinda. Viimane võib koosneda põhimõtteliselt igasugust tüüpi ketastest. Parema jõudluse huvides otsustasin eelistada nö all-flash lahendust, kus mõlemad salvestuskihid koosnevad flash-mälust. Lisaks võimaldab see kasutada ka veidi peenemaid funktsionaalsusi nagu näiteks andmete deduplikatsioon ning pakkimine.

Otsustasin, et minu tulevane kodulabor saab olema igati popp ning noortepärane sisaldades rohkelt automatiseerimist ja muid peeneid tehnoloogiaid. Et aga suur tükk suud kohe lõhki ei ajaks, lisandub kõik see lisatoredus siiski ilmselt veidi pikemas perspektiivis ja küllap kirjutan sellest kunagi tulevikus veel eraldi. Esialgu plaanisin siiski teha lihtsama nö proof-of-concept installatsiooni, et asi oma käega ära proovida.

Loomaks aga eeldused uute teenuste lisandumisele tulevikus otsustasin, et lisaks klastrile on vaja ka eraldiseisvat haldusserverit, mis ei sõltuks destruktiivsetest loomkatsetest HCI vallas. Sellel serveril hakkaksid töötama kodulabori tööks vajalikud püsiteenused nagu näiteks VMware vCenter server, Puppet automatiseerimise ja konfihaldus server, DNS/DHCP teenused, autentimiseks vajalik OpenLDAP, võrgu tulemüür/ruuter, VPN server jne. Loomulikult kõik virtualiseeritud kujul. Eraldiseisvatena plaanisin need teenused eelkõige selleks, et oleks võimalik vajadusel ilma andmekadu kartmata kogu HCI-klaster „õhku lasta“ ja uuesti ehitada. Või ehitada see soovi korral ümber mõnele muule HCI platvormile nagu näiteks Nutanix CE.


Komponendid
NUC. Esimese ja olulisema asjana tuli valida NUC arvutid. Minimaalselt kahe ketta vajadus vSAN-i jaoks pani nende valikul kindlad piirid ette. Inteli NUC-seeria i7 protsessoriga lipulaev NUC6i7KYK osutus ebasobivaks nii eelkõige oluliselt kõrgema hinna kui ka mõõtmetelt suurema korpuse tõttu. Seetõttu langes valik NUC6i5SYH kasuks. Arvasin, et veelgi odavam i3 protsessoriga mudel jääks ehk veidi lahjaks. Oli ju plaanis ehitada hea lahendus. Minu valitud NUC sisaldab ühte 2-tuumalist i5-6260 protsessorit ning toetab kuni 32GB mälu. Kettaid ega mälu NUC-i komplekt ei sisalda, need tuleb eraldi hankida. Otsustasin, et tellin kõik 4 NUC-i ühesugused, et oleks hiljem võimalik soovi korral klastrit laiendada.

Mälu. Kuna soovisin, et ehitatav klaster oleks ka reaalselt kodulaborina kasutatav, otsustasin minna maksimaalse hulga mälu peale, milleks on 2x 16GB igas masinas. NUC „sööb“ 2133 Mhz DDR4 SODIMM tüüpi mälu. Minu valik langes Kingston KCP421SD8/16 mälumoodulite kasuks.

Ketas. Nagu juba mainitud, on vSAN-i tööks vajalik kahe ketta olemasolu, millest ühte kasutatakse ainult puhvermäluks (cache). NUC6i5SYH võimaldab kasutada kokku kahte „ketast“ - ühte M.2 SSD kaarti (22x42mm või 22x80mm) ja ühte 2.5“ SATA3. Otsustasin, et mahu-kettaks piisab mulle 500 GB-st serveri kohta. Kuna puhvermälu andmesalvestusmahuna kasutada ei saa plaanisin siit veidi kokku hoida. Lõplikuks valikuks osutusid 500GB Samsung EVO 850 2.5“ SATA3 SSD ning 120 GB Intel 540s 22x80mm M.2 SSD. Saadaval oli ka oluliselt väiksema mahuga M.2 mälu, kuid nende hinnavahe võrreldes 120-sega oli kõigest mõni euro. Lisaks otsustasin, et neljandasse NUC-i pole vähemalt esialgu M.2 mälu vaja kuna see ei osale klastris.

Kuid vaja oli ka kolmandat ehk boot-ketast. Kuna NUC rohkem kettaid ühendada ei võimalda oli ainukeseks mõistlikuks lahenduseks USB-boot. Selleks valisin SanDisk Ultra Fit 16 GB USB 3.0 mälupulgad. Tegemist siis mõõtudelt ülipisikese pulgaga, mis USB pesast ainult mõned millimeetrid välja ulatub. Kuigi neljanda serveri puhul selleks otsest vajadust polnud, otsustasin ka selle panna bootima USB pulgalt jättes kogu 500GB SSD ketta ainult andmete jaoks.

Võrk. Igasuguse virtualiseeritud keskkonna üheks võtmekomponendiks on loomulikult võrk. See peab olema kiire ja paindlik. Intel NUC sisaldab ühte GigE RJ45 võrguporti ning ühte WiFi adapterit. Kuna aga VMware ESXi server WiFi tuge ei oma, pole viimasega suurt midagi peale hakata. Lihtsalt niisama koduserveri jaoks oleks ju üks GigE võrguühendus täiesti piisav. Kuid mina plaanisin ehitada HCI-süsteemi, mis teadupärast vajab klastri-siseseks andmete sünkroniseerimiseks kiiret võrguühendust. Mida kiiremat, seda parem. Seetõttu otsustasin, et vaja on siiski ka teist võrgukaarti eraldamaks tulevased virtuaalmasinad HCI andmete süngist. Ainukeseks lahenduseks sobis USB võrguadapter. Minu valitud NUC omab kokku 4x USB 3.0 porti, 2 esipaneelil, 2 taga. USB-to-LAN GigE adapterid on täiesti saadaval. Sellega on aga kahjuks väike probleem. Sarnaselt WiFi-le ei toeta VMware ESXi ka USB võõrgukaarte.

Aga õnneks leidub maailmas siiski veel toredaid ja ettevõtlike inimesi. Jutu alguses mainitud William Lam’i artikli kaudu sattusin peale ühele tema teisele artiklile, milles ta kirjutab toredatest entusiastidest, kes on võtnud vaevaks kirjutada ise ESXi-le vajalikud USB võrguadapterite draiverid. Toetatud adapterite nimekiri on küll imelühike, kuid asi seegi. Kahjuks ei leidnud ma, et ühtegi nendest oleks Eestis saadaval. Seetõttu tuli need jupid ainukesena tellida välismaalt. Valituks osutus StarTech USB 3.0 to Gigabit Ethernet Adapter, mis oli saadaval Amazon UK poes. Otsustasin, et lisa-adapterit on vaja ainult klastri serveritele.

Aga sellega polnud minu võrgu-mured siiski veel murtud. Mul oli kogu lahenduse peale nüüd nimekirjas kokku 7 GigE võrguadapterit. Aga kuhu need ühendada? Vaja oli ka uut võrgu switch-i. Algul tundus nii suuruselt kui ka hinnalt sobilik lihtne 8-pordine GigE desktop switch, milliseid minu sõbraliku distribuutori andmebaasis leidus hulgaliselt. Desktop ehk „eritiväike-ettevõtte“ kategooria switch-ide peamiseks meeldivaks omaduseks on ventilaatorite puudumine, mis kodustes tingimustes on eriti kasulik omadus. Need seadmed ei mühise! Kuid väike näpuarvutus näitas, et koos uplink-iga oleks 8-pordine seade ennast koheselt ammendanud. Lisaks torkas teravalt silma, et desktop kategooria seadmed kipuvad olema enamuses unmanaged ehk neid ei saa kuidagi hallata ega häälestada. Minu jaoks tähendas see eelkõige, et neil puudub VLAN-ide tugi, mis virtuaalkeskkondades on ülimalt kasulik. Neid asjaolusid kaaludes langes minu valik sutsu kallima (kuid siiski üllatavalt mõistliku hinnaga) Cisco SG200-18 Small Business Gigabit Smart switch-i kasuks. See seade pakub piisava hulga GigE porte (16+2), on hallatav toetades suurt hulka 3- ja 4-tähelisi võrgumaailma akronüüme (nende seas ka VLAN-e) ning mis kõige olulisem – ei sisalda samuti mitte ühtegi ventilaatorit.

Lisad. Kuna VMware klaster pole ilmselt süsteem, mida igal õhtul magama minnes välja lülitatakse, otsustasin, et vaja oleks veidi ka elektrilist stabiilsust. Kodus kipub aegajalt ikka vool kõikuma või korraks ära minema. Seetõttu otsustasin lisada komplekti ka ühe katkematu toiteallika ehk maakeeles UPS-i. Valituks osutus APC Back-UPS 950VA. Peaks minu keskkonda olema piisav.


Ostukorv
Lõplik ostukorv sai siis kokku selline:

  • 4x Intel NUC6i5SYH
  • 8x Kingston 16GB 2133Mhz DDR4 SODIMM
  • 4x Samsung 850 EVO 500GB SSD 2.5“ SATA3
  • 3x Intel 540s 120 GB 80mm SSD M.2
  • 4x SanDisk Ultra Fit USB 3.0 Flash Drive
  • 3x StarTech USB 3.0 to Gigabit Ethernet Adapter
  • Cisco SG200-18 Small Business Gigabit Smart Switch
  • APC Back-UPS 950V

Andsin tellimuse sisse augusti lõpus. Enamuse komponente sain tellitud ühest kohast, otse sõbralikult distribuutorilt. Eranditeks olid ainult SanDisk USB pulgad, mille otsustasin osta ise jaekaubandusest ning StarTech USB võrguadapterid, mille pidin tellima Amazonist. Osad jubinad olid distribuutoril koheselt laost võtta, pikim tarneaeg märgiti septembri lõppu. Meeldivaks üllatuseks oli kogu kupatus aga paari nädalaga käes. Isegi Amazon-ist tellitu, mis tänu BREXIT-i venimisele saabus kohale ilma igasuguste lisamaksudeta.


Mis edasi?
Nüüdseks olen kõige selle toreda tehnika õnnelik omanik olnud juba paar nädalat. Tiheda graafiku tõttu pole mul seni kahjuks õnnestunud veel kõike tööle panna, kuid tasapisi asi juba edeneb. Püüan sellest kõigest peatselt jälle kirjutada. Keda huvitab, hoidke silm peal. Eks hõikan sotsiaalmeedia kaudu välja kui miskit uut jälle valmis on.

NB! Igaks juhuks tasuks vist ka ära mainida, et kõnealune tehniline lahendus ei kuulu kuidagi VMware poolt ametlikult toetatud lahenduste hulka, mistõttu ei tasu seda võtta aluseks oma ettevõtte lahenduste väljatöötamisel.


Twitter: @KaidoKibin