Возможно ли, чтобы ZFS делал снимки файловой системы, то есть пула / файловой системы / только при изменении файлов? Можно ли, чтобы ZFS автоматически делала снимки после изменения файла, вместо использования cron или чего-то еще для автоматического создания снимка каждые 5 минут?
Возможно ли это и что это будет связано? Как бы ты это сделал?
Заранее спасибо.
Во-первых, вы делаете снимки не каталогов, а (целых) файловых систем (или томов) с помощью ZFS. Более того, даже несмотря на то, что моментальные снимки очень легкие с ZFS, запуск моментального снимка для каждого изменения файла, вероятно, снизит производительность, если ваша файловая система не имеет действительно низкой скорости обновления. Файл можно обновить с помощью очень большого количества операций записи, каждая из которых создаст моментальный снимок в соответствии с вашими требованиями. Я не уверен, что тысячи или миллионы снимков можно будет сделать.
Несколько вариантов:
1) zfs diff на основе cron (Solaris 11 Express ++) и если что-то изменилось -> Snapshot () 2) dtrace zfs snapshot trigger
Последнего я не делал, но читал об этом. 1), вероятно, самый простой способ что-то сделать, хотя вы можете пропустить некоторые изменения, но у вас не будет снимков без накопления изменений.
С уважением, Роберт
Не могли бы вы написать сценарий, чтобы создать новый снимок, сравнить его с последним снимком и, если ничего не изменилось, просто удалить снимок? Я не уверен, как будет происходить сравнение двух снимков, но похоже, что это должно быть просто.
Предполагая, что вы хотите избежать создания моментальных снимков с неизмененными файлами каждые пять минут, вы можете реализовать запускаемые записи сценария dtrace, которые создают файл флага; затем скрипт, который периодически запускается через cron, который создает моментальный снимок при наличии файла флага. Константин Гонсалес написал запись в блоге, в которой рассказывается о большей части того, что вам может понадобиться для реализации этого: