2.1 KiB
2.1 KiB
zfs-test
Scripts for trying out how ZFS works in some simple scenarios.
I ran these scripts on a VM. They will modify the ZFS pool named tank
,
which is the default pool name in ZFS examples, so may be a valid ZFS
pool name on your system.
# Create a test pool named tank backed by a the file /root/tank
fallocate -l 1G /root/tank
zpool create tank /root/tank
cd zfs-test/bin
# dump logs from create-and-measure / copy-all-and-measure into ../logs/
./measure-all
# read ../logs/ and print Markdown table of dataset space used below
./logs-to-table --links
The rows are which script from bin/create-test-setup/
was used to
create the tank/test
dataset. The columns are which script from
bin/copy-snapshot/
was used to copy each snapshot into tank/target
.
The cells are the space used by the tank/target
(or test/test
for
the first column) dataset for that combination.
Create script | orig | rsync-ahvx | rsync-ahvx-sparse | rsync-inplace | rsync-inplace-no-whole-file | rsync-no-whole-file | zfs-diff-move-then-rsync |
---|---|---|---|---|---|---|---|
edit-part-of-file | 1.16M | 2.04M❌ | 2.04M❌ | 2.04M❌ | 1.17M✅ | 2.04M❌ | 1.17M✅ |
empty | 24K | 24K✅ | 24K✅ | 24K✅ | 24K✅ | 24K✅ | 24K✅ |
encrypted-nested | 1.84M | 24K✅ | 24K✅ | 24K✅ | 24K✅ | 24K✅ | 24K✅ |
move-file | 1.04M | 2.04M❌ | 2.04M❌ | 2.04M❌ | 2.04M❌ | 2.04M❌ | 1.04M✅ |
random-1M-file | 1.03M | 1.03M✅ | 1.03M✅ | 1.03M✅ | 1.03M✅ | 1.03M✅ | 1.03M✅ |
zeros-1M-file | 24K | 1.03M❌ | 24K✅ | 1.03M❌ | 1.03M❌ | 1.03M❌ | 1.03M❌ |