Programmering

Forstå modeller for skylagring

Hvem hadde trodd at lagring av biter kunne bli så utrolig komplisert? Lagring har alltid inneholdt en mengde protokoller, fra Fibre Channel til iSCSI til SMB i alle dens varianter, men ankomsten av flash og den kontinuerlige veksten av virtualisering har gjort et allerede tett emne til en sammenfiltret jungel av akronymer, protokoller og abstraksjoner.

Virtualiseringen av datasenteret har også ført til en virtualiseringsbølge i lagring, som gradvis har trukket lagring fra fysiske protokoller og mot logiske, abstrakte lagringsmodeller som for eksempel lagring og volumlagring. Ved å tilby abstraksjoner har datasenteret frakoblet virtuelle maskiner fra lagringsprotokoller.

Fremveksten av sky-datasentre har også skapt en ny lagringsklasse som kalles objektlagring, som ofrer den sterke konsistensen av tradisjonelle lagringsprotokoller for å gi enkle navneområder på global skala.

I denne artikkelen vil jeg gi litt klarhet ved å plassere forekomst, volum og objektlagring i utviklingen av datasenteret, og vise hvordan disse nye abstraksjonene passer på eller ved siden av eksisterende lagringsprotokoller.

Historien om skylagring er på mange måter en historie om virtualisering. Jeg begynner med fysiske miljøer, går over til virtualisering, hvor virtuelle og fysiske modeller begynner å avvike, og avslutter med skyen, der det fysiske er nesten fullstendig abstrahert av virtuelle modeller.

Fysisk lagring

Roten til all lagring er noen sett med fysiske lagringsprotokoller, så jeg begynner med et raskt sammendrag av fysisk lagring. Tre hovedklasser av fysiske lagringsmodeller er i bruk i dag: direkte tilkoblet lagring (DAS), lagringsnettverket (SAN) og nettverkstilkoblet lagring (NAS).

DAS. Direkte tilknyttet lagring er den enkleste lagringsmodellen. Vi er alle kjent med DAS; dette er modellen som brukes av de fleste bærbare datamaskiner, telefoner og stasjonære datamaskiner. Den grunnleggende enheten i DAS er selve datamaskinen; lagringen for en server kan ikke skilles fra selve serveren. Når det gjelder en telefon er det fysisk umulig å fjerne lagringsplassen fra databehandlingen, men selv når det gjelder servere, hvor det teoretisk er mulig å trekke diskstasjoner, blir den vanligvis tørket før en stasjon er skilt fra serveren. gjenbruk. SCSI og SATA er eksempler på DAS-protokoller.

SAN. Til slutt anerkjente lagringsindustrien nytten av å skille lagring fra beregningen. I stedet for å koble disker til hver enkelt datamaskin, plasserte vi alle diskene på en enkelt klynge med servere og fikk tilgang til disken over nettverket. Dette forenkler lagringsadministrasjonsoppgaver som sikkerhetskopiering og reparasjon av feil. Denne delingen av lagring og beregning kalles ofte delt lagring, siden flere datamaskiner vil bruke ett lagringslag.

Det var enklest å kommunisere mellom klienten og serveren over nettverket ved hjelp av de samme (eller veldig lignende) blokkeringsprotokollene som ble brukt til å kommunisere med lokalt tilkoblede diskstasjoner. Lagring eksponert på denne måten kalles et lagringsnettverk. Fibre Channel og iSCSI er eksempler på SAN-protokoller.

I et SAN vil en administrator gruppere et sett med disker (eller en del av et sett med disker) i en LUN (logisk enhet), som deretter oppfører seg som en enkelt diskstasjon til eksterne datamaskiner. LUN er den grunnleggende enheten som brukes til å administrere SAN-lagring.

NAS. Mens SAN-er tillater oss å flytte LUN-er mellom en datamaskin og en annen, var blokkprotokollene de bruker ikke designet for å dele data i samme LUN samtidig mellom datamaskiner. For å tillate denne typen deling trenger vi en ny type lagring bygget for samtidig tilgang. I denne nye typen lagring kommuniserer vi med lagringen ved hjelp av filsystemprotokoller, som ligner på filsystemene som kjøres på lokale datamaskiner. Denne typen lagring er kjent som nettverkstilkoblet lagring. NFS og SMB er eksempler på NAS-protokoller.

Abstraksjonen av filsystemet lar flere servere få tilgang til de samme dataene samtidig. Flere servere kan lese den samme filen samtidig, og flere servere kan plassere nye filer i filsystemet samtidig. Dermed er NAS en veldig praktisk modell for delte bruker- eller applikasjonsdata.

NAS-lagring tillater administratorer å tildele deler av lagring til individuelle filsystemer. Hvert filsystem er et enkelt navneområde, og filsystemet er den primære enheten som brukes til å administrere NAS.

Virtuell lagring

Virtualisering endret landskapet til det moderne datasenteret for lagring som det gjorde for beregning. Akkurat som fysiske maskiner ble abstrahert til virtuelle maskiner, ble fysisk lagring abstrahert til virtuelle disker.

I virtualisering gir hypervisoren et emulert maskinvaremiljø for hver virtuell maskin, inkludert datamaskin, minne og lagring. VMware, den første moderne hypervisoren, valgte å etterligne lokale fysiske diskstasjoner som en måte å gi lagring for hver VM. Sagt på en annen måte, VMware valgte den lokale diskstasjonen (DAS) -modellen som måten å eksponere lagring på virtuelle maskiner.

Akkurat som den grunnleggende lagringsenheten i DAS er den fysiske maskinen, er den grunnleggende enheten i virtuell disklagring VM. Virtuelle disker blir ikke eksponert som uavhengige objekter, men som en del av en bestemt virtuell maskin, akkurat slik lokale disker konseptuelt er en del av en fysisk datamaskin. Som med DAS, lever og dør en virtuell disk med selve VM; Hvis VM slettes, vil den virtuelle disken også bli slettet.

De fleste konvensjonelle virtualiseringsplattformer bruker en lagringsmodell for virtuell disk. Lagring i VMware vSphere, Microsoft Hyper-V, Red Hat Enterprise Virtualization og Xen-miljøer administreres for eksempel på en lignende måte.

Implementering av virtuelle disker

Fordi VMware ønsket å fortsette å gi fordelene med delt lagring til virtuelle maskiner, kunne den ikke stole på en DAS-protokoll for å implementere virtuelle disker. Det åpenbare neste valget ville være å bruke SAN, siden en SAN LUN ligner en lokal diskstasjon.

Imidlertid har fysiske LUN-er begrensninger som gir en utfordrende passform for virtuelle disker. Virtualiserte miljøer konsoliderer et antall logiske datamaskiner til en enkelt fysisk server, noe som betyr at antall virtuelle disker på en gitt vert vil være mye større enn antall fysiske LUN-er for en vert i et fysisk miljø. Maksimalt antall LUN-er som kunne kobles til en gitt fysisk server var for lavt til å støtte det nødvendige antallet virtuelle disker.

Kanskje enda viktigere, virtuelle disker, som med virtuelle CPUer, må være logiske objekter som kan opprettes, ødelegges og flyttes programmatisk, og dette er ikke operasjoner som SAN-lagring ble designet for å utføre. For eksempel trengte VMware å dynamisk flytte virtuelle maskiner mellom fysiske verter, noe som krevde tilgang til delt lagring under overføringen.

Av disse grunnene valgte VMware å implementere virtuelle disker som filer i et filsystem (NFS) eller i et distribuert filsystem (VMFS) på SAN, i stedet for som rå LUN-er.

Fra lagringsprotokoller til lagringsmodeller

At VMware valgte å implementere virtuelle disker, en DAS-stil blokkeringsmodell, på toppen av NAS eller SAN, illustrerer en av de interessante egenskapene til moderne datasenterlagring. Fordi IO fra en virtuell maskin blir overlevert til programvare i hypervisor, i stedet for til maskinvare på en enhetsbuss, trenger ikke protokollen som brukes av VM for å kommunisere med hypervisoren, å matche protokollen som hypervisor bruker for å kommunisere med lagring selv.

Dette fører til et skille mellom lagringsmodellen som er eksponert oppover for VM og administrator, og lagringsprotokollen som brukes av hypervisor for å faktisk lagre dataene. Når det gjelder virtuelle disker, designet VMware dem i henhold til en DAS-lagringsmodell, og brukte deretter en NAS-lagringsprotokoll for å implementere dem.

Dette er et kraftig lag av indireksjon; det gir oss fleksibiliteten til å mikse og matche lagringsmodeller og lagringsprotokoller, og til og med endre lagringsprotokollen dynamisk uten å påvirke virtuelle maskiner. For eksempel implementeres virtuelle disker ved hjelp av filer i NFS, filer i VMFS lagret på Fibre Channel LUNs, eller til og med (i VVols eller Virtual Volumes) direkte som iSCSI LUNs. Valget av implementering er helt gjennomsiktig for applikasjonen, fordi til slutt vil alle disse protokollene se likt ut for VM og administrator; de vil se ut som lokale, fysiske diskstasjoner som er koblet til virtuelle maskiner.

Dermed kan ikke applikasjonsutvikleren i de fleste offentlige skyinfrastrukturer vite hvilken lagringsprotokoll som er i bruk; faktisk kan protokollen endres dynamisk. Vi vet ikke hvilken lagringsprotokoll Amazon bruker for elastisk blokklagring, og det er heller ikke viktig for oss å vite.

På grunn av skillet mellom lagringsmodell og lagringsprotokoll, blir lagringsprotokollen et problem med infrastrukturen, først og fremst viktig for kostnader og ytelse, snarere enn en applikasjonsrettet beslutning som dikterer funksjonalitet.

Skylagring

Landskapet til datasenteret skifter igjen når virtualiserte miljøer forvandles til skymiljøer. Skymiljøer omfavner den virtuelle diskmodellen som var banebrytende innen virtualisering, og de gir tilleggsmodeller for å muliggjøre en fullt virtualisert lagringsstabel. Skymiljøer prøver å virtualisere hele lagringsstakken slik at de kan tilby selvbetjening og et rent skille mellom infrastruktur og applikasjon.

Skymiljøer finnes i mange former. De kan implementeres av bedrifter som private skyer ved hjelp av miljøer som OpenStack, CloudStack og VMware vRealize-pakken. De kan også implementeres av tjenesteleverandører som offentlige skyer som Amazon Web Services, Microsoft Azure og Rackspace.

Interessant er at lagringsmodellene som brukes i skymiljøer, speiler de som brukes i fysiske miljøer. Imidlertid, som med virtuelle disker, er de lagringsmodeller som er abstrahert bort fra flere lagringsprotokoller som kan brukes til å implementere dem.

Instanslagring: Virtuelle disker i skyen

Den virtuelle disklagringsmodellen er den primære (eller eneste) modellen for lagring i konvensjonelle virtualiserte miljøer. I skymiljøer er denne modellen imidlertid en av tre. Derfor får modellen et spesifikt navn i skymiljøer: forekomstlagring, noe som betyr lagring forbrukes som konvensjonelle virtuelle disker.

Det er viktig å merke seg at forekomstlagring er en lagringsmodell, ikke en lagringsprotokoll, og kan implementeres på flere måter. For eksempel blir forekomslagelse noen ganger implementert ved hjelp av DAS på selve beregningsnodene. Implementert på denne måten kalles det ofte kortvarig lagring fordi lagringen vanligvis ikke er veldig pålitelig.

Instanslagring kan også implementeres som pålitelig lagring ved hjelp av NAS eller volumlagring, en andre lagringsmodell som beskrives neste. For eksempel tillater OpenStack brukere å implementere forekomslagring som kortvarig lagring på vertene, som filer på NFS-monteringspunkter eller som Cinder-volumer ved hjelp av oppstart fra volum.

Volumlagring: SAN sans det fysiske

Instanslagring har imidlertid sine begrensninger. Utviklere av cloud-native applikasjoner skiller ofte eksplisitt konfigurasjonsdata, for eksempel OS og applikasjonsdata, fra brukerdata, for eksempel databasetabeller eller datafiler. Ved å dele de to, er utviklere i stand til å gjøre konfigurasjonen forbigående og gjenoppbyggbar, mens de fortsatt opprettholder sterk pålitelighet for brukerdata.

Dette skillet fører igjen til en annen type lagring: volumlagring, en hybrid av instanslagring og SAN. Et volum er den primære enheten for volumlagring i stedet for en VM. Et volum kan kobles fra en VM og festes til en annen. Imidlertid, som en virtuell disk, ligner et volum nærmere en fil enn en LUN i skala og abstraksjon. I motsetning til forekomstlagring antas volumlagring vanligvis å være svært pålitelig og brukes ofte til brukerdata.

OpenStack’s Cinder er et eksempel på en volumbutikk, det samme er Dockers uavhengige volumabstrahering. Merk igjen at volumlagring er en lagringsmodell, ikke en lagringsprotokoll. Volumlagring kan implementeres på toppen av filprotokoller som NFS eller blokkprotokoller som iSCSI transparent for applikasjonen.

Objektlagring: NAS på nettskala

Cloud-native applikasjoner trenger også et hjem for data som deles mellom virtuelle maskiner, men de trenger ofte navneområder som kan skaleres til flere datasentre på tvers av geografiske regioner. Objektlagring gir akkurat denne typen lagring. For eksempel gir Amazons S3 et enkelt logisk navneområde over en hel region og uten tvil over hele verden. For å nå denne skalaen trengte S3 å ofre den sterke konsistensen og de finkornede oppdateringene til konvensjonell NAS.

Objektlagring gir en fillignende abstraksjon kalt et objekt, men det gir eventuell konsistens. Dette betyr at mens alle klienter til slutt vil få de samme svarene på deres forespørsler, kan de midlertidig motta forskjellige svar. Denne konsistensen er lik konsistensen som Dropbox gir mellom to datamaskiner; klienter kan midlertidig gå ut av synkronisering, men til slutt vil alt konvergere.

Tradisjonelle objektbutikker gir også et forenklet sett med datafunksjoner innstilt for bruk over WAN-forbindelser med høy latens: å liste objektene i en "bøtte", lese et objekt i sin helhet og erstatte dataene i et objekt med helt nye data. Denne modellen gir et mer grunnleggende sett med operasjoner enn NAS, som gjør det mulig for applikasjoner å lese og skrive små blokker i en fil, å avkutte filer til nye størrelser, flytte filer mellom kataloger og så videre.

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