Jakob Rath
114724b0a4
Replicate all dependencies of a dataset first
...
Assuming we want to replicate the following pool:
```
NAME USED AVAIL REFER MOUNTPOINT ORIGIN
testpool1 1.10M 38.2M 288K /Volumes/testpool1 -
testpool1/A 326K 38.2M 293K /Volumes/testpool1/A testpool1/B@b
testpool1/A/D 303K 38.2M 288K /Volumes/testpool1/A/D -
testpool1/B 35.5K 38.2M 292K /Volumes/testpool1/B testpool1/C@a
testpool1/C 306K 38.2M 290K /Volumes/testpool1/C -
```
Note the clone dependencies: `A -> B -> C`.
Currently, syncoid notices that `A` and `B` are clones and defers syncing them.
There are two problems:
1. Syncing `A/D` fails because we have deferred `A`.
2. The clone relation `A -> B` will not be recreated since the list of deferred datasets does not take into account clone relations between them.
This PR solves both of these problems by collecting all dependencies of a dataset and syncing them before the dataset itself.
---
One problematic case remains: if a dataset depends (transitively) on one of its own children, e.g.:
```
NAME USED AVAIL REFER MOUNTPOINT ORIGIN
testpool1/E 58.5K 38.7M 298K /Volumes/testpool1/E testpool1/E/D@e
testpool1/E/D 37.5K 38.7M 296K /Volumes/testpool1/E/D testpool1/A@d
```
Here, the first run of syncoid will fail to sync `E/D`.
I've chosen to ignore this case for now because
1) it seems quite artificial and not like something that would occur in practice very often, and
2) a second run of syncoid will successfully sync `E/D` too (although the clone relation `E -> E/D` is lost).
2024-06-09 14:13:15 +02:00
Jim Salter
a7e6c2db68
Merge pull request #920 from phreaker0/dataset-cache
...
[sanoid] implemented dataset cache and fix race conditions
2024-04-26 16:28:48 -04:00
Christoph Klaffl
9c0468ee45
write cache files in an atomic way to prevent race conditions
2024-04-24 00:09:40 +02:00
Christoph Klaffl
6f74c7c4b3
* improve performance (especially for monitor commands) by caching the dataset list
...
* list snapshots only when needed
2024-04-23 23:38:47 +02:00
Jim Salter
b31ed6e325
Merge pull request #916 from 0xFelix/zstdmt
...
syncoid: Add zstdmt compress options
2024-04-22 12:14:40 -04:00
Jim Salter
fa2c16d65a
Merge pull request #905 from phreaker0/findoid-relative-path
...
[findoid] support relative paths
2024-04-22 12:13:43 -04:00
Jim Salter
1207ea0062
Merge pull request #904 from phreaker0/tests-restructure
...
test adaptions
2024-04-22 12:13:28 -04:00
Jim Salter
d800e5e17d
Merge pull request #903 from spicyFajitas/regather_snapshots--delete-target-snaps_task
...
fix(syncoid): regather $snaps on --delete-target-snapshots flag
2024-04-22 12:12:58 -04:00
Jim Salter
1ee6815e5e
Merge pull request #910 from phreaker0/improve-output
...
added missing status information about what is done and provide more details
2024-04-22 12:12:28 -04:00
0xFelix
8b7d29d5a0
syncoid: Add zstdmt compress options
...
Add the zstdmt-fast and zstdmt-slow compress options to allow use of
multithreading when using zstd compression.
Signed-off-by: 0xFelix <felix@matouschek.org>
2024-04-20 18:41:43 +02:00
Christoph Klaffl
b4c8e4b499
Merge branch 'master' into improve-output
2024-04-18 14:30:04 +02:00
Jim Salter
45b1ce9e5d
Merge pull request #911 from phreaker0/fix-error-handling
...
handle error output for filtered replications
2024-04-18 08:25:30 -04:00
Christoph Klaffl
6c1e31e551
handle error output for filtered replications
2024-04-18 08:22:37 +02:00
Christoph Klaffl
eb4fe8a01c
added missing status information about what is done and provide more details
2024-04-18 07:42:47 +02:00
Jim Salter
fdbbe28ac7
Merge pull request #909 from phreaker0/socket-rename
...
rename ssh control socket to avoid problem with length limits and con…
2024-04-17 09:11:04 -04:00
Christoph Klaffl
a059054ffb
rename ssh control socket to avoid problem with length limits and conflicts
2024-04-17 08:14:04 +02:00
Christoph Klaffl
d7ed4bdf54
support relative paths
2024-04-05 15:24:42 +02:00
Christoph Klaffl
4e86733c1a
missed debug statement
2024-04-05 15:22:13 +02:00
Christoph Klaffl
7c8a34eceb
* proper order of tests
...
* timing fixes for fast NVME pools
* skip invasive tests by default
2024-04-05 15:20:28 +02:00
Adam Fulton
d08b2882b7
finish rebase to master
2024-04-01 13:16:16 -05:00
Adam Fulton
f89372967f
fix(syncoid): regather $snaps on --delete-target-snapshots flag
2024-04-01 13:12:59 -05:00
Jim Salter
19fc237476
Update INSTALL.md
2024-02-01 15:05:08 -05:00
Jim Salter
d5ce1889d6
Create SECURITY.md
2024-02-01 14:59:43 -05:00
Jim Salter
4e101bbc16
Create CONTRIBUTING.md
2024-02-01 14:52:25 -05:00
Jim Salter
b420048d95
Create CODE_OF_CONDUCT.md
2024-02-01 14:45:33 -05:00
Jim Salter
5de562eb7f
Update README.md
2024-02-01 14:38:45 -05:00
Jim Salter
7940f65941
Update README.md
2024-02-01 13:58:33 -05:00
Jim Salter
6919bc3324
Update README.md
2024-02-01 13:57:02 -05:00
Jim Salter
7c225a1d7b
Merge pull request #818 from Deltik/fix/815
...
syncoid: Sort snapshots by `createtxg` if possible (fallback to `creation`)
2024-02-01 13:13:35 -05:00
Jim Salter
acdc0938c9
Merge pull request #884 from dlangille/master
...
sanoid.conf: document two options for recursive
2024-01-26 14:16:44 -05:00
Jim Salter
e0bd202c41
Merge pull request #856 from Pajkastare/master
...
Fixes jimsalterjrs/sanoid#851
2024-01-26 14:16:14 -05:00
Christoph Klaffl
6667f02d35
Update sanoid.conf
2024-01-25 21:13:00 +01:00
Christoph Klaffl
7dae0e5a9b
Merge branch 'master' into master
2024-01-25 21:12:11 +01:00
pajkastare
01053e6cce
Removed unnecessary comment, no code change
2024-01-24 13:51:24 +01:00
pajkastare
a8c15c977a
Fixes jimsalterjrs/sanoid#851 , updated based on review in discussion thread
2024-01-24 13:32:22 +01:00
Dan Langille
9ed32d177d
sanoid.conf: document two options for recursive
...
zfs and yes are the options, one uses zfs, the other sanoid code
2024-01-15 09:56:47 -05:00
Jim Salter
a5fa5e7bad
Merge pull request #843 from mjeanson/master
...
Fix typos in syncoid documentation
2024-01-13 21:32:08 -05:00
Jim Salter
d60ee1ffc7
Merge pull request #855 from EchterAgo/debian_depends_openzfs_native_deb
...
debian: add openzfs-zfsutils as an alternative to zfsutils-linux
2024-01-13 21:31:50 -05:00
Jim Salter
c30d485383
Merge pull request #872 from Rantherhin/zfs-get
...
fix zfs-get for "--preserve-properties" and tests
2024-01-13 21:30:56 -05:00
Jim Salter
c02defd80b
Merge pull request #841 from thecatontheflat/patch-1
...
Update INSTALL.md
2024-01-13 21:30:38 -05:00
Christoph Klaffl
790ea544ff
Merge branch 'master' into zfs-get
2024-01-13 23:27:38 +01:00
Jim Salter
b100ba43ac
Merge pull request #859 from jan-krieg/master
...
fix "creation"/"guid" regex detection
2024-01-13 16:33:01 -05:00
Christoph Klaffl
0361faac76
Merge branch 'master' into master
2024-01-13 21:56:31 +01:00
Jim Salter
d01eef7555
Merge pull request #846 from jiawen/master-1
...
Fix tiny typo in README.md
2024-01-13 15:47:19 -05:00
Jim Salter
54c2dacd20
Merge pull request #881 from phreaker0/force-delete-skip-root
...
prevent destroying of root dataset which leads to infinite loop
2024-01-13 15:44:18 -05:00
Jim Salter
4e8b881da7
Merge pull request #882 from phreaker0/preserve-properties-handle-special-symbols
...
escape property key and value pair in case of property preservation
2024-01-13 15:41:57 -05:00
Jim Salter
af732daccf
Merge pull request #883 from phreaker0/update-send-recv-options
...
update possible zfs send options
2024-01-13 15:41:41 -05:00
Christoph Klaffl
becddb854f
Merge branch 'master' into preserve-properties-handle-special-symbols
2024-01-13 21:34:45 +01:00
Christoph Klaffl
85e7fca30e
Merge branch 'master' into force-delete-skip-root
2024-01-13 21:29:40 +01:00
Christoph Klaffl
ca6e60b920
Merge branch 'master' into update-send-recv-options
2024-01-13 21:22:51 +01:00