Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Ovaj je članak napisan kako bi vam pomogao odabrati pravo rješenje za sebe i razumjeti razlike između SDS-a kao što su Gluster, Ceph i Vstorage (Virtuozzo).

U tekstu se koriste poveznice na članke s detaljnijim otkrivanjem pojedinih problema, tako da će opisi biti što kraći, koristeći ključne točke bez nepotrebnog šuštanja i uvodne informacije koje možete, po želji, samostalno dobiti na internetu.

Zapravo, naravno, pokrenute teme zahtijevaju tonove teksta, ali u suvremenom svijetu sve više i više ljudi ne voli puno čitati))), tako da možete brzo pročitati i napraviti izbor, a ako je nešto nije jasno, slijedite veze ili guglajte nejasne riječi))), a ovaj je članak poput prozirnog omota za ove duboke teme, pokazujući punjenje - glavne ključne točke svake odluke.

gluster

Započnimo s Glusterom, koji aktivno koriste proizvođači hiperkonvergiranih platformi sa SDS-om koji se temelji na otvorenom kodu za virtualna okruženja, a nalazi se na web stranici RedHat u odjeljku za pohranu, gdje možete birati između dvije SDS opcije: Gluster ili Ceph.

Gluster se sastoji od niza prevoditelja - servisa koji obavljaju sav posao distribucije datoteka itd. Brick je usluga koja servisira jedan disk, Volume je volumen (pool) koji ujedinjuje te brikove. Slijedi usluga za raspodjelu datoteka u grupe pomoću DHT (distributed hash table) funkcije. Nećemo uključiti uslugu Sharding u opis budući da će veze u nastavku opisati probleme povezane s njom.

Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Prilikom pisanja, cijela se datoteka pohranjuje u brick, a njezina kopija se istovremeno zapisuje u brick na drugom poslužitelju. Zatim će druga datoteka biti zapisana u drugu grupu od dvije kocke (ili više) na različitim poslužiteljima.

Ako su datoteke približno iste veličine i volumen se sastoji od samo jedne grupe, onda je sve u redu, ali pod drugim uvjetima iz opisa će proizaći sljedeći problemi:

  • prostor u grupama je neravnomjerno iskorišten, ovisi o veličini datoteka i ako nema dovoljno prostora u grupi za pisanje datoteke, dobit ćete pogrešku, datoteka se neće napisati i neće se redistribuirati drugoj grupi ;
  • kada pišete jednu datoteku, IO ide samo u jednu grupu, ostale su u stanju mirovanja;
  • ne možete dobiti IO cijelog volumena kada pišete jednu datoteku;
  • i opći koncept izgleda manje produktivan zbog nedostatka raspodjele podataka u blokove, gdje je lakše balansirati i riješiti problem jednolike raspodjele, a ne kao sada cijela datoteka ide u blok.

Iz službenog opisa arhitektura također nehotice dolazimo do razumijevanja da gluster radi kao pohrana datoteka povrh klasičnog hardverskog RAID-a. Bilo je razvojnih pokušaja rezanja (Sharding) datoteka u blokove, ali sve je to dodatak koji nameće gubitke performansi već postojećem arhitektonskom pristupu, plus korištenje takvih slobodno distribuiranih komponenti s ograničenjima performansi kao što je Fuse. Ne postoje usluge metapodataka, što ograničava performanse i mogućnosti tolerancije na pogreške pohrane prilikom distribucije datoteka u blokove. Bolji pokazatelji izvedbe mogu se uočiti s konfiguracijom "Distribuirano replicirano", a broj čvorova trebao bi biti najmanje 6 kako bi se organizirala pouzdana replika 3 s optimalnom raspodjelom opterećenja.

Ovi se nalazi odnose i na opis korisničkog iskustva gluster a kada se usporedi s cef, a tu je i opis iskustva koje vodi do razumijevanja ove produktivnije i pouzdanije konfiguracije “Replicirano distribuirano”.
Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Na slici je prikazana raspodjela opterećenja pri upisivanju dvije datoteke, pri čemu su kopije prve datoteke raspoređene na prva tri poslužitelja koji su spojeni u grupu volumena 0, a tri kopije druge datoteke smještene su na volumen 1 druge grupe od tri poslužitelji. Svaki poslužitelj ima jedan disk.

Opći zaključak je da možete koristiti Gluster, ali uz razumijevanje da će postojati ograničenja u performansama i toleranciji grešaka koja stvaraju poteškoće pod određenim uvjetima hiperkonvergiranog rješenja, gdje su resursi također potrebni za računalna opterećenja virtualnih okruženja.

Postoje i neki pokazatelji učinka Glustera koji se mogu postići pod određenim uvjetima, ograničeni na tolerancija kvarova.

cef

Sada pogledajmo Cepha iz opisa arhitekture koje sam uspio pronaći. Postoji i usporedba između Glusterfs i Ceph, gdje odmah možete shvatiti da je preporučljivo implementirati Ceph na zasebne poslužitelje, jer njegove usluge zahtijevaju sve hardverske resurse pod opterećenjem.

arhitektura Ceph složeniji od Glustera i postoje usluge kao što su usluge metapodataka, ali čitav niz komponenti prilično je složen i nije baš fleksibilan za korištenje u virtualizacijskom rješenju. Podaci se pohranjuju u blokove, što izgleda produktivnije, ali u hijerarhiji svih servisa (komponenti) dolazi do gubitaka i kašnjenja pod određenim opterećenjima i izvanrednim uvjetima, npr. članak.

Iz opisa arhitekture srce je CRUSH, zahvaljujući kojem se odabire mjesto za pohranu podataka. Slijedi PG - ovo je apstrakcija (logička grupa) koju je najteže razumjeti. PG-ovi su potrebni kako bi CRUSH bio učinkovitiji. Glavna svrha PG-a je grupiranje objekata kako bi se smanjila potrošnja resursa, povećala izvedba i skalabilnost. Adresiranje objekata izravno, pojedinačno, bez njihovog spajanja u PG bilo bi vrlo skupo. OSD je usluga za svaki pojedinačni disk.

Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Klaster može imati jedan ili više skupova podataka za različite svrhe i s različitim postavkama. Skupine su podijeljene u skupine plasmana. Grupe prostora pohranjuju objekte kojima klijenti pristupaju. Ovdje završava logička razina, a počinje fizička razina, jer je svakoj grupi postavljanja dodijeljen jedan glavni disk i nekoliko replika diskova (koliko točno ovisi o faktoru replikacije bazena). Drugim riječima, na logičkoj razini objekt je pohranjen u određenoj grupi prostora, a na fizičkoj razini - na diskovima koji su mu dodijeljeni. U tom slučaju diskovi se mogu fizički nalaziti na različitim čvorovima ili čak u različitim podatkovnim centrima.

U ovoj shemi, grupe plasmana izgledaju kao nužna razina za fleksibilnost cjelokupnog rješenja, ali u isto vrijeme i kao dodatna karika u ovom lancu, što nehotice sugerira gubitak produktivnosti. Na primjer, kada zapisujete podatke, sustav ih treba podijeliti u ove grupe, a zatim na fizičkoj razini u glavni disk i diskove za replike. Odnosno, funkcija Hash radi prilikom pretraživanja i umetanja objekta, ali postoji nuspojava - to su vrlo visoki troškovi i ograničenja ponovne izgradnje hasha (prilikom dodavanja ili uklanjanja diska). Još jedan problem s hashom je jasno određena lokacija podataka koji se ne mogu mijenjati. To jest, ako je na neki način disk pod povećanim opterećenjem, tada sustav nema mogućnost ne pisati na njega (odabirom drugog diska), hash funkcija obvezuje da se podaci lociraju prema pravilu, bez obzira koliko loši bili disk je, tako da Ceph jede puno memorije kada ponovno gradi PG u slučaju samoiscjeljivanja ili povećanja memorije. Zaključak je da Ceph radi dobro (iako sporo), ali samo kada nema skaliranja, hitnih situacija ili ažuriranja.

Postoje, naravno, opcije za povećanje performansi kroz predmemoriju i dijeljenje predmemorije, ali to zahtijeva dobar hardver i još uvijek će biti gubitaka. Ali općenito, Ceph izgleda primamljivije od Glustera za produktivnost. Također, pri korištenju ovih proizvoda potrebno je voditi računa o važnom faktoru - to je visoka razina kompetencije, iskustva i profesionalnosti s velikim naglaskom na Linuxu, budući da je vrlo važno sve ispravno implementirati, konfigurirati i održavati, što administratoru nameće još veću odgovornost i opterećenje.

Vstorage

Arhitektura izgleda još zanimljivije Virtuozzo pohrana (Vstorage), koji se može koristiti u kombinaciji s hipervizorom na istim čvorovima, na istom žlijezda, ali vrlo je važno sve ispravno konfigurirati kako biste postigli dobre performanse. Odnosno, implementacija takvog proizvoda iz kutije na bilo koju konfiguraciju bez uzimanja u obzir preporuka u skladu s arhitekturom bit će vrlo jednostavna, ali ne i produktivna.

Što može koegzistirati za pohranu uz usluge kvm-qemu hipervizora, a ovo su samo neke usluge u kojima je pronađena kompaktna optimalna hijerarhija komponenti: klijentska usluga montirana putem FUSE (modificirana, nije otvorenog koda), MDS usluga metapodataka (Metadata service), usluga Chunk service data blocks, što je na fizičkoj razini jednako jednom disku i to je sve. Što se tiče brzine, naravno, optimalno je koristiti shemu otpornu na pogreške s dvije replike, ali ako koristite predmemoriju i zapise na SSD diskovima, tada se kodiranje otporno na pogreške (brisanje kodiranja ili raid6) može pristojno overclockati na hibridna shema ili još bolje na all flash. Postoji neki nedostatak kod EC (kodiranje brisanja): kada se mijenja jedan blok podataka, potrebno je ponovno izračunati iznose pariteta. Kako bi zaobišao gubitke povezane s ovom operacijom, Ceph odgođeno piše u EC i problemi s performansama mogu se pojaviti tijekom određenog zahtjeva, kada se, na primjer, moraju pročitati svi blokovi, a u slučaju Virtuozzo Storagea, provodi se pisanje promijenjenih blokova koristeći pristup "log-strukturiranog datotečnog sustava", koji minimizira troškove izračuna pariteta. Da biste približno procijenili mogućnosti s ubrzanjem rada sa i bez EC-a, postoje kalkulator. – brojke mogu biti približne ovisno o koeficijentu točnosti proizvođača opreme, ali rezultat izračuna dobra je pomoć pri planiranju konfiguracije.

Jednostavan dijagram skladišnih komponenti ne znači da te komponente ne apsorbiraju izvori željeza, ali ako unaprijed izračunate sve troškove, možete računati na suradnju uz hipervizor.
Postoji shema za usporedbu potrošnje hardverskih resursa od strane Ceph i Virtuozzo servisa za pohranu.

Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Ako je prije bilo moguće usporediti Gluster i Ceph pomoću starih članaka, koristeći najvažnije retke iz njih, onda je s Virtuozzom to teže. Nema mnogo članaka o ovom proizvodu i informacije se mogu pronaći samo iz dokumentacije na engleskom ili na ruskom ako Vstorage smatramo pohranom koja se koristi u nekim hiperkonvergiranim rješenjima u tvrtkama kao što su Rosplatforma i Acronis.

Pokušat ću vam pomoći s opisom ove arhitekture, tako da će biti malo više teksta, ali potrebno je puno vremena da sami razumijete dokumentaciju, a postojeća dokumentacija može se koristiti samo kao referenca revidiranjem tablice sadržaja ili pretraživanje po ključnoj riječi.

Razmotrimo proces snimanja u hibridnoj hardverskoj konfiguraciji s gore opisanim komponentama: snimanje počinje ići do čvora s kojeg ga je klijent pokrenuo (usluga točke montiranja FUSE), ali glavna komponenta Metadata Service (MDS) će naravno usmjerava klijenta direktno na željenu chunk uslugu (storage service CS blocks), odnosno MDS ne sudjeluje u procesu snimanja, već jednostavno usmjerava uslugu na traženu chunk. Općenito, možemo dati analogiju snimanja s ulijevanjem vode u bačve. Svaka bačva je blok podataka od 256 MB.

Kratka usporedba SDS arhitekture ili traženje odgovarajuće platforme za pohranu (GlusterVsCephVsVirtuozzoStorage)

Odnosno, jedan disk je određeni broj takvih bačvi, odnosno volumen diska podijeljen s 256 MB. Svaka kopija se distribuira na jedan čvor, druga gotovo paralelno na drugi čvor, itd... Ako imamo tri replike i postoje SSD diskovi za cache (za čitanje i pisanje logova), onda će potvrda pisanja uslijediti nakon pisanja zapis na SSD, a paralelno resetiranje sa SSD-a nastavit će se na HDD, kao u pozadini. U slučaju tri replike, zapis će se predati nakon potvrde sa SSD-a trećeg čvora. Može se činiti da se zbroj brzine pisanja triju SSD-ova može podijeliti s tri i dobit ćemo brzinu pisanja jedne replike, ali kopije se pišu paralelno i brzina latencije mreže obično je veća od brzine SSD-a, i zapravo će performanse pisanja ovisiti o mreži. U tom smislu, da biste vidjeli stvarne IOPS-e, morate ispravno učitati cijeli Vstorage do metodologija, odnosno testiranje stvarnog opterećenja, a ne memorije i cachea, pri čemu je potrebno voditi računa o ispravnoj veličini bloka podataka, broju dretvi itd.

Gore spomenuti zapisnik snimanja na SSD-u radi na način da čim podaci dospiju u njega, servis ih odmah čita i zapisuje na HDD. Postoji nekoliko metapodataka (MDS) po klasteru, a njihov broj određuje kvorum, koji radi prema Paxos algoritmu. Sa gledišta klijenta, FUSE mount point je mapa za pohranu klastera koja je istovremeno vidljiva svim čvorovima u klasteru, svaki čvor ima montiranog klijenta prema ovom principu, tako da je ova pohrana dostupna svakom čvoru.

Za izvedbu bilo kojeg od gore opisanih pristupa vrlo je važno, u fazi planiranja i implementacije, pravilno konfigurirati mrežu, gdje će doći do balansiranja zbog agregacije i ispravno odabrane propusnosti mrežnog kanala. U agregaciji je važno odabrati pravi način raspršivanja i veličine okvira. Također postoji velika razlika u odnosu na gore opisani SDS, to je spoj s tehnologijom brze staze u Virtuozzo Storageu. Što uz modernizirani osigurač, za razliku od drugih open source rješenja, značajno povećava IOPS i omogućuje da ne budete ograničeni horizontalnim ili vertikalnim skaliranjem. Općenito, u usporedbi s gore opisanim arhitekturama, ova izgleda snažnije, ali za takav užitak, naravno, morate kupiti licence, za razliku od Cepha i Glustera.

Ukratko, možemo istaknuti vrh od tri: Virtuozzo Storage zauzima prvo mjesto u pogledu performansi i pouzdanosti arhitekture, Ceph zauzima drugo mjesto, a Gluster zauzima treće mjesto.

Kriteriji po kojima je Virtuozzo Storage odabran: to je optimalan skup arhitektonskih komponenti, moderniziran za ovaj Fuse pristup s brzim putem, fleksibilnim skupom hardverskih konfiguracija, manjom potrošnjom resursa i mogućnošću dijeljenja s računalom (računalstvo/virtualizacija), to jest, potpuno je prikladno za hiperkonvergirano rješenje, čiji je on dio. Na drugom mjestu je Ceph jer je produktivnija arhitektura u odnosu na Gluster, zbog rada u blokovima, kao i fleksibilnijih scenarija i mogućnosti rada u većim klasterima.

U planu je pisanje usporedbe između vSAN, Space Direct Storage, Vstorage i Nutanix Storage, testiranje Vstoragea na HPE i Huawei opremi, kao i scenariji za integraciju Vstoragea s vanjskim hardverskim sustavima za pohranu, pa ako vam se članak svidio, bilo bi lijepo je dobiti povratne informacije od vas, što bi moglo povećati motivaciju za nove članke, uzimajući u obzir vaše komentare i želje.

Izvor: www.habr.com

Dodajte komentar