Abaixo está minha lista de volumes e instantâneos do ZFS, bem como a origem e o clone de cada um.
Quero excluir todos os instantâneos, mas manter todos os sistemas de arquivos. Como posso fazer isso?
Eu tentei zfs promote
seguir tentando excluir cada sistema de arquivos para muitas combinações diferentes dos sistemas de arquivos. Isso muda em torno de onde os instantâneos "vivem"; por exemplo, zfs promote tank/containers/six
move o instantâneo F
de tank/containers/three@F
para tank/containers/six@F
. Os dados ativos no sistema de arquivos não são modificados (o que eu quero!), Mas ainda não consigo excluir o instantâneo (o que não é o que eu quero).
Um típico zfs destroy
tentativa diz-me que tem clones dependentes, alguns dos quais (os instantâneos) I não querem destruir, mas outros dos quais (os sistemas de arquivos) I não querem destruir.
Por exemplo.
# zfs destroy tank/containers/six@A
cannot destroy 'tank/containers/six@A': snapshot has dependent clones
use '-R' to destroy the following datasets:
tank/containers/five
tank/containers/two@B
tank/containers/two
No exemplo acima, eu não quero destruir tank/containers/five
ou tank/containers/two
, mas se eu tiver zfs promote
cinco e dois, ainda não posso destruir nenhum instantâneo. Há uma solução?
# zfs list -t all -o name,origin,clones
NAME ORIGIN CLONES
tank - -
tank/containers - -
tank/containers/five tank/containers/two@B -
tank/containers/four tank/containers/six@C -
tank/containers/one - -
tank/containers/one@E - tank/containers/three
tank/containers/two tank/containers/six@A -
tank/containers/two@B - tank/containers/five
tank/containers/six tank/containers/three@F -
tank/containers/six@A - tank/containers/two
tank/containers/six@C - tank/containers/four
tank/containers/three tank/containers/one@E -
tank/containers/three@F - tank/containers/six