
Если мы выполним zfs snapshot -r tank@20220129, все подфайловые системы также получат этот снимок.
Как отправить этот единственный снимок танка со всеми подсистемами в новый пул (без исторической базы снимков)?
Хотя zfs send -R tank@20220129 отправит все подсистемы файловой системы, она также отправит все моментальные снимки.
(Позже мы могли бы удалить все эти снимки, но это может привести к огромному объему дополнительной отправки данных, которую придется удалить после завершения.)
Похоже, что функционал zfs send -r отсутствует.
решение1
Последняя правка: вы правы, рекурсия не обрабатывается должным образом (заметьте для клонов!! Каждый в дереве нужно делать отдельно). Я понимаю утверждение, что наследование заключается в том, что реплицируется функция, а не текущее значение наследования, но я борюсь с вариантами использования, где это наиболее желаемое значение. Я сделаю запрос на функцию. Когда любое изменяемое свойство изменяется со значения по умолчанию, все дочерние элементы автоматически изменяются на наследование. У меня есть шифрующий корень и ген ключ ds со многими нестандартными значениями для активных потомков. Родители и потомки должны иметь свойство, чтобы иметь возможность отказаться от получения или передачи наследования для всех или набора свойств. Тогда zfs send -R -p будет действовать ожидаемым образом. В вашем случае нужна функция upstream, часто только одиночные снимки хотят рекурсивной отправки и, будучи одинаковыми, рекурсивно создавать клоны из рекурсивно созданного снимка — ожидаемая опция, которую я удивился, не обнаружив ее.
Я почти уверен, что вы могли бы сделать клон zfs или что-то вроде этого ниже, нет моего оригинала "Если снимки встречаются, просто zfs уничтожает их все; затем делает ваш zfs send | zfs recv клона без каких-либо снимков". Что было неэлегантно, неисследованно и лениво, и вам в любом случае не нужно клонировать, просто цикл for, как так
for ds in $(zfs list -Ho name -r rpool); do \
zfs send ${ds}@20220129 | zfs recv -d newpool; done
Но клон также будет работать, с новым zfs snap -r и zfs send -R как только один снимок в новом клоне. Но вы не можете клонировать рекурсивно, поэтому в любом случае понадобится аналогичный цикл for. Или rsync его в хороший чистый принимающий пул и смонтированные наборы данных с желаемыми свойствами, если вы не против потерять всю историю zfs.
Поэтому я расширяю свое решение, потому что это не так просто и безопасно, и я скоро сделаю это на рабочей, но не критической системе. В моем случае я также разделю свои зеркальные vdev и внесу некоторые изменения в свойства пула и zfs на zfs recv.
Zpool и рекурсивные операции zfs могли бы сделать с impoving всегда были баг-медведем. И неясно, как лучше всего работать с несколькими zsys bootfs, zfs-mount-generator, zfs-zed.service (который не перезапускается после цикла приостановки systemctl!), постоянные монтирования наборов данных, которые не отражают состояние zfs-list.cache/pool при загрузке! Cananoical, похоже, закончили продвигать zfs в root и удобство использования 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 в этот хакерский сбор и все zsys и systemd zfs автомонтирования после новой рекурсии отправки/получения zfs. Имея последовательное наследование, и -o желаемый на zfs receive так важен.
─# 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