For top level dataset A on PUSH pool p1, set up a snapshot task for p1/A
On PULL with pool p2, and a toplevel dataset backup already created and used for various things, create a dataset A, p2/backup/A
Set up a replication task on PUSH for p1/A, with the tickbox for initialise on first run ticked, destination p2/backup
It then starts replicating A snapshots on PUSH to p2/backup/A on PULL without further intervention.
I expect it would work using the destination p2/A, but I prefer not to put my replicated snapshots in the main pool on PULL, so I can't easily test this.
Previously the step of creating p2/backup/A was done by the replication task, as long as p2/backup already existed, but it now appears to be necessary to do it manually.
The guide does not suggest that the top level of the replicated snapshot (pool or dataset name) has to be manually created on PULL for the replication task to work, and, especially for those who have used the previous replication task, this is not obvious.
#1 Updated by Dru Lavigne about 5 years ago
- Status changed from Unscreened to 15
- Assignee changed from Dru Lavigne to Xin Li
Xin, can you comment on this so that the docs can be updated correctly? The current replication docs are here: http://doc.freenas.org/9.3/freenas_storage.html#replication-tasks.
#7 Updated by Roger Hayter almost 5 years ago
Just a comment. I do not know if the behaviour is different if the whole pool on PUSH is to be replicated. I suspect it is different, as the old replication task did not use the name of the PUSH dataset at all, just inserted it in either the PULL root pool or an allocated dataset on PULL, whichever was requested, allowing the whole pool snapshot to adopt the name of the pool or dataset it was replicated to. Whereas if you replicate a snapshot of a child dataset on PUSH, it requires you to create, on PULL, a dataset of the same name as the PUSH dataset you are replicating below the PULL path inserted in the GUI task. At least I believe it does.
Reading 8.3.2 in the guide it is unclear as to any difference between replicating the whole pool or replicating a child dataset of the the pool. The first paragraphs refer to duplicating a dataset, but lower down in 8.3.2 it refers to "the initial replication can take a significant period of time, from many hours to possibly days, as the structure of the entire ZFS pool needs to be recreated on the remote system.", referring to a whole pool replication.
I think you need to establish whether a whole pool replication is indeed treated differently (I can't check now as it would be too destructive to my setup), and then carefully distinguish the two cases, starting with distinguishing the two different choices of snapshot task needed to implement the replication. Then add the need to create the destination dataset in one case.
#9 Updated by Roger Hayter almost 5 years ago
Sorry, another useful comment! In table 8.2a in the guide under "Lifetime" it says "if the snapshot is replicated, it is not removed from the receiving system when the lifetime expires" That is now a successful option in the replication task again so it may or may not be removed at the user's choice.
#13 Updated by Dru Lavigne over 4 years ago
https://github.com/freenas/freenas/commit/37479bdeb47b739d82236e8d88506ee369d9f261 fixes the Table error.
I have still not recieved an answer on your original question so no changes there.