7 ms·
BorgBackup 2.0 supports Rclone – over 70 cloud providers in addition to SSH
- lasr_velocirptr 2y agocan anybody familiar with the tool comment on if the encryption codein borgbackup is audited or is there a tool whose encryption portion of the code is audited to ensure that there are no glaring bugs in the encryption scheme?
- mendym 2y agois there a reason to use the borg encryption[1] over rclone crypt[2] or vise versa? 1. https://borgbackup.readthedocs.io/en/2.0.0b11/quickstart.html#repository-encryption https://borgbackup.readthedocs.io/en/2.0.0b11/quickstart.htm... 2. https://rclone.org/crypt/ https://rclone.org/crypt/
- misanthr0pe 2y agoI would also wonder what the difference between this package and Restic is. as far as efficiency and encryption.
- deleted 2y ago[deleted]
- freeqaz 2y agoHow good at deduping is this when encryption is enabled? I was looking at rsync.net and it killed me that they don't support encryption in a sane way.
- mendym 2y ago> they don't support encryption in a sane way. Should the storage provider provide support for encryption on their end? Would you not want to store the keys locally?
- immibis 2y agoThe provider should not. It provides a false sense of security.
- djbusby 2y agoIt's very sane: encrypt the bits, then send it to the host. Curious what you think is not right with their methods.
- freeqaz 2y agoSure, but there is some requirement to not just blindly copy everything over-and-over, and that is where I've seen things get tricky before. If you enable encryption you have to re-upload the entire snapshot periodically. It's annoying because if you have TBs of stuff that blows. I'm just curious what systems exist for incremental, encrypted backups that don't require full uploading new snapshots. See here in the NOTE section. Re-reading this, it might a limitation of Duplicity. https://www.rsync.net/resources/howto/duplicity.html https://www.rsync.net/resources/howto/duplicity.html
- prirun 2y agoAuthor of HashBackup here. Duplicity is very old backup software that uses the "full + incremental" strategy on a file-by-file basis, like tape backup systems. The full backup must be restored first and then all of the incrementals. This becomes impractical over time, so as with tapes, you must periodically repeat the full backup so the incremental chains do not become too long. Modern backup programs split files into blocks and keep track of data at the block level. You still do an initial full backup followed by incrementals, but block tracking allows you to restore any version of any file without restoring the full first and all following incrementals. The trade-off is in complexity: tracking blocks is more complex than tracking files. It has nothing to do with encryption.
- aborsy 2y agoRclone crypt is not much related to Borg. That’s a tool for copying files from one machine to another, in this case encrypting before copying. That’s rsync, working with cloud. Borg is a different tool, for backup. It deduplicates, encrypts, snapshots, checksums, compresses, … source directories into a single repository. It doesn’t work with files, rather blocks of data. It includes commands for repository management, like searching data, pruning or merging snapshots, etc. You will then transfer or sync the repository to wherever you want, with a tool such as rsync/SSH or rclone. Rclone is now natively supported, so that you don’t need to store the repository locally and on remote, rather back up directly to remote.
- tandav 2y agoThe lack of s3-like remotes support was the reason I switched from borg to restic
- synergy20 2y agorclone has dedupe, I think it does what restic can do plus multiple cloud support. rclone crypt also does encryption. so far I think rclone has it all for me.
- wongogue 2y agoThey also work together. restic uses rclone for backends other than the officially supported 7. rclone also has built-in restic integration. rclone on it own is a syncing solution not backup.
- RockRobotRock 2y ago>restic uses rclone for backends This is cool. It sounds like I can set up restic to copy my backups to multiple S3 buckets, or even to an S3 bucket at the same time as a local drive using a union (https://rclone.org/union/ https://rclone.org/union/) remote
- thangngoc89 2y agoRestic also offers encryption and compression. That’s the selling point for me when dealing with dozens of TB
- aborsy 2y agoRclone doesn’t have deduplication. That’s just finding files with the same name. It’s different from deduplication used in backup software. Think of grinding data in a big machine, and removing blocks that are redundant. You may have every file to be a single copy, and get significant space reduction.
- leetnewb 2y agoRclone also has a hash-based dedupe mode. Still different from borg, but it can be a little more robust than name-based.
- scorpioxy 2y agoOh very interesting. This has been a requested feature for a while especially with the rise in popularity and the decreased cost of object storage. Borg working with object storage was not supported though some people did use it that way. From my understanding, most would duplicate a repo and upload instead of borg directly writing/manipulating it. This could problematic if the original repo was corrupt as now the corruption would be duplicated. So this will make things much easier and allow for a more streamlined workflow. Having the tool support rclone instead of specific services seems like a wise and more future-proof choice to me.
- Helmut10001 2y agoBorgBackup user here and really happy. It was a set and forget for me and after 7 years, the deduplicated backup is still working flawlessly each week. I recommend pairing it with borgmatic [1], which helps to design away some of the complexities of the underlying borg backup. [1]: https://github.com/borgmatic-collective/borgmatic https://github.com/borgmatic-collective/borgmatic
- jszymborski 2y agoOr, if you're using a desktop environment and prefer a GUI, Vorta has been treating me well. https://vorta.borgbase.com/ https://vorta.borgbase.com/
- mrbigbob 2y agoAnother fairly good gui for Borg is Pika Backup. https://gitlab.gnome.org/World/pika-backup https://gitlab.gnome.org/World/pika-backup
- mystified5016 2y agoI love vorta, I have it on all my machines. It's great for my (non-technical) husband who doesn't want to know anything about Linux. Then everything gets backed up to my local server which then syncs out to remote storage. It's great. Can't wait for Borg 2 to hit stable. The transfer command solves so many problems
- mbrumlow 2y ago> set and forget for me and after 7 years Please tell me you verify your backups now and then?
- selcuka 2y ago> Please tell me you verify your backups now and then? Then one can't call it "set and forget", right?
- 2y ago
- locusm 2y agoI quite like Borg, others worth checking out are Restic and Kopia. Restic didnt have a UI for a long time, not sure thats changed...
- cyberax 2y agoInteresting. How robust is it in practice? I've been using Duplicacy for a long while, and I've been pretty happy with it. But I'd love to switch to a full open-source solution (Duplicacy is proprietary with sources publically available).
- singhrac 2y agoIt wasn't recommended a bit ago to use Borg 2.0 because it wasn't baked enough. Has that changed? Are people using Borg 2?
- DistractionRect 2y agoAuthor calls that out right at the top of the changelog: > Beta releases are only for testing on NEW repos - do not use for production.
- aborsy 2y agoIt is still in beta, and has been in this state for a long time. At some point, the developer thought to delay it further and introduce whatever breaking changes are needed in this release. Note that if you use, say, the 2.11 version, you cannot upgrade to 2.12, you cannot go back to 1.X either. People like me were stuck, it turned out you have to discard the repo. Sometime later they better clarified this point: >> Borg2 is currently in beta testing and might get major and/or breaking changes between beta releases (and there is no beta to next-beta upgrade code, so you will have to delete and re-create repos). I have a 2.X repo. It’s working fine and backs up. I have a lot of snapshots in that repo. If someone knows how to transfer them to a 2.X version once it’s out of beta, let me know.
- cstuder 2y agoIf you're looking for cheap online storage for your backups know this: A Microsoft 365 Single subscription comes with 1 TB of OneDrive space (Family subscriptions with 1 TB per person). I've been using it with restic + rclone successfully for years. It's not very fast, but works.
- deleted 2y ago[deleted]
- delusional 2y agoI'd recommend having a look at Hetzner's "storage box" products. It's hard to beat 4€ a month for 1TB of SSH accessible storage.
- sunaookami 2y agoSeconding this, I use it to backup my server hosted elsewhere and it works flawlessly. They even support borg out of the box https://docs.hetzner.com/storage/storage-box/access/access-ssh-rsync-borg#ssh--rsync--borgbackup https://docs.hetzner.com/storage/storage-box/access/access-s...
- copirate 2y agoSSH access on the storage boxes is quite limited: > It is possible to get interactive SSH access, but this access is limited. It is not possible to have interactive access via port 22, but it is possible via port 23. There is no full shell. For example, it is not possible to use pipes or redirects. It is also not possible to execute uploaded scripts. https://docs.hetzner.com/storage/storage-box/access/access-ssh-rsync-borg https://docs.hetzner.com/storage/storage-box/access/access-s... https://docs.hetzner.com/storage/storage-box/access/access-ssh-rsync-borg#available-commands https://docs.hetzner.com/storage/storage-box/access/access-s...
- fourstepper 2y agoAt what point would they effectively be selling you a VM with 1TB of storage for 4 EUR a month? :D
- 0xbadcafebee 2y agoIt's kind of ridiculous that there is better tooling for Kubernetes to sync files two ways than there is for the Linux desktop. Rclone is a maze of options, which vary based on version/distro. The configurator is a slow readline console script without enough information. The one decent GUI for Rclone has been abandoned, and despite being able to save "tasks", had no ability to just... schedule one every 10 minutes. And yet if you go into most distros and look at packaged Internet apps, or things on Flatpak, you will find 1,000 different open source GUIs for an RSS reader, BitTorrent client, or chat client. I would love it if there were some kind of "Linux Desktop co-op", with a couple of staff. Users pay membership dues, vote on apps/features, and some devs get paid to develop it, in addition to "resume fame" that can translate over to a higher paying gig. But something tells me the Linux Desktop is so small and nerd-focused that we'd just end up funding more RSS readers and chat clients.
- darthrupert 2y agoSyncthing?
- nine_k 2y agoSyncthing is great, but it's peer to peer, and it requires block storage ("filesystem"). It also has no idea of point-in-time snapshots. Syncthing, is, as is unison, rsync, etc, basically a mirroring tool. By contrast, Borg, Restic, Kopia (anything else?) use object storage, aka binary blobs, like S3 or R2 or One Drive. They store both entire copies and small diffs on top of them, much like video codecs, or like git. You can look at the filesystem you've backed up as it was in a particular moment, and you may have a history of many such moments, say, daily snapshots for a month, stored economically, not as 30 full copies. And it all is encrypted on top. If your source FS supports snapshots (ZFS, XFS on LVM, BTRFS), your backups can be entirely consistent views of your filesystem, of its relevant subtrees.
- TiredOfLife 2y agohttps://docs.syncthing.net/users/versioning.html https://docs.syncthing.net/users/versioning.html
- krick 2y agoCurrently I'm just using bare rclone to backup to my own remote machines, but obviously this isn't very professional solution. Was thinking to add Backblaze B2 as a remote, but I guess using rclone wouldn't be a state-of-the-art solution here. After all, it isn't really a backup tool, is it? It has some built-in encryption, but it's a bit clunky, and I'd think a proper backup tool should automatically divide data into blocks of suitable size (instead of just creating file-per-file - to make it S3/B2 API-friendly), encode whole directories as tar (if needed to preserve links, for example), do deduplication, and whatever else are best practices I have no idea about, but which backup-proficient people probably invented long time ago. Does anybody have a recommendation? I briefly looked at restic and duplicati, but surprisingly none are as simple to use as I'd expect a dedicated backup-tool to be (I don't need, and kindda don't want GUI, I'd like all configuration to be stored in a single config-file I can just back-up to a different location like everything else, and re-create on any new machine). More than that, I've read some scary stories about these tools fucking up their indexes so that data turns out to be non-restorable, which sounds insane, since this is something you must be absolutely sure your backup-tool would never do no matter what, because what's even the point of making backups then.
- abhinavk 2y agorestic + autorestic/resticprofile. Borg 2 is still beta and Kopia is also there. But it's newer so I am testing it on another redundant backup on the same machine. I have space so why not? Every once in a while I run integrity check (with data) so I can trust that metadata and data are fine.
- scorpioxy 2y agoWhether something is simple or not I'd say depends on the use case. But I found borg to be great. I'd recommend you check it out and go through the quickstart guide in the documentation. It does de-duplication and encryption. It does a lot more but you don't have to use those features if you don't need them. I couple it with borgmatic to implement a backup and disaster recovery procedure that is meant to decrease the risk of data loss. I also use borgbase and they have a good service but using something like B2 with this rclone support would result in a cheaper alternative if you don't need the extra that borgbase provides. I've been using it for quite a while now both for my personal projects and paid work and have had a good experience with it.
- dang 2y agoRelated. Others? Borg 2.0 beta (deduplicating backup program with compression and encryption) - https://news.ycombinator.com/item?id=40990425 https://news.ycombinator.com/item?id=40990425 - July 2024 (1 comment) Borgctl – borgbackup without bash scripts - https://news.ycombinator.com/item?id=39289656 https://news.ycombinator.com/item?id=39289656 - Feb 2024 (1 comment) BorgBackup: Deduplicating archiver with compression and encryption - https://news.ycombinator.com/item?id=34152369 https://news.ycombinator.com/item?id=34152369 - Dec 2022 (177 comments) Emborg – Front-End to Borg Backup - https://news.ycombinator.com/item?id=30035308 https://news.ycombinator.com/item?id=30035308 - Jan 2022 (2 comments) Deduplicating Archiver with Compression and Encryption - https://news.ycombinator.com/item?id=27939412 https://news.ycombinator.com/item?id=27939412 - July 2021 (71 comments) BorgBackup: Deduplicating Archiver - https://news.ycombinator.com/item?id=21642364 https://news.ycombinator.com/item?id=21642364 - Nov 2019 (103 comments) Borg – Deduplicated backup with compression and authenticated encryption - https://news.ycombinator.com/item?id=13149759 https://news.ycombinator.com/item?id=13149759 - Dec 2016 (1 comment) BorgBackup (short: Borg) is a deduplicating backup program - https://news.ycombinator.com/item?id=11192209 https://news.ycombinator.com/item?id=11192209 - Feb 2016 (1 comment)
- eternityforest 2y agoSo, should I plan to switch to this rather than keep using Kopia? I was using it for years on an external drive, but then I got a NAS, and did not want to fuss with community packages to get Borg working. Kopia works fine, aside from the confusing GUI setup process, but it seems to be the least popular up and coming option. Now it seems that this can directly target SFTP? I wonder what that means for the future of Kopia.
- _flux 2y agoKopia also supported rclone for a long time, though: https://kopia.io/docs/reference/command-line/common/repository-create-rclone/ https://kopia.io/docs/reference/command-line/common/reposito... . However, in my experience backing up over sftp with kopia can be very slow. I suspect it's unable to use parallel sessions for them (or pipelining, but rclone API probably doesn't do that). My reason to go with kopia was that previously you were not able to backup multiple hosts into the same repo without great inefficiencies. I'm not sure if they still have resolved that. Another was its native S3 support which I use with ceph. A perhaps more superficial personal reason is that at least Go is a statically typed language, even if its type system isn't that great..
- wzyboy 2y agoI've always been doing "two-pass" backups to achieve "3-2-1" goal: first pass is to run BorgBackup to backup devices to my home server. The second pass is to use rclone to transfer the repos on home server to an object storage service (B2). With rclone support built-in, the setup would be much easier.
- cl3misch 2y agoI think this is heavily discouraged? Instead you should have multiple separate borg repos to minimize risk of misconfiguration and data corruption.
- cl3misch 2y agoI managed to find the source for my statement: https://borgbackup.readthedocs.io/en/stable/faq.html#can-i-copy-or-synchronize-my-repo-to-another-location https://borgbackup.readthedocs.io/en/stable/faq.html#can-i-c... It is not "heavily" discouraged. But you have to pay extra attention to perform a clean copy of the borg repo's files, and ideally check both instances regularly for integrity. I would assume it's easy to forget validating the "cold storage" copy of your borg repo in practice.
- aquafox 2y agoAlso BorgBackup user here: I'm running it on a Raspberry Pi to backup important documents to a Hetzner storage box via ssh. The Pi als runs OpenMediaVault to provide a SMB share on my home LAN. So whenever I scan a new document, just put it on the SMB share and from there it's backed up automatically every day.
- wg0 2y agoHow can we use it for large database backups > 500 GB and is anyone doing that on daily basis?
- Havoc 2y agoAs long as borg is running on both ends it should hash it I think
- prirun 2y agoAuthor of HashBackup here. To use modern block-based backup programs for large databases and VM images (similar situation), you must use a very small block size for dedup to work well. For VM images, that's 4K. For databases, it's the page size, which is 4K for SQlite and 16K for InnoDB by default. With very small block sizes, most block-based backup programs kind of fall over, and start downloading lots of data on each backup for the block index, use a lot of RAM for the index, or both. So it's important that you test programs with small block sizes if you expect high dedup across backups. Some backup program allow you to set the block size on a per-file basis (HashBackup does), while others set it at the backup repo level. To backup a database, there are generally a couple of options: 1. Create an SQL text dump of the database and back that up. For this to dedup well, variable-sized blocks must be used, and the smaller the block size, the higher the dedup ratio. 2. Backup the database while running with a fixed block size equal to the db page size. You could lock the database and do the backup, but it's better to do two backup runs, the first with no locking, and the second with a read lock. The first backup cannot be restored because it would be inconsistent if any changes occur to the database during the backup. But it does not lock out any database users during the backup. The second backup will be much faster because the bulk of the database blocks have already been saved and only the changed blocks have to be re-saved. Since the second backup occurs with a read lock held, the second backup will be a consistent snapshot of the database. 3. The third way is to get the database write logs involved, which is more complex.
- IshKebab 2y agoI used to use Borg but the fact that it can't work with a dumb storage device like SMB meant I eventually moved to Rustic, which is even better: https://github.com/rustic-rs/rustic https://github.com/rustic-rs/rustic
- snorremd 2y agoI see they have gotten support for S3 (and other storage providers) via OpenDal. Might need to revisit rustic for my backup needs then! I once started looking at what it would take to build a GUI using Tauri (Rust backend <-> JS/Web frontend), but didn't have time to figure out the APIs. What I really like about Rustic is that it understands .gitignore natively so you can backup your entire workspace without dragging a lot of dependencies, compiled binaries, and other unnecessary data with you into your backups.
- jas39 2y agoToo late Borg! I specifically chose Restic for the Rclone support. Can't change backup strategy now. It also save me once. Pcloud lifetime + Restic, all in one repo, to benefit from dedup.
- elric 2y agoI've happily been writing borg backups to rsync.net for years. They have support for forcing borg in the ssh session using force-command, and borg has options that can prevent deletion (should the backup ssh key be compromised). Overall it's a robust solution that isn't too painful to setup.
- unbrice 2y agoI second this. I was looking for a solution that prevented a compromised host from deleting its own backups. Forcing the command as you mentioned works for rsync.net, and its snapshots also provide a protection against fat finger errors.
- swoorup 2y agoNew to Borg, and backups in general. Does borg have the ability to split chunks over multiple repository of varying sizes? For example, I might have just 15GB Google Drive Storage, whereas on others I might have 100GB available.
- nickcw 2y agoWriting an rclone backend for borg is something I have wanted to do for a long time. However I found that the backends weren't well abstracted enough in v1 to make that easy. However for v2 Thomas Waldmann has made a nice abstracted interface and the rclone code ended up being being only <300 lines of Python which only took an afternoon or two to make. https://github.com/borgbackup/borgstore/blob/master/src/borgstore/backends/rclone.py https://github.com/borgbackup/borgstore/blob/master/src/borg...
- ThomasWaldmann 2y agoThanks a lot for writing the rclone backend!
- immibis 2y agoThat's really big and really nice. For anyone unfamiliar, rclone is to online storage what ffmpeg is to multimedia files: a Swiss army knife that adapts anything to anything. It supports everything from S3 and Azure storage, to Google Drive and Dropbox, to sftp mounts; encryption and compression layers too.
- rmoriz 2y agoIt's a joy that the OSS world has so many active and really good backup tooling projects like Borg, restic and all the fancy wrapper/GUI tools. I use many of them in different environments for customer setups, desktops and my own cloud setup. It's essential to have several different options and each project has its own USP. A big thanks to everyone involved!
- ensignavenger 2y agoAs you seem familiar with the landscape, do you care to share what you think the strengths/USP and weaknesses of each option you are familiar with are? Or do you know of a high quality blog post somewhere that does?
- mrbigbob 2y agoI remember reading quite a few years ago about people working to get Borg to work with windows. Has there been any recent progress with that?
- ThomasWaldmann 2y agoBasic stuff might work in a "posix-like" environment, like when using cygwin or WSL. The main problem is that there currently aren't active windows developers within the borgbackup project who continuously test and improve the windows specific code parts. Since recently, we at least have some working CI on windows again, at least that was fixed.
- gmuslera 2y agoUsed BorgBackup 1.x with rclone, backing up in a local repository and then sending it to S3 with Rclone. For the way that borg works with files, most of the historic data lies on old, untouched files in the repository, only a catalog and the new blocks create new and update files. So it was great for using some of the S3 tiers that move files that doesn't change for some period automatically to a cheaper class. Having both together makes easier to get this kind of use case.
- jjice 2y agoFor personal use, at what point would one recommend using Borg over a regular rsync? I currently use rsync to backup up a set of directories on a drive to another drive and a remote service (rsync.net). It's been working great, but I'm not sure if my use-case is just simple enough where this is a good solution, or if I'm missing a big benefit of Borg. I do envy Borg's encryption, but the complexity of a new tool tied with the paranoia of me maybe screwing up all my data has had me on edge a bit to make the leap. I don't have a ton of data to backup, say about 5TB at the moment.
- zimpenfish 2y agoFor me, the deduping and compression saves a lot of storage. My mail backup (17 backups covering the last 6 months) is originally 837GB, compressed to 312GB and dedupe'd to 19GB. Same with Postgres - 25GB to 7GB to 900MB. You could probably use rsync's hard linking to save space on the mail backup but I'm not sure you'd get it as small without faffing about.
- remram 2y agoUsual problem, if you delete/corrupt a file and find out two days later, your daily backup is not going to help you. Having more than one snapshot is very valuable. http://www.taobackup.com/ http://www.taobackup.com/ etc Rsync is also very slow with lots of files, and doesn't deal with renamed files (will transfer again).
- eikenberry 2y agoRsync backups can be setup to deal with this. I have rsync setup with daily incremental backups, the main sync to a 'current' folder and the old version of changed files staying in a weekday named folder (eg. Monday). So I have a rotating 7 day period to recover files. On top of that I have a monthly long term backup of the last old version of that month. This provides an arbitraribly long monthly window to recover from. Rsync is very versatile.
- remram 2y agoYeah with enough scripting, you can rebuild a slow equivalent to a real backup program, that will also use 10x the disk space.
- Mister_Snuggles 2y agoDoes anyone have an up-to-date comparison of Borg vs Restic? Or a compelling reason to switch from Restic to Borg? I've previously used Borg, but the inability to use anything other than local files or ssh as a backend became a problem for me. I switched to Restic around the time it gained compression support. So for my use-case of backing up various servers to an S3-compatible storage provider, Restic and Borg now seem to be equivalent. Obviously I don't want to fix what isn't broken, but I'd also like to know what I'm missing out on by using Restic instead of Borg.
- kornnflake 2y ago+1, I'm in a similar situation and be curious too about an up-to-date comparison.
- ThomasWaldmann 2y agoComparisons might be interesting, but one needs to be aware that they would be a bit apples to oranges: - unreleased code that is still in heavy development (borg2, especially the new repository code inside borg2). - released code (restic) that has practically proven "cloud support" since quite a while. borg2 is using rclone for the cloud backend, so that part is at least quite proven, but the layers above that in borg2 are all quite fresh and not much optimized / debugged yet.
- ectospheno 2y agoI prefer restic simply because I find it easier to understand and use. This means backups actually happen. It also feels less like it is constantly changing. Constant stream of new features isn’t a thing I’ve ever desired in a backup solution.
- ThomasWaldmann 2y agoPlease note that this is rather recent "bleeding edge" code from master branch. It is available as 2.0.0beta11, but not suitable for production yet. "Beta" also means that there won't be repository migration code from beta N to N+1.
- ThomasWaldmann 2y agoBTW, besides "cloud support" via rclone, there are also some other big changes in borg2 beta. This is the summary of the major changes (more details are in the change log): https://www.borgbackup.org/releases/borg-2.0.html https://www.borgbackup.org/releases/borg-2.0.html
- anotherevan 2y agoI'll use Restic or BorgBackup for servers, but ended up going with Kopia for machines that are not always on, like laptops. It has the advantage that it will take something of an opportunistic approach where it will start backing up if it hasn't done so in a while, and seems to be able to restart with aplomb if it gets interrupted (machine shutdown or laptop lid closed). That and being able to have multiple machines writing to a shared repository at the same time is handy. I have the kids' Windows computers both backing up to the same repo to save a bit of storage. (Now if only Kopia supported VSS on Windows without mucking around with dubious scripts.)
- ajvs 2y agoVorta (GUI for BorgBackup) will also opportunistically backup if it's overdue for a backup.
- hanklazard 2y agoI previously used Borg and didn’t have any bad experiences, but in the end, just switched my server over to zfs. Simple, straight-forward backup tools with native snapshots, and bit-rot resistance.