Узнайте Почему ZFS в Linux Ubuntu – Сверхмощная Файловая Система!
Почему так хороша файловая система ZFS в Linux Ubuntu? В этой статье мы рассмотрим ключевые преимущества и особенности ZFS в Ubuntu и объясним, почему она становится все более популярной среди пользователей Linux.
- Преимущества ZFS
- Ограничения ZFS
- Установка ZFS в Ubuntu
- Как создать RAIDz
- Как создать, откатить и удалить моментальные снимки ZFS
- Передача и получение ZFS
- Сжатие данных ZFS
- Заключение
- Вопросы и ответы
- Комментарии
ZFS или Zettabyte File System — это файловая система, изначально созданная в Sun Microsystems для операционной системы Solaris. Она поддерживает большие объёмы данных, объединяет концепции файловой системы, менеджера логических дисков и физических носителей, а также простое управление томами хранения данных.
Представляет собой файловую систему следующего поколения, первоначально разработанную для создания решений NAS с повышенной безопасностью, надежностью и производительностью. В отличие от других систем, ZFS — это 128-битная файловая система, предлагающая практически неограниченную емкость. ZFS является проектом с открытым исходным кодом и лицензируется под CDDL (Common Development and Distribution License).
Характеристика | Описание |
---|---|
Поддержка больших объемов данных | ZFS поддерживает чрезвычайно большие объемы данных, позволяя хранить до эксабайтов информации. |
Интеграция файловой системы и управления томами | Объединяет файловую систему и менеджер томов, обеспечивая упрощенное управление дисковым пространством. |
Мгновенные снимки (snapshots) | Позволяет создавать снимки файловой системы для быстрого восстановления данных без значительных затрат ресурсов. |
Защита от повреждений данных | Встроенные механизмы проверки целостности данных с использованием хеширования, которые предотвращают их повреждение. |
Резервирование данных (RAID-Z) | Обеспечивает различные уровни защиты данных благодаря встроенным функциям RAID-Z для защиты от потерь. |
Сжатие данных | Обеспечивает эффективное сжатие данных, что помогает сэкономить дисковое пространство. |
Клонирование файловых систем | Позволяет создавать клонированные копии непосредственно из снимков для тестирования или разработки. |
Шифрование | Поддерживает шифрование данных для защиты конфиденциальной информации. |
Для использования файловой системы ZFS «из коробки», необходимо установить либо FreeBSD, либо ОС, которая использует illumos-ядро, это ответвление ядра OpenSolaris.
Если хотите использовать ZFS в Ubuntu, необходимо добавить ее поддержку вручную, сделать это не сложно нужно лишь выполнить несколько команд. К этому мы вернемся позже, а сейчас давайте рассмотрим преимущества и недостатки данной файловой системы.
Преимущества ZFS
Из преимуществ файловой системы ZFS можно выделить следующие:
Преимущества. Она имеет упрощённое администрирование.
Управление томами, RAID массивами и файловой системы здесь слито воедино. Для создания томов, уровней избыточности, файловых систем, сжатия, точек монтирования и т.п. вам потребуются всего лишь несколько команд.
Это также упрощает и мониторинг, так как имеется два или даже три меньших уровня, которые следует просматривать.
Преимущества. Следующее из преимуществ обеспечение целостности данных.
При записи данных вместе с ними вычисляется и записывается контрольная сумма. В дальнейшем, когда данные считываются, контрольная сумма вычисляется еще раз. При несовпадении записанных контрольных сумм и считанных данных, обнаруживается ошибка. После этого система попытается исправить такую ошибку автоматически.
Также ZFS отлично масштабируется с возможностью добавления новых устройств, управления кэшем и тому подобного.
Преимущества. Функция копирования при записи.
В большинстве файловых систем данные теряются навсегда после перезаписи. С другой стороны, в ZFS новая информация записывается в другой блок.
Затем метаданные файловых систем обновляются до новой информации после завершения записи. Это приводит к сохранению старых данных в случае сбоя системы или другого вредоносного события.
Преимущества. Имеет встроенные функции хранения
Репликация – процесс создания копии чего-либо.
-
Дедупликация – процесс, устраняющий избыточные копии данных и снижающий нагрузку на хранилище.
Сжатие — это опция, которая сберегает дисковое пространство и добавляет скорость, в процессе количество битов необходимых для представления данных сокращается.
-
Снапшоты — набор эталонных маркеров для данных в конкретный момент времени.
-
Клоны – идентичная копия чего-либо.
Ограничения ZFS
Но, как и у любой файловой системы, у ZFS также имеется своя доля слабых мест.
Ограничения. ZFS страдает от ужасной производительности при заполнении на 80% и более от своей ёмкости.
Это общая проблема файловых систем. Когда пул начинает заполнять 80% ёмкости, необходимо либо расширить эго, либо выполнить миграцию на хранилище большего размера.
Ограничения. Нет возможности сокращать пул.
Вы не можете удалять устройства или vdev из пула после добавления.
Ограничения. Также имеет ограниченность в изменении типа избыточности.
За исключением переключения пула отдельного диска в пул зеркалирования вы не можете изменять тип избыточности. Выбрав тип избыточности, единственным решением будет его разрушения и создания нового, восстанавливая данные из резервных копий или другого расположения.
Установка ZFS в Ubuntu
А сейчас давайте рассмотрим, как установить ZFS в операционной системе Linux на примере ubuntu версии 20,04.
Для установки нам понадобится терминал, для запуска нажмите сочетание клавиш Ctrl + Alt + T.
Затем выполните следующую команду
$ sudo apt update
Для проверки обновлений приложений. После ввода команды система попросит ввести пароль, введите пароль root-а и нажмите Enter.
И для установки следующую:
$ sudo apt install zfsutils-linux
После запуска команды установки для подтверждения введите «y» и нажмите Enter. После чего начнется процесс установки пакета программного обеспечения.
Чтобы проверить установку ZFS, выполните такую команду.
$ zfs –version
Результатом будет вывод версии программы. Теперь можно создать пул хранения c виртуальным устройством vdev.
Пул хранения (storage pool) – это набор одного или нескольких виртуальных устройств, на которых хранятся данные. Пул ZFS, или как его еще называют - Zpool, служит контейнером данных самого высокого уровня во всей системе ZFS. Он используется для создания одной или нескольких файловых систем (наборов данных) или блочных устройств (томов). Эти файловые системы и блочные устройства совместно используют оставшееся пространство пула. Операции по разделению и форматированию будут выполняться системой ZFS.
Виртуальное устройство (vdev), может состоять из одного или более физических устройств. Оно может быть пулом или его частью, может иметь уровень избыточности зеркала, тройного зеркала, RAIDZ, RAIDZ-2 или RAIDZ-3.
RAID-Z — это реализация модифицированного RAID-5. В ZFS он способен устранить ошибки и пробелы в записи, обнаруженные в оригинальном RAID-5. RAID-Z1, требует для работы как минимум три диска: два диска для хранения и один для четности.
RAID-Z2 должен иметь два диска для хранения и два для четности.
RAID-Z3 - как минимум два накопителя и три диска для контроля четности.
Как создать RAIDz
А теперь давайте рассмотрим, как собрать из накопителей RAID-Z. Сперва нужно определить накопители, из которых будет построен массив.
Для проверки подключенных дисков и определения нужных воспользуемся утилитой – fdisk. Выполним следующую команду для построения списка накопителей:
$ sudo fdisk -l
В результате вы увидите список дисков с детальной информацией о каждом из них.
Для примера я покажу как собрать RAIDZ первого уровня, это аналог RAID5 с одним диском четности. Позволяет оставаться массиву в рабочем состоянии и без потери данных при выходе из строя одного накопителя.
У меня есть три жестких диска /dev/sdd, /dev/sde и /dev/sdf. Я создам пул с именем zdata. Для этого выполню такую команду:
$ sudo zpool create ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf
$ sudo zpool create zdata raidz /dev/sdd /dev/sde /dev/sdf
Если появляется какая-либо ошибка, вы можете запустить команду, используя параметр -f после команды zpool create , которая принудительно выполняет команду.
$ sudo zpool create -f ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf
Чтобы узнать точку монтирования после создания пула выполним команду df -h:
$ df –h
Пул смонтирован в /zdata. Чтобы изменить точку монтирования для пула, используя следующий синтаксис.
$ sudo zfs set mountpoint =<path> <pool_name>
В этом примере я использовал /var/pool в качестве новой точки монтирования.
$ sudo zfs set mountpoint=/var/pool zdata
Проверяем новую точку:
$ df –h
В пуле хранения можно создавать каталоги. Для примера я создам каталог с именем mydata
$ sudo zfs create zdata/mydata
И чтобы просмотреть все пулы хранения ZFS в системе выполним такую команду:
$ zpool list
А для того, чтобы узнать конфигурацию и состояние каждого устройства в пуле ZFS, выполните команду статуса.
$ zpool status
Для вывода событий и устранения неполадок введите такую команду
$ sudo zpool events zdata –v
Для добавления еще одного жесткого диска в пул хранения ZFS, нужно выполнить команду с именем диска, который нужно добавить.
$ sudo zpool add zdata /dev/sdb
И после добавления диска посмотрим статус пула:
$ zpool status
Ну и для удаления пула хранения ZFS, нужно выполнить следующую команду.
$ sudo zpool destroy zdata
Как создать, откатить и удалить моментальные снимки ZFS
Данная файловая система позволяет создавать моментальные снимки вашего пула.
Моментальный снимок — это доступная только для чтения копия файловой системы, созданная в определенный момент времени. Можно делать снимки целых наборов данных или пулов. Моментальный снимок включает исходную системную версию файловой системы вместе со всеми изменениями, внесенными после создания моментального снимка. Проще говоря, при создании моментального снимка создается дифференциальная копия только для чтения.
Для создания снимка используется команда - zfs snapshot, за которой следует имя снимка. В этом примере я использовал zdata/mydata для создания моментального снимка.
$ sudo zfs snapshot zdata/mydata@snap1
Для проверки снимка выполним такую команду:
$ zfs list -t snapshot
Если нужно его можно переименовать
sudo zfs rename zdata/mydata@snap1 zdata/mydata@snap2
Вы можете отменить изменения, выполнив операцию отката моментального снимка. Имейте в виду, что вы потеряете все изменения с момента создания моментального снимка.
Для того чтобы откатится к нужному снимку нужно выполнить команду zfs rollback с именем нужного снапшота. Это отменит все действия в данном каталоге что делались после этого снимка.
$ sudo zfs rollback test-pool/mydata@snap1
Эта команда откатит систему к нужной дате.
После завершения отката, вы можете проверить наличие удаленных, после снапшота, файлов в каталоге.
Передача и получение ZFS
Снапшоты можно сохранить в файл и вернуть его обратно, что отлично подходит для создания бэкапов или отправки копий по сети (к примеру, через ssh) для копирования файловой системы.
Команда – send, отправляет снапшот файловой системы, который может быть переслан в файл или на другую машину в потоке. Команда - receive, принимает такой поток и записывает копию снапшота обратно в файловую систему ZFS.
Для примера, создадим еще один снапшот и сохраним его в файл следующей командой:
sudo zfs snapshot -r zdata/mydata@snap3
sudo zfs send zdata/mydata@snap2> ~/mydata-snap.zfs
А затем вернем его, обратно выполнив такую команду:
sudo zfs receive -F zdata/mydata-copy < ~/mydata-snap.zfs
С помощью дополнительных скриптов можно настроить автоматическое создание снапшотов и оправку, кпримеру на сервер по ssh протоколу.
Сжатие данных ZFS
И как уже упоминалось ранее, ZFS позволяет автоматически сжимать данные. Учитывая мощность современных процессоров, это — полезная опция, так как уменьшенный размер данных означает, что меньше данных будут физически прочитаны и записаны, из чего следует более быстрые операции ввода/вывода. ZFS предоставляет широкий набор методов сжатия. По умолчанию используется lz4 (высокопроизводительная замена для lzjb), что дает более быстрые сжатие и распаковку по сравнению с lzjb при несколько большей степени сжатия. Для смены уровня компрессии можно использовать команду:
sudo zfs set compression=gzip-9 zdata
Или даже можно сменить тип сжатия:
sudo zfs set compression=lz4 zdata
Просмотр уровня компрессии:
sudo zfs get compressratio
Самый безопасный выбор — это lz4, так как он значительно быстрее всех остальных вариантов при хорошей производительности.
Заключение
Принимая это все во внимание, ZFS, несомненно, является файловой системой, предлагающей широкий спектр возможностей. Файловая система позволяет не только управлять данными эффективным и инновационным способом, но и в случае непредвиденных ситуация позволит восстановить данные без каких-либо перерывов в работе. Кроме того, в случае сбоя всю систему можно легко восстановить, используя функцию моментального снимка и вернуть ее к определенному моменту времени.
Если у вас возникли проблемы с потерей информации с файловой системы ZFS и RAIDZ, воспользуйтесь программой Hetman RAID Recovery. С ее помощью вы сможете вернуть случайно удаленные файлы с файловой системы ZFS или достать информацию с разрушенного RAIDZ массива. Программа поможет в случае сбоев, форматирования, затирания, и других случаев потери данных.
Характеристика | Описание |
---|---|
Поддержка RAID-массивов | Программа поддерживает различные типы RAID-массивов, включая RAID 0, RAID 1, RAID 5, RAID 10, а также нестандартные конфигурации. |
Автоматическое определение параметров | Автоматически определяет параметры массива, такие как размер блока, порядок дисков и другие важные характеристики. |
Восстановление данных | Возможность восстановления данных с повреждённых или удалённых RAID-массивов, а также восстановления после сбоев или ошибок в конфигурации. |
Предварительный просмотр файлов | Позволяет просматривать файлы перед восстановлением для оценки качества и проверки данных. |
Поддержка различных файловых систем | Поддерживает файловые системы FAT, NTFS, ReFS, HFS+, Ext2/3/4, XFS, XFS и другие. |
Удобный интерфейс | Простой в использовании интерфейс с пошаговым мастером для восстановления данных. |