-
- Enthusiast
- Posts: 41
- Liked: 3 times
- Joined: Jan 06, 2020 6:58 am
- Full Name: Dmitry Becha
- Contact:
Need advise on Veeam setup for LUKS+BTRFS
Hi All,
I’m looking for a way to switch to Veeam for BTRFS volume backup and can use some help to figure out correct setup.
Starting point:
* Debian10 ESXi VM as a source
* Data disk is encrypted with LUKS with BTRFS on top and with multiple subvolumes mounted
* BTRBK based scripts runs daily to create RO snapshots of each volume with different (per-subvolume) backup schedule and retention policy.
* Same script replicates snapshots to backup server (Debian10) and has its own per-subvolume retention policy to keep X daily / Y weekly / Z monthly backups. In addition, it replicates some sub-volumes to external(rotating) drivers for storage off-site.
* Everything works as expected.
With Veeam I’d like to keep functionality I have and
1) Add ability to backup to cloud (B2/Wasabi)
2) I don't want to have unencrypted data outside of main VM.
Due to encryption on VM side the vSphere based backup is not practical due to large initial and incremental backups (for example when btrfs volume is rebalanced). Veeam Agent for Linux seems to be the only option, but I'm running into issues.
My initial idea was to create a job for each subvolume. With such approach backup itself seems to work fine, but I’m having trouble with backup-copy and export jobs. Objects in the backup-copy jobs are named based on hostname of the source machine, so I end up with a dozen of objects with exactly the same name.
Is there any way to customize the name on per job basis?
My next thought was to do a full disk backup based on DM disk (after it’s unlocked my LUKS).
I’m still running the first cycle but I see that VAL found btrfs pool and identified all snapshots/subvolumes to be backed up, but apparently it transfers each subvolume and snapshot individually and with COW is disabled. With several hundred snapshots, this is a problem. With ~10% of snapshots processed, the size of initial backup is already way over the size of source physical drive. Is there a way to enable COW ?
I’m looking for a way to switch to Veeam for BTRFS volume backup and can use some help to figure out correct setup.
Starting point:
* Debian10 ESXi VM as a source
* Data disk is encrypted with LUKS with BTRFS on top and with multiple subvolumes mounted
* BTRBK based scripts runs daily to create RO snapshots of each volume with different (per-subvolume) backup schedule and retention policy.
* Same script replicates snapshots to backup server (Debian10) and has its own per-subvolume retention policy to keep X daily / Y weekly / Z monthly backups. In addition, it replicates some sub-volumes to external(rotating) drivers for storage off-site.
* Everything works as expected.
With Veeam I’d like to keep functionality I have and
1) Add ability to backup to cloud (B2/Wasabi)
2) I don't want to have unencrypted data outside of main VM.
Due to encryption on VM side the vSphere based backup is not practical due to large initial and incremental backups (for example when btrfs volume is rebalanced). Veeam Agent for Linux seems to be the only option, but I'm running into issues.
My initial idea was to create a job for each subvolume. With such approach backup itself seems to work fine, but I’m having trouble with backup-copy and export jobs. Objects in the backup-copy jobs are named based on hostname of the source machine, so I end up with a dozen of objects with exactly the same name.
Is there any way to customize the name on per job basis?
My next thought was to do a full disk backup based on DM disk (after it’s unlocked my LUKS).
I’m still running the first cycle but I see that VAL found btrfs pool and identified all snapshots/subvolumes to be backed up, but apparently it transfers each subvolume and snapshot individually and with COW is disabled. With several hundred snapshots, this is a problem. With ~10% of snapshots processed, the size of initial backup is already way over the size of source physical drive. Is there a way to enable COW ?
-
- Product Manager
- Posts: 14835
- Liked: 3082 times
- Joined: Sep 01, 2014 11:46 am
- Full Name: Hannes Kasparick
- Location: Austria
- Contact:
Re: Need advise on Veeam setup for LUKS+BTRFS
Hello,
If you want small incremental backups for your kind of setup, then last century backup style is needed: file based backup. In Veeam terms that means NAS backup (faster) or file level based agent backup (slower). If you enable encryption in the jobs, then you don't have unencrypted data outside the VM.
For me it sounds, that you transport physical ideas to a virtual world where most things are not needed anymore. I recommend to simplify if possible.
Best regards,
Hannes
Volume based = block based backup. That means, you will see the same large increments in both cases when you re-balance.Due to encryption on VM side the vSphere based backup is not practical due to large initial and incremental backups (for example when btrfs volume is rebalanced). Veeam Agent for Linux seems to be the only option, but I'm running into issues.
If you want small incremental backups for your kind of setup, then last century backup style is needed: file based backup. In Veeam terms that means NAS backup (faster) or file level based agent backup (slower). If you enable encryption in the jobs, then you don't have unencrypted data outside the VM.
For me it sounds, that you transport physical ideas to a virtual world where most things are not needed anymore. I recommend to simplify if possible.
Best regards,
Hannes
-
- Product Manager
- Posts: 6551
- Liked: 765 times
- Joined: May 19, 2015 1:46 pm
- Contact:
Re: Need advise on Veeam setup for LUKS+BTRFS
This requirement makes it tricky - VAL supports BTRFS only if it resides directly on a physical device with no additional abstraction layers (such as LVM, software RAID, dm-crypt and so on) below or above it.* Data disk is encrypted with LUKS with BTRFS on top and with multiple subvolumes mounted
VAL also does not maintain any deduplication - each BTRFS subvolume or a snapshot being backed up results in a separate disk in the backup file (as you have noticed, backup might get large).
As Hannes's suggested, you can try using a file-level backup.
Thanks!
-
- Enthusiast
- Posts: 41
- Liked: 3 times
- Joined: Jan 06, 2020 6:58 am
- Full Name: Dmitry Becha
- Contact:
Re: Need advise on Veeam setup for LUKS+BTRFS
Hi Hannes,
Please correct me if I wrong, but VAL Volume based backup can have different objects specifically:
1) Device (block based)
2) mount point (depends on OS in case of BTRFS it's snapshot based)
3) LVM
4) BTRFS (snapshot based)
From what I see (2) does uses BTRFS features and host tools only
I.E VAL creates BTRFS snapshot on the source volume and than copy data over either with "cp -a" or with btrfs send | receive depending on source location. Correct ?
Also looking at what VAL is actually doing, I can see that after initial backup, it in fact does send only diff between previous snapshot and new snapshot
<139688718886656> | Creating child process: btrfs with arguments: send, -p, /tmp/{17d734b0-6e24-44cc-a861-ab448a651dde}/source_root/.veeam_snapshots/{2dd4af3a-3eea-429c-b66d-58aa606f89c6}/2792_Backup, /tmp/{17d734b0-6e24-44cc-a861-ab448a651dde}/source_root/.veeam_snapshots/{2bbc3eb9-0527-4493-a02b-2552725bf566}/2792_Backup
It means that VAL/VBR has capacity/infrastructure to handle parent tracking properly (I.E handling removing of old snapshots and merge of incremental backups to full) .
So VAL can do the same for "foreign" snapshots (not created by VAL) when backing up entire BTRFS pool instead of single mount point. Maybe you can consider it as a "feature" request. I'm also willing to take any experimental patches if such options exists.
If you can also help me with the second part of my questions I would really appreciate that
* Is it possible to customize the name of target object in backup job I.E instead of hostname have "hostname+<custom string>" ?
P.S Finally I don't see how NAS backup can be (even theoretically) faster in case of BTRFS compared to VAL/Volume/mount point based backup, can you please explain ?
Thanks!
Please correct me if I wrong, but VAL Volume based backup can have different objects specifically:
1) Device (block based)
2) mount point (depends on OS in case of BTRFS it's snapshot based)
3) LVM
4) BTRFS (snapshot based)
From what I see (2) does uses BTRFS features and host tools only
I.E VAL creates BTRFS snapshot on the source volume and than copy data over either with "cp -a" or with btrfs send | receive depending on source location. Correct ?
Also looking at what VAL is actually doing, I can see that after initial backup, it in fact does send only diff between previous snapshot and new snapshot
<139688718886656> | Creating child process: btrfs with arguments: send, -p, /tmp/{17d734b0-6e24-44cc-a861-ab448a651dde}/source_root/.veeam_snapshots/{2dd4af3a-3eea-429c-b66d-58aa606f89c6}/2792_Backup, /tmp/{17d734b0-6e24-44cc-a861-ab448a651dde}/source_root/.veeam_snapshots/{2bbc3eb9-0527-4493-a02b-2552725bf566}/2792_Backup
It means that VAL/VBR has capacity/infrastructure to handle parent tracking properly (I.E handling removing of old snapshots and merge of incremental backups to full) .
So VAL can do the same for "foreign" snapshots (not created by VAL) when backing up entire BTRFS pool instead of single mount point. Maybe you can consider it as a "feature" request. I'm also willing to take any experimental patches if such options exists.
If you can also help me with the second part of my questions I would really appreciate that
* Is it possible to customize the name of target object in backup job I.E instead of hostname have "hostname+<custom string>" ?
P.S Finally I don't see how NAS backup can be (even theoretically) faster in case of BTRFS compared to VAL/Volume/mount point based backup, can you please explain ?
Thanks!
-
- Product Manager
- Posts: 14835
- Liked: 3082 times
- Joined: Sep 01, 2014 11:46 am
- Full Name: Hannes Kasparick
- Location: Austria
- Contact:
Re: Need advise on Veeam setup for LUKS+BTRFS
Hello,
as for feature request... PTide is the responsible product manager for that product. He already answered that it is complicated. Well, as I said, I believe your whole setup is too complicated and should be simplified.
Best regards,
Hannes
as for feature request... PTide is the responsible product manager for that product. He already answered that it is complicated. Well, as I said, I believe your whole setup is too complicated and should be simplified.
I said that NAS backup is faster than file based VAL backup. Per default VAL is doing block based backup (this was the first google hit that explains the difference https://www.linkedin.com/pulse/file-lev ... mike-wang/). We have our own change block tracking driver that makes incremental backups fast.P.S Finally I don't see how NAS backup can be (even theoretically) faster in case of BTRFS compared to VAL/Volume/mount point based backup, can you please explain ?
Best regards,
Hannes
-
- Product Manager
- Posts: 6551
- Liked: 765 times
- Joined: May 19, 2015 1:46 pm
- Contact:
Re: Need advise on Veeam setup for LUKS+BTRFS
Right, VAL uses send /receive for BTRFS processing.Also looking at what VAL is actually doing, I can see that after initial backup, it in fact does send only diff between previous snapshot and new snapshot
<139688718886656> | Creating child process: btrfs with arguments: send, -p, /tmp/{17d734b0-6e24-44cc-a861-ab448a651dde}/source_root/.veeam_snapshots/{2dd4af3a-3eea-429c-b66d-58aa606f89c6}/2792_Backup, /tmp/{17d734b0-6e24-44cc-a861-ab448a651dde}/source_root/.veeam_snapshots/{2bbc3eb9-0527-4493-a02b-2552725bf566}/2792_Backup
Would elaborate a little bit on the request, please? Do you want to specify a "foreign" snapshot as an object to back up nad keep COW benefits (incremental backups) in place?So VAL can do the same for "foreign" snapshots (not created by VAL) when backing up entire BTRFS pool instead of single mount point. Maybe you can consider it as a "feature" request. I'm also willing to take any experimental patches if such options exists.
Currently it's not possible. You can try creating a separate backup copy job for each source job instead.* Is it possible to customize the name of target object in backup job I.E instead of hostname have "hostname+<custom string>" ?
Thanks!
-
- Enthusiast
- Posts: 41
- Liked: 3 times
- Joined: Jan 06, 2020 6:58 am
- Full Name: Dmitry Becha
- Contact:
Re: Need advise on Veeam setup for LUKS+BTRFS
When VAL is backing up complete BTRFS pool, it should be possible to configure it to take "parent" information of subvolumes/snapshots into account, instead of doing a full backup of each subvolume/snapshot. Otherwise the backup in my case is 2+ orders of magnitude bigger than the source block device. This should be straightforward taking into account that Veeam has already implemented snapshot handling/maintenance on the backup-repository side (I.E for /mount_point ).Would elaborate a little bit on the request, please? Do you want to specify a "foreign" snapshot as an object to back up nad keep COW benefits (incremental backups) in place?
Right ... That's what I'm currently doing. But it's pain in the neck.Currently it's not possible. You can try creating a separate backup copy job for each source job instead.
* If I have to export backups they end up with the same names (I.E <hostname>Date ).
* if I have to restore from backup-copy it means that I need to restore each subvolume group individually(based on backup-copy jobs), and then merge them together manually.
Who is online
Users browsing this forum: No registered users and 10 guests