Hi all
I already read and know different articles and posts of different people like
In this article a bit more about that in combination with Veeam Cloud Connect.
Goal :
My goal is to setup a new Veeam Cloud Connect infrastructure for multiple hundreds of customers.
Setup :
The setup of the Veeam Cloud Connect is a infrastructure that consists of several SOBR’s that consists of multiple extents (performant block-storage physical servers with REFS - 64K) in a performance tier in 1 datacenter and a capacity tier with object storage (performant physical object storage devices) in another datacenter with using the copy-mode and immutability.
Of course there is a performant interconnection between the 2 datacenters.
Advantages of this setup :
There are a lot of advantages in my opinion in using that setup :
- we use 2 datacenters and all data is being copied from 1 datacenter to another datacenter
- if one performance extent falls out - no problem all restore points are still available to restore from the customer using the corresponding restore point at the object storage
- using the copy-mode to object storage with immutability, it seems to the tenant that all their restore points are immutable because not aware that the SP is using that setup
- very performant because very performant block storage is used as the primary cloud storage
- when there is an issue with the object storage, that has no direct impact to the customer
- there are no egress costs and API costs because using on-premise (in a datacenter) own object storage devices
- very scalable block-storage : just putting extra extents if needed
- very scalable object-storage : just putting extra object storage devices if needed
- ...
Recommendations :
A recommendation from almost all object storage vendors is to use 4MB or even 8MB block size instead of the default recommended 1MB block size.
Why is that?
That’s because the throughput and performance is higher with larger block sizes because of having less objects instead of using smaller block size that results in much higher number of objects on the object storage.
Problem :
The problem is that you can’t set the block size on a copy-job or offload-job (SOBR towards object storage), …
The only location where you can set the block size is on a primary backup job. All secondary copy-jobs or offload-jobs (SOBR) will use that block size for that particular VM/instance that is being used on the primary backup job.
In case of Veeam Cloud Connect, almost every tenant is using on-premise primary backups and a copy to the Veeam Cloud Connect to have a offsite and immutable copy.
OK, fine : then we set the block size of the primary backup-job to 4MB instead of the recommended (by Veeam) 1MB block size and run an active full so the 4MB block size is active on the primary repository.
Result :
I have done several tests with several kinds of contents and it is each time more or less the same result.
The full backup is more or less the size regarding the size at the primary repository and of course also on the Veeam Cloud Connect performance tier.
BUT, as expected the incremental backups are much bigger in size (as expected) when using 4MB block size instead of 1MB block size!
I knew that this would result in higher incremental backups, but the difference is much higher than expected. I even had incremental backups that were more than 200% bigger in size !!!
An overview :
The job consists of 4 VMs (a Citrix server, a domain controller, a management server and a SQL server)
- 1MB : full is 320GB and incremental is 16GB
- 4MB : full is 320GB and incremental is 42GB !!!
Result :
Therefore it’s in my opinion impossible and not recommended to use 4MB block size in combination with Veeam Cloud Connect that is using object storage as a capacity tier.
And IMHO also in other cases with using object storage as a secondary repository.
This because :
- it consumes much more storage at the customer site (primary on-premise repository)
- much more data needs to be transferred over the WAN (in Belgium the upload bandwidth is often a bottleneck)
- it consumes much more storage at the SP on the performance tier
- because of using much more storage at the SP, the costs are higher for the customer because of using more cloud storage
- more data needs to be transferred to the capacity tier
All those disadvantages in result to have more performant object-storage and a less number of objects...
Ideal solution - feature request :
Therefore it should be ideal that the block size could be changed on-the-fly…
So you could set a different block size on a copy job or offload job (SOBR) than is being used at the primary job.
Now the last chain (that is often object storage) depends totally of the block size on the primary size.
Also as a SP, you can’t control the block size that is going to the Veeam Cloud Connect infrastructure.
So I think there is some room for improvement.
This especially because all big object storage vendors are really recommending setting the block size on 4MB or higher.
Looking forward to some improvement in that.
Feedback :
What are your experiences with those topics?
Feel free to reply.
regards
Nico