ZFS: Видалення файлів із знімків?


10

Скажімо, у мене є набір даних зі 100 знімків і хочу, щоб rm -rfусі папки з назвою "кеш" були на всіх знімках.

Я хочу фактично звільнити простір, а не просто заховати його в шари знімків, тому зробити клон і видалити з нього, а потім зробити новий знімок, здається, не те, що я хочу.

Будь-який напівавтоматичний спосіб це зробити? Деякі обгортання списку zfs -t знімок, zfs клон, zfs просувають, zfs знімок?

(перехресне повідомлення від /superuser/313197, оскільки я бачу, що це більше матеріалів ZFS)


3
Будь ласка, не перехрещуйтесь, але чекайте, коли ваше питання буде перенесено.
Свен

Крім того, я не впевнений, що це взагалі можливо: знімки є лише для читання, і якщо ви використовуєте пару клонування / просування, ви скасуєте залежність між клонованим знімком і набором даних "HEAD", що, швидше за все, не те, що ви хочу. Дивіться документ тут: download.oracle.com/docs/cd/E19253-01/819-5461/gbcxz/index.html
Sven

Я б зачекав на міграцію, але, здавалося, це була досить велика кількість питань щодо ZFS щодо SU, тому я сумнівався, що він буде автоматично переміщений ... він підходить в обох місцях, тому я дотримувався мета-інструкції, як бути приємним щодо кросу -постінг.
Тіно Дідріксен

@TinoDidriksen, будь ласка, ви можете надати посилання на цей мета-пост? Я хотів би це побачити. Дякую.
nhinkle

2
Повідомлення, на яке ви посилалися, не є офіційною політикою. Існує FAQ на MSO, в якому пояснюється, як вирішувати питання, які користувач вважає тематичними для кількох сайтів. Підсумовуючи, перехресне повідомлення заборонено. Якщо після публікації ви вирішите, що було б краще в іншому місці, і ви не отримали хороших відповідей, ви можете позначити його для міграції або ви можете видалити та повторно запитати, але ви повинні налаштувати публікацію на веб-сайт, на якому ви питати далі. Ви відмовились за тим самим запитанням слово за словом, не чекаючи, що не відповідає вказівкам в обох мета-повідомленнях про перехресну публікацію.
nhinkle

Відповіді:


9

Знімки доступні лише для читання. Якщо вам потрібні ці папки, вам доведеться видалити весь знімок.

Можна створити резервну копію (з чимось на зразок дьогтю), виключаючи папки, що порушують право, та видалити знімок. Очевидно, що резервне копіювання зараз у форматі tar, або будь-якому іншому; але принаймні у вас все ще є резервна копія.


2
Справжній об’єм цього рішення полягає в тому, що тепер вам доведеться зберігати кожен шматочок даних n разів для реального, тоді як знімок зберігає лише модифіковані блоки. Таким чином, ви, швидше за все, потребуєте набагато більше місця, ніж ви заощадили, видаляючи кеші з файлів tar.
Свен

Дедупе допоможе в цьому, але ти прав . Я досить впевнений, що немає жодного способу зміни цих знімків так, як він хоче.
Chris S

У мене є компресія та зменшення gzip-1, тому копіювання навколо ідентичних даних займає лише місце бухгалтерського обліку. Але я, звичайно, хотів би якийсь спосіб уникнути копіювання взагалі.
Тіно Дідріксен

Я сумніваюся, що у випадку декількох файлів tar майже однакових даних допоможе стільки, оскільки додавання або віднімання лише одного байту на початку файлу означало б, що жоден блок не буде ідентичним іншому, що робить дедупцію марною.
Свен

@SvenW Після перечитування питання я бачу, що він робить це, щоб спробувати заощадити місце; з якою моя відповідь насправді не допомагає, якщо він не переміщує файли смоли з комп’ютера, на який він все одно може експортувати знімки. Здається, він застряг навколо.
Chris S

14

Ви можете спробувати наступне:

  1. Клоніруйте найдавніший знімок у нову файлову систему (викликайте його fsnew).
  2. Сприяйте клону ( fsnew), щоб ви могли знищити знімок, на якому базується файлова система.
  3. Видаліть образливі файли.
  4. Створіть знімок fsnew.

Тепер зробіть знімок після, rsyncколи --inplaceпрапор від знімка до fsnew пропускає файли, які ви не хочете. --inplaceПрапор зменшує кількість операцій запису і дозволяє для невеликих знімків.

  1. Створіть знімок fsnew.
  2. Знищіть оригінальний знімок.

Коли це зроблено, у вас повинен бути знімок, fsnewякий відповідає знімкам з оригінальної файлової системи з видаленими неприйнятними файлами.

Якщо у вас є місце на диску, можливо, ви захочете пропустити команду "знищити", поки ваш сценарій не працює правильно.


Також вам потрібно буде передати цю --deleteопцію rsync, інакше ви втратите видалення між знімками. Інакше це чудова ідея.
Тобія

1
  1. Знищіть оригінальний знімок.

Ви не можете знищити оригінал знімка після рекламних дій. Тільки якщо це так, знищіть батьківський набір даних.

приклад (після просування клону).

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 / media / резервне копіювання

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 / media / резервне копіювання

Після цієї "смішної" операції я повинен зробити наступні

zfs знімок media1 / media / backup @ 1

zfs надсилає media1 / media / backup @ 1 | пв | zfs отримують media1 / media / backupnew

zfs знищують media1 / media / backup @ 1

zfs знищують -R media1 / media / backup

zfs перейменувати media1 / media / backupnew media1 / media / backup

АБО інвертувати рекламу. zfs просуває media1 / media / резервне копіювання і після цього видалить клон anuway, тому що у вас буде великий знімок у src-місці))

Тут може допомогти лише rsync / резервне копіювання.


-3

Знімки ZFS для певної файлової системи ZFS можна знайти під .zfs/snapshotsкаталогом у корені файлової системи. Ви повинні мати змогу написати сценарій, який проходить цю папку, та rmфайли, які вам потрібні, і які слід видалити з самих знімків.


3
Знімки ZFS доступні лише для читання. Ви не можете видалити їх.
Свен

Мій поганий, не впевнений, звідки у мене склалося враження, що ти міг би :(
зростати
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.