Raid z что это

Обновлено: 04.07.2024

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

NAS своими руками ч 10 - зачем ZFS дома

В предыдущих постах я неоднократно упоминал о zfs. Причем получалось, что и памяти и процессора она требует не по детски. Остался вопрос - и зачем? Сразу скажу, что не претендую на полноту и пр. Что такое zfs можно взглянуть в Википедии. Заинтересовавшимся серьёзнее советую нагуглить zfs administration guide (вроде бы был и по русски). Моё намерение - объяснить зачем вдруг дома файловая система корпоративного уровня. Прим. У читателя, особенно второй части поcта, предполагается уверенное понимание того, что такое дисковые массивы, напр. RAID5. Если понимания нет - вряд ли такие массивы стоит дома самому строить и этот текст читать.

1. Целостность файловой системы. Каждый сталкивался с ситуацией, когда файловую систему приходилось чинить. Успешно или не очень. zfs построена так, что в ней даже нет утилиты вроде виндовой chkdsk или линуксовой fsck. Ситуация, когда файловая система оказалась в противоречивом состоянии, просто невозможна. Реализовано через Copy-on-write (данные пишем не поверх старых, а выделяем новый блок, пишем туда, если все ОК - заменяем указатель со старых данных на новые. Подробнее - см гугл). В результате логическая структура диска не испортится из-за того, что-то не вовремя отключили или свет отрубился. Ну разве записанное в последние 10 сек пропадет. (впрочем, диск может и физически сгореть при играх с электричеством).

2. Уверенность, что не прочитаешь мусор, думая, что читаешь данные. Железо несовершенно. Например, если дребезжат контакты на SATA кабелях, на диск будет записано совсем не то, что было в памяти. И никто, замечу, долгое время об этом не узнает. Мой профессиональный опыт связан с полиграфией. Не раз приходилось на выводе видеть картинку до середины нормальную - а дальше шум. zfs хранит с каждым блоком данных его контрольную сумму. При считывании данных сумма автоматически сличается. Казалось бы, так просто.

3. Уверенность, что хранимые данные не протухли. Да, данные при хранении имеют тенденцию портиться. Что хорошо известно тем, кто поверил маркетингу производителей DVD болванок про 100 лет и записал на них свои архивы. Особенно это важно для "холодных" данных, долгое время лежащих без движения. Архивах, старых фото и т.п. Проверить данные вроде как просто - надо их считать и сличить контрольные суммы. Для zfs, понятно - достаточно файлы прочитать. Для регулярной проверки есть команда, в фоновом режиме все проверяющая.

4. Снимки файловой системы. Легкость запоминания состояния файловой системы на данный момент времени, хранение таких снимков и откат к ним при необходимости. Защищает от дурацких действий человека. Модель Copy-on-write просто располагает к такой функциональности - блоки удаленных или перезаписанных данных просто не освобождаем, а ссылки на них храним в снимке. В результате снимок занимает места столько, сколько содержит измененных по сравнению текущим моментом данных, а не весь объем данных.

Это все было для данных без избыточности, типа одиночного диска. Но zfs позволяет формировать массивы с избыточностью, подобные (и превосходящие) RAID1 (зеркало), RAID5 (избыточность в размере одного диска), RAID6 (двух) и даже "RAID7" (сохраняющий данные при выходе их строя любых трех дисков массива). Массивы можно объединять, получая что-то вроде RAID10 или RAID50. И чем же zfs массивы лучше?

5. Аппаратная независимость. Чтобы сделать аппаратный RAID5, тем более RAID6, нужен дорогой RAID контроллер. zfs raidz - вариант программного RAID, требуются только доступ к дискам, например SATA порты. zfs raidz вполне может быть построен на портах разных контроллеров и из дисков разных моделей (в использовании разных моделей дисков есть и плюсы и минусы). И перенесен чуть не на любое железо, куда можно подключить диски. Я, например, неоднократно переставлял диски между SATA портами, прозрачно импортировал массив, созданный в режиме IDE на контроллере, в ACHI режиме и на SAS контроллере. Хотя операционная система нумерует диски по портам и определяет IDE, ACHI и SAS диски по-разному, zfs все это способен молча отработать (до определенных пределов, конечно. Сдуру что хочешь можно сломать.)

6. Отсутствие Дыры по Записи. (Wiki) То есть разрушения данных, если диск массива не может принять данные. Дорогие RAID контроллеры оборудуют батарейками, которые позволяют много дней хранить данные, не успевшие попасть на диск, и записывать их в массив при появлении возможности.

7. Устойчивость при сбое диска. Пусть у нас одинаковые RAID5 и zfs raidz1. В каждом из них сбоит один из дисков, меняем его на новый. И в процессе замены (а она занимает многие часы для больших массивов) не читается блок на одном из оставшихся дисков массива.

Для RAID5 в большинстве случаев это катастрофа. Массив объявляется сбойным не читаемым, несем его профессионалам, которые за круглую сумму инфу будут восстанавливать.

Для zfs raidz1 сообщается на какие файлы пришлись сбойные блоки, остальное синхронизируется. А если с заменяемого диска хоть что-то читается и от компа его не отключали - информация с него тоже будет использована для синхронизации. И с высокой степенью вероятности данные вообще не потеряем.

8. Работа с полезными данными, а не всем массивом. Например, если я заменяю диск в RAID5 массиве, время восстановления зависит от объема массива. Если в zfs raid1 - от объема записанной в массив информации, тк не используемое для данных место не будет синхронизироваться.

Преимуществ еще много, но мне для дома интереснее именно эти. В корпоративном применении - есть и другие (сжатие данных, дедупликация. ). Упомяну важные для меня недостатки.

1. Нарастить raidz массив на один диск нельзя. Можно заменить все терабайтные диски на тритеры - и увеличить объем. Можно собрать из 3 (и более) дисков еще один raidz и добавить его к существующему. Но превратить raidz1 из 5 дисков в raidz1 из 6 можно только слив куда-то информацию, разрушив массив и создав новый.

2. Массив нельзя уменьшить. Можно только увеличивать. Например, заменить в массиве терабайтные винты на двухтерабайтные - можно. А на полутерабайтные - нельзя, даже если в массиве хранится 1 килобайт инфы.
Можно подсоединить к массиву еще один - а отсоединить нельзя. Все такие процедуры - только через сохранение инфы куда-то вовне, разрушение массива и создание нового.

3. Ресурсоемкость. zfs постоянно считает контрольные суммы, что создает нагрузку на процессор и жрет под кеши память. В корпоративном применении есть мнение - гигабайт памяти на терабайт массива. Дома мне хватает 330 атома и 4 Гб памяти (а раньше и на 2 Гб работало - особой разницы не увидел). Хотя атома для полной утилизации гигабитной сети мне не хватает, но 40-50мб/с мои потребности закрывает.. А вот если железо старое и еще значительно слабее - zfs не для Вас.

Да, напомню, если понравилось - в NAS4free, которому и посвящен весь цикл постов, управление NAS, включая операции с zfs, идет через понятный новичку веб интерфейс.

zfs-1.jpg

Казалось бы, объединив в единую архитектуру менеджер логических томов и концепцию файловой системы, можно существенно упростить управление дисковым массивом. На этом тривиальном принципе в 2005 году крупным производителем ПО Sun Microsystems и была основана во многом прорывная файловая система ZFS, интегрированная первоначально в ОС Solaris.

Zettabyte File System или ZFS — новейшая транзакционная файловая система, работающая с использованием механизма copy-on-write и оперирующая одновременно на нескольких уровнях абстракции данных.

Сейчас это продолжающий развиваться безопасный, масштабируемый и чрезвычайно удобный в администрировании опенсорсный инструмент.

Файловая система и менеджер томов ZFS отличаются в первую очередь целостностью данных и рядом встроенных функций хранения:

  • Репликация — процесс создания копий объектов.
  • Дедупликация избавляет от избыточных копий данных и сокращает издержки хранения.
  • Сжатие позволяет уменьшить количество битов, необходимых для представления данных.
  • Снапшоты — копия файлов и каталогов в определенный момент времени.
  • Клонирование — копирование системы и ее структуры один-в-один.
  • Защита данных — превентивные методы, позволяющие избежать потерь данных при внешних сбоях.

Принципы работы

ZFS предназначена для работы на одном сервере, потенциально с сотнями, если не тысячами подключенных накопителей. ZFS объединяет доступное хранилище и управляет всеми дисками как единым целым. Администратор может добавить в пул дополнительные накопители при необходимости повысить емкость. ZFS обладает высокой масштабируемостью и поддерживает работу с файлами размером до 16 эксбибайт.

ZFS сохраняет как минимум две копии метаданных каждый раз, когда данные записываются на диск. Метаданные включают в себя такую ​​информацию, как:

  • Секторы диска, в которых хранятся данные;
  • Размер блоков данных;
  • Контрольную сумму фрагмента данных в двоичной записи.

Когда пользователь запрашивает доступ к файлу, алгоритм контрольной суммы выполняет вычисление, чтобы убедиться, что полученные данные соответствуют исходным битам, записанным на диск. Если контрольная сумма обнаруживает несоответствие, она помечает «битые» данные. В системах с зеркальным пулом хранения или RAID ZFS может получить верную копию с другого диска и восстановить поврежденную копию данных.

ZFS - это copy-on-write файловая система (или с механизмом копирования при записи), хотя Oracle называет используемый механизм еще как редирект при записи. Когда ZFS записывает данные на диск, они не перезаписывают данные на месте: ZFS записывает новый блок в другое место на диске и обновляет метаданные, чтобы оставить ссылку на вновь записанный блок, сохраняя при этом более старые версии данных.

Условная copy-on-write файловая система создает точную копию блока данных в отдельном месте перед перезаписью исходного блока, для чего ей необходимо прочитать предыдущее значение блока. Файловая система с механизмом copy-on-write требует для каждой записи данных выполнения трех операций ввода-вывода — чтения, изменения и записи. Система редиректа, напротив, при записи требует только одной операции ввода-вывода, что способствует повышению эффективности и производительности системы.

ZFS — файловая система, пользующаяся спросом для сетевых систем хранения, использующих Network File System поверх файловой системы, а также в средах виртуальных серверов. Другой распространенный сценарий развертывания — это распределенные файловые системы, как, например, General Parallel File System (GPFS) или Lustre поверх ZFS для привязки дополнительных серверных узлов. Пользователи OpenStack могут развернуть ZFS в качестве базовой файловой системы для блочного хранилища Cinder и хранилища объектов Swift.

Разместим оборудование
в собственном дата-центре
уровня TIER III. Подбор оборудования для решения Ваших задач и экономии бюджета IT

Ключевые особенности ZFS

Моментальные снимки. ZFS и OpenZFS могут создавать копии файловой системы в заданный момент времени буквально «на лету», поскольку система сохраняет все копии данных. Снимки представляют собой неизменяемые копии файловой системы, тогда как результаты клонирования системы можно изменять. Снапшоты интегрированы в загрузочные среды с ZFS на Solaris, что позволяет пользователям вернуться к любому состоянию системы, если что-то пойдет не так. Еще одно ключевое преимущество ZFS — это средство восстановления от программ-вымогателей.

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

Дедупликация. Встроенная в ZFS и OpenZFS функция дедупликации данных обеспечивает эффективность хранения за счет устранения избыточных данных. Файловые системы находят повторяющиеся данные, просматривая контрольную сумму блока, который может различаться по размеру. Пользователи также могут отключать встроенную дедупликацию при желании.

Безопасность. ZFS и OpenZFS поддерживают делегированные разрешения и детализированные списки управления доступом для управления тем, кто может выполнять административные задачи. Пользователи могут настроить ZFS как доступную только для чтения, поэтому данные нельзя будет изменить. Oracle также поддерживает шифрование в ZFS на Solaris.

Массивы RAID-Z в ZFS

Массив дисков RAID-Z позволяет хранить одни и те же данные в нескольких местах для повышения отказоустойчивости и производительности. Система восстанавливает данные на утерянном диске, используя информацию, хранящуюся на других дисках системы. Подобно RAID 5, в ZFS RAID-Z распределяет информацию параллельно по каждому диску, чтобы система хранения могла функционировать даже в случае выхода из строя одного диска. Однако в случае с RAID-Z чередующиеся данные представляют собой блок динамического объема.

Хоть RAID-Z обычно и сравнивают с RAID 5, некоторые операции он выполняет иначе: так, например, в RAID-Z известен так называемый «write hole effect», когда система не может определить, какие данные или блоки были записаны на диск по причине сбоя питания или внезапного прекращения работы системы. Вендоры, использующие традиционный RAID, обычно решают эту проблему при помощи источника бесперебойного питания или специального оборудования.

RAID-Z2 поддерживает потерю двух устройств хранения, аналогично RAID 6, а RAID-Z3 может выдержать потерю трех устройств хранения. Пользователи могут объединять диски в группы, как в обычном массиве RAID. Например, система с двумя группами по шесть дисков, настроенная как RAID-Z3, может выдержать потерю трех дисков в каждой группе.

Преимущества и недостатки ZFS

zfs-2.jpg

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

Если распределенные файловые системы, в числе которых, например, GPFS и Lustre, можно масштабировать до нескольких серверов, то ZFS может работать только на одном сервере.

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

В сообществе Linux бытуют различные мнения о лицензировании в отношении распространения кода ZFS и бинарных модулей ядра. Например, производитель ПО Red Hat считает недопустимым распространять код, защищенный по CDDL, вместе с кодом, защищенным по общедоступной лицензии (GPL). Напротив, компания Canonical, распространяющая Ubuntu, пришла к выводу, что такой подход соответствует условиям лицензий CDDL и GPL.

ZFS и OpenZFS: в чем разница?

ZFS — файловая система, поддерживаемая компанией Oracle, тогда как OpenZFS — система с открытым исходным кодом. Обе они имеют общие корни, но последние несколько лет развиваются в разных направлениях: и Oracle, и сообщество разработчиков ПО добавили расширения и значительно улучшили производительность ZFS и OpenZFS соответственно. Обновления Oracle ZFS являются собственностью компании и доступны только в технологиях Oracle, тогда как обновления кода OpenZFS с открытым исходным кодом находятся в свободном доступе.

Список улучшений, которые Oracle внес в ZFS с 2010 года, включает:

  • шифрование;
  • сохранение сжатых данных при перезагрузках ОС в адаптивном кэше L2;
  • загрузочные метки, обеспечивающие поддержку физических дисков и томов виртуальных дисков размером более 2 ТБ;
  • квоты пользователей и групп по умолчанию;
  • мониторинг пула и файловой системы.

В числе обновлений OpenZFS, внесенных сообществом разработчиков ПО с открытым исходным кодом:

  • дополнительные алгоритмы сжатия;
  • возобновляемая отправка и загрузка, позволяющая перезапустить длительную операцию переноса ZFS в случае сбоя в работе;
  • сжатие данных при отправке и загрузке снимком ZFS, что позволяет системе перемещать сжатые данные из одного пула ZFS в другой без необходимости распаковывать и повторно сжимать данные;
  • сжатие ARC, позволяющее ZFS хранить сжатые данные в памяти, не занимая существенное пространство в кэше;
  • максимальный размер блока увеличен со 128 Кб до 16 Мб для повышения производительности при работе с большими файлами и ускорения восстановления данных после сбоя в работе накопителя.

Проблема лицензирования по-прежнему оставляет без встроенной поддержки ZFS Linux системы, однако это можно решить модификацией ядра одним из двух способов: путем динамической генерации модуля либо сборкой модуля ядра в бинарном виде.

Варианты использования

В каких же случаях в итоге следует прибегнуть к использованию ZFS, а когда стоит довольствоваться аппаратными решениями? Разберем на разных примерах.

Системный администратор среднего бизнеса тратит 20% своего времени на планирование, изменение, администрирование и ремонт дисковых массивов трех серверов. С ZFS это время сокращается вдвое.

Опытный пользователь имеет четырехдисковую рабочую станцию RAID-5. Вычисления четности делают настройку довольно медленной из-за большого количества операций записи небольших файлов. В итоге он переходит на 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? Чем она особенна?

image

Как я сказал ранее, ZFS это продвинутая файловая система. Как таковая, она имеет некоторые интересные особенности. Такие, как:

  • Объединённое хранилище (Pooled storage)
  • Copy-on-write
  • Снапшоты
  • Проверка цельности информации и автоматическая починка
  • RAID-Z
  • Максимальный размер файла в 16 Эксабайт (Прим. переводчика: 10^18 байт)
  • Максимальный размер хранилища в 256 квадрильонов Зеттабайт (Прим. переводчика: Квадрильон — миллион^4; Зеттабайт — 10^21 байт)

Объединённое хранилище

В отличие от других файловых систем, ZFS совмещает возможности файловой системы и менеджера дисков. Это означает что ZFS может создать файловую систему охватив все диски. Но не только это, можно также добавить хранилище в систему дисков. ZFS займется разделением и форматированием дисков.

image

Copy-on-write

Copy-on-write это другая интересная особенность. Но большинстве файловых систем, если информация перезаписана, она утрачена навсегда. В ZFS новая информация записывается в отдельный блок. Как только запись завершена, метаданные файловой системы обновляются к точке новой информации. Это гарантирует что если файловая система сломается (или случится что-либо подобное) во время записи, старая информация будет фиксирована. Это означает что системе не нужно запускать fsck после сбоя.

Снапшоты

Copy-on-write приводит к другой интересной вещи в ZFS: снапшоты. ZFS использует снимки, для того чтобы следить за изменениями в файловой системе. Снимок хранит оригинальную версию файловой системы и текущую, в которой все изменения с момента создания снимка. Никакого дополнительного места не используется. Как только новая информация записывается в текущую файловую систему, новые блоки распределяются для её хранения. Если же файл был удален, упоминание о нём из снимка исчезает. Снимки разработаны для слежки за изменениями, но не являются дополнением и не создают файлов.

Снимки могут быть смонтированы в формате read-only для восстановления старой версии файла. Также можно откатить систему к предыдущему снимку. Все изменения сделанные после снимка будут утрачены.

Проверка цельности информации и автоматическая починка

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

Если вы хотите использовать ZFS из коробки, то необходимо установить либо FreeBSD, либо ОС, которая использует illumos-ядро. Illumos это форк ядра OpenSolaris.

На самом деле, поддержка ZFS и для ZFS это главный аспект, почему некоторые опытные пользователи Linux останавливают свой выбор на BSD.

Если вы хотите использовать ZFS на Linux, вы сможете её использовать как файловую систему только для хранения. Насколько мне известно, никакой из дистрибутивов не даёт возможности установить ZFS, так, чтобы она работала сразу. Если вы заинтересованы и хотите попробовать, есть проект ZFS on Linux, который предоставляет несколько туториалов.

Напоследок

В этой статье я рассказал о плюсах ZFS. И сейчас о маленькой проблеме. Использование RAID-Z может дорого обойтись из-за количества дисков нужных для него.

А вы когда-то использовали ZFS? И как она вам? Расскажите об этом в комментариях.

Уверен, многие довольно часто сталкивались с этим модным термином в сфере хранения данных, но мало кто знает, что он из себя представляет. Итак, давайте разберемся, что это за зверь и почему он так крут.

Для начала стоит отметить, что это не какая-то абсолютно новая технология, а, скорее, работа над проблемами, которые имели место в RAID-5. Какие именно недостатки она исправляет? Во-первых, устраняется проблема под название "Write hole", во-вторых, в RAID-5, если была изменена лишь часть страйпа (страйп - это группа блоков, каждый из которых расположен на отдельном жестком диске), то необходимо перечитывать весь страйп для того, чтобы пересчитать его данные четности (а это наносит серьезный урон производительности). То есть, если идет запись всего страйпа целиком, то мы просто асинхронно ее выполняем на всех дисках. Если же переписывается только часть страйпа, то необходимо сначала выполнить синхронное чтение перед тем, как что-либо писать. У железных RAID-5 контроллеров это решается посредством сохранения записываемых данных в кэше на то время пока будет выполнено синхронное чтение.

Как же указанные проблемы решаются в RAID-Z? Во-первых, в ZFS RAID-Z используется динамический размер старйпа (что автоматически устраняет случай "частичной перезаписи страйпа"). Таким образом, устранение частичных записей страйпа вместе с принципом записи copy-on-write (новые данные не записываются поверх старых, а пишутся в новое место, а потом атомарно происходит переустановка указателя на новое расположение данных) полностью решают проблему "Write hole". Также, RAID-Z имеет преимущество в скорости, так как ему не нужно выполнять чтение перед записью (так как отсутствуют частичные записи страйпов).

Уход от фиксированного размера страйпа, очевидно, усложняет устройство RAID-массива, так как теперь невозможно пройти весь массив и, допустим, разбив его на блоки 64 килобайта высчитать их ключевые суммы. В связи с динамическим размером страйпа необходимо где-то хранить метаданные о размере страйпов. Что таит в себе еще одну проблему - теперь файловая система (где хранятся эти метаданные) и RAID массив представляю собой единое целое, что делает невозможным раздельную реализицию файловой системы и RAID контроллера. То есть, требуется взгляд как со стороны механики, так и со стороны логики устройства ФС.

Усложнение структуры файловой системы не может не сказаться на скорости работы. Но будет ли это приводить к замедлению? Совершенно нет, так как при синхронизации будут копироваться только блоки с данными, а пустые блоки не будут. Также стоит обратить внимание, что в ZFS блоки хешируются 256 битными ключевыми суммами, в то время как в обычном RAID используется простейший xor.

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

Очень важнй чертой технологии ZFS RAID-Z является то, что она не предъявляет никаких требований к аппаратной части сервера (не считая повышенных требований к оперативной памяти).

Кроме RAID-Z также существует его модификация RAID-Z2 (близка к RAID-6), которая устойчива к отказу двух жестких дисков. Кроме этого, уже существует (но пока только-только портирована во FreeBSD) версия RAID-Z3, которая выдерживает отказ до трех дисков массива.

RAID-Z


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

RAID-Z не имеет фиксированный размер "страйпа", в ней он равен размеру логического блока файловой системы. Каждая запись в массиве RAID-Z представляет собой запись полного сегмента. Благодаря присутствию в системе копирования при записи в семантике ZFS пользователь получает возможность полностью избавиться от уязвимости RAID систем.

Примечательной особенностью данного уровня является возможность быстрого восстанавления не только всего диска, но и целого блока. Еще одним немаловажным преимуществом RAID-Z является обновление данных с установкой указателя на них, что позволяет сократить риск их потери при усовершенствовании системы. Файлы малого объема дублируются, вместо создания контрольных сумм. RAID-Z превосходит по скорости обычный RAID, поскольку не производит чтение данных, меняя их, а затем снова записывая.

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

Алгоритм чтения блока RAID-Z:

  • Проверка на соответствие контрольной сумме,
  • Неверное содержимое блока: ZFS читает диск с четностью и выполнит комбинаторную реконструкцию данных для выявления диска, предоставившего неправильные данные,
  • Восстановление поврежденных данных,
  • Возвращение правильных данных приложению.

Благодаря Solaris FMA система сообщит о неисправности системному администратору. Кроме того, RAID-Z не требует специального аппаратного обеспечения и никакой энергонезависимой памяти (NVRAM), и не производит буферизацию операций записи.

Достоинства системы

  • Быстрота и надежность хранения информации
  • Ценовая доступность дисков

Функция ресинхронизации обычной системы считывает содержимое дисков целиком, даже в том случае, если они почти пустые - из-за того, что менеджер томов не может распознать, где есть данные, а где их нет. ZFS точно знает, где расположены данные, а значит осуществляет копирование только этих данных, без потери времени на копирования ненужных блоков. И еще одна приятная особенность системы ZFS: она позволяет работать с дисками "горячего" резерва. В таком случае, резервный диск подключается к работе автоматически, как только того требуют обстоятельства и сама система. Пользователю не нужно ждать замены неисправного диска, работа может продолжаться.

Читайте также: