Я использую Oracle 11 box в качестве устройства хранения ZFS, и я регулярно делаю снимки файловых систем ZFS через cron
.
Раньше я знал, что если я хотел получить определенный файл из снимка, копия, доступная только для чтения, сохранялась в .zfs/snapshot/{name}/
и я мог просто перейти туда и вытащить файл. Это задокументировано на сайте Oracle.
Однако на днях я пошел сделать это и заметил, что все каталоги ZFS в каталогах моментальных снимков пусты. zfs list -t snapshot
правильно показывает список снимков, которые должны присутствовать, и .zfs/snapshots
правильно содержит каталог для каждого снимка, и в каждом снимке есть каталог для каждой файловой системы ZFS. Однако эти каталоги кажутся пустыми.
Я только что протестировал восстановление, коснувшись файла в малоиспользуемом общем ресурсе и откатившись к последнему почасовому снимку, и, похоже, это сработало нормально. Так что функция отката есть.
Изменил ли Oracle способ создания снимков? Или здесь что-то серьезно не так?
Если у вас есть дочерняя файловая система ZFS, например tank/newfs
. Тогда вы не найдете файлов в tank/newfs
в /tank/.zfs/mysnapshot
папка, только точка монтирования newfs
будет существовать. Если вы хотите получить доступ к файлам, вам нужно искать свои файлы в /tank/newfs/.zfs/mysnapshot
папка.
Снимки, перечисленные в .zfs/snapshot/
автоматически монтируются по запросу по мере их просмотра и автоматически размонтируются, когда больше не используются.
Делая простой ls
в каталоге явно недостаточно, чтобы считаться «спросом». Вам нужно будет cd
в соответствующий каталог и ЗАТЕМ выдайте ls
команда.
Вам также может потребоваться установить snapdir=visible
для файловой системы.