Вопрос: Каковы различные широко используемые уровни RAID и когда я должен их рассматривать?


Это Канонический вопрос о уровнях RAID.

Что:

  • обычно используются уровни RAID (включая семейство RAID-Z)?
  • развертывания обычно встречаются?
  • преимущества и ловушки каждого?

173
2017-12-08 19:40


Источник


@ erimar77 Точкой сети StackExchange является сбор всех знаний по указанному предмету в сети SE, Это означает, что данные в Википедии бесполезны для миссии. Я довольно хорошо разбираюсь в RAID, поэтому мне не нужен ответ, но это должен быть канонический вопрос. Конический вопрос - это вопрос, который дает окончательный ответ на общую проблему, которую мы можем указать на все дубликаты. «Просто google it» или «это в Википедии» не являются приемлемыми ответами. Однако статья в Википедии очень хороша. - MDMarra
Скопировано в Суперпользователь я могу VTC как дубликат там. Скопируйте ответ на Суперпользователь (или позвольте мне скопировать его сейчас). - Hennes


Ответы:


RAID: почему и когда

RAID - это резервный массив независимых дисков (некоторые из них учат «Недорого», чтобы указать, что они «нормальные» диски, исторически были внутренние избыточные диски, которые были очень дорогими, поскольку они больше не доступны, сокращенное сокращено).

На самом общем уровне RAID представляет собой группу дисков, которые действуют на одни и те же чтения и записи. SCSI IO выполняется на томе («LUN»), и они распределяются по базовым дискам таким образом, что это приводит к увеличению производительности и / или увеличению избыточности. Увеличение производительности - это функция чередования: данные распространяются на несколько дисков, чтобы позволить чтению и записи использовать все очереди IO дисков одновременно. Резервирование - это функция зеркалирования. Все диски можно хранить в виде копий, или отдельные полосы можно писать несколько раз. В качестве альтернативы, в некоторых типах рейдов вместо копирования бит данных для бит избыточность достигается за счет создания специальных полос, содержащих информацию о четности, которая может использоваться для воссоздания любых потерянных данных в случае сбоя оборудования.

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

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

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


Прямой прикрепленный RAID: программное обеспечение и аппаратное обеспечение

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

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

Вообще говоря, если кто-то собирается выбирать программный RAID, им следует избегать FakeRAID и использовать собственный пакет ОС для своей системы, такой как Dynamic Disks в Windows, mdadm / LVM в Linux или ZFS в Solaris, FreeBSD и других связанных дистрибутивах , FakeRAID использует комбинацию аппаратного и программного обеспечения, что приводит к первоначальному появлению аппаратного RAID, но фактическая производительность программного RAID. Кроме того, чрезвычайно сложно переместить массив на другой адаптер (если оригинал не работает).


Централизованное хранилище

Другое место RAID распространено на центральных устройствах хранения, обычно называемых SAN (Storage Area Network) или NAS (Network Attached Storage). Эти устройства управляют собственным хранилищем и позволяют прикрепленным серверам получать доступ к хранилищу в разных моделях. Поскольку множество рабочих нагрузок содержатся на одних и тех же немногих дисках, обычно требуется высокий уровень резервирования.

Основное различие между NAS и SAN заключается в экспорте уровня блока и файловой системы. SAN экспортирует цельное «блочное устройство», такое как раздел или логический том (включая те, что построены поверх RAID-массива). Примеры SAN включают Fibre Channel и iSCSI. NAS экспортирует «файловую систему», такую ​​как файл или папку. Примеры NAS включают в себя CIFS / SMB (совместное использование файлов Windows) и NFS.


RAID 0

Хорошо, когда: Скорость любой ценой!

Плохо, когда: вы заботитесь о своих данных.

RAID0 (aka Striping) иногда упоминается как «объем данных, который вы оставите при сбое диска». Он действительно работает против зерна «RAID», где «R» означает «Redundant».

RAID0 берет ваш блок данных, разбивает его на столько частей, сколько у вас есть диски (2 диска - 2 штуки, 3 диска - 3 штуки), а затем записывает каждую часть данных на отдельный диск.

Это означает, что сбой одного диска разрушает весь массив (потому что у вас есть часть 1 и часть 2, но нет части 3), но он обеспечивает очень быстрый доступ к диску.

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

Общее используемое дисковое пространство представляет собой сумму всех дисков в массиве, добавленных вместе (например, 3x 1TB дисков = 3TB пространства)

RAID 1


RAID 1

Хорошо, когда: у вас ограниченное количество дисков, но требуется избыточность

Плохо, когда: вам нужно много места для хранения

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

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

Обычно он используется на небольших серверах с очень небольшим расширением диска, например серверами 1RU, которые могут иметь место только для двух дисков или на рабочих станциях, требующих избыточности. Из-за высоких накладных расходов на «потерянное» пространство это может быть дорогостоящим с небольшими, высокоскоростными (и дорогостоящими) дисками, поскольку вам нужно потратить в два раза больше денег, чтобы получить тот же уровень полезного хранения.

Общее используемое дисковое пространство - это размер самого маленького диска в массиве (например, 2x 1 ТБ дисков = 1 ТБ пробела).

RAID 1


RAID 1E

1E Уровень RAID похож на RAID 1, поскольку данные всегда записываются на (по крайней мере) два диска. Но в отличие от RAID1, он позволяет нечетное количество дисков просто чередовать блоки данных между несколькими дисками.

Характеристики производительности аналогичны RAID1, отказоустойчивость аналогична RAID 10. Эта схема может быть расширена до нечетных номеров дисков более трех (возможно, называется RAID 10E, хотя и редко).

RAID 1E


RAID 10

Хорошо, когда: вы хотите скорость и избыточность

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

RAID 10 представляет собой комбинацию RAID 1 и RAID 0. Порядок 1 и 0 очень важен. Скажем, у вас есть 8 дисков, он создаст 4 массива RAID 1, а затем применит массив RAID 0 поверх 4 массивов RAID 1. Для этого требуется не менее 4 дисков, а дополнительные диски должны быть добавлены попарно.

Это означает, что один диск из каждой пары может выйти из строя. Поэтому, если у вас есть наборы A, B, C и D с дисками A1, A2, B1, B2, C1, C2, D1, D2, вы можете потерять один диск из каждого набора (A, B, C или D) и все еще иметь функционирующий массив.

Однако, если вы потеряете два диска из одного и того же набора, тогда массив полностью потерян. Вы можете проиграть вплоть до (но не гарантируется) 50% дисков.

Вам гарантируется высокая скорость и высокая доступность в RAID 10.

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

Доступное дисковое пространство составляет 50% от общей суммы пространства. (например, 8x 1TB приводов = 4 ТБ полезного пространства). Если вы используете разные размеры, с каждого диска будет использоваться только самый маленький размер.

Стоит отметить, что драйвер программного обеспечения raid linux ядра, называемый md, позволяет использовать конфигурации raid10 с нечетным количеством дисков, то есть 3 или 5 дисков raid10:

https://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10

RAID 10


RAID 01

Хорошо, когда: никогда

Плохо, когда: всегда

Это обратная сторона RAID 10. Он создает два массива RAID 0, а затем устанавливает RAID 1 сверху. Это означает, что вы можете потерять один диск из каждого набора (A1, A2, A3, A4 или B1, B2, B3, B4). Это очень редко можно увидеть в коммерческих приложениях, но это возможно сделать с программным RAID.

Чтобы быть абсолютно ясным:

  • Если у вас есть массив RAID10 с 8 дисками и один умирает (мы будем называть его A1), тогда у вас будет 6 избыточных дисков и 1 без резервирования. Если другой диск умирает, есть 85% шанс, что ваш массив все еще работает.
  • Если у вас есть массив RAID01 с 8 дисками и один умирает (мы будем называть его A1), тогда у вас будет 3 избыточных диска и 4 без резервирования. Если другой диск умирает, есть 43% шанс, что ваш массив все еще работает.

Он не обеспечивает дополнительной скорости по сравнению с RAID 10, но существенно меньше избыточности и его следует избегать любой ценой.


RAID 5

Хорошо, когда: вам нужен баланс избыточности и дискового пространства или в основном загружаемой случайным образом.

Плохо, когда: у вас высокая рабочая нагрузка на запись или большие диски.

RAID 5 был наиболее часто используемым уровнем RAID в течение десятилетий. Он обеспечивает производительность системы всех дисков в массиве (за исключением небольших случайных записей, которые несут небольшие издержки). Он использует простую операцию XOR для вычисления четности. При сбое одного диска информация может быть восстановлена ​​с остальных дисков с помощью операции XOR по известным данным.

К сожалению, в случае сбоя накопителя процесс восстановления очень интенсивный. Чем больше дисков в RAID, тем дольше будет перестраиваться, и тем выше вероятность отказа второго диска. Поскольку большие медленные диски имеют намного больше данных для перестройки и намного меньшую производительность, чтобы сделать это, обычно не рекомендуется использовать RAID5 с чем-либо 7200 об / мин или ниже.

Максимальный размер рейда5, при котором восстановление почти гарантированно приведет к другому сбою диска, что приведет к потере всех данных, составляет около 12 ТБ.

Эта цифра основана на скорости неуправляемой ошибки чтения (URE) для дисков SATA 10 ^ 14, как это обычно сообщается производителями дисков. На практике это означает, что каждые 100 000 000 000 000 бит диск будет бросать URE. Что более или менее равно 12 ТБ.

Если взять пример рейда 5 с семью дисками 2 ТБ. Когда привод выходит из строя, осталось шесть дисков. Чтобы перестроить рейд, диспетчеру необходимо прочитать шесть дисков по 2 ТБ каждый. Глядя на фигуру выше, почти наверняка произойдет еще одна URE до завершения восстановления. Как только это произойдет, рейд 5 и все данные по нему будут потеряны.

Также необходимо, чтобы RAID 5 был заложен в надежный (резервный) кэш записи. Это позволяет избежать накладных расходов на мелкие записи, а также отвратительное поведение, которое может возникнуть при сбое в середине записи.

RAID 5 является наиболее экономичным решением для добавления избыточного хранилища в массив, так как он требует потери только одного диска (например, 12x 146GB дисков = 1606GB полезного пространства). Он требует как минимум 3 диска.

RAID 5


RAID 6

Хорошо, когда: вы хотите использовать RAID 5, но ваши диски слишком велики или медленны

Плохо, когда: у вас высокая загрузка произвольной записи.

RAID 6 похож на RAID 5, но использует два диска с четностью, а не только один (первый - XOR, второй - LSFR), поэтому вы можете потерять два диска из массива без потери данных. Штраф за запись выше, чем RAID 5, и у вас есть один меньше места на диске.

Стоит подумать, что в итоге рейд6 столкнется с аналогичными проблемами, как с рейдом5. Большие диски вызывают более длительные перестройки и более скрытые ошибки. В конце концов, это приведет к сбою рейда и всех данных до завершения восстановления.

RAID 6


RAID 50

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

Плохо, когда: у вас так много дисков, что возможны многочисленные одновременные сбои до завершения восстановления. Или когда у вас не так много дисков.

RAID 50 - это вложенный уровень, похожий на RAID 10. Он объединяет два или более массива RAID 5 и данные по ним в RAID 0. Это обеспечивает как производительность, так и избыточность нескольких дисков, если несколько дисков потеряны из другой RAID 5.

В RAID 50 емкость диска равна n-x, где x - количество RAID 5, которые чередуются между собой. Например, если простой 6-дисковый RAID 50, самый маленький, если у вас были диски 6x1TB в двух RAID 5, которые затем были перечеркнуты, чтобы стать RAID 50, у вас будет 4TB используемое хранилище.


RAID 60

Хорошо, когда: у вас есть аналогичный вариант использования RAID 50, но вам нужно больше избыточности.

Плохо, когда: у вас нет большого количества дисков в массиве.

RAID 6 относится к RAID 60, поскольку RAID 5 относится к RAID 50. По сути, у вас есть более одного RAID 6, которые затем чередуются в RAID 0. Эта настройка позволяет использовать до двух членов любого отдельного RAID 6 в наборе для отказа без потери данных. Время перестройки массивов RAID 60 может быть существенным, поэтому обычно рекомендуется иметь один горячий запас для каждого члена RAID 6 в массиве.

В RAID 60 емкость диска равна n-2x, где x - количество RAID 6, которые чередуются между собой. Например, если простой 8-дисковый RAID 60, минимально возможный, если у вас были диски 8x1TB в двух RAID 6, которые затем были чередоваться, чтобы стать RAID 60, у вас было бы 4TB используемое хранилище. Как вы можете видеть, это дает такое же количество полезного хранилища, которое RAID 10 предоставит для 8-элементного массива. Хотя RAID 60 будет немного более избыточным, время восстановления будет значительно больше. Как правило, вы хотите рассматривать RAID 60 только в том случае, если у вас большое количество дисков.


RAID-Z

Хорошо, когда: вы используете ZFS в системе, которая ее поддерживает.

Плохо, когда: производительность требует аппаратного ускорения RAID.

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

Пример может сделать это более понятным. Предположим, у вас есть 3 диска в ZFS RAID-Z пуле, размер блока 4 КБ. Теперь вы пишете файл в систему, который составляет ровно 16 КБ. ZFS разделит это на четыре блока 4 КБ (как и обычная операционная система); то он рассчитает два блока четности. Эти шесть блоков будут размещены на дисках, аналогичных тому, как RAID-5 будет распространять данные и четность. Это улучшение по сравнению с RAID5 в том, что для расчета четности не было чтения существующих полос данных.

Другой пример основан на предыдущем. Скажем, файл был всего 4 КБ. ZFS все равно придется строить один блок четности, но теперь нагрузка записи уменьшается до 2 блоков. Третий диск будет бесплатным для обслуживания любых других одновременных запросов. Аналогичный эффект будет наблюдаться в любое время, когда записываемый файл не кратен размеру блока пула, умноженному на количество дисков меньше единицы (т.е. [Размер файла] <> [Размер блока] * [Приводы - 1]).

Обработка ZFS как Volume Management, так и File System также означает, что вам не нужно беспокоиться о выравнивании разделов или размеров блоков. ZFS обрабатывает все это автоматически с помощью рекомендованных конфигураций.

Природа ZFS противодействует некоторым классическим предостережениям RAID-5/6. Все записи в ZFS выполняются в режиме копирования на запись; все измененные блоки в операции записи записываются в новое место на диске, вместо того, чтобы перезаписывать существующие блоки. Если по какой-либо причине сбой записи невозможен, или система не работает в середине записи, транзакция записи либо происходит полностью после восстановления системы (с помощью журнала намерений ZFS), либо вообще не возникает, избегая потенциального повреждения данных. Еще одна проблема с RAID-5/6 - потенциальная потеря данных или молчание данных при восстановлении; регулярный zpool scrub операции могут помочь поймать повреждение данных или проблемы с диском, прежде чем они приведут к потере данных, а контрольная сумма всех блоков данных обеспечит обнаружение всей коррупции во время перестройки.

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

Другие RAID и нестандартные функциональные возможности

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

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


187
2017-12-09 16:08



В настоящее время у меня нет времени, чтобы добавить эту информацию, но объясняя как вы можете использовать неустранимую скорость чтения, чтобы оценить самый большой набор RAID 5, который вы можете использовать с конкретными дисками, будет хорошей идеей. - Hubert Kario
Отличное резюме! У меня есть одно дополнение к RAID5 и RAID6: Часто люди, рассматривающие общую надежность (вероятность катастрофического сбоя массива) массивов, заполненных большим количеством шпинделей или дисков с очень высокой пропускной способностью, выбирают RAID6. Они делают это исходя из вероятности возникновения второго сбоя, когда первый диск перестраивается. Мое личное эмпирическое правило - RAID6, когда число шпинделей больше 8 или когда отдельные диски больше 1 ТБ. Я не смог найти канонический калькулятор, но Google и известное время для восстановления помогут вам хорошо рассчитать. - JGurtz
Возможно, стоит добавить примечание, что программное обеспечение Linux RAID10 является нестандартным. Это позволяет использовать необычные и потенциально полезные макеты. en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10 - Zoredache
Может стоить, в том числе, разъяснение штрафа за пени и полоса. RAID 2 или 3 может стоить почетного упоминания, но я не знаю никаких «реальных» реализаций. Однако - NetApp по-прежнему использует RAID4 (и RAID-DP в основном RAID-4 с дополнительным устройством контроля четности). - Sobrique
RAID 6: Должен ли LSFR быть LFSR (регистр сдвига с линейной обратной связью)? - Michael Kjörling


Также RAID ОДИН МИЛЛИОН !!!!

128 Диски, поэтому чтение было бы быстрым, ужасным, но очень надежным, я бы подумал, о, и вы получите 1/128-е место в свободном пространстве, так что это не здорово с точки зрения бюджета. Не делайте этого с флеш-накопителями, я пытался и поджег атмосферу ...

enter image description here


55



О Боже. Теперь Чоппер сходит с ума. - MDMarra
Я ошибался в своей математике? - Chopper3
Вы знаете, что я собираюсь на самом деле построить это право? - Chopper3
Raid 1000000 потребует как минимум 128 дисков, но он будет содержать 64 дисковых пространства для хранения, он имел бы такую ​​же наихудшую производительность записи, как Raid 1, и любые 2 сдерживающих отказа диска могли бы убить массив. Вы описывали Raid 0111111, который имел бы довольно хорошую надежность (Raid 11111110 должен был бы повысить надежность при аверсаже). - Kevin Cathcart
О, прекрасна. Двоичные уровни RAID. Что дальше? - Michael Kjörling