Назад | Перейти на главную страницу

Полоса ZFS поверх аппаратного RAID 6. Что может пойти не так?

У меня 36 * 4TB HDD SAN Rack. RAID-контроллер не поддерживает RAID60 и не более 16 жестких дисков в одной RAID-группе. Поэтому я решил сделать 2 группы RAID6 по 16 жестких дисков или 4 из 8 жестких дисков. Я хочу, чтобы все хранилище было одним разделом.

Итак, что может пойти не так, если я буду использовать пул zfs поверх аппаратного RAID6? Да, я знаю, что настоятельно рекомендуется использовать собственные жесткие диски или сквозной режим. Но у меня нет такой возможности.

Или мне следует держаться подальше от ZFS и программных рейдов в этой ситуации? (Меня больше интересует сжатие и снимки)

Поэтому я решил сделать 2 группы RAID6 по 16 жестких дисков или 4 из 8 жестких дисков.

Это не лучший способ делать что-то. Он может работать достаточно хорошо, но может и не работать, в зависимости от ваших требований к производительности.

Идеальный размер массива RAID5 / 6 должен быть таким, чтобы точное кратное количеству данных, которое «охватывает» массив, соответствовало размеру блока файловой системы, построенной на нем.

Массивы RAID5 / 6 работают как блочные устройства - один блок данных охватывает диски в массиве, и этот блок также содержит данные четности. Большинство RAID-контроллеров будут записывать в каждый диск в массиве - точное значение которого можно настроить в более совершенных системах RAID - и ваше устройство Dot Hill является одной из тех «лучших систем RAID». Это важно.

Таким образом, для охвата массива требуется N x (количество данных, хранящихся на одном фрагменте диска), где N - количество дисков с данными. Массив RAID5 с 5 дисками имеет 4 диска с данными, а массив RAID6 с 10 дисками имеет 8 дисков с данными.

Поскольку при записи данных в массив RAID5 / 6, если размер блока данных достаточно велик, чтобы охватить весь массив, для этих данных вычисляется четность - обычно в памяти контроллера - тогда вся полоса записывается в диск. Просто и быстро.

Но если объем записываемых данных недостаточно велик, чтобы охватить весь массив, что должен делать RAID-контроллер, чтобы вычислить новые данные четности? Подумайте об этом - ему нужны все данные в весь полоса для пересчета новый данные о четности.

Таким образом, если вы создаете массив RAID6 с 16 дисками с блоком по умолчанию 512 КБ на каждый диск, это означает, что для «охвата» массива требуется 7 МБ.

ZFS обычно работает с блоками по 128 Кбайт.

Таким образом, ZFS записывает блок размером 128 КБ - в массив RAID6 с 16 дисками. В предлагаемой вами конфигурации это означает, что RAID-контроллер должен читать почти 7 МБ из массива и повторно вычислите четность для этих 7 МБ. Затем перепишите все 7 МБ обратно на диск.

Если вам повезет, все это в кеше, и вы не получите большого снижения производительности. (Это одна из основных причин, почему позиция «не использовать RAID5 / 6» имеет следующее значение - RAID1 [0] не страдает от этого.)

Если вам не повезло и вы неправильно выровняли разделы файловой системы, этот блок 128 КБ охватывает две полосы RAID, которых нет в кеше, и контроллеру необходимо прочитать 14 МБ, пересчитать четность, а затем записать 14 МБ. Все для записи одного блока 128кБ.

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

Но при большой нагрузке записи блоков 128 КБ в случайные места есть действительно хороший шанс, что производительность массива RAID6 с 16 дисками с размером полосы 7 МБ будет абсолютно ужасной.

Для ZFS "идеальный" базовый RAID5 / 6 LUN для файловой системы общего назначения, в которой большинство обращений является случайным будет иметь размер полосы, равный делитель 128 КБ, например 32 КБ, 64 КБ или 128 КБ. В данном случае это ограничивает количество дисков с данными в массиве RAID5 / 6 до 1 (что бессмысленно - даже если можно настроить, лучше просто использовать RAID1 [0]), 2, 4 или 8. Лучшая производительность. в лучшем случае было бы использовать размер полосы 128 КБ для массивов RAID5 / 6, но в лучшем случае это случается нечасто в файловых системах общего назначения - часто потому, что файловые системы не хранят метаданные так же, как они хранить данные файла.

Я бы порекомендовал настроить либо 5-дисковые массивы RAID5, либо 10-дисковые массивы RAID6, с достаточно маленьким размером блока для каждого диска, чтобы объем данных для охвата всей полосы массива составлял 64 КБ (да, я сделал это раньше для ZFS - много раз). Это означает, что для массива RAID с 4 дисками данных размер фрагмента на каждый диск должен быть 16 КБ, а для массива RAID с 8 дисками данных размер фрагмента на каждый диск должен быть 8 КБ.

Затем разрешите ZFS использовать весь массив - делать не разделить его. ZFS будет правильно выравниваться со всем диском, независимо от того, является ли диск простым одиночным диском или массивом RAID, представленным контроллером RAID.

В этом случае, не зная вашего точного пространства и требований к производительности, я бы рекомендовал настроить три массива RAID6 с 10 дисками или шесть массивов RAID5 с 5 дисками с размером полосы 64 КБ, настроить пару горячих резервов и сэкономить четыре из ваших диски для всего, что появится в будущем. Потому что что-то будет.

Я бы определенно не использовал эту дисковую систему в режиме JBOD - это полностью Устройство, соответствующее NEBS Level 3 что обеспечивает значительную защиту надежности и доступности, встроенную прямо в оборудование. Не выбрасывайте это только потому, что "ZFS !!!!". Если это дешевое товарное оборудование, которое вы собираете из частей? Да, режим JBOD с ZFS, обрабатывающим RAID, лучше всего, но это НЕ оборудование, которое у вас есть. ИСПОЛЬЗОВАТЬ функции, которые предоставляет оборудование.

Хорошо, я укушу ...

Это неподходящее оборудование для приложения. Установка DotHill имеет те же ограничения, что и HP StorageWorks MSA2000 / P2000, в том, что в одной группе массива можно использовать только 16 дисков.

ZFS поверх аппаратного RAID или экспортированного SAN LUN не обязательно проблема.

Однако чередование LUN ​​ZFS по неизвестным межсоединениям и шасси расширения может представлять определенный риск.

  • Например, используете ли вы многопутевый SAS в кольцевой топологии с двумя контроллерами?
  • Есть ли у вас резервный кабель для подключения к серверу?
  • Распределили ли вы диски по корпусам по вертикали таким образом, чтобы уменьшить отказ одного шасси / кабеля / контроллера и предотвратить его повреждение части полосы RAID0?

Серьезно, возможно, стоит оценить, нужно ли вам все это хранилище в одном пространстве имен ...

Если вам ДЕЙСТВИТЕЛЬНО требуется этот тип емкости в одном креплении, вам следует использовать выделенный Корпус JBOD с подключением HBA и, возможно, несколько головных устройств с гибкими кабелями и более продуманной компоновкой.

Вы должны НЕПОСРЕДСТВЕННО подключать все диски к ящику с ZFS. Получите SAS HBA и подключите диски к устройству с поддержкой ZFS (например, с OmniOS или SmartOS). Затем вы можете поделиться пространством через NFS, SMB, iScsi ...

Причина, по которой ZFS поверх логических томов HW RAID является ОЧЕНЬ ПЛОХО Идея заключается в том, что ZFS для правильного функционирования требуется доступ на уровне блоков. Да, его можно будет использовать, но функциональность не будет полной, пока вы не подключите диски напрямую к ОС через HBA или прямые подключения SATA. Одним из примеров является то, что в конфигурации, которую вы предлагаете, ZFS не может разумно защитить ваши данные от изменений в данных ниже (на другой стороне HW RAID-контроллера), и поэтому не может гарантировать безопасность ваших данных. Это одна из ОСНОВНЫХ причин, по которой используется ZFS, помимо того, что она супербыстрая.

ZFS - отличная технология, и я ее очень рекомендую. Но вам нужно будет пересмотреть свою структуру здесь, чтобы правильно ее использовать. А именно, ZFS создает логические тома (vdevs) напрямую с дисков.

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