Recursion when remote sync

omgs

Renowned Member
Aug 19, 2016
55
3
73
58
Hi.

I'm dealing with the sync features. I guess that the most usual scenario is to have a local pbs, with all the data to be synced, and one (or more) targets. In the targets, the datastore is initially empty, without any namespace. Then, I find there are two chances: 1) Sync all at the same time (which can be heavy), or 2) perform "partial" syncs, according to the data to be transferred for each part, the time, the load, bandwith, etc. until everything is complete, where 1) will start to happen.

After reading the docs in new 3.3 about syncing and how namespaces are treated, I just wanted to sync a non-existing namespace in the target. Leaving empty the max-depth field defaults to root, which means "syncing the selected namespace to target root namespace" instead of recreating the namespace in the target datastore.

I guess that performing a full sync from an existing namespace in the target might be the only case where "real" (i.e. create non-existing namespaces) recursion happens. So, in case of a "partial" sync, the starting namespace must exist on the target.

Is this true?


Thanks in advance.
 
In the targets, the datastore is initially empty, without any namespace.
Please note: each datastore has the default root namespace, which is always guaranteed to be present.

Then, I find there are two chances: 1) Sync all at the same time (which can be heavy), or 2) perform "partial" syncs, according to the data to be transferred for each part, the time, the load, bandwith, etc. until everything is complete, where 1) will start to happen.
Only for the initial sync all namespaces, groups and backup snapshots will be synced. For subsequent runs, only the newer, content, not yet present on the target will be synced. This is true for both sync directions. Further, you can limit what contents to sync by setting include/exclude filters for sync jobs, selecting specific sub-namespaces and namespace depth, as well as define transfer last value to only sync the last n snapshots of a group.

I just wanted to sync a non-existing namespace in the target.
The source and target namespaces have to exist for the respective site, only sub-namespaces will be created by the sync job on-demand, if the user has the required permissions to do so.

Leaving empty the max-depth field defaults to root, which means "syncing the selected namespace to target root namespace" instead of recreating the namespace in the target datastore.
Max depth defines how deep (number of levels) the sync job will recurse into sub-namespaces.

I guess that performing a full sync from an existing namespace in the target might be the only case where "real" (i.e. create non-existing namespaces) recursion happens. So, in case of a "partial" sync, the starting namespace must exist on the target.
As already stated above, source and target namespace must pre-exists on the respective sites, only sub-namespaces will be created on demand if the sync job user has the privileges to do so.

Is this true?
I hope above comments helped to clarify your concerns.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!