Capacity Tier (eller som vi kaller det inne i Vim - captir) dukket opp tilbake i tiden med Veeam Backup and Replication 9.5 Update 4 under navnet Archive Tier. Tanken bak er Ä gjÞre det mulig Ä flytte sikkerhetskopier som har falt ut av det sÄkalte operasjonelle gjenopprettingsvinduet til objektlagring. Dette bidro til Ä rydde opp diskplass for de brukerne som hadde lite av det. Og dette alternativet ble kalt Move Mode.
For Ä utfÞre denne enkle (som det ser ut til) handlingen, var det nok Ä oppfylle to betingelser: alle punkter fra den flyttede sikkerhetskopien mÄ vÊre utenfor grensene til det ovennevnte operasjonelle gjenopprettingsvinduet, som er eksplisitt angitt i brukergrensesnittet. Og for det andre: kjeden mÄ vÊre i den sÄkalte "sealed form" (sealed backup chain eller Inactive Backup Chain). Det vil si at det ikke skjer noen endringer i denne kjeden over tid.
Men i VBR v10 ble konseptet supplert med nye funksjoner â Copy Mode, Sealed Mode og en ting med det vanskelig Ă„ uttale navnet Immutability dukket opp.
Dette er de fascinerende tingene vi skal snakke om i dag. FĂžrst om hvordan det fungerte i VBR9.5u4, og deretter om endringene i den tiende versjonen.

Og mÄ forkjemperne for rent sprÄk tilgi meg, men det er for mange begreper som ikke kan oversettes.
SĂ„ det vil vĂŠre massevis av anglisismer her.
Og mange gifs.
Og bilder.
- Uten den minste anger. Forfatter av artikkelen.
Som det var
Vel, la oss starte med Ä analysere det operasjonelle gjenopprettingsvinduet og forseglet sikkerhetskopi (eller som de kalles i dokumentasjonen for Inactive Backup Chain). Uten deres forstÄelse vil ytterligere forklaring ikke vÊre mulig.
Som vi ser pÄ bildet har vi en slags backupkjede med datablokker, som ligger pÄ Performance tier SOBR til depotet som Capacity Tier er koblet til. VÄrt operative backup-vindu er tre dager.
FÞlgelig forsegler .vbk opprettet pÄ mandag den forrige kjeden, hvis vindu er satt til tre dager. Og det betyr at du trygt kan begynne Ä frakte alt som er eldre enn disse tre dagene til skytebanen.

Men hva menes egentlig med en forseglet kjede og hva kunne sendes til kapasitetsskytebanen i oppdatering 4?
For Forward Incremental er et tegn pÄ forsegling av kjeden opprettelsen av en ny full backup. Og det spiller ingen rolle hvordan denne fullstendige sikkerhetskopien oppnÄs: bÄde syntetiske fulle og aktive fulle sikkerhetskopier vurderes.
NÄr det gjelder Reverse, er dette alle filer som ikke faller inn i driftsvinduet.
I tilfelle av Forward increment med rollbacks, er disse alle rollbacks og .vbk, hvis det er en annen .vbk pÄ ytelsesomfanget

La oss nÄ vurdere muligheten for Ä jobbe med Backup Copy-kjeder. Kun gjenstander som faller inn under GFS-oppbevaring ble fraktet hit. Fordi alt som er lagret i nyere sikkerhetskopikjeder kan endres pÄ en eller annen mÄte.

La oss nÄ se under panseret. Der oppstÄr en prosess som kalles dehydrering - etterlater tomme sikkerhetskopifiler pÄ omfanget og drar blokker fra disse filene til kapasitetsskytebanen. For Ä optimalisere denne prosessen brukes den sÄkalte dehydreringsindeksen, som lar deg unngÄ Ä kopiere blokker som allerede er kopiert til kapasitetsskytebanen.
La oss se hvordan dette ser ut med et eksempel: La oss si at vi har en .vbk som kom ut av transaksjonsvinduet og tilhÞrer en forseglet kjede. Det betyr at vi har all rett til Ä flytte den til kapasitetsskytebanen. PÄ tidspunktet for flytting opprettes en metadatafil i kapasitetsstreken og blokkene til den overfÞrte filen. Metadatafilen pÄ lenkenivÄ beskriver hvilke blokker filen vÄr bestÄr av. I tilfellet pÄ bildet bestÄr vÄr fÞrste fil av blokkene a, b, c og metadataene inneholder lenker til disse blokkene. NÄr vi har en andre .vbk-fil, klar til Ä flytte og som bestÄr av blokkene a, b og d, forstÄr vi, ved Ä analysere dehydreringsindeksen, at bare blokk d mÄ overfÞres. Og metadatafilen vil inneholde lenker til to tidligere blokker og en ny.

FÞlgelig kalles prosessen med Ä fylle disse tomme plassene tilbake med data rehydrering. Den bruker allerede sin egen rehydreringsindeks, basert pÄ den eldste .vbk-filen pÄ den lokale ytelsesgraden. Det vil si at hvis brukeren Þnsker Ä returnere en fil fra kapasitetsskytebanen, lager vi fÞrst en indeks over blokkene til den eldste full backup og overfÞrer kun de manglende blokkene fra kapasitetsskytegalleriet. I tilfellet som er presentert pÄ bildet, for Ä rehydrere FullBackup1.vbk i henhold til rehydreringsindeksen, trenger vi bare blokk C, som vi tar fra kapasitetsskytebanen. Hvis et lagringsskyobjekt fungerer som en skytebane med kapasitet, kan du spare enorme mengder penger.
Her kan det virke som om denne teknologien er identisk med den som brukes i WAN Accelerators, men det virker bare slik. I akseleratorer er deduplisering global; her brukes lokal deduplisering i hver fil med en bestemt forskyvning. Dette skjer pÄ grunn av forskjellen i oppgavene som lÞses: her mÄ vi kopiere store fulle backup-filer, og i fÞlge vÄr forskning, selv om det gÄr lang tid mellom dem, gir denne dedupliseringsalgoritmen det beste resultatet.

Men flere indekser for indeksguden! Det er ogsÄ en indeks for datagjenoppretting! NÄr vi begynner Ä gjenopprette en maskin som ligger i kapasitetsdashen, vil vi kun lese unike datablokker som ikke er i ytelsesdashen.

Hvordan skjedde det?
Det var alt for den innledende delen. Det er ganske detaljert, men som nevnt ovenfor, uten disse detaljene vil det ikke vÊre mulig Ä forklare hvordan de nye funksjonene fungerer. Derfor, uten videre, la oss gÄ videre til den fÞrste.
Kopimodus
Den er i stor grad basert pÄ eksisterende teknologier, men har en helt annen brukslogikk.
Hensikten med denne modusen er Ă„ sikre at alle data som er lokalisert i lokal utstrekning har en kopi i kapasitetsstreken.
Hvis du sammenligner Flytt- og Kopier-modusene front-on, vil det se slik ut:
- Bare den forseglede kjeden kan flyttes. Ved kopieringsmodus overfĂžres absolutt alt, uavhengig av hva som skjer i backupjobben.
- Flytting utlÞses nÄr filene gÄr utover grensene til det operative sikkerhetskopieringsvinduet, og kopiering utlÞses sÄ snart backupfilen vises.
- OvervÄking av nye data for kopiering skjer hele tiden, og for flytting ble det utlÞst en gang hver 4. time.
NÄr jeg vurderer den nye modusen, foreslÄr jeg Ä gÄ fra enkle eksempler til komplekse.
I det vanligste tilfellet har vi rett og slett nye filer med inkrementer, og vi kopierer dem ganske enkelt til kapasitetsskytebanen. Uansett hvilken modus som brukes i backupjobben, uansett om den tilhÞrer den forseglede delen av kjeden eller ikke, uavhengig av om driftsvinduet vÄrt er utlÞpt. De bare tok den og kopierte den.
Prosessen bak dette er fortsatt dehydrering som beskrevet ovenfor. I kopieringsmodus sÞrger den ogsÄ for at vi ikke kopierer blokker som allerede er pÄ lageret vÄrt. Den eneste forskjellen er at hvis vi i filmmodus erstattet ekte filer med dummy-filer, berÞrer vi dem ikke pÄ noen mÄte og lar alt vÊre som det er. Ellers er det nÞyaktig den samme dehydreringsindeksen, som nÞye prÞver Ä spare penger og tid.

SpÞrsmÄlet dukker opp - hvis du ser pÄ brukergrensesnittet, er det en mulighet til Ä velge begge alternativene samtidig. Hvordan vil en slik kombinert modus fungere?

La oss finne ut det.
Begynnelsen er standard: en sikkerhetskopifil opprettes og kopieres umiddelbart. Et inkrement opprettes til den og kopieres ogsÄ. Dette skjer til det Þyeblikket vi innser at filene har forlatt operasjonsvinduet vÄrt og en forseglet kjede har dukket opp. PÄ dette tidspunktet utfÞrer vi en dehydreringsoperasjon og erstatter disse filene med dummy-filer. SelvfÞlgelig kopierer vi ikke noe igjen til kapasitetsskytebanen.
All denne fascinerende logikken er ansvarlig for bare én avmerkingsboks i grensesnittet: Kopier sikkerhetskopier til objektlagring sÄ snart de er opprettet.

Hvorfor trenger vi denne kopimodusen?
Det er enda bedre Ä omformulere spÞrsmÄlet pÄ denne mÄten: hvilke risikoer er vi beskyttet mot med hjelpen? Hvilket problem hjelper det oss Ä lÞse?
Svaret er Äpenbart: selvfÞlgelig er dette datagjenoppretting. Hvis vi har en fullstendig kopi av lokale data pÄ objektlagringen, sÄ uansett hva som skjer med produktet vÄrt, kan vi alltid gjenopprette data fra filer som ligger i den betingede Amazon.
SÄ la oss gÄ gjennom de mulige scenariene, fra de enkleste til de mer komplekse.
Den enkleste ulykken som kan falle pÄ hodet er utilgjengeligheten til en av filene i sikkerhetskopikjeden.
En tristere historie er at en av utstrekningene til SOBR-depotet vÄrt gikk i stykker.
Enda verre blir det nÄr hele SOBR-depotet er blitt utilgjengelig, men kapasitetsskytebanen fungerer.
Og alt er virkelig dÄrlig - dette er nÄr backupserveren dÞr og ditt fÞrste Þnske er Ä prÞve Ä lÞpe til den kanadiske grensen pÄ ti minutter.

La oss nÄ se pÄ hver situasjon separat.
NÄr vi har mistet en (og til og med flere) sikkerhetskopifiler, er alt vi trenger Ä gjÞre Ä starte repository rescan-prosessen, og den tapte filen vil bli erstattet med en dummy-fil. Og ved Ä bruke rehydreringsprosessen (som ble diskutert i begynnelsen av artikkelen), vil brukeren kunne laste ned data fra kapasitetsskytebanen til lokal lagring.

NÄ er situasjonen mer komplisert. La oss anta at vÄr SOBR bestÄr av to utstrekninger som kjÞrer i Performance-modus, noe som betyr at vÄre .vbk og .vib er spredt over dem i et ganske ujevnt lag. Og pÄ et tidspunkt blir en av utstrekningene utilgjengelig, og brukeren trenger snarest Ä gjenopprette maskinen, en del av dataene som ligger nettopp pÄ dette omfanget.
Brukeren starter gjenopprettingsveiviseren, velger punktet han vil gjenopprette, og veiviseren, mens han arbeider, innser at han ikke har alle dataene som er nĂždvendige for gjenoppretting lokalt og derfor mĂ„ lastes ned fra kapasitetsopptaket galleri. Samtidig vil blokker som forblir pĂ„ lokal lagring ikke lastes ned fra skyen. Ăre til gjenopprettingsindeksen (ja, den ble ogsĂ„ nevnt i begynnelsen av artikkelen).

En undertype av denne saken er at hele SOBR-depotet ble utilgjengelig. I dette tilfellet har vi ingenting Ă„ kopiere fra lokal lagring, og alle blokker lastes ned fra skyen.
Og den mest interessante situasjonen er at backupserveren dĂžde. Det er to alternativer her: adminen er flott og har laget konfigurasjonssikkerhetskopier, og adminen er en ond Pinocchio selv og har ikke laget konfigurasjonssikkerhetskopier.
I det fÞrste tilfellet vil det vÊre nok for ham Ä bare distribuere en ren installasjon av VBR et sted og gjenopprette databasen fra en sikkerhetskopi ved hjelp av standardmidler. PÄ slutten av denne prosessen vil alt gÄ tilbake til det normale. Eller det vil bli gjenopprettet i henhold til et av scenariene ovenfor.
Men hvis administratoren enten er sin egen fiende, eller konfigurasjonsbackupen ogsÄ led en episk feil, vil vi ikke overlate ham til skjebnen selv her. For dette tilfellet har vi introdusert en ny prosedyre kalt Import Object Storage. Den lar deg hoppe over prosessen med Ä manuelt gjenskape et SOBR-lager og knytte en kapasitetsskytebane til det med pÄfÞlgende rescan, og ganske enkelt legge til et lagringsobjekt til Vim-grensesnittet og kjÞre Import Storage Repository-prosedyren. Det eneste som kan stÄ i veien mellom deg og sikkerhetskopiene dine er en forespÞrsel om Ä skrive inn et passord hvis sikkerhetskopiene dine var kryptert.
Dette handler sannsynligvis om kopieringsmodus, og vi gÄr videre til
Forseglet modus
Hovedideen er at nye sikkerhetskopier ikke kan vises pÄ den valgte SOBR-utstrekningen av depotet. FÞr v10 hadde vi bare vedlikeholdsmodus, da alt arbeid med depotet var fullstendig forbudt. En slags hardcore-modus for Ä stenge ned lagring, der bare Evakuer-knappen er tilgjengelig, som transporterer sikkerhetskopier til en annen grad en gang.
Og forseglet modus er et slags "mykt" alternativ: vi forbyr opprettelse av nye sikkerhetskopier og sletter gradvis gamle i henhold til valgt oppbevaring, men i prosessen mister vi ikke muligheten til Ä gjenopprette fra lagrede punkter. En veldig nyttig ting nÄr vi enten har en maskinvare som nÊrmer seg slutten av levetiden og trenger Ä erstatte den, eller vi bare trenger Ä frigjÞre den for noe viktigere, men det er ingen steder Ä ta den og flytte alt pÄ en gang. Eller det kan ikke slettes.
FĂžlgelig er operasjonsprinsippet ganske enkelt: det er nĂždvendig Ă„ forby alle skriveoperasjoner (utseendet til nye data), la lese (restaureringer) og slette (oppbevaring).
Begge modusene kan brukes samtidig, men husk at vedlikehold har hĂžyere prioritet.
Som et eksempel kan du vurdere en SOBR som bestÄr av to utstrekninger. La oss anta at vi de fÞrste fire dagene laget sikkerhetskopier i Forward Forever Incremental-modus, og deretter forsegler vi omfanget. Dette fÞrer til at vi starter opprettelsen av en ny aktiv full pÄ den andre tilgjengelige utstrekningen. Hvis vÄr oppbevaring er fire, blir den slettet med god samvittighet nÄr hele kjeden som ligger pÄ den forseglede utstrekningen gÄr utover sine grenser.

Det er situasjoner hvor sletting skjer tidligere. Dette er for eksempel Videresend inkrementell med periodiske fuller. Hvis vi opprettet fullstendige sikkerhetskopier for de to fÞrste dagene, og pÄ torsdag bestemmer vi oss for Ä forsegle depotet, sÄ pÄ fredag, nÄr en ny sikkerhetskopi opprettes, vil filen for mandag bli slettet fordi det er ingen avhengigheter til dette punktet. Og selve poenget er ikke avhengig av noen. SÄ venter vi til fire punkter er opprettet pÄ tilgjengelig omfang og sletter de resterende tre, som ikke kan slettes uavhengig av hverandre.

Ting er enklere med Reverse Incremental. I den er de eldste punktene ikke avhengige av noe og kan trygt slettes. Derfor, sÄ snart en ny .vbk er opprettet pÄ et nytt omfang, vil de gamle .vrbs bli slettet én etter én.
Forresten, hvorfor lager vi en ny .vbk hver gang: hvis vi ikke opprettet den, men fortsatte den gamle kjeden av inkrementer, ville den gamle .vbk fryse i uendelig lang tid i alle moduser, og forhindret sletting av den. Derfor ble det bestemt at sÄ snart omfanget er forseglet, lager vi en full backup pÄ det frie omfanget.

Ting er mer komplisert med kapasitetsskytebanen.
La oss fÞrst se pÄ kopieringsmodus. La oss anta at vi aktivt opprettet sikkerhetskopier i fire dager, og deretter ble kapasitetsskytebanen forseglet. Vi sletter ikke noe, men tÄler ydmykt oppbevaringen, hvoretter vi sletter dataene fra kapasitetsskytebanen.
Omtrent det samme skjer i flyttemodus - vi venter pÄ retusjeringen, sletter den gamle i det lokale lageret og sletter det som er lagret i objektlageret.

Et interessant eksempel med Forever forward incremental. Vi installerer oppbevaring pÄ tre punkter og begynner Ä lage sikkerhetskopier pÄ mandag, som jevnlig kopieres til skyen. Etter at lagringen er forseglet, fortsetter det Ä lage sikkerhetskopier, mens tre punkter opprettholdes, men dataene som er lagret i kapasitetsstreken forblir avhengige og kan ikke slettes. Derfor venter vi til torsdag, nÄr vÄr .vbk gÄr utover oppbevaring, og fÞrst da sletter vi rolig hele den lagrede kjeden.

Og en liten ansvarsfraskrivelse: alle eksemplene her vises med én maskin. Hvis du har flere av dem i sikkerhetskopien, vil retusjeringen deres variere avhengig av om Active Full ble laget eller ikke.
Det er i grunnen alt som skal til. SÄ la oss gÄ videre til den mest hardcore funksjonen -
Uforanderlighet
Som med de foregÄende punktene, er det fÞrste hvilket problem denne funksjonen lÞser. SÄ snart vi laster opp sikkerhetskopiene vÄre et sted for lagring, er det et sterkt Þnske om Ä garantere deres sikkerhet, det vil si Ä fysisk forby sletting og enhver endring under en gitt oppbevaring. Inkludert administratorer, inkludert under root-kontoene deres. Dette lar deg beskytte dem mot utilsiktet eller tilsiktet skade. Alle som jobber med AWS kan ha kommet over en lignende funksjon kalt Object Lock.
La oss nÄ se pÄ modusen i generelle termer, og deretter fordype oss i detaljene. I vÄrt eksempel vil Immutability vÊre aktivert for vÄr kapasitetsskytebane med en oppbevaring pÄ fire dager. Og kopieringsmodus er aktivert i sikkerhetskopien.
Uforanderlighet samhandler ikke med generell retensjon pÄ noen mÄte. Det gir for eksempel ikke ekstra poeng eller noe sÄnt. Det er bare det at en person ikke kan slette sikkerhetskopifiler innen fire dager. Hvis du tar en sikkerhetskopi pÄ mandag, vil du bare kunne slette filen pÄ fredag.

Alle tidligere forklarte konsepter om dehydrering, indekser og metadata fortsetter Ä fungere nÞyaktig det samme. Men med en betingelse - blokken er satt ikke bare for data, men ogsÄ for metadata. Dette gjÞres i tilfelle en utspekulert angriper bestemmer seg for Ä slette metadatadatabasen vÄr og forhindre at datablokker blir til ubrukelig binÊr grÞt.

NÄ er det en flott tid for Ä forklare blokkgenerasjonsteknologien vÄr. Eller blokkgenerering. For Ä gjÞre dette, vurder situasjonen som fÞrte til utseendet.
La oss ta en tidsskala pÄ seks dager og nedenfor vil vi markere tidspunktet for forventet utlÞp av uforanderlighet. Den fÞrste dagen tar vi og lager en fil som bestÄr av datablokk a og dens metadata. Hvis uforanderlighet er satt til tre dager, er det logisk Ä anta at den fjerde dagen vil dataene lÄses opp og slettes. PÄ den andre dagen legger vi til en ny fil2, bestÄende av blokk b med de samme innstillingene. Blokk a mÄ fortsatt fjernes den fjerde dagen. Men pÄ den tredje dagen skjer det noe forferdelig - en File3-fil opprettes, bestÄende av en ny blokk d og en lenke til den gamle blokken a. Dette betyr at for en blokk og dens uforanderlighet mÄ flagget tilbakestilles til en ny dato, som flyttes til den sjette dagen. Og her oppstÄr et problem - i ekte sikkerhetskopier er det et stort antall slike blokker. Og for Ä forlenge deres uforanderlighetsperiode, mÄ du komme med et stort antall forespÞrsler hver gang. Og faktisk vil dette vÊre en nesten uendelig daglig prosess, siden vi med en hÞy grad av sannsynlighet vil finne heftige stabler av dedupliserte blokker med hver kopi. Hva betyr et stort antall forespÞrsler fra leverandÞrer av objektlagring? Ikke sant! Stor regning i slutten av mÄneden.

Og for ikke Ä ut av det blÄ avslÞre favorittkundene dine for betydelige penger, ble blokkgenereringsmekanismen oppfunnet. Dette er en tilleggsperiode som vi legger til den angitte uforanderlighetsperioden. I eksemplet nedenfor er denne perioden to dager. Men dette er bare et eksempel. I virkeligheten bruker de sin egen formel, som gir omtrent ti ekstra dager i lÞpet av en mÄnedlig lÄsing.
La oss fortsette Ä vurdere den samme situasjonen, men med blokkgenerering. Den fÞrste dagen lager vi fil1 fra blokk a og metadata. Vi legger sammen generasjonsperioden og uforanderligheten - dette betyr at muligheten for Ä slette filen vil vÊre pÄ den sjette dagen. Hvis vi pÄ den andre dagen lager File2, bestÄende av blokk b og en lenke til blokk a, skjer det ingenting med forventet slettingsdato. Hun sto som hun gjorde den sjette dagen. Og dermed prÞver vi Ä spare penger pÄ antall forespÞrsler. Den eneste situasjonen nÄr fristen kan flyttes er dersom generasjonsperioden er utlÞpt. Det vil si at hvis den nye File3 pÄ den tredje dagen inneholder en lenke for Ä blokkere a, vil generasjon 2 bli lagt til siden Gen1 allerede er utlÞpt. Og forventet dato for sletting av blokk a vil skifte til den Ättende dagen. Dette lar oss dramatisk redusere antallet forespÞrsler for Ä forlenge levetiden til dedupliserte blokker, noe som sparer kundene massevis av penger.

Selve teknologien er tilgjengelig for brukere av S3- og S3-kompatibel maskinvare, hvis produsenter garanterer at implementeringen deres ikke skiller seg fra Amazons. Derav svaret pÄ det legitime spÞrsmÄlet hvorfor Azure ikke stÞttes - de har en lignende funksjon, men den fungerer pÄ nivÄ med containere, ikke individuelle objekter. Amazon selv har forresten objektlÄs i to moduser: compliance og governance. I det andre tilfellet er det fortsatt mulighet for at den stÞrste administratoren over administratorer og root over rÞtter, til tross for objektlÄsen, fortsatt sletter dataene. NÄr det gjelder samsvar, er alt spikret tett og ingen kan slette sikkerhetskopiene. Til og med Amazon-administratorer (ifÞlge deres offisielle uttalelser). Dette er modusen vi stÞtter.
Og, som vanlig, noen nyttige linker:
- ĐŃĐŸ i hver detalj.
- All informasjon om pÄ sitt beste
- Đ i detalj
Kilde: www.habr.com
