Disons que j'ai un ensemble de données avec 100 instantanés et que je veux rm -rf
tous les dossiers nommés "cache" dans tous les instantanés.
Je veux réellement libérer de l'espace, pas seulement le cacher dans des couches d'instantanés, donc faire un clone et le supprimer, puis prendre un nouvel instantané ne semble pas faire ce que je veux.
Une manière semi-automatique de faire ça? Un peu autour de la liste zfs - instantané, clone zfs, promotion zfs, instantané zfs?
(publication croisée de /superuser/313197 car je vois que cela a plus de choses ZFS)
Réponses:
Les instantanés sont en lecture seule. Si vous avez besoin que ces dossiers disparaissent, vous devez supprimer l'intégralité de l'instantané.
Vous pouvez faire une sauvegarde (avec quelque chose comme tar), en excluant les dossiers incriminés, puis supprimer l'instantané. De toute évidence, la sauvegarde est maintenant au format tar ou autre; mais au moins vous avez toujours une copie de sauvegarde.
la source
Vous pouvez essayer ce qui suit:
fsnew
).fsnew
) pour vous permettre de détruire l'instantané sur lequel le système de fichiers est basé.fsnew
.Maintenant, passez à chaque instantané après,
rsync
avec le--inplace
drapeau de l'instantané pour fsnew sauter les fichiers que vous ne voulez pas. L'--inplace
indicateur réduit le nombre d'écritures et permet des instantanés plus petits.fsnew
.Lorsque cela est fait, vous devez avoir un instantané
fsnew
qui correspond aux instantanés du système de fichiers d'origine avec les fichiers incriminés supprimés.Si vous avez de l'espace sur le lecteur, vous pouvez ignorer la commande "destroy" jusqu'à ce que votre script fonctionne correctement.
la source
--delete
option àrsync
, sinon vous perdrez les suppressions survenues entre les instantanés. Sinon, c'est une excellente idée.Vous ne pouvez pas détruire l'instantané d'origine après une action de promotion. Seulement si c'est le cas, détruisez l'ensemble de données parent.
exemple (après promotion du clone).
zfs destroy media1/cheers/[email protected]
ne peut pas détruire 'media1/cheers/[email protected]': l'instantané a des clones dépendants
utilisez '-R' pour détruire les ensembles de données suivants:
media1/media/[email protected]
media1 / media / sauvegarde
zfs destroy media1/media/[email protected]
zfs destroy media1/cheers/[email protected]
ne peut pas détruire 'media1/cheers/[email protected]': l'instantané a des clones dépendants
utilisez '-R' pour détruire les ensembles de données suivants:
media1 / media / sauvegarde
Après cette opération "drôle", je dois faire les prochaines
zfs snapshot media1 / media / backup @ 1
zfs envoyer media1 / media / backup @ 1 | pv | zfs reçoit media1 / media / backupnew
zfs destroy media1 / media / backup @ 1
zfs destroy -R media1 / media / backup
zfs renommer media1 / media / backupnew media1 / media / backup
OU inverser en promouvoir un. zfs promeut media1 / media / backup et ensuite il supprime le clone anuway, car vous aurez un gros instantané à la place src))
Seul rsync / backup peut vous aider ici.
la source
Les instantanés ZFS d'un système de fichiers ZFS particulier se trouvent dans le
.zfs/snapshots
répertoire à la racine du système de fichiers. Vous devriez pouvoir écrire un script qui traverse ce dossier etrm
contient les fichiers dont vous avez besoin, qui devraient le supprimer des instantanés eux-mêmes.la source