
zfs snapshot -r tank@20220129 を実行すると、すべてのサブファイルシステムもそのスナップショットを取得します。
すべてのサブファイルシステムを含むタンクの単一のスナップショットを新しいプールに送信するにはどうすればよいでしょうか (スナップショットの履歴ベースはありません)?
zfs send -R tank@20220129 はすべてのサブファイルシステムを送信するだけでなく、すべてのスナップショットも送信します。
(後でそれらのスナップショットをすべて削除することもできますが、完了後に削除するだけで大量の追加送信が必要になる可能性があります。)
zfs send -r 機能はないようです。
答え1
最終編集: おっしゃる通り、再帰は適切に処理できません (クローンについては注意が必要です!! ツリー内の各クローンは個別に作成する必要があります)。継承の現在の値ではなく関数が複製されているという主張は理解できますが、これが最も望ましい値であるユースケースでは苦労します。機能リクエストを作成します。 変更可能なプロパティがデフォルトから変更されると、すべての子は自動的に継承に変更されます。。 アクティブな子に多くの非デフォルトを持つ暗号化ルートと生成キー DS があります。親と子には、すべてまたはセットのプロパティの継承を取得または渡すことをオプトアウトできるプロパティが必要です。その後、zfs send -R -p は期待どおりに動作します。このケースでは、アップストリーム機能が必要です。多くの場合、単一のスナップのみが再帰送信を必要とし、再帰的に作成されたスナップから再帰的にクローンを作成するのと同じであることが期待されるオプションですが、存在しないことに驚きました。
以下のような zfs クローンや何かができると思います。私のオリジナルの「スナップショットが見つかったら、それらをすべて zfs destroy し、スナップショットなしでクローンの zfs send | zfs recv を実行します。」は洗練されておらず、調査も怠慢で、とにかくクローンを作成する必要はなく、次のような for ループだけで済みます。
for ds in $(zfs list -Ho name -r rpool); do \
zfs send ${ds}@20220129 | zfs recv -d newpool; done
ただし、新しいクローン内の 1 つのスナップショットとして新しい zfs snap -r と zfs send -R を使用したクローンも機能します。ただし、再帰的にクローンすることはできないため、いずれにしても同様の for ループが必要になります。または、すべての zfs 履歴を失ってもかまわない場合は、適切なクリーンな受信プールと必要なプロパティを持つマウントされたデータセットに rsync します。
そのため、私は自分のソリューションを拡張しています。これはそれほど簡単でも安全でもなく、ライブではあるがクリティカルではないシステムですぐに実行します。私の場合は、ミラー vdev も分割し、zfs recv でプールと zfs プロパティの変更をいくつか行います。
Zpool と zfs の再帰操作は改善の余地があり、常に悩みの種でした。また、複数の zsys bootfs、zfs-mount-generator、zfs-zed.service を使用した場合のベストプラクティスは明確ではありません (systemctl サスペンド サイクル後に再起動されません。)、起動時に zfs-list.cache/pool の状態を反映しない永続データセット マウント。Cananoical は、ルートでの zfs と zsys の使いやすさの推進を終了したようです。Ubuntu インストーラー オプションだからといって、これで終わりではありません。
for zp in rpool bpool vault; do \
zpool trim -w $zp; zpool scrub -w $zp; \
zfs snap -r ${zp}@b4split; \
done
for zp in rpool bpool vault; do \
zpool attach -w $zp /dev/sda /dev/sde; \
zpool attach -w $zp /dev/sdc /dev/sdf; \
zpool split -w $zp ${zp}-offbakup /dev/sdg /dev/sdh; \
zpool initialize -w ${zp}-offbakup; \
zpool scrub -w ${zp}-offbakup; \
zpool export ${zp}-offbakup; \
done; rest
cat << EOF >> /etc/motd
> IMPORTANT NOTE TO SELF. Pool on zfc-receive with encryption, zstd, new dataset struction for boot enivironments \
Out with ubuntu, snapd!!!, grub, ext4, btrfs, lz4, snapd, systemd, docker, x|X* \
> IN like RSYNC void-linux-install, build zfsbootmenu AND s6 from source \
> wayland lxc libvirt pcie passthrough to stripped win11 for mah Civ-6 and Steam
> EOF
for zp in rpool bpool vault; do \
zfs snap -r $zp@pre-b4move; \
zpool set localhost:PROPERTY-orig $(zpool list -Ho PROPERTY $zp); \
zpool checkpoint $zp;
zpool upgrade $zp (!);
done
for ds in $(zfs -Ho name -r rpool bpool vault); do \
echo "record some original properties for reuse - inherited props belong to parent dataset so revert on recv even with send -R or -p"; \
zfs set localhost:[PROPERTY]_orig=$(zfs -Ho [PROPERTY] $ds); \
done
このハッカーに void linux と zfsbootmenu をインストールする方法と、新しい zfs 送信/受信再帰の後にすべての zsys と systemd zfs を自動マウントする方法を検討します。一貫性のある継承と、zfs 受信での -o desired が非常に重要です。
─# zlsz
bpool/BOOT/garuda com.ubuntu.zsys:last-used 1665060644
bpool/BOOT/kinetic com.ubuntu.zsys:last-used 1664996078
bpool/BOOT/pve30-cli com.ubuntu.zsys:last-used 1664973489
bpool/BOOT/pve30-gnm com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda com.ubuntu.zsys:bootfs yes
rpool/ROOT/garuda/root com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/root com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/root com.ubuntu.zsys:bootfs no
rpool/ROOT/garuda/srv com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/srv com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/srv com.ubuntu.zsys:bootfs no
rpool/ROOT/garuda/var com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/var com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/var com.ubuntu.zsys:bootfs no
rpool/ROOT/garuda/var/cache com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/var/cache com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/var/cache com.ubuntu.zsys:bootfs no
rpool/ROOT/garuda/var/lib com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/var/lib com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/var/lib com.ubuntu.zsys:bootfs no
rpool/ROOT/garuda/var/log com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/var/log com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/var/log com.ubuntu.zsys:bootfs no
rpool/ROOT/garuda/var/tmp com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/garuda/var/tmp com.ubuntu.zsys:last-booted-kernel vmlinuz-linux-lts
rpool/ROOT/garuda/var/tmp com.ubuntu.zsys:bootfs no
rpool/ROOT/kinetic com.ubuntu.zsys:last-used 1664996078
rpool/ROOT/kinetic com.ubuntu.zsys:last-booted-kernel vmlinuz-5.19.0-18-generic
rpool/ROOT/kinetic com.ubuntu.zsys:bootfs yes
rpool/ROOT/pve30-cli com.ubuntu.zsys:last-used 1664973489
rpool/ROOT/pve30-cli com.ubuntu.zsys:last-booted-kernel vmlinuz-5.15.53-1-pve
rpool/ROOT/pve30-cli com.ubuntu.zsys:bootfs yes
rpool/ROOT/pve30-gnm com.ubuntu.zsys:last-used 1665060644
rpool/ROOT/pve30-gnm com.ubuntu.zsys:last-booted-kernel vmlinuz-5.15.60-1-pve
rpool/ROOT/pve30-gnm com.ubuntu.zsys:bootfs yes
rpool/USERDATA/garuda com.ubuntu.zsys:last-used 1665060644
rpool/USERDATA/garuda com.ubuntu.zsys:bootfs-datasets rpool/ROOT/garuda
rpool/USERDATA/kinetic com.ubuntu.zsys:last-used 1664996078
rpool/USERDATA/kinetic com.ubuntu.zsys:bootfs-datasets rpool/ROOT/kinetic
rpool/USERDATA/pve30-cli com.ubuntu.zsys:last-used 1664973489
rpool/USERDATA/pve30-cli com.ubuntu.zsys:bootfs-datasets rpool/ROOT/pve30-cli
rpool/USERDATA/pve30-gnm com.ubuntu.zsys:last-used 1665060644
rpool/USERDATA/pve30-gnm com.ubuntu.zsys:bootfs-datasets rpool/ROOT/pve30-gnm
-
└─# zfs list -o name,used,dedup,secondarycache,sharesmb,acltype,overlay,compression,encryption,canmount,mountpoint,mounted
NAME USED DEDUP SECONDARYCACHE SHARESMB ACLTYPE OVERLAY COMPRESS ENCRYPTION CANMOUNT MOUNTPOINT MOUNTED
bpool 1.94G on metadata off off off lz4 off off /bpool no
bpool/BOOT 1.92G on metadata off off on lz4 off off none no
bpool/BOOT/garuda 250M on metadata off off off zstd-3 off noauto /boot no
bpool/BOOT/kinetic 782M on metadata off off on lz4 off noauto /boot no
bpool/BOOT/pve30-cli 273M on metadata off off on lz4 off noauto /boot no
bpool/BOOT/pve30-gnm 658M on metadata off off on lz4 off noauto /boot no
bpool/grub 5.37M on metadata off off on lz4 off noauto /boot/grub no
rpool 176G off metadata off posix off lz4 off off /rpool no
rpool/LINUX 772M off metadata off posix off lz4 off off / no
rpool/LINUX/opt 765M off metadata off posix off lz4 off noauto /opt no
rpool/LINUX/usr-local 6.95M off metadata off posix on lz4 off noauto /usr/local no
rpool/ROOT 42.4G off metadata off posix off lz4 off noauto /rpool/ROOT no
rpool/ROOT/garuda 19.7G off metadata off posix off zstd-3 off noauto / no
rpool/ROOT/garuda/root 3.56G off metadata off posix off zstd-3 off noauto /root no
rpool/ROOT/garuda/srv 208K off metadata off posix off zstd-3 off noauto /srv no
rpool/ROOT/garuda/var 5.49G off metadata off posix off zstd-3 off off /var no
rpool/ROOT/garuda/var/cache 5.46G off metadata off posix off zstd-3 off noauto /var/cache no
rpool/ROOT/garuda/var/lib 192K off metadata off posix off zstd-3 off off /var/lib no
rpool/ROOT/garuda/var/log 10.1M off metadata off posix off zstd-3 off noauto /var/log no
rpool/ROOT/garuda/var/tmp 15.5M off metadata off posix off zstd-3 off noauto /var/tmp no
rpool/ROOT/kinetic 7.26G off metadata off posix off lz4 off noauto / no
rpool/ROOT/pve30-cli 6.18G off metadata off posix off lz4 off noauto / no
rpool/ROOT/pve30-gnm 9.28G off metadata off posix off lz4 off noauto / no
rpool/USERDATA 13.8G off metadata off posix on lz4 off off none no
rpool/USERDATA/garuda 11.3G off metadata off posix off lz4 off noauto /home no
rpool/USERDATA/kinetic 791M off metadata off posix on lz4 off noauto /home no
rpool/USERDATA/pve30-cli 3.43M off metadata off posix on lz4 off noauto /home no
rpool/USERDATA/pve30-gnm 1.76G off metadata off posix on lz4 off noauto /home no
rpool/data 98.9G off metadata off posix off lz4 off on /data yes
rpool/data/media 4.01G off metadata off posix off lz4 off on /data/media yes
rpool/data/temp 192K off metadata off posix off lz4 off on /data/temp yes
rpool/data/vm-300-disk-0 29.9G off metadata - - - lz4 off - - -
rpool/data/vm-300-disk-1 312K off metadata - - - lz4 off - - -
rpool/data/vm-300-disk-2 128K off metadata - - - lz4 off - - -
rpool/data/zvol 65.0G off metadata off posix off lz4 off on /data/zvol yes
rpool/data/zvol/vm-101-disk-0 3.15M off metadata - - - lz4 off - - -
rpool/data/zvol/vm-101-disk-1 65.0G off metadata - - - lz4 off - - -
rpool/data/zvol/vm-101-disk-2 6.12M off metadata - - - lz4 off - - -
rpool/pve 20.2G off metadata off posix off lz4 off off / no
rpool/pve/var-lib-pve-cluster 912K off metadata off posix on lz4 off noauto /var/lib/pve-cluster no
rpool/pve/var-lib-vz 16.4G off metadata off posix on lz4 off on /var/lib/vz yes
rpool/pve/zfsys 3.73G off metadata off posix off lz4 off on /zfsys yes
vault 759G off all off off off lz4 off off /vault no
vault/devops 306G off all off off off lz4 off off / no
vault/devops/PVE 84.1G off all off off off lz4 off off /var/lib no
vault/devops/PVE/vz 84.1G off all off off off lz4 off on /var/lib/vvz yes
vault/devops/vm 222G off all off off off lz4 off off /vm no
vault/devops/vm/vm-502-disk-0 88K off all - - - lz4 off - - -
vault/devops/vm/vm-502-disk-1 12.7G off all - - - lz4 off - - -
vault/devops/vm/vm-502-disk-2 64K off all - - - lz4 off - - -
vault/devops/vm/vm-510-disk-0 3.08M off all - - - lz4 off - - -
vault/devops/vm/vm-510-disk-1 209G off all - - - lz4 off - - -
vault/devops/vm/vm-510-disk-2 6.07M off all - - - lz4 off - - -
vault/media 453G off all off off off lz4 off off /vault/media no
vault/media/APP 192G off all off off off lz4 off off /share no
vault/media/APP/downloads 15.8G off all off off off lz4 off on /share/downloads yes
vault/media/APP/library_pc 176G off all off off off lz4 off on /share/library_pc yes
vault/media/DOCS 26.6G off all off off off lz4 off off /share no
vault/media/DOCS/personal 26.6G off all off off off lz4 off noauto /share/personal no
vault/media/DOCS/reference 96K off all off off off lz4 off noauto /share/reference no
vault/media/LINUX 1.29G off all off off off lz4 off off /share no
vault/media/LINUX/lxsteam 1.29G off all off off on lz4 off on /home/mike/.local/Steam yes
vault/media/MUSIC 167G off all off off off lz4 off off /share no
vault/media/MUSIC/dj_bylabel 167G off all off off off lz4 off on /share/dj_bylabel yes
vault/media/PHOTO 288K off all off off off lz4 off off /share no
vault/media/PHOTO/albums 96K off all off off off lz4 off noauto /share/albums no
vault/media/PHOTO/public 96K off all off off off lz4 off noauto /share/public no
vault/media/video 66.2G off all off off off lz4 off off /share no
vault/media/video/library 66.2G off all off off off lz4 off on /share/library yes