Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Në këtë artikull do të shqyrtojmë mjete softuerike për kopjimi rezervë, të cilat duke ndarë rrjedhën e të dhënave në komponente të veçanta (chunks), formojnë një depo.

KomponentĂ«t e depoes mund tĂ« kompresohen dhe enkriptohen pĂ«r mĂ« tepĂ«r, dhe mĂ« e rĂ«ndĂ«sishmja — gjatĂ« proceseve tĂ« pĂ«rsĂ«ritura tĂ« kopjimit rezervĂ« — mund tĂ« ribashkohen.

Një kopje rezervë në një depo të tillë është një zinxhir i emëruar i komponentëve të lidhur me njëri-tjetrin, për shembull, mbi baza të funksioneve të ndryshme hash.

Ka disa zgjidhje të tilla, unë do të ndalem në 3: zbackup, borgbackup dhe restic.

Rezultatet e pritura

Duke qenĂ« se tĂ« gjithĂ« pretendentĂ«t gjithsesi kĂ«rkojnĂ« krijimin e njĂ« depoje, njĂ« nga faktorĂ«t mĂ« tĂ« rĂ«ndĂ«sishĂ«m do tĂ« jetĂ« vlerĂ«simi i madhĂ«sisĂ« sĂ« depoes. NĂ« pĂ«rkryerĂ«si, madhĂ«sia e saj nuk duhet tĂ« kalojĂ« 13 GB sipas metodologjisĂ« sĂ« pranuar, madje tĂ« jetĂ« edhe mĂ« e vogĂ«l — me kusht qĂ« optimizimi tĂ« jetĂ« i mirĂ«.

Po ashtu, është shumë e dëshirueshme të kemi mundësinë për të krijuar kopje rezervë të skedarëve direkt, pa përdorimin e arkivave si tar, si dhe të punojmë me ssh/sftp pa mjete shtesë si rsync dhe sshfs.

Shtimi në krijimin e kopjeve rezervë:

  1. Madhësia e depoes do të barazohet me madhësinë e ndryshimeve, ose do të jetë më e vogël.
  2. Pritet ngarkesë e madhe në procesor kur përdoret kompresimi dhe/ose enkriptimi, si dhe është e mundur që të ketë ngarkesë të konsiderueshme në rrjet dhe në sistemin e diskëve, nëse procesi i arkivimit dhe/ose enkriptimit kryhet në serverin e ruajtjes së kopjeve rezervë.
  3. Nëse dëmtat repositori, është e mundur që gabimi të shfaqet më vonë gjatë krijimit të kopjeve të reja rezervë, si dhe gjatë përpjekjeve për rikuperim. Duhet planifikuar masa shtesë për sigurimin e integritetit të repositorit ose të përdoren mjetet e ndërtuara për verifikimin e integritetit të tij.

Si një vlerë referuese është marrë puna me tar, siç është treguar në një nga artikujt e mëparshëm.

Testimi i zbackup

Mekanizmi i përgjithshëm i funksionimit të zbackup përfshin atë që programa gjen në rrjedhën e të dhënave që jepen si input zona që përmbajnë të dhëna të njëjta, pastaj opsionalisht i kompreson, i enkripton, duke ruajtur secilën zonë vetëm një herë.

Për deduplifikimin përdoret një funksion hash ring 64-bit me një dritare lëvizëse për kontrollin byte me byte të përputhjes me blloqet e dhënave që already exist (diçka e ngjashme me atë që është realizuar në rsync).

PĂ«r kompresim pĂ«rdoren lzma dhe lzo nĂ« ekzekutim tĂ« shumĂ«fishtĂ«, ndĂ«rsa pĂ«r enkriptim — aes. NĂ« versionet mĂ« tĂ« fundit ka mundĂ«sinĂ« pĂ«r tĂ« fshirĂ« tĂ« dhĂ«nat e vjetra nga repositori nĂ« tĂ« ardhmen.
Programi Ă«shtĂ« shkruar nĂ« C++ me varĂ«si minime. Autori duket se Ă«shtĂ« frymĂ«zuar nga metoda unix-way, kĂ«shtu qĂ« programa merr tĂ« dhĂ«na nĂ« stdin gjatĂ« krijimit tĂ« kopjeve rezervĂ«, duke dhĂ«nĂ« njĂ« rrjedhĂ« tĂ« ngjashme tĂ« tĂ« dhĂ«nave nĂ« stdout gjatĂ« rikuperimit. KĂ«shtu, zbackup mund tĂ« pĂ«rdoret si njĂ« ‘ndihmĂ«s’ i shkĂ«lqyer pĂ«r tĂ« ndihmuar nĂ« zhvillimin e zgjidhjeve tuaja pĂ«r kopje rezervĂ«. PĂ«r shembull, ky program Ă«shtĂ« mjeti kryesor i autorit pĂ«r kopje rezervĂ« tĂ« kompjuterĂ«ve tĂ« shtĂ«pisĂ« qĂ« nga viti 2014.

Si rrjedhë të dhënash do të përdoret tar-i i zakonshëm, nëse nuk është thënë ndryshe.

Le të shohim se çfarë rezultate do të kemi:

Kontrolli i funksionimit është kryer në 2 variante:

  1. krijohet një repositor dhe zbackup aktivizohet në serverin me të dhënat burimore, pastaj përmbajtja e repositorit dërgohet në serverin për ruajtjen e kopjeve rezervë.
  2. krijohet një repositor në serverin për ruajtjen e kopjeve rezervë, zbackup aktivizohet përmes ssh në serverin për ruajtjen e kopjeve rezervë, të dhënat i jepen atij përmes pipe.

Rezultatet e versionit tĂ« parĂ« ishin tĂ« tilla: 43m11s — duke pĂ«rdorur depozitĂ«n e pa enkriptuar dhe kompresorin lzma, 19m13s — kur u zĂ«vendĂ«sua kompresori me lzo.

Ngarkesa në serverin me të dhënat origjinale ishte si më poshtë (tregohet një shembull me lzma, me lzo ishte përafërsisht e njëjtë, por pjesa e rsync ishte afërsisht një e katërta e kohës):

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

ËshtĂ« qartĂ« se njĂ« proces i tillĂ« kopjimi rezervĂ« Ă«shtĂ« i pĂ«rshtatshĂ«m vetĂ«m kur ndodhin ndryshime relativisht tĂ« rralla dhe tĂ« vogla. Gjithashtu, Ă«shtĂ« shumĂ« e dĂ«shirueshme tĂ« kufizohet puna e zbackup nĂ« 1 thread, pĂ«rndryshe do tĂ« ketĂ« njĂ« ngarkesĂ« tĂ« lartĂ« nĂ« procesor, pasi programi di tĂ« punojĂ« shumĂ« mirĂ« nĂ« disa thread. Ngarkesa nĂ« disk ishte e vogĂ«l, qĂ« nĂ« pĂ«rgjithĂ«si, me sistemin modern tĂ« pĂ«rbĂ«rjes sĂ« diskut tĂ« bazuar nĂ« ssd, do tĂ« jetĂ« e padukshme. Gjithashtu, Ă«shtĂ« qartĂ« se procesi i sinkronizimit tĂ« tĂ« dhĂ«nave tĂ« depozitĂ«s nĂ« serverin e largĂ«t po niset, shpejtĂ«sia e punĂ«s Ă«shtĂ« e krahasueshme me rsync-nĂ« e zakonshme dhe ngushtohet nĂ« performancĂ«n e sistemit tĂ« diskut tĂ« serverit pĂ«r ruajtjen e kopjeve rezervĂ«. NjĂ« mangĂ«si e qasjes Ă«shtĂ« ruajtja e depozitĂ«s lokale dhe, si pasojĂ«, — dyfishimi i tĂ« dhĂ«nave.

Ndryshe dhe më praktike është varianti i dytë me nisjen e zbackup direkt në serverin e ruajtjes së kopjeve rezervë.

Fillimisht do të kontrollohet funksionimi pa përdorur enkriptim me kompresorin lzma:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e ekzekutimit për çdo test:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

39m45s
40m20s
40m3s

7m36s
8m3s
7m48s

15m35s
15m48s
15m38s

Nëse aktivizohet enkriptimi me përdorimin e aes, rezultatet janë mjaft të afërta:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e ekzekutimit në të njëjtat të dhëna, me enkriptim:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

43m40s
44m12s
44m3s

8m3s
8m15s
8m12s

15m0s
15m40s
15m25s

Nëse enkriptimi kombinohet me kompresionin lzo, del kështu:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e funksionimit:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

18m2s
18m15s
18m12s

5m13s
5m24s
5m20s

8m48s
9m3s
8m51s

Të dhënat e rezultatit ishin relativisht të njëjta dhe përbënin 13 GB. Kjo tregon se deduplication funksionon korrekt. Gjithashtu, aplikimi i lzo mbi të dhënat e kompresuara ka një efekt të dukshëm, me kohën totale të punës së zbackup duke iu afruar duplicity/duplicati, megjithatë mbetet pas atyre të bazuara në librsync nga 2-5 herë.

Avantazhet janë të dukshme - kursim hapësire disk në serverin e ruajtjes së kopjeve rezervë. Sa i përket mjeteve për verifikimin e repositorit - autori i zbackup nuk i ka parashikuar ato, rekomandohet të përdoret një grumbull diskesh me qëndrueshmëri ose një ofrues të shërbimeve në re.

Në përgjithësi një përshtypje mjaft e mirë, përkundër faktit se projekti është rreth 3 vjet pa përparim (kërkesa e fundit për funksionalitet ishte rreth një vit më parë, por pa përgjigje).

Testimi i borgbackup

Borgbackup Ă«shtĂ« njĂ« fork i attic, njĂ« tjetĂ«r sistem i ngjashĂ«m me zbackup. ËshtĂ« shkruar nĂ« python, ka njĂ« listĂ« funksionesh tĂ« ngjashme me zbackup, por pĂ«rveç kĂ«saj di tĂ«:

  • Muntosh kopjet rezervĂ« pĂ«rmes fuse
  • Kontrollosh pĂ«rmbajtjen e repositorit
  • Punoje nĂ« modin klient-server
  • PĂ«rdorĂ«sh kompresorĂ« tĂ« ndryshĂ«m pĂ«r tĂ« dhĂ«nat, si dhe pĂ«rcaktimin heuristik tĂ« llojit tĂ« skedarit gjatĂ« kompresimit.
  • 2 variante enkriptimi, aes dhe blake
  • NjĂ« mjet tĂ« integruar pĂ«r

kontrollin e performancës

borgbackup benchmark crud://backup_server/repo/path local_dir

Rezultatet dolën këto:

C-Z-BIG 96.51 MB/s (10 100.00 MB skedarë me zeros: 10.36s)
R-Z-BIG 57.22 MB/s (10
100.00 MB skedarë me zeros: 17.48s)
U-Z-BIG 253.63 MB/s (10 100.00 MB skedarë me zeros: 3.94s)
D-Z-BIG 351.06 MB/s (10
100.00 MB skedarë me zeros: 2.85s)
C-R-BIG 34.30 MB/s (10 100.00 MB skedarë të rastit: 29.15s)
R-R-BIG 60.69 MB/s (10
100.00 MB skedarë të rastit: 16.48s)
U-R-BIG 311.06 MB/s (10 100.00 MB skedarë të rastit: 3.21s)
D-R-BIG 72.63 MB/s (10
100.00 MB skedarë të rastit: 13.77s)
C-Z-MEDIUM 108.59 MB/s (1000 1.00 MB skedarë me zeros: 9.21s)
R-Z-MEDIUM 76.16 MB/s (1000
1.00 MB skedarë me zeros: 13.13s)
U-Z-MEDIUM 331.27 MB/s (1000 1.00 MB skedarë me zeros: 3.02s)
D-Z-MEDIUM 387.36 MB/s (1000
1.00 MB skedarë me zeros: 2.58s)
C-R-MEDIUM 37.80 MB/s (1000 1.00 MB skedarë të rastit: 26.45s)
R-R-MEDIUM 68.90 MB/s (1000
1.00 MB skedar të rastësishëm: 14.51s)
U-R-MEDIUM 347.24 MB/s (1000 1.00 MB skedar të rastësishëm: 2.88s)
D-R-MEDIUM 48.80 MB/s (1000
1.00 MB skedar të rastësishëm: 20.49s)
C-Z-SMALL 11.72 MB/s (10000 10.00 kB skedar të gjitha zero: 8.53s)
R-Z-SMALL 32.57 MB/s (10000
10.00 kB skedar të gjitha zero: 3.07s)
U-Z-SMALL 19.37 MB/s (10000 10.00 kB skedar të gjitha zero: 5.16s)
D-Z-SMALL 33.71 MB/s (10000
10.00 kB skedar të gjitha zero: 2.97s)
C-R-SMALL 6.85 MB/s (10000 10.00 kB skedar të rastësishëm: 14.60s)
R-R-SMALL 31.27 MB/s (10000
10.00 kB skedar të rastësishëm: 3.20s)
U-R-SMALL 12.28 MB/s (10000 10.00 kB skedar të rastësishëm: 8.14s)
D-R-SMALL 18.78 MB/s (10000
10.00 kB skedar të rastësishëm: 5.32s)

Gjatë testimit do të përdoret heuristika për kompresimin me përcaktimin e tipit të skedarit (kompresimi automatik), dhe rezultatet do të jenë si më poshtë:

Fillimisht do të verifikojmë funksionimin pa enkriptim:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e funksionimit:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

4m6s
4m10s
4m5s

56s
58s
54s

1m26s
1m34s
1m30s

Nëse aktivizohet autorizimi i depozitës (rethi i autorizuar), rezultatet do të jenë afër:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e funksionimit:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

4m11s
4m20s
4m12s

1m0s
1m3s
1m2s

1m30s
1m34s
1m31s

Kur aktivizohet enkriptimi aes rezultatet nuk përkeqësohen shumë:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

4m55s
5m2s
4m58s

1m0s
1m2s
1m0s

1m49s
1m50s
1m50s

Por nëse e zëvendësojmë aes me blake, situata do të përmirësohet:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e funksionimit:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

4m33s
4m43s
4m40s

59s
1m0s
1m0s

1m38s
1m43s
1m40s

Si në rastin e zbackup, madhësia e repositorit ishte 13GB dhe pak më pak, që në përgjithësi është e pritshme. Koha e funksionimit ishte mjaft inkurajuese, duke u krahasuar me zgjidhjet e bazuara në librsync, duke ofruar mundësi shumë më të gjera. Një tjetër avantazh ishte mundësia për të caktuar parametra të ndryshëm përmes variablave të mjedisit, e cila ofron një përparësi të konsiderueshme kur përdoret borgbackup në mënyrë automatike. Po ashtu, ngarkesa gjatë kopjimit të rezervave ishte mjaft e ulët: sipas ngarkesës së procesorit, borgbackup punon në 1 rrjedh.

Nuk u zbuluan disavantazhe të veçanta gjatë përdorimit.

Testimi i restic

MegjithĂ«se restic Ă«shtĂ« njĂ« zgjidhje relativisht e re (dy kandidatĂ«t e parĂ« ishin tĂ« njohur qĂ« nga viti 2013 e mĂ« herĂ«t), ai ka karakteristika mjaft tĂ« mira. ËshtĂ« shkruar nĂ« Go.

NĂ« krahasim me zbackup, ofron gjithashtu:

  • Kontrollin e integritetit tĂ« repositorit (duke pĂ«rfshirĂ« kontrollin nĂ« pjesĂ«).
  • NjĂ« listĂ« tĂ« madhe tĂ« protokolleve dhe ofruesve tĂ« mbĂ«shtetjes pĂ«r ruajtjen e kopjeve rezervĂ«, si dhe mbĂ«shtetje pĂ«r rclone — rsync pĂ«r zgjidhjet ‘cloud’.
  • Krahasimi i 2 kopjeve rezervĂ« me njĂ«ri-tjetrin.
  • MundĂ«sia pĂ«r tĂ« montuar repositorin pĂ«rmes fuse.

NĂ« pĂ«rgjithĂ«si, lista e mundĂ«sive Ă«shtĂ« mjaft e ngjashme me borgbackup, ndonjĂ«herĂ« mĂ« shumĂ«, ndonjĂ«herĂ« mĂ« pak. Nga veçoritĂ« – mungesa e mundĂ«sisĂ« pĂ«r tĂ« çaktivizuar enkriptimin, prandaj, kopjet rezervĂ« do tĂ« jenĂ« gjithmonĂ« tĂ« enkriptuara. Le tĂ« shohim nĂ« praktikĂ« se çfarĂ« mund tĂ« nxjerrim nga kjo softuer:

Rezultatet ishin si më poshtë:

Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup

Koha e funksionimit:

Ekzekutimi 1
Ekzekutimi 2
Ekzekutimi 3

5m25s
5m50s
5m38s

35s
38s
36s

1m54s
2m2s
1m58s

Rezultatet e punës janë gjithashtu krahasuese me zgjidhjet që bazohen në rsync dhe, në përgjithësi, janë mjaft të ngjashme me borgbackup, por ngarkesa në procesor është më e lartë (punon me disa rryma) dhe me një formë zig-zag.

Më shumë gjasa, programi has në performancën e nën-sistemit të diskut në serverin e ruajtjes së të dhënave, ashtu siç ka ndodhur tashmë me rsync. Madhësia e depozitës ishte 13GB, si me zbackup ashtu edhe me borgbackup, nuk u gjetën disavantazhe të dukshme gjatë përdorimit të kësaj zgjidhjeje.

Rezultatet

Në fakt, të gjithë kandidatet kishin tregues të ngjashëm, megjithatë, me çmime të ndryshme. Borgbackup i tregoi rezultatet më të mira, pak më i ngadalshëm ishte restic, zbackup nuk ka vlerë të fillohet të përdoret,
dhe nĂ«se Ă«shtĂ« duke u pĂ«rdorur tashmĂ« – provoni tĂ« kaloni nĂ« borgbackup ose restic.

Përfundimet

Zgjidhja më premtuese duket të jetë restic, pasi ka raportin më të mirë të mundësive ndaj shpejtësisë, por për momentin nuk do të nxitojmë me përfundimet tona të përgjithshme.

Borgbackup në thelb nuk është më pak i mirë, ndërsa zbackup ndoshta duhet zëvendësuar. Megjithatë, për të garantuar funksionimin e rregullave 3-2-1, zbackup akoma mund të përdoret. Për shembull, në përputhje me mjetet përkopjimi që bazohen në (lib)rsync.

Ankandi

Kopjimi, pjesa 1: Pse është e nevojshme kopjimi, një përmbledhje e metodave, teknologjive
Kopjimi, pjesa 2: Përmbledhje dhe testim i mjeteve për kopjimin që bazohen në rsync
Kopjimi, pjesa 3: Përmbledhje dhe testim i duplicity, duplicati
Kopjimi, pjesa 4: Përmbledhje dhe testim i zbackup, restic, borgbackup
Kopjimi, pjesa 5: Testimi i bacula dhe veeam backup për linux
Backup, pjesa 6: Krahasimi i mjeteve të backup-it
Kopjimi, pjesa 7: Përfundimet

Autori i publikimit: Pavël Demkoviç

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster