Backup, 1. dio: Namjena, pregled metoda i tehnologija

Backup, 1. dio: Namjena, pregled metoda i tehnologija
Zašto trebate izrađivati ​​sigurnosne kopije? Uostalom, oprema je vrlo, vrlo pouzdana, a osim toga, postoje "oblaci" koji su bolji u pouzdanosti od fizičkih poslužitelja: uz pravilnu konfiguraciju, "cloud" poslužitelj može lako preživjeti kvar infrastrukturnog fizičkog poslužitelja, a od sa stajališta korisnika usluga, doći će do malog, jedva primjetnog skoka u vremenskoj usluzi. Osim toga, dupliciranje informacija često zahtijeva plaćanje "dodatnog" vremena procesora, opterećenja diska i mrežnog prometa.

Idealan program radi brzo, ne gubi memoriju, nema rupa i ne postoji.

-Nepoznato

Budući da programe još uvijek pišu programeri proteina, a često nema procesa testiranja, a programi se rijetko isporučuju koristeći "najbolje prakse" (koji su i sami programi i stoga nesavršeni), administratori sustava najčešće moraju rješavati probleme koji zvuče kratko, ali jezgrovito: “vrati se kako je bilo”, “dovedi bazu u normalan rad”, “radi sporo - vrati nazad”, a također meni najdraže “ne znam što, ali popravi”.

Osim logičkih pogrešaka koje nastaju kao rezultat nepažljivog rada programera ili spleta okolnosti, kao i nepotpunog znanja ili nerazumijevanja malih značajki izgradnje programa - uključujući one za povezivanje i sustave, uključujući operativne sustave, upravljačke programe i firmware - ima i drugih grešaka. Na primjer, većina programera oslanja se na vrijeme izvođenja, potpuno zaboravljajući na fizičke zakone, koje je još uvijek nemoguće zaobići pomoću programa. To uključuje beskrajnu pouzdanost diskovnog podsustava i, općenito, bilo kojeg podsustava za pohranu podataka (uključujući RAM i predmemoriju procesora!), te nula vremena obrade na procesoru i odsutnost grešaka tijekom prijenosa preko mreže i tijekom obrade na procesora i latencije mreže, koja je jednaka 0. Ne smijete zanemariti notorni rok, jer ako ga ne ispoštujete na vrijeme, bit će problema gorih od nijansi rada mreže i diska.

Backup, 1. dio: Namjena, pregled metoda i tehnologija

Što učiniti s problemima koji naviru punom snagom i nadvijaju se nad vrijednim podacima? Ne postoji ništa što bi moglo zamijeniti žive programere i nije činjenica da će to biti moguće u bliskoj budućnosti. S druge strane, samo je nekoliko projekata uspjelo u potpunosti dokazati da će program funkcionirati kako je zamišljeno, a dokaze neće nužno biti moguće preuzeti i primijeniti na druge, slične projekte. Također, ovakvi dokazi oduzimaju dosta vremena i zahtijevaju posebne vještine i znanja, a time se mogućnost njihove upotrebe praktički svodi na minimum s obzirom na rokove. Osim toga, još ne znamo koristiti ultrabrzu, jeftinu i beskrajno pouzdanu tehnologiju za pohranu, obradu i prijenos informacija. Takve tehnologije, ako i postoje, nalaze se u obliku koncepata ili - najčešće - samo u knjigama i filmovima znanstvene fantastike.

Dobri umjetnici kopiraju, veliki umjetnici kradu.

— Pablo Picasso.

Najuspješnija rješenja i iznenađujuće jednostavne stvari obično se događaju tamo gdje se susreću pojmovi, tehnologije, znanja i područja znanosti koja su na prvi pogled apsolutno nespojiva.

Na primjer, ptice i zrakoplovi imaju krila, ali unatoč funkcionalnoj sličnosti - princip rada u nekim modovima je isti, a tehnički problemi riješeni su na sličan način: šuplje kosti, korištenje čvrstih i laganih materijala itd. - rezultati su potpuno različiti, iako vrlo slični. Najbolji primjeri koje vidimo u našoj tehnologiji također su u velikoj mjeri posuđeni iz prirode: odjeljci pod tlakom brodova i podmornica izravna su analogija s anelidama; izgradnja raid nizova i provjera integriteta podataka - dupliciranje DNK lanca; kao i parni organi, neovisnost rada različitih organa od središnjeg živčanog sustava (automatizacija srca) i refleksi – autonomni sustavi na internetu. Naravno, uzimanje i primjena već gotovih rješenja “direktno” je prepuno problema, ali tko zna, možda drugih rješenja i nema.

Da sam samo znala gdje ćeš pasti, slamke bih prostrla!

— Bjeloruska narodna poslovica

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

  • Budite u mogućnosti vratiti rad svojih sustava s minimalnim zastojem ili čak bez njega
  • Djelujte hrabro, jer u slučaju pogreške uvijek postoji mogućnost povratka
  • Minimizirajte posljedice namjernog oštećenja podataka

Evo malo teorije

Svaka klasifikacija je proizvoljna. Priroda ne razvrstava. Klasificiramo jer nam je tako zgodnije. A razvrstavamo prema podacima koje također proizvoljno uzimamo.

— Jean Bruler

Bez obzira na način fizičkog pohranjivanja, logičko pohranjivanje podataka može se podijeliti na dva načina pristupa tim podacima: blok i datoteka. Ta je podjela u posljednje vrijeme vrlo zamagljena, jer čisto blokovska, kao ni čisto datotečna, logička pohrana ne postoji. Međutim, radi jednostavnosti, pretpostavit ćemo da postoje.

Blokovno pohranjivanje 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 obično se izrađuje kopiranjem blokova podataka. Kako bi se osigurala cjelovitost podataka, snimanje novih blokova, kao i promjena postojećih, obustavljeno je u trenutku kopiranja. Ako uzmemo analogiju iz običnog svijeta, najbliži je ormar s identično označenim ćelijama.

Backup, 1. dio: Namjena, pregled metoda i tehnologija

Datotečna pohrana podataka temeljena na principu logičkog uređaja bliska je blok pohrani i često je organizirana na vrhu. Važne razlike su prisutnost hijerarhije pohrane i imena čitljiva ljudima. Apstrakcija se dodjeljuje u obliku datoteke - imenovanog područja podataka, kao i direktorija - posebne datoteke u kojoj su pohranjeni opisi i pristup drugim datotekama. Datoteke se mogu opskrbiti dodatnim metapodacima: vrijeme stvaranja, oznake pristupa itd. Sigurnosne kopije se obično rade na ovaj način: traže promijenjene datoteke, zatim ih kopiraju u drugu pohranu datoteka s istom strukturom. Cjelovitost podataka obično se provodi odsutnošću datoteka u koje se piše. Metapodaci datoteke sigurnosno se kopiraju na isti način. Najbliža analogija je knjižnica koja ima odjeljke s različitim knjigama, a ima i katalog s čitljivim nazivima knjiga.

Backup, 1. dio: Namjena, pregled metoda i tehnologija

Nedavno se ponekad opisuje još jedna opcija, od koje je, u principu, počelo pohranjivanje podataka datoteke i koje ima iste arhaične značajke: pohranjivanje podataka o objektu.

Razlikuje se od pohrane datoteka po tome što nema više od jednog ugniježđivanja (ravna shema), a imena datoteka, iako čitljiva ljudima, ipak su prikladnija za obradu strojevima. Prilikom izvođenja sigurnosnih kopija, pohranjivanje objekata najčešće se tretira slično pohranjivanju datoteka, ali povremeno postoje i druge mogućnosti.

— Postoje dvije vrste administratora sustava, oni koji ne rade sigurnosne kopije i oni koji to VEĆ rade.
- Postoje zapravo tri vrste: postoje i oni koji provjeravaju mogu li se sigurnosne kopije vratiti.

-Nepoznato

Također je vrijedno razumjeti da sam proces sigurnosne kopije podataka provode programi, tako da ima iste nedostatke kao i bilo koji drugi program. Za otklanjanje (ne otklanjanje!) ovisnosti o ljudskom faktoru, kao i osobina - koje pojedinačno nemaju jak učinak, ali zajedno mogu dati zamjetan učinak - tzv. pravilo 3-2-1. Postoji mnogo opcija kako to dešifrirati, ali mi se više sviđa sljedeće tumačenje: 3 skupa istih podataka moraju biti pohranjena, 2 skupa moraju biti pohranjena u različitim formatima, a 1 skup mora biti pohranjen u geografski udaljenoj pohrani.

Format pohrane treba shvatiti na sljedeći način:

  • Ako postoji ovisnost o fizičkoj metodi pohrane, mijenjamo fizičku metodu.
  • Ako postoji ovisnost o logičkoj metodi pohrane, mijenjamo logičku metodu.

Kako bi se postigao maksimalni učinak pravila 3-2-1, preporuča se promijeniti format pohrane na oba načina.

S gledišta spremnosti sigurnosne kopije za namjeravanu svrhu - vraćanje funkcionalnosti - pravi se razlika između "vruće" i "hladne" sigurnosne kopije. Vrući se od hladnih razlikuju samo po jednoj stvari: odmah su spremni za korištenje, dok hladni zahtijevaju neke dodatne korake za oporavak: dešifriranje, izdvajanje iz arhive itd.

Nemojte brkati vruće i hladne kopije s online i offline kopijama koje podrazumijevaju fizičku izolaciju podataka i zapravo su još jedan znak klasifikacije metoda sigurnosnog kopiranja. Dakle, izvanmrežna kopija - koja nije izravno povezana sa sustavom gdje je treba obnoviti - može biti vruća ili hladna (u smislu spremnosti za oporavak). Online kopija može biti dostupna izravno tamo gdje je treba restaurirati, a najčešće je vruća, ali ima i hladnih.

Osim toga, ne zaboravite da sam proces izrade sigurnosne kopije obično ne završava stvaranjem jedne sigurnosne kopije, a kopija može biti prilično velik. Stoga je potrebno razlikovati potpune sigurnosne kopije, tj. one koje se mogu obnoviti neovisno o drugim sigurnosnim kopijama, kao i diferencijalne (inkrementalne, diferencijalne, dekrementalne itd.) kopije - one koje se ne mogu obnoviti neovisno i zahtijevaju preliminarno vraćanje jedne ili više drugih sigurnosnih kopija.

Diferencijalne inkrementalne sigurnosne kopije pokušaj su uštede prostora za pohranu sigurnosnih kopija. Stoga se u sigurnosnu kopiju upisuju samo promijenjeni podaci iz prethodne sigurnosne kopije.

Diferencijalni dekrementalni stvaraju se za istu svrhu, ali na nešto drugačiji način: izrađuje se potpuna sigurnosna kopija, ali zapravo se pohranjuje samo razlika između nove i prethodne kopije.

Zasebno je vrijedno razmotriti proces sigurnosne kopije preko pohrane, koji podržava odsutnost pohrane duplikata. Dakle, ako napišete potpune sigurnosne kopije na vrh, zapravo će biti zapisane samo razlike između sigurnosnih kopija, ali će proces vraćanja sigurnosnih kopija biti sličan vraćanju iz pune kopije i potpuno transparentan.

Quis čuvar ipsos skrbnika?

(Tko će čuvati same stražare? - lat.)

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

  • Integritet izvornih podataka je ugrožen.
  • Sigurnosna pohrana je oštećena.
  • Vraćanje radi vrlo sporo; ne možete koristiti podatke koji su djelomično obnovljeni.

Ispravno konstruiran backup proces mora uzeti u obzir takve komentare, posebno prva dva.

Integritet izvornih podataka može se jamčiti na nekoliko načina. Najčešće korišteni su: a) stvaranje snimki datotečnog sustava na razini bloka, b) “zamrzavanje” stanja datotečnog sustava, c) poseban blok uređaj s pohranom verzija, d) sekvencijalno snimanje datoteka odn. blokovi. Također se primjenjuju kontrolni zbrojevi kako bi se osiguralo da su podaci provjereni tijekom oporavka.

Oštećenje pohrane također se može otkriti pomoću kontrolnih zbrojeva. Dodatna metoda je korištenje specijaliziranih uređaja ili datotečnih sustava u kojima se već snimljeni podaci ne mogu mijenjati, ali se mogu dodavati novi.

Kako bi se ubrzao oporavak, koristi se oporavak podataka s više procesa za oporavak - pod uvjetom da ne postoji usko grlo u obliku spore mreže ili sporog diskovnog sustava. Kako biste riješili situaciju s djelomično oporavljenim podacima, možete rastaviti proces izrade sigurnosne kopije na relativno male podzadatke, od kojih se svaki izvodi zasebno. Stoga postaje moguće dosljedno vraćanje performansi uz predviđanje vremena oporavka. Ovaj problem najčešće leži u organizacijskoj ravni (SLA), pa se na tome nećemo detaljnije zadržavati.

Stručnjak za začine nije onaj koji ih dodaje svakom jelu, već onaj koji nikada ne dodaje ništa dodatno.

-U. Sinjavski

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

  • Toplo se preporučuje korištenje gotovih rješenja.
  • Programi bi trebali raditi predvidljivo, tj. Ne bi trebalo biti nedokumentiranih značajki ili uskih grla.
  • Postavljanje svakog programa trebalo bi biti tako jednostavno da ne morate svaki put čitati priručnik ili varalicu.
  • Ako je moguće, rješenje bi trebalo biti univerzalno, jer poslužitelji mogu uvelike varirati u svojim hardverskim karakteristikama.

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

  • dd, poznat veteranima sistemske administracije, ovo također uključuje slične programe (isti dd_rescue, na primjer).
  • Pomoćni programi ugrađeni u neke datotečne sustave koji stvaraju dump datotečnog sustava.
  • Svejedi komunalne usluge; na primjer partclone.
  • Vlastite, često vlasničke odluke; na primjer, NortonGhost i kasnije.

Za datotečne sustave, problem sigurnosne kopije je djelomično riješen korištenjem metoda primjenjivih za blok uređaje, ali problem se može učinkovitije riješiti korištenjem, na primjer:

  • Rsync, program opće namjene i protokol za sinkronizaciju stanja datotečnih sustava.
  • Ugrađeni alati za arhiviranje (ZFS).
  • Alati za arhiviranje trećih strana; najpopularniji predstavnik je katran. Postoje i drugi, na primjer, dar - zamjena za tar namijenjena modernim sustavima.

Vrijedno je posebno spomenuti softverske alate za osiguravanje konzistentnosti podataka prilikom izrade sigurnosnih kopija. Najčešće korištene opcije su:

  • Montiranje datotečnog sustava u modu samo za čitanje (ReadOnly), ili zamrzavanje datotečnog sustava (freeze) - metoda je ograničene primjenjivosti.
  • Izrada snimki stanja datotečnih sustava ili blok uređaja (LVM, ZFS).
  • Korištenje alata trećih strana za organiziranje dojmova, čak i u slučajevima kada se iz nekog razloga ne mogu pružiti prethodne točke (programi poput hotcopyja).
  • Tehnika kopiranja pri promjeni (CopyOnWrite) ipak je najčešće vezana uz korišteni datotečni sustav (BTRFS, ZFS).

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

  • Jednostavan za korištenje - nisu potrebni posebni dodatni koraci tijekom rada, minimalni koraci za stvaranje i vraćanje kopija.
  • Univerzalni - radi i na velikim i na malim poslužiteljima; ovo je važno kod povećanja broja poslužitelja ili skaliranja.
  • Instalira ga upravitelj paketa ili pomoću jedne ili dvije naredbe poput "preuzmi i raspakiraj".
  • Stabilno - koristi se standardni ili dugotrajni format pohrane.
  • Brzi u poslu.

Pristupnici od onih koji više ili manje ispunjavaju uvjete:

  • rdiff-sigurnosna kopija
  • rsnapshot
  • podrigivati
  • duplikat
  • dvoličnost
  • neka dup
  • dati
  • zbackup
  • restičan
  • borgbackup

Backup, 1. dio: Namjena, pregled metoda i tehnologija

Virtualni stroj (temeljen na XenServeru) sa sljedećim karakteristikama koristit će se kao testni uređaj:

  • 4 jezgre 2.5 GHz,
  • 16 GB RAM,
  • 50 GB hibridna pohrana (sustav pohrane s predmemorijom na SSD 20% veličine virtualnog diska) u obliku zasebnog virtualnog diska bez particioniranja,
  • 200 Mbps internetski kanal.

Gotovo isti stroj koristit će se kao rezervni poslužitelj prijemnika, samo s tvrdim diskom od 500 GB.

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

Kao početni podatak uzmimo WordPress stranicu s 40 GB medijskih datoteka i mysql bazom podataka. Budući da se virtualni poslužitelji jako razlikuju po karakteristikama, a također i radi bolje ponovljivosti, evo

rezultati testiranja poslužitelja pomoću sysbench-a.sysbench --threads=4 --time=30 --cpu-max-prime=20000 rad procesora
sysbench 1.1.0-18a9f86 (koristeći paket LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Pokretanje generatora slučajnih brojeva iz trenutnog vremena

Ograničenje prostih brojeva: 20000

Inicijalizacija radnih niti...

Teme su započele!

Brzina procesora:
događaja u sekundi: 836.69

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

Latencija (ms):
min.: 2.38
prosjek: 4.78
najviše: 22.39
95. percentil: 10.46
zbroj: 119923.64

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

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

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

Inicijalizacija radnih niti...

Teme su započele!

Ukupno operacija: 50900446 (1696677.10 po sekundi)

49707.47 MiB preneseno (1656.91 MiB/sek)

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

Latencija (ms):
min.: 0.00
prosjek: 0.00
najviše: 24.01
95. percentil: 0.00
zbroj: 39106.74

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

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=zapiši pokretanje memorije
sysbench 1.1.0-18a9f86 (koristeći paket LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Pokretanje 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 su započele!

Ukupno operacija: 35910413 (1197008.62 po sekundi)

35068.76 MiB preneseno (1168.95 MiB/sek)

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

Latencija (ms):
min.: 0.00
prosjek: 0.00
najviše: 16.90
95. percentil: 0.00
zbroj: 43604.83

Pravednost niti:
događaji (prosj./stddev): 8977603.2500/233905.84
vrijeme izvršenja (prosj./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 paket LuaJIT 2.1.0-beta3)
Pokretanje testa sa sljedećim opcijama:
Broj niti: 4
Pokretanje generatora slučajnih brojeva iz trenutnog vremena

Dodatne oznake otvorene datoteke: (ništa)
128 datoteka, svaka od 8 MiB
1 GiB ukupna veličina datoteke
Veličina bloka 4KiB
Broj IO zahtjeva: 0
Omjer čitanja/pisanja za kombinirani slučajni IO test: 1.50
Omogućen periodični FSYNC, pozivanje fsync() svakih 100 zahtjeva.
Pozivanje fsync() na kraju testa, Omogućeno.
Korištenje sinkronog I/O načina
Izvođenje nasumičnog r/w testa
Inicijalizacija radnih niti...

Teme su započele!

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

Latencija (ms):
min.: 0.00
prosjek: 0.27
najviše: 18.01
95. percentil: 1.08
zbroj: 238469.45

Ova bilješka počinje veliko

serija članaka o sigurnosnom kopiranju

  1. Backup, 1. dio: Zašto je backup potreban, pregled metoda, tehnologija
  2. Sigurnosno kopiranje, 2. dio: Pregled i testiranje alata za sigurnosno kopiranje temeljenih na rsync
  3. Sigurnosna kopija 3. dio: Pregled i testiranje dvostrukosti, duplikatnosti, deja dup
  4. Sigurnosna kopija 4. dio: Pregled i testiranje zbackup, restic, borgbackup
  5. Sigurnosna kopija 5. dio: Testiranje bacula i veeam sigurnosne kopije za linux
  6. Sigurnosno kopiranje, 6. dio: Usporedba alata za sigurnosno kopiranje
  7. Rezervni dio 7: Zaključci

Izvor: www.habr.com

Dodajte komentar