Programmēšana

Izpratne par mākoņa krātuves modeļiem

Kurš būtu domājis, ka bitu glabāšana var kļūt tik neticami sarežģīta? Krātuve vienmēr ir saturējusi daudz protokolu, sākot no Fibre Channel līdz iSCSI un beidzot ar SMB visās tās variācijās, taču zibspuldzes ienākšana un nepārtraukta virtualizācijas izaugsme jau tā blīvo tēmu ir padarījusi par samudžinātu akronīmu, protokolu un abstrakciju džungļiem.

Datu centra virtualizācija ir pamudinājusi virtualizācijas vilni arī glabātuvē, pakāpeniski atvelkot krātuvi no fiziskajiem protokoliem un virzoties uz loģiskiem, abstraktiem krātuves modeļiem, piemēram, gadījumu glabāšanu un sējumu krātuvi. Nodrošinot abstrakcijas, datu centrs ir nepārtraukti atdalījis virtuālās mašīnas no krātuves protokoliem.

Mākoņdatu centru pieaugums ir radījis arī jaunu krātuves klasi, ko sauc par objektu krātuvi, kas upurē tradicionālo krātuves protokolu stingru konsekvenci, lai globālā mērogā nodrošinātu atsevišķas nosaukumvietas.

Šajā rakstā es sniegšu zināmu skaidrību, ievietojot datu centra attīstībā gadījumu, apjomu un objektu krātuvi, un parādīšu, kā šīs jaunās abstrakcijas iederas virs esošajiem krātuves protokoliem vai blakus tiem.

Stāsts par mākoņu glabāšanu daudzējādā ziņā ir virtualizācijas stāsts. Sākšu ar fizisko vidi, pāreju uz virtualizāciju, kur virtuālie un fiziskie modeļi sāk atšķirties, un pabeigšu ar mākoni, kur fizisko gandrīz pilnībā abstrahē virtuālie modeļi.

Fiziskā uzglabāšana

Visas krātuves pamatā ir daži fiziskās krātuves protokolu komplekti, tāpēc es sākšu ar ātru fiziskās krātuves apkopojumu. Mūsdienās tiek izmantotas trīs galvenās fizisko krātuves modeļu klases: tiešā pievienotā krātuve (DAS), krātuves tīkls (SAN) un tīkla piesaistītā krātuve (NAS).

DAS. Tiešā pievienotā atmiņa ir vienkāršākais glabāšanas modelis. Mēs visi esam pazīstami ar DAS; šo modeli izmanto lielākā daļa klēpjdatoru, tālruņu un galddatoru. DAS galvenā vienība ir pats dators; servera krātuve nav atdalāma no paša servera. Tālruņa gadījumā fiziski nav iespējams noņemt krātuvi no aprēķina, bet pat serveru gadījumā, kur teorētiski ir iespējams izvilkt diskdziņus, tiklīdz disks ir atdalīts no servera, tas parasti tiek izdzēsts pirms atkārtota izmantošana. SCSI un SATA ir DAS protokolu piemēri.

SAN. Galu galā krātuves nozare atzina lietderību atdalīt krātuvi no aprēķina. Tā vietā, lai pievienotu diskus katram atsevišķam datoram, mēs visus diskus ievietojām vienā serveru klasterī un piekļuvām diskam tīklā. Tas vienkāršo krātuves pārvaldības uzdevumus, piemēram, dublēšanu un kļūmju labošanu. Šo krātuves un skaitļošanas sadalījumu bieži sauc par koplietojamo krātuvi, jo vairāki datori izmantos vienu krātuves kopu.

Visvienkāršāk bija sazināties starp klientu un serveri tīklā, izmantojot tos pašus (vai ļoti līdzīgus) bloku protokolus, kas tika izmantoti saziņai ar lokāli pievienotajiem diskdziņiem. Šādi pakļautu krātuvi sauc par krātuves tīklu. Fibre Channel un iSCSI ir SAN protokolu piemēri.

SAN sistēmā administrators grupēs disku kopu (vai daļu no disku kopas) LUN (loģiskā vienībā), kas pēc tam uz ārējiem datoriem izturas kā viens diska disks. LUN ir galvenā vienība, ko izmanto, lai pārvaldītu SAN krātuvi.

NAS. Kaut arī SAN ļauj mums pārvietot LUN no viena datora uz otru, viņu izmantotie bloku protokoli nav izstrādāti, lai vienlaikus koplietotu datus vienā un tajā pašā LUN starp datoriem. Lai atļautu šāda veida koplietošanu, mums ir nepieciešama jauna veida krātuve, kas izveidota vienlaicīgai piekļuvei. Šajā jaunā veida krātuvē mēs sazināmies ar krātuvi, izmantojot failu sistēmas protokolus, kas ļoti līdzinās vietņu datoros darbināmām failu sistēmām. Šāda veida krātuve ir pazīstama kā tīkla piesaistīta krātuve. NFS un SMB ir NAS protokolu piemēri.

Failu sistēmas abstrakcija ļauj vairākiem serveriem vienlaikus piekļūt vieniem un tiem pašiem datiem. Vairāki serveri var vienlaikus lasīt vienu un to pašu failu, un vairāki serveri vienlaikus var ievietot jaunus failus failu sistēmā. Tādējādi NAS ir ļoti ērts koplietojamo lietotāju vai lietojumprogrammu datu modelis.

NAS krātuve ļauj administratoriem piešķirt krātuves daļas atsevišķās failu sistēmās. Katra failu sistēma ir viena nosaukumvieta, un failu sistēma ir galvenā vienība, ko izmanto NAS pārvaldībai.

Virtuālā krātuve

Virtualizācija mainīja mūsdienu datu centra ainavu glabāšanai tāpat kā skaitļošanai. Tāpat kā fiziskās mašīnas tika abstrahētas virtuālajās mašīnās, fiziskā krātuve tika abstrahēta virtuālajos diskos.

Virtualizācijā hipervizors nodrošina emulētu aparatūras vidi katrai virtuālajai mašīnai, ieskaitot datoru, atmiņu un krātuvi. Sākotnējais mūsdienu hipervizors VMware izvēlējās līdzināties vietējiem fizisko disku diskdziņiem kā veidu, kā nodrošināt krātuvi katram VM. Citādi sakot, VMware izvēlējās lokālā diska (DAS) modeli kā veidu, kā pakļaut krātuvi virtuālajām mašīnām.

Tāpat kā DAS krātuves pamatvienība ir fiziskā mašīna, virtuālā diska krātuvē galvenā vienība ir VM. Virtuālie diski netiek eksponēti kā neatkarīgi objekti, bet gan kā daļa no konkrētas virtuālās mašīnas, tieši tāpat kā lokālie diski konceptuāli ir fiziska datora daļa. Tāpat kā DAS gadījumā, virtuālais disks dzīvo un mirst kopā ar pašu VM; ja tiek izdzēsta virtuālā mašīna, tiks izdzēsts arī virtuālais disks.

Lielākā daļa parasto virtualizācijas platformu izmanto virtuālā diska krātuves modeli. Piemēram, glabāšana VMware vSphere, Microsoft Hyper-V, Red Hat Enterprise Virtualization un Xen vidēs tiek līdzīgi pārvaldīta un piesaistīta.

Virtuālo disku ieviešana

Tā kā VMware vēlējās virtuālajām mašīnām turpināt sniegt koplietošanas krātuves priekšrocības, tā nevarēja paļauties uz DAS protokolu, lai ieviestu virtuālos diskus. Acīmredzama nākamā izvēle būtu izmantot SAN, jo SAN LUN ļoti atgādina vietējo diskdzini.

Tomēr fiziskām LUN ir ierobežojumi, kas virtuālajiem diskiem padara izaicinošu piemērotību. Virtualizētās vides apvieno vairākus loģiskos datorus vienā fiziskā serverī, kas nozīmē, ka virtuālo disku skaits attiecīgajā resursdatorā būs daudz lielāks nekā resursdatora fizisko LUN skaits fiziskajā vidē. Maksimālais LUN skaits, ko varēja pievienot attiecīgajam fiziskajam serverim, bija pārāk mazs, lai atbalstītu nepieciešamo virtuālo disku skaitu.

Varbūt vēl svarīgāk ir tas, ka virtuālajiem diskiem, tāpat kā virtuālajiem procesoriem, jābūt loģiskiem objektiem, kurus var izveidot, iznīcināt un pārvietot programmatiski, un tās nav operācijas, kuru veikšanai bija paredzēta SAN atmiņa. Piemēram, VMware vajadzēja dinamiski pārvietot VM starp fiziskajiem resursdatoriem, kam migrācijas laikā bija nepieciešama koplietojama krātuves piekļuve.

Šo iemeslu dēļ VMware izvēlējās virtuālos diskus ieviest kā failus failu sistēmā (NFS) vai kā sadalītu failu sistēmu (VMFS) SAN, nevis kā neapstrādātus LUN.

Sākot ar glabāšanas protokoliem un beidzot ar glabāšanas modeļiem

Tas, ka VMware izvēlējās ieviest virtuālos diskus, DAS stila bloku glabāšanas modeli, papildus NAS vai SAN, ilustrē vienu no mūsdienu datu centra krātuves interesantajām īpašībām. Tā kā virtuālās mašīnas IO tiek nodota programmatūrai, kas atrodas hipervizorā, nevis aparatūrai ierīces kopnē, protokolam, ko VM izmanto saziņai ar hipervizoru, nav jāatbilst protokolam, kuru hipervizors izmanto, lai sazinātos ar pati uzglabāšana.

Tas noved pie tā, ka tiek nošķirts krātuves modelis, kas tiek pakļauts VM un administratoram, un krātuves protokols, kuru hipervizors izmanto, lai faktiski uzglabātu datus. Virtuālo disku gadījumā VMware tos izstrādāja pēc DAS krātuves modeļa, pēc tam to ieviešanai izmantoja NAS krātuves protokolu.

Tas ir spēcīgs nenoteiktības slānis; tas mums ļauj elastīgi sajaukt un saskaņot krātuves modeļus un krātuves protokolus un pat dinamiski mainīt krātuves protokolu, neietekmējot virtuālās mašīnas. Piemēram, virtuālie diski tiek ieviesti, izmantojot failus NFS, failus VMFS, kas saglabāti Fibre Channel LUN, vai pat (VVols vai Virtuālos sējumos) tieši kā iSCSI LUN. Ieviešanas izvēle lietojumprogrammai ir pilnīgi pārredzama, jo galu galā visi šie protokoli VM un administratoram izskatīsies vienādi; tie izskatīsies kā vietējie, fiziskie diski, kas pievienoti VM.

Tādējādi lietojumprogrammu izstrādātājs lielākajā daļā publisko mākoņu infrastruktūru nevar zināt, kāds glabāšanas protokols tiek izmantots; faktiski protokols var pat dinamiski mainīties. Mēs nezinām, kādu atmiņas protokolu Amazon izmanto elastīgo bloku glabāšanai, un mums tas nav svarīgi zināt.

Tā kā krātuves modelis un krātuves protokols ir nošķirti, krātuves protokols kļūst par infrastruktūras problēmu, kas galvenokārt ir svarīga izmaksu un veiktspējas ziņā, nevis ar lietojumprogrammu saistītu lēmumu, kas nosaka funkcionalitāti.

Mākoņglabātuve

Datu centra ainava atkal mainās, kad virtualizētās vides pārvēršas mākoņu vidēs. Mākoņu vide aptver virtualizācijas diska modeli, kas ir pirmais virtualizācijas procesā, un tie nodrošina papildu modeļus, lai iespējotu pilnībā virtualizētu krātuves kaudzi. Mākoņu vidēs tiek mēģināts virtualizēt visu krātuves kaudzīti, lai tās varētu nodrošināt pašapkalpošanos un tīru nošķiršanu starp infrastruktūru un lietojumprogrammām.

Mākoņu vide pastāv dažādos veidos. Uzņēmumi tos var ieviest kā privātus mākoņus, izmantojot tādas vides kā OpenStack, CloudStack un VMware vRealize suite. Pakalpojumu sniedzēji tos var ieviest arī kā publiskus mākoņus, piemēram, Amazon Web Services, Microsoft Azure un Rackspace.

Interesanti, ka mākoņu vidēs izmantotie krātuves modeļi atspoguļo tos, kas tiek izmantoti fiziskajā vidē. Tomēr, tāpat kā ar virtuālajiem diskiem, tie ir glabāšanas modeļi, kas atdalīti no vairākiem atmiņas protokoliem, kurus var izmantot to ieviešanai.

Instances krātuve: virtuālie diski mākonī

Virtuālā diska krātuves modelis ir primārais (vai vienīgais) glabāšanas modelis parastās virtualizētās vidēs. Tomēr mākoņu vidēs šis modelis ir viens no trim. Tāpēc modelim mākoņa vidēs tiek piešķirts īpašs nosaukums: instances krātuve, kas nozīmē glabātuvi, kas patērēta kā parastie virtuālie diski.

Ir svarīgi atzīmēt, ka instances krātuve ir krātuves modelis, nevis krātuves protokols, un to var ieviest vairākos veidos. Piemēram, gadījumu glabāšana dažreiz tiek ieviesta, izmantojot DAS pašos skaitļošanas mezglos. Šādi ieviešot, to bieži sauc par īslaicīgu uzglabāšanu, jo glabāšana parasti nav īpaši uzticama.

Eksemplāru krātuvi var arī ieviest kā uzticamu krātuvi, izmantojot NAS vai sējumu krātuvi - otro tālāk aprakstīto krātuves modeli. Piemēram, OpenStack ļauj lietotājiem ieviest instances krātuvi kā īslaicīgu krātuvi resursdatoros, kā failus NFS pievienošanas punktos vai kā Cinder sējumus, izmantojot sāknēšanas no sējuma.

Skaļuma glabāšana: SAN fizisko

Tomēr eksemplāru glabāšanai ir savi ierobežojumi. Mākoņa vietējo lietojumprogrammu izstrādātāji bieži vien skaidri nošķir konfigurācijas datus, piemēram, OS un lietojumprogrammu datus, no lietotāja datiem, piemēram, datu bāzes tabulām vai datu failiem. Sadalot abus, izstrādātāji pēc tam var padarīt konfigurāciju pārejošu un atjaunojamu, vienlaikus saglabājot spēcīgu lietotāju datu uzticamību.

Šī atšķirība savukārt noved pie cita veida krātuves: apjoma krātuves, piemēra krātuves un SAN hibrīda. Apjoms ir galvenā apjoma krātuves vienība, nevis VM. Sējumu var atdalīt no viena VM un pievienot citam. Tomēr, tāpat kā virtuālais disks, sējums mērogā un abstrakcijā vairāk līdzinās failam nekā LUN. Atšķirībā no gadījuma glabāšanas lielapjoma atmiņa parasti tiek uzskatīta par ļoti uzticamu un bieži tiek izmantota lietotāja datiem.

OpenStack’s Cinder ir apjoma veikala piemērs, tāpat kā Docker neatkarīgā apjoma abstrakcija. Vēlreiz ņemiet vērā, ka sējumu krātuve ir krātuves modelis, nevis krātuves protokols. Lielapjoma atmiņu var ieviest virs faila protokoliem, piemēram, NFS, vai bloķēt protokolus, piemēram, iSCSI, pārredzami lietojumprogrammai.

Objekta krātuve: tīmekļa mēroga NAS

Mākoņa vietējām lietojumprogrammām ir nepieciešama arī vieta, kur datus koplietot starp virtuālajām mašīnām, taču tām bieži nepieciešamas vārdu vietas, kuras var mērogot līdz vairākiem datu centriem visos ģeogrāfiskajos reģionos. Objekta krātuve nodrošina tieši šāda veida krātuvi. Piemēram, Amazon's S3 nodrošina vienu loģisku nosaukumvietu visā reģionā un, iespējams, visā pasaulē. Lai sasniegtu šo mērogu, S3 vajadzēja upurēt parastās NAS spēcīgo konsistenci un smalkgraudainos atjauninājumus.

Objekta krātuve nodrošina failam līdzīgu abstrakciju, ko sauc par objektu, taču tā nodrošina konsekvenci. Tas nozīmē, ka, lai gan visi klienti galu galā saņems vienādas atbildes uz saviem pieprasījumiem, viņi uz laiku var saņemt dažādas atbildes. Šī konsekvence ir līdzīga konsekvencei, ko nodrošina Dropbox starp diviem datoriem; klienti var īslaicīgi izkļūt no sinhronizācijas, bet galu galā viss saplūdīs.

Tradicionālie objektu veikali nodrošina arī vienkāršotu datu operāciju kopumu, kas pielāgots lietošanai, izmantojot augstas latentuma WAN savienojumus: objektu uzskaitīšana “spainī”, objekta lasīšana kopumā un objekta datu aizstāšana ar pilnīgi jauniem datiem. Šis modelis nodrošina pamata darbību kopumu nekā NAS, kas ļauj lietojumprogrammām lasīt un rakstīt nelielus blokus failā, saīsināt failus jaunos izmēros, pārvietot failus starp direktorijiem utt.

$config[zx-auto] not found$config[zx-overlay] not found