md5sum checks are still running (will be at least 5-6 more hours), but early indicators show the same problem, checksumming directly from the snapshot.
I found a complete text file example.
Contents of the text file on original dataset snapshot (`cat -nv`):
Code:
1
2 file 'MVI_0769.MOV'
3 file 'MVI_0771.MOV'
4 file 'MVI_0772.MOV'
5 file 'MVI_0773.MOV'
6 file 'MVI_0774.MOV'
7 file 'MVI_0775.MOV'
8 file 'MVI_0776.MOV'
9 file 'MVI_0777.MOV'
10 file 'MVI_0778.MOV'
11 file 'MVI_0780.MOV'
12 file 'MVI_0781.MOV'
13 file 'MVI_0782.MOV'
14 file 'MVI_0783.MOV'
15 file 'MVI_0784.MOV'
16 file 'MVI_0785.MOV'
17 file 'MVI_0786.MOV'
18 file 'MVI_0788.MOV'
19 file 'MVI_0790.MOV'
20 file 'MVI_0791.MOV'
21 file 'MVI_0792.MOV'
22 file 'MVI_0793.MOV'
23 file 'MVI_0794.MOV'
24 file 'MVI_0796.MOV'
25 file 'MVI_0797.MOV'
26 file 'MVI_0816.MOV'
27 file 'MVI_0817.MOV'
28 file 'MVI_0820.MOV'
29 file 'MVI_0821.MOV'
30 file 'MVI_0825.MOV'
31 file 'MVI_0827.MOV'
32 file 'MVI_0828.MOV'
33 file 'MVI_0829.MOV'
34 file 'MVI_0833.MOV'
35 file 'MVI_0834.MOV'
36 file 'MVI_0835.MOV'
37 file 'MVI_0836.MOV'
38 file 'MVI_0837.MOV'
39 file 'MVI_0838.MOV'
40 file 'MVI_0839.MOV'
41 file 'MVI_0846.MOV'
42 file 'MVI_0847.MOV'
43 file 'MVI_0848.MOV'
44 file 'MVI_0862.MOV'
45 file 'MVI_0863.MOV'
46 file 'MVI_0864.MOV'
47 file 'MVI_0890.MOV'
48 file 'MVI_0897.MOV'
49 file 'MVI_0898.MOV'
50 file 'MVI_0899.MOV'
51 file 'MVI_0900.MOV'
52 file 'MVI_0901.MOV'
53 file 'MVI_0902.MOV'
54 file 'MVI_0903.MOV'
55 file 'MVI_0904.MOV'
56 file 'MVI_0907.MOV'
57 file 'MVI_0908.MOV'
58 file 'MVI_0909.MOV'
59 file 'MVI_0910.MOV'
60 file 'MVI_0911.MOV'
61 file 'MVI_0912.MOV'
62 file 'MVI_0913.MOV'
63 file 'MVI_0914.MOV'
64 file 'MVI_0917.MOV'
65 file 'MVI_0919.MOV'
66 file 'MVI_0931.MOV'
67 file 'MVI_0932.MOV'
68 file 'MVI_0933.MOV'
69 file 'MVI_0934.MOV'
70 file 'MVI_0935.MOV'
71 file 'MVI_0936.MOV'
Contents of the text file on intermediate (still unencrypted) dataset snapshot (md5 check success):
Code:
1
2 file 'MVI_0769.MOV'
3 file 'MVI_0771.MOV'
4 file 'MVI_0772.MOV'
5 file 'MVI_0773.MOV'
6 file 'MVI_0774.MOV'
7 file 'MVI_0775.MOV'
8 file 'MVI_0776.MOV'
9 file 'MVI_0777.MOV'
10 file 'MVI_0778.MOV'
11 file 'MVI_0780.MOV'
12 file 'MVI_0781.MOV'
13 file 'MVI_0782.MOV'
14 file 'MVI_0783.MOV'
15 file 'MVI_0784.MOV'
16 file 'MVI_0785.MOV'
17 file 'MVI_0786.MOV'
18 file 'MVI_0788.MOV'
19 file 'MVI_0790.MOV'
20 file 'MVI_0791.MOV'
21 file 'MVI_0792.MOV'
22 file 'MVI_0793.MOV'
23 file 'MVI_0794.MOV'
24 file 'MVI_0796.MOV'
25 file 'MVI_0797.MOV'
26 file 'MVI_0816.MOV'
27 file 'MVI_0817.MOV'
28 file 'MVI_0820.MOV'
29 file 'MVI_0821.MOV'
30 file 'MVI_0825.MOV'
31 file 'MVI_0827.MOV'
32 file 'MVI_0828.MOV'
33 file 'MVI_0829.MOV'
34 file 'MVI_0833.MOV'
35 file 'MVI_0834.MOV'
36 file 'MVI_0835.MOV'
37 file 'MVI_0836.MOV'
38 file 'MVI_0837.MOV'
39 file 'MVI_0838.MOV'
40 file 'MVI_0839.MOV'
41 file 'MVI_0846.MOV'
42 file 'MVI_0847.MOV'
43 file 'MVI_0848.MOV'
44 file 'MVI_0862.MOV'
45 file 'MVI_0863.MOV'
46 file 'MVI_0864.MOV'
47 file 'MVI_0890.MOV'
48 file 'MVI_0897.MOV'
49 file 'MVI_0898.MOV'
50 file 'MVI_0899.MOV'
51 file 'MVI_0900.MOV'
52 file 'MVI_0901.MOV'
53 file 'MVI_0902.MOV'
54 file 'MVI_0903.MOV'
55 file 'MVI_0904.MOV'
56 file 'MVI_0907.MOV'
57 file 'MVI_0908.MOV'
58 file 'MVI_0909.MOV'
59 file 'MVI_0910.MOV'
60 file 'MVI_0911.MOV'
61 file 'MVI_0912.MOV'
62 file 'MVI_0913.MOV'
63 file 'MVI_0914.MOV'
64 file 'MVI_0917.MOV'
65 file 'MVI_0919.MOV'
66 file 'MVI_0931.MOV'
67 file 'MVI_0932.MOV'
68 file 'MVI_0933.MOV'
69 file 'MVI_0934.MOV'
70 file 'MVI_0935.MOV'
71 file 'MVI_0936.MOV'
Contents of the text file on destination (encrypted) dataset snapshot (md5 check fail):
Code:
1 ^@^@^AxM-y^E
2 file 'MVI_0769.MOV'^T^@/71^T^@^@^_2^T^@^@^_3^T^@^@^_4^T^@^@^_5^T^@^@^_6^T^@^@^_7^T^@^@^^8^T^@/80^T^@^@^OM-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M-4^@^@^_8M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M- ^@^@^_9M-^L^@^@^^9@^A.81(^@/81(^@^@^^2M-4^@.82M-4^@.82^X^A/82P^@^A^N^X^A.82l^B.83M-p^@.83M-p^@/83x^@^@^_3M-\^@^@^_3M-^L^@^@^_3M-^L^@^@^_3M-^L^@^@^_4P^@^@^_4P^@^@^_4P^@^@^^6M-L^A/86M-\^@^@^_6M-\^@^@^O0^B^@^_8M-L^A^A^_9x^@^@^^9M-H^@.90M-L^A.90M-L^A.90M-4^@.90M-4^@.90M-4^@.90^X^A.90M- ^@/90M- ^@^@^_1M- ^@^@^_1M- ^@^@^_1M- ^@^@^_1M- ^@^@^_1M- ^@^@^OM-d^B^@/91M-^L^@^@^_3x^@^@^_3x^@^@^OM-(^B^@^_9M-(^B^@^_9M-(^B^@^T9M-(^B^_^@^A^@nP^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
Well, this is a bummer. Here are the dataset properties.
Original dataset:
Code:
$ sudo zfs get all vol1/jacob.mcdonald@migration
NAME PROPERTY VALUE SOURCE
vol1/jacob.mcdonald@migration type snapshot -
vol1/jacob.mcdonald@migration creation Mon Jan 31 16:13 2022 -
vol1/jacob.mcdonald@migration used 141K -
vol1/jacob.mcdonald@migration referenced 1.92T -
vol1/jacob.mcdonald@migration compressratio 1.01x -
vol1/jacob.mcdonald@migration devices on default
vol1/jacob.mcdonald@migration exec on inherited from vol1/jacob.mcdonald
vol1/jacob.mcdonald@migration setuid on default
vol1/jacob.mcdonald@migration createtxg 48421091 -
vol1/jacob.mcdonald@migration xattr on default
vol1/jacob.mcdonald@migration version 5 -
vol1/jacob.mcdonald@migration utf8only off -
vol1/jacob.mcdonald@migration normalization none -
vol1/jacob.mcdonald@migration casesensitivity sensitive -
vol1/jacob.mcdonald@migration nbmand off default
vol1/jacob.mcdonald@migration guid 16919260077066763466 -
vol1/jacob.mcdonald@migration primarycache all default
vol1/jacob.mcdonald@migration secondarycache all default
vol1/jacob.mcdonald@migration defer_destroy off -
vol1/jacob.mcdonald@migration userrefs 0 -
vol1/jacob.mcdonald@migration objsetid 87817 -
vol1/jacob.mcdonald@migration mlslabel none default
vol1/jacob.mcdonald@migration refcompressratio 1.01x -
vol1/jacob.mcdonald@migration written 17.1M -
vol1/jacob.mcdonald@migration logicalreferenced 1.94T -
vol1/jacob.mcdonald@migration acltype nfsv4 inherited from vol1/jacob.mcdonald
vol1/jacob.mcdonald@migration context none default
vol1/jacob.mcdonald@migration fscontext none default
vol1/jacob.mcdonald@migration defcontext none default
vol1/jacob.mcdonald@migration rootcontext none default
vol1/jacob.mcdonald@migration encryption off default
vol1/jacob.mcdonald@migration xattr_compat linux default
vol1/jacob.mcdonald@migration org.freebsd.ioc:active yes inherited from vol1
Intermediate dataset:
Code:
$ sudo zfs get all big_scratch/migration/jacob.mcdonald@migration
NAME PROPERTY VALUE SOURCE
big_scratch/migration/jacob.mcdonald@migration type snapshot -
big_scratch/migration/jacob.mcdonald@migration creation Mon Jan 31 16:13 2022 -
big_scratch/migration/jacob.mcdonald@migration used 236K -
big_scratch/migration/jacob.mcdonald@migration referenced 1.91T -
big_scratch/migration/jacob.mcdonald@migration compressratio 1.02x -
big_scratch/migration/jacob.mcdonald@migration devices on default
big_scratch/migration/jacob.mcdonald@migration exec on inherited from big_scratch/migration/jacob.mcdonald
big_scratch/migration/jacob.mcdonald@migration setuid on default
big_scratch/migration/jacob.mcdonald@migration createtxg 184273 -
big_scratch/migration/jacob.mcdonald@migration xattr sa inherited from big_scratch/migration
big_scratch/migration/jacob.mcdonald@migration version 5 -
big_scratch/migration/jacob.mcdonald@migration utf8only off -
big_scratch/migration/jacob.mcdonald@migration normalization none -
big_scratch/migration/jacob.mcdonald@migration casesensitivity sensitive -
big_scratch/migration/jacob.mcdonald@migration nbmand off default
big_scratch/migration/jacob.mcdonald@migration guid 16919260077066763466 -
big_scratch/migration/jacob.mcdonald@migration primarycache all default
big_scratch/migration/jacob.mcdonald@migration secondarycache all default
big_scratch/migration/jacob.mcdonald@migration defer_destroy off -
big_scratch/migration/jacob.mcdonald@migration userrefs 0 -
big_scratch/migration/jacob.mcdonald@migration objsetid 37487 -
big_scratch/migration/jacob.mcdonald@migration mlslabel none default
big_scratch/migration/jacob.mcdonald@migration refcompressratio 1.02x -
big_scratch/migration/jacob.mcdonald@migration written 1.91T -
big_scratch/migration/jacob.mcdonald@migration logicalreferenced 1.94T -
big_scratch/migration/jacob.mcdonald@migration acltype nfsv4 inherited from big_scratch/migration/jacob.mcdonald
big_scratch/migration/jacob.mcdonald@migration context none default
big_scratch/migration/jacob.mcdonald@migration fscontext none default
big_scratch/migration/jacob.mcdonald@migration defcontext none default
big_scratch/migration/jacob.mcdonald@migration rootcontext none default
big_scratch/migration/jacob.mcdonald@migration encryption off default
big_scratch/migration/jacob.mcdonald@migration xattr_compat linux default
big_scratch/migration/jacob.mcdonald@migration org.truenas:managedby 172.16.42.46 inherited from big_scratch/migration
Destination dataset:
Code:
$ sudo zfs get all vol1/jacob.mcdonald_migrated@migration
NAME PROPERTY VALUE SOURCE
vol1/jacob.mcdonald_migrated@migration type snapshot -
vol1/jacob.mcdonald_migrated@migration creation Mon Jan 31 16:13 2022 -
vol1/jacob.mcdonald_migrated@migration used 0B -
vol1/jacob.mcdonald_migrated@migration referenced 1.91T -
vol1/jacob.mcdonald_migrated@migration compressratio 1.02x -
vol1/jacob.mcdonald_migrated@migration devices on default
vol1/jacob.mcdonald_migrated@migration exec on inherited from vol1/jacob.mcdonald_migrated
vol1/jacob.mcdonald_migrated@migration setuid on default
vol1/jacob.mcdonald_migrated@migration createtxg 48427504 -
vol1/jacob.mcdonald_migrated@migration xattr on default
vol1/jacob.mcdonald_migrated@migration version 5 -
vol1/jacob.mcdonald_migrated@migration utf8only off -
vol1/jacob.mcdonald_migrated@migration normalization none -
vol1/jacob.mcdonald_migrated@migration casesensitivity sensitive -
vol1/jacob.mcdonald_migrated@migration nbmand off default
vol1/jacob.mcdonald_migrated@migration guid 16919260077066763466 -
vol1/jacob.mcdonald_migrated@migration primarycache all default
vol1/jacob.mcdonald_migrated@migration secondarycache all default
vol1/jacob.mcdonald_migrated@migration defer_destroy off -
vol1/jacob.mcdonald_migrated@migration userrefs 0 -
vol1/jacob.mcdonald_migrated@migration objsetid 93995 -
vol1/jacob.mcdonald_migrated@migration mlslabel none default
vol1/jacob.mcdonald_migrated@migration refcompressratio 1.02x -
vol1/jacob.mcdonald_migrated@migration written 1.91T -
vol1/jacob.mcdonald_migrated@migration logicalreferenced 1.94T -
vol1/jacob.mcdonald_migrated@migration acltype nfsv4 inherited from vol1/jacob.mcdonald_migrated
vol1/jacob.mcdonald_migrated@migration context none default
vol1/jacob.mcdonald_migrated@migration fscontext none default
vol1/jacob.mcdonald_migrated@migration defcontext none default
vol1/jacob.mcdonald_migrated@migration rootcontext none default
vol1/jacob.mcdonald_migrated@migration encryption aes-256-gcm -
vol1/jacob.mcdonald_migrated@migration encryptionroot vol1/jacob.mcdonald_migrated -
vol1/jacob.mcdonald_migrated@migration keystatus available -
vol1/jacob.mcdonald_migrated@migration xattr_compat linux default
vol1/jacob.mcdonald_migrated@migration org.freebsd.ioc:active yes inherited from vol1
I guess I'll delete the destination dataset and try again, perhaps using lz4 instead of zstd in the destination? But I'm using zstd in the intermediate dataset, and the original dataset is a mix of lz4 and zstd. Perhaps it's a bad interaction between encryption and zstd? I'm grasping at straws here.
If that still fails, I can try again using no encryption on the destination dataset, but that really negates the whole point of this exercise.
Update: I deleted the destination (encrypted) dataset. I'm starting replication again. This time I changed the parent dataset from zstd to lz4, and disabled `Full Filesystem Replication`. The `Include Dataset Properties` is still enabled. Running now... it will be several hours.