Если вы решили использовать ZFS на своих устройствах хранения данных, поздравляем! Вы используете одну из самых сложных и многофункциональных файловых систем на планете. И если вы когда-нибудь решите хранить долгосрочные данные, такие как семейные фотографии и видео, серьезно рассмотрите ZFS. При резервной установке, например четырех зеркальных жестких дисках, это абсолютно гарантирует, что вы никогда не потеряете ни одного бита данных из-за немного гниль или других форм ухудшения качества хранения с течением времени, ошибок компьютера и т. д. ZFS может автоматически восстанавливать данные. Сложные алгоритмы, хеши и Деревья Меркла гарантируют целостность данных.
Однако в этом руководстве не рассматривается, почему ZFS является лучшим выбором для архивирования долгосрочных данных. Вместо этого обсуждается, какую пользу вам могут принести снимки и клоны.
Что такое снимки и клоны ZFS?
Снимок – это просто точное изображение состояния ваших данных в определенный момент времени. Например, предположим, что вы работаете над сложным веб-сайтом. Вы храните весь код, базы данных и изображения в своем наборе данных ZFS. Вы меняете дизайн веб-сайта, изменяете некоторые изображения, изменяете некоторые размеры макета и изменяете некоторый код, чтобы все это соответствовало. Если вы хотите вернуться к предыдущему дизайну, вам придется отменить все эти изменения по отдельности. С помощью ZFS вы можете просто сделать снимок текущего проекта, внести все необходимые изменения, а если новый дизайн вас не устраивает, просто вернуться к предыдущему снимку. И да, это правда, есть Git, GitHu
Contents
Что такое снимки и клоны ZFS?
ючающие возможность сделать снимок и откатиться назад. Но ZFS также включает в себя следующие функции:- Снимки являются глобальными. Они создают снимок абсолютно всех данных, включенных в ваш проект.
- Снимки и откаты выполняются практически мгновенно, независимо от размера вашего проекта (даже если его размер составляет сотни гигабайт).
Количество снимков не ограничено. Вы можете использовать «Проект 1», «Проект 2» и «Проект 3» и свободно переключаться между ними, вносить изменения и создавать новый снимок: «Проект 2 – Улучшенный».
Клоны
Хотя снимки по сути представляют собой замороженные состояния данных, к которым можно вернуться, клоны похожи на ветви, начинающиеся из общей точки. Чтобы лучше это понять, представьте себе такой сценарий: вы создаете видео для рекламной кампании. Затем вы делаете снимок этого видео (фактически набора данных ZFS, в котором вы храните свое видео). Теперь вы клонируете этот снимок три раза. Вы передаете «Клон 1» одному сотруднику, «Клон 2» другому сотруднику и «Клон 3» третьему сотруднику. Теперь каждый из них может работать в своем индивидуальном пространстве и вносить желаемые изменения.
Почему это полезно? Видео могут занимать огромные объемы дискового пространства. Для необработанного фильма высокого разрешения могут потребоваться сотни или тысячи ГБ памяти. Если для основного видео требуется 500 ГБ памяти, а трем людям нужно клонировать и работать над различными изменениями, для этого потребуется более 1500 ГБ памяти.
При использовании ZFS для снимка и трех (или более) клонов потребуется не более 501 ГБ дискового пространства. Блоки данных, которые не изменяются (это общее для всех клонов), сохраняются только один раз. Таким образом, в качестве дополнительных данных сохраняются только те различия, которые добавляет каждый редактор. В реальном сценарии вам может потребоваться около 650 ГБ данных для всех трех клонов. Это эффективное использование хранилища и ресурсов, а также правильная изоляция данных, позволяющая каждому редактору работать в свое удовольствие.
Конечно, это полезно во многих других сценариях, когда вам нужно разветвить один и тот же контент в нескольких разных направлениях, даже если требования к дисковому пространству не имеют значения.
Команды, используемые для работы со снимками ZFS
Хотя другие дистрибутивы Linux могут использовать эту файловую систему/менеджер томов, Ubuntu на сегодняшний день предлагает лучшую поддержк
Клоны
Поскольку не у всех пользователей есть целый диск для работы с ZFS, может быть полезно знать, что вы также можете создать пул на пустом разделе с помощью такой команды, какsudo zpool create pool_name /dev/sda3
, где /dev/sda3
— это имя устройства третьего раздела на первом диске.
После того, как вы установите соответствующие пакеты и создайте свой первый набор данных ZFS , вы создадите снимок следующим образом.
Сначала узнайте имя набора данных ZFS, снимок которого вы хотите сделать.
zfs list
В этом примере имя набора данных — data
, а имя снимка — snap1
. Замените эти значения в следующей команде тем, что применимо в вашем случае. Чтобы создать снимок, введите:
sudo zfs snapshot data@snap1
Если в вашем случае набор данных называется videos
и вы хотите назвать свой снимок first
, команда будет такой:
sudo zfs snapshot videos@first
Чтобы откатить изменения и восстановить набор данных до того содержимого, которое было на момент создания снимка, используйте:
sudo zfs rollback data@snap1
Если снимок вам больше не нужен, удалите его с помощью:
sudo zfs destroy data@snap1
Команды, используемые для работы с клонами ZFS
Предполагая, что у вас есть снимок с именем «data@snap1», клонируйте его с помощью:
sudo zfs clone data@snap1 data/clone1
Чтобы удалить клон:
sudo zfs destroy data/clone3
И вы также можете делать снимки клонов.
sudo zfs snapshot data/clone2@snap_of_clone
В будущем, если вы захотите запомнить все созданные вами снимки и клоны, используйте:
zfs list -t all
Заключение
Здесь описаны все основные операции, которые можно выполнять со снимками и клонами ZFS. Возможно, будет полезно знать, что каждый набор данных имеет скрытый каталог под названием «.zfs». С помощью такой команды, как ls /data/.zfs/snapshot/snap1/
, вы можете увидеть состояние