Å ajÄ piezÄ«mÄ ir apskatÄ«ti dublÄÅ”anas rÄ«ki, kas veic dublÄÅ”anu, izveidojot arhÄ«vus rezerves serverÄ«.
Starp tiem, kas atbilst prasÄ«bÄm, ir duplicitÄte (kam ir jauks interfeiss deja dup formÄ) un duplicati.
VÄl viens ļoti ievÄrojams dublÄÅ”anas rÄ«ks ir dar, taÄu, tÄ kÄ tam ir ļoti plaÅ”s iespÄju saraksts - testÄÅ”anas metodika aptver gandrÄ«z 10% no tÄ, ko tas spÄj, mÄs to nepÄrbaudÄm kÄ daļu no paÅ”reizÄjÄ cikla.
GaidÄmie rezultÄti
TÄ kÄ abi kandidÄti tÄdÄ vai citÄdÄ veidÄ veido arhÄ«vus, parasto darvu var izmantot kÄ ceļvedi.
TurklÄt mÄs novÄrtÄsim, cik labi ir optimizÄta datu glabÄÅ”ana krÄtuves serverÄ«, izveidojot rezerves kopijas, kas satur tikai atŔķirÄ«bu starp pilnu kopiju un paÅ”reizÄjo failu stÄvokli vai starp iepriekÅ”Äjo un paÅ”reizÄjo arhÄ«vu (inkrementÄli, dekrementÄli utt.). .
RÄ«cÄ«ba, veidojot dublÄjumus:
- SalÄ«dzinoÅ”i neliels failu skaits rezerves krÄtuves serverÄ« (salÄ«dzinÄms ar rezerves kopiju skaitu vai datu apjomu GB), taÄu to apjoms ir diezgan liels (desmitiem lÄ«dz simtiem megabaitu).
- Repozitorija lielums ietvers tikai izmaiÅas - netiks saglabÄti dublikÄti, tÄpÄc repozitorija lielums bÅ«s mazÄks nekÄ ar rsync balstÄ«tu programmatÅ«ru.
- Lietojot saspieÅ”anu un/vai Å”ifrÄÅ”anu, sagaidÄma liela CPU slodze un, iespÄjams, diezgan liela tÄ«kla un diska noslodze, ja arhivÄÅ”anas un/vai Å”ifrÄÅ”anas process darbojas rezerves krÄtuves serverÄ«.
PalaidÄ«sim Å”Ädu komandu kÄ atsauces vÄrtÄ«bu:
cd /src/dir; tar -cf - * | ssh backup_server "cat > /backup/dir/archive.tar"
Izpildes rezultÄti bija Å”Ädi:
Izpildes laiks 3m12s. Var redzÄt, ka Ätrumu ierobežo rezerves krÄtuves servera diska apakÅ”sistÄma, kÄ piemÄrÄ ar
TurklÄt, lai novÄrtÄtu saspieÅ”anu, izpildÄ«sim to paÅ”u opciju, bet iespÄjosim saspieÅ”anu rezerves servera pusÄ:
cd /src/dir; tar -cf - * | ssh backup_server "gzip > /backup/dir/archive.tgz"
RezultÄti ir:
Izpildes laiks 10m11s. VisticamÄk, saÅ”aurinÄjums ir vienas plÅ«smas kompresors uztverÅ”anas galÄ.
TÄ pati komanda, bet ar kompresiju, kas tiek pÄrsÅ«tÄ«ta uz serveri ar sÄkotnÄjiem datiem, lai pÄrbaudÄ«tu hipotÄzi, ka saÅ”aurinÄjums ir viena vÄ«tnes kompresors.
cd /src/dir; tar -czf - * | ssh backup_server "cat > /backup/dir/archive.tgz"
Tas izrÄdÄ«jÄs Å”Ädi:
Izpildes laiks bija 9m37s. Kompresora slodze uz vienu serdi ir skaidri redzama, jo TÄ«kla pÄrsÅ«tÄ«Å”anas Ätrums un avota diska apakÅ”sistÄmas slodze ir lÄ«dzÄ«ga.
Lai novÄrtÄtu Å”ifrÄÅ”anu, varat izmantot openssl vai gpg, pievienojot papildu komandu openssl
vai gpg
caurulÄ. UzziÅai bÅ«s Å”Äda komanda:
cd /src/dir; tar -cf - * | ssh backup_server "gzip | openssl enc -e -aes256 -pass pass:somepassword -out /backup/dir/archive.tgz.enc"
RezultÄti iznÄca Å”Ädi:
Izpildes laiks izrÄdÄ«jÄs 10 m30 s, jo uztvÄrÄja pusÄ darbojÄs 2 procesi - saÅ”aurinÄjums atkal ir viena vÄ«tnes kompresors, plus neliela Å”ifrÄÅ”ana.
UPD: PÄc bliznezz pieprasÄ«juma pievienoju testus ar pigz. Ja izmantotu tikai kompresoru, tas aizÅemtu 6m30s, ja pievienotu arÄ« Å”ifrÄÅ”anu, bÅ«tu kÄdi 7m. ApakÅ”ÄjÄ diagrammas kritums ir neizskalota diska keÅ”atmiÅa:
DublÄta pÄrbaude
Duplicity ir python programmatÅ«ra dublÄÅ”anai, izveidojot Å”ifrÄtus arhÄ«vus darvas formÄtÄ.
InkrementÄlajiem arhÄ«viem tiek izmantots librsync, tÄpÄc varat sagaidÄ«t darbÄ«bu, kas aprakstÄ«ta rakstÄ
DublÄjumus var Å”ifrÄt un parakstÄ«t, izmantojot gnupg, kas ir svarÄ«gi, ja dublÄjumu glabÄÅ”anai izmantojat dažÄdus pakalpojumu sniedzÄjus (s3, backblaze, gdrive utt.)
ApskatÄ«sim, kÄdi ir rezultÄti:
Å ie ir rezultÄti, ko saÅÄmÄm, darbojoties bez Å”ifrÄÅ”anas
spoileris
Katra testa brauciena ilgums:
Palaist 1
Palaist 2
Palaist 3
16m33
17m20
16m30
8m29
9m3
8m45
5m21
6m04
5m53
Un Å”eit ir rezultÄti, kad ir iespÄjota gnupg Å”ifrÄÅ”ana ar atslÄgas izmÄru 2048 biti:
DarbÄ«bas laiks ar tiem paÅ”iem datiem, ar Å”ifrÄÅ”anu:
Palaist 1
Palaist 2
Palaist 3
17m22
17m32
17m28
8m52
9m13
9m3
5m48
5m40
5m30
Tika norÄdÄ«ts bloka izmÄrs - 512 megabaiti, kas skaidri redzams grafikos; Procesora slodze faktiski palika 50%, kas nozÄ«mÄ, ka programma izmanto ne vairÄk kÄ vienu procesora kodolu.
ArÄ« programmas darbÄ«bas princips ir diezgan skaidri redzams: viÅi paÅÄma datu gabalu, saspieda to un nosÅ«tÄ«ja uz rezerves krÄtuves serveri, kas var bÅ«t diezgan lÄns.
VÄl viena iezÄ«me ir prognozÄjamais programmas darbÄ«bas laiks, kas ir atkarÄ«gs tikai no izmainÄ«to datu lieluma.
Å ifrÄÅ”anas iespÄjoÅ”ana bÅ«tiski nepalielinÄja programmas darbÄ«bas laiku, taÄu palielinÄja procesora slodzi par aptuveni 10%, kas var bÅ«t diezgan patÄ«kams bonuss.
DiemžÄl Ŕī programma nespÄja pareizi noteikt situÄciju ar direktoriju pÄrdÄvÄÅ”anu, un iegÅ«tais repozitorija lielums izrÄdÄ«jÄs vienÄds ar izmaiÅu lielumu (t.i., visi 18 GB), taÄu iespÄja dublÄÅ”anai izmantot neuzticamu serveri skaidri redzama. aptver Å”o uzvedÄ«bu.
DublÄta pÄrbaude
Å Ä« programmatÅ«ra ir rakstÄ«ta C# un darbojas, izmantojot bibliotÄku kopu no Mono. Ir gan GUI, gan CLI versija.
Aptuvenais galveno funkciju saraksts ir lÄ«dzÄ«gs duplicitÄtei, iekļaujot dažÄdus rezerves krÄtuves nodroÅ”inÄtÄjus, tomÄr atŔķirÄ«bÄ no duplicitÄtes lielÄkÄ daļa funkciju ir pieejamas bez treÅ”o puÅ”u rÄ«kiem. Tas, vai tas ir pluss vai mÄ«nuss, ir atkarÄ«gs no konkrÄtÄ gadÄ«juma, taÄu iesÄcÄjiem, visticamÄk, ir vieglÄk uzreiz izveidot visu funkciju sarakstu, nevis papildus instalÄt python pakotnes, kÄ tas ir gadÄ«jumÄ ar divkosÄ«bu.
VÄl viena neliela nianse - programma aktÄ«vi raksta lokÄlo sqlite datu bÄzi tÄ lietotÄja vÄrdÄ, kurÅ” uzsÄk dublÄÅ”anu, tÄpÄc papildus ir jÄpÄrliecinÄs, vai vajadzÄ«gÄ datu bÄze ir pareizi norÄdÄ«ta katru reizi, kad process tiek uzsÄkts, izmantojot cli. StrÄdÄjot, izmantojot GUI vai WEBGUI, informÄcija lietotÄjam tiks paslÄpta.
ApskatÄ«sim, kÄdus rÄdÄ«tÄjus Å”is risinÄjums var radÄ«t:
Ja izslÄdzat Å”ifrÄÅ”anu (un WEBGUI neiesaka to darÄ«t), rezultÄti ir Å”Ädi:
stundas:
Palaist 1
Palaist 2
Palaist 3
20m43
20m13
20m28
5m21
5m40
5m35
7m36
7m54
7m49
Ja ir iespÄjota Å”ifrÄÅ”ana, izmantojot aes, tas izskatÄs Å”Ädi:
stundas:
Palaist 1
Palaist 2
Palaist 3
29m9
30m1
29m54
5m29
6m2
5m54
8m44
9m12
9m1
Un, ja izmantojat ÄrÄjo programmu gnupg, tiek parÄdÄ«ti Å”Ädi rezultÄti:
Palaist 1
Palaist 2
Palaist 3
26m6
26m35
26m17
5m20
5m48
5m40
8m12
8m42
8m15
KÄ redzat, programma var darboties vairÄkos pavedienos, taÄu tas nepadara to par produktÄ«vÄku risinÄjumu, un, ja salÄ«dzina Å”ifrÄÅ”anas darbu, tÄ palaiž ÄrÄju programmu.
izrÄdÄ«jÄs ÄtrÄk, nekÄ izmantojot bibliotÄku no Mono komplekta. Tas var bÅ«t saistÄ«ts ar faktu, ka ÄrÄjÄ programma ir vairÄk optimizÄta.
VÄl patÄ«kami bija fakts, ka repozitorija lielums aizÅem tieÅ”i tik daudz, cik faktiski mainÄ«tie dati, t.i. duplicati atklÄja direktorija pÄrdÄvÄÅ”anu un pareizi apstrÄdÄja Å”o situÄciju. To var redzÄt, izpildot otro testu.
KopumÄ diezgan pozitÄ«vi iespaidi par programmu, tostarp diezgan draudzÄ«gums iesÄcÄjiem.
rezultÄtus
Abi kandidÄti strÄdÄja diezgan lÄni, bet kopumÄ, salÄ«dzinot ar parasto darvu, progress vismaz ar dublikÄtiem ir. ArÄ« Å”Äda progresa cena ir skaidra ā manÄms slogs
procesors. KopumÄ rezultÄtu prognozÄÅ”anÄ nav Ä«paÅ”u noviržu.
Atzinumi
Ja nekur nav jÄsteidzas, un ir arÄ« rezerves procesors, derÄs jebkurÅ” no apsvÄrtajiem risinÄjumiem, katrÄ ziÅÄ ir paveikts diezgan liels darbs, ko nevajadzÄtu atkÄrtot, rakstot iesaiÅojuma skriptus virs darvas . Å ifrÄÅ”anas klÄtbÅ«tne ir ļoti nepiecieÅ”ama Ä«paŔība, ja serverim rezerves kopiju glabÄÅ”anai nevar pilnÄ«bÄ uzticÄties.
SalÄ«dzinÄjumÄ ar risinÄjumiem, kuru pamatÄ ir
Ir ietaupÄ«jumi uz repozitorija lieluma, bet tikai ar dublikÄtiem.
PaziÅojums
DublÄjuma 3. daļa. PÄrskatÄ«Å”ana un dubliskuma pÄrbaude un pÄrbaude, dublikÄti, deja dup
DublÄÅ”ana 4. daļa: zbackup, restic, borgbackup pÄrskatÄ«Å”ana un testÄÅ”ana
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