Sigurnosna kopija, dio 1: Namjena, pregled metoda i tehnologija

Sigurnosna kopija, dio 1: Namjena, pregled metoda i tehnologija
ZaÅ”to je potrebno praviti sigurnosne kopije? Oprema je vrlo pouzdana, a tu su i 'oblaci' koji su pouzdaniji od fizičkih servera: uz pravilnu konfiguraciju, 'oblačni' server bez problema može preživjeti kvar fizičkog infrastrukturnog servera, dok će korisnici usluga primijetiti samo malo, gotovo neprimjetno povećanje vremena usluge. Osim toga, dupliciranje informacija često zahtijeva plaćanje za 'viÅ”ak' procesorskog vremena, opterećenje diska i mrežni promet.

Idealni program brzo radi, ne curi tijekom koriŔtenja RAM-a, nema propusta i ne postoji.

—Nepoznato

Budući da programi joÅ” uvijek pisani od strane ljudskih programera, a proces testiranja često izostaje, uz to se programski alati rijetko isporučuju primjenom Ā«best practicesĀ» (koje su same po sebi također programi, a samim time nisu savrÅ”eni), sistemskim administratorima najčeŔće preostaje rjeÅ”avanje problema koji su kratki, ali jasni: Ā«vrati kako je biloĀ», Ā«uspostavi bazu na normalan radĀ», Ā«sporo radi — vraćamoĀ», a također i moj omiljeni: Ā«ne znam Å”to, ali popraviteĀ».

Osim logičkih greÅ”aka koje se pojavljuju kao rezultat nepažljivog rada programera, ili uslijed slučajnosti, kao i nedostatka znanja ili razumijevanja sitnih detalja u izradi programa — uključujući veze i sustave, poput operativnih sustava, drajvera i firmvera — postoje i druge greÅ”ke. Na primjer, većina programera oslanja se na runtime, potpuno zaboravljajući na fizičke zakone, koje je joÅ” uvijek nemoguće zaobići pomoću programa. Ovo uključuje beskrajnu pouzdanost diskovnog sustava i bilo kojeg sustava za pohranu podataka (uključujući RAM i procesorski keÅ”!), nultu obradu vremena na procesoru, te odsutnost greÅ”aka tijekom prijenosa putem mreže i obrade na procesoru, kao i odgodu u mreži koja je jednaka 0. Ne treba zaboraviti ni na poznati rok, jer ako ga ne stignemo ispoÅ”tovati — nastat će problemi koji su ozbiljniji od mnogih nijansi rada mreže i diska.

Sigurnosna kopija, dio 1: Namjena, pregled metoda i tehnologija

Å to učiniti s problemima koji se nalaze na vidiku i prijete vrijednim podacima? Žive programere nije moguće zamijeniti, a nije ni sigurno hoće li biti moguće uskoro. S druge strane, potpuno dokazati da će program raditi kako je zamiÅ”ljeno uspjelo je samo nekoliko projekata, i nije nužno da će se dokazi moći primijeniti na druge slične projekte. Takvi dokazi također oduzimaju puno vremena i zahtijevaju posebne vjeÅ”tine i znanja, Å”to gotovo minimalizira mogućnost njihove primjene uzimajući u obzir rokove. Osim toga, joÅ” uvijek ne znamo za super brzu, jeftinu i beskrajno pouzdanu tehnologiju za pohranu, obradu i prijenos informacija. Takve tehnologije, ako i postoje, najčeŔće su u obliku koncepata ili, čeŔće, samo u fantastičnim knjigama i filmovima.

Dobri umjetnici kopiraju, veliki umjetnici kradu.

—Pablo Picasso.

Najbolja rjeÅ”enja i neočekivano jednostavne stvari obično se događaju tamo gdje se susreću naizgled potpuno nespojivi pojmovi, tehnologije, znanja, područja znanosti.

Na primjer, ptice i avioni imaju krila, međutim, usprkos funkcionalnoj sličnosti — načini djelovanja se u nekim režimima podudaraju, a tehnički problemi se rjeÅ”avaju na sličan način: Å”uplje kosti, koriÅ”tenje čvrstih i laganih materijala itd. — rezultati su potpuno različiti, iako vrlo slični. Najbolji uzorci koje vidimo u naÅ”oj tehnologiji također su većinom posuđeni iz prirode: hermetički odjeli na brodovima i podmornicama — izravna analogija s prstenastim crvima; gradnja raid-masiva i provjera cjelovitosti podataka — dupliciranje DNK lanca; kao i parni organi, neovisnost rada različitih organa od CNS-a (automatski rad srca) i refleksi — autonomni sustavi na Internetu. Naravno, uzeti i primijeniti gotova rjeÅ”enja

Da znamo gdje pasti — postavili bismo slamu!

—Bjeloruska narodna poslovica

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

  • Imati mogućnost oporaviti rad svojih sustava s minimalnim prekidima, ili čak bez njih.
  • Djelujte hrabro, jer u slučaju greÅ”ke uvijek postoji mogućnost povratka.
  • Minimizirati posljedice namjerne Å”tete podataka.

Evo malo teorije.

Svaka klasifikacija je proizvoljna. Priroda ne klasificira. Klasificiramo mi jer nam je tako lakÅ”e. I klasificiramo prema podacima koje uzimamo također proizvoljno.

—Jean BruyĆØre

Nezavisno od fizičkog načina pohranjivanja, logičko pohranjivanje podataka može se uvjetno podijeliti na 2 načina pristupa tim podacima: blokovno i datotečno. Ova podjela u posljednje vrijeme je prilično nejasna, jer čisto blokovna, kao ni čisto datotečna, logička skladiÅ”ta ne postoje. Međutim, za jednostavnost ćemo smatrati da ona postoje.

Blokovno pohranjivanje podataka podrazumijeva da postoji fizički uređaj na koji se podaci zapisuju nekim fiksnim porcijama, blokovima. Pristup blokovima ide prema nekoj adresi, a svaki blok ima svoju adresu unutar uređaja.

Sigurnosna kopija obično se izrađuje kopiranjem blokova podataka. Za osiguranje cjelovitosti podataka u trenutku kopiranja, obustavlja se upis novih blokova, kao i promjena postojećih. Ako uzmemo analogiju iz običnog svijeta — najbliža je ormar s jednakim numeriranim odjeljcima.

Sigurnosna kopija, dio 1: Namjena, pregled metoda i tehnologija

Datotečno pohranjivanje podataka po svojoj logičkoj strukturi blisko je blokovnom i često se organizira preko njega. Važne razlike su prisutnost hijerarhije pohrane i imena razumljiva ljudima. Ističe se apstrakcija u obliku datoteke - imenovanog područja podataka, kao i direktorija - posebne datoteke u kojoj se nalaze opisi i pristupi drugim datotekama. Datoteke mogu imati dodatne metapodatke: vrijeme stvaranja, oznake pristupa itd. Obično se radi sigurnosna kopija na sljedeći način: traže se izmijenjene datoteke, a zatim se kopiraju u drugu datotečnu pohranu s istom strukturom. Cjelovitost podataka obično se osigurava putem nedostatka datoteka u koje se vrÅ”i upis. Metapodaci datoteka rezerviraju se slično. Najbliža analogija je knjižnica u kojoj postoje odjeli s različitim knjigama, a također postoji katalog s imenima knjiga razumljivim ljudima.

Sigurnosna kopija, dio 1: Namjena, pregled metoda i tehnologija

U posljednje vrijeme često se opisuje joŔ jedna varijanta, koja je zapravo i započela pohranu podataka, te koja ima iste arhaične karakteristike: objektna pohrana podataka.

Razlikuje se od datotečne pohrane po tome Å”to nema ugniježdenosti veće od jedan (ravna shema), a imena datoteka, iako su čitljiva za ljude, viÅ”e su prilagođena za obradu maÅ”inama. Pri izradi sigurnosnih kopija, objektna skladiÅ”ta se najčeŔće obrađuju slično datotečnima, ali ponekad postoje i druge opcije.

— Postoje dvije vrste sistemskih administratora, oni koji ne prave sigurnosne kopije, i oni koji VEĆ PRAVE.
— U stvari, postoje tri vrste: tu su joÅ” i oni koji provjeravaju mogu li se sigurnosne kopije vratiti.

—Nepoznato

Također je važno razumjeti da se sam proces izrade sigurnosnih kopija podataka odvija putem programa, stoga mu nedostaju svi isti nedostaci kao i drugim programima. Da bi se uklonila (ne isključila!) ovisnost o ljudskom faktoru, kao i o posebnim značajkama — koje odvojeno ne utječu značajno, ali zajedno mogu dati značajan učinak — primjenjuje se tzv. pravilo 3-2-1. Postoji mnogo načina kako ga interpretirati, ali najviÅ”e mi se sviđa sljedeća interpretacija: treba pohranjivati 3 seta istih podataka, 2 seta trebaju biti pohranjena u različitim formatima, a 1 set treba biti smjeÅ”ten u geografski udaljenom skladiÅ”tu.

Pod formatom pohrane podrazumijeva se sljedeće:

  • Ako postoji ovisnost o fizičkom načinu pohrane — mijenjamo fizički način.
  • Ako postoji ovisnost o logičkom načinu pohrane — mijenjamo logički način.

Za postizanje maksimalnog učinka pravila 3-2-1 preporučuje se mijenjanje formata pohrane na oba načina.

S glediÅ”ta spremnosti sigurnosne kopije za njeno izvorno dodjeljivanje — vraćanje funkcionalnosti — razlikuju se "vruće" i "hladne" sigurnosne kopije. Vruće se razlikuju od hladnih samo po jednom: odmah su spremne za rad, dok hladne zahtijevaju dodatne radnje za vraćanje: dekripciju, izdvajanje iz arhiva itd.

Ne treba mijeÅ”ati vruće i hladne kopije s online i offline kopijama, koje podrazumijevaju fizičku izolaciju podataka, i u osnovi predstavljaju drugu oznaku klasifikacije načina sigurnosnog kopiranja. Tako offline kopija — koja nije izravno povezana sa sustavom u kojem je treba obnoviti — može biti i vruća i hladna (s glediÅ”ta spremnosti za obnavljanje). Online kopija može biti dostupna izravno tamo gdje je potrebno obnoviti, a najčeŔće je vruća, ali postoje i hladne.

Osim toga, ne treba zaboraviti da sam proces izrade sigurnosnih kopija obično ne zavrÅ”ava na izradi jedne sigurnosne kopije, a kopija može biti dovoljno velika. 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 samostalno i zahtijevaju prethodnu obnovu jedne ili viÅ”e drugih sigurnosnih kopija.

Diferencijalne inkrementalne kopije — pokuÅ”aj smanjivanja veličine prostora za pohranu sigurnosnih kopija. Tako se u sigurnosnu kopiju zapisuju samo promijenjeni podaci od posljednje sigurnosne kopije.

Diferencijalne dekrementalne kreiraju se s istim ciljem, ali neÅ”to drugačijim putem: radi se potpuna sigurnosna kopija, ali se zapravo pohranjuje samo razlika između nove kopije i prethodne.

Posebno vrijedi razmotriti proces sigurnosnog kopiranja preko pohrane koja podržava odsutnost pohrane dupliciranih podataka. Tako, ako se piÅ”u potpune sigurnosne kopije preko nje, zapravo će se zapisati samo razlika između sigurnosnih kopija, međutim, proces obnove sigurnosnih kopija će se odvijati slično obnovi s pune kopije i potpuno prozračno.

Quis custodiet ipsos custodes?

(Tko će čuvati same čuvare? — lat.)

Zapravo je vrlo neugodno kada nema sigurnosnih kopija, no mnogo je gore ako je sigurnosna kopija navodno napravljena, ali se prilikom obnavljanja otkriva da se ne može obnoviti zbog:

  • Integritet izvornih podataka je naruÅ”en.
  • SkladiÅ”te sa sigurnosnim kopijama je oÅ”tećeno.
  • Obnova radi prilično polako, ne možete koristiti podatke koji su djelomično obnovljeni.

Ispravno izgrađen proces sigurnosnog kopiranja treba uzeti u obzir ovakve komentare, posebno prva dva.

Cjelovitost izvornih podataka može se garantirati na nekoliko načina. NajčeŔće koriÅ”teni su sljedeći: a) izrada snimaka datotečnog sustava na blokovnoj razini, b) "zamrzavanje" stanja datotečnog sustava, c) posebno blok uređaj s pohranom verzija, d) sekvencijalno zapisivanje datoteka ili blokova. Također se koriste kontrolne sume za provjeru podataka prilikom obnove.

OÅ”tećenja pohrane mogu se također otkriti pomoću kontrolnih suma. Dodatna metoda je primjena specijaliziranih uređaja ili datotečnih sustava u kojima se ne mogu mijenjati već napisani podaci, ali se mogu dodavati novi.

Za ubrzavanje obnove koristi se obnova podataka s viÅ”e procesa za obnovu — pod uvjetom da ne postoji 'usko grlo' u obliku spore mreže ili sporog diska. Da bi se izbjegla situacija s djelomično obnovljenim podacima, proces sigurnosnog kopiranja može se podijeliti na relativno male podzadatke, od kojih svaki može biti izvrÅ”en odvojeno. Tako postaje moguće sequentially obnavljati funkcionalnost s predviđanjem vremena obnove. Ovaj problem najčeŔće leži u organizacijskoj ravni (SLA), stoga se nećemo detaljno zadržavati na tome.

Značenje začina ne razumije onaj tko ih dodaje u svakog jela, već onaj tko nikada ne doda niÅ”ta suviÅ”no.

—V. Sinjavski

Praksa vezana uz koriÅ”teni softver kod sistemskih administratora može se razlikovati, ali opća pravila su i dalje ista, posebno:

  • Toplo se preporučuje koriÅ”tenje gotovih rjeÅ”enja.
  • Programi trebaju raditi predvidljivo, tj. ne bi trebalo biti nedokumentiranih osobina ili uskih grla.
  • Podesavanje svakog programa treba biti dovoljno jednostavno kako ne bi bilo potrebno svaki put čitati upute ili biljeÅ”ke.
  • RjeÅ”enje bi trebalo biti univerzalno, jer se serveri mogu značajno razlikovati po svojim hardverskim karakteristikama.

Za izradu rezervnih kopija s blokovnih uređaja postoje sljedeći raÅ”ireni programi:

  • dd, poznat veteranima sistemske administracije, ovdje također spadaju slični programi (poput dd_rescue, na primjer).
  • Ugrađeni alati u neke datotečne sustave koji stvaraju isječak (dump) datotečnog sustava.
  • Sveobuhvatni alati; na primjer, partclone.
  • Vlastita, često vlasnička, rjeÅ”enja; na primjer, NortonGhost i noviji.

Za datotečne sustave, problem rezervnog kopiranja djelomično se rjeÅ”ava metodama primjenjivim na blokovne uređaje, no problem se može rijeÅ”iti i učinkovitije, koristeći, na primjer:

  • Rsync, univerzalni program i protokol za sinkronizaciju stanja datotečnih sustava.
  • Ugrađeni alati za arhiviranje (ZFS).
  • Eksterni alati za arhiviranje; najpopularniji predstavnik je tar. Ima i drugih, poput dar — zamjena za tar usmjerena na moderne sustave.

Odvojeno treba spomenuti softverske alate za osiguranje konzistentnosti podataka prilikom izrade rezervnih kopija. NajčeŔće se primjenjuju sljedeće opcije:

  • Prikazivanje datotečnog sustava u režimu samo za čitanje (ReadOnly), ili zamrzavanje datotečnog sustava (freeze) — metoda je primjenjiva ograničeno.
  • Izrađivanje isječaka stanja datotečnog sustava ili blokovnog uređaja (LVM, ZFS).
  • Primjena eksternih alata za organizaciju isječaka, čak i u slučajevima kada prethodne stavke nije moguće osigurati iz različitih razloga (programi poput hotcopy).
  • Tehnika kopiranja prilikom promjene (CopyOnWrite), iako je najčeŔće vezana uz koriÅ”tenu datotečnu sistemu (BTRFS, ZFS).

Dakle, za mali server potrebno je osigurati shemu rezervnog kopiranja koja će ispuniti sljedeće zahtjeve:

  • Jednostavna za koriÅ”tenje — ne zahtijeva posebne dodatne radnje pri radu, minimalne radnje za izradu i obnavljanje kopija.
  • Univerzalna — radi i na velikim i na malim serverima; to je važno pri povećanju broja poslužitelja ili skaliranju.
  • Instalira se putem paketnog menadžera, ili u jednu do dvije naredbe poput 'preuzimanje i raspakiranje'.
  • Stabilna — koristi standardni ili već dugo ustaljeni format pohrane.
  • Brza za rad.

Kandidati koji viŔe-manje ispunjavaju zahtjeve:

  • rdiff-backup
  • rsnapshot
  • burp
  • duplicati
  • duplicity
  • deja dup
  • dar
  • zbackup
  • restic
  • borgbackup

Sigurnosna kopija, dio 1: Namjena, pregled metoda i tehnologija

Testna platforma koristit će virtualni stroj (na osnovi XenServer) s sljedećim karakteristikama:

  • 4 jezgre 2.5 GHz,
  • 16 GB RAM-a,
  • 50 GB hybrid storage (SAN s SSD cachingom od 20% veličine virtualnog diska) u obliku odvojenog virtualnog diska bez particioniranja,
  • 200 Mbit/s kanal u Internet.

Kao prijemni server za sigurnosne kopije koristit će se praktički isti stroj, samo s tvrdim diskom od 500 GB.

Operacijski sustav — Centos 7 x64: standardna particioniranje, dodatni odjeljak bit će koriÅ”ten kao izvor podataka.

Kao izvorne podatke uzimamo web stranicu na WordPressu, s medijskim datotekama veličine 40 GB, bazom podataka na MySQL. Budući da virtualni serveri se značajno razlikuju po karakteristikama, te radi bolje reproducibilnosti, ovdje su

rezultati testiranja servera pomoću sysbench.sysbench —threads=4 —time=30 —cpu-max-prime=20000 cpu run
sysbench 1.1.0-18a9f86 (koriŔtenje uključene LuaJIT 2.1.0-beta3)
Pokretanje testa s sljedećim opcijama:
Broj threadova: 4
Inicijaliziranje generatora slučajnih brojeva iz trenutnog vremena

Maksimalni limit prostih brojeva: 20000

Inicijalizacija radnih threadova…

Threadovi su pokrenuti!

Brzina procesora:
događaji po sekundi: 836.69

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

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

Pravednost threadova:
događaji (avg/stddev): 6276.0000/13.91
vrijeme izvrŔenja (avg/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 (koriŔtenje uključene LuaJIT 2.1.0-beta3)
Pokretanje testa s sljedećim opcijama:
Broj threadova: 4
Inicijaliziranje generatora slučajnih brojeva iz trenutnog vremena

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

Inicijalizacija radnih threadova…

Threadovi su pokrenuti!

Ukupne operacije: 50900446 (1696677.10 po sekundi)

49707.47 MiB preneseno (1656.91 MiB/sec)

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

Latencija (ms):
min: 0.00
avg: 0.00
max: 24.01
95. percentil: 0.00
zbroj: 39106.74

Pravednost threadova:
događaji (avg/stddev): 12725111.5000/137775.15
vrijeme izvrŔenja (avg/stddev): 9.7767/0.10

sysbench —threads=4 —time=30 —memory-block-size=1K —memory-scope=global —memory-total-size=100G —memory-oper=write memory run
sysbench 1.1.0-18a9f86 (koriŔtenje uključene LuaJIT 2.1.0-beta3)
Pokretanje testa s sljedećim opcijama:
Broj threadova: 4
Inicijaliziranje generatora slučajnih brojeva iz trenutnog vremena

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

Inicijalizacija radnih threadova…

Threadovi su pokrenuti!

Ukupne operacije: 35910413 (1197008.62 po sekundi)

35068.76 MiB preneseno (1168.95 MiB/sec)

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

Latencija (ms):
min: 0.00
avg: 0.00
max: 16.90
95. percentil: 0.00
zbroj: 43604.83

Pravednost threadova:
događaji (avg/stddev): 8977603.2500/233905.84
vrijeme izvrŔenja (avg/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 (koriŔtenje uključene LuaJIT 2.1.0-beta3)
Pokretanje testa s sljedećim opcijama:
Broj threadova: 4
Inicijaliziranje generatora slučajnih brojeva iz trenutnog vremena

Dodatne oznake za otvaranje datoteka: (nema)
128 datoteka, svaka 8MiB
1GiB ukupna veličina datoteke
Veličina bloka 4KiB
Broj IO zahtjeva: 0
Omjer čitanja/pisanja za kombinirani test nasumičnog IO: 1.50
Periodični FSYNC omogućen, pozivajući fsync() svake 100 zahtjeva.
Pozivanje fsync() na kraju testa, omogućeno.
Koristeći sinkroni I/O način
Izvođenje nasumičnog r/w testa
Inicijalizacija radnih threadova…

Threadovi su pokrenuti!

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
maks: 18.01
95. percentil: 1.08
zbroj: 238469.45

Ovim biljeŔke počinje veliki

ciklus članaka o sigurnosnom kopiranju

  1. Sigurnosno kopiranje, dio 1: ZaŔto je potrebno sigurnosno kopiranje, pregled metoda, tehnologija
  2. Sigurnosno kopiranje, dio 2: Pregled i testiranje rsync-based sredstava za sigurnosno kopiranje
  3. Sigurnosno kopiranje, dio 3: Pregled i testiranje duplicity, duplicaty, deja dup
  4. Backup, dio 4: Pregled i testiranje zbackup, restic, borgbackup
  5. Sigurnosno kopiranje, dio 5: Testiranje bacula i veeam backup za linux
  6. Backup, dio 6: Usporedba alata za izradu sigurnosnih kopija
  7. Backup, dio 7: Zaključci

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaÅ”titom, VPS VDS servere šŸ”„ Kupite pouzdan hosting za web stranice s DDoS zaÅ”titom, VPS VDS servere | ProHoster