Вопрос или проблема
У меня есть набор данных ZFS, для которого делаются снимки каждый час. Вчера были внесены изменения в некоторые файлы, которые нужно вернуть, однако в наборе данных происходят изменения, которые не следует отменять.
Каковы мои варианты доступа к снимку, не беспокоя текущую копию его данных? Могу ли я смонтировать снимок в режиме только для чтения на новой точке монтирования?
Прошло некоторое время с тех пор, как я работал с zfs, но вы должны иметь возможность использовать zfs list -t snapshot
, чтобы найти доступные снимки и получить доступ к файлам в специальном .zfs
каталоге под вашей точкой монтирования zfs.
[~]# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
mypool 1.49G 527M 528M /mnt/zfspool
mypool@snap1 28K - 993M -
mypool@snap2 28K - 993M -
mypool@snap3 28K - 993M -
[~]# cd /mnt/zfspool/.zfs/snapshot/snap1
[snap1]# ls
Насколько я помню, снимки уже являются только для чтения, поэтому попытки изменить данные в каталоге снимка должны завершиться неудачей. Если данные меняются в реальной файловой системе, снимок должен увеличиваться, так как он копирует данные до изменения, чтобы сохранить согласованность снимка.
Вам нужно будет zfs clone
выполнить снимок в новое место, чтобы вы могли редактировать снимок (в таком случае это уже не будет снимком).
Как я уже сказал, прошло некоторое время, так что сначала протестируйте…
Да. Вы можете непосредственно смонтировать снимок без предварительной настройки snapdir
:
# mount -t zfs mypool@snap1 /new_mountpoint
Ответ или решение
Чтобы получить доступ к содержимому моментального снимка ZFS без воздействия на текущие данные, вы можете использовать несколько методов, которые не только сохранят целостность текущего набора данных, но и обеспечат безопасный процесс восстановления в соответствии с вашими потребностями.
Способы доступа к снимку ZFS:
-
Просмотр через специальный каталог
.zfs
:
ZFS автоматически создает специальный скрытый каталог.zfs
, который находится в корневом каталоге вашего набора данных. В этом каталоге хранятся все ваши моментальные снимки. Например, можно получить доступ к содержимому конкретного снимка, выполнив следующие команды:# Перейти в каталог набора данных cd /mnt/zfspool/.zfs/snapshot/snap1 # Просмотреть содержимое ls
Данный метод позволяет вам просматривать файлы моментального снимка, не внося изменения в текущие данные.
-
Монтирование снимка в режиме только для чтения:
Вы можете также смонтировать моментальный снимок в отдельную директорию в режиме только для чтения. Это делается с помощью следующей команды:# Монтирование моментального снимка mount -t zfs mypool@snap1 /new_mountpoint
После выполнения этой команды все содержимое моментального снимка будет доступно в папке
/new_mountpoint
. Таким образом, у вас будет возможность изучать или копировать файлы из снимка, не затрагивая основную файловую систему. -
Клонирование моментального снимка:
Если вам нужно внести изменения в данные моментального снимка, вам необходимо создать клон. Однако стоит понимать, что после клонирования этот объект перестанет быть моментальным снимком и станет отдельным набором данных. Для клонирования используйте следующую команду:zfs clone mypool@snap1 mypool/clone
Таким образом, теперь вы можете вносить изменения в клон, не вредя оригинальным данным.
Важные моменты
- Снимки являются неизменяемыми; попытки изменить файл в каталоге снимка не увенчаются успехом. Это обеспечит вам необходимую защиту от случайной порчи данных.
- Если данные в основном наборе изменяются, предыдущие версии этих данных будут сохранены в моментальном снимке, что добавляет уровень защиты ваших важных данных.
- Перед выполнением любых операций рекомендуется осуществить тестирование в лабораторных условиях или на тестовом наборе данных, чтобы избежать нежелательных последствий.
Заключение
В заключение, ZFS предлагает мощные и гибкие инструменты для работы с моментальными снимками, позволяя сохранять целостность данных даже в ситуациях, когда требуется восстановление. Независимо от того, решите ли вы использовать встроенные возможности доступа к снимкам или клонировать их для дальнейшей работы, вы можете быть уверены в том, что ваши текущие данные останутся невредимыми.