U jednom od chatova postavili su mi pitanje:
— Ima li nešto za pročitati o pravilnom pakiranju servera u stijene?
Shvatio sam da ne znam takav tekst, pa sam napisao svoj.
Prvo, ovaj tekst se odnosi na fizičke servere u fizičkim data centrima (DC). Drugo, pretpostavljamo da imamo dovoljno servera: stotine ili tisuće, za manje količine ovaj tekst nije smislen. Treće, imamo tri ograničavajuća faktora: fizičko mjesto u stijene, napajanje po stijeni, i neka se stijene nalaze u redovima, tako da možemo koristiti jedan ToR switch za povezivanje servera u susjednim stijenama.
Odgovor na pitanje uvelike ovisi o tome koji parametar optimiziramo i što možemo varirati da bismo postigli najbolji rezultat. Na primjer, možda želimo zauzeti minimalno prostora kako bismo ostavili više za daljnji rast. A možda imamo slobodu u odabiru visine stijenama, snage po stijeni, ušćena u PDU, broju stijenama u grupi switcheva (jedan switch za 1, 2 ili 3 stijenama), dužini žica i radovima na provlačenju (to je kritično na krajevima redova: pri 10 stijenama u redu i 3 stijenama na switch, morat ćemo povući žice u drugi red ili ne iskoristiti portove u switchu), itd., itd. Posebne priče: odabir servera i odabir DC, pretpostavimo da su odabrani.
Bilo bi dobro razumjeti neke nijanse i detalje, posebno prosječnu/maksimalnu potrošnju servera i kako se električna energija isporučuje. Dakle, ako imamo rusko napajanje od 230V i jednu fazu po stijeni, tada 32A automatski može izdržati ~7kW. Pretpostavimo da nominalno plaćamo za 6kW po stijeni. Ako provajder mjeri našu potrošnju samo po redu od 10 stijenama, a ne po svakoj stijeni, i ako je automatski postavljen na granici od 7kW, tada tehnički možemo u zasebnoj stijeni potrošiti 6.9kW, u drugoj 5.1kW i sve će biti u redu — ne kažnjivo.
Obično je naš glavni cilj minimizacija troškova. Najbolji kriterij za mjerenje je smanjenje TCO (total cost of ownership — ukupni trošak vlasništva). Sastoji se od sljedećih dijelova:
- CAPEX: nabavka infrastrukture DC, servera, mrežne opreme i kabliranja
- OPEX: najam DC, potrošena električna energija, održavanje. OPEX ovisi o životnom vijeku. Razumno je pretpostaviti da iznosi 3 godine.

Ovisno o tome kako su veliki pojedinačni komadi u ukupnoj torti, trebamo optimizirati ono što je najskuplje, a ostatak neka koristi sve preostale resurse što učinkovitije.
Pretpostavimo da već imamo postojeći DC, imamo visinu racka H jedinica (za primjer H=47), električnu moć po racku Prack (Prack=6kW), i odlučili smo koristiti h=2U dvounitne servere. Uklonit ćemo 2..4 jedinice iz racka za switcheve, patch panele i organizatore. Drugim riječima, fizički, u našem racku staje Sh=rounddown((H-2..4)/h) servera (tj. Sh = rounddown((47-4)/2)=21 server na rack). Zapamtimo ovo Sh.
U jednostavnom slučaju svi serveri u racku su isti. Dakle, ako napunimo rack poslužiteljima, na svaki server možemo u prosjeku potrošiti snagu Pserv=Prack/Sh (Pserv = 6000W/21 = 287W). Za pojednostavljenje ovdje zanemarujemo potrošnju switcheva.
Napravimo korak u stranu i definirajmo što je maksimalna potrošnja servera Pmax. Ako vrlo pojednostavimo, vrlo neučinkovito i potpuno sigurno, čitamo što piše na napajanju servera — to je to.
Ako je složenije, učinkovitije, uzimamo TDP (thermal design package) svih komponenti i zbrajamo (to nije baš u redu, ali može i tako).
Obično ne znamo TDP komponenti (osim CPU-a), stoga uzimamo najispravniji, ali i najkompleksniji pristup (potrebna je laboratorija) — uzimamo eksperimentalni server potrebne konfiguracije i opterećujemo ga, na primjer, Linpack-om (CPU i memorija) i fio (diskovi), mjerimo potrošnju. Ako se pristupa ozbiljno, treba stvoriti i najtoplije okruženje u hladnom hodniku tijekom testova, jer to utječe i na potrošnju ventilatora i na potrošnju CPU-a. Dobivamo maksimalnu potrošnju konkretnog servera s konkretnom konfiguracijom u ovim konkretnim uvjetima pod ovom konkretno opterećenjem. Samo imajmo na umu da nova verzija firmware-a, druga verzija softvera, drugi uvjeti mogu utjecati na rezultat.
Dakle, vraćamo se na Pserv i kako ga usporediti s Pmax. To je pitanje razumijevanja rada usluga i koliko su čvrsti živci vašeg tehničkog direktora.
Ako ne želite preuzimati rizik, onda smatramo da svi serveri mogu u jednom trenutku početi trošiti svoj maksimalan kapacitet. U tom trenutku može doći do jednog unosa u DC. Infrastruktura, čak i u tim uvjetima, treba pružiti uslugu, stoga Pserv ≡ Pmax. Ovo je pristup u kojem je apsolutno važna pouzdanost.
Ako tehnički direktor razmišlja ne samo o idealnoj sigurnosti, već i o financijama tvrtke i dovoljno je hrabar, tada se može zaključiti da
- počinjemo upravljati našim dobavljačima, posebno zabranjujući provođenje planiranog održavanja tijekom razdoblja očekivanog vrhunca opterećenja kako bismo minimizirali pad jednog ulaza;
- i/ili naša arhitektura omogućava gubitak ormara/niza/centra podataka, dok usluge nastavljaju raditi;
- i/ili dobro raspoređujemo opterećenje horizontalno po ormarima, tako da naše usluge nikada ne dosegnu maksimalnu potrošnju u jednom ormariću sve zajedno.
Ovdje je vrlo korisno ne samo pretpostavljati, već i pratiti potrošnju i znati kako u stvarnosti poslužitelji troše električnu energiju u običnim i vrhunskim uvjetima. Stoga, nakon određene analize, tehnički direktor sažima sve što ima i govori: „mi donosiom odlukom utvrđujemo da je maksimalno ostvarivo prosječno od maksimuma potrošnje poslužitelja po ormariću **tako-tako** ispod maksimalne potrošnje”, uvjetno Pserv=0.8*Pmax.
I tada u ormar od 6kW ne staje više 16 poslužitelja s Pmax = 375W, već 20 poslužitelja s Pserv = 375W * 0.8 = 300W. To jest, 25% više poslužitelja. To je velika ušteda — jer nam odmah treba 25% manje ormara (a tu ćemo još uštedjeti na PDU-u, switch-evima i kablovima). Ozbiljna mana takvog rješenja — potrebno je stalno pratiti jesu li naši pretpostavke i dalje ispravne. Da nova verzija firmwarea ne mijenja bitno rad ventilatora i potrošnju, da razvoj iznenada s novim izdanjem nije počeo koristiti poslužitelje mnogo učinkovitije (čitaj postigao veću opterećenost i veću potrošnju). Jer onda postaju pogrešne i naše početne pretpostavke i zaključci. To je rizik koji se mora odgovorno preuzeti (ili izbjeći i tada platiti za očito nedovoljno opterećene ormariće).
Važna napomena - trebate pokušati horizontalno rasporediti poslužitelje iz različitih usluga po ormarićima, ako je to moguće. To je potrebno kako ne bi došlo do situacija kada jedna serija poslužitelja za jednu uslugu stiže, ormarići se vertikalno pune njome kako bi se povećala „gustoća“ (jer je to jednostavnije). U stvarnosti, to znači da je jedan ormarić prepun istih poslužitelja s malim opterećenjem jedne usluge, a drugi - istih visoko opterećenih. Vjerojatnost pada drugog je znatno veća, jer je profil opterećenja isti, i svi poslužitelji zajedno u tom ormariću počinju trošiti jednako mnogo zbog povećanja opterećenja.
Vratimo se raspodjeli poslužitelja u ormarićima. Razmotrili smo fizička ograničenja mjesta u ormariću i ograničenja u napajanju, sada ćemo pogledati i mrežu. Možete koristiti switcheve s 24/32/48 portova N (u našem slučaju imamo 48-portne ToR switcheve). Na sreću, opcija nije toliko mnogo, ako ne razmišljate o break-out kabelima. Razmatramo scenarije kada imamo jedan switch po ormariću, jedan switch po dva ili tri ormarića u grupi Rnet. Mislim da više od tri ormarića u grupi već postaje previše, jer problem kabeliranja između ormarića postaje znatno veći.
Dakle, za svaki mrežni scenarij (1, 2 ili 3 ormarića u grupi) raspoređujemo poslužitelje po ormarićima:
Srack = min(Sh, rounddown(Prack/Pserv), rounddown(N/Rnet))
Dakle, za opciju s 2 ormarića u grupi:
Srack2 = min(21, rounddown(6000/300), rounddown(48/2)) = min(21, 20, 24) = 20 poslužitelja po ormariću.
Slično računamo ostale opcije:
Srack1 = 20
Srack3 = 16
I gotovo smo na cilju. Računamo broj ormarića za raspodjelu svih naših poslužitelja S (neka bude 1000):
R = roundup(S / (Srack * Rnet)) * Rnet
R1 = roundup(1000 / (20 * 1)) * 1 = 50 * 1 = 50 ormarića
R2 = roundup(1000 / (20 * 2)) * 2 = 25 * 2 = 50 ormarića
R3 = roundup(1000 / (16 * 3)) * 3 = 25 * 2 = 63 ormarića
Dalje računamo TCO za svaku opciju na temelju broja ormarića, potrebnog broja switcheva, kabeliranja, itd. Biramo onu opciju gdje je TCO manji. Profit!
Primijetimo da, iako je potreban broj ormarića za opcije 1 i 2 isti, njihova cijena će biti različita, jer je broj switcheva za drugu opciju dvostruko manji, a dužina potrebnih kablova veća.
P.S. Ako postoji mogućnost igranja s snagom ormara i visinom ormara, varijabilnost se povećava. No, proces se može svesti na gore opisano, jednostavno se prelaskom kroz opcije. Da, kombinacija će biti više, ali i dalje je to prilično ograničen broj — napajanje ormara za izračun može se povećati s korakom od 1 kW, tipični ormari dolaze u ograničenom broju tipova dimenzija: 42U, 45U, 47U, 48U, 52U. I ovdje može pomoći Excelova analiza What-If u režimu Data Table. Pogledajte dobivene tablice i odaberite minimum.
Izvor: habr.com
