Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Kini nga artikulo maghisgot sa backup nga software nga, pinaagi sa pagbungkag sa data stream ngadto sa lain nga mga sangkap (mga tipik), nagporma og repository.

Ang mga sangkap sa repository mahimong dugang nga ma-compress ug ma-encrypt, ug labing hinungdanon - sa panahon sa gibalikbalik nga mga proseso sa pag-backup - magamit pag-usab.

Ang usa ka backup nga kopya sa ingon nga repository usa ka ginganlan nga kadena sa mga sangkap nga konektado sa usag usa, pananglitan, base sa lainlaing mga function sa hash.

Adunay ubay-ubay nga susama nga mga solusyon, akong ipunting ang 3: zbackup, borgbackup ug restic.

Gilauman nga mga resulta

Tungod kay ang tanan nga mga aplikante nagkinahanglan sa paghimo sa usa ka repository sa usa ka paagi o sa lain, usa sa labing importante nga mga butang mao ang pagbanabana sa gidak-on sa repository. Sa tinuud, ang gidak-on niini kinahanglan nga dili molapas sa 13 GB sumala sa gidawat nga pamaagi, o bisan gamay - ubos sa maayo nga pag-optimize.

Gitinguha usab kaayo nga makahimo sa paghimo og mga backup nga kopya sa mga file direkta, nga wala gigamit ang mga archiver sama sa tar, ingon man magtrabaho sa ssh/sftp nga wala’y dugang nga mga himan sama sa rsync ug sshfs.

Paggawi sa paghimo og mga backup:

  1. Ang gidak-on sa repository mahimong katumbas sa gidak-on sa mga pagbag-o, o mas gamay.
  2. Gidahom nga bug-at nga load sa CPU kung mogamit ug compression ug/o encryption, ug medyo taas nga network ug disk load lagmit kung ang proseso sa pag-archive ug/o pag-encrypt nagdagan sa usa ka backup nga server sa pagtipig.
  3. Kung ang repository nadaot, ang usa ka nalangan nga sayup lagmit sa paghimo og bag-ong mga backup ug sa pagsulay sa pagpasig-uli. Kinahanglan nga magplano og dugang nga mga lakang aron masiguro ang integridad sa repository o paggamit sa mga built-in nga himan alang sa pagsusi sa integridad niini.

Ang pagtrabaho gamit ang alkitran giisip nga usa ka reperensiya nga kantidad, ingon sa gipakita sa usa sa miaging mga artikulo.

Pagsulay sa zbackup

Ang kinatibuk-ang mekanismo sa zbackup mao nga ang programa makit-an sa input data stream nga mga lugar nga adunay parehas nga datos, unya opsyonal nga i-compress ug i-encrypt kini, nga makatipig sa matag lugar kausa ra.

Ang deduplication naggamit sa usa ka 64-bit ring hash function nga adunay sliding window aron masusi ang byte-by-byte nga mga tugma batok sa kasamtangan nga mga bloke sa datos (sama sa kung giunsa kini gipatuman sa rsync).

Ang multi-threaded lzma ug lzo gigamit para sa compression, ug aes para sa encryption. Ang pinakabag-o nga mga bersyon adunay katakus sa pagtangtang sa daan nga datos gikan sa repository sa umaabot.
Ang programa gisulat sa C ++ nga adunay gamay nga dependency. Ang tagsulat dayag nga giinspirar sa unix-way, mao nga ang programa modawat sa datos sa stdin sa paghimo og mga backup, nga naghimo og susama nga data stream sa stdout sa dihang ibalik. Sa ingon, ang zbackup mahimong magamit ingon usa ka maayo kaayo nga "building block" sa pagsulat sa imong kaugalingon nga backup nga mga solusyon. Pananglitan, ang tagsulat sa artikulo migamit niini nga programa isip nag-unang backup nga himan alang sa mga makina sa balay sukad sa gibana-bana nga 2014.

Ang data stream mahimong usa ka regular nga tar gawas kung gipahayag.

Atong tan-awon kung unsa ang mga resulta:

Ang trabaho gisusi sa 2 nga mga kapilian:

  1. usa ka repository ang gihimo ug ang zbackup gilusad sa server nga adunay source data, unya ang mga sulod sa repository ibalhin ngadto sa backup storage server.
  2. usa ka repository ang gihimo sa backup storage server, ang zbackup gilunsad pinaagi sa ssh sa backup storage server, ug ang data gipadala niini pinaagi sa pipe.

Ang mga resulta sa unang kapilian mao ang mosunod: 43m11s - sa diha nga ang paggamit sa usa ka unencrypted repository ug ang lzma compressor, 19m13s - sa pag-ilis sa compressor sa lzo.

Ang load sa server nga adunay orihinal nga data mao ang mosunod (usa ka pananglitan sa lzma gipakita; uban sa lzo adunay gibana-bana nga sama nga hulagway, apan ang bahin sa rsync gibana-bana nga usa ka quarter sa panahon):

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Klaro nga ang ingon nga proseso sa pag-backup angay lamang alang sa medyo talagsaon ug gagmay nga mga pagbag-o. Maayo usab nga limitahan ang zbackup sa 1 nga thread, kung dili adunay taas kaayo nga load sa CPU, tungod kay Ang programa maayo kaayo sa pagtrabaho sa daghang mga hilo. Ang load sa disk gamay ra, nga sa kinatibuk-an dili mamatikdan sa usa ka moderno nga ssd-based disk subsystem. Mahimo usab nimo nga tin-aw nga makita ang pagsugod sa proseso sa pag-synchronize sa data sa repository sa usa ka hilit nga server; ang katulin sa operasyon ikatandi sa regular nga rsync ug nagdepende sa pasundayag sa disk subsystem sa backup nga server sa pagtipig. Ang disbentaha niini nga pamaagi mao ang pagtipig sa usa ka lokal nga tipiganan ug, isip resulta, pagdoble sa datos.

Ang mas makapaikag ug magamit sa praktis mao ang ikaduha nga kapilian, nga nagpadagan sa zbackup direkta sa backup nga storage server.

Una, sulayan namon ang operasyon nga wala gigamit ang pag-encrypt gamit ang lzma compressor:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Panahon sa pagdagan sa matag pagsulay nga pagdagan:

Ilusad 1
Ilusad 2
Ilusad 3

39m45s
40m20s
40m3s

7m36s
8m3s
7m48s

15m35s
15m48s
15m38s

Kung mahimo nimo ang pag-encrypt gamit ang aes, ang mga resulta hapit na:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Panahon sa pag-opera sa parehas nga datos, nga adunay pag-encrypt:

Ilusad 1
Ilusad 2
Ilusad 3

43m40s
44m12s
44m3s

8m3s
8m15s
8m12s

15m0s
15m40s
15m25s

Kung ang encryption gikombinar sa compression gamit ang lzo, ingon niini:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Mga oras sa pagtrabaho:

Ilusad 1
Ilusad 2
Ilusad 3

18m2s
18m15s
18m12s

5m13s
5m24s
5m20s

8m48s
9m3s
8m51s

Ang gidak-on sa resulta nga repository medyo parehas sa 13GB. Kini nagpasabot nga ang deduplication nagtrabaho sa husto. Usab, sa na-compress na nga datos, ang paggamit sa lzo naghatag usa ka mamatikdan nga epekto; sa termino sa kinatibuk-ang oras sa pag-opera, ang zbackup hapit sa pagkadoble / pagdoble, apan naa sa luyo sa mga gibase sa librsync sa 2-5 ka beses.

Ang mga bentaha mao ang dayag - sa pagluwas sa disk space sa backup storage server. Sama sa alang sa mga himan sa pagsusi sa repository, ang tagsulat sa zbackup wala maghatag kanila; girekomenda nga mogamit usa ka fault-tolerant disk array o cloud provider.

Sa kinatibuk-an, usa ka maayo kaayo nga impresyon, bisan pa sa kamatuoran nga ang proyekto nagpabilin nga mga 3 ka tuig (ang katapusan nga hangyo sa feature mga usa ka tuig na ang milabay, apan walay tubag).

Pagsulay sa borgbackup

Ang Borgbackup usa ka tinidor sa attic, laing sistema nga susama sa zbackup. Gisulat sa python, kini adunay lista sa mga kapabilidad nga susama sa zbackup, apan mahimo usab:

  • I-mount ang mga backup pinaagi sa fuse
  • Susiha ang sulod sa repository
  • Pagtrabaho sa client-server mode
  • Gamita ang lainlaing mga compressor alang sa datos, ingon man ang heuristic nga pagtino sa tipo sa file kung gi-compress kini.
  • 2 nga kapilian sa pag-encrypt, aes ug blake
  • Gitukod-sa himan alang sa

mga pagsusi sa pasundayag

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

Ang mga resulta mao ang mosunod:

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

Sa pagsulay, ang compression heuristics gamiton aron mahibal-an ang tipo sa file (compression auto), ug ang mga resulta mao ang mosunod:

Una, atong susihon kon sa unsang paagi kini molihok nga walay encryption:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Mga oras sa pagtrabaho:

Ilusad 1
Ilusad 2
Ilusad 3

4m6s
4m10s
4m5s

56s
58s
54s

1m26s
1m34s
1m30s

Kung imong gi-enable ang pagtugot sa repository (authenticated mode), ang mga resulta hapit na:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Mga oras sa pagtrabaho:

Ilusad 1
Ilusad 2
Ilusad 3

4m11s
4m20s
4m12s

1m0s
1m3s
1m2s

1m30s
1m34s
1m31s

Sa dihang gi-activate ang aes encryption, ang mga resulta wala kaayo modaot:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Ilusad 1
Ilusad 2
Ilusad 3

4m55s
5m2s
4m58s

1m0s
1m2s
1m0s

1m49s
1m50s
1m50s

Ug kung imong usbon ang aes ngadto sa blake, ang sitwasyon mouswag sa hingpit:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Mga oras sa pagtrabaho:

Ilusad 1
Ilusad 2
Ilusad 3

4m33s
4m43s
4m40s

59s
1m0s
1m0s

1m38s
1m43s
1m40s

Sama sa kaso sa zbackup, ang gidak-on sa repository mao ang 13GB ug bisan gamay nga gamay, nga kasagaran gipaabut. Nalipay kaayo ko sa oras sa pagdagan; kini ikatandi sa mga solusyon nga gibase sa librsync, nga naghatag daghang mas lapad nga kapabilidad. Nalipay usab ako sa abilidad sa pagtakda sa lainlaing mga parameter pinaagi sa mga variable sa palibot, nga naghatag usa ka seryoso nga bentaha kung gigamit ang borgbackup sa awtomatikong mode. Nalipay usab ako sa load sa panahon sa pag-backup: sa paghukom sa load sa processor, ang borgbackup nagtrabaho sa 1 thread.

Wala’y partikular nga mga disbentaha kung gigamit kini.

restic testing

Bisan pa sa kamatuoran nga ang restic usa ka bag-o nga solusyon (ang unang 2 nga mga kandidato nahibal-an balik sa 2013 ug mas tigulang), kini adunay maayo nga mga kinaiya. Gisulat sa Go.

Kung itandi sa zbackup, naghatag usab kini:

  • Pagsusi sa integridad sa repository (lakip ang pagsusi sa mga bahin).
  • Usa ka dako nga lista sa gisuportahan nga mga protocol ug mga provider alang sa pagtipig sa mga backup, ingon man suporta alang sa rclone - rsync alang sa mga solusyon sa panganod.
  • Pagkumpara sa 2 backups sa usag usa.
  • Pag-mount sa repository pinaagi sa fuse.

Sa kinatibuk-an, ang lista sa mga bahin hapit sa borgbackup, sa pipila ka mga lugar labi pa, sa uban gamay. Usa sa mga bahin mao nga wala’y paagi aron ma-disable ang pag-encrypt, ug busa ang mga backup nga kopya kanunay nga ma-encrypt. Atong tan-awon sa praktis kung unsa ang mahimo nga mapuga gikan sa kini nga software:

Ang mga resulta mao ang mosunod:

Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup

Mga oras sa pagtrabaho:

Ilusad 1
Ilusad 2
Ilusad 3

5m25s
5m50s
5m38s

35s
38s
36s

1m54s
2m2s
1m58s

Ang mga resulta sa performance susama usab sa rsync-based nga mga solusyon ug, sa kinatibuk-an, duol kaayo sa borgbackup, apan ang CPU load mas taas (daghang mga thread nga nagdagan) ug sawtooth.

Lagmit, ang programa limitado sa performance sa disk subsystem sa data storage server, sama sa nahitabo sa rsync. Ang gidak-on sa repository kay 13GB, sama sa zbackup o borgbackup, walay klaro nga disbentaha sa paggamit niini nga solusyon.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

Sa tinuud, ang tanan nga mga kandidato nakab-ot parehas nga mga sangputanan, apan sa lainlaing mga presyo. Ang Borgbackup naghimo sa labing maayo sa tanan, ang restic medyo hinay, ang zbackup lagmit dili angay sugdan sa paggamit,
ug kung kini gigamit na, sulayi nga usbon kini sa borgbackup o restic.

kaplag

Ang labing gisaad nga solusyon ingon nga makapahulay, tungod kay ... kini siya nga adunay labing kaayo nga ratio sa mga kapabilidad sa katulin sa pag-operate, apan dili kita magdali sa mga kinatibuk-ang konklusyon sa pagkakaron.

Ang Borgbackup sa batakan dili mas grabe, apan ang zbackup tingali mas maayo nga gipulihan. Tinuod, ang zbackup magamit gihapon aron masiguro nga ang 3-2-1 nga lagda molihok. Pananglitan, dugang sa (lib) rsync-based backup nga mga pasilidad.

Pagpahibalo

Pag-backup, bahin 1: Ngano nga gikinahanglan ang pag-backup, usa ka kinatibuk-ang pagtan-aw sa mga pamaagi, mga teknolohiya
Bahin sa Pag-backup 2: Pagrepaso ug pagsulay sa mga gamit sa backup nga nakabase sa rsync
Bahin sa backup 3: Pagrepaso ug Pagsulay sa pagkadoble, pagdoble
Bahin sa Pag-backup 4: Pagrepaso ug pagsulay sa zbackup, restic, borgbackup
Bahin sa Pag-backup 5: Pagsulay sa bacula ug pag-backup sa veeam alang sa linux
Bahin sa Pag-backup 6: Pagkumpara sa Mga Himan sa Pag-backup
Pag-backup Bahin 7: Mga Konklusyon

Gi-post ni: Pavel Demkovich

Source: www.habr.com

Idugang sa usa ka comment