ZFS

Что такое RAID-Z?

Что такое RAID-Z?
Файловые системы старше самой UNIX. И с тех пор, как мы начали оцифровывать нашу жизнь на лентах, дисках и твердотельных накопителях, одна угроза стала очевидной. Это аппаратный сбой. Данные, хранящиеся на дисках, часто дороже самих дисков, и этим данным нужна вся избыточность, которую мы можем собрать.

RAID-Z - один из лучших инструментов, который гарантирует, что ваши данные будут храниться без ошибок, насколько это возможно, даже на самом дешевом наборе дисков. Это часть OpenZFS. Вы можете понять основы OpenZFS в этой краткой статье, если не слышали о ней раньше. Это файловая система корпоративного уровня с открытым исходным кодом, доступная в Linux, FreeBSD, Mac OS X, SmartOS, Illumos и других основных операционных системах.

Но сначала… что такое RAID?

RAID означает избыточный массив независимых (недорогих) дисков. Это относится к широко распространенной в отрасли практике хранения данных не только на одном диске, но и на нескольких дисках, чтобы даже в случае сбоя диска данные можно было восстановить с других дисков. Способ распределения данных по дискам различен для разных типов избыточности, соответственно они называются RAID 0, RAID 1 и т. Д. Мы не собираемся здесь иметь дело с ними. Мы бы сосредоточились на RAIDZ, специфичном для OpenZFS.

RAID (а также RAID-Z) - это не то же самое, что запись копий данных на резервный диск. Когда у вас есть два или более дисков, настроенных в RAID, данные записываются на них одновременно, и все диски активны и находятся в сети. Это причина того, почему RAID отличается от резервного копирования и, что более важно, почему RAID не заменяет резервные копии. Если весь ваш сервер сгорит, тогда все онлайн-диски могут пойти вместе с сервером, но резервные копии спасут ваш день. Точно так же, если произошел сбой одного диска и что-то не было скопировано, потому что вы не можете делать это каждый день, RAID может помочь вам получить эту информацию.

Резервные копии - это периодически создаваемые копии соответствующих данных, а RAID - резервирование в реальном времени. Есть несколько способов хранения данных в традиционных RAID-системах, но мы не будем вдаваться в них здесь. Здесь мы углубимся в RAIDZ, который является одной из самых крутых функций OpenZFS.

И последнее, прежде чем мы начнем, традиционный RAID иногда поощряет использование выделенных аппаратных устройств для выполнения RAID. Это приводит к тому, что операционная система и файловая система не осведомлены о существующих механизмах RAID. Но часто сама карта RAID (выделенное оборудование) выходит из строя, в результате чего весь дисковый массив становится практически бесполезным.

Чтобы избежать этого, вы всегда должны пытаться использовать OpenZFS без какого-либо аппаратного RAID-контроллера.

RAID-Z1, RAID-Z2, RAID-Z3

ZFS сочетает в себе задачи диспетчера томов и файловых систем. Это означает, что вы можете указать узлы устройств для своих дисков при создании нового пула, и ZFS объединит их в один логический пул, а затем вы можете создавать наборы данных для различных целей, таких как / home, / usr и т. Д., Поверх этого тома.

Для настройки RAID-Z потребуется как минимум 3 или более дисков. Вы не можете использовать менее трех дисков. Поставщиком хранилища может быть что-то еще, подключенное к сети хранилище, виртуальное блочное устройство и т. Д., Но давайте в качестве простого примера остановимся на трех дисках равного размера.

Три диска можно объединить в виртуальное устройство (vdev). Это строительный блок zpool. Если вы начинаете только с 3 дисками, у вас есть 1 vdev в вашем zpool. У вас может быть 2 vdev с 6 дисками и т. Д.

Предположим, у вас есть файл размером 1 ГБ, который вы хотите сохранить в этом пуле. RAID-Z разделяет его на два равных фрагмента по 512 МБ, а затем выполняет математическую операцию между ними, которая генерирует третий фрагмент размером 512 МБ (называемый блок четности). Затем эти три фрагмента записываются в три отдельных файла vdev. Таким образом, файл занимает 1.Всего 5 ГБ места.

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

Ваши файлы используют на 50% больше места, чем необходимо, но вы можете выдержать отказ одного диска на каждое vdev. Это RAID-Z1.

Но пул ZFS может расти, и в конечном итоге вам понадобится больше места. Ну, вы не можете добавить больше дисков непосредственно в vdev (эта функция предлагается и вполне может быть в разработке прямо сейчас). Однако вы можете добавить vdev. Это означает, что вы можете добавлять диски группами по три и рассматривать каждый новый набор как один логический vdev.

Теперь вы можете терпеть отказ одного диска в этом новом vdev и отказ одного диска в более старом. Но если в одном vdev выходит из строя более одного диска, это не подлежит восстановлению. Весь ваш пул становится бесполезным, даже более здоровые vdevs.

Это действительно упрощенная модель. Файлы никогда не делятся точно пополам, но данные обрабатываются как блоки фиксированной длины. Более того, вы можете использовать более 3 дисков (но минимум 3) для каждого vdev, и RAID-Z1 гарантирует, что каждый уникальный блок данных будет записан таким образом, чтобы он мог восстанавливаться после сбоя любого отдельного диска в каждом vdev. К счастью, вам не нужно беспокоиться об этих внутренних деталях. Это ответственность ZFS. После настройки пула данные автоматически распределяются по нему наиболее оптимальным образом.

Отказоустойчивость по-прежнему ограничена одним отказом диска на vdev. Чтобы выйти за рамки этого, нам нужно перейти на RAID-Z2. RAID-Z2 работает аналогичным образом, но создает два блока четности и два блока данных из одного фрагмента информации. Это позволяет выдерживать до 2 сбоев дисков на vdev. Также vdev должен иметь как минимум 4 диска, если он собирается реализовать настройку RAID-Z2.

Точно так же RAID-Z3 требует как минимум 5 дисков на каждое виртуальное устройство и может выдержать отказ 3 из них. RAID-Z3 не так эффективен с точки зрения пространства, как RAID-Z2, который не так эффективен с точки зрения пространства, как RAID-Z1.

Заключение

В RAID-Z мы видим компромисс между используемым пространством, предлагаемым отдельными дисками, и надежностью, которую может предложить набор таких дисков. Чем больше дисков, тем выше вероятность одновременного отказа нескольких дисков.

Лучший способ противостоять этому - использовать эффективную стратегию RAID-Z, которая обеспечивает надежность и максимальную отдачу от вложенных средств. Сообщите нам, если вы нашли это руководство полезным или у вас есть какие-либо вопросы относительно RAID-Z!

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...