Prvi prototip objektnog pohranjivanja svijetu se pojavio 1996. godine. Nakon 10 godina, Amazon Web Services lansira Amazon S3, a svijet počinje postupno ludjeti zbog ravnog adresnog prostora. Zbog rada s metapodacima i mogućnosti skaliranja bez smanjenja performansi pod opterećenjem, objektnu pohranu brzo postaje standard za većinu usluga pohrane podataka u oblaku, ali i šire. Druga važna značajka je dobra prilagodljivost za pohranu arhiva i sličnih rijetko korištenih datoteka. Svi koji su bili povezani s pohranom podataka su se radovali i ponosno nosili novu tehnologiju.

No, ljudski šaptovi bili su puni glasina da je objektnu pohranu moguće samo u velikim oblacima, a ako vam ne trebaju rješenja od prokletih kapitalista, vlastito rješenje bit će jako teško napraviti. O implementaciji vlastitog oblaka već je napisano mnogo, a o izradi takozvanih S3-kompatibilnih rješenja informacije su prilično oskudne.
Stoga ćemo danas istražiti koje imamo opcije "Da bude kao kod velikih, a ne CEPH i malo veći alat", implementirat ćemo jednu od njih, a provjeravat ćemo radi li sve s Veeam Backup & Replication. U njemu je najavljena podrška za rad s S3-kompatibilnim pohranama, a to ćemo tvrđenje provjeriti.
A što je s drugima?
Predlažem da započnemo s malim pregledom tržišta i opcijama objektnog pohranjivanja. Općenito priznati lider i standard je Amazon S3. Dva najbliža konkurenta su Microsoft Azure Blob Storage i IBM Cloud Object Storage.
Zar to je sve? Zar nema drugih konkurenata? Naravno, ima, ali netko ide svojim putem, poput Google Cloud ili Oracle Cloud Object Storage, s nepotpunom podrškom za S3 API. Neki koriste stare verzije API-ja, kao Baidu Cloud. A neki, poput Hitachi Cloud, zahtijevaju primjenu posebne logike, što će neizbježno izazvati poteškoće. U svakom slučaju, svi se uspoređuju s Amazonom, koji se može smatrati industrijskim standardom.
Što se tiče on-premise rješenja, izbor je puno veći, pa hajde da odredimo važne kriterije za nas. U načelu, dovoljno je samo dva: podrška za S3 API i korištenje v4 potpisivanja. Ruku na srce, nas kao buduće klijente zanimaju samo sučelja za interakciju, dok nas unutarnja kuhinja same pohrane ne zanima previše.
Pod ove jednostavne uvjete odgovara jako puno rješenja. Na primjer, klasični korporativni teškaši:
- DellEMC ECS
- NetApp S3 StorageGrid
- Nutanix Buckets
- Pure Storage FlashBlade i StorReduce
- Huawei FusionStorage
Postoji niša isključivo softverskih rješenja koja rade iz kutije:
- Red Hat Ceph
- SUSE Enterprise Storage
- Cloudian
Čak su i ljubitelji pažljivog obrade nakon sastavljanja dobili svoje:
- CEPH u čistom obliku
- Minio (Linux verzija, jer verzija za Windows ima puno pitanja)
Popis nije ni približno potpun, o tome se može raspraviti u komentarima. Samo ne zaboravite provjeriti osim API kompatibilnosti i performanse sustava prije implementacije. Posljednje što želite je gubitak terabajta podataka zbog zagušenih zahtjeva. Stoga se ne ustručavajte s testovima opterećenja. Uglavnom, sav zreo softver koji radi s velikim količinama podataka ima barem izvještaje o kompatibilnosti. U slučaju Veeam ima za međusobno testiranje, što omogućuje da s punim povjerenjem izjavimo o potpunoj kompatibilnosti naših proizvoda s određenom opremom. Ovo je već dvostrani posao, ne uvijek brz, ali stalno proširujemo testirana rješenja.
Slažemo naš štand
Želim malo razgovarati o izboru objekta.
Prvo, želio sam pronaći opciju koja će odmah raditi iz kutije. Ili barem s maksimalnom vjerojatnošću da će raditi bez potrebe za dodatnim naporima. Ples s tamburicama i kopanje po konzoli noću - to je vrlo zanimljivo, ali ponekad želite da stvari rade odmah. A i opća pouzdanost takvih rješenja obično je viša. I da, izgubili smo duh avanturizma, prestali smo se penjati kroz prozore do voljenih žena itd.
Drugo, ako budemo iskreni, potreba za radom s objektima za pohranu javlja se kod prilično velikih kompanija, tako da je to situacija kada gledanje prema rješenjima na razini poduzeća nije sramotno, nego čak i poticajno. U svakom slučaju, za sada ne znam primjere da je netko otpušten zbog kupnje takvih rješenja.
Iz svega rečenog, moj izbor je pao na Dell EMC ECS Community Edition. To je vrlo zanimljiv projekt, i smatram potrebnim da vam o tome pričam.
Prvo što mi pada na pamet kada vidim dodatak Community Edition — to nije samo kopija punopravnog ECS-a s nekim ograničenjima koja se uklanjaju kupnjom licence. Dakle, nije tako!
Zapamtite:
!!!Community Edition je poseban projekt stvoren za testiranje i ne uključuje podršku od strane Della!!
I ne može se pretvoriti u punopravni ECS, čak i ako jako želite.
Pogledajmo to detaljnije.
Mnogi smatraju da je Dell EMC ECS gotovo najbolje rješenje ako imate potrebu za objektivnim pohranjivanjem. Svi projekti pod markom ECS, uključujući komercijalne i korporativne, temelje se na . To je neka vrsta dobre volje od Della. Osim softverskog rješenja koje radi na njihovom brandiranom hardveru, postoje i verzije s otvorenim kodom koje možete implementirati u oblaku, na virtualnom stroju, u kontejneru ili na bilo kojem vlastitom hardveru. Osim toga, postoji čak i OVA verzija koju ćemo koristiti.
DELL ECS Community Edition je mini verzija punopravnog softvera koji radi na brandiranim poslužiteljima Dell EMC ECS.
Izdvojio sam četiri glavne razlike:
- Nema podrške za enkripciju. Zaista šteta, ali nije kritično.
- Nema Fabric Layera. Ova funkcionalnost odgovara za izgradnju klastera, upravljanje resursima, nadogradnje, praćenje i pohranu Docker slika. Ovdje već imamo ozbiljan problem, ali Dell se također može razumjeti.
- Najgora posljedica prethodne točke: veličinu čvora nije moguće povećati nakon završetka instalacije.
- Nema tehničke podrške. Ovo je proizvod za testiranje koji se može koristiti u malim instalacijama, ali osobno ne bih riskirao pohranjivanje petabajta važnih podataka u njega. Međutim, tehnički, nitko vam ne može spriječiti da to učinite.

A što je u velikoj verziji?
Brzo ćemo prolaziti kroz hardverska rješenja kako bismo imali potpuniju sliku o ekosustavu.
Neću potvrditi niti opovrgnuti tvrdnju da je DELL ECS najbolje on-prem objektno pohranjivanje, ali ako imate nešto za reći o tome, rado ću pročitati u komentarima. U svakom slučaju, prema verziji Dell EMC sigurno ulazi među pet vodećih na tržištu OBS-a. Iako cloud-based rješenja nisu uključena, to je posebna tema.
S tehničkog stajališta, ECS je objekat za pohranu koji omogućuje pristup podacima putem protokola za oblak. Podržava AWS S3 i OpenStack Swift. Za file-enabled bucket-e, ECS podržava NFSv3 za izvođenje podataka po datotekama.
Proces zapisivanja informacija je prilično neobičan, posebno u poređenju sa klasičnim sistemima blokovske pohrane.
- Kada novi podaci stignu, kreira se novi objekat koji ima ime, stvarne podatke i metapodatke.
- Objekti se razbijaju na komade od 128 MB, a svaki komad se odmah zapisuje na tri noda.
- Dešava se ažuriranje datoteke indeksa, gdje su zapisani identifikatori i mjesta pohrane.
- Ažurira se datoteka dnevnika (log zapisa) koja se također zapisuje na tri noda.
- Klijentu se šalje poruka o uspješnom zapisu.
Sve tri kopije podataka se zapisuje paralelno. Zapisivanje se smatra uspješnim samo ako su sve tri kopije uspješno zapisane.

Čitanje je prilično jednostavno:
- Klijent traži podatke.
- U indeksu se traži mjesto pohrane podataka.
- Podaci se čitaju s jednog noda i šalju klijentu.

Sami serveri su prilično brojni, pa ćemo pogledati najmanji Dell EMC ECS EX300. Počinje od 60TB, s mogućnošću proširenja do 1,5PB. Njegov stariji brat Dell EMC ECS EX3000 omogućava pohranu čak 8,6PB po ormariću.
Deploy
Tehnički, Dell ECS CE se može implementirati u neograničenim veličinama. U svakom slučaju, ne pronađoh očigledna ograničenja. Međutim, savršeno je pogodno skaliranje metodom kloniranja prvog noda, za što će nam biti potrebni:
- 8 vCPU
- 64GB RAM
- 16GB za operativni sistem
- 1TB direktno za pohranu
- Posljednje izdanje CentOS minimal
To je opcija za slučaj kada želite sve sami instalirati od samog početka. Za nas to nije relevantna opcija, jer ću koristiti OVA sliku za implementaciju.
Ali u svakom slučaju, zahtjevi su prilično strogi čak i za jedan nod, a ako se strogo držimo zakona, potrebna su četiri takva noda.
Ipak, programeri ECS CE žive u stvarnom svijetu, i instalacija prolazi uspješno čak i s jednim nodom, a minimalni zahtjevi su sljedeći:
- 4 vCPU
- 16 GB RAM
- 16 GB za operativni sistem
- 104 GB sama pohrana
Takvi resursi su potrebni za implementaciju OVA slike. Već je mnogo humanije i realističnije.
Sam instalacijski nod možete uzeti s službene . Ovdje se također nalazi detaljna dokumentacija o svim-u-jednom implementaciji, ali možete pročitati i na službenoj . Stoga se nećemo posebno zadržavati na postavljanju OVA, tu je sve jednostavno. Glavno je da ne zaboravite prije nego što je pokrenete ili proširiti disk na potrebnu veličinu ili priključiti potrebne.
Pokrećemo mašinu, otvaramo konzolu i koristimo najbolje zadane kredencijale:
- korisničko ime: admin
- lozinka: ChangeMe
Zatim pokrećemo sudo nmtui i podešavamo mrežni interfejs — IP/maska, DNS i gateway. Imajte na umu da u CentOS minimal nema net-tools, provjeravamo postavke putem ip addr.

A s obzirom da more osvajaju samo hrabri, radimo yum update, nakon čega slijedi reboot. U stvarnosti je to prilično sigurno, jer se cijela implementacija vrši putem playbook-ova, a svi važni Docker paketi su zaključani na trenutnoj verziji.
Sada je vrijeme da uredimo instalacijski skript. Bez lijepih prozora ili pseudo UI — sve kroz vaš omiljeni tekstualni urednik. Tehnički, postoje dva načina: možete ručno izvršiti svaku komandu ili odmah pokrenuti konfigurator videploy. On će jednostavno otvoriti konfiguraciju u vim-u, a nakon izlaska pokrenuti njenu provjeru. Ali namjerno sebi ne želim olakšavati život, pa ćemo učiniti dvije komande više. Iako to uopšte nema smisla, upozorio sam vas =)
Dakle, radimo vim ECS-CommunityEdition/deploy.xml i unosimo optimalno-minimalne izmjene kako bi ECS bio uključen i radio. Listu parametara može se skratiti, ali učinio sam to ovako:
- licensed_accepted: true Možete i ne mijenjati, tada će vas prilikom implementacije jasno zamoliti da je prihvatite i prikazati slatku frazu. Možda je ovo čak i neka easter egg.

- Otpustiti redove autonames: i custom: Unijeti najmanje jedno željeno ime za čvor — hostname će biti zamijenjen tim imenom tijekom instalacije.
- install_node: 192.168.1.1 Unijeti stvarni IP čvora. U našem slučaju unosimo isti kao u nmtui
- dns_domain: unosimo svoju domenu.
- dns_servers: upisujemo svoje dns.
- ntp_servers: može se navesti bilo koji. Ja sam uzeo prvi iz paketa 0.pool.ntp.org (to je postalo 91.216.168.42)
- autonaming: custom Ako se ne otpusti, luna će se zvati Luna.
- ecs_block_devices:
/dev/sdb
Iz nepoznatog razloga ovdje može biti nepostojeći uređaj za blokovno skladištenje /dev/vda - storage_pools:
members:
192.168.1.1 Ovdje ponovno unosimo stvarni IP čvora - ecs_block_devices:
/dev/sdb Повторяем операцию вырезания несуществующих устройств.
Uopšte, čitava datoteka je vrlo detaljno opisana u , ali tko će to čitati u ovakvom kaotičnom vremenu. Tamo piše da je minimalno dovoljno navesti IP adresu i masku, ali mi se u laboratoriju takav set loše uspostavljao, pa sam ga morao proširiti na gore navedeno.

Nakon izlaska iz uređivača, potrebno je pokrenuti update_deploy /home/admin/ECS-CommunityEdition/deploy.yml, i ako je sve ispravno izvršeno, bit će jasno prikazano.

Zatim će ipak trebati pokrenuti videploy, pričekati ažuriranje okruženja, i tada se može pokrenuti sama instalacija komandama ova-step1, a nakon njenog uspješnog izvršenja komandom ova-step2. Važno: nemojte ručno zaustavljati rad skripti! Neki koraci mogu potrajati, ne izvršiti se iz prve i izgledati kao da se sve pokvarilo. U svakom slučaju, potrebno je čekati da skript završi prirodnim putem. Na kraju biste trebali vidjeti otprilike ovakvu poruku.

Sada napokon možemo otvoriti WebUI upravljačku ploču putem poznate IP adrese. Ako nismo mijenjali tijekom konfiguracije, zadnji korisnički račun bit će root/ChangeMe. Čak možemo odmah koristiti naše S3-kompatibilno skladište. Ono je dostupno na portovima 9020 za HTTP, i 9021 za HTTPS. Opet, ako ništa nije mijenjano, tada je access_key: object_admin1 i secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.
Ali, nećemo previše žuriti i počnimo redom.

Prilikom prvog prijave bit ćete prisiljeni promijeniti lozinku na odgovarajuću, što je sasvim ispravno. Glavna nadzorna ploča je krajnje jasna, stoga hajde da učinimo nešto zanimljivije od objašnjavanja očitih metričkih podataka. Na primjer, stvorimo korisnika kojeg ćemo koristiti za pristup skladištu. U svijetu pružatelja usluga, takve se osobe nazivaju tenant. To se radi u Manage > Users > New Object User.

Prilikom stvaranja korisnika traži se od nas da navedemo namespace. Tehnički gledano, ništa nam ne smeta da ih stvorimo koliko god želimo korisnika. I obrnuto. To omogućuje neovisno upravljanje resursima za svakog tenanta.
Prema tome, biramo potrebne funkcije i generiramo korisničke ključeve. Meni će biti dovoljan S3/Atmos. I ne zaboravimo sačuvati ključ 😉

Korisnik je stvoren, sada mu je vrijeme dodijeliti i bucket. Prelazimo u Manage > Bucket i ispunjavamo potrebna polja. Ovdje je sve jednostavno.

Sada imamo sve spremno za potpuno funkcionalnu upotrebu našeg S3 skladišta.
Postavljamo Veeam
Dakle, kao što se sjećamo, jedna od glavnih primjena objektnih skladišta je dugotrajno pohranjivanje informacija na koje se rijetko obraća. Idealni primjer je potreba za pohranom sigurnosnih kopija na udaljenoj lokaciji. U Veeam Backup & Replication, ova funkcija se naziva Capacity Tier.
Započnimo s postavljanjem našeg Dell ECS CE u Veeam sučelju. Na kartici Backup Infrastructure pokrećemo čarobnjaka za dodavanje novog repozitorija i biramo stavku Object Storage.

Biramo ono zbog čega smo sve to započeli — S3 kompatibilno.

U otvorenom prozoru upisujemo željeno ime i prelazimo na korak Account. Ovdje je potrebno navesti Service point u obliku , regiju možemo ostaviti onakvom kakva jest i dodati stvorenog korisnika. Gateway server je potreban ako vaše skladište nalazi na udaljenoj lokaciji, ali to je već tema optimizacije infrastrukture i posebne članke, tako da ovo možemo slobodno preskočiti.

Ako je sve ispravno navedeno i postavljeno, pojavit će se upozorenje o certifikatu, a zatim prozor s bačvom gdje možete stvoriti mapu za naše datoteke.

Prolazimo kroz čarobnjaka do kraja i uživamo u rezultatu.

Na sljedećem koraku potrebno je ili stvoriti novi Scale-out Backup Repository, ili dodati naš S3 u postojeći — on će se koristiti kao Capacity Tier za arhivsku pohranu. Trenutno nema mogućnosti izravnog korištenja S3-kompatibilnih skladišta kao običnog repozitorija, jer postoji previše prilično nejasnih problema koji se moraju riješiti, ali sve može biti.
Ulazimo u postavke repozitorija i uključujemo Capacity Tier. Tamo je sve jasno, ali postoji zanimljiva pojedinost: ako želite da se svi podaci što brže šalju na objektno skladište, jednostavno postavite 0 dana.

Nakon što prođemo čarobnjaka, ako ne želimo čekati, možemo pritisnuti ctrl+desni klik na repozitoriju, prisilno pokrenuti Tiering job i promatrati kako se grafikon pomiče.

Za sada je to sve. Smatram da sam se zadovoljio zadatkom pokazati da blokovna skladišta nisu tako strašna kako se obično misli. Da, rješenja i varijante su brojne, ali u jednom članku sve to ne možemo obuhvatiti. Zato ajmo dijeliti iskustva u komentarima.
Izvor: habr.com
