Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Artikel iki bakal nimbang piranti lunak serep sing, kanthi ngilangi aliran data dadi komponen sing kapisah (potongan), mbentuk gudang.

Komponen repositori bisa luwih dikompres lan dienkripsi, lan sing paling penting - sajrone proses serep bola-bali - digunakake maneh.

Salinan serep ing repositori kasebut minangka rantai komponen sing disambungake, contone, adhedhasar macem-macem fungsi hash.

Ana sawetara solusi sing padha, Aku bakal fokus ing 3: zbackup, borgbackup lan restic.

Asil sing diarepake

Amarga kabeh pelamar mbutuhake nggawe repositori kanthi cara siji utawa liyane, salah sawijining faktor sing paling penting yaiku ngira ukuran gudang. Saenipun, ukurane kudu ora luwih saka 13 GB miturut metodologi sing ditampa, utawa malah kurang - tundhuk optimasi sing apik.

Iku uga Highly seng di pengeni kanggo bisa nggawe salinan serep file langsung, tanpa nggunakake archiver kaya tar, uga bisa karo ssh / sftp tanpa alat tambahan kaya rsync lan sshfs.

Prilaku nalika nggawe serep:

  1. Ukuran repositori bakal padha karo ukuran owah-owahan, utawa kurang.
  2. beban CPU abot samesthine nalika nggunakake komprèsi lan / utawa enkripsi, lan jaringan cukup dhuwur lan mbukak disk kamungkinan yen arsip lan / utawa proses enkripsi mlaku ing server panyimpenan serep.
  3. Yen gudang rusak, kesalahan telat bisa uga nalika nggawe serep anyar lan nalika nyoba mulihake. Sampeyan kudu ngrancang langkah-langkah tambahan kanggo njamin integritas repositori utawa nggunakake alat sing dibangun kanggo mriksa integritas.

Nggarap tar dijupuk minangka nilai referensi, kaya sing dituduhake ing salah sawijining artikel sadurunge.

Nguji zbackup

Mekanisme umum zbackup yaiku program kasebut nemokake ing wilayah aliran data input sing ngemot data sing padha, banjur dikompres lan dienkripsi kanthi opsional, mung nyimpen saben wilayah mung sapisan.

Deduplikasi nggunakake fungsi hash ring 64-dicokot karo jendhela ngusapake kanggo mriksa bita-by-byte cocog karo pamblokiran data ana (padha karo carane rsync ngleksanakake).

Multi-threaded lzma lan lzo digunakake kanggo komprèsi, lan aes kanggo enkripsi. Versi paling anyar nduweni kemampuan kanggo mbusak data lawas saka gudang ing mangsa ngarep.
Program kasebut ditulis ing C ++ kanthi dependensi minimal. Penulis iki ketoke inspirasi dening unix-cara, supaya program nampa data ing stdin nalika nggawe serep, mrodhuksi stream data padha ing stdout nalika mulihake. Mangkono, zbackup bisa digunakake minangka "blok bangunan" sing apik banget nalika nulis solusi serep dhewe. Contone, penulis artikel wis nggunakake program iki minangka alat serep utama kanggo mesin ngarep wiwit kira-kira 2014.

Aliran data bakal dadi tar biasa kajaba nyatakake.

Ayo ndeleng apa asile:

Karya kasebut dicenthang ing 2 opsi:

  1. gudang digawe lan zbackup dibukak ing server karo data sumber, banjur isi gudang ditransfer menyang server panyimpenan serep.
  2. gudang digawe ing server panyimpenan serep, zbackup dibukak liwat ssh ing server panyimpenan serep, lan data dikirim menyang liwat pipe.

Asil pilihan pisanan minangka nderek: 43m11s - nalika nggunakake repositori unencrypted lan kompresor lzma, 19m13s - nalika ngganti kompresor karo lzo.

Beban ing server kanthi data asli kaya ing ngisor iki (conto karo lzma ditampilake; karo lzo ana gambar sing padha, nanging bagean rsync kira-kira seprapat wektu):

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Cetha yen proses serep kasebut mung cocok kanggo owah-owahan sing relatif langka lan cilik. Sampeyan uga dianjurake kanggo mbatesi zbackup menyang 1 utas, yen ora bakal ana beban CPU sing dhuwur banget, amarga Program kasebut apik banget kanggo nggarap macem-macem utas. Beban ing disk cilik, sing umume ora katon karo subsistem disk basis SSD modern. Sampeyan uga bisa ndeleng kanthi jelas wiwitan proses nyinkronake data repositori menyang server remot; kacepetan operasi bisa dibandhingake karo rsync biasa lan gumantung marang kinerja subsistem disk server panyimpenan serep. Kerugian saka pendekatan iki yaiku panyimpenan saka repositori lokal lan, minangka asil, duplikasi data.

Luwih menarik lan ditrapake ing laku iku pilihan kapindho, mlaku zbackup langsung ing server panyimpenan serep.

Pisanan, kita bakal mriksa operasi kasebut tanpa nggunakake enkripsi nganggo kompresor lzma:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Wektu mlaku saben test run:

Bukak 1
Bukak 2
Bukak 3

39m45
40m20
40m3

7m36
8m3
7m48

15m35
15m48
15m38

Yen sampeyan ngaktifake enkripsi nggunakake aes, asile cukup cedhak:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Wektu operasi ing data sing padha, kanthi enkripsi:

Bukak 1
Bukak 2
Bukak 3

43m40
44m12
44m3

8m3
8m15
8m12

15m0
15m40
15m25

Yen enkripsi digabungake karo kompresi nggunakake lzo, katon kaya iki:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Jam kerja:

Bukak 1
Bukak 2
Bukak 3

18m2
18m15
18m12

5m13
5m24
5m20

8m48
9m3
8m51

Ukuran gudang sing diasilake relatif padha ing 13GB. Iki tegese deduplikasi bisa digunakake kanthi bener. Uga, ing data sing wis dikompres, nggunakake lzo menehi efek sing nyata; ing babagan total wektu operasi, zbackup nyedhaki duplikat / duplikat, nanging ketinggalan sing adhedhasar librsync kaping 2-5.

Keuntungan sing jelas - ngirit ruang disk ing server panyimpenan serep. Kanggo alat pamriksa repositori, penulis zbackup ora nyedhiyakake; disaranake nggunakake array disk sing tahan kesalahan utawa panyedhiya awan.

Sakabèhé, kesan sing apik banget, senadyan kasunyatane proyek kasebut wis ngadeg watara 3 taun (panyuwunan fitur pungkasan kira-kira setahun kepungkur, nanging tanpa nanggepi).

Nguji borgbackup

Borgbackup minangka garpu loteng, sistem liyane sing padha karo zbackup. Ditulis ing python, nduweni dhaptar kapabilitas sing padha karo zbackup, nanging uga bisa:

  • Pasang serep liwat sekring
  • Priksa isi repositori
  • Bisa ing mode klien-server
  • Gunakake macem-macem kompresor kanggo data, uga tekad heuristik saka jinis file nalika ngompres.
  • 2 opsi enkripsi, aes lan blake
  • Alat sing dibangun kanggo

mriksa kinerja

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

Asil kasebut kaya ing ngisor iki:

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

Nalika nyoba, heuristik kompresi bakal digunakake kanggo nemtokake jinis file (otomatis kompresi), lan asile kaya ing ngisor iki:

Pisanan, ayo mriksa cara kerjane tanpa enkripsi:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Jam kerja:

Bukak 1
Bukak 2
Bukak 3

4m6
4m10
4m5

56
58
54

1m26
1m34
1m30

Yen sampeyan ngaktifake wewenang repositori (mode otentikasi), asil bakal cedhak:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Jam kerja:

Bukak 1
Bukak 2
Bukak 3

4m11
4m20
4m12

1m0
1m3
1m2

1m30
1m34
1m31

Nalika enkripsi aes diaktifake, asile ora saya rusak:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Bukak 1
Bukak 2
Bukak 3

4m55
5m2
4m58

1m0
1m2
1m0

1m49
1m50
1m50

Lan yen sampeyan ngganti aes dadi blake, kahanan bakal apik banget:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Jam kerja:

Bukak 1
Bukak 2
Bukak 3

4m33
4m43
4m40

59
1m0
1m0

1m38
1m43
1m40

Kaya ing kasus zbackup, ukuran repositori 13GB lan malah rada kurang, sing umume diarepake. Aku seneng banget karo wektu mlaku; bisa dibandhingake karo solusi adhedhasar librsync, nyedhiyakake kemampuan sing luwih akeh. Aku uga pleased karo kemampuan kanggo nyetel macem-macem paramèter liwat variabel lingkungan, kang menehi kauntungan banget serius nalika nggunakake borgbackup ing mode otomatis. Aku uga pleased karo mbukak sak serep: menehi kritik dening mbukak prosesor, borgbackup dianggo ing 1 thread.

Ora ana cacat tartamtu nalika nggunakake.

testing restic

Senadyan kasunyatan restic minangka solusi sing cukup anyar (2 calon pisanan dikenal ing taun 2013 lan luwih lawas), nduweni ciri sing apik. Ditulis ing Go.

Yen dibandhingake karo zbackup, iku uga menehi:

  • Priksa integritas repositori (kalebu mriksa bagean).
  • Dhaptar ageng protokol lan panyedhiya sing didhukung kanggo nyimpen serep, uga dhukungan kanggo rclone - rsync for cloud solutions .
  • Mbandhingake 2 serep karo saben liyane.
  • Pasang repositori liwat sekring.

Umumé, dhaptar fitur cukup cedhak karo borgbackup, ing sawetara panggonan liyane, ing liyane kurang. Salah sawijining fitur yaiku ora ana cara kanggo mateni enkripsi, mula salinan serep bakal tansah dienkripsi. Ayo ndeleng ing laku apa bisa squeezed metu saka piranti lunak iki:

Asil kasebut kaya ing ngisor iki:

Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup

Jam kerja:

Bukak 1
Bukak 2
Bukak 3

5m25
5m50
5m38

35
38
36

1m54
2m2
1m58

Asil kinerja uga iso dibandhingke karo solusi basis rsync lan, ing umum, banget cedhak borgbackup, nanging mbukak CPU luwih (multiple thread mlaku) lan sawtooth.

Kemungkinan, program kasebut diwatesi dening kinerja subsistem disk ing server panyimpenan data, kaya sing wis ana ing rsync. Ukuran gudang ana 13GB, kaya zbackup utawa borgbackup, ora ana kekurangan sing jelas nalika nggunakake solusi iki.

Результаты

Nyatane, kabeh calon entuk asil sing padha, nanging kanthi rega sing beda. Borgbackup nindakake sing paling apik, restic rada alon, zbackup mbokmenawa ora bisa digunakake,
lan yen wis digunakake, coba ngganti menyang borgbackup utawa restic.

temonan

Solusi sing paling njanjeni katon tenang, amarga ... iku kang duwe rasio paling apik saka Kapabilitas kanggo kacepetan operasi, nanging ayo ora rush kanggo kesimpulan umum kanggo saiki.

Borgbackup Sejatine ora Samsaya Awon, nanging zbackup mbokmenawa luwih apik diganti. Bener, zbackup isih bisa digunakake kanggo njamin aturan 3-2-1 bisa digunakake. Contone, saliyane (lib) fasilitas serep basis rsync.

Pengumuman

Gawe serep, bagean 1: Napa serep dibutuhake, ringkesan metode, teknologi
Bagean Serep 2: Priksa lan nguji alat serep basis rsync
Serep Part 3: Review lan Testing saka duplikat, duplikat
Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup
Backup Part 5: Testing bacula lan veeam backup kanggo linux
Serep Part 6: Mbandhingaké Serep Tools
Serep Part 7: Kesimpulan

Dikirim dening: Pavel Demkovich

Source: www.habr.com

Add a comment