Скажем, у меня есть набор данных со 100 снимками и я хочу, чтобы rm -rf
все папки с именем «cache» во всех снимках.
Я хочу на самом деле освободить пространство, а не просто спрятать его в слоях снимков, поэтому создание клона и удаление из него, а затем создание нового снимка, кажется, не то, что я хочу.
Любой полуавтоматический способ сделать это? Некоторая обтекание списка zfs -t снимок, клон zfs, продвижение zfs, снимок zfs?
(перекрестная публикация с /superuser/313197, так как я вижу, что это имеет больше материала ZFS)
Ответы:
Снимки доступны только для чтения. Если вам нужно, чтобы эти папки были удалены, вы должны удалить весь снимок.
Вы можете сделать резервную копию (с чем-то вроде tar), исключая поврежденные папки, а затем удалить снимок. Очевидно, что резервная копия теперь находится в tar или любом другом формате; но по крайней мере у вас все еще есть резервная копия.
источник
Вы можете попробовать следующее:
fsnew
).fsnew
), чтобы позволить вам уничтожить снимок, на котором основана файловая система.fsnew
.Теперь foreach snapshot after,
rsync
с--inplace
флагом от snapshot до fsnew, пропускающим файлы, которые вам не нужны.--inplace
Флаг уменьшает количество операций записи и позволяет для небольших снимков.fsnew
.Когда это будет сделано, у вас должен получиться снимок
fsnew
, соответствующий снимкам из исходной файловой системы с удаленными поврежденными файлами.Если у вас есть место на диске, вы можете пропустить команду «уничтожить», пока ваш скрипт не заработает правильно.
источник
--delete
опциюrsync
, иначе вы потеряете удаления, сделанные между снимками. В противном случае это отличная идея.Вы не можете уничтожить исходный снимок после промоакции. Только если это так, уничтожьте родительский набор данных.
пример (после продвижения клона).
zfs уничтожить media1/cheers/backup-auto-20190530.2105-2y-clone@auto-20190530.2105-2y
не может уничтожить 'media1/cheers/backup-auto-20190530.2105-2y-clone@auto-20190530.2105-2y': снимок имеет зависимых клонов
используйте '-R', чтобы уничтожить следующие наборы данных:
media1/media/backup@auto-20190531.1622-2y
media1 / СМИ / резервное копирование
zfs уничтожить media1/media/backup@auto-20190531.1622-2y
zfs уничтожить media1/cheers/backup-auto-20190530.2105-2y-clone@auto-20190530.2105-2y
не может уничтожить 'media1/cheers/backup-auto-20190530.2105-2y-clone@auto-20190530.2105-2y': снимок имеет зависимых клонов
используйте '-R', чтобы уничтожить следующие наборы данных:
media1 / СМИ / резервное копирование
После этой «забавной» операции я должен сделать следующие
снимок zfs media1 / media / backup @ 1
zfs отправляет media1 / media / backup @ 1 | PV | zfs получает media1 / media / backupnew
zfs уничтожить media1 / media / backup @ 1
zfs destroy -R media1 / media / backup
zfs переименовывает media1 / media / backupnew media1 / media / backup
ИЛИ инвертировать продвигать один. zfs продвигает media1 / media / backup и после него удаляет клон, потому что у вас будет большой снимок в src месте))
Только rsync / backup может помочь здесь.
источник
Снимки ZFS для конкретной файловой системы ZFS можно найти в
.zfs/snapshots
каталоге в корне файловой системы. Вы должны быть в состоянии написать сценарий, который пересекает эту папку иrm
файлы, которые вам нужны, которые должны удалить его из самих снимков.источник