Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Šiame straipsnyje bus nagrinėjama atsarginė programinė įranga, kuri, suskaidžiusi duomenų srautą į atskirus komponentus (gabalus), sudaro saugyklą.

Saugyklos komponentai gali būti toliau suglaudinami ir šifruojami, o svarbiausia – kartotinių atsarginių kopijų kūrimo procesų metu – naudojami pakartotinai.

Atsarginė kopija tokioje saugykloje yra pavadinta komponentų grandinė, sujungta viena su kita, pavyzdžiui, remiantis įvairiomis maišos funkcijomis.

Yra keletas panašių sprendimų, aš sutelksiu dėmesį į 3: zbackup, borgbackup ir restic.

Laukiami rezultatai

Kadangi visi pareiškėjai vienaip ar kitaip reikalauja sukurti saugyklą, vienas iš svarbiausių veiksnių bus įvertinti saugyklos dydį. Idealiu atveju jo dydis turėtų būti ne didesnis kaip 13 GB pagal priimtą metodiką arba dar mažesnis – gerai optimizavus.

Taip pat labai pageidautina turėti galimybę kurti atsargines failų kopijas tiesiogiai, nenaudojant archyvų, tokių kaip tar, taip pat dirbti su ssh/sftp be papildomų įrankių, tokių kaip rsync ir sshfs.

Elgesys kuriant atsargines kopijas:

  1. Saugyklos dydis bus lygus pakeitimų dydžiui arba mažesnis.
  2. Naudojant glaudinimą ir (arba) šifravimą tikimasi didelės procesoriaus apkrovos, o jei archyvavimo ir (arba) šifravimo procesas vykdomas atsarginės kopijos saugojimo serveryje, tikėtina, kad tinklo ir disko apkrova bus gana didelė.
  3. Jei saugykla yra pažeista, tikėtina, kad uždelsta klaida tiek kuriant naujas atsargines kopijas, tiek bandant atkurti. Būtina planuoti papildomas priemones saugyklos vientisumui užtikrinti arba naudoti įmontuotus įrankius jos vientisumui patikrinti.

Kaip buvo parodyta viename iš ankstesnių straipsnių, darbas su derva laikomas etalonine verte.

zbackup testavimas

Bendras zbackup mechanizmas yra tas, kad programa įvesties duomenų sraute suranda sritis, kuriose yra tie patys duomenys, tada pasirinktinai juos suglaudina ir užšifruoja, kiekvieną sritį išsaugodama tik vieną kartą.

Deduplikacija naudoja 64 bitų žiedo maišos funkciją su slankiojančiu langu, kad patikrintų, ar baitas po baito atitinka esamus duomenų blokus (panašiai kaip rsync tai įgyvendina).

Suspaudimui naudojami kelių gijų lzma ir lzo, o šifravimui – aes. Naujausios versijos turi galimybę ateityje ištrinti senus duomenis iš saugyklos.
Programa parašyta C++ kalba su minimaliomis priklausomybėmis. Autorius, matyt, buvo įkvėptas unix-way, todėl programa priima duomenis stdin kurdama atsargines kopijas, o atkuriant sukuria panašų duomenų srautą stdout. Taigi, zbackup gali būti naudojamas kaip labai geras „statybinis blokas“ rašant savo atsarginių kopijų sprendimus. Pavyzdžiui, straipsnio autorius šią programą naudojo kaip pagrindinį namų mašinų atsarginių kopijų kūrimo įrankį maždaug nuo 2014 m.

Duomenų srautas bus įprastas taras, jei nenurodyta kitaip.

Pažiūrėkime, kokie rezultatai:

Darbas buvo patikrintas dviem variantais:

  1. sukuriama saugykla ir serveryje paleidžiama zbackup su šaltinio duomenimis, tada saugyklos turinys perkeliamas į atsarginės kopijos saugojimo serverį.
  2. atsarginės kopijos saugyklos serveryje sukuriama saugykla, atsarginės kopijos saugyklos serveryje per ssh paleidžiama zbackup, o duomenys į jį siunčiami vamzdžiu.

Pirmojo varianto rezultatai buvo tokie: 43m11s - naudojant nešifruotą saugyklą ir lzma kompresorių, 19m13s - pakeitus kompresorių į lzo.

Serverio apkrova su pradiniais duomenimis buvo tokia (parodytas pavyzdys su lzma; su lzo buvo maždaug toks pat vaizdas, bet rsync dalis buvo maždaug ketvirtadalis laiko):

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Akivaizdu, kad toks atsarginis procesas tinka tik sąlyginai retiems ir nedideliems pakeitimams. Taip pat labai patartina apriboti zbackup iki 1 gijos, kitaip bus labai didelė procesoriaus apkrova, nes Programa puikiai tinka dirbti keliose gijose. Disko apkrova buvo nedidelė, o tai apskritai nebūtų pastebima naudojant šiuolaikinę ssd pagrindu veikiančio disko posistemę. Taip pat galite aiškiai matyti saugyklos duomenų sinchronizavimo su nuotoliniu serveriu proceso pradžią; veikimo greitis yra panašus į įprastą rsync ir priklauso nuo atsarginės kopijos saugojimo serverio disko posistemio našumo. Šio metodo trūkumas yra vietinės saugyklos saugojimas ir dėl to duomenų dubliavimas.

Įdomesnis ir praktikoje pritaikomas yra antrasis variantas, paleidžiant zbackup tiesiai atsarginės kopijos saugojimo serveryje.

Pirmiausia išbandysime operaciją nenaudodami šifravimo su lzma kompresoriumi:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Kiekvieno bandomojo važiavimo trukmė:

Paleisti 1
Paleisti 2
Paleisti 3

39m45s
40m20s
40m3s

7m36s
8m3s
7m48s

15m35s
15m48s
15m38s

Jei įjungsite šifravimą naudodami aes, rezultatai bus gana artimi:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Veikimo laikas naudojant tuos pačius duomenis su šifravimu:

Paleisti 1
Paleisti 2
Paleisti 3

43m40s
44m12s
44m3s

8m3s
8m15s
8m12s

15m0s
15m40s
15m25s

Jei šifravimas derinamas su glaudinimu naudojant lzo, tai atrodo taip:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Darbo laikas:

Paleisti 1
Paleisti 2
Paleisti 3

18m2s
18m15s
18m12s

5m13s
5m24s
5m20s

8m48s
9m3s
8m51s

Gautos saugyklos dydis buvo palyginti toks pat – 13 GB. Tai reiškia, kad deduplikacija veikia tinkamai. Be to, jau suspaustiems duomenims lzo naudojimas duoda pastebimą efektą; pagal bendrą veikimo laiką zbackup priartėja prie duplicity / duplicati, tačiau atsilieka nuo librsync pagrįstų 2–5 kartus.

Privalumai akivaizdūs – sutaupoma vietos diske atsarginės kopijos saugojimo serveryje. Kalbant apie saugyklų tikrinimo įrankius, zbackup autorius jų nepateikia, rekomenduojama naudoti gedimams atsparų diskų masyvą arba debesies tiekėją.

Apskritai, labai geras įspūdis, nepaisant to, kad projektas stovi maždaug 3 metus (paskutinis funkcijos prašymas buvo maždaug prieš metus, bet be atsako).

Borgbackup testavimas

Borgbackup yra palėpės šakutė, kita sistema, panaši į zbackup. Parašytas python, jame yra funkcijų sąrašas, panašus į zbackup, bet papildomai gali:

  • Sumontuokite atsargines kopijas per saugiklį
  • Patikrinkite saugyklos turinį
  • Darbas kliento-serverio režimu
  • Naudokite įvairius duomenų kompresorius, taip pat euristinį failo tipo nustatymą glaudindami.
  • 2 šifravimo parinktys, aes ir blake
  • Integruotas įrankis, skirtas

veiklos patikrinimus

borgbackup etalonas crud ssh://backup_server/repo/path local_dir

Rezultatai buvo tokie:

CZ-BIG 96.51 MB/s (10 100.00 MB visiškai nulio failai: 10.36 s)
RZ-BIG 57.22 MB/s (10
100.00 MB visiškai nulio failai: 17.48 s)
UZ-BIG 253.63 MB/s (10 100.00 MB visiškai nulio failai: 3.94 s)
DZ-BIG 351.06 MB/s (10
100.00 MB visiškai nulio failai: 2.85 s)
CR-BIG 34.30 MB/s (10 100.00 MB atsitiktiniai failai: 29.15 s)
RR-BIG 60.69 MB/s (10
100.00 MB atsitiktiniai failai: 16.48 s)
UR-BIG 311.06 MB/s (10 100.00 MB atsitiktiniai failai: 3.21 s)
DR-BIG 72.63 MB/s (10
100.00 MB atsitiktiniai failai: 13.77 s)
CZ-MEDIUM 108.59 MB/s (1000 1.00 MB visiškai nulio failai: 9.21 s)
RZ-MEDIUM 76.16 MB/s (1000
1.00 MB visiškai nulio failai: 13.13 s)
UZ-MEDIUM 331.27 MB/s (1000 1.00 MB visiškai nulio failai: 3.02 s)
DZ-MEDIUM 387.36 MB/s (1000
1.00 MB visiškai nulio failai: 2.58 s)
CR-MEDIUM 37.80 MB/s (1000 1.00 MB atsitiktiniai failai: 26.45 s)
RR-MEDIUM 68.90 MB/s (1000
1.00 MB atsitiktiniai failai: 14.51 s)
UR-MEDIUM 347.24 MB/s (1000 1.00 MB atsitiktiniai failai: 2.88 s)
DR-MEDIUM 48.80 MB/s (1000
1.00 MB atsitiktiniai failai: 20.49 s)
CZ-SMALL 11.72 MB/s (10000 XNUMX 10.00 kB visiškai nulio failai: 8.53 s)
RZ-SMALL 32.57 MB/s (10000 XNUMX
10.00 kB visiškai nulio failai: 3.07 s)
UZ-SMALL 19.37 MB/s (10000 XNUMX 10.00 kB visiškai nulio failai: 5.16 s)
DZ-SMALL 33.71 MB/s (10000 XNUMX
10.00 kB visiškai nulio failai: 2.97 s)
CR-SMALL 6.85 MB/s (10000 XNUMX 10.00 kB atsitiktiniai failai: 14.60 s)
RR-SMALL 31.27 MB/s (10000 XNUMX
10.00 kB atsitiktiniai failai: 3.20 s)
UR-SMALL 12.28 MB/s (10000 XNUMX 10.00 kB atsitiktiniai failai: 8.14 s)
DR-SMALL 18.78 MB/s (10000 XNUMX
10.00 kB atsitiktiniai failai: 5.32 s)

Atliekant bandymą, failo tipui nustatyti bus naudojama glaudinimo euristika (automatinis suspaudimas), o rezultatai bus tokie:

Pirmiausia patikrinkime, kaip tai veikia be šifravimo:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Darbo laikas:

Paleisti 1
Paleisti 2
Paleisti 3

4m6s
4m10s
4m5s

56s
58s
54s

1m26s
1m34s
1m30s

Jei įgalinsite saugyklos įgaliojimą (autentifikuotas režimas), rezultatai bus artimi:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Darbo laikas:

Paleisti 1
Paleisti 2
Paleisti 3

4m11s
4m20s
4m12s

1m0s
1m3s
1m2s

1m30s
1m34s
1m31s

Kai buvo suaktyvintas AES šifravimas, rezultatai labai nepablogėjo:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Paleisti 1
Paleisti 2
Paleisti 3

4m55s
5m2s
4m58s

1m0s
1m2s
1m0s

1m49s
1m50s
1m50s

O jei pakeisite aes į blake, situacija visiškai pagerės:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Darbo laikas:

Paleisti 1
Paleisti 2
Paleisti 3

4m33s
4m43s
4m40s

59s
1m0s
1m0s

1m38s
1m43s
1m40s

Kaip ir zbackup atveju, saugyklos dydis buvo 13 GB ir net šiek tiek mažiau, ko paprastai tikimasi. Likau labai patenkintas veikimo laiku, jis panašus į sprendimus, pagrįstus librsync, suteikiančiais daug platesnių galimybių. Taip pat nudžiugino galimybė per aplinkos kintamuosius nustatyti įvairius parametrus, o tai suteikia labai rimtą pranašumą naudojant borgbackup automatiniu režimu. Taip pat buvau patenkintas apkrova atsarginės kopijos kūrimo metu: sprendžiant iš procesoriaus apkrovos, borgbackup veikia 1 gijoje.

Naudojant jį nebuvo jokių ypatingų trūkumų.

pastovus bandymas

Nepaisant to, kad restic yra gana naujas sprendimas (pirmieji 2 kandidatai buvo žinomi dar 2013 m. ir vyresni), jis pasižymi gana geromis savybėmis. Parašyta Go.

Palyginti su zbackup, jis papildomai suteikia:

  • Saugyklos vientisumo tikrinimas (įskaitant tikrinimą dalimis).
  • Didžiulis palaikomų protokolų ir tiekėjų sąrašas atsarginėms kopijoms saugoti, taip pat rclone - rsync palaikymas debesies sprendimams.
  • 2 atsarginių kopijų palyginimas tarpusavyje.
  • Saugyklos montavimas per saugiklį.

Apskritai funkcijų sąrašas yra gana artimas borgbackup, kai kur daugiau, kitur mažiau. Viena iš funkcijų yra ta, kad nėra galimybės išjungti šifravimo, todėl atsarginės kopijos visada bus užšifruotos. Pažiūrėkime praktiškai, ką galima išspausti iš šios programinės įrangos:

Rezultatai buvo tokie:

Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas

Darbo laikas:

Paleisti 1
Paleisti 2
Paleisti 3

5m25s
5m50s
5m38s

35s
38s
36s

1m54s
2m2s
1m58s

Veikimo rezultatus taip pat galima palyginti su rsync pagrįstais sprendimais ir apskritai labai artimi borgbackup, tačiau procesoriaus apkrova yra didesnė (veikia kelios gijos) ir pjūklų.

Greičiausiai programą riboja duomenų saugojimo serveryje esančio disko posistemio veikimas, kaip jau buvo rsync atveju. Saugyklos dydis buvo 13 GB, kaip ir zbackup ar borgbackup, naudojant šį sprendimą akivaizdžių trūkumų nebuvo.

rezultatai

Tiesą sakant, visi kandidatai pasiekė panašių rezultatų, tačiau skirtingomis kainomis. Borgbackup veikė geriausiai, restic buvo šiek tiek lėtesnis, zbackup tikriausiai neverta pradėti naudoti,
ir jei jis jau naudojamas, pabandykite pakeisti jį į borgbackup arba restic.

išvados

Perspektyviausias sprendimas atrodo santūrus, nes... būtent jis turi geriausią galimybių ir veikimo greičio santykį, tačiau kol kas neskubėkime daryti bendrų išvadų.

Borgbackup iš esmės ne ką prastesnis, bet zbackup tikriausiai geriau pakeisti. Tiesa, zbackup vis dar gali būti naudojamas siekiant užtikrinti, kad 3-2-1 taisyklė veiktų. Pavyzdžiui, be (lib)rsync pagrįstų atsarginių kopijų kūrimo priemonių.

Skelbimas

Atsarginė kopija, 1 dalis: Kodėl reikalinga atsarginė kopija, metodų, technologijų apžvalga
Atsarginė kopija 2 dalis: rsync pagrįstų atsarginių kopijų kūrimo įrankių peržiūra ir testavimas
Atsarginė kopija 3 dalis: Dvigubumo peržiūra ir testavimas, dublikatai
Atsarginė kopija 4 dalis: zbackup, restic, borgbackup peržiūra ir testavimas
Atsarginė kopija 5 dalis: „Bacula“ ir „veeam“ atsarginių kopijų testavimas, skirtas Linux
Atsarginė kopija 6 dalis: Atsarginės kopijos įrankių palyginimas
Atsarginė kopija 7 dalis: Išvados

Paskelbtas: Pavelas Demkovičius

Šaltinis: www.habr.com

Добавить комментарий