{"id":35003,"date":"2019-10-31T22:01:46","date_gmt":"2019-10-31T19:01:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup\/"},"modified":"2019-10-31T22:01:46","modified_gmt":"2019-10-31T19:01:46","slug":"rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup","title":{"rendered":"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/a48fd8c8d725f94f0358a563ab76b783.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W tym artykule om\u00f3wimy narz\u0119dzia programowe do tworzenia kopii zapasowych, kt\u00f3re, dziel\u0105c dane na indywidualne komponenty (chunks), tworz\u0105 repozytorium.<\/p>\n<p><\/p>\n<p>Komponenty repozytorium mog\u0105 by\u0107 dodatkowo kompresowane i szyfrowane, a co najwa\u017cniejsze \u2014 podczas kolejnych proces\u00f3w tworzenia kopii zapasowych \u2014 mog\u0105 by\u0107 wielokrotnie wykorzystywane.<\/p>\n<p><\/p>\n<p>Kopia zapasowa w takim repozytorium to nazwany \u0142a\u0144cuch powi\u0105zanych ze sob\u0105 komponent\u00f3w, na przyk\u0142ad oparty na r\u00f3\u017cnych funkcjach skr\u00f3tu hash.<\/p>\n<p><\/p>\n<p>Istnieje kilka takich rozwi\u0105za\u0144, skupi\u0119 si\u0119 na 3: zbackup, borgbackup i restic.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"ozhidaemye-rezultaty\">Oczekiwane wyniki<\/h3>\n<p><\/p>\n<p>Poniewa\u017c wszyscy kandydaci w mniejszym lub wi\u0119kszym stopniu wymagaj\u0105 utworzenia repozytorium, jednym z najwa\u017cniejszych czynnik\u00f3w b\u0119dzie ocena rozmiaru repozytorium. W idealnym przypadku jego rozmiar powinien wynosi\u0107 nie wi\u0119cej ni\u017c 13 GB zgodnie z przyj\u0119t\u0105 metod\u0105, a nawet mniej \u2014 przy dobrej optymalizacji.<\/p>\n<p><\/p>\n<p>Bardzo po\u017c\u0105dane jest r\u00f3wnie\u017c, aby m\u00f3c tworzy\u0107 kopie zapasowe plik\u00f3w bezpo\u015brednio, bez u\u017cycia archiwizator\u00f3w takich jak tar, oraz korzysta\u0107 z ssh\/sftp bez dodatkowych narz\u0119dzi, takich jak rsync i sshfs.<\/p>\n<p><\/p>\n<p><strong>Zachowanie przy tworzeniu kopii zapasowych:<\/strong><\/p>\n<p><\/p>\n<ol>\n<li>Rozmiar repozytorium b\u0119dzie r\u00f3wny rozmiarowi zmian lub mniejszy.<\/li>\n<li>Oczekiwane jest du\u017ce obci\u0105\u017cenie procesora przy u\u017cyciu kompresji i\/lub szyfrowania, a tak\u017ce prawdopodobnie do\u015b\u0107 du\u017ce obci\u0105\u017cenie sieci i podsystemu dyskowego, je\u015bli proces archiwizacji i\/lub szyfrowania b\u0119dzie dzia\u0142a\u0142 na serwerze przechowuj\u0105cym kopie zapasowe.<\/li>\n<li>Je\u015bli uszkodzimy repozytorium \u2014 prawdopodobna jest op\u00f3\u017aniona awaria zar\u00f3wno podczas tworzenia nowych kopii zapasowych, jak i podczas pr\u00f3by przywracania. Nale\u017cy zaplanowa\u0107 dodatkowe \u015brodki zapewniaj\u0105ce integralno\u015b\u0107 repozytorium lub skorzysta\u0107 z wbudowanych narz\u0119dzi do sprawdzania jego integralno\u015bci.<\/li>\n<\/ol>\n<p><\/p>\n<p>Jako warto\u015b\u0107 odniesienia przyj\u0119to prac\u0119 z tar, jak pokazano w jednym z wcze\u015bniejszych artyku\u0142\u00f3w.<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-zbackup\">Testowanie zbackup<\/h3>\n<p><\/p>\n<p>Og\u00f3lny mechanizm dzia\u0142ania zbackup polega na tym, \u017ce program znajduje w strumieniu danych dostarczanym na wej\u015bciu obszary zawieraj\u0105ce te same dane, a nast\u0119pnie opcjonalnie je kompresuje, szyfruje, zachowuj\u0105c ka\u017cdy obszar tylko raz.<\/p>\n<p><\/p>\n<p>Do deplikacji u\u017cywana jest 64-bitowa funkcja skr\u00f3tu z pier\u015bcieniem o zmiennym oknie do bajtowego sprawdzania zgodno\u015bci z ju\u017c istniej\u0105cymi blokami danych (podobnie jak w rsync).<\/p>\n<p><\/p>\n<p>Do kompresji u\u017cywane s\u0105 lzma i lzo w wielow\u0105tkowym wykonaniu, a do szyfrowania \u2014 aes. W najnowszych wersjach istnieje mo\u017cliwo\u015b\u0107 w przysz\u0142o\u015bci usuwania starych danych z repozytorium.<br \/>\nProgram jest napisana w C++ z minimalnymi zale\u017cno\u015bciami. Autor najwyra\u017aniej inspirowa\u0142 si\u0119 podej\u015bciem unixowym, dlatego program przyjmuje dane z stdin podczas tworzenia kopii zapasowych, wydaj\u0105c podobny strumie\u0144 danych w stdout podczas przywracania. Dzi\u0119ki temu zbackup mo\u017cna wykorzysta\u0107 jako ca\u0142kiem niez\u0142y \u201eklocka\u201d przy pisaniu w\u0142asnych rozwi\u0105za\u0144 do tworzenia kopii zapasowych. Na przyk\u0142ad, dla autora artyku\u0142u ten program jest g\u0142\u00f3wnym narz\u0119dziem do tworzenia kopii zapasowych dla domowych komputer\u00f3w od oko\u0142o 2014 roku.<\/p>\n<p><\/p>\n<p>Jako strumie\u0144 danych b\u0119dzie u\u017cywany standardowy tar, je\u015bli nie powiedziano inaczej.<\/p>\n<p>\n<b class=\"spoiler_title\">Zobaczymy, jakie b\u0119d\u0105 wyniki:<\/b><\/p>\n<p>Testowanie dzia\u0142ania odbywa\u0142o si\u0119 w 2 wariantach:<\/p>\n<p><\/p>\n<ol>\n<li>tworzy si\u0119 repozytorium i uruchamia zbackup na serwerze z danymi \u017ar\u00f3d\u0142owymi, a nast\u0119pnie zawarto\u015b\u0107 repozytorium zostaje przes\u0142ana na serwer przechowywania kopii zapasowych.<\/li>\n<li>tworzy si\u0119 repozytorium na serwerze przechowywania kopii zapasowych, uruchamia si\u0119 zbackup przez ssh na serwerze przechowywania kopii zapasowych, kt\u00f3remu przez pipe wydawane s\u0105 dane.<\/li>\n<\/ol>\n<p><\/p>\n<p>Wyniki pierwszej opcji by\u0142y nast\u0119puj\u0105ce: 43m11s \u2014 przy u\u017cyciu niezaszyfrowanego repozytorium i kompresora lzma, 19m13s \u2014 przy wymianie kompresora na lzo.<\/p>\n<p><\/p>\n<p>Obci\u0105\u017cenie na serwerze z danymi \u017ar\u00f3d\u0142owymi by\u0142o nast\u0119puj\u0105ce (pokazany przyk\u0142ad z lzma, z lzo obraz by\u0142 podobny, ale cz\u0119\u015b\u0107 rsync wynosi\u0142a oko\u0142o jednej czwartej czasu):<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/pp\/d3\/hs\/ppd3hsaxn_kffamwcrwstrb_sds.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/11c3c38124f6e20b6f92290e41a609a5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Wyra\u017anie wida\u0107, \u017ce taki proces tworzenia kopii zapasowej nadaje si\u0119 tylko przy stosunkowo rzadkich i niewielkich zmianach. Wysoce zaleca si\u0119 tak\u017ce ograniczenie pracy zbackup do 1 w\u0105tku, w przeciwnym razie obci\u0105\u017cenie procesora b\u0119dzie do\u015b\u0107 wysokie, poniewa\u017c program bardzo dobrze potrafi dzia\u0142a\u0107 w wielu w\u0105tkach. Obci\u0105\u017cenie dysku by\u0142o niewielkie, co w przypadku nowoczesnego systemu dyskowego opartego na SSD b\u0119dzie w og\u00f3le niezauwa\u017calne. R\u00f3wnie\u017c wyra\u017anie wida\u0107 rozpocz\u0119cie procesu synchronizacji danych repozytorium na zdalnym serwerze, a pr\u0119dko\u015b\u0107 pracy jest por\u00f3wnywalna z zwyk\u0142ym rsync i napotyka na wydajno\u015b\u0107 systemu dyskowego serwera przechowywania kopii zapasowych. Minusem podej\u015bcia jest przechowywanie lokalnego repozytorium i, co za tym idzie, \u2014 duplikacja danych.<\/p>\n<p><\/p>\n<p>Bardziej interesuj\u0105c\u0105 i praktyczn\u0105 opcj\u0105 jest drugi wariant uruchomienia zbackup bezpo\u015brednio na serwerze przechowywania kopii zapasowych.<\/p>\n<p><\/p>\n<p>Na pocz\u0105tek sprawdzimy dzia\u0142anie bez u\u017cycia szyfrowania z kompresorem lzma:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/wf\/m4\/g0\/wfm4g0zjf3cktbvihsmmtbg-hcu.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/2179a53ed6fb9530324490dc0922c788.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy ka\u017cdego testu:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>39m45s<br \/>\n40m20s<br \/>\n40m3s<\/p>\n<p>7m36s<br \/>\n8m3s<br \/>\n7m48s<\/p>\n<p>15m35s<br \/>\n15m48s<br \/>\n15m38s<\/p>\n<p><\/p>\n<p>Je\u015bli aktywujemy szyfrowanie z zastosowaniem aes, wyniki s\u0105 wystarczaj\u0105co zbli\u017cone:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/mf\/7p\/yv\/mf7pyvnly6bmjtxbno88mjtrtn4.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/afe515a8574ac0c6b2c2390b647108a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy na tych samych danych ze szyfrowaniem:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>43m40s<br \/>\n44m12s<br \/>\n44m3s<\/p>\n<p>8m3s<br \/>\n8m15s<br \/>\n8m12s<\/p>\n<p>15m0s<br \/>\n15m40s<br \/>\n15m25s<\/p>\n<p><\/p>\n<p>Je\u015bli po\u0142\u0105czymy szyfrowanie z kompresj\u0105 w lzo, otrzymujemy takie wyniki:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/38\/cz\/tb\/38cztb4tuzxtgsorc6uysied59k.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/0e5ff5e133acd8710177c27f2fc3c202.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>18m2s<br \/>\n18m15s<br \/>\n18m12s<\/p>\n<p>5m13s<br \/>\n5m24s<br \/>\n5m20s<\/p>\n<p>8m48s<br \/>\n9m3s<br \/>\n8m51s<\/p>\n<p><\/p>\n<p>Rozmiar wynikowego repozytorium by\u0142 stosunkowo jednorodny i wynosi\u0142 13 GB. Oznacza to, \u017ce deduplikacja dzia\u0142a poprawnie. R\u00f3wnie\u017c na ju\u017c skompresowanych danych zastosowanie lzo przynosi zauwa\u017calny efekt, a ca\u0142kowity czas pracy zbackup zbli\u017ca si\u0119 do duplicity\/duplicati, pozostaj\u0105c jednak z ty\u0142u w por\u00f3wnaniu do system\u00f3w opartych na librsync od 2 do 5 razy.<\/p>\n<p><\/p>\n<p>Zalety s\u0105 oczywiste \u2014 oszcz\u0119dno\u015b\u0107 miejsca na dysku na serwerze przechowywania kopii zapasowych. Je\u015bli chodzi o narz\u0119dzia do weryfikacji repozytorium \u2014 autor zbackup ich nie przewidzia\u0142, zaleca si\u0119 korzystanie z rozwi\u0105za\u0144 RAID lub dostawcy chmurowego.<\/p>\n<p><\/p>\n<p>Og\u00f3lnie rzecz bior\u0105c, wywar\u0142o to do\u015b\u0107 dobre wra\u017cenie, mimo \u017ce projekt od oko\u0142o 3 lat stoi w miejscu (ostatnie \u017c\u0105danie funkcjonalno\u015bci mia\u0142o miejsce oko\u0142o roku temu, ale bez odpowiedzi).<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-borgbackup\">Testowanie borgbackup<\/h3>\n<p><\/p>\n<p>Borgbackup jest fork'iem attic, jeszcze jednego, podobnego do zbackup systemu. Napisany w Pythonie, ma podobn\u0105 list\u0119 mo\u017cliwo\u015bci jak zbackup, ale dodatkowo potrafi:<\/p>\n<p><\/p>\n<ul>\n<li>Montowa\u0107 kopie zapasowe przez fuse<\/li>\n<li>Weryfikowa\u0107 zawarto\u015b\u0107 repozytorium<\/li>\n<li>Pracowa\u0107 w trybie klient-serwer<\/li>\n<li>U\u017cywa\u0107 r\u00f3\u017cnych kompresor\u00f3w dla danych, a tak\u017ce heurystycznie okre\u015bla\u0107 typ pliku przy kompresji.<\/li>\n<li>2 warianty szyfrowania, aes i blake<\/li>\n<li>Wbudowane narz\u0119dzie do<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">sprawdzania wydajno\u015bci<\/b><\/p>\n<p>borgbackup benchmark crud ssh:\/\/backup_server\/repo\/path local_dir<\/p>\n<p><\/p>\n<p>Wyniki okaza\u0142y si\u0119 nast\u0119puj\u0105ce:<\/p>\n<p><\/p>\n<p>C-Z-BIG 96.51 MB\/s (10 <em> 100.00 MB pliki zerowe: 10.36s)<br \/>\nR-Z-BIG 57.22 MB\/s (10 <\/em> 100.00 MB pliki zerowe: 17.48s)<br \/>\nU-Z-BIG 253.63 MB\/s (10 <em> 100.00 MB pliki zerowe: 3.94s)<br \/>\nD-Z-BIG 351.06 MB\/s (10 <\/em> 100.00 MB pliki zerowe: 2.85s)<br \/>\nC-R-BIG 34.30 MB\/s (10 <em> 100.00 MB pliki losowe: 29.15s)<br \/>\nR-R-BIG 60.69 MB\/s (10 <\/em> 100.00 MB pliki losowe: 16.48s)<br \/>\nU-R-BIG 311.06 MB\/s (10 <em> 100.00 MB pliki losowe: 3.21s)<br \/>\nD-R-BIG 72.63 MB\/s (10 <\/em> 100.00 MB pliki losowe: 13.77s)<br \/>\nC-Z-MEDIUM 108.59 MB\/s (1000 <em> 1.00 MB pliki zerowe: 9.21s)<br \/>\nR-Z-MEDIUM 76.16 MB\/s (1000 <\/em> 1.00 MB pliki zerowe: 13.13s)<br \/>\nU-Z-MEDIUM 331.27 MB\/s (1000 <em> 1.00 MB pliki zerowe: 3.02s)<br \/>\nD-Z-MEDIUM 387.36 MB\/s (1000 <\/em> 1.00 MB pliki zerowe: 2.58s)<br \/>\nC-R-MEDIUM 37.80 MB\/s (1000 <em> 1.00 MB pliki losowe: 26.45s)<br \/>\nR-R-MEDIUM 68.90 MB\/s (1000 <\/em> 1.00 MB pliki losowe: 14.51s)<br \/>\nU-R-MEDIUM 347.24 MB\/s (1000 <em> 1.00 MB pliki losowe: 2.88s)<br \/>\nD-R-MEDIUM 48.80 MB\/s (1000 <\/em> 1.00 MB pliki losowe: 20.49s)<br \/>\nC-Z-SMALL 11.72 MB\/s (10000 <em> 10.00 kB plik\u00f3w zerowych: 8.53s)<br \/>\nR-Z-SMALL 32.57 MB\/s (10000 <\/em> 10.00 kB plik\u00f3w zerowych: 3.07s)<br \/>\nU-Z-SMALL 19.37 MB\/s (10000 <em> 10.00 kB plik\u00f3w zerowych: 5.16s)<br \/>\nD-Z-SMALL 33.71 MB\/s (10000 <\/em> 10.00 kB plik\u00f3w zerowych: 2.97s)<br \/>\nC-R-SMALL 6.85 MB\/s (10000 <em> 10.00 kB plik\u00f3w losowych: 14.60s)<br \/>\nR-R-SMALL 31.27 MB\/s (10000 <\/em> 10.00 kB plik\u00f3w losowych: 3.20s)<br \/>\nU-R-SMALL 12.28 MB\/s (10000 <em> 10.00 kB plik\u00f3w losowych: 8.14s)<br \/>\nD-R-SMALL 18.78 MB\/s (10000 <\/em> 10.00 kB plik\u00f3w losowych: 5.32s)<\/p>\n<p><\/p>\n<p>W te\u015bcie u\u017cywana b\u0119dzie heurystyka przy kompresji z okre\u015bleniem typu pliku (compression auto), a wyniki b\u0119d\u0105 takie:<\/p>\n<p>\n<b class=\"spoiler_title\">Na pocz\u0105tek sprawd\u017amy dzia\u0142anie bez szyfrowania:<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/fe\/ep\/xm\/feepxmsoyorprvvt5h00tuj2spg.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/bcf7d2021a77dd5099b0b159defe2022.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>4m6s<br \/>\n4m10s<br \/>\n4m5s<\/p>\n<p>56s<br \/>\n58s<br \/>\n54s<\/p>\n<p>1m26s<br \/>\n1m34s<br \/>\n1m30s<\/p>\n<p><\/p>\n<p>Je\u015bli w\u0142\u0105czysz autoryzacj\u0119 repozytorium (tryb authenticated), wyniki b\u0119d\u0105 zbli\u017cone:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/3c\/qe\/kx\/3cqekxviy9rzhafckbi0tidjxn4.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/6b4f28a5b464d2f2bf83f003d45be6dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>4m11s<br \/>\n4m20s<br \/>\n4m12s<\/p>\n<p>1m0s<br \/>\n1m3s<br \/>\n1m2s<\/p>\n<p>1m30s<br \/>\n1m34s<br \/>\n1m31s<\/p>\n<p><\/p>\n<p>Po w\u0142\u0105czeniu szyfrowania aes wyniki nie pogorszy\u0142y si\u0119 znacz\u0105co:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/oa\/yz\/zl\/oayzzliqw8zixlppy_idv2l8gzm.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/06a122bb3b7b1bdb86e82101b144a2ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>4m55s<br \/>\n5m2s<br \/>\n4m58s<\/p>\n<p>1m0s<br \/>\n1m2s<br \/>\n1m0s<\/p>\n<p>1m49s<br \/>\n1m50s<br \/>\n1m50s<\/p>\n<p><\/p>\n<p>A je\u015bli zmienimy aes na blake, sytuacja zupe\u0142nie si\u0119 poprawi:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/df\/kh\/ay\/dfkhayqoecs9hw_c_aj2fmxjkbu.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/f474e6870145ec0e15aec383b272b8ce.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>4m33s<br \/>\n4m43s<br \/>\n4m40s<\/p>\n<p>59s<br \/>\n1m0s<br \/>\n1m0s<\/p>\n<p>1m38s<br \/>\n1m43s<br \/>\n1m40s<\/p>\n<p><\/p>\n<p>Jak w przypadku z zbackup, rozmiar repozytorium wyni\u00f3s\u0142 13GB, a nawet troch\u0119 mniej, co w sumie by\u0142o do przewidzenia. Czas pracy zaskoczy\u0142 pozytywnie, jest por\u00f3wnywalny z rozwi\u0105zaniami opartymi na librsync, oferuj\u0105c znacznie szersze mo\u017cliwo\u015bci. R\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 parametryzacji przez zmienne \u015brodowiskowe daje istotn\u0105 przewag\u0119 przy u\u017cywaniu borgbackup w trybie automatycznym. Zaskoczy\u0142a tak\u017ce niska obci\u0105\u017cenie przy tworzeniu kopii zapasowej: s\u0105dz\u0105c po obci\u0105\u017ceniu procesora \u2014 borgbackup dzia\u0142a w 1 w\u0105tku.<\/p>\n<p><\/p>\n<p>Nie znaleziono szczeg\u00f3lnych wad w u\u017cytkowaniu.<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-restic\">Testowanie restic<\/h3>\n<p><\/p>\n<p>Pomimo \u017ce restic jest stosunkowo nowym rozwi\u0105zaniem (pierwsze 2 kandydaci by\u0142y znane od 2013 roku i starsze), ma do\u015b\u0107 dobre w\u0142a\u015bciwo\u015bci. Napisany jest w Go.<\/p>\n<p><\/p>\n<p>W por\u00f3wnaniu z zbackup, dodatkowo oferuje:<\/p>\n<p><\/p>\n<ul>\n<li>Sprawdzanie integralno\u015bci repozytorium (w tym sprawdzanie po cz\u0119\u015bciach).<\/li>\n<li>Ogromna lista obs\u0142ugiwanych protoko\u0142\u00f3w i dostawc\u00f3w do przechowywania kopii zapasowych, a tak\u017ce wsparcie dla rclone \u2014 rsync dla \u201echmurowych\u201d rozwi\u0105za\u0144.<\/li>\n<li>Por\u00f3wnanie 2 kopii zapasowych ze sob\u0105.<\/li>\n<li>Monta\u017c repozytorium przez fuse.<\/li>\n<\/ul>\n<p><\/p>\n<p>Og\u00f3lnie rzecz bior\u0105c, lista mo\u017cliwo\u015bci jest do\u015b\u0107 podobna do borgbackup, czasami wi\u0119cej, czasami mniej. Zalet\u0105 jest brak mo\u017cliwo\u015bci wy\u0142\u0105czenia szyfrowania, co oznacza, \u017ce kopie zapasowe b\u0119d\u0105 zawsze szyfrowane. Sprawd\u017amy w praktyce, co mo\u017cna osi\u0105gn\u0105\u0107 z tego oprogramowania:<\/p>\n<p>\n<b class=\"spoiler_title\">Wyniki okaza\u0142y si\u0119 takie:<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/tq\/k5\/xn\/tqk5xn1xknn33dydmslqofrjfvs.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/d5aa98b72f2a9918bfb3e9e963e4f71d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>5m25s<br \/>\n5m50s<br \/>\n5m38s<\/p>\n<p>35s<br \/>\n38s<br \/>\n36s<\/p>\n<p>1m54s<br \/>\n2m2s<br \/>\n1m58s<\/p>\n<p><\/p>\n<p>Wyniki pracy s\u0105 por\u00f3wnywalne z rozwi\u0105zaniami opartymi na rsync i og\u00f3lnie zbli\u017cone do borgbackup, ale obci\u0105\u017cenie procesora jest wy\u017csze (dzia\u0142a kilka w\u0105tk\u00f3w) i ma charakter z\u0105bkowany.<\/p>\n<p><\/p>\n<p>Najprawdopodobniej program napotyka na ograniczenia wydajno\u015bci podsystemu dyskowego na serwerze przechowuj\u0105cym dane, co ju\u017c mia\u0142o miejsce w przypadku rsync. Rozmiar repozytorium wyni\u00f3s\u0142 13 GB, jak w przypadku zbackup lub borgbackup, nie zaobserwowano istotnych wad w korzystaniu z tego rozwi\u0105zania.<\/p>\n<p><\/p>\n<h3 id=\"rezultaty\">Wyniki<\/h3>\n<p><\/p>\n<p>W rzeczywisto\u015bci wszyscy kandydaci maj\u0105 podobne wyniki, ale r\u00f3\u017cn\u0105 cen\u0119. Najlepiej zaprezentowa\u0142 si\u0119 borgbackup, nieco wolniej dzia\u0142a\u0142 restic, zbackup prawdopodobnie nie warto zaczyna\u0107 stosowa\u0107.<br \/>\nJe\u017celi ju\u017c jest u\u017cywany, warto rozwa\u017cy\u0107 migracj\u0119 na borgbackup lub restic.<\/p>\n<p><\/p>\n<h3 id=\"vyvody\">Wnioski<\/h3>\n<p><\/p>\n<p>Najbardziej obiecuj\u0105cym rozwi\u0105zaniem wydaje si\u0119 restic, poniewa\u017c ma najlepszy stosunek mo\u017cliwo\u015bci do pr\u0119dko\u015bci pracy, ale nie spieszmy si\u0119 z og\u00f3lnymi wnioskami.<\/p>\n<p><\/p>\n<p>Borgbackup zasadniczo nie jest gorszy, natomiast zbackup prawdopodobnie warto zast\u0105pi\u0107. Prawda jest taka, \u017ce dla spe\u0142nienia zasady 3-2-1 zbackup wci\u0105\u017c mo\u017cna wykorzysta\u0107, na przyk\u0142ad w po\u0142\u0105czeniu z narz\u0119dziami do tworzenia kopii zapasowych opartymi na (lib)rsync.<\/p>\n<p><\/p>\n<h3 id=\"anons\">Og\u0142oszenie<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449282\/\">Kopie zapasowe, cz\u0119\u015b\u0107 1: Po co s\u0105 kopie zapasowe, przegl\u0105d metod, technologii<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">Kopie zapasowe, cz\u0119\u015b\u0107 2: Przegl\u0105d i testowanie narz\u0119dzi do tworzenia kopii zapasowych opartych na rsync<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454420\/\">Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454734\/#first_unread\">Kopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup<\/a><\/noindex><br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 5: Testowanie bacula i veeam backup for linux<br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 6: Por\u00f3wnanie narz\u0119dzi do tworzenia kopii zapasowych<br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 7: Wnioski<\/p>\n<p><\/p>\n<p><u>Autor publikacji:<\/u> Pawe\u0142 Demkiewicz<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454734\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0443\u0442\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b (chunks), \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0436\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e. \u0420\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0432 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u2014 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26337,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35003","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u044c 4: \u041e\u0431\u0437\u043e\u0440 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 zbackup, restic, borgbackup | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:01:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:01:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Tworzenie kopii zapasowych, cz\u0119\u015b\u0107 4: Recenzja i testowanie zbackup, restic, borgbackup | ProHoster","description":"W.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u044c 4: \u041e\u0431\u0437\u043e\u0440 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 zbackup, restic, borgbackup | ProHoster","og:description":"\u0412.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:01:46+00:00","article:modified_time":"2019-10-31T19:01:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35003","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 21:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:11:30","updated":"2026-01-21 21:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=35003"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35003\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/26337"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}