RAID массив из дисков, заметки

RAID Массив HDD

Эту запись/заметку/напоминалку я решил оставить в блоге после того, как во время очередной конфигурации RAID массива мне пришлось напрягаться чтобы вспомнить что значит та или иная опция настройки.

RAID массив из дисков - несколько физических дисков (чаще всего HDD) объединенных в один виртуальный диск для различных целей: надежности хранения данных, увеличения скорости работы с дисками, обеспечение возможности объединения нескольких дисков в один большой диск.

Виды RAID массивов

  • RAID 0 (stripe) - дисковый массив повышенной производительности с чередованием записи, без отказоустойчивости
  • RAID 1 (mirror) - зеркальный массив, повышенной отказоустойчивости
  • RAID 10  - массив RAID 0, построенный из массивов RAID 1, минимальное количество жестких дисков 4. Считаю этот массив наиболее оптимальным в разрезе производительность\надежность.
  • RAID 2 — зарезервирован для массивов, которые применяют код Хемминга;
  • RAID 3 — дисковый массив с чередованием и выделенным диском чётности. Минимум 3 диска, высокая скорость однозадачной работы с большими файлами, нагрузка на диск четности может его быстро выводить из строя
  • RAID4 — дисковый массив с чередованием и выделенным диском чётности, только данные разбиваются не на блоки, как в RAID 3, на байты.
  • RAID 5 — дисковый массив с чередованием и «невыделенным диском чётности», контрольная сумма размазывается по всем дискам, поэтому позволяет производить параллельные операции записи, в отличие от RAID 2-4. Во время Random Write медленнее 10-25% от RAID 0. Во время вылета одно из дисков резко понижается производительность и надежность (уровень RAID 0) и сильно возрастает нагрузка во время RAID Reconstruction, что может стать причиной вылета еще одного диска, а значит потери информации. Необходимо минимум 3 диска.
  • RAID 6 — дисковый массив с чередованием, использующий две контрольные суммы для двух дисков четности, вычисляемые двумя независимыми способами; Работоспособен после вылета 2-х дисков, медленее на 10-15% чем RAID 5.
  • RAID 01 — массив RAID 1, построенный из массивов RAID 0 (имеет низкую отказоустойчивость);
  • RAID 50 — массив RAID 0, построенный из массивов RAID 5;
  • RAID 05 — массив RAID 5, построенный из массивов RAID 0;
  • RAID 60 — массив RAID 0, построенный из массивов RAID 6;
  • RAID 06 — массив RAID 6, построенный из массивов RAID 0.
  • Остальные виды RAID массивов и более подробную информацию можно прочитать на ru.wikipedia.org/wiki/RAID

Настройки RAID (контроллер LSI)

  • Stripe size - определяет объем данных записываемых за одну операцию ввода/вывода. размер страйпа задается в момент конфигурирования RAID массива и не может быть изменен позднее без переинициализации всего массива. Больший размер страйпа обеспечивает прирост производительности при работе с большими последовательными файлами (например, видео), меньший - обеспечивает большую эффективность в случае работы с большим количеством небольших файлов. В большинсте случаев рекомендуется оставлять значение по умолчанию.
  • Read Policy - определяет, запускать или нет процедуру упреждающего чтения. Рекомендуется здесь выбирать Adaptive, если RAID предназначен для решения широкого спектра задач и отдать тем самым принятие решения на откуп RAID контроллеру. Если RAID массив рассчитан на "переваривание" максимально возможного количества IOPS, то этот параметр обычно устанавливается в Off.
    • Normal - упреждающее чтение отключено
    • Read-Ahead - использовать механизм упреждающего чтения. Эта функция помогает увеличить скорость чтения при операциях с большими файлами.
    • Adaptive (Адаптивно) - контроллер сам решает использовать ли упреждающее чтение, включается только при последовательном чтении одинаковых блоков. При произвольном чтении автоматически не используется.
  • Write Policy - способ записи данных, полученных RAID контроллером, на дисковый массив. По другому эти способы еще называются так: прямая запись (Write Through) и отложенная запись (Write Back).
    • Write Through - данные записываются непосредственно на дисковый массив. Т.е. как только данные получены, они сразу же записываются на диски и после этого контроллер подает сигнал управляющей ОС о завершении операции.
    • Write Back - данные записываются сначала в кэш, и только потом (либо по мере заполнения кэш-а, либо в моменты минимальной загрузки дисковой системы) из кэш-а на диски. При этом, сигнал о завершении операции записи передается управляющей ОС сразу же по получении данных кэш-ем контроллера. Write Back работает быстрее, но при этом надо помнить, что в случае сбоя питания все данные, которые находились в этот момент в кэш-е, будут потеряны. Причем, управляющая ОС (а следовательно и приложение, записывавшее эти данные) ничего об этом "не узнают", так как они уже получили сообщение от контроллера об успешном завершении записи. Например, если в кэше находились данные транзакции сервера СУБД, то СУБД будет уверенна, что с данными все хорошо, хотя на самом деле это не так. Избежать описанной проблемы можно или с помощью установки на RAID контроллер BBU, или посредством подключения всего сервера через источник бесперебойного питания (UPS) с функцией программируемого выключения. RAID контроллеры не позволяют включить функцию Write Back без установленного BBU.
      • Always Write Back - всегда включена политика записи через кэш, не зависимо от присутствия/отсутствия BBU
      • Write Back with BBU - работает только при наличии исправной BBU, т.е. переключится в режим Write Through при отсутствии BBU или ее не достаточном заряде
  • IO Policy - влияет на работу кеша при операциях чтения и не зависит от состояния read-ahead.
    • Cache I/O — все операции чтения кешируются.
    • Direct I/O — операции чтения не кешируются. При использовании этого режима данные из дисковой подсистемы паралельно направляются в кеш и в ОС. В случае повторного чтения того же блока, сперва блок берётся из кеша.
  • Drives Cache - кэширование дисков
    • Enable - включено
    • Disable - выключено, лучше выбирать это если нет online ибп или bbu
    • Unchanged - не изменять текущую политику кэширования
  • Disable BGI (Disable background initialization)
    • No - background initialization включено. Значение по умолчанию.
    • Yes - background initialization  отключено.
  • BBU (Battery Backup Unit) необходим для предотвращения потери данных находящихся в кэш-е RAID контроллера и еще не записанных на диск (отложенная запись - "write-back caching"), в случае аварийного выключения компьютерной системы. Существуют такие виды BBU:
    • Просто BBU - аккумулятор, который обеспечивает резервное питание кэша через RAID контроллер.
    • Переносимые (Transportable) BBU (tBBU) - аккумулятор, который размещен непосредственно на модуле кэш и питает его независимо от RAID контроллера. В случае выхода из строя RAID контроллера, это позволяет перенести данные, сохраненные в кэш-е, на резервный контроллер и уже на нем завершить операцию записи данных.
    • Flash BBU - в случае сбоя питания RAID контроллер копирует содержимое кэш-а в энергонезависимую память. Питание, необходимое для завершения этого процесса, обеспечивается встроенным супер-конденсатором. После восстановления питания, данные из флэш памяти копируются обратно в кэш контроллера.
Понравилось? =) Поделись с друзьями:

Обсудить