Является ли RAID5 более надежным, чем RAID1

12

Я собираюсь заменить старый аппаратный массив RAID5 на программный массив Linux1 RAID1. Я разговаривал с другом, и он утверждал, что RAID5 был более надежным, чем RAID1.

Он утверждал, что с RAID5 при чтении считывались данные о четности, чтобы убедиться, что все диски возвращали правильные данные. Он также заявил, что ошибки RAID1, возникающие на диске, останутся незамеченными, поскольку такая проверка не выполняется с RAID1.

Я вижу, как это может быть правдой, но также вижу, что все зависит от того, как реализованы рассматриваемые системы RAID. Конечно, системе RAID5 не нужно читать и проверять данные о четности при чтении, а система RAID1 может так же легко считывать данные со всех дисков при чтении, чтобы проверить, что все они содержат одни и те же данные и, следовательно, достичь одинакового уровня надежности ( с соответствующей потерей производительности).

Таким образом, вопрос в том, что на самом деле делают системы RAID5 / RAID1 в реальном мире? Системы RAID5 проверяют данные о четности при чтении? Существуют ли системы RAID1, которые читают со всех дисков и сравнивают данные на чтение?

andynormancx
источник

Ответы:

22

RAID-5 - это отказоустойчивое решение, а не решение для обеспечения целостности данных .

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

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

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

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

duffbeer703
источник
6

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

Из PDF под SATAssure (тм) Плюс:

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

Интересно, что некоторые производители суетятся из-за того, что они всегда вычисляют четность, и это заставляет меня думать, что это относительно редко встречается на аппаратных контроллерах. Также следует отметить, что такие системы, как ZFS и WAFL (netapp), выполняют вычисления четности для каждого чтения.

Джеймс
источник
Эта ссылка выглядит интересной, но действительно ли она прямо говорит где-нибудь на этой странице или в брошюре, что они пересчитывают паритет во всех чтениях?
andynormancx
Я добавил цитату из PDF. Обратите внимание, что коробки S2A - тихий высокий класс.
Джеймс
3

В RAID-5 четность обычно читается только при перестроении массива, а не при обычном чтении. Это так, что чтение может быть более случайным и быстрым (так как вам не нужно читать и вычислять четность для всей полосы каждый раз, когда вы хотите получить 1К данных из массива).

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

Большинство подсистем RAID зависят от диска, чтобы сообщить контроллеру или компьютеру, когда он выходит из строя.

Так RAID-5 "более устойчивый"? Ответ, это зависит. RAID-5 позволяет получить более эффективное хранилище для заданного количества дисков, чем RAID-1; хотя для обеспечения эффективного хранилища за пределами одного диска RAID-1 необходимо комбинировать с RAID-0 либо в виде полосы массивов RAID-1, либо в виде RAID-1 через две полосы RAID-0.

(Я предпочитаю первое, поскольку сбой одного диска приведет к удалению одного элемента RAID-1, а это означает, что для восстановления потребуется только один диск. Во втором случае сбой одного диска убивает элемент RAID-0, а это означает, что диски будут участвовать в восстановлении, когда диск будет заменен.)

Это также приводит к обсуждению «фантомной записи», когда электронная схема привода сообщает, что запись была успешной, но по какой-либо причине запись никогда не поступает на диск. Это случается Учтите, что для массива RAID-5, когда у вас есть сбой диска, массив ДОЛЖЕН прочитать ВСЕ секторы на ВСЕХ выживших дисках ОТЛИЧНО для восстановления. NetApp утверждает, что большой размер дисков плюс большой размер групп рейдов означает, что в некоторых случаях ваши шансы на сбой во время восстановления могут быть такими же, как каждый десятый. Таким образом, они рекомендуют использовать большие диски в больших группах RAID с двойной четностью (что, я думаю, связано с RAID-6).

Я узнал об этом на техническом обсуждении в NetApp, которое провели несколько их инженеров.

Дэвид Макинтош
источник
Я бы не использовал термин «более эффективный» ... «больше возможностей» было бы более уместным. На мой взгляд, решение, которое повышает вероятность того, что я потеряю свои данные, не является более эффективным.
duffbeer703
Все это компромисс стоимости и стоимости. RAID-5 более экономичен в хранении, а RAID-1 или RAID-1 + 0 (0 + 1) более эффективен в отношении надежности.
Дэвид Макинтош
Другая причина, по которой 1 + 0 предпочтительнее 0 + 1, состоит в том, что 1 + 0 может выжить 4 из 6 возможных «второй сбой диска до замены первого вышедшего из строя диска и перестроение массива», где 0 + 1 может выжить только 2 из 6. Хотя 0 + 1 может пережить сбой контроллера на одном плече (где 0 + 1 не может), это гораздо реже, чем сбой диска (даже отказ нескольких дисков).
Дэвид Спиллетт
RAID-DP (реализация NetApp с двойной четностью) представляет собой RAID-6. RAID-6 (в отличие от RAID-5) функционально определяется как RAID, который может пережить два отказа диска. RAID-DP отличается от типичного RAID-6 тем, что он не распределяет четность - WAFL не записывает случайные записи случайным образом, поэтому распределение четности не дает никакой выгоды.
Капитан Сегфо
3

Обычная реализация RAID обычно не проверяет четность доступа к данным. Я никогда не видел ни одного. Некоторые реализации RAID5 читают данные о четности для потоковых чтений, чтобы предотвратить ненужный поиск (дешевле выбрасывать каждый n-й блок, чем заставлять диск искать каждый n-й блок). Реализации RAID1 не могут проверить, потому что они считывают производительность с обоих дисков (ну, в подавляющем большинстве реализаций RAID1. Горстка позволяет выбрать, что может быть полезно, если один диск намного медленнее другого и не требует интенсивной записи). груз.)

Некоторые проверяют с помощью фоновой «очистки». В этом случае RAID6 выигрывает, поскольку он может восстановить данные, а RAID5 и RAID1 находятся в одинаковой ситуации, которую вы можете определить, но не исправить. (Это не совсем так, поскольку накопитель может обнаружить неверный CRC, вернуть ошибку и позволить перезаписать блок из проверки на четность. Это происходит довольно часто).

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

Единственное решение для файловой системы и единственное решение RAID, которое делает это для вас, это ZFS.

Карлито
источник
0

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

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

RAID5 имеет бит четности. Это означает, что вы можете потерять диск в своем наборе RAID и продолжить, как будто ничего не произошло. Тем не менее, должна быть произведена контрольная сумма данных, записанных на диск, чтобы убедиться, что они соответствуют тому, что получилось по проводам.

В этом случае контрольные суммы полностью независимы от RAID, который может или не может быть выполнен с кучей дисков

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

Бен Квип
источник
Он говорил о паритете. Он утверждал, что на RAID5 информация о четности была получена при чтении и сравнивалась с данными, поступающими с других дисков, чтобы убедиться в отсутствии ошибок чтения.
andynormancx
5
Я не согласен с вашей рекомендацией аппаратного RAID поверх программного обеспечения во всех случаях. С современным аппаратным обеспечением программный RAID может быть таким же быстрым, как и аппаратный, если на вашем сервере достаточно свободного ЦП (который всегда будет у меня). Кроме того, аппаратный RAID имеет некоторые недостатки, основной из которых является ситуация восстановления, вам нужна соответствующая карта RAID. С программным RAID-массивом вы можете вытащить диск из машины, вставить его в другой, и вы получите новую карту RAID, которая точно соответствует старой.
andynormancx
Я пытался понять, о каком контексте он говорил. Как я понимаю, контрольные суммы используются при записи на диск (независимо от RAID). Четность используется для размещения порций данных на разных дисках и для восстановления массива в случае сбоя диска. Четность не используется на всех уровнях RAID
Бен Квик,
1
Пожалуйста, смотрите en.wikipedia.org/wiki/… для обсуждения программного обеспечения и аппаратного RAID. Очевидно, что выбранная вами реализация зависит от вашей среды и ваших требований. Я предпочитаю аппаратный RAID, а не программный RAID
Бен Квик,
Я понимаю, забудь, что я когда-либо упоминал контрольные суммы. Я обновил вопрос, чтобы устранить путаницу. Вопрос в том, проверяют ли системы RAID5 данные о четности при чтении.
andynormancx
0

Я собираюсь заменить старый аппаратный массив RAID5 на программный массив Linux1 RAID1. Я разговаривал с другом, и он утверждал, что RAID5 был более надежным, чем RAID1.

Это будет зависеть от типа реализации рейда (hw / sw), дисков, контроллера рейда, если таковой имеется, и его особенностей.

Он утверждал, что с RAID5 при чтении считывались данные о четности, чтобы убедиться, что все диски возвращали правильные данные. Он также заявил, что ошибки RAID1, возникающие на диске, останутся незамеченными, поскольку такая проверка не выполняется с RAID1.

это действительно имеет некоторый небольшой смысл, но не совсем :), что происходит - если записываются неправильные данные, на зеркале они будут отправляться на оба диска, и на уровне четности raid5 они будут генерироваться и распространяться по всем дискам. проверка чтения / записи данных выполняется микропрограммой диска и контроллера и не имеет отношения к уровням рейдов.

So the question is, what do RAID5/RAID1 systems in the real world

на самом деле делать? Системы RAID5 проверяют данные о четности при чтении? Существуют ли системы RAID1, которые читают со всех дисков и сравнивают данные на чтение?

Как я уже сказал, проверки не являются частью алгоритма рейда, хотя некоторые контроллеры могут иметь что-то дополнительно реализованное.

Надежность массива зависит от качества накопителей (2,5-дюймовые накопители, как правило, живут дольше, чем 3,5 дюйма из-за снижения скорости RV; по моему опыту, НИКОГДА не покупайте жесткие диски SCSI / SAS maxtor - у них ужасные проблемы с прошивкой), окружающая среда (контроль температуры и влажности), сам контроллер (есть ли у него BBU? Прошивка обновлена? Реальный ли это рейд или фиктивный?), количество блоков питания на сервере, качество ИБП и т. д.

dyasny
источник
Я боюсь, что вы не ответили на вопрос, который очень точно о том, что реальные реальные реализации RAID5 делают в отношении проверки данных четности на чтение.
andynormancx
0

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

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

Так что, с моей точки зрения, да, он мог бы сделать это, но если бы он это сделал, это было бы неэффективно, и я сомневаюсь, что что-либо будет реализовано таким образом.

Опять же, у меня нет личных знаний о реальных реализациях.

wfaulk
источник
0

Системы RAID5 проверяют данные о четности при чтении?

Это не имеет смысла. Что вы делаете, когда обнаруживаете несоответствие паритета? (Как вы узнаете, какой блок неправильный?)

Для случайного чтения проверка паритета будет дорогой. Обычно вы можете обслуживать случайное чтение, просто просматривая один диск, но если вы хотите проверить четность, вам нужно будет прочитать все диски при каждом чтении. (Это все еще может иметь смысл, если бы вы могли что-нибудь с этим сделать!)

Обратите внимание, что RAID-1 также имеет эту проблему - что имеет смысл, когда вы рассматриваете RAID-1 как двухдисковый RAID-5.

Капитан сегфо
источник
0

Я немного подумал о том, что RAID-1 должен быть быстрее при чтении, чем RAID-5, так как он читает по обоим дискам одновременно.

Теперь, поскольку четность не читается на RAID-5, если массив не нуждается в перестройке, он фактически равен массиву RAID-0 с точки зрения чтения, я прав?

RAID-0 обычно считается самым быстрым уровнем (хотя он должен называться «AID», поскольку нет никакой избыточности). :-D

Говоря о программном RAID для Linux, простой тест - с использованием hdparm - подтверждает эту теорию: мои массивы RAID-5 всегда показывают более высокую скорость чтения, чем мои массивы RAID-1.

НО: похоже, деградированный массив работает намного медленнее, чем обычный работающий массив! Я только что проверил это с Fedora 9, работающей на 4 WD 1 ТБ дисках с разными уровнями RAID. Вот результаты:

Ухудшенный RAID-5: скорость чтения 43 МБ / с Нормальный RAID-5: скорость чтения 240 МБ / с (!) RAID-1: скорость чтения 88 МБ / с

Поскольку допустимая потеря дисков одинакова в RAID-1 и RAID-5 (а именно в одном), я думаю, что RAID-5 должен превзойти RAID-1 во всех аспектах, что дает большую емкость по отношению к количеству дисков, используемых в массиве, и Отказоустойчивость. Это приводит к заключению, в котором говорится, что RAID-6 превосходит любой другой уровень RAID, так как он работает быстрее, чем RAID-0 при обычном чтении (нет чтения по четности с двух дисков четности), и все же устойчив к отказам в случае потери член массива. ;-)


источник
Некоторые интересные вещи, но вы повторили ошибку RAID1, которую я слышу все время. RAID1 не обязательно означает, что он может выжить только после сбоя одного диска. Вам не нужно иметь только два диска в вашем массиве RAID1. Например, у вас есть массив RAID1 с 3 дисками, он переживет два сбоя диска, а также увеличится производительность чтения ( если ваша система RAID читает с нескольких дисков при чтении).
andynormancx
-1

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

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

sybreon
источник
Боюсь, ваш ответ равен «Я не знаю, проверяют ли какие-либо реализации RAID5 четность при чтении», и поэтому не отвечает на вопрос.
andynormancx
Это правильный ответ, потому что никто не будет знать наверняка, кроме человека, который действительно написал драйвер.
Sybreon
-2

afaik, я не профессионал хранения 24/7, контроллер всегда проверяет, что записано и прочитано с дисков. то есть с raid1 у вас немного хуже записи, чем на одном диске, но ваши чтения немного быстрее (должен записать файл на два диска, но может прочитать одну часть с первого диска, а другую часть с второго диска).

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

Для raid 5 вам нужно как минимум 3 диска и вы можете использовать диски N-1 для данных. В raid 1 вам всегда нужно четное количество дисков и вы можете использовать N / 2 диски для данных.

Так что в больших рейдах уровень 5 дает вам больше памяти, а рейд 1 - больше избыточности.

Если под более надежным подразумевается то, что предлагает больше избыточности, чем рейд 1.

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

Так что на самом деле невозможно сказать, что один рейд более надежен, чем другой (возможно, рейд 6 всегда более надежен, чем рейд 5 за счет потери места на диске)

mrt181
источник
1
Боюсь, это не совсем отвечает на мой вопрос, мой вопрос очень точно о том, проверяют ли типичные реализации RAID5 данные о четности при чтении. А для записи RAID1 не нужно четное количество дисков. Вы вполне можете иметь массив RAID1 с более чем двумя дисками, увеличивая таким образом избыточность и снижая скорость записи.
andynormancx
1
«контроллер всегда проверяет, что записано и прочитано с дисков». Это не тот случай, когда контроллер может считывать данные с обоих дисков, но некоторые контроллеры возвращают первые полученные данные.
Джеймс
Я думаю, что можно сказать, что RAID1 нужно четное количество дисков, и что третье зеркало - это нечто иное, чем RAID1. Так мало реализаций поддерживают третье зеркало, что терминология никогда не стандартизировалась.
Карлито