Digamos que tengo un conjunto de datos con 100 instantáneas y quiero rm -rf
todas las carpetas llamadas "caché" en todas las instantáneas.
En realidad, quiero liberar el espacio, no solo esconderlo en capas de instantáneas, así que hacer un clon y eliminarlo y luego tomar una nueva instantánea no parece hacer lo que quiero.
¿Alguna forma semiautomática de hacer eso? ¿Algún ajuste alrededor de la lista zfs -t instantánea, clon zfs, promoción zfs, instantánea zfs?
(publicación cruzada de /superuser/313197 ya que veo que esto tiene más cosas de ZFS)
Respuestas:
Las instantáneas son de solo lectura. Si necesita que se eliminen esas carpetas, debe eliminar toda la instantánea.
Puede hacer una copia de seguridad (con algo como tar), excluyendo las carpetas ofensivas, y luego eliminar la instantánea. Obviamente, la copia de seguridad ahora está en formato tar o lo que sea; pero al menos todavía tienes una copia de seguridad.
fuente
Puedes probar lo siguiente:
fsnew
).fsnew
) para permitirle destruir la instantánea en la que se basa el sistema de archivos.fsnew
.Ahora, para cada instantánea después,
rsync
con la--inplace
bandera de la instantánea para saltear nuevos archivos que no desea. El--inplace
indicador reduce el número de escrituras y permite instantáneas más pequeñas.fsnew
.Cuando se hace esto, debe tener una instantánea
fsnew
que corresponda a las instantáneas del sistema de archivos original con los archivos ofensivos eliminados.Si tiene espacio en la unidad, puede omitir el comando "destruir" hasta que su script funcione correctamente.
fuente
--delete
opción arsync
, de lo contrario perderá las eliminaciones ocurridas entre las instantáneas. De lo contrario, esta es una gran idea.No puede destruir la instantánea original después de promover la acción. Solo si es así, destruya el conjunto de datos padre.
ejemplo (después de promover clon).
zfs destruyen media1/cheers/[email protected]
no puede destruir 'media1/cheers/[email protected]': la instantánea tiene clones dependientes
use '-R' para destruir los siguientes conjuntos de datos:
media1/media/[email protected]
media1 / media / backup
zfs destruye media1/media/[email protected]
zfs destruyen media1/cheers/[email protected]
no puede destruir 'media1/cheers/[email protected]': la instantánea tiene clones dependientes
use '-R' para destruir los siguientes conjuntos de datos:
media1 / media / backup
Después de esa operación "divertida", debo hacer las siguientes
instantánea de zfs media1 / media / backup @ 1
zfs enviar media1 / media / backup @ 1 | pv | zfs recibe media1 / media / backupnew
zfs destruye media1 / media / backup @ 1
zfs destroy -R media1 / media / backup
zfs renombrar media1 / media / backupnuevo media1 / media / backup
O invertir promover uno. zfs promueve media1 / media / backup y después de que elimine el clon en otro momento, porque tendrá una gran instantánea en el lugar src))
Solo rsync / backup puede ayudar aquí.
fuente
Las instantáneas de ZFS para un sistema de archivos ZFS particular se pueden encontrar en el
.zfs/snapshots
directorio en la raíz del sistema de archivos. Debería poder escribir un script que atraviese esta carpeta yrm
los archivos que necesita, que deberían eliminarlo de las instantáneas.fuente