{"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\/en\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup","title":{"rendered":"Backup, Part 4: Overview and Testing of zbackup, restic, borgbackup","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Backup, Part 4: Overview and Testing of zbackup, restic, borgbackup\" src=\"\/wp-content\/uploads\/2019\/06\/a48fd8c8d725f94f0358a563ab76b783.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>This article will cover software tools for backup that create a repository by splitting data streams into separate components (chunks).<\/p>\n<p><\/p>\n<p>The repository components can be further compressed and encrypted, and most importantly \u2014 reused during subsequent backup processes.<\/p>\n<p><\/p>\n<p>A backup in such a repository is a named chain of interrelated components, for example, based on various hash functions.<\/p>\n<p><\/p>\n<p>There are several such solutions; I will focus on three: zbackup, borgbackup, and restic.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"ozhidaemye-rezultaty\">Expected Results<\/h3>\n<p><\/p>\n<p>Since all candidates require creating a repository in one way or another, one of the most important factors will be assessing the repository size. Ideally, its size should not exceed 13 GB according to the accepted methodology, or even less\u2014with good optimization.<\/p>\n<p><\/p>\n<p>It is also highly desirable to have the ability to create backups of files directly, without using archivers like tar, as well as to work with ssh\/sftp without additional tools like rsync and sshfs.<\/p>\n<p><\/p>\n<p><strong>Behavior during Backup Creation:<\/strong><\/p>\n<p><\/p>\n<ol>\n<li>The size of the repository will equal the size of the changes, or be smaller.<\/li>\n<li>A high CPU load is expected when using compression and\/or encryption, as well as potentially significant load on the network and disk subsystem if the archiving and\/or encryption process runs on the backup storage server.<\/li>\n<li>If the repository is corrupted, a delayed error is likely both during the creation of new backups and during restoration attempts. Additional measures to ensure the integrity of the repository need to be planned, or built-in integrity checking tools should be used.<\/li>\n<\/ol>\n<p><\/p>\n<p>The reference value is working with tar, as shown in a previous article.<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-zbackup\">Testing zbackup<\/h3>\n<p><\/p>\n<p>The overall mechanism of how zbackup works is that the program finds areas in the input data stream that contain identical data, then optionally compresses and encrypts them, saving each area only once.<\/p>\n<p><\/p>\n<p>A 64-bit circular hash function with a sliding window is used for deduplication to check byte-by-byte for matches with existing data blocks (similar to how it is implemented in rsync).<\/p>\n<p><\/p>\n<p>LZMA and LZO are applied for compression in a multithreaded manner, while AES is used for encryption. In the latest versions, there is an option to delete old data from the repository in the future.<br \/>\nThe program is written in C++ with minimal dependencies. The author appears to have been inspired by the unix-way, thus the program takes data from stdin when creating backups, outputting a similar data stream to stdout during restoration. As a result, zbackup can be used as quite a good 'building block' for writing custom backup solutions. For instance, for the article's author, this program has been the primary backup tool for home machines since around 2014.<\/p>\n<p><\/p>\n<p>The data stream will use the standard tar, unless specified otherwise.<\/p>\n<p>\n<b class=\"spoiler_title\">Let's see what the results will be:<\/b><\/p>\n<p>The testing was conducted in 2 variations:<\/p>\n<p><\/p>\n<ol>\n<li>a repository is created and zbackup is run on the server with the source data, then the contents of the repository are transferred to the backup storage server.<\/li>\n<li>a repository is created on the backup storage server, zbackup is launched via SSH on the backup storage server, receiving data from the pipe.<\/li>\n<\/ol>\n<p><\/p>\n<p>The results of the first option were as follows: 43m11s \u2014 with an unencrypted repository and LZMA compressor, 19m13s \u2014 when switching the compressor to LZO.<\/p>\n<p><\/p>\n<p>The load on the server with the source data was as follows (an example with LZMA is shown; with LZO, the picture was approximately the same, but the rsync share was about a quarter of the time):<\/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=\"Backup, Part 4: Overview and Testing of 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>It is clearly evident that such a backup process is only suitable for relatively rare and minor changes. It is also highly advisable to limit the operation of zbackup to 1 thread; otherwise, CPU load will be significantly high, as the program is quite adept at working with multiple threads. The disk load was low, which, given the modern SSD-based disk subsystem, will generally go unnoticed. It is also clearly visible that the data synchronization process to the remote server is underway, with speeds comparable to regular rsync, limited by the performance of the backup server's disk subsystem. A downside of this approach is the storage of a local repository, which consequently leads to data duplication.<\/p>\n<p><\/p>\n<p>A more interesting and practical alternative is the second option of running zbackup directly on the backup storage server.<\/p>\n<p><\/p>\n<p>To start, the operation will be tested without using encryption with the lzma compressor:<\/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=\"Backup, Part 4: Overview and Testing of 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>Execution time of each test run:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 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>If encryption using aes is activated, the results are quite close:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/mf\/7p\/yv\/mf7pyvnly6bmjtxbno88mjtrtn4.png\"><img decoding=\"async\" alt=\"Backup, Part 4: Overview and Testing of 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>Running time on the same data, with encryption:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 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>If encryption is combined with lzo compression, it appears as follows:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/38\/cz\/tb\/38cztb4tuzxtgsorc6uysied59k.png\"><img decoding=\"async\" alt=\"Backup, Part 4: Overview and Testing of 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>Running time:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 3<\/p>\n<p>18m2s<br \/>\n18m15s<br \/>\n18m12s<\/p>\n<p>5m13s<br \/>\n5m24s<br \/>\n5m20s<\/p>\n<p>8m48s<br \/>\n9m3s<br \/>\nThe size of the resulting repository was relatively consistent at 13GB. This means that deduplication works correctly. Additionally, applying lzo to already compressed data yields a noticeable effect, causing the total running time of zbackup to closely approach duplicity\/duplicati, although it lags behind those based on librsync by 2-5 times.<\/p>\n<p><\/p>\n<p>The advantages are obvious \u2014 saving disk space on the backup storage server. As for repository verification tools, they are not provided by the zbackup author, and it is recommended to use a fault-tolerant disk array or cloud provider.<\/p>\n<p><\/p>\n<p>Overall, a rather pleasant impression, despite the fact that the project has been stagnant for about 3 years (the last feature request was made around a year ago, but without a response).<\/p>\n<p><\/p>\n<p>Testing borgbackup<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-borgbackup\">Borgbackup is a fork of attic, another similar system to zbackup. Written in Python, it has a similar list of features to zbackup, but additionally can:<\/h3>\n<p><\/p>\n<p>BorgBackup is a fork of Attic, another system similar to zbackup. Written in Python, it has a feature set comparable to zbackup, but additionally it can:<\/p>\n<p><\/p>\n<ul>\n<li>Mount backups via fuse<\/li>\n<li>Check the contents of the repository<\/li>\n<li>Operate in client-server mode<\/li>\n<li>Use various data compressors as well as heuristic file type detection during compression.<\/li>\n<li>2 encryption options, aes and blake<\/li>\n<li>Built-in tool for<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">performance testing<\/b><\/p>\n<p>borgbackup benchmark crud ssh:\/\/backup_server\/repo\/path local_dir<\/p>\n<p><\/p>\n<p>The results were as follows:<\/p>\n<p><\/p>\n<p>C-Z-BIG 96.51 MB\/s (10 <em> 100.00 MB all-zero files: 10.36s)<br \/>\nR-Z-BIG 57.22 MB\/s (10 <\/em> 100.00 MB all-zero files: 17.48s)<br \/>\nU-Z-BIG 253.63 MB\/s (10 <em> 100.00 MB all-zero files: 3.94s)<br \/>\nD-Z-BIG 351.06 MB\/s (10 <\/em> 100.00 MB all-zero files: 2.85s)<br \/>\nC-R-BIG 34.30 MB\/s (10 <em> 100.00 MB random files: 29.15s)<br \/>\nR-R-BIG 60.69 MB\/s (10 <\/em> 100.00 MB random files: 16.48s)<br \/>\nU-R-BIG 311.06 MB\/s (10 <em> 100.00 MB random files: 3.21s)<br \/>\nD-R-BIG 72.63 MB\/s (10 <\/em> 100.00 MB random files: 13.77s)<br \/>\nC-Z-MEDIUM 108.59 MB\/s (1000 <em> 1.00 MB all-zero files: 9.21s)<br \/>\nR-Z-MEDIUM 76.16 MB\/s (1000 <\/em> 1.00 MB all-zero files: 13.13s)<br \/>\nU-Z-MEDIUM 331.27 MB\/s (1000 <em> 1.00 MB all-zero files: 3.02s)<br \/>\nD-Z-MEDIUM 387.36 MB\/s (1000 <\/em> 1.00 MB all-zero files: 2.58s)<br \/>\nC-R-MEDIUM 37.80 MB\/s (1000 <em> 1.00 MB random files: 26.45s)<br \/>\nR-R-MEDIUM 68.90 MB\/s (1000 <\/em> 1.00 MB random files: 14.51s)<br \/>\nU-R-MEDIUM 347.24 MB\/s (1000 <em> 1.00 MB random files: 2.88s)<br \/>\nD-R-MEDIUM 48.80 MB\/s (1000 <\/em> 1.00 MB random files: 20.49s)<br \/>\nC-Z-SMALL 11.72 MB\/s (10000 <em> 10.00 kB all-zero files: 8.53s)<br \/>\nR-Z-SMALL 32.57 MB\/s (10000 <\/em> 10.00 kB all-zero files: 3.07s)<br \/>\nU-Z-SMALL 19.37 MB\/s (10000 <em> 10.00 kB all-zero files: 5.16s)<br \/>\nD-Z-SMALL 33.71 MB\/s (10000 <\/em> 10.00 kB all-zero files: 2.97s)<br \/>\nC-R-SMALL 6.85 MB\/s (10000 <em> 10.00 kB random files: 14.60s)<br \/>\nR-R-SMALL 31.27 MB\/s (10000 <\/em> 10.00 kB random files: 3.20s)<br \/>\nU-R-SMALL 12.28 MB\/s (10000 <em> 10.00 kB random files: 8.14s)<br \/>\nD-R-SMALL 18.78 MB\/s (10000 <\/em> 10.00 kB random files: 5.32s)<\/p>\n<p><\/p>\n<p>During testing, heuristic compression with file type detection (compression auto) will be used, and the results will be:<\/p>\n<p>\n<b class=\"spoiler_title\">Let's first check the operation without encryption:<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/fe\/ep\/xm\/feepxmsoyorprvvt5h00tuj2spg.png\"><img decoding=\"async\" alt=\"Backup, Part 4: Overview and Testing of 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>Running time:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 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>If repository authorization is enabled (authenticated mode), the results will be similar:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/3c\/qe\/kx\/3cqekxviy9rzhafckbi0tidjxn4.png\"><img decoding=\"async\" alt=\"Backup, Part 4: Overview and Testing of 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>Running time:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 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>When activating aes encryption, the results did not worsen significantly:<\/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=\"Backup, Part 4: Overview and Testing of 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>Run 1<br \/>\nRun 2<br \/>\nRun 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>And if we change aes to blake, the situation will improve:<\/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=\"Backup, Part 4: Overview and Testing of 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>Running time:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 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>As with zbackup, the repository size was 13 GB and even a bit less, which is generally expected. The runtime was quite impressive, comparable to solutions based on librsync, providing much broader capabilities. I was also pleased by the ability to set various parameters via environment variables, which gives a significant advantage when using borgbackup in automatic mode. Furthermore, the load during backup was notable: judging by the CPU load \u2014 borgbackup operates in a single thread.<\/p>\n<p><\/p>\n<p>No significant downsides were found during use.<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-restic\">Testing restic<\/h3>\n<p><\/p>\n<p>Despite being a relatively new solution (the first two candidates were known since 2013 or earlier), restic boasts quite decent characteristics. It is written in Go.<\/p>\n<p><\/p>\n<p>Compared to zbackup, it additionally offers:<\/p>\n<p><\/p>\n<ul>\n<li>Integrity checks for the repository (including partial checks).<\/li>\n<li>A vast list of supported protocols and providers for backup storage, along with support for rclone \u2014 rsync for 'cloud' solutions.<\/li>\n<li>Comparison of two backups against each other.<\/li>\n<li>Mounting the repository via fuse.<\/li>\n<\/ul>\n<p><\/p>\n<p>Overall, the list of features is quite similar to borgbackup, sometimes more, sometimes less. One distinct feature is the inability to disable encryption, meaning backups will always be encrypted. Let's see in practice what can be extracted from this software:<\/p>\n<p>\n<b class=\"spoiler_title\">The results turned out as follows:<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/tq\/k5\/xn\/tqk5xn1xknn33dydmslqofrjfvs.png\"><img decoding=\"async\" alt=\"Backup, Part 4: Overview and Testing of 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>Running time:<\/p>\n<p><\/p>\n<p>Run 1<br \/>\nRun 2<br \/>\nRun 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>The performance results are also comparable with solutions based on rsync and are generally quite close to borgbackup, but the CPU load is higher (multiple threads are running) and spiky.<\/p>\n<p><\/p>\n<p>Most likely, the program is limited by the performance of the disk subsystem on the data storage server, as was already the case with rsync. The size of the repository was 13 GB, similar to zbackup or borgbackup, and no obvious downsides were found when using this solution.<\/p>\n<p><\/p>\n<h3 id=\"rezultaty\">Results<\/h3>\n<p><\/p>\n<p>In fact, all candidates produced similar results, albeit at different prices. Borgbackup performed the best, with restic slightly slower, whereas zbackup might not be worth starting to use,<br \/>\nand if it's already in use\u2014consider switching to borgbackup or restic.<\/p>\n<p><\/p>\n<h3 id=\"vyvody\">Conclusions<\/h3>\n<p><\/p>\n<p>Restic appears to be the most promising solution, as it has the best balance of features to speed, but let's not rush to any conclusions just yet.<\/p>\n<p><\/p>\n<p>Borgbackup is essentially just as good, but zbackup is likely better replaced. However, to adhere to the 3-2-1 rule, zbackup can still be utilized. For instance, as an addition to backups based on (lib)rsync.<\/p>\n<p><\/p>\n<h3 id=\"anons\">Announcement<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449282\/\">Backup, part 1: Why backup is necessary, overview of methods and technologies<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">Backup, part 2: Overview and testing of rsync-based backup solutions<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454420\/\">Backup, part 3: Overview and testing of duplicity, duplicati<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454734\/#first_unread\">Backup, Part 4: Overview and Testing of zbackup, restic, borgbackup<\/a><\/noindex><br \/>\nBackup, Part 5: Testing Bacula and Veeam Backup for Linux<br \/>\nBackup, Part 6: Comparison of Backup Solutions<br \/>\nBackup, Part 7: Conclusions<\/p>\n<p><\/p>\n<p><u>Author:<\/u> Pavel Demkovich<\/p>\n<p>Source: <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\/en\/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=\"en_US\" \/>\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\/en\/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\udd47Backup, Part 4: Overview and Testing of zbackup, restic, borgbackup | ProHoster","description":"In.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-4-obzor-i-testirovanie-zbackup-restic-borgbackup","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/35003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=35003"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/35003\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/26337"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=35003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=35003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=35003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}