- Введение в файловую систему Z File System (ZFS) для Linux
- Что такое ZFS и для чего я могу ее использовать?
- Неограниченная масштабируемость
- Максимальная целостность
- Объединение дисков
- Установка ZFS
- Настройка ZFS
- Как использовать файловую систему ZFS в Linux
- Настройка ZFS
- Добавить диски в ZFS Zpool
- Удалить пул ZFS
- Проверить статус ZFS
- Что такое ZFS? И почему люди от неё без ума?
- История ZFS
- Что такое ZFS? Чем она особенна?
- Объединённое хранилище
- Copy-on-write
- Снапшоты
- Проверка цельности информации и автоматическая починка
- RAID-Z
- Огромные возможности хранилища
- Как установить ZFS
- Напоследок
Введение в файловую систему Z File System (ZFS) для Linux
ZFS широко используется для хранения данных, любителями NAS и другими гиками, которые предпочитают иметь собственные резервированные системы, а не уповать на облачные.
Что такое ZFS и для чего я могу ее использовать?
Z file system — это свободный менеджер логических томов с открытым исходным кодом, разработанный в компании Sun Microsystems для операционной системы Solaris. Некоторые самые привлекательные его возможности:
Неограниченная масштабируемость
Хорошо, она не бесконечна, но это 128-битная файловая система, которая способна управлять зетабайтами (миллиард терабайт) данных. Неважно, какой размер имеет ваш жесткий диск, ZFS будет пригодна для него.
Максимальная целостность
Для всего, что вы делаете внутри ZFS, рассчитываются контрольные суммы, чтобы обеспечить целостность файлов. Вы можете быть уверены, что не произойдет незаметного повреждения ваших файлов и резервных копий. Кроме того, ZFS в фоне постоянно проверяет целостность ваших данных и, если нужно, выполняет их автоматическое восстановление.
Объединение дисков
Создатели ZFS хотят, чтобы вы использовали дисковое пространство так же, как компьютер использует оперативную память. Если вам нужно больше памяти, вы вставляете в слот еще одну планку и готово. Похожим образом работает ZFS. Если вам нужно больше дискового пространства, вы вставляете еще один жесткий диск и на этом все. Вам нет нужды заботиться о разметке, форматировании, инициализации, или делать что-либо еще — если вам нужен больший дисковый пул, вы просто добавляете диски.
ZFS способна работать с различными уровнями RAID, сохраняя при этом высокую производительность, сравнимую с аппаратными контроллерами RAID. Это позволяет вам сэкономить деньги, упростить настройки и сохранить производительность дисковой системы.
Установка ZFS
Так как в этом руководстве мы затрагиваем только основы, мы не будем устанавливать ZFS в качестве корневой файловой системы. Здесь предполагается, что вы используете ext4 или некоторую другую файловую систему и хотите использовать ZFS для некоторых из вторичных жестких дисков. Ниже приведены команды для установки ZFS в популярных дистрибутивах Linux.
Solaris и FreeBSD могут поставляться с уже установленной ZFS и готовы к ее использованию.
Если у вас какой-либо другой дистрибутив, проверьте сайт zfsonlinux.org и кликните свой дистрибутив в списке «Packages», чтобы получить инструкции по установке ZFS.
В продолжении этого руководства мы собираемся использовать Ubuntu, но вы сожете не переживать по этому поводу, так как команды ZFS одни и те же для различных дистрибутивов.
Инсталляция займет определенное время, но после ее окончания запустите команду
чтобы убедиться, что установка проведена корректно. Вы должны получить вывод типа:
Мы используем свежую установку Ubuntu server с одним жестким диском.
Настройка ZFS
А теперь давайте подключим к компьютеру еще шесть жестких дисков.
Эта команда показала нам шесть дисков, которые мы установили. На данных момент использовать их невозможно, так как они неразмечены.
Как мы уже говорили ранее, одним из преимуществ ZFS является то, что вам не нужно возиться с разделами (хотя вы можете, если хотите). Давайте возьмем для начала три диска и поместим их в пул с помощью команды:
zpool create — это команда, используемая для создания нового пула данных, -f позволяет игнорировать возникающие ошибки (например, если диски уже содержат данные), geek1 — имя создаваемого пула, /dev/sdb /dev/sdc /dev/sdd — жесткие диски, которые мы помещаем в пул.
После создания пула вы можете просмотреть его с помощью команд df или sudo zfs list:
Как вы можете видеть, /geek1 уже смонтирован и готов к использованию.
Если вы хотите посмотреть, какие три диска включены в пул, это можно сделать с помощью команды sudo zpool status:
Итак, мы создали динамический пул объемом 9 ТБ (фактически это RAID 0). Если вы не знакомы с этими понятиями, представьте, что в /geek1 мы моздали файл размером 3 Кб. При этом автоматически 1 Кб будет записан на sdb, 1 Кб на sdc и 1 Кб на sdd. В результате при считывании этого файла каждый диск будет считывать свой фрагмент одновременно, то есть скорость чтения утроится. Но плохая новость в том, что если хоть один из дисков выйдет из строя, мы потеряем весь файл.
Предположим, что для вас защита данных важнее скорости доступа к ним. В этом случае необходимо настроить все иначе. Во-первых, удалим созданный нами пул, чтобы можно было использовать задействованные в нем диски:
Пул удален. Теперь давайте задействуем наши три диска для создания пула RAID-Z, который является значительно улучшенной версией RAID 5, так как он позволяет избежать потери данных с помощью копирования при записи. RAID-Z требует как минимум трех жестких дисков и является компромиссом между RAID 0 и RAID 1. В RAID-Z также имеете повышенную скорость чтения за счет чередования блоков, но при этом обеспечивается безопасность путем параллельного распределения данных. Если один из дисков в вашем пуле откажет, просто замените его и ZFS восстановит все данные на основе информации распределенной на других дисках. К потере данных может привести только одновременный выход из строя двух дисков. Для еще большей надежности вы можете использовать RAID 6 (RAID-Z2 в случае ZFS) с двойным распределением данных.
Для создания пула мы используем ту же команду zpool create, но задаем тип raidz:
Теперь команда df -h показывает, что наш пул размером 9 ТБ уменьшился до 6 Тб, так как 3 Тб используются для параллельного распределения данных. С помощью команды zpool status мы можем выяснить, что наш пул теперь относится к типу RAID-Z.
Чтобы убедиться, насколько просто расширить пул, давайте добавим в него остальные три диска (еще 9 ТБ):
Источник
Как использовать файловую систему ZFS в Linux
Файловая система ZFS невероятно популярна.
В результате многие в предприятии клянутся им в верности и используют его для размещения триллионов байтов данных.
Несмотря на свою популярность, пользователи Linux не смогут наслаждаться этим из коробки.
Вместо этого те, кто хочет проверить это и использовать его в качестве основной файловой системы хранилища, должны будут установить его.
Установка ZFS немного отличается от других файловых систем, и в зависимости от того, что вы используете, может потребоваться небольшое ноу-хау.
Если вы новичок в этой файловой системе, лучше всего идти по маршруту Ubuntu.
Начиная с Ubuntu 16.04, Canonical упрощает работу с ZFS.
Еще лучше, Ubuntu – безусловно самая безопасная реализация ZFS в Linux, с простой настройкой и процессом сборки, который, как известно, очень надежный (в то время как другие дистрибутивы Linux имеют высокий риск нарушения ZFS).
Примечание. Хотя можно использовать ZFS для одного жесткого диска, это не очень хорошая идея, и вы, вероятно, пропустите все функции, которые делают эту файловую систему отличной.
Точкой файловой системы является создание избыточности, путем растяжения данных на нескольких жестких дисках.
Прежде чем продолжить, убедитесь, что у вас более 1 жесткого диска для ZFS.
Настройка ZFS
Файловая система ZFS работает, объединяя множество разных жестких дисков вместе, чтобы создать один большой центр хранения.
Это звучит слишком сложно, и это так. Тем не менее, результат – превосходное хранилище с большим пространством.
Создание новой файловой системы ZFS немного сложнее, чем просто открытие редактора разделов Gparted.
Вместо этого вам нужно будет взаимодействовать с ним на уровне командной строки. В
окне терминала запустите команду lsblk. Запуск команды «list block» выведет все накопители на вашем ПК Linux.
Пройдите и решите, какие жесткие диски использовать для вашего Z-пула, и помните имена. В этом учебнике наши три диска в пуле ZFS: /dev/sdb, /dev/sdc и /dev/sdd.
Затем вам нужно полностью обнулить жесткие диски, выбранные для Z-пула, чтобы у них больше не было данных. Используя команду dd, перезапишите каждый из дисков. Это займет некоторое время.
Примечание: измените /dev/sdX с идентификатором диска, найденным с помощью команды lsblk (sdb и т. д.).
Когда dd закончит работу, запустите команду fdisk.
Запуск fdisk покажет много информации о жестких дисках, включая информацию о файловой системе для каждого.
Просмотрите показания и убедитесь, что ни один из дисков, которые вы удалили, не имеет файловой системы.
Этот шаг имеет решающее значение, поскольку ZFS не использует традиционный формат разбиения.
Если вывод fdisk выглядит хорошо, безопасно создайте новый Z-poll ZFS.
Для базовой настройки Z-пула выполните следующие действия:
Базовая установка позволит большинству пользователей удовлетворить свои потребности в хранилищах.
Однако те, которые ценят свои данные и нуждаются в защите, не должны идти по пути установки с такой базовой настройкой.
Вместо этого подумайте о создании пула ZFS с RaidZ.
Использование RaidZ в сочетании с вашим ZFS-пулом гарантирует, что ваши данные будут избыточными, с множеством резервных копий.
Чтобы создать пул ZFS с RaidZ, запустите:
Чтобы добавить файлы в новый пул хранения ZFS, откройте диспетчер файлов и перейдите в корень файловой системы.
Поместите файлы внутри папки с именем ZFS Zpool.
Добавить диски в ZFS Zpool
ZFS предназначен для хранения большого количества данных, но это не значит, что ваши оригинальные диски не будут заполняться.
Наступит время, когда потребуется больше места для хранения.
К счастью, поскольку ZFS не использует разделы, добавление большего количества хранилища в систему прост.
В этом примере мы добавим еще два диска в Zpool (/dev/sde и /dev/sdf).
Примечание: если ваша установка ZFS не использует RaidZ, удалите ее из команды.
Удалить пул ZFS
Зачастую объемы ZFS ломаются и становятся непригодными.
Когда это произойдет, вам может потребоваться удалить пул хранения.
Чтобы удалить пул хранения, откройте терминал и используйте команду zfs destroy.
Запуск zpool destroy занимает довольно много времени, в зависимости от того, сколько данных находится в вашем пуле хранения.
Вы узнаете, что Zpool полностью уничтожен, когда терминал снова будет доступен для использования.
Проверить статус ZFS
Быстрый способ проверить статус вашего Zpool с помощью команды zpool status.
С его помощью пользователи могут видеть базовое считывание тома ZFS, как он это делает и имеются ли какие-либо ошибки.
Чтобы проверить статус, выполните следующую команду:
Источник
Что такое ZFS? И почему люди от неё без ума?
Сейчас мы обсудим ZFS, продвинутую файловою систему. Мы обсудим как она появилась, что из себя представляет, и почему так популярна в технических кругах и предприятиях.
Хотя я из США, я предпочитаю произносить ZedFS вместо ZeeFS, потому что это звучит круче. Вы же можете выбрать вариант произношения для себя.
Заметка: В этой статье вы увидите, что ZFS повторяется очень много раз. Когда я буду говорить об особенностях и установке, я имею в виду OpenZFS. Пути ZFS (разработанная Oracle) и OpenZFS разошлись, с того момента как Oracle закрыла проект OpenSolaris. (Подробнее дальше в статье.)
История ZFS
Файловая система Z (ZFS) была создана Меттью Ареном и Джефом Бонвиком в 2001. ZFS была разработана, для того чтобы стать следующим поколением файловых систем OpenSolaris от Sun Microsystems. В 2008 ZFS была портирована на FreeBSD. В этом же году началось портирование ZFS на Linux. Однако, с того момента как ZFS начала выпускаться под лицензией CDDL, которая несовместима с GNU GPL, она не может быть добавлена к ядру Linux. Что бы обойти это ограничение, большинство дистрибутивов предлагают методы установки ZFS.
В скоре после того, как Oracle купила Sun Microsystems, код OpenSolaris стал закрыт. Вся последующая разработка ZFS стала закрытой тоже. Большое количество разработчиков ZFS разочаровалось из-за таких изменений. Две трети важных разработчиков ZFS, включая Аренса и Бонвика, покинули Oracle вследствие этого решения. Они присоединились к другим компаниям и создали проект OpenZFS в сентябре 2013. Проект возглавил открытую разработку ZFS.
Вернемся же к проблеме с лицензиями упомянутой выше. С того момента как OpenZFS отделился от Oracle, кому-то может быть интересно, почему они не изменили лицензию совместимую с GPL, так, чтобы включить файловую систему в ядро Linux. Согласно сайту OpenZFS, изменение лицензии влечёт за собой контакт разработчиков которые вносили изменения в релиз OpenZFS (включая тех, кто начал этот проект и код ZFS до OpenSolaris) и получить их разрешение. Это уже почти невозможно (возможно кто-то из них уже умер или их не так легко найти), они решили оставить все как есть.
Что такое ZFS? Чем она особенна?
Как я сказал ранее, ZFS это продвинутая файловая система. Как таковая, она имеет некоторые интересные особенности. Такие, как:
- Объединённое хранилище (Pooled storage)
- Copy-on-write
- Снапшоты
- Проверка цельности информации и автоматическая починка
- RAID-Z
- Максимальный размер файла в 16 Эксабайт (Прим. переводчика: 10^18 байт)
- Максимальный размер хранилища в 256 квадрильонов Зеттабайт (Прим. переводчика: Квадрильон — миллион^4; Зеттабайт — 10^21 байт)
Разберемся же в некоторых из них.
Объединённое хранилище
В отличие от других файловых систем, ZFS совмещает возможности файловой системы и менеджера дисков. Это означает что ZFS может создать файловую систему охватив все диски. Но не только это, можно также добавить хранилище в систему дисков. ZFS займется разделением и форматированием дисков.
Copy-on-write
Copy-on-write это другая интересная особенность. Но большинстве файловых систем, если информация перезаписана, она утрачена навсегда. В ZFS новая информация записывается в отдельный блок. Как только запись завершена, метаданные файловой системы обновляются к точке новой информации. Это гарантирует что если файловая система сломается (или случится что-либо подобное) во время записи, старая информация будет фиксирована. Это означает что системе не нужно запускать fsck после сбоя.
Снапшоты
Copy-on-write приводит к другой интересной вещи в ZFS: снапшоты. ZFS использует снимки, для того чтобы следить за изменениями в файловой системе. Снимок хранит оригинальную версию файловой системы и текущую, в которой все изменения с момента создания снимка. Никакого дополнительного места не используется. Как только новая информация записывается в текущую файловую систему, новые блоки распределяются для её хранения. Если же файл был удален, упоминание о нём из снимка исчезает. Снимки разработаны для слежки за изменениями, но не являются дополнением и не создают файлов.
Снимки могут быть смонтированы в формате read-only для восстановления старой версии файла. Также можно откатить систему к предыдущему снимку. Все изменения сделанные после снимка будут утрачены.
Проверка цельности информации и автоматическая починка
Всякий раз когда новая информация записывается в ZFS, создается чек-сумма (контрольная сумма) для этой информации. Когда информация прочитана, чек-сумма подтверждается. Если чек-суммы не совпадают, ZFS замечает ошибку и попытается её исправить.
RAID-Z
ZFS может поднять RAID без вспомогательного софта. Не удивительно, что ZFS предоставляет свою реализацию RAID: RAID-Z. RAID-Z это по сути вариация RAID-5. Тем не менее RAID-Z разработан так, что бы превзойти RAID-5 в плане ошибки, «все данные и информация о контроле по чётности становится несовместимой после непредвиденной перезагрузки.» Чтобы использовать базовый уровень (RAID-Z1) вам необходимо минимум два диска для хранения и один для контроля по чётности. RAID-Z2 нужно как минимум два диска для хранения и два для контроля по чётности. RAID-Z3 требует два диска для хранения и три для контроля по чётности. Как только диски добавлены к группам RAID-Z они должны быть кратны двум.
Огромные возможности хранилища
Когда ZFS была создана, она была спроектирована, чтобы стать лучшей в своем роде. Во время когда большинство файловых систем были 64-битными, создатели ZFS решили сделать её 128-битной, для будущего подтверждения этого. Это означает, что ZFS предоставляет емкость 16 миллионов миллионов 32 или 64-битных систем. К тому же, Джеф Бонвик (один из создателей) сказал что энергоснабжение полностью заполненного 128-битного пула памяти будет буквально требовать больше энергии чем для вскипания океанов.
Как установить ZFS
Если вы хотите использовать ZFS из коробки, то необходимо установить либо FreeBSD, либо ОС, которая использует illumos-ядро. Illumos это форк ядра OpenSolaris.
На самом деле, поддержка ZFS и для ZFS это главный аспект, почему некоторые опытные пользователи Linux останавливают свой выбор на BSD.
Если вы хотите использовать ZFS на Linux, вы сможете её использовать как файловую систему только для хранения. Насколько мне известно, никакой из дистрибутивов не даёт возможности установить ZFS, так, чтобы она работала сразу. Если вы заинтересованы и хотите попробовать, есть проект ZFS on Linux, который предоставляет несколько туториалов.
Напоследок
В этой статье я рассказал о плюсах ZFS. И сейчас о маленькой проблеме. Использование RAID-Z может дорого обойтись из-за количества дисков нужных для него.
А вы когда-то использовали ZFS? И как она вам? Расскажите об этом в комментариях.
Источник