Should I switch to rsync?

In the following examples, the cylinders represent datasets. (They do not represent pools or servers.)


:white_check_mark: This can work :point_down:
Because in the “chain of replications”, there is only one source dataset that has snapshots explicitly created created. The other datasets (along the “chain”) only ever have snapshots “created” by receiving them from a replication. (No snapshots are explicitly created on the datasets themselves.)

flowchart LR

style ds0 fill:#CCFFCC,color:black
style ds1 fill:#CCFFCC,color:black
style ds2 fill:#CCFFCC,color:black
style us1 fill:white,color:black
style us2 fill:white,color:black
style us3 fill:white,color:black

ds0[(Main\nDataset)] -->|replication| ds1[(Backup\nOffice)] -->|replication| ds2[(Backup\nRemote)]

us1(user or\n system) -..->|create snapshots| ds0
us2(user or\n system) -..->|create snapshots| ds0
us3(user or\n system) -..->|create snapshots| ds0

linkStyle 0,1,2,3,4 stroke:green


:white_check_mark: This can also work :point_down:
Because of the reasons explained above, and…
…even though there’s a “fork” in the chain of replication, these incoming snapshots all originate from the original source dataset. No datasets (other than the original source) have snapshots explicitly created on them.

flowchart LR

style ds0 fill:#CCFFCC,color:black
style ds1 fill:#CCFFCC,color:black
style ds2 fill:#CCFFCC,color:black
style ds3 fill:#CCFFCC,color:black
style ds4 fill:#CCFFCC,color:black
style us1 fill:white,color:black
style us2 fill:white,color:black
style us3 fill:white,color:black

ds0[(Main\nDataset)] -->|replication| ds1[(Backup\nOffice)] -->|replication| ds2[(Backup\nRemote)]
ds1 -->|replication| ds3[(Friend's\nHouse)]
ds0 -->|replication| ds4[(Backup\nIn-House)]

us1(user or\n system) -..->|create snapshots| ds0
us2(user or\n system) -..->|create snapshots| ds0
us3(user or\n system) -..->|create snapshots| ds0
linkStyle 0,1,2,3,4,5,6 stroke:green

:x: This will NOT work :point_down:
Because there is a dataset that tries to receive a replication from more than one source dataset. (It is the equivalent of receiving replications from elsewhere and writing new files on the dataset itself.)

flowchart LR

style ds0 fill:#CCFFCC,color:black
style ds1 fill:#CCFFCC,color:black
style ds2 fill:#FFCCCC,color:black
style ds3 fill:#CCFFCC,color:black
style ds4 fill:#CCFFCC,color:black
style ds5 fill:#CCFFFF,color:black
style us1 fill:white,color:black
style us2 fill:white,color:black
style us3 fill:white,color:black
style us4 fill:white,color:black

ds0[(Main\nDataset)] -->|replication| ds1[(Backup\nOffice)] -->|replication| ds2[(Backup\nRemote)]
ds1 -->|replication| ds3[(Friend's\nHouse)]
ds0 -->|replication| ds4[(Backup\nIn-House)]
ds5[(Other\nDataset)] -->|replication| ds2

us1(user or\n system) -..->|create snapshots| ds0
us2(user or\n system) -..->|create snapshots| ds0
us3(user or\n system) -..->|create snapshots| ds0
us4(user or\n system) -..->|create snapshots| ds5

linkStyle 1,4 stroke:red,stroke-width:6px
linkStyle 0,2,3,5,6,7,8 stroke:green

:x: This will also NOT work :point_down:
Because there is a dataset that receives from elsewhere and has its own snapshots explicitly created on itself.

flowchart LR

style ds0 fill:#CCFFCC,color:black
style ds1 fill:#FFCCCC,color:black
style ds2 fill:#CCFFCC,color:black
style us1 fill:white,color:black
style us2 fill:white,color:black
style us3 fill:white,color:black
style us4 fill:white,color:black

ds0[(Main\nDataset)] -->|replication| ds1[(Backup\nOffice)]
ds0 -->|replication| ds2[(Backup\nIn-House)]


us1(user or\n system) -..->|create snapshots| ds0
us2(user or\n system) -..->|create snapshots| ds0
us3(user or\n system) -..->|create snapshots| ds0
us4(user or\n system) -..->|write files and\ncreate snapshots| ds1

linkStyle 1,2,3,4 stroke:green
linkStyle 0,5 stroke:red,stroke-width:6px


*I’m still getting a feel for this “mermaid” plugin. It’s not as seamless as you think. :sweat_smile:

I don’t know why it needlessly “crops” the charts. It makes it more difficult to view. :face_with_diagonal_mouth:

3 Likes