{"id":38746,"date":"2019-10-31T22:25:40","date_gmt":"2019-10-31T19:25:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rezervnoe-kopirovanie-chast-6-sravnenie-sredstv-rezervnogo-kopirovaniya\/"},"modified":"2019-10-31T22:25:40","modified_gmt":"2019-10-31T19:25:40","slug":"rezervnoe-kopirovanie-chast-6-sravnenie-sredstv-rezervnogo-kopirovaniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-6-sravnenie-sredstv-rezervnogo-kopirovaniya","title":{"rendered":"Backup, Part 6: Comparison of Backup Solutions","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/f069a4d220330bba5e0cf58239e27941.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nThis article will compare backup solutions, but first, it's worth understanding how quickly and efficiently they handle data recovery from backups.<br \/>\nFor simplicity, the comparison will focus on recovery from a full backup, especially since this operating mode is supported by all candidates. The figures used are averaged (the arithmetic mean from several runs). The results will be summarized in a table, which will also include information on features such as web interface availability, ease of setup and operation, automation capabilities, and various additional options (for example, data integrity checks), etc. The graphs will show the load on the server where the data will be applied (not the backup storage server).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Data Recovery<\/h2>\n<p>\nThe benchmarks will use rsync and tar as reference points since <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/468963\/#comment_20676449\">they are typically the basis for<\/a><\/noindex> the simplest backup scripts.<\/p>\n<p><i>Rsync<\/i> managed the test dataset in 4 minutes and 28 seconds, showing <\/p>\n<p><b class=\"spoiler_title\">this load.<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/0837e6e19bdc4294232f57dc349058e4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe recovery process encountered limitations of the disk subsystem of the backup storage server (sawtooth graphs). It's also clearly visible that one core was heavily loaded without significant issues (low iowait and softirq \u2014 no problems with the disk and network, respectively). Since the other two programs, namely rdiff-backup and rsnapshot, are based on rsync and also use standard rsync for recovery, they will have a similar load profile and recovery time.<\/p>\n<p><i>Tar<\/i> performed slightly faster, at <\/p>\n<p><b class=\"spoiler_title\">2 minutes and 43 seconds:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/b6426b06911625fbf28c6f8e5142da25.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe overall system load was on average 20% higher due to increased softirq \u2014 overheads rose in the operation of the network subsystem.<\/p>\n<p>If the archive is additionally compressed, recovery time increases to 3 minutes and 19 seconds with <br \/>\n<b class=\"spoiler_title\">this load on the main server (decompression on the main server side):<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/51f3758537570367be12a9d81aa990a0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe unpacking process utilizes both processor cores, as two processes are running. Overall, this is the expected result. A comparable outcome (3 minutes and 20 seconds) was also achieved when running gzip on the server side with backups, where the load profile on the main server was quite similar to that of running tar without the gzip compressor (see the previous graph).<\/p>\n<p>In <i>rdiff-backup<\/i> You can synchronize the latest backup using regular rsync (the results will be similar), but older backups still need to be restored using the rdiff-backup program, which managed the restoration in 17 minutes and 17 seconds, showing <\/p>\n<p><b class=\"spoiler_title\">the following load:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/d4fa70a152a818f9d6ea724e82812a75.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThis may have been intentional, at least for limiting speed, the authors <noindex><a rel=\"nofollow\" href=\"http:\/\/rdiff-backup.nongnu.org\/FAQ.html#bwlimit\">suggest such a solution<\/a><\/noindex>. The restoration process takes slightly less than half of a core, with proportionally comparable performance (i.e. 2-5 times slower) over disk and network with rsync.<\/p>\n<p><i>Rsnapshot<\/i> suggests using regular rsync for restoration, so its results will be similar. Overall, this was indeed the case.<\/p>\n<p><i>Burp<\/i> managed the backup restoration task in 7 minutes and 2 seconds with <br \/>\n<b class=\"spoiler_title\">the following load:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/0d7772ba6a0251e603697faba47cf686.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIt worked quite quickly, and, at least, was much more user-friendly than plain rsync: no need to remember any flags, a simple and intuitive CLI interface, built-in support for multiple copies \u2014 though it was about twice as slow. If data needs to be restored from the latest backup, you can use rsync, with a few caveats.<\/p>\n<p>The program showed approximately the same speed and load <i>BackupPC<\/i> when in rsync transfer mode, restoring the backup in <\/p>\n<p><b class=\"spoiler_title\">7 minutes and 42 seconds:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/0631cd0dcdc0b7d7151bdc1936d8007c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHowever, in tar data transfer mode, BackupPC performed slower: in 12 minutes and 15 seconds, with the CPU load being overall lower <\/p>\n<p><b class=\"spoiler_title\">by one and a half times:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/9fa514cb9883d7ae9ec6807f14dee0e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Duplicity<\/i> without encryption showed slightly better results, completing the backup restoration in 10 minutes and 58 seconds. If encryption is activated using gpg, the restoration time increases to 15 minutes and 3 seconds. When creating a repository for storing copies, you can specify the size of the archive to be used when splitting the stream of incoming data. Overall, on conventional hard drives, and due to the single-threaded operation mode, there is not much difference. It may appear with different block sizes when hybrid storage is used. The load on the main server during restoration was as follows:<\/p>\n<p><b class=\"spoiler_title\">without encryption<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/acd25eb423a71c23888bd09ac051b826.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b class=\"spoiler_title\">with encryption<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/5c45ce5450cea12925a1802f2898c03c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Duplicati<\/i> showed comparable restoration speed, completing it in 13 minutes and 45 seconds. An additional approximately 5 minutes were spent verifying the integrity of the restored data (totaling around 19 minutes). The load during this was <\/p>\n<p><b class=\"spoiler_title\">quite high:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/2e6786d4790927703fb259a6131fc9f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWhen aes encryption was activated by internal means, the restoration time was 21 minutes and 40 seconds, with the CPU load being maximum (both cores!) during restoration; during data verification, only one thread was active, occupying one CPU core. Verifying data after restoration took the same 5 minutes (totaling nearly 27 minutes).<\/p>\n<p><b class=\"spoiler_title\">Result<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/1ca3f1bee529bd11a57f295ff9752a96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSlightly faster, duplicati handled restoration when using an external program gpg for encryption, but overall the differences from the previous mode are minimal. The total time taken was 16 minutes and 30 seconds, with data verification taking 6 minutes. The load was <\/p>\n<p><b class=\"spoiler_title\">as follows:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/053155ccd72d9b26b8ff8409234e64e7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>AMANDA<\/i>, using tar, managed to finish in 2 minutes and 49 seconds, which is quite close to the regular tar. The system load is generally <\/p>\n<p><b class=\"spoiler_title\">the same:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/ce66df8cd7c2fdfaacc55caf9b902be4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuring the restoration of the backup using <i>zbackup<\/i> the following results were obtained:<\/p>\n<p><b class=\"spoiler_title\">encryption, lzma compression<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/b18323339741454c81fc2d09642f1347.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTotal time was 11 minutes and 8 seconds<\/p>\n<p><b class=\"spoiler_title\">aes encryption, lzma compression<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/876abd9fda4c99d41f88c1f76e0eaba2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTotal time was 14 minutes<\/p>\n<p><b class=\"spoiler_title\">aes encryption, lzo compression<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/7624c1c4cdac063836677d6de89d623e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTotal time was 6 minutes and 19 seconds<\/p>\n<p>Overall, it\u2019s not bad. Everything hinges on the CPU speed of the backup server, which is quite noticeable based on the program's performance with different compressors. On the backup server side, a regular tar was executed, so if you compare with it, the restoration operates three times slower. It may be worth checking the performance in multithreaded mode, with more than two threads.<\/p>\n<p><i>BorgBackup<\/i> In non-encrypted mode, it performed slightly slower than tar, taking 2 minutes and 45 seconds; however, unlike tar, there is the possibility of deduplicating the repository. The load during this process was <\/p>\n<p><b class=\"spoiler_title\">as follows:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/217390a1fe04ba5264690f23858f90a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIf you enable encryption based on blake, the restoration speed slows down a bit. The restoration time in this mode is 3 minutes and 19 seconds, and the load was <\/p>\n<p><b class=\"spoiler_title\">as follows:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/2e7046c946a87ec0b6ae64cef52d72b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAES encryption operates slightly slower, with a restoration time of 3 minutes and 23 seconds, while the load did not particularly <\/p>\n<p><b class=\"spoiler_title\">change:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/5d3baa01f1e22cb4f0a422172171d2ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSince Borg can operate in multithreaded mode, the CPU load is maximized; meanwhile, when additional features are activated, the runtime simply increases. Apparently, it is worth investigating multithreading performance similarly to zbackup.<\/p>\n<p><i>Restic<\/i> performed the restoration slightly slower, with a runtime of 4 minutes and 28 seconds. The load during this process appeared <\/p>\n<p><b class=\"spoiler_title\">as follows:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/cbfec891beff54222684809c34fd43f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIt seems that the restoration process operates in several threads, but the efficiency is not as high as with BorgBackup, yet comparable in time to regular rsync.<\/p>\n<p>Using <i>UrBackup<\/i> managed to restore data in 8 minutes and 19 seconds, with the load being <\/p>\n<p><b class=\"spoiler_title\">as follows:<\/b><img decoding=\"async\" alt=\"Backup, Part 6: Comparison of Backup Solutions\" src=\"\/wp-content\/uploads\/2019\/10\/253cff88cfaf7604b306dbfe68eb002c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStill, it shows a fairly low load, even lower than tar. There are occasional spikes, but not exceeding the load of a single core.<\/p>\n<h2>Selection and justification of criteria for comparison<\/h2>\n<p>\nAs mentioned in one of the previous articles, the backup system must meet the following criteria:<\/p>\n<ul>\n<li>Ease of Use<\/li>\n<li>Versatility<\/li>\n<li>Stability<\/li>\n<li>Speed <\/li>\n<\/ul>\n<p>\nIt is worth considering each point separately in more detail.<\/p>\n<h4>Ease of use<\/h4>\n<p>\nIt\u2019s best when there\u2019s one button for 'Do everything right', but returning to real programs \u2014 it\u2019s most convenient to have some familiar and standard operating principle.<br \/>\nMost users will likely prefer not to memorize a bunch of CLI keys, configure various, often unclear options through web or TUI, and set up alerts for unsuccessful operations. This also includes the ability to easily \"integrate\" a backup solution into the existing infrastructure, as well as automating the backup process. Additionally, the possibility of installation via a package manager, or with one or two commands like \"download and unpack\". <code>curl link | sudo bash<\/code> \u2014 a complex method, as it is necessary to verify what is being received at the link.<\/p>\n<p>For example, among the candidates considered, simple solutions include burp, rdiff-backup, and restic, which have mnemonically memorable keys for different operating modes. A bit more complex are borg and duplicity. The most complex was AMANDA. The others fall somewhere in the middle in terms of ease of use. In any case, if it takes more than 30 seconds to read the user manual, or if one needs to go to Google or another search engine, and also scroll through a lengthy help document \u2014 the solution is complex, one way or another.<\/p>\n<p>Some of the candidates considered can automatically send messages via e-mail or Jabber, while others rely on configured alerts in the system. Often, complex solutions have not-so-obvious alert settings. In any case, if the backup program returns a non-zero exit code that can be correctly interpreted by the system's periodic task service (it will send a message to the system administrator or directly to monitoring) \u2014 the situation is straightforward. However, if the backup system, which operates away from the backup server, cannot inform about a problem in an obvious way without configuration \u2014 the complexity is already excessive. In any case, issuing warnings and other messages only in the web interface or in logs is poor practice, as they will often be ignored.<\/p>\n<p>As for automation \u2014 a simple program should be able to read environment variables that define its working mode or have a developed CLI capable of fully replicating the behavior when working through the web interface, for example. This also includes the ability for streaming operations, the availability of extension capabilities, and so on.<\/p>\n<h4>Versatility<\/h4>\n<p>\nThis partially overlaps with the previous section regarding automation, and integrating the backup process into the existing infrastructure shouldn't pose any significant problems.<br \/>\nIt is worth noting that using non-standard ports (other than the web interface) for operation, implementing encryption in a non-standard way, and exchanging data via non-standard protocols are signs of a non-universal solution. Most candidates have these traits to some extent for an obvious reason: simplicity and universality are typically incompatible. An exception is burp, along with a few others.<\/p>\n<p>As a sign, the ability to operate using ordinary ssh.<\/p>\n<h4>Speed of operation.<\/h4>\n<p>\nThe most controversial and debatable point. On one hand \u2014 the process started, it completed as quickly as possible, and it doesn't interfere with main tasks. On the other hand \u2014 there's a spike in traffic and CPU load during the backup process. It's also worth noting that the fastest backup software is usually the most limited in features important to users. Again: if retrieving a single tiny text file of just a few dozen bytes with a password causes the entire service to hinge on it (yes, I understand that the backup process is often not at fault here), but you still have to sequentially read all files in the repository or unpack an entire archive \u2014 the backup system is by no means fast. Another point that often becomes a sticking point is the speed of restoring from an archive. There's a clear advantage for those who can simply copy or move files to the desired location without much hassle (rsync, for example), but usually, the problem has to be solved organizationally, through empirical means: measuring the time it takes to restore a backup and communicating this openly to users.<\/p>\n<h4>Stability<\/h4>\n<p>\nIt should be understood as follows: on one hand, there must be a way to restore the backup, in any case; on the other, resilience to various issues: network interruptions, disk failures, deletion of part of the repository.<\/p>\n<h4>Backup tool comparison<\/h4>\n<p><\/p>\n<p>Backup creation time<br \/>\nBackup restoration time<br \/>\nEasy Installation<br \/>\nSimple setup<br \/>\nEasy to use<br \/>\nSimple automation<br \/>\nIs a client-server needed?<br \/>\nRepository Integrity Check<br \/>\nDifferential Backups<br \/>\nOperation via Pipe<br \/>\nVersatility<br \/>\nIndependence<br \/>\nRepository Transparency<br \/>\nEncryption<br \/>\nCompression<br \/>\nDeduplication<br \/>\nWeb Interface<br \/>\nUpload to Cloud<br \/>\nWindows support<br \/>\nScore<\/p>\n<p>Rsync<br \/>\n4m15s<br \/>\n4m28s<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\n6<\/p>\n<p>Tar<br \/>\npure<br \/>\n3m12s<br \/>\n2m43s<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\n8,5<\/p>\n<p>gzip<br \/>\n9m37s<br \/>\n3m19s<br \/>\nyes<\/p>\n<p>Rdiff-backup<br \/>\n16m26s<br \/>\n17m17s<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n11<\/p>\n<p>Rsnapshot<br \/>\n4m19s<br \/>\n4m28s<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n12,5<\/p>\n<p>Burp<br \/>\n11m9s<br \/>\n7m2s<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n10,5<\/p>\n<p>Duplicity<br \/>\nno encryption<br \/>\n16m48s<br \/>\n10m58s<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n11<\/p>\n<p>gpg<br \/>\n17m27s<br \/>\n15m3s<\/p>\n<p>Duplicati<br \/>\nno encryption<br \/>\n20m28s<br \/>\n13m45s<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\n11<\/p>\n<p>aes<br \/>\n29m41s<br \/>\n21m40s<\/p>\n<p>gpg<br \/>\n26m19s<br \/>\n16m30s<\/p>\n<p>Zbackup<br \/>\nno encryption<br \/>\n40m3s<br \/>\n11m8s<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nnone<br \/>\n10<\/p>\n<p>aes<br \/>\n42m0s<br \/>\n14m1s<\/p>\n<p>aes+lzo<br \/>\n18m9s<br \/>\n6m19s<\/p>\n<p>BorgBackup<br \/>\nno encryption<br \/>\n4m7s<br \/>\n2m45s<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n16<\/p>\n<p>aes<br \/>\n4m58s<br \/>\n3m23s<\/p>\n<p>blake2<br \/>\n4m39s<br \/>\n3m19s<\/p>\n<p>Restic<br \/>\n5m38s<br \/>\n4m28s<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\n15,5<\/p>\n<p>UrBackup<br \/>\n8m21s<br \/>\n8m19s<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n12<\/p>\n<p>Amanda<br \/>\n9m3s<br \/>\n2m49s<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\n13<\/p>\n<p>BackupPC<br \/>\nrsync<br \/>\n12m22s<br \/>\n7m42s<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nnone<br \/>\nyes<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\nnone<br \/>\nyes<br \/>\n10,5<\/p>\n<p>tar<br \/>\n12m34s<br \/>\n12m15s<\/p>\n<p>\nTable Legend:<\/p>\n<ul>\n<li>Green, uptime less than five minutes or response 'Yes' (except the 'Client-Server Needed?' column), 1 point<\/li>\n<li>Yellow, uptime five to ten minutes, 0.5 points<\/li>\n<li>Red, uptime more than ten minutes or response 'No' (except the 'Client-Server Needed?' column), 0 points<\/li>\n<\/ul>\n<p>\nAccording to the table above, the simplest, fastest, yet convenient and powerful backup tool is BorgBackup. Restic came in second, while the other candidates scored approximately the same, with a spread of one to two points at the end.<\/p>\n<p>Thank you to everyone who read this cycle to the end; I invite you to discuss options and share your suggestions if you have any. The table may be updated as discussions progress.<\/p>\n<p>The result of this cycle will be a concluding article that attempts to derive the ideal, fast, and manageable solution for backups that allows quick restoration of copies while ensuring ease of setup and maintenance.<\/p>\n<h2>Announcement<\/h2>\n<p>\n<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\/\">Backup, Part 4: Overview and Testing of zbackup, restic, borgbackup<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/459550\/\">Backup, Part 5: Testing Bacula and Veeam Backup for Linux<\/a><\/noindex><br \/>\nBackup, Part 6: Comparison of Backup Solutions<br \/>\nBackup, Part 7: Conclusions<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/470802\/\">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\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u043e\u0438\u0442 \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u043e\u043b\u043d\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0446\u0438\u0444\u0440\u044b \u0432\u0437\u044f\u0442\u044b \u0443\u0436\u0435 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u044b\u043c\u0438 (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432). [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29065,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38746","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 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.\" \/>\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-6-sravnenie-sredstv-rezervnogo-kopirovaniya\" \/>\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 6: \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-6-sravnenie-sredstv-rezervnogo-kopirovaniya\" \/>\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:25:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:25:40+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 6: Comparison of Backup Tools | ProHoster","description":"In this article.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-6-sravnenie-sredstv-rezervnogo-kopirovaniya","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 6: \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f | ProHoster","og:description":"\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-6-sravnenie-sredstv-rezervnogo-kopirovaniya","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:25:40+00:00","article:modified_time":"2019-10-31T19:25:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38746","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-23 23:16:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:04:30","updated":"2026-01-23 23:16: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\/38746","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=38746"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38746\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/29065"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=38746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=38746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=38746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}