Backup, dio 1: Svrha, pregled metoda i tehnologija

Backup, dio 1: Svrha, pregled metoda i tehnologija
Zašto treba da pravite rezervne kopije? Na kraju krajeva, oprema je vrlo, vrlo pouzdana, a osim toga, postoje „oblaci“ koji su pouzdaniji od fizičkih servera: uz odgovarajuću konfiguraciju, „cloud“ server može lako preživjeti kvar infrastrukturnog fizičkog servera, a od sa stanovišta korisnika usluga, doći će do malog, jedva primjetnog skoka u vremenskoj usluzi. Osim toga, dupliciranje informacija često zahtijeva plaćanje “dodatnog” procesorskog vremena, opterećenja diska i mrežnog prometa.

Idealan program radi brzo, ne propušta memoriju, nema rupa i ne postoji.

-Nepoznato

Budući da programe i dalje pišu programeri proteina, a često nema procesa testiranja, plus programi se rijetko isporučuju korištenjem „najboljih praksi“ (koje su i sami programi i stoga nesavršeni), administratori sistema najčešće moraju rješavati probleme koji zvuče kratko, ali sažeto: „vrati kako je bilo“, „dovedi bazu u normalan rad“, „radi polako – vrati se“, a takođe i meni najdraže „ne znam šta, ali popravi“.

Pored logičkih grešaka koje nastaju kao rezultat nemarnog rada programera, ili spleta okolnosti, kao i nepotpunog poznavanja ili nerazumijevanja malih karakteristika programa izgradnje - uključujući i one za povezivanje i sisteme, uključujući operativne sisteme, drajvere i firmver - postoje i druge greške. Na primjer, većina programera se oslanja na vrijeme izvođenja, potpuno zaboravljajući na fizičke zakone, koje je još uvijek nemoguće zaobići pomoću programa. Ovo uključuje beskonačnu pouzdanost podsistema diska i, općenito, bilo kojeg podsistema za pohranu podataka (uključujući RAM i keš procesora!), i nulto vrijeme obrade na procesoru, i odsustvo grešaka tokom prijenosa preko mreže i tokom obrade na procesoru procesor, i mrežno kašnjenje, koje je jednako 0. Ne treba zanemariti ozloglašeni rok, jer ako ga ne ispoštujete na vrijeme, bit će problema gori od nijansi rada mreže i diska.

Backup, dio 1: Svrha, pregled metoda i tehnologija

Šta učiniti s problemima koji rastu punom snagom i vise nad vrijednim podacima? Ne postoji ništa što bi moglo zamijeniti žive programere, a nije činjenica da će to biti moguće u bliskoj budućnosti. S druge strane, samo nekoliko projekata uspjelo je u potpunosti dokazati da će program funkcionirati kako je predviđeno i neće nužno biti moguće uzeti i primijeniti dokaze na druge, slične projekte. Takođe, takvi dokazi oduzimaju dosta vremena i zahtijevaju posebne vještine i znanja, a to praktično minimizira mogućnost njihove upotrebe uzimajući u obzir rokove. Osim toga, još ne znamo kako koristiti ultrabrzu, jeftinu i beskonačno pouzdanu tehnologiju za pohranjivanje, obradu i prijenos informacija. Takve tehnologije, ako postoje, postoje u obliku koncepata, ili – najčešće – samo u naučnofantastičnim knjigama i filmovima.

Dobri umjetnici kopiraju, veliki umjetnici kradu.

—Pablo Pikaso.

Najuspješnija rješenja i iznenađujuće jednostavne stvari obično se dešavaju tamo gdje se susreću koncepti, tehnologije, znanja i područja nauke koja su na prvi pogled apsolutno nekompatibilna.

Na primjer, ptice i avioni imaju krila, ali uprkos funkcionalnoj sličnosti - princip rada u nekim režimima je isti, a tehnički problemi se rješavaju na sličan način: šuplje kosti, upotreba jakih i laganih materijala itd. - rezultati su potpuno drugačiji, iako vrlo slični. Najbolji primjeri koje vidimo u našoj tehnologiji također su u velikoj mjeri pozajmljeni iz prirode: odjeljci brodova i podmornica pod pritiskom su direktna analogija s anelidima; izgradnja raid nizova i provjera integriteta podataka - dupliciranje DNK lanca; kao i upareni organi, nezavisnost rada različitih organa od centralnog nervnog sistema (automatizacija srca) i refleksi - autonomni sistemi na internetu. Naravno, uzimanje i primjena gotovih rješenja „na čelo” je bremenita problemima, ali ko zna, možda i nema drugih rješenja.

Da sam samo znao gde ćeš pasti, izložio bih slamke!

—Bjeloruska narodna poslovica

To znači da su sigurnosne kopije od vitalnog značaja za one koji žele:

  • Budite u mogućnosti da vratite rad svojih sistema sa minimalnim zastojima, ili čak i bez njega
  • Djelujte hrabro, jer u slučaju greške uvijek postoji mogućnost vraćanja
  • Minimizirajte posljedice namjerne korupcije podataka

Evo malo teorije

Svaka klasifikacija je proizvoljna. Priroda ne klasifikuje. Klasificiramo jer nam je tako povoljnije. A klasifikujemo prema podacima koje takođe uzimamo proizvoljno.

—Jean Bruler

Bez obzira na način fizičkog skladištenja, logičko skladištenje podataka može se podijeliti na dva načina pristupa ovim podacima: blok i fajl. Ova podjela je nedavno bila vrlo zamagljena, jer čisto blok, kao i čisto datoteka, logička memorija ne postoji. Međutim, radi jednostavnosti, pretpostavit ćemo da postoje.

Blok skladištenje podataka podrazumijeva da postoji fizički uređaj na koji se podaci zapisuju u određenim fiksnim dijelovima, blokovima. Blokovima se pristupa na određenoj adresi; svaki blok ima svoju adresu unutar uređaja.

Sigurnosna kopija se obično pravi kopiranjem blokova podataka. Kako bi se osigurao integritet podataka, snimanje novih blokova, kao i promjena postojećih, obustavlja se u trenutku kopiranja. Ako uzmemo analogiju iz običnog svijeta, najbliža stvar je ormar sa identičnim brojevima ćelija.

Backup, dio 1: Svrha, pregled metoda i tehnologija

Skladištenje podataka zasnovano na principu logičkog uređaja je blizu blok memorije i često je organizirano na vrhu. Važne razlike su prisustvo hijerarhije skladištenja i imena čitljiva. Apstrakcija se dodjeljuje u obliku datoteke - imenovane oblasti podataka, kao i direktorija - posebne datoteke u kojoj se pohranjuju opisi i pristup drugim datotekama. Datoteke se mogu snabdjeti dodatnim metapodacima: vrijeme kreiranja, pristupne zastavice, itd. Sigurnosne kopije se obično rade na ovaj način: traže promijenjene datoteke, a zatim ih kopiraju u drugu pohranu datoteka sa istom strukturom. Integritet podataka se obično implementira odsustvom datoteka u koje se upisuje. Na isti način se pravi rezervna kopija metapodataka datoteke. Najbliža analogija je biblioteka, koja ima odeljke sa različitim knjigama, a takođe ima i katalog sa čoveku čitljivim nazivima knjiga.

Backup, dio 1: Svrha, pregled metoda i tehnologija

Nedavno se ponekad opisuje još jedna opcija, od koje je, u principu, počelo skladištenje podataka u fajlovima, a koja ima iste arhaične karakteristike: skladištenje podataka o objektima.

Razlikuje se od skladišta datoteka po tome što nema više od jednog ugniježđenja (flat shema), a nazivi datoteka, iako čitljivi ljudima, ipak su pogodniji za obradu od strane strojeva. Prilikom izrade sigurnosnih kopija, pohrana objekata se najčešće tretira slično kao i pohrana datoteka, ali povremeno postoje i druge opcije.

— Postoje dvije vrste sistemskih administratora, oni koji ne prave rezervne kopije i oni koji VEĆ rade.
- Zapravo, postoje tri vrste: postoje i oni koji provjeravaju da li se rezervne kopije mogu vratiti.

-Nepoznato

Također je vrijedno razumjeti da sam proces sigurnosne kopije podataka provode programi, tako da ima iste nedostatke kao i svaki drugi program. Da bi se otklonila (ne eliminisala!) ovisnost o ljudskom faktoru, kao i osobinama – koje pojedinačno nemaju jak učinak, ali zajedno mogu dati primjetan učinak – tzv. pravilo 3-2-1. Postoji mnogo opcija kako to dešifrirati, ali mi se više sviđa sljedeća interpretacija: 3 seta istih podataka moraju biti pohranjena, 2 seta moraju biti pohranjena u različitim formatima, a 1 set mora biti pohranjen u geografski udaljenom skladištu.

Format skladištenja treba shvatiti na sljedeći način:

  • Ako postoji ovisnost o fizičkoj metodi skladištenja, mijenjamo fizičku metodu.
  • Ako postoji ovisnost o metodi logičke memorije, mijenjamo logičku metodu.

Da bi se postigao maksimalni efekat pravila 3-2-1, preporučuje se da promenite format skladištenja na oba načina.

Sa stanovišta spremnosti sigurnosne kopije za predviđenu svrhu - vraćanje funkcionalnosti - pravi se razlika između "vruće" i "hladne" sigurnosne kopije. Vruće se razlikuju od hladnih samo po jednom: odmah su spremne za upotrebu, dok hladne zahtijevaju neke dodatne korake za oporavak: dešifriranje, ekstrakciju iz arhive itd.

Nemojte brkati vruće i hladne kopije s online i offline kopijama, koje podrazumijevaju fizičku izolaciju podataka i, zapravo, predstavljaju još jedan znak klasifikacije metoda rezervnih kopija. Dakle, kopija van mreže - koja nije direktno povezana sa sistemom gdje je treba vratiti - može biti vruća ili hladna (u smislu spremnosti za oporavak). Online kopija može biti dostupna direktno tamo gdje je treba restaurirati, a najčešće je vruća, ali ima i hladnih.

Osim toga, ne zaboravite da se sam proces stvaranja sigurnosne kopije obično ne završava stvaranjem jedne sigurnosne kopije, a može postojati i prilično veliki broj kopija. Stoga je potrebno razlikovati pune sigurnosne kopije, tj. one koje se mogu vratiti nezavisno od drugih rezervnih kopija, kao i diferencijalne (inkrementalne, diferencijalne, dekrementalne, itd.) kopije - one koje se ne mogu samostalno vratiti i zahtevaju preliminarnu restauraciju jedne ili više drugih rezervnih kopija.

Diferencijalne inkrementalne sigurnosne kopije su pokušaj da se uštedi prostor za pohranu sigurnosnih kopija. Dakle, samo promijenjeni podaci iz prethodne sigurnosne kopije se upisuju u sigurnosnu kopiju.

Diferencijalno dekrementalni kreiraju se za istu svrhu, ali na malo drugačiji način: pravi se potpuna rezervna kopija, ali se zapravo pohranjuje samo razlika između svježe kopije i prethodne.

Odvojeno, vrijedi razmotriti proces sigurnosne kopije preko skladišta, koji podržava odsustvo skladištenja duplikata. Dakle, ako napišete pune sigurnosne kopije na njega, zapravo će biti zapisane samo razlike između sigurnosnih kopija, ali će proces vraćanja sigurnosne kopije biti sličan obnavljanju iz pune kopije i potpuno transparentan.

Quis custodiet ipsos custodes?

(Ko će čuvati same čuvare? - lat.)

Vrlo je neugodno kada nema rezervnih kopija, ali je mnogo gore ako se čini da je sigurnosna kopija napravljena, ali se prilikom vraćanja ispostavi da se ne može vratiti jer:

  • Integritet izvornih podataka je ugrožen.
  • Rezervna kopija je oštećena.
  • Obnavljanje radi vrlo sporo; ne možete koristiti podatke koji su djelimično vraćeni.

Pravilno konstruisan proces izrade rezervnih kopija mora uzeti u obzir takve komentare, posebno prva dva.

Integritet izvornih podataka može se garantovati na nekoliko načina. Najčešće korišćeni su sledeći: a) kreiranje snimaka fajl sistema na nivou bloka, b) „zamrzavanje“ stanja sistema datoteka, c) poseban blok uređaj sa skladištenjem verzija, d) sekvencijalno snimanje fajlova ili blokova. Kontrolne sume se također primjenjuju kako bi se osiguralo da su podaci provjereni tokom oporavka.

Oštećenje skladišta također se može otkriti korištenjem kontrolnih suma. Dodatna metoda je korištenje specijalizovanih uređaja ili sistema datoteka u kojima se već snimljeni podaci ne mogu mijenjati, ali se mogu dodati novi.

Da bi se ubrzao oporavak, oporavak podataka se koristi sa više procesa za oporavak - pod uslovom da ne postoji usko grlo u obliku spore mreže ili sporog disk sistema. Da biste zaobišli situaciju s djelimično oporavljenim podacima, proces sigurnosne kopije možete razbiti na relativno male podzadatke, od kojih se svaki izvodi zasebno. Dakle, postaje moguće dosljedno vraćanje performansi uz predviđanje vremena oporavka. Ovaj problem najčešće leži u organizacionom planu (SLA), pa se na tome nećemo detaljnije zadržavati.

Nije stručnjak za začine onaj koji ih dodaje u svako jelo, već onaj koji mu nikad ništa ne dodaje.

-IN. Sinyavsky

Praksa u vezi sa softverom koji koriste sistemski administratori mogu se razlikovati, ali opći principi su i dalje, na ovaj ili onaj način, isti, posebno:

  • Preporučljivo je koristiti gotova rješenja.
  • Programi treba da rade predvidljivo, tj. Ne bi trebalo biti nedokumentiranih karakteristika ili uskih grla.
  • Podešavanje svakog programa trebalo bi biti tako jednostavno da ne morate svaki put čitati priručnik ili cheat sheet.
  • Ako je moguće, rješenje treba biti univerzalno, jer serveri se mogu jako razlikovati u svojim hardverskim karakteristikama.

Postoje sljedeći uobičajeni programi za pravljenje sigurnosnih kopija sa blok uređaja:

  • dd, poznato veteranima sistemske administracije, ovo također uključuje slične programe (isti dd_rescue, na primjer).
  • Uslužni programi ugrađeni u neke sisteme datoteka koji kreiraju dump sistema datoteka.
  • Svejedi; na primjer partclone.
  • Vlastite, često vlasničke, odluke; na primjer, NortonGhost i noviji.

Za sisteme datoteka, problem sigurnosnog kopiranja je djelomično riješen korištenjem metoda primjenjivih za blok uređaje, ali problem se može efikasnije riješiti korištenjem, na primjer:

  • Rsync, program opšte namene i protokol za sinhronizaciju stanja sistema datoteka.
  • Ugrađeni alati za arhiviranje (ZFS).
  • Alati za arhiviranje treće strane; najpopularniji predstavnik je katran. Postoje i drugi, na primjer, dar - zamjena za tar za moderne sisteme.

Posebno je vrijedno spomenuti softverske alate za osiguravanje konzistentnosti podataka prilikom kreiranja rezervnih kopija. Najčešće korištene opcije su:

  • Montiranje sistema datoteka u režimu samo za čitanje (ReadOnly), ili zamrzavanje sistema datoteka (zamrzavanje) - metoda je ograničene primenljivosti.
  • Kreiranje snimaka stanja sistema datoteka ili blok uređaja (LVM, ZFS).
  • Upotreba alata treće strane za organiziranje utisaka, čak iu slučajevima kada se prethodne tačke iz nekog razloga ne mogu dati (programi poput hotcopy).
  • Tehnika kopiranja na promjenu (CopyOnWrite), međutim, najčešće je vezana za sistem datoteka koji se koristi (BTRFS, ZFS).

Dakle, za mali server morate osigurati shemu sigurnosne kopije koja ispunjava sljedeće zahtjeve:

  • Jednostavan za korištenje - nisu potrebni posebni dodatni koraci tokom rada, minimalni koraci za kreiranje i vraćanje kopija.
  • Univerzalni - radi i na velikim i na malim serverima; ovo je važno prilikom povećanja broja servera ili skaliranja.
  • Instalira se od strane menadžera paketa ili u jednoj ili dvije komande kao što je "preuzmi i raspakiraj".
  • Stabilan - koristi se standardni ili dugo uspostavljeni format skladištenja.
  • Brzi u poslu.

Kandidati od onih koji manje-više ispunjavaju uslove:

  • rdiff-backup
  • rsnapshot
  • burp
  • duplikat
  • duplicity
  • neka dup
  • dar
  • zbackup
  • restic
  • borgbackup

Backup, dio 1: Svrha, pregled metoda i tehnologija

Virtuelna mašina (bazirana na XenServeru) sa sledećim karakteristikama će se koristiti kao testna stanica:

  • 4 jezgra 2.5 GHz,
  • 16 GB RAM-a,
  • 50 GB hibridna pohrana (sistem pohrane sa keširanjem na SSD 20% veličine virtualnog diska) u obliku zasebnog virtualnog diska bez particioniranja,
  • Internet kanal 200 Mbps.

Gotovo ista mašina će se koristiti kao rezervni server prijemnika, samo sa hard diskom od 500 GB.

Operativni sistem - Centos 7 x64: standardna particija, dodatna particija će se koristiti kao izvor podataka.

Kao početne podatke, uzmimo WordPress stranicu sa 40 GB medijskih datoteka i mysql bazom podataka. Pošto se virtuelni serveri uveliko razlikuju po karakteristikama, a takođe i radi bolje reproduktivnosti, evo

rezultate testiranja servera koristeći sysbench.sysbench --threads=4 --time=30 --cpu-max-prime=20000 pokretanje procesora
sysbench 1.1.0-18a9f86 (koristeći LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Inicijalizacija generatora slučajnih brojeva iz trenutnog vremena

Ograničenje prostih brojeva: 20000

Inicijalizacija radnih niti…

Teme započete!

Brzina procesora:
događaja u sekundi: 836.69

Propusnost:
događaji/e (eps): 836.6908
proteklo vrijeme: 30.0039s
ukupan broj događaja: 25104

Latencija (ms):
min: 2.38
prosječno: 4.78
max: 22.39
95. percentil: 10.46
zbroj: 119923.64

Pravednost niti:
događaji (prosjek/stddev): 6276.0000/13.91
vrijeme izvršenja (prosjek/stddev): 29.9809/0.01

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=čitaj memoriju pokrenuti
sysbench 1.1.0-18a9f86 (koristeći LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Inicijalizacija generatora slučajnih brojeva iz trenutnog vremena

Pokretanje testa brzine memorije sa sljedećim opcijama:
veličina bloka: 1KiB
ukupna veličina: 102400MiB
rad: pročitajte
opseg: globalni

Inicijalizacija radnih niti…

Teme započete!

Ukupno operacija: 50900446 (1696677.10 u sekundi)

49707.47 MiB preneseno (1656.91 MiB/sec)

Propusnost:
događaji/e (eps): 1696677.1017
proteklo vrijeme: 30.0001s
ukupan broj događaja: 50900446

Latencija (ms):
min: 0.00
prosječno: 0.00
max: 24.01
95. percentil: 0.00
zbroj: 39106.74

Pravednost niti:
događaji (prosjek/stddev): 12725111.5000/137775.15
vrijeme izvršenja (prosjek/stddev): 9.7767/0.10

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=write memorija run
sysbench 1.1.0-18a9f86 (koristeći LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Inicijalizacija generatora slučajnih brojeva iz trenutnog vremena

Pokretanje testa brzine memorije sa sljedećim opcijama:
veličina bloka: 1KiB
ukupna veličina: 102400MiB
operacija: pisati
opseg: globalni

Inicijalizacija radnih niti…

Teme započete!

Ukupno operacija: 35910413 (1197008.62 u sekundi)

35068.76 MiB preneseno (1168.95 MiB/sec)

Propusnost:
događaji/e (eps): 1197008.6179
proteklo vrijeme: 30.0001s
ukupan broj događaja: 35910413

Latencija (ms):
min: 0.00
prosječno: 0.00
max: 16.90
95. percentil: 0.00
zbroj: 43604.83

Pravednost niti:
događaji (prosjek/stddev): 8977603.2500/233905.84
vrijeme izvršenja (prosjek/stddev): 10.9012/0.41

sysbench --threads=4 --file-test-mode=rndrw --time=60 --file-block-size=4K --file-total-size=1G fileio run
sysbench 1.1.0-18a9f86 (koristeći LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Inicijalizacija generatora slučajnih brojeva iz trenutnog vremena

Dodatne zastavice za otvaranje fajla: (nema)
128 fajlova, po 8MB
Ukupna veličina datoteke 1GiB
Veličina bloka 4KiB
Broj IO zahtjeva: 0
Omjer čitanja/pisanja za kombinovani nasumični IO test: 1.50
Omogućen periodični FSYNC, pozivanje fsync() na svakih 100 zahtjeva.
Pozivanje fsync() na kraju testa, Omogućeno.
Koristeći sinhroni I/O način rada
Radim nasumični r/w test
Inicijalizacija radnih niti…

Teme započete!

Propusnost:
čitaj: IOPS=3868.21 15.11 MiB/s (15.84 MB/s)
pisati: IOPS=2578.83 10.07 MiB/s (10.56 MB/s)
fsync: IOPS=8226.98

Latencija (ms):
min: 0.00
prosječno: 0.27
max: 18.01
95. percentil: 1.08
zbroj: 238469.45

Ova nota počinje velikim

serija članaka o backup-u

  1. Backup, 1. dio: Zašto je potrebna rezervna kopija, pregled metoda, tehnologija
  2. Backup Dio 2: Pregledanje i testiranje alata za pravljenje rezervnih kopija zasnovanih na rsync-u
  3. Backup Dio 3: Pregledanje i testiranje duplikata, duplikata, deja dup
  4. Backup Dio 4: Pregled i testiranje zbackup, restic, borgbackup
  5. Backup Dio 5: Testiranje backup-a bacula i veeam za linux
  6. Backup Dio 6: Poređenje alata za pravljenje rezervnih kopija
  7. Rezervni dio 7: Zaključci

izvor: www.habr.com

Dodajte komentar