Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Catetan ieu ngabahas parabot cadangan nu ngalakukeun cadangan ku nyieun arsip dina server cadangan.

Diantara anu nyumponan sarat nyaéta duplikat (anu gaduh antarmuka anu saé dina bentuk deja dup) sareng duplikat.

Alat cadangan anu luar biasa anu sanés nyaéta dar, tapi kusabab éta gaduh daptar pilihan anu éksténsif - metodologi tés nyertakeun ampir 10% tina naon anu sanggup - kami henteu nguji éta salaku bagian tina siklus ayeuna.

Hasil anu diarepkeun

Kusabab duanana calon nyieun arsip dina hiji cara atawa sejen, tar biasa bisa dipaké salaku pituduh a.

Salaku tambahan, urang bakal ngira-ngira kumaha panyimpen data dina pangladén panyimpen dioptimalkeun ku cara nyiptakeun salinan cadangan anu ngan ukur aya bédana antara salinan lengkep sareng kaayaan file ayeuna, atanapi antara arsip saméméhna sareng ayeuna (incremental, decremental, jsb.) .

Paripolah nalika nyieun cadangan:

  1. Sajumlah rélatif leutik file dina server gudang cadangan (comparable jeung jumlah salinan cadangan atawa ukuran data dina GB), tapi ukuran maranéhanana cukup badag (puluhan nepi ka ratusan megabytes).
  2. Ukuran gudang ngan bakal ngawengku parobahan - euweuh duplikat bakal disimpen, jadi ukuran gudang bakal leuwih leutik batan software basis rsync.
  3. Nyangka beban CPU beurat lamun ngagunakeun komprési jeung/atawa enkripsi, sarta kamungkinan rada luhur jaringan sarta beban disk lamun archiving na / atawa prosés enkripsi dijalankeun dina server gudang cadangan.

Hayu urang ngajalankeun paréntah di handap ieu salaku nilai rujukan:

cd /src/dir; tar -cf - * | ssh backup_server "cat > /backup/dir/archive.tar"

Hasil palaksanaan nyaéta kieu:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

waktos palaksanaan 3m12s. Ieu bisa ditempo yén speed diwatesan ku subsistem disk tina server gudang cadangan, sakumaha dina conto kalawan rsync. Ngan rada gancang, sabab ... rekaman mana kana hiji file.

Ogé, pikeun meunteun komprési, hayu urang ngajalankeun pilihan anu sami, tapi aktipkeun komprési dina sisi server cadangan:

cd /src/dir; tar -cf - * | ssh backup_server "gzip > /backup/dir/archive.tgz"

Hasilna nyaéta:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

waktos palaksanaan 10m11s. Paling dipikaresep bottleneck teh compressor single-aliran dina tungtung panarima.

Paréntah sarua, tapi kalawan komprési ditransferkeun ka server kalawan data aslina pikeun nguji hipotesa yén bottleneck mangrupa compressor single-threaded.

cd /src/dir; tar -czf - * | ssh backup_server "cat > /backup/dir/archive.tgz"

Tétéla kieu:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

waktos palaksanaan éta 9m37s. Beban dina hiji inti ku compressor jelas katempo, sabab Laju mindahkeun jaringan sareng beban dina subsistem disk sumber sami.

Pikeun meunteun énkripsi, anjeun tiasa nganggo openssl atanapi gpg ku cara ngahubungkeun paréntah tambahan openssl atawa gpg dina pipa. Pikeun rujukan bakal aya paréntah sapertos kieu:

cd /src/dir; tar -cf - * | ssh backup_server "gzip | openssl enc -e -aes256 -pass pass:somepassword -out /backup/dir/archive.tgz.enc"

Hasilna kaluar sapertos kieu:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Waktu palaksanaan tétéla janten 10m30s, saprak 2 prosés anu ngajalankeun di sisi panarima - bottleneck deui hiji compressor single-threaded, ditambah overhead enkripsi leutik.

UPS: Dina pamundut bliznezz Kuring nambahkeun tés kalawan pigz. Upami anjeun ngan ukur nganggo compressor, éta peryogi 6m30s, upami anjeun ogé nambihan enkripsi, éta bakal sakitar 7m. The dip dina grafik handap mangrupa cache disk unflushed:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Tes duplikat

Duplicity mangrupikeun parangkat lunak python pikeun cadangan ku nyiptakeun arsip énkripsi dina format tar.

Pikeun arsip incremental, librsync dianggo, janten anjeun tiasa ngarepkeun paripolah anu dijelaskeun dina pos saméméhna dina séri.

Cadangan tiasa énkripsi sareng ditandatanganan nganggo gnupg, anu penting nalika nganggo panyadia anu béda pikeun nyimpen cadangan (s3, backblaze, gdrive, jsb.)

Hayu urang tingali kumaha hasilna:

Ieu mangrupikeun hasil anu kami kéngingkeun nalika ngajalankeun tanpa énkripsi

tukang ngarusak

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Waktu ngajalankeun unggal test run:

Ngaluncurkeun 1
Ngaluncurkeun 2
Ngaluncurkeun 3

16m33an
17m20an
16m30an

8m29an
9m3an
8m45an

5m21an
6m04an
5m53an

Sareng ieu hasil nalika énkripsi gnupg diaktipkeun, kalayan ukuran konci 2048 bit:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Waktu operasi dina data anu sami, kalayan énkripsi:

Ngaluncurkeun 1
Ngaluncurkeun 2
Ngaluncurkeun 3

17m22an
17m32an
17m28an

8m52an
9m13an
9m3an

5m48an
5m40an
5m30an

Ukuran blok dituduhkeun - 512 megabytes, anu jelas katingali dina grafik; Beban processor sabenerna tetep dina 50%, nu hartina program nu utilizes euweuh leuwih ti hiji inti processor.

Prinsip operasi program ogé cukup jelas katingali: aranjeunna nyandak sapotong data, dikomprés, sareng dikirim ka server panyimpenan cadangan, anu tiasa rada lambat.
Fitur anu sanésna nyaéta waktos program anu tiasa diprediksi, anu ngan ukur gumantung kana ukuran data anu dirobih.

Aktipkeun enkripsi henteu sacara signifikan ningkatkeun waktos ngajalankeun program, tapi ningkatkeun beban prosesor sakitar 10%, anu tiasa janten bonus anu saé.

Hanjakal, program ieu teu bisa neuleu ngadeteksi kaayaan jeung renaming diréktori, sarta ukuran gudang hasilna tétéla sarua jeung ukuran parobahan (ie, sadayana 18GB), tapi kamampuhan pikeun ngagunakeun server untrusted pikeun cadangan jelas. ngawengku kabiasaan ieu.

Tes duplikat

Parangkat lunak ieu ditulis dina C # sareng dijalankeun nganggo sakumpulan perpustakaan ti Mono. Aya GUI ogé versi CLI.

Daptar perkiraan fitur utama sami sareng duplikat, kalebet sababaraha panyadia panyimpen cadangan, tapi teu sapertos duplikat, seueur fitur sayogi tanpa alat pihak katilu. Naha ieu tambah atanapi dikurangan gumantung kana kasus anu khusus, tapi pikeun pamula, sigana langkung gampang gaduh daptar sadaya fitur di hareup sakaligus, tinimbang kedah masang bungkusan tambahan pikeun python, sapertos kitu. kasus kalawan duplicity.

nuansa leutik sejen - program nu aktip nulis database sqlite lokal atas nama pamaké nu dimimitian cadangan, jadi Anjeun kudu tambahan mastikeun yén database diperlukeun bener dieusian unggal waktos prosés ieu dimimitian maké cli nu. Nalika dianggo ngaliwatan GUI atanapi WEBGUI, rinci bakal disumputkeun ti pamaké.

Hayu urang tingali naon indikator solusi ieu tiasa ngahasilkeun:

Upami anjeun mareuman enkripsi (sareng WEBGUI henteu nyarankeun ngalakukeun ieu), hasilna sapertos kieu:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

jam:

Ngaluncurkeun 1
Ngaluncurkeun 2
Ngaluncurkeun 3

20m43an
20m13an
20m28an

5m21an
5m40an
5m35an

7m36an
7m54an
7m49an

Kalayan enkripsi diaktipkeun, nganggo aes, sigana kieu:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

jam:

Ngaluncurkeun 1
Ngaluncurkeun 2
Ngaluncurkeun 3

29m9an
30m1an
29m54an

5m29an
6m2an
5m54an

8m44an
9m12an
9m1an

Sareng upami anjeun nganggo program gnupg éksternal, hasil di handap ieu kaluar:

Bagian Nyadangkeun 3: Tinjauan sareng Nguji duplikat, duplikat

Ngaluncurkeun 1
Ngaluncurkeun 2
Ngaluncurkeun 3

26m6an
26m35an
26m17an

5m20an
5m48an
5m40an

8m12an
8m42an
8m15an

Sakumaha anjeun tiasa tingali, program éta tiasa dianggo dina sababaraha utas, tapi ieu henteu ngajantenkeun solusi anu langkung produktif, sareng upami anjeun ngabandingkeun karya enkripsi, éta ngaluncurkeun program éksternal.
tétéla leuwih gancang ti ngagunakeun perpustakaan ti Mono set. Ieu tiasa disababkeun ku kanyataan yén program éksternal langkung dioptimalkeun.

Sejen hal nice éta kanyataan yén ukuran Repository nyokot persis saloba data robah sabenerna, i.e. duplicati ngadeteksi hiji ngaganti ngaran diréktori sarta diatur kaayaan ieu leres. Ieu tiasa ditingali nalika ngajalankeun tés kadua.

Gemblengna, tayangan anu cukup positip tina program éta, kalebet lumayan ramah ka newbies.

Hasil

Duanana calon digawé rada lalaunan, tapi sacara umum, dibandingkeun tar biasa, aya kamajuan, sahenteuna mibanda duplicati. Harga kamajuan kitu ogé jelas - beban noticeable
prosésor. Sacara umum, henteu aya panyimpangan khusus dina ngaramal hasilna.

papanggihan

Upami anjeun henteu kedah buru-buru dimana waé, sareng ogé gaduh prosesor cadang, salah sahiji solusi anu dianggap bakal dilakukeun, dina sagala hal, seueur padamelan anu parantos dilakukeun anu henteu kedah diulang deui ku nyerat skrip bungkus dina luhureun tar. . Ayana enkripsi mangrupikeun harta anu diperyogikeun upami pangladén pikeun nyimpen salinan cadangan teu tiasa dipercanten sapinuhna.

Dibandingkeun jeung solusi dumasar rsync - kinerja bisa jadi sababaraha kali parah, sanajan kanyataan yén dina formulir murni tar digawé 20-30% leuwih gancang ti rsync.
Aya tabungan dina ukuran Repository, tapi ngan ku duplikat.

Bewara

Nyadangkeun, bagian 1: Naha cadangan diperlukeun, tinjauan métode, téknologi
Bagian Nyadangkeun 2: Marios sareng nguji alat cadangan dumasar rsync
Bagian Nyadangkeun 3: Tinjauan sareng nguji duplikat, duplikat, deja dup
Nyadangkeun Bagian 4: Reviewing sarta nguji zbackup, restic, borgbackup
Bagian Nyadangkeun 5: Nguji bacula sareng cadangan veeam pikeun linux
Bagian Nyadangkeun 6: Ngabandingkeun Alat Nyadangkeun
Nyadangkeun Bagian 7: Kacindekan

Dipasang ku: Pavel Demkovich

sumber: www.habr.com

Tambahkeun komentar