ZFS

Концепции и руководство ZFS

Концепции и руководство ZFS

 ZFS: концепции и руководство

В вашем стремлении к целостности данных использование OpenZFS неизбежно. На самом деле, было бы весьма прискорбно, если бы вы использовали что-либо, кроме ZFS для хранения ваших ценных данных.  Однако многие люди не хотят его опробовать. Причина в том, что файловая система корпоративного уровня с широким набором встроенных функций, ZFS должна быть сложной в использовании и администрировании.  Ничто не может быть дальше от истины. Использовать ZFS настолько просто, насколько это возможно. С горсткой терминологии и еще меньшим количеством команд вы готовы использовать ZFS где угодно - от предприятия до домашнего / офисного NAS.

По словам создателей ZFS: «Мы хотим сделать добавление хранилища в вашу систему таким же простым, как добавление новых модулей RAM.”

Позже мы увидим, как это делается. Я буду использовать FreeBSD 11.1 для выполнения приведенных ниже тестов команды и базовая архитектура аналогичны для всех дистрибутивов Linux, поддерживающих OpenZFS.

Весь стек ZFS может быть размещен в следующих слоях:

Zpool создать

Для начала давайте начнем с установки, где у нас есть шесть дисков по 20 ГБ ада [1-6]

$ ls -al / dev / ada?

В ada0 это место, где установлена ​​операционная система. Остальное будет использовано для этой демонстрации.

Имена ваших дисков могут отличаться в зависимости от типа используемого интерфейса. Типичные примеры включают: da0, ada0, acd0 а также CD.  Заглядывая внутрь/ devдаст вам представление о том, что доступно.

А zpool создан zpool create команда:

$ zpool create OurFirstZpool ada1 ada2 ada3 # А затем выполните следующую команду: $ zpool status 

Мы увидим аккуратный вывод, дающий нам подробную информацию о пуле:

Это простейший zpool без избыточности или отказоустойчивости… Каждый диск - это свой собственный vdev.

Тем не менее, вы все равно получите все преимущества ZFS, такие как контрольные суммы для каждого сохраняемого блока данных, чтобы вы могли, по крайней мере, определить, повреждены ли хранимые вами данные.

Файловые системы, a.k.наборы данных, теперь могут быть созданы поверх этого пула следующим образом:

$ zfs создает OurFirstZpool / dataset1 

Теперь воспользуйтесь знакомым df -h команда или запустить:

Список $ zfs

Чтобы увидеть свойства вашей вновь созданной файловой системы:

Обратите внимание, как все пространство, предлагаемое тремя дисками (vdevs), доступно для файловой системы. Это будет верно для всех файловых систем, которые вы создаете в пуле, если мы не укажем иное.

Если вы хотите добавить новый диск (vdev), ada4, вы можете сделать это, запустив:

$ zpool добавить OurFirstZpool ada4

Теперь, если вы видите состояние вашей файловой системы

Доступный размер теперь увеличился без каких-либо дополнительных хлопот по увеличению раздела или резервному копированию и восстановлению данных в файловой системе.


Виртуальные устройства - Vdevs

Vdev являются строительными блоками zpool, большая часть избыточности и производительности зависит от того, как ваши диски сгруппированы в эти, так называемые, vdev . Давайте посмотрим на некоторые из наиболее важных типов vdev:

1. RAID 0 или полосы

Каждый диск действует как собственный vdev. Нет избыточности данных, и данные распределяются по всем дискам. Также известен как чередование. Отказ одного диска будет означать, что весь zpool станет непригодным для использования. Полезное хранилище равно сумме всех доступных запоминающих устройств.

Первый zpool, который мы создали в предыдущем разделе, - это RAID 0 или чередующийся массив хранения.

2. RAID 1 или зеркало

Данные зеркалируются между пдиски. Фактическая емкость vdev ограничена необработанной емкостью самого маленького диска в этом п-дисковый массив. Данные зеркалируются между п дисков, это означает, что вы можете выдержать выход из строя п-1 диски.

Чтобы создать зеркальный массив, используйте ключевое слово mirror:

$ zpool создать зеркало резервуара ada1 ada2 ada3

Данные, записанные в бак zpool будет зеркалирован между этими тремя дисками, а фактическое доступное хранилище будет равно размеру самого маленького диска, который в данном случае составляет около 20 ГБ.

В будущем вы можете захотеть добавить больше дисков в этот пул, и вы можете сделать две вещи. Например, zpool бак имеет три диска, отражающие данные как одно зеркало vdev-0:

Вы можете добавить дополнительный диск, скажем ada4, чтобы отразить те же данные. Это можно сделать, выполнив команду:

$ zpool прикрепить бак ada1 ada4

Это добавит дополнительный диск к vdev, у которого уже есть диск ada1 в нем, но не увеличивать доступное хранилище.

Точно так же вы можете отсоединить диски от зеркала, запустив:

$ zpool отсоединяемый резервуар ada4

С другой стороны, вы можете добавить дополнительный vdev, чтобы увеличить емкость zpool. Это можно сделать с помощью команды zpool add:

$ zpool добавить зеркало бака ada4 ada5 ada6


Вышеупомянутая конфигурация позволит чередовать данные по vdevs mirror-0 и mirror-1. В этом случае вы можете потерять 2 диска на vdev, и ваши данные останутся нетронутыми. Общее полезное пространство увеличивается до 40 ГБ.

3. RAID-Z1, RAID-Z2 и RAID-Z3

Если vdev имеет тип RAID-Z1, он должен использовать как минимум 3 диска, и vdev может допустить прекращение работы только одного из этих дисков. Конфигурации RAID-Z не позволяют подключать диски непосредственно к vdev. Но вы можете добавить больше vdev, используя zpool добавить, так что емкость пула может продолжать увеличиваться.

Для RAID-Z2 потребуется как минимум 4 диска на vdev, и он может выдержать отказ до 2 дисков, а если третий диск выйдет из строя до замены 2 дисков, ваши ценные данные будут потеряны. То же самое для RAID-Z3, для которого требуется как минимум 5 дисков на vdev, с отказоустойчивостью до 3 дисков, прежде чем восстановление станет безнадежным.

Создадим пул RAID-Z1 и увеличим его:

$ zpool создать танк raidz1 ada1 ada2 ada3

В пуле используются три диска по 20 ГБ, из которых пользователю доступно 40 ГБ.

Для добавления еще одного vdev потребуется 3 дополнительных диска:

$ zpool добавить танк raidz1 ada4 ada5 ada6


Общий объем используемых данных теперь составляет 80 ГБ, и вы можете потерять до 2 дисков (по одному от каждого vdev) и все еще иметь надежду на восстановление.

Заключение

Теперь вы знаете о ZFS достаточно, чтобы с уверенностью импортировать в нее все свои данные. Отсюда вы можете найти различные другие функции, которые предоставляет ZFS, например, использование высокоскоростных NVM для чтения и записи кешей, использование встроенного сжатия для ваших наборов данных, и вместо того, чтобы перегружаться всеми доступными опциями, просто найдите то, что вам нужно для вашего конкретный вариант использования.

Между тем есть еще несколько полезных советов по выбору оборудования, которым вы должны следовать:

  1. Никогда не используйте аппаратный RAID-контроллер с ZFS.
  2. ОЗУ с исправлением ошибок (ECC) рекомендуется, но не обязательно
  3. Функция дедупликации данных потребляет много памяти, вместо этого используйте сжатие.
  4. Избыточность данных не альтернатива резервному копированию. Создавайте несколько резервных копий, храните эти резервные копии с помощью ZFS!
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...