I'm using a deduplicated filesystem in Linux with an 8kB block size, and noticed that when Veeam runs a merge operation it writes a lot of new blocks (i.e. it is not able to deduplicate the blocks as they are re-written to the filesystem). The repository has the "Align backup file data blocks" and "Decompress backup data blocks before storing" options selected. I have looked in the .vbm file, and can see BlockAlignmentSize="4096" repeated next to each file in the backup chain which would explain why the re-written data is not being deduplicated.
The first thing I would like to confirm is whether I have correctly interpreted the contents of the .vbm file regarding the filesystem block alignment?
If I am correct, I would like to know if Veeam uses the fstat() system call to determine the correct block size for the filesystem alignment, or if it's hard-coded at 4kB?
If it's not hard-coded, what alignment sizes are supported on Linux?
If it is hard-coded, would it be a big change to make it use fstat() to find the correct alignment? I know both 4kB and 64KB alignments are supported in ReFS
This question has been raised in case #02420347