En corto
zfs hold keep pool/dataset@snap — zfs destroy falla con dataset is busy. Suelta con zfs release.
Los scripts de retención (zfs destroy -r …@auto-…) no preguntan. Un hold es un candado con nombre sobre un snapshot: destroy falla hasta que sueltas el tag.
Sirve para la snapshot desde la que estás haciendo zfs send, o para la que es el único rollback conocido después de un upgrade.
Poner el hold
| |
Recursivo en todo un árbol (primero snapshot, luego hold):
| |
El tag (keep) es libre, pero único por snapshot. Puedes tener keep y offsite a la vez en el mismo @now.
Qué ves al destruir
| |
Eso es el hold, no un dataset montado. zfs destroy -d marca el snapshot para borrar cuando no queden holds (diferido), no lo ignora.
Listar
| |
| |
Soltar y entonces sí destruir
| |
Si un send largo sigue corriendo, espera a que termine: el hold está precisamente para que el prune no te coma el cursor incremental.
Docs de Oracle (el mecanismo es el mismo en OpenZFS): Holding ZFS snapshots.
Ver también: send a dataset cifrado.