Å ajÄ rakstÄ tiks apskatÄ«ta rezerves programmatÅ«ra, kas, sadalot datu straumi atseviŔķos komponentos (gabalos), veido repozitoriju.
Repozitorija komponentus var vÄl vairÄk saspiest un Å”ifrÄt, un pats galvenais - atkÄrtotu dublÄÅ”anas procesu laikÄ - izmantot atkÄrtoti.
Rezerves kopija Å”ÄdÄ repozitorijÄ ir nosaukta komponentu Ä·Äde, kas savienota viena ar otru, piemÄram, pamatojoties uz dažÄdÄm jaucÄjfunkcijÄm.
Ir vairÄki lÄ«dzÄ«gi risinÄjumi, es koncentrÄÅ”os uz 3: zbackup, borgbackup un restic.
GaidÄmie rezultÄti
TÄ kÄ visiem pretendentiem vienÄ vai otrÄ veidÄ ir nepiecieÅ”ams izveidot repozitoriju, viens no svarÄ«gÄkajiem faktoriem bÅ«s repozitorija lieluma aplÄse. IdeÄlÄ gadÄ«jumÄ tÄ lielumam jÄbÅ«t ne lielÄkam par 13 GB saskaÅÄ ar pieÅemto metodiku vai pat mazÄkam - ar labu optimizÄciju.
Ä»oti vÄlams ir arÄ« iespÄja izveidot failu rezerves kopijas tieÅ”i, neizmantojot arhivÄtÄjus, piemÄram, tar, kÄ arÄ« strÄdÄt ar ssh/sftp bez papildu rÄ«kiem, piemÄram, rsync un sshfs.
RÄ«cÄ«ba, veidojot dublÄjumus:
- Repozitorija lielums bÅ«s vienÄds ar izmaiÅu lielumu vai mazÄks.
- Lietojot saspieÅ”anu un/vai Å”ifrÄÅ”anu, ir paredzama liela CPU slodze, un, ja arhivÄÅ”anas un/vai Å”ifrÄÅ”anas process darbojas rezerves krÄtuves serverÄ«, ir iespÄjama diezgan liela tÄ«kla un diska slodze.
- Ja repozitorijs ir bojÄts, iespÄjama aizkavÄta kļūda gan veidojot jaunus dublÄjumus, gan mÄÄ£inot atjaunot. Ir nepiecieÅ”ams plÄnot papildu pasÄkumus, lai nodroÅ”inÄtu repozitorija integritÄti vai izmantot iebÅ«vÄtos rÄ«kus tÄs integritÄtes pÄrbaudei.
Darbs ar darvu tiek Åemts par atsauces vÄrtÄ«bu, kÄ parÄdÄ«ts vienÄ no iepriekÅ”Äjiem rakstiem.
Zbackup testÄÅ”ana
VispÄrÄjais zbackup mehÄnisms ir tÄds, ka programma ievades datu straumÄ atrod apgabalus, kuros ir tie paÅ”i dati, pÄc tam tos pÄc izvÄles saspiež un Å”ifrÄ, katru apgabalu saglabÄjot tikai vienu reizi.
DedublikÄcija izmanto 64 bitu gredzena jaucÄjfunkciju ar bÄ«dÄmu logu, lai pÄrbaudÄ«tu, vai baits pa baitam atbilst esoÅ”ajiem datu blokiem (lÄ«dzÄ«gi tam, kÄ rsync to ievieÅ”).
SaspieÅ”anai tiek izmantoti daudzpavedienu lzma un lzo, bet Å”ifrÄÅ”anai - aes. JaunÄkajÄs versijÄs ir iespÄja dzÄst vecos datus no repozitorija nÄkotnÄ.
Programma ir uzrakstÄ«ta C++ valodÄ ar minimÄlÄm atkarÄ«bÄm. Autors acÄ«mredzot iedvesmojies no unix-way, tÄpÄc programma, veidojot dublÄjumus, pieÅem datus par stdin, atjaunojot, veidojot lÄ«dzÄ«gu datu straumi stdout. TÄdÄjÄdi zbackup var izmantot kÄ Ä¼oti labu āveidoÅ”anas blokuā, rakstot savus rezerves risinÄjumus. PiemÄram, raksta autors ir izmantojis Å”o programmu kÄ galveno mÄjas maŔīnu dublÄÅ”anas rÄ«ku kopÅ” aptuveni 2014. gada.
Datu straume bÅ«s parasta darva, ja vien nav norÄdÄ«ts citÄdi.
ApskatÄ«sim, kÄdi ir rezultÄti:
Darbs tika pÄrbaudÄ«ts 2 variantos:
- tiek izveidots repozitorijs un serverÄ« ar avota datiem tiek palaists zbackup, pÄc tam repozitorija saturs tiek pÄrsÅ«tÄ«ts uz rezerves krÄtuves serveri.
- rezerves krÄtuves serverÄ« tiek izveidota repozitorija, dublÄjuma krÄtuves serverÄ« caur ssh tiek palaists zbackup, un dati uz to tiek nosÅ«tÄ«ti pa cauruli.
PirmÄ varianta rezultÄti bija Å”Ädi: 43m11s - izmantojot neÅ”ifrÄtu repozitoriju un lzma kompresoru, 19m13s - kompresoru nomainot pret lzo.
Servera slodze ar sÄkotnÄjiem datiem bija Å”Äda (parÄdÄs piemÄrs ar lzma; ar lzo bija aptuveni tÄda pati bilde, bet rsync daļa bija aptuveni ceturtÄ daļa laika):
Skaidrs, ka Å”Äds dublÄÅ”anas process ir piemÄrots tikai salÄ«dzinoÅ”i retÄm un nelielÄm izmaiÅÄm. Ir arÄ« ļoti ieteicams ierobežot zbackup lÄ«dz 1 pavedienam, pretÄjÄ gadÄ«jumÄ bÅ«s ļoti liela CPU slodze, jo Programma ļoti labi var strÄdÄt vairÄkos pavedienos. Noslogojums uz diska bija mazs, kas kopumÄ nebÅ«tu manÄms ar modernu ssd bÄzes disku apakÅ”sistÄmu. Varat arÄ« skaidri redzÄt repozitorija datu sinhronizÄÅ”anas procesa sÄkumu ar attÄlo serveri; darbÄ«bas Ätrums ir salÄ«dzinÄms ar parasto rsync un ir atkarÄ«gs no rezerves krÄtuves servera diska apakÅ”sistÄmas veiktspÄjas. Å Ä«s pieejas trÅ«kums ir lokÄlas repozitorija glabÄÅ”ana un lÄ«dz ar to datu dublÄÅ”anÄs.
InteresantÄka un praksÄ pielietojamÄka ir otrÄ iespÄja, palaižot zbackup tieÅ”i rezerves krÄtuves serverÄ«.
PirmkÄrt, mÄs pÄrbaudÄ«sim darbÄ«bu, neizmantojot Å”ifrÄÅ”anu ar lzma kompresoru:
Katra testa brauciena ilgums:
Palaist 1
Palaist 2
Palaist 3
39m45
40m20
40m3
7m36
8m3
7m48
15m35
15m48
15m38
Ja iespÄjojat Å”ifrÄÅ”anu, izmantojot Aes, rezultÄti ir diezgan tuvu:
DarbÄ«bas laiks ar tiem paÅ”iem datiem, ar Å”ifrÄÅ”anu:
Palaist 1
Palaist 2
Palaist 3
43m40
44m12
44m3
8m3
8m15
8m12
15m0
15m40
15m25
Ja Å”ifrÄÅ”ana tiek apvienota ar saspieÅ”anu, izmantojot lzo, tas izskatÄs Å”Ädi:
stundas:
Palaist 1
Palaist 2
Palaist 3
18m2
18m15
18m12
5m13
5m24
5m20
8m48
9m3
8m51
IegÅ«tÄs repozitorija lielums bija salÄ«dzinoÅ”i vienÄds ar 13 GB. Tas nozÄ«mÄ, ka dublÄÅ”ana darbojas pareizi. ArÄ« uz jau saspiestiem datiem lzo izmantoÅ”ana dod manÄmu efektu, kopÄjÄ darbÄ«bas laika ziÅÄ zbackup pietuvojas duplicity/dublicati, bet atpaliek no tiem, kuru pamatÄ ir librsync 2-5 reizes.
PriekÅ”rocÄ«bas ir acÄ«mredzamas ā diska vietas ietaupÄ«Å”ana rezerves krÄtuves serverÄ«. Kas attiecas uz repozitoriju pÄrbaudes rÄ«kiem, tad zbackup autors tos nenodroÅ”ina, ieteicams izmantot kļūdu izturÄ«gu disku masÄ«vu vai mÄkoÅa nodroÅ”inÄtÄju.
KopumÄ Ä¼oti labs iespaids, neskatoties uz to, ka projekts stÄv uz vietas kÄdus 3 gadus (pÄdÄjais funkcijas pieprasÄ«jums bija apmÄram pirms gada, bet bez atbildes).
Borgbackup pÄrbaude
Borgbackup ir bÄniÅu dakÅ”a, cita sistÄma, kas lÄ«dzÄ«ga zbackup. RakstÄ«ts python, tajÄ ir zbackup lÄ«dzÄ«gu iespÄju saraksts, taÄu papildus var:
- UzstÄdiet rezerves kopijas, izmantojot droÅ”inÄtÄju
- PÄrbaudiet repozitorija saturu
- Darbs klienta-servera režīmÄ
- Datiem izmantojiet dažÄdus kompresorus, kÄ arÄ« faila tipa heiristisku noteikÅ”anu, to saspiežot.
- 2 Å”ifrÄÅ”anas iespÄjas, aes un blake
- IebÅ«vÄts rÄ«ks priekÅ”
veiktspÄjas pÄrbaudes
borgbackup etalons crud ssh://backup_server/repo/path local_dir
RezultÄti bija Å”Ädi:
C-Z-BIG 96.51 MB/s (10 100.00 MB nulles faili: 10.36 s)
R-Z-BIG 57.22 MB/s (10 100.00 MB nulles faili: 17.48 s)
U-Z-BIG 253.63 MB/s (10 100.00 MB nulles faili: 3.94 s)
D-Z-BIG 351.06 MB/s (10 100.00 MB nulles faili: 2.85 s)
C-R-BIG 34.30 MB/s (10 100.00 MB nejauŔi faili: 29.15 s)
R-R-BIG 60.69 MB/s (10 100.00 MB nejauŔi faili: 16.48 s)
U-R-BIG 311.06 MB/s (10 100.00 MB nejauŔi faili: 3.21 s)
D-R-BIG 72.63 MB/s (10 100.00 MB nejauŔi faili: 13.77 s)
C-Z-MEDIUM 108.59 MB/s (1000 1.00 MB nulles faili: 9.21 s)
R-Z-MEDIUM 76.16 MB/s (1000 1.00 MB nulles faili: 13.13 s)
U-Z-MEDIUM 331.27 MB/s (1000 1.00 MB nulles faili: 3.02 s)
D-Z-MEDIUM 387.36 MB/s (1000 1.00 MB nulles faili: 2.58 s)
C-R-MEDIUM 37.80 MB/s (1000 1.00 MB nejauŔi faili: 26.45 s)
R-R-MEDIUM 68.90 MB/s (1000 1.00 MB nejauŔi faili: 14.51 s)
U-R-MEDIUM 347.24 MB/s (1000 1.00 MB nejauŔi faili: 2.88 s)
D-R-MEDIUM 48.80 MB/s (1000 1.00 MB nejauŔi faili: 20.49 s)
C-Z-SMALL 11.72 MB/s (10000 10.00 kB nulles faili: 8.53 s)
R-Z-SMALL 32.57 MB/s (10000 10.00 kB nulles faili: 3.07 s)
U-Z-SMALL 19.37 MB/s (10000 10.00 kB nulles faili: 5.16 s)
D-Z-SMALL 33.71 MB/s (10000 10.00 kB nulles faili: 2.97 s)
C-R-SMALL 6.85 MB/s (10000 10.00 kB nejauŔi faili: 14.60 s)
R-R-SMALL 31.27 MB/s (10000 10.00 kB nejauŔi faili: 3.20 s)
U-R-SMALL 12.28 MB/s (10000 10.00 kB nejauŔi faili: 8.14 s)
D-R-SMALL 18.78 MB/s (10000 XNUMX 10.00 kB nejauŔi faili: 5.32 s)
PÄrbaudes laikÄ faila veida noteikÅ”anai tiks izmantota saspieÅ”anas heiristika (automÄtiskÄ saspieÅ”ana), un rezultÄti bÅ«s Å”Ädi:
Vispirms pÄrbaudÄ«sim, kÄ tas darbojas bez Å”ifrÄÅ”anas:
stundas:
Palaist 1
Palaist 2
Palaist 3
4m6
4m10
4m5
56s
58s
54s
1m26
1m34
1m30
Ja iespÄjosit repozitorija autorizÄciju (autentificÄts režīms), rezultÄti bÅ«s tuvu:
stundas:
Palaist 1
Palaist 2
Palaist 3
4m11
4m20
4m12
1m0
1m3
1m2
1m30
1m34
1m31
Kad tika aktivizÄta AES Å”ifrÄÅ”ana, rezultÄti Ä«paÅ”i nepasliktinÄjÄs:
Palaist 1
Palaist 2
Palaist 3
4m55
5m2
4m58
1m0
1m2
1m0
1m49
1m50
1m50
Un, ja jÅ«s nomainÄ«sit aes uz Blake, situÄcija pilnÄ«bÄ uzlabosies:
stundas:
Palaist 1
Palaist 2
Palaist 3
4m33
4m43
4m40
59s
1m0
1m0
1m38
1m43
1m40
TÄpat kÄ zbackup gadÄ«jumÄ, repozitorija lielums bija 13 GB un pat nedaudz mazÄks, kas parasti tiek gaidÄ«ts. Es biju ļoti apmierinÄts ar darbÄ«bas laiku, tas ir salÄ«dzinÄms ar risinÄjumiem, kuru pamatÄ ir librsync, nodroÅ”inot daudz plaÅ”Äkas iespÄjas. Mani iepriecinÄja arÄ« iespÄja iestatÄ«t dažÄdus parametrus caur vides mainÄ«gajiem, kas dod ļoti nopietnas priekÅ”rocÄ«bas, izmantojot borgbackup automÄtiskajÄ režīmÄ. Mani iepriecinÄja arÄ« noslodze dublÄÅ”anas laikÄ: spriežot pÄc procesora slodzes, borgbackup darbojas 1 pavedienÄ.
Lietojot, nebija īpaŔu trūkumu.
restic testÄÅ”ana
Neskatoties uz to, ka restic ir diezgan jauns risinÄjums (pirmie 2 kandidÄti bija zinÄmi jau 2013. gadÄ un vecÄki), tam ir diezgan labas Ä«paŔības. RakstÄ«ts Go.
Salīdzinot ar zbackup, tas papildus sniedz:
- Repozitorija integritÄtes pÄrbaude (ieskaitot pÄrbaudi pa daļÄm).
- MilzÄ«gs atbalstÄ«to protokolu un pakalpojumu sniedzÄju saraksts dublÄjumu glabÄÅ”anai, kÄ arÄ« atbalsts rclone - rsync mÄkoÅrisinÄjumiem.
- SalÄ«dzinot 2 dublÄjumus savÄ starpÄ.
- KrÄtuves montÄža, izmantojot droÅ”inÄtÄju.
KopumÄ funkciju saraksts ir diezgan tuvu borgbackup, vietÄm vairÄk, citur mazÄk. Viena no funkcijÄm ir tÄda, ka nav iespÄjams atspÄjot Å”ifrÄÅ”anu, un tÄpÄc rezerves kopijas vienmÄr tiks Å”ifrÄtas. ApskatÄ«sim praksÄ, ko var izspiest no Ŕīs programmatÅ«ras:
RezultÄti bija Å”Ädi:
stundas:
Palaist 1
Palaist 2
Palaist 3
5m25
5m50
5m38
35s
38s
36s
1m54
2m2
1m58
VeiktspÄjas rezultÄti ir salÄ«dzinÄmi arÄ« ar risinÄjumiem, kuru pamatÄ ir rsync, un kopumÄ Ä¼oti tuvu borgbackup, taÄu CPU slodze ir lielÄka (darbojas vairÄki pavedieni) un zÄÄ£a zobs.
VisticamÄk, programmu ierobežo diska apakÅ”sistÄmas veiktspÄja datu uzglabÄÅ”anas serverÄ«, kÄ tas jau bija rsync gadÄ«jumÄ. Repozitorija izmÄrs bija 13 GB, tÄpat kÄ zbackup vai borgbackup, lietojot Å”o risinÄjumu, nebija acÄ«mredzamu trÅ«kumu.
rezultÄtus
Faktiski visi kandidÄti sasniedza lÄ«dzÄ«gus rezultÄtus, taÄu par dažÄdÄm cenÄm. Borgbackup darbojÄs vislabÄk, restic bija nedaudz lÄnÄks, iespÄjams, zbackup nav vÄrts sÄkt lietot,
un, ja tas jau tiek izmantots, mÄÄ£iniet to mainÄ«t uz borgbackup vai restic.
Atzinumi
VisdaudzsoloÅ”Äkais risinÄjums Ŕķiet atturÄ«gs, jo... tieÅ”i viÅam ir vislabÄkÄ spÄju attiecÄ«ba pret darbÄ«bas Ätrumu, taÄu pagaidÄm nesteigsimies ar vispÄrÄ«giem secinÄjumiem.
Borgbackup bÅ«tÄ«bÄ nav sliktÄks, taÄu zbackup, iespÄjams, ir labÄk aizstÄt. Tiesa, zbackup joprojÄm var izmantot, lai nodroÅ”inÄtu 3-2-1 noteikuma darbÄ«bu. PiemÄram, papildus uz (lib)rsync balstÄ«tÄm dublÄÅ”anas iespÄjÄm.
PaziÅojums
DublÄÅ”ana 5. daļa: bacula un veeam dublÄjuma testÄÅ”ana operÄtÄjsistÄmai Linux
DublÄÅ”ana 6. daļa: DublÄÅ”anas rÄ«ku salÄ«dzinÄÅ”ana
Rezerves kopija 7. daļa: SecinÄjumi
Ievietoja: PÄvels DemkoviÄs
Avots: www.habr.com