Razumijevanje modela pohrane u oblaku

Tko bi rekao da bi pohranjivanje bitova moglo postati tako nevjerojatno komplicirano? Pohrana je uvijek sadržavala mnoštvo protokola, od Fibre Channel-a preko iSCSI-a do SMB-a u svim njegovim varijacijama, ali dolazak bljeska i kontinuirani rast virtualizacije pretvorili su ionako gustu temu u zamršenu džunglu akronima, protokola i apstrakcija.

Virtuelizacija podatkovnog centra potaknula je val virtualizacije i u pohrani, postupno odmičući pohranu od fizičkih protokola prema logičnim, apstrahiranim modelima pohrane poput pohrane instance i volumena. Pružajući apstrakcije, podatkovni je centar neprestano odvajao virtualne strojeve od protokola za pohranu.

Porast podatkovnih centara u oblaku također je iznjedrio novu klasu pohrane nazvanu objektna pohrana, koja žrtvuje snažnu dosljednost tradicionalnih protokola za pohranu kako bi se osigurali pojedinačni imenski prostori na globalnoj razini.

U ovom ću članku pružiti određenu jasnoću stavljajući instancu, volumen i objektnu pohranu u razvoj podatkovnog centra i pokazati kako se te nove apstrakcije uklapaju u postojeće protokole za pohranu ili uz njih.

Priča o pohrani u oblaku na mnogo je načina priča o virtualizaciji. Počet ću s fizičkim okruženjima, prijeći ću na virtualizaciju, gdje se virtualni i fizički modeli počinju razilaziti, i završiti s oblakom, gdje su fizički gotovo u potpunosti apstrahirani od virtualnih modela.

Fizičko skladište

U korijenu sve pohrane nalazi se niz protokola fizičke pohrane, pa ću započeti s brzim osvrtom na fizičku pohranu. Danas se koriste tri glavne klase modela fizičke pohrane: izravno spojena pohrana (DAS), mreža područja pohrane (SAN) i mrežna pohrana (NAS).

DAS.  Izravno priložena pohrana najjednostavniji je model za pohranu. Svima nam je poznat DAS; ovo je model koji koristi većina prijenosnih računala, telefona i stolnih računala. Temeljna jedinica DAS-a je samo računalo; pohrana za poslužitelj nije odvojena od samog poslužitelja. U slučaju telefona fizički je nemoguće ukloniti pohranu iz izračuna, ali čak i u slučaju poslužitelja, gdje je teoretski moguće povući diskovne pogone, nakon što se pogon odvoji od poslužitelja, obično se obriše prije ponovna upotreba. SCSI i SATA primjeri su DAS protokola.

SAN.  Na kraju je skladišna industrija prepoznala korisnost odvajanja pohrane od izračuna. Umjesto da pričvrstimo diskove na svako pojedinačno računalo, postavili smo sve diskove na jedan klaster poslužitelja i pristupili disku preko mreže. Ovo pojednostavljuje zadatke upravljanja pohranom, poput sigurnosne kopije i popravka kvara. Ova podjela pohrane i računanja često se naziva dijeljena pohrana , jer će više računala koristiti jedan bazen pohrane.

Bilo je najjednostavnije komunicirati između klijenta i poslužitelja preko mreže koristeći iste (ili vrlo slične) blokovske protokole koji su korišteni za komunikaciju s lokalno povezanim diskovnim pogonima. Ovako izložena pohrana naziva se mreža skladišnog prostora. Fibre Channel i iSCSI primjeri su SAN protokola.

U SAN-u administrator će skup diskova (ili dio skupa diskova) grupirati u LUN (logičku jedinicu), koji se zatim prema vanjskim računalima ponaša poput jednog diskovnog pogona. LUN je temeljna jedinica koja se koristi za upravljanje SAN pohranom.

NAS.  Iako nam SAN-ovi omogućuju premještanje LUN-ova između jednog računala i drugog, blokovski protokoli koje oni koriste nisu dizajnirani za istodobnu razmjenu podataka u istom LUN-u između računala. Da bismo omogućili ovu vrstu dijeljenja, potrebna nam je nova vrsta pohrane izgrađena za istodobni pristup. U ovoj novoj vrsti pohrane komuniciramo s pohranom pomoću protokola sustava datoteka, koji jako podsjećaju na datotečne sustave koji se izvode na lokalnim računalima. Ova vrsta pohrane poznata je kao mrežna pohrana. NFS i SMB primjeri su NAS protokola.

Apstrakcija datotečnog sustava omogućuje više poslužitelja da istovremeno pristupa istim podacima. Više poslužitelja može istodobno čitati istu datoteku, a više poslužitelja može istovremeno smjestiti nove datoteke u datotečni sustav. Stoga je NAS vrlo prikladan model za zajedničke podatke o korisnicima ili aplikacijama.

NAS pohrana omogućuje administratorima dodjelu dijelova pohrane u pojedinačne datotečne sustave. Svaki je datotečni sustav jedan prostor imena, a datotečni sustav je primarna jedinica koja se koristi za upravljanje NAS-om.

Virtualna pohrana

Virtualizacija je promijenila krajolik modernog podatkovnog centra za pohranu kao i za računanje. Baš kao što su fizički strojevi apstrahirani u virtualne strojeve, fizička pohrana apstrahirana je u virtualne diskove.

U virtualizaciji, hipervizor pruža emulirano hardversko okruženje za svaki virtualni stroj, uključujući računalo, memoriju i pohranu. VMware, početni moderni hipervizor, odlučio je oponašati lokalne fizičke diskovne pogone kao način za osiguravanje pohrane za svaki VM. Drugim riječima, VMware je odabrao model lokalnog diskovnog pogona (DAS) kao način izlaganja pohrane virtualnim strojevima.

Kao što je temeljna jedinica za pohranu u DAS-u fizički stroj, tako je i osnovna jedinica za pohranu virtualnih diskova VM. Virtualni diskovi nisu izloženi kao neovisni objekti, već kao dio određenog virtualnog stroja, baš kao što su lokalni diskovi konceptualno dio fizičkog računala. Kao i kod DAS-a, virtualni disk živi i umire sa samim VM-om; ako se VM izbriše, tada će se izbrisati i virtualni disk.

Većina konvencionalnih platformi za virtualizaciju koristi model virtualnog diska. Na primjer, pohranom u VMware vSphere, Microsoft Hyper-V, Red Hat Enterprise Virtualization i Xen okruženjima upravlja se i povezuje na sličan način.

Implementacija virtualnih diskova

Budući da je VMware želio i dalje pružati prednosti dijeljene pohrane virtualnim strojevima, nije se mogao osloniti na DAS protokol za implementaciju virtualnih diskova. Očiti sljedeći izbor bio bi korištenje SAN-a, jer SAN LUN jako podsjeća na lokalni disk.

Međutim, fizički LUN-ovi imaju ograničenja koja predstavljaju izazovnu pogodnost za virtualne diskove. Virtualizirana okruženja objedinjuju brojna logička računala na jednom fizičkom poslužitelju, što znači da će broj virtualnih diskova na danom hostu biti mnogo veći od broja fizičkih LUN-ova za hosta u fizičkom okruženju. Maksimalni broj LUN-ova koji se mogu spojiti na određeni fizički poslužitelj bio je prenizak da bi podržao potreban broj virtualnih diskova.

Možda još važnije, virtualni diskovi, kao i kod virtualnih CPU-a, moraju biti logični objekti koji se mogu stvarati, uništavati i programski premještati, a to nisu operacije za koje je SAN pohrana dizajnirana. Na primjer, VMware je trebao dinamički premještati VM-ove između fizičkih hostova, što je zahtijevalo pristup zajedničkoj pohrani tijekom migracije.

Iz tih razloga VMware je odlučio implementirati virtualne diskove kao datoteke u datotečni sustav (NFS) ili u distribuirani datotečni sustav (VMFS) na SAN-u, a ne kao neobrađene LUN-ove.

Od protokola za pohranu do modela za pohranu

Da je VMware odlučio implementirati virtualne diskove, model blokovne memorije u stilu DAS, povrh NAS-a ili SAN-a, ilustrira jednu od zanimljivih karakteristika moderne pohrane podatkovnih centara. Budući da se IO s virtualnog stroja predaje softveru u hipervizoru, a ne hardveru na sabirnici uređaja, protokol koji VM koristi za komunikaciju s hipervizorom ne mora odgovarati protokolu koji hipervizor koristi za komunikaciju s samo skladištenje.

To dovodi do razdvajanja između modela memorije koji je izložen VM-u i administratoru i protokola pohrane koji koristi hipervizor za stvarno spremanje podataka. U slučaju virtualnih diskova, VMware ih je dizajnirao prema DAS modelu za pohranu, a zatim je za njihovu implementaciju upotrijebio NAS protokol za pohranu.

Ovo je moćan sloj neizravnosti; daje nam fleksibilnost da kombiniramo i kombiniramo modele za pohranu i protokole za pohranu, pa čak i dinamički mijenjamo protokol za pohranu bez utjecaja na virtualne strojeve. Na primjer, virtualni se diskovi implementiraju pomoću datoteka u NFS-u, datoteka u VMFS-u pohranjenih na LUN-ovima optičkih kanala ili čak (u VVols-ima ili virtualnim volumenima) izravno kao iSCSI LUN-ovi. Izbor implementacije potpuno je transparentan za aplikaciju, jer će na kraju svi ovi protokoli izgledati isto VM-u i administratoru; izgledat će poput lokalnih, fizičkih diskovnih pogona priključenih na VM-ove.

Stoga programer aplikacija u većini javnih infrastruktura u oblaku ne može znati koji se protokol za pohranu koristi; u stvari, protokol se čak može dinamički mijenjati. Ne znamo koji protokol za pohranu Amazon koristi za Elastic Block Storage, niti nam je važno znati.

Zbog razdvajanja između modela pohrane i protokola za pohranu, protokol za pohranu postaje problem koji se suočava s infrastrukturom, prije svega važan za troškove i performanse, a ne odluka koja se suočava s aplikacijom koja diktira funkcionalnost.

Pohrana u oblaku

Krajolik podatkovnog centra ponovno se mijenja kako se virtualizirana okruženja pretvaraju u oblačna okruženja. Cloud okruženja obuhvaćaju model virtualnog diska koji je pionir u virtualizaciji i pružaju dodatne modele koji omogućuju potpuno virtualizirani stog za pohranu. Cloud okruženja pokušavaju virtualizirati čitav stog pohrane tako da mogu pružiti samoposluživanje i čisto odvajanje između infrastrukture i aplikacije.

Cloud okruženja postoje u mnogim oblicima. Poduzeća ih mogu implementirati kao privatne oblake koristeći okruženja poput OpenStack, CloudStack i VMware vRealize suite. Davatelji usluga mogu ih implementirati i kao javne oblake kao što su Amazon Web Services, Microsoft Azure i Rackspace.

Zanimljivo je da modeli pohrane koji se koriste u oblačnim okruženjima zrcale one koji se koriste u fizičkim okruženjima. Međutim, kao i kod virtualnih diskova, oni su modeli pohrane apstrahirani daleko od višestrukih protokola za pohranu koji se mogu koristiti za njihovu implementaciju.

Instancija za pohranu: virtualni diskovi u oblaku

Model pohrane virtualnog diska primarni je (ili jedini) model za pohranu u konvencionalnim virtualiziranim okruženjima. Međutim, u oblačnim okruženjima ovaj je model jedan od tri. Stoga je modelu dodijeljeno određeno ime u oblačnim okruženjima: primjer pohrane, što znači pohrana koja se troši poput konvencionalnih virtualnih diskova.

Važno je napomenuti da je pohrana instance model za pohranu, a ne protokol za pohranu i može se implementirati na više načina. Na primjer, pohrana instance ponekad se implementira pomoću DAS-a na samim računskim čvorovima. Ovako provedena, često se naziva efemernom pohranom jer pohrana obično nije visoko pouzdana.

Instance pohrana također se može implementirati kao pouzdana pohrana pomoću NAS-a ili volumena, drugi model pohrane koji je sljedeći opisan. Na primjer, OpenStack omogućuje korisnicima da implementiraju pohranu instance kao efemernu pohranu na hostovima, kao datoteke na NFS točkama montiranja ili kao Cinder volumene koristeći boot-from-volume.

Volumen: SAN bez fizičkog

Instance pohrana, međutim, ima svoja ograničenja. Programeri izvornih aplikacija u oblaku često izričito razlikuju podatke o konfiguraciji, poput OS-a i podataka aplikacija, od korisničkih podataka, poput tablica baze podataka ili datoteka podataka. Podijelivši to dvoje, programeri mogu konfiguraciju učiniti privremenom i obnovljivom, a pritom zadržati snažnu pouzdanost korisničkih podataka.

Ova razlika, pak, dovodi do druge vrste pohrane: volumena pohrane, hibrida pohrane instance i SAN. Volumen je primarna jedinica za pohranu volumena, a ne VM. Volumen se može odvojiti od jednog VM-a i pridružiti drugom. Međutim, poput virtualnog diska, volumen više podsjeća na datoteku nego na LUN u mjerilu i apstrakciji. Za razliku od primjerice pohrane, za količinsku pohranu obično se pretpostavlja da je vrlo pouzdana i često se koristi za korisničke podatke.

OpenStack's Cinder primjer je spremišta volumena, kao i Dockerova neovisna apstrakcija volumena. Ponovno imajte na umu da je volumen pohrane model pohrane, a ne protokol za pohranu. Pohrana podataka može se implementirati na protokole datoteka poput NFS-a ili blokirati protokole kao što je iSCSI, transparentno u aplikaciju.

Pohrana predmeta: NAS web razmjera

Izvorne aplikacije u oblaku također trebaju dom za podatke koji se dijele između VM-ova, ali često trebaju prostore imena koji se mogu prilagoditi na više podatkovnih centara u geografskim regijama. Pohrana objekata pruža upravo ovu vrstu pohrane. Na primjer, Amazonov S3 pruža jedinstveni logički prostor imena u cijeloj regiji i, vjerojatno, u cijelom svijetu. Da bi postigao ovu ljestvicu, S3 je trebao žrtvovati snažnu dosljednost i finozrnato ažuriranje konvencionalnih NAS-a.

Pohrana objekata pruža apstrakciju nalik datoteci koja se naziva objekt, ali pruža konačnu dosljednost. To znači da, iako će svi klijenti na kraju dobiti iste odgovore na svoje zahtjeve, oni mogu privremeno dobiti različite odgovore. Ta je dosljednost slična dosljednosti koju pruža Dropbox između dva računala; klijenti se mogu privremeno udaljiti od sinkronizacije, ali na kraju će se sve konvergirati.

Tradicionalne pohrane predmeta također pružaju pojednostavljeni skup podatkovnih operacija podešenih za upotrebu preko WAN veza s velikom latencijom: popisivanje objekata u "segmentu", čitanje objekta u cijelosti i zamjena podataka u objektu s potpuno novim podacima. Ovaj model pruža osnovniji skup operacija od NAS-a, što aplikacijama omogućuje čitanje i pisanje malih blokova unutar datoteke, skraćivanje datoteka u nove veličine, premještanje datoteka između direktorija itd.