
Se zfs snapshot -r tank@20220129, todos os subsistemas de arquivos também obterão esse instantâneo.
Como enviar aquele único instantâneo do tanque com todos os sub-fs para um novo pool (sem base histórica de instantâneos)?
Embora zfs send -R tank@20220129 envie todos os sub-fs, ele também enviará todos os instantâneos.
(Posteriormente, poderíamos excluir todos esses instantâneos, mas isso poderia representar uma enorme quantidade de envio extra apenas para excluir após a conclusão.)
Parece não haver funcionalidade zfs send -r.
Responder1
Edição final: você está correto, você não pode recursão não tratada bem (nota para clones!! Cada um na árvore precisa ser feito separadamente) Eu entendo a afirmação de que a herança da função está sendo replicada em vez do valor atual da herança, mas tenho dificuldade com casos de uso em que este é o valor mais desejado. Estarei fazendo uma solicitação de recurso. Quando qualquer propriedade modificável muda do padrão, todos os filhos mudam automaticamente para herdados. Eu tenho uma criptografia e uma chave gen ds com muitos padrões não padronizados para os filhos ativos. Pais e filhos devem ter uma propriedade para poder optar por não receber ou transmitir herança para todas ou algumas propriedades. Então zfs send -R -p agiria da maneira esperada. Seu caso precisa de um recurso upstream, muitas vezes apenas snaps únicos desejam envio recursivo e ser o mesmo para criar clones recursivamente a partir de um snap criado recursivamente é uma opção esperada que fiquei surpreso ao descobrir que não estava presente.
Tenho certeza que você poderia fazer um clone do zfs ou algo assim abaixo, não meu original "Se os instantâneos aparecerem, apenas o zfs destruirá todos eles; então faça o seu zfs enviar | zfs recv do clone sem nenhum instantâneo." O que foi deselegante, não pesquisado e preguiçoso e você não precisa clonar de qualquer maneira, apenas um loop for assim
for ds in $(zfs list -Ho name -r rpool); do \
zfs send ${ds}@20220129 | zfs recv -d newpool; done
Mas um clone também funcionaria, com um novo zfs snap -r e zfs send -R como apenas um instantâneo no novo clone. Mas você não pode clonar recursivamente, então precisaria de um loop for semelhante de qualquer maneira. Ou sincronize-o novamente com um pool de recebimento limpo e agradável e conjuntos de dados montados com as propriedades desejadas, se você não se importar em perder todo o histórico do zfs.
Então, estou expandindo minha solução porque não é tão fácil ou seguro e farei isso em um sistema ativo, mas não crítico em breve. No meu caso, também dividirei meus vdevs espelhados e farei algumas alterações nas propriedades do pool e do zfs no zfs recv.
As operações recursivas Zpool e zfs poderiam ajudar a melhorar sempre foi um problema. E não há práticas recomendadas claras com vários zsys bootfs, zfs-mount-generator, zfs-zed.service (que não é reiniciado após um ciclo de suspensão do systemctl!), montagens de conjuntos de dados persistentes que não refletem o estado de zfs-list.cache/pool na inicialização! A Cananoical parece ter concluído seu esforço para o zfs na usabilidade do root e do zsys. Não acabou só porque é uma opção de instalação do 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
Descubra como instalar void linux e zfsbootmenu neste hackery e todas as montagens automáticas zsys e systemd zfs após uma nova recursão de envio/recebimento zfs. Ter uma herança consistente e -o desejado no zfs é tão importante.
─# 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