Скажем, у меня есть набор данных со 100 снимками, и я хочу rm -rf
все папки с именем "cache" во всех снимках.
Я хочу фактически освободить пространство, а не просто скрыть его слоями снимков, поэтому создание клона и удаление из него, а затем создание нового снимка, похоже, не дает того, что я хочу.
Любой полуавтоматический способ сделать это? Некоторые обертки вокруг zfs list -t snapshot, zfs clone, zfs promotion, zfs snapshot?
(кросс-постинг от https://superuser.com/questions/313197 поскольку я вижу, что здесь больше материала ZFS)
Вы можете попробовать следующее:
fsnew
).fsnew
), чтобы вы могли уничтожить снимок, на котором основана файловая система.fsnew
.Теперь для каждого снимка после, rsync
с --inplace
Установите флажок из снимка, чтобы fsnew пропускал ненужные файлы. В --inplace
flag уменьшает количество операций записи и позволяет делать снимки меньшего размера.
fsnew
.Когда это будет сделано, у вас должен быть снимок fsnew
что соответствует снимкам из исходной файловой системы с удаленными ошибочными файлами.
Если у вас есть свободное место на диске, вы можете пропустить команду «destroy», пока ваш скрипт не заработает правильно.
Снимки доступны только для чтения. если ты необходимость эти папки исчезли, тогда вам нужно удалить весь снимок.
Вы можете сделать резервную копию (например, tar), исключив проблемные папки, а затем удалить снимок. Очевидно, что резервная копия теперь в формате tar или в другом формате; но по крайней мере у вас все еще есть резервная копия.
- Уничтожьте исходный снимок.
Вы не можете уничтожить исходный снимок после действия продвижения. Только в этом случае уничтожьте родительский набор данных.
пример (после продвижения клона).
zfs уничтожает носители1/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 / media / backup
zfs destroy media1/media/backup@auto-20190531.1622-2y
zfs уничтожает носители1/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
После этой "забавной" операции я должен сделать следующие
zfs снимок media1 / media / backup @ 1
zfs send media1 / media / backup @ 1 | pv | zfs получает media1 / media / backupnew
zfs уничтожает media1 / media / backup @ 1
zfs destroy -R media1 / media / backup
zfs переименовать media1 / media / backup новый media1 / media / backup
ИЛИ инвертировать продвижение. zfs продвигает media1 / media / backup и после этого удаляет clone anuway, потому что у вас будет большой снимок в src place))
Здесь может помочь только rsync / backup.
Моментальные снимки ZFS для конкретной файловой системы ZFS можно найти в разделе .zfs/snapshots
каталог в корне файловой системы. Вы должны иметь возможность написать сценарий, который будет перемещаться по этой папке и rm
Это те файлы, которые вам нужны, которые должны удалить их из самих снимков.