From e0fdc1fff154638a54c2d00233eae47f6821b9f4 Mon Sep 17 00:00:00 2001 From: Elia el Lazkani Date: Thu, 30 Jan 2020 21:00:17 +0100 Subject: [PATCH] New post, BorgBackup encrypted and deduplicated ! --- posts/backup/borgbackup.rst | 131 ++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 posts/backup/borgbackup.rst diff --git a/posts/backup/borgbackup.rst b/posts/backup/borgbackup.rst new file mode 100644 index 0000000..2f7a4d7 --- /dev/null +++ b/posts/backup/borgbackup.rst @@ -0,0 +1,131 @@ +.. title: BorgBackup +.. date: 2020-01-30 +.. slug: borgbackup +.. updated: 2020-01-30 +.. status: published +.. tags: backup, borgbackup +.. category: backup +.. authors: Elia El Lazkani +.. description: It has been called the Holy Grail of backup! BorgBackup is coming to town. +.. type: text + +I usually lurk around **Freenode** in a few projects that I use, can learn from and/or help with. +This is a great opportunity to learn new things *all the time*. + +This story is familiar in that manner, but that's where similarities diverge. +Someone asked around ``#Weechat`` a question that caught my attention because it was, sort of, out of topic. The question was around how do you backup your stuff ? + +.. TEASER_END + +I mean if I were asked that, I would've mentioned revision controlled off-site repositories for the code that I have. +For the personal stuff on the other hand, I would've admitted simple rudimentary solutions like ``rsync``, ``tar`` and external drives. +So I was sort of happy with my backup solution, it has worked. Plain and simple. + +I have to admit that, by modern standards it might not offer the ability to go back in time to a certain point. +But I use *file systems* that offer *snapshot* capabilities. I can recover from previous snapshots and send them somewhere safe. +Archiving and encrypting those is not a simple process, wish it was. That limits storage possibilities if you care to keep your data private. + +But if you know me, you'd know that I'm always open to new ways of doing things. + +I can't remember exactly the conversation but the name **BorgBackup** was mentioned (thank you however you are). That's when things changed. + + +BorgBackup +========== + +`Borg `_ is defined as a + + Deduplicating archiver with compression and encryption + +Although this is a very accurate and encompassing definition, it doesn't really show you how *AWESOME* this thing is. + +I had to go to the docs first before I stumbled upon this video. + +.. raw:: html + +
+ +
+ +It can be a bit difficult to follow the video, I understand. + +This is why I decided to write this post, to sort of explain to you how **Borg** can backup your stuff. + +Encryption +========== + +Oh yeah, that's the **first** thing I look at when I consider any suggested backup solution. +**Borg** offers built-in *encryption* and *authentication*. +You can read about it in details in the `docs `_. + +So that's a check. + +Compression +=========== + +This is another thing I look for in a suggested backup solution. And I'm happy to report that **Borg** has this under the belt as well. +**Borg** currently supports *LZ4*, *zlib*, *LZMA* and *zstd*. You can also tune the level of compression. Pretty neat ! + +Full Backup +=========== + +I've watched a few videos and read a bit of their documentation and they talk about **FULL BACKUP**. +Which means every time you run **Borg**, it will take a full backup of your stuff. A full backup at that point in time, don't forget. +The implication of this is that you have a versioned list of your backups, and you can go back in time to any of them. + +Yes, you read that right. **Borg** does a full backup every time you run it. That's a pretty neat feature. + +If you're a bit ahead of me, you were gonna say woooow there bud ! I have **Gigabytes** of data, what do you mean **FULL BACKUP**, you keep saying **FULL BACKUP**. + +I mean **FULL BACKUP**, wait until you hear about the next feature. + +Deduplication +============= + +Booyah ! It has deduplication. Ain't that awesome. I've watched a presentation by the project's original maintainer explain this. +I have one thing to say. It's pretty good. How good, you may ask ? + +My answer would be, good enough to fool me into thinking that it was taking snapshots of my data. + +.. code:: text + + ----------------------------------------------------------------------------- + Original size Compressed size Deduplicated size + All archives: 34.59 GB 9.63 GB 1.28 GB + Unique chunks Total chunks + Chunk index: 47772 469277 + + +It wasn't until I dug in deeper into the matter that I understood that it was a full backup and the deduping taking care of the rest. + +Check +===== + +**Borg** offers a way to vefiry the consistency of the repository and the archives within. +This way, you can make sure that your backups haven't been corrupted. + +This is a very good feature, and a must in my opinion from a backup solution. **Borg** has *YOU* covered. + +Restore +======= + +A backup solution is nothing if you can't get your data backup. +**Borg** has a few ways for you to get your data. You can either create an *archive* file out of a backup. +You can export a file, a directory or the whole directory tree from a backup. +You can also, if you like, mount a backup and get stuff out. + +.. warning:: + + Mounting a **Borg** backup is done using *fuse* + +Conclusion +========== + +**Borg** is a great tool for backup. It comes in an easily installable self-contained binary so you can use it, pretty much, +anywhere giving you no excuse *whatsoever* not to use it. Their documentation is very good, and **Borg** is easy to use. +It offers you all the features you need to do off-site and on-site backups of all your important data. + +I'll be testing **Borg** moving forward for my data. I'll make sure to report back anything I find, in the future, related to the subject.