Ошибки контроля четности intel raid

RAID 5

RAID 5 являются отказоустойчивым уровнем RAID, в котором для защиты данных применяется контроль по четности. Каждый слой данных (stripe) RAID создает информацию для контроля по четности, хранимую на одном из дисков в составе слоя. В сочетании с другими дисками в составе слоя RAID, информация для контроля по четности может быть использована для воссоздания данных с любого из дисков слоя. Поэтому массивы RAID 5 устойчивы к отказу одного из дисковых накопителей, входящего в состав массива. Информация для контроля по четности распределяется поочередно по всем дискам массива RAID (рис. 5.11).

RAID 5

Рис.
5.11.
RAID 5

Достоинством RAID 5 является то, что дисковая память, доступная при применении этого уровня RAID, составляет (n-1)*(объем одного диска) где n равно количеству дисков в массиве. Так, массив RAID 5, составленный из 10 дисков, будет иметь объем, как у 9 дисков, что делает его экономичным и в то же время отказоустойчивым решением.

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

Контроль по четности в массивах RAID 5

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

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

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

В нашем примере будем считать, что контроль по четности должен обеспечить четность суммы битов, т.е. сумма всех битов должна давать результат 0 (имеется в виду сложение по модулю 2, т.е. результат сложения битов должен быть четным. – Прим. пер.). Если первый бит первого диска равен 0, первый бит второго диска равен 1, первый бит третьего диска равен 1, первый бит четвертого диска равен 1, то бит контроля по четности для этих битов должен быть равен 1, чтобы дополнить эти биты до четного числа (см. табл. 5.2).

Таблица
5.2.
Пример контроля по четности для массива RAID

диск 1:
бит 1
диск 2:
бит 1
диск 3:
бит 1
диск 4:
бит 1
диск 5:
бит контроля по четности
Сумма битов
0 1 1 1 1 4(четная)

Контроль по четности следует понимать как действия, применяемые к отдельным битам. Хотя слой диска содержит много битов, контроль по четности для отдельных битов позволит восстановить все данные. Биты контроля по четности, перечисленные в табл. 5.2, создаются на самом деле по отдельным битам, составляющим слои данных. Несмотря на то, что дисковые накопители разбиваются на куски данных (слои), с возможными размерами по 64 Кб и более, но контроль по четности, как мы вам показали, может быть произведен на уровне отдельных битов. На самом деле контроль по четности вычисляется при помощи алгоритмов более сложных, чем тот, который мы сейчас описали.

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

Создание данных для контроля по четности

Как мы уже объяснили в данном разделе, данные контроля по четности, применяемые в массивах RAID 5, составляются из битов, дополняющих до четного числа сумму одинаково отстоящих от начала битов всех дисковых накопителей. Но вам, конечно,понятно, что было бы непрактичным, чтобы контроллер массива считывал бы все данные со всех дисковых накопителей при каждой операции ввода-вывода. Это было бы неэффективно и медленно.

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

С этого момента, всякий раз при записи данных на дисковый накопитель, должно производиться чтение данных с диска данных и с диска контроля по четности. Новые данные должны сравниваться со старыми данными, и если какой-либо бит данных поменялся, то данные контроля по четности для этого бита тоже должны быть изменены. Эта проверка производится при помощи логической операции «исключающее ИЛИ» ( XOR, exclusive OR ).Поэтому требуется чтение данных только с диска данных и диска контроля по четности, а не со всех дисков массива. Как только описанная операция вычисления изменений данных контроля по четности будет завершена, запись должна быть произведена на оба диска, т.к. операция с данными контроля по четности затрагивает весь слой данных. Таким образом, для выполнения каждой записи в том RAID 5 производятся четыре физических операции ввода-вывода: два чтения (одно – чтение с диска данных, другое – чтение с диска контроля по четности) и две записи (сами данные и данные контроля по четности). Но в массивах RAID 5 данные контроля по четности равномерно распределены по всем дисковым накопителям, поэтому и нагрузка на накопители будет распределена равномерно.

Рекомендации по применению RAID 5

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

  • Применяйте RAID 5 для томов, предназначенных только для чтения. Любой том дисков, операции записи на котором превышают 10% от объема ввода-вывода, не следует реализовывать как RAID 5.
  • Применяйте кэширование записи для томов RAID 5. Так как запись для RAID 5 не завершена до тех пор, пока не будут выполнены два чтения и две записи, то при использовании кэша записи время отклика для записи может быть сокращено. (Используя кэш записи, обязательно применяйте батарею для бесперебойного электропитания.) Но надо отметить, что если поток записываемых данных превысит производительность записи дисков, то кэширование записи вам не поможет. В любом случае, вы не должны превышать пропускную способность дисков.

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

RAID 10

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

RAID 10

Рис.
5.12.
RAID 10

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

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

Рекомендации по применению RAID 10

RAID 10 обеспечивает высокую производительность и высокую степень отказоустойчивости. Уровень RAID 10 следует применять, когда нужна работа с большими томами, для которых операции записи составляют более 10% от общего объема операций ввода-вывода. Можно дать следующие рекомендации по применению RAID 10:

  • Применяйте RAID 10 всякий раз, когда операции записи составляют более 10% от общего объема операций ввода-вывода для массива RAID.
  • Применяйте RAID 10, когда производительность является критически важной. Так как в RAID 10 применяется расслоение данных, то вы будете иметь превосходную производительность.
  • Для томов RAID 10 следует применять кэширование записи. Так как запись для RAID 10 не завершена до тех пор, пока не будут выполнены обе операции записи, то благодаря применению кэша время записи может быть сокращено. Кэширование записи безопасно только когда вы применяете батарею для бесперебойного электропитания для защиты кэша.

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

RAID-info-000.pngRAID-массивы давно и прочно вошли в повседневную деятельность администраторов даже небольших предприятий. Трудно найти того, кто никогда не использовал хотя бы «зеркало», но тем не менее очень и очень многие с завидной периодичностью теряют данные или испытывают иные сложности при эксплуатации массивов. Не говоря уже о распространенных мифах, которые продолжают витать вокруг вроде бы давно избитой темы. Кроме того, современные условия вносят свои коррективы и то, чтобы было оптимальным еще несколько лет назад сегодня утратило свою актуальность или стало нежелательным к применению.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Чем является и чем не является RAID-массив

Наиболее популярен миф, что RAID предназначен для защиты данных, многие настолько верят в это, что забывают про резервное копирование. Но это не так. RAID-массив никоим образом не защищает пользовательские данные, если вы захотите их удалить, зашифровать, отформатировать — наличие или отсутствие RAID вам абсолютно не помешает. Две основных задачи RIAD-массивов — это защита дисковой подсистемы от выхода из строя одного или нескольких дисков и / или улучшение ее параметров по сравнению с одиночным диском (получение более высокой скорости обмена с дисками, большего количества IOPS и т.д.).

Здесь может возникнуть некоторая путаница, ведь сначала мы сказали, что RAID не защищает, а потом выяснилось, что все-таки защищает, но никакой путаницы нет. Основную ценность для пользователя представляют данные, причем не некоторые абстрактные нули-единицы, кластеры и блоки, а вполне «осязаемые» файлы, которые содержат необходимую нам информацию, иногда очень дорогостоящую. Мы будем в последствии называть это пользовательскими данными или просто данными.

RAID-контроллер о данных ничего не знает, он оперирует с блочными устройствами ввода-вывода. И все что поступает к нему от драйвера — это просто поток байтов, который нужно определенным образом разместить на устройствах хранения. Сам набор блочных устройств объединенных некоторым образом отдается системе в виде некоторой виртуальной сущности, которую принято называть массивом, а в терминологии контроллера — LUN, для системы это выглядит как самый обычный диск, с которым мы можем делать все что угодно: размечать, форматировать, записывать данные.

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

Простой пример. Из «зеркала» вылетает один из дисков, со второго система отказывается грузиться, так как часть данных оказалась повреждена (скажем BAD-блок). Сразу возникает масса «претензий» к RAID, но все они беспочвенны. Главную задачу контроллер выполнил — сохранил работоспособность массива. А в том, что размещенная на нем файловая система оказалась повреждена — это вина администратора, не уделившего должного внимания системе.

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

BAD-блоки и неисправимые ошибки чтения

Раз мы коснулись содержимого, то самое время разобраться, что же с ним может быть «не так». Начнем с привычного зла, BAD-блоков. Есть мнение, что если на диске появился сбойный сектор — то диск «посыпался» и его надо менять. Но это не так. Сбойные сектора могут появляться на абсолютно исправных дисках, просто в силу технологии, и ничего страшного в этом нет, обнаружив такой сектор контроллер просто заменит его в LBA-таблице блоком из резервной области и продолжит нормально работать дальше.

Дальше простая статистика, чем выше объем диска — тем больше физических секторов он содержит, тем меньше их физический размер и тем выше вероятность появления сбойных секторов. Грубо говоря, если взять произведенные по одной технологии диски объемом в 1ТБ и 4 ТБ, то у последнего вероятность появления BAD-блока в четыре раза выше.

К чему это может привести? Про ситуацию, когда администратор не контролирует SMART и у диска давно закончилась резервная область мы всерьез говорить не будем, тут и так все понятно. Это как раз тот случай, когда диск реально посыпался и его нужно менять. Большую опасность представляет иная ситуация. Согласно исследованиям, достаточно большие объемы данных составляют т.н. cold data — холодные или замороженные данные — это массивы данных доступ к которым крайне редок. Этом могут быть какие-нибудь архивы, домашние фото и видеоколлекции и т.д. и т.п., они могут месяцами и годами лежать не тронутыми никем, даже антивирусом.

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

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

Ну и наконец самое интересное: неисправимые ошибки чтения — URE (Unrecoverable Read Error) или BER (Bit Error Ratio) — величина, показывающая вероятность сбоя на количество прочитанных головками диска бит. На первый взляд это очень большая величина, скажем для бытовых дисков типичное значение 10^14 (10 в 14 степени), но если перевести ее в привычные нам единицы измерения, то получим примерно следующее:

  • HDD массовых серий — 10^14 — 12,5 ТБ
  • HDD корпоративных серий — 10^15 — 125 ТБ
  • SSD массовых серий — 10^16 — 1,25 ПБ
  • SSD корпоративных серий — 10^17 — 12,5 ПБ

В данном случае в качестве единицы измерения мы использовали десятичные единицы измерения объема, т.е. те, что написаны на этикетке диска, исходя из того, что 1 КБ = 1000 Б.

Что это значит? Это значит, что для массовых дисков вероятность появления ошибки чтения стремится к единице на каждые прочитанные 12,5 ТБ, что по сегодняшним меркам не так уж и много. Если такая ошибка будет получена во время ребилда — это, как и в случае со сбойным сектором, эквивалентно отказу еще одного диска и может привести к самым печальным последствиям.

MTBF — наработка на отказ

Еще один важный параметр, который очень многими трактуется неправильно. Если мы возьмем значение наработки на отказ для современного массового диска, скажем Seagate Barracuda 2 Тб ST2000DM008, то это будет 1 млн. часов, для диска корпоративной серии Seagate Enterprise Capacity 3.5 2 Тб ST2000NM0008 — 2 млн. часов. На первый взгляд какие-то запредельные цифры и судя по ним диски никогда не должны ломаться. Однако этот показатель определяет не срок службы устройства, а среднее вермя между отказами — MTBF ( Mean time between failures ) — а в качестве времени подразумевается время работы устройства.

Если у вас есть 1000 дисков, то при MTBF в 1 млн. часов вы будете получать в среднем один отказ на 1000 часов. Т.е. большие значения оказываются не такими уж и большими. Для оценки вероятности отказа применяется иной показатель — AFR (Annual failure rate) — годовая частота отказов. Ее несложно рассчитать по формуле, где n — количество дисков:

AFR = 1 - exp(-8750*n/MTBF)

Так для одиночного диска массовой серии годовая частота отказов составит 0,87%, а для корпоративных дисков 0,44%, вроде бы немного, но если сделать расчет для массива из 5 дисков, то мы получим уже 4,28% / 2,16%. Согласитесь, что вероятность отказа в 5% достаточно велика, чтобы сбрасывать ее со счетов. В тоже время такое знание позволяет обоснованно подходить к закупке комплектующих, теперь вы можете не просто апеллировать к тому, что вам нужны корпоративные диски, потому что они «энтерпрайз и все такое…», а грамотно обосновать свое мнение с цифрами в руках.

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

RAID-info-002.pngКак можно видеть, в самом начале эксплуатации вероятность отказов наиболее велика, постепенно снижаясь. Этот период, обозначенный на графике t0 — t1, называется периодом приработки. В этот момент вскрывается производственный брак, ошибки в планировании системы, неверные режимы и условия эксплуатации. Повышенная нагрузка увеличивает вероятность отказов, так как позволяет быстрее выявить брак и ошибки эксплуатации.

За ним следует период нормальной эксплуатации t1-t2, вероятность отказов в котором невелика и соответствует расчетным значениям (т.е. тем показателям, которые мы вычислили выше).

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

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

Для жестких дисков и SSD, согласно имеющейся статистики, период приработки где-то равен 3-6 месяцам. А период износовых отказов следует начинать отсчитывать с момента окончания срока гарантии производителя. Для большинства дисков это два года. Это хорошо укладывается в ту же статистику, которая фиксирует увеличение количества отказов на 3-4 году эксплуатации.

Мы не будем сейчас делать выводы и давать советы, приведенных нами теоретических данных вполне достаточно, чтобы каждый мог самостоятельно оценить собственные риски.

Немного терминологии

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

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

RAID-info-001.pngКаждая шайба на схеме представляет один такой блок, для обозначения которого используют термины: Strip, Stripe Unit, Stripe Size или Chunk, Сhunk Size. В русскоязычной терминологии это может быть блок, «страйп», «чанк». Мы, во избежание путаницы с другой сущностью, предпочитаем использовать для его обозначения термин Chunk (чанк, блок), в тоже время встроенный во многие материнские платы Intel RAID использует термин Stripe Size.

Группа блоков (чанков) расположенная по одинаковым адресам на всех дисках массива обозначается в русскоязычных терминах как лента или полоса. В англоязычной снова используется Stripe, а также «страйп» в переводах, что в ряде случаев способно внести путаницу, поэтому при трактовании термина всегда следует учитывать контекст его употребления.

Каждая полоса содержит либо набор данных, либо данные и их контрольные суммы, которые вычисляются на основе данных каждой такой полосы. Глубиной или шириной полосы (Stripe width/depth) называется объем данных, содержащийся в каждой полосе.

Так если размер чанка равен 64 КБ (типовое значение для многих контроллеров), то вычислить ширину полосы мы можем, умножив это значение на количество дисков с данными в массиве. Для RAID 5 из трех дисков — это два, поэтому ширина полосы будет 128 КБ, для RAID 10 из четырех дисков — это четыре и ширина полосы будет 256 КБ.

RAID 0

Перейдем, наконец от теории, к разбору конкретных реализаций RAID. Из всех вариантов RAID 0 — единственный тип массива, который не содержит избыточности, также его еще называют чередующимся массивом или страйпом (Stripe).

RAID-info-003.pngПринцип работы чередующегося массива прост — поток данных делится на блоки (чанки), которые по очереди записываются на все диски массива. При этом ни один диск массива не содержит полной копии данных, зато за счет одновременных операций чтения / записи достигается практически кратный количеству дисков прирост скорости. Объем массива равен сумме объема всех дисков.

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

RAID 1

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

RAID-info-004.pngВходящие данные также разбиваются на блоки и каждый блок записывается на все диски массива, тем самым обеспечивая избыточность. При отказе одного из дисков на втором у нас остается полная копия данных. Дополнительный плюс в том, что для восстановления таких данных не требуется никаких дополнительных операций, вы можете просто присоединить диск к любому ПК и выполнить с него чтение, что важно, если ребилд массива по какой-либо причине сделать не удастся.

Но за это приходится платить большими потерями емкости — емкость массива равна емкости одного диска, поэтому зеркала с более чем двумя дисками на практике не используют. Также это негативно сказывается на быстродействии. Вспомним, что еще одной причиной объединения дисков в массивы является увеличение быстродействия, при этом важна не линейная скорость записи / чтения, а количество операций ввода вывода в секунду — IOPS — которые может предоставить диск.

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

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

Как видим, RAID 0 предоставляет нам высокую производительность при отсутствии надежности, а RAID 1 — высокую надежность без увеличения производительности. Поэтому существуют комбинированные уровни RAID, сочетающие достоинства нескольких типов массивов.

RAID 01 (0+1)

Этот тип массива часто путают с RAID 10, но это неверно, первым числом в наименовании массива всегда указывается вложенный массив, а вторым — внешний. Таким образом RAID 01 — зеркало из страйпов, а RAID 10 — страйп из зеркал. Какая разница? А вот сейчас и посмотрим.

RAID-info-005.pngТак как внешним массивом является RAID 1 — зеркало, то на оба вложенных чередующихся массива подается одинаковый набор данных, который распределяется без избыточности по дискам массива. В итоге получаем два одинаковых RAID 0 массива, которые собраны в зеркало.

Что случится при отказе одного диска? Ничего страшного, массив выдерживает такой отказ. А если выйдут из строя два? В этом случае возможны варианты:

RAID-info-006.png

Для массива из четырех дисков (а это минимальное количество для этого уровня RAID) у нас есть шесть вариантов отказа двух дисков. Исходя из того, что отказ из любого диска RAID 0 является для него фатальным, то получаем 4 отказа из 6 или 66,67%. Т.е. при потере двух дисков вы потеряете свои данные с вероятностью 66,67%, что довольно-таки много.

RAID 10

«Десятка» также собирается минимум из 4 дисков, но внутренняя структуре ее зеркально отличается от 0+1:

RAID-info-007.pngМассив верхнего уровня RAID 0 — делит входящие данные и распределяет их между низлежащими массивами RAID 1. В итоге получаем чередующийся массив из нескольких зеркал. В чем тут принципиальная разница с предыдущим массивом? А вот в чем, снова рассмотрим ситуацию отказа сразу двух дисков:

RAID-info-008.pngВ отличие от страйпа, для отказа зеркала нужен выход из строя обоих диском массива и только эта ситуация приведет к полному отказу RAID 10, из 6 вариантов это произойдет только в двух случаях, т.е. вероятность потери данных при отказе двух дисков в RAID 10 равна 33,33%. А теперь сравните это с 66,77% у RAID 0+1, поэтому в настоящее время применяется исключительно RAID 10, так как при одинаковых показателях производительности обеспечивает гораздо более высокую надежность.

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

На сегодня RAID 10 — наиболее производительный RAID-массив с высокой надежностью, его единственный и довольно существенный недостаток — высокие накладные расходы — 50% (половина дисков используется для создания избыточности).

RAID 5

Существует распространенное заблуждение, что RAID 5 (и RAID 6) — это более «крутые» уровни RAID, правда редко кто при этом может пояснить чем они «круче», но миф продолжает жить и очень часто администраторы выбирают уровень RAID исходя из таких вот заблуждений, а не реальных показателей.

Устройство RAID 5 более сложно, чем у «младших» уровней RAID и здесь появляется понятие контрольной суммы, на же Рarity, четность. В основу алгоритма положена логическая функция XOR (исключающее ИЛИ), так для трех переменных будет справедливо равенство:

a XOR b XOR c = p

Где p — контрольная сумма или четность. При этом мы всегда можем вычислить любую из переменных зная четность и остальные значения, т.е.:

a = p XOR b XOR c
b = a XOR p XOR c
c = a XOR b XOR p

Данные формулы остаются справедливы для любого количества переменных, позволяя обходится единственным значением четности. Таким образом минимальное количество дисков в RAID 5 будет равно трем: два диска для данных и один диск для четности. Раньше существовали реализации RAID 3 и 4, которые использовали для хранения блоков четности отдельный диск, что приводило к высокой нагрузке на него, в RAID 5 поступили иначе.

RAID-info-009.pngЗдесь данные точно также разбиваются на блоки и распределяются по дискам, как в RAID 0, но появляется еще и понятие полосы, для каждой полосы данных вычисляется контрольная сумма и записывается в той же полосе на отдельном диске, т.е. один из дисков полосы выполняет роль диска для хранения четности. В следующей полосе происходит чередование дисков, теперь два других диска будут хранить данные, а третий четность. Таким образом достигается равномерное использование всех дисков, что снижает нагрузку на диски и повышает производительность массива в целом.

Основным стимулом создания RAID 5 было более оптимальное использование дисков в массиве, так в массиве из 3 дисков накладные расходы RAID 5 составят 33%, из 4 дисков — 25 %, из 6 дисков — 16%. Но при этом вырастает пенальти, в RAID 5 на одну операцию записи приходятся операции: чтение данных, чтение четности, запись новых данных, запись четности. Таким образом пенальти для RAID 5 составляет четыре.

Это означает, что производительность на запись массивов из небольшого числа дисков (менее 5) будет ниже, чем у одиночного диска, но производительность чтения будет сравнима с RAID 0. При этом массив допускает отказ любого одного диска.

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

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

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

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

А теперь вспомним значение URE для современных массовых дисков — 10^14, что это значит в нашем случае? А то, что собрав RAID 5 из четырех дисков на 4 ТБ (с объемом данных 12 ТБ) вы с вероятностью очень близкой к 100% получите невосстановимую ошибку чтения при ребилде и потеряете массив полностью.

Но это не значит, что RAID 5 изначально имел столь критические недостатки. Вернемся на 10 лет назад, основной объем ходовых моделей дисков тогда составлял 250-500 ГБ, URE для популярной тогда серии Barracuda 7200.10 был теми же 10^14, а MTBF был немного ниже — 700 тыс. часов.

Допустим мы собрали тогда массив из 4 дисков по 750 ГБ (топовые диски на тот момент), объем данных такого массива составит 2,25 ТБ, вероятность получить URE будет в районе 18%. В общем и целом — немного, большинство успешно реконструировало массив, а голоса тех, кому не повезло, тонули в общем хоре тех, у кого все было хорошо.

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

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

RAID 5E

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

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

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

RAID-info-010.pngТакой подход связан с некоторыми ограничениями, а именно — один раздел на один массив. Из плюсов — более высокая производительность за счет использования дополнительного диска. Что происходит при отказе? Массив автоматически начинает реконструкцию размещая данные в неразмеченной области (производит сжатие), после чего массив фактически превращается в простой RAID 5 и способен выдержать отказ еще одного диска (но не во время перестроения).

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

RAID 5EE

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

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

Также ни RAID 5E, ни RAID 5EE не лишились недостатка простого RAID 5 — на современных объемах массивов вероятность успешного ребилда такого массива очень невелика.

RAID 6

В отличие от RAID 5 этот массив использует две контрольные суммы и два диска четности, поэтому для него понадобятся 4 диска, при этом допускается выход из строя двух из них. Также, как и у RAID 5 алгоритм позволяет использовать всего две контрольные суммы вне зависимости от ширины полосы и общий объем массива всегда будет равен объему всех дисков за вычетом двух. При отказе одного диска RAID 6 выдерживает отказ еще одного, либо ошибку чтения без фатальных последствий.

RAID-info-012.png

Казалось бы, вот он — новый компромисс, замена RAID 5 в современных условиях и т.д. и т.п., но за все надо платить. Одна операция записи на такой массив требует большего количества операций внутри массива: чтение данных, чтение четности 1, чтение четности 2, запись данных, запись четности 1, запись четности 2 — итого 6 операций, таким образом пенальти RAID 6 равен шести.

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

И снова вернемся к мифам: RAID 6 это «круто»? Может быть, во всяком случае за свои данные можно не беспокоиться. А почему так медленно? Так это плата за надежность…

RAID 6E

По сути, тоже самое, что и RAID 5E. Резервный диск точно также распределяется в виде неразмеченного пространства в конце дисков, с теми же самыми ограничениями — один раздел на один массив. Ну и добавьте еще один диск в минимальное количество для массива, для RAID 5E это было 4, для RAID 6E — 5.

RAID 50 и RAID 60

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

Заключение

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

RAID 10 остается наиболее производительным массивом, но имеет большие накладные расходы — 50%.

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

При этом мы оставили за кадром многие технологии, скажем RAID DP — реализацию RAID 6 от производителя систем хранения NetApp, которая предлагает все достоинства RAID 6 вкупе в высокой производительностью, на уровне RAID 0. Или RAID-Z — систем на основе ZFS, которые являются программными реализациями и для обзора которых потребуется отдельная статья.

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

I have Intel RST RAID 1 running on a Windows 7 machine. I have it set to do a verify and repair every week. I frequently notice parity errors, some weeks over 100 for a 1 TB RAID 1 array. I’ve never had a media error, however.

I suspect that a drive is going bad since I didn’t see this when the drives were new, but I can’t figure out the cause. I’ve looked through Event Viewer, and opened the RST application. I see nothing amiss. Should I try running a 3rd party SMART utility?

The drives are consumer drives, but I assume that it’s not a TLER issue since this is Intel RST, not a high-performance hardware RAID. Also, if a drive timeout is the cause, I would expect the array to become degraded, and I’ve not seen that. Nor are there any events in the Event Viewer.

I’m also curious as to how RST knows how to repair a parity error for RAID 1. Does it arbitrarily pick one of the copies as the good copy, or does it maintain a logical timestamp for each block and so knows which copy is more up-to-date.

UPDATE: I’ve used smartmontools to check the SMART status. Both drives report back as healthy.

У меня Intel RST RAID 1, работающий на компьютере с Windows 7. У меня есть возможность проверять и ремонтировать каждую неделю. Я часто замечаю ошибки четности, некоторые недели превышают 100 для массива RAID 1 1 ТБ. У меня никогда не было ошибки СМИ, однако.

Я подозреваю, что диск работает плохо, так как я не видел этого, когда диски были новыми, но я не могу понять причину. Я просмотрел Event Viewer и открыл приложение RST. Я не вижу ничего плохого. Стоит ли запускать стороннюю утилиту SMART?

Диски являются потребительскими дисками, но я предполагаю, что это не проблема TLER, поскольку это Intel RST, а не высокопроизводительный аппаратный RAID. Кроме того, если причиной является тайм-аут диска, я бы ожидал, что массив ухудшится, и я этого не видел. Также нет событий в Просмотрщике событий.

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

ОБНОВЛЕНИЕ: я использовал smartmontools для проверки состояния SMART. Оба диска сообщают как здоровые.

Система предупредит? Это произойдет в момент чтения файла или система проверяет данные как-то на фоне переодически? Просто хочется о дефектах резервных данных, которые хранятся на НАС, знать сразу после сбоев)

Система мониторит каждый диск по отдельности, а вот целостность самого рейда в случае каких-то сбоев может оказаться под угрозой. Поэтому и нужна регулярная процедура «Исправление ошибок данных» или «Data Scrubbing», которую отдали на откуп пользователю :(

Драгоценный бекап фотоархива храню там

Опять таки повторю много раз говоренное — «RAID не заменяет backup».

И недавно у меня НАС наглухо завис во время обновления. Пришлось просто по варварски его вырубить — вынув шнур из розетки

К сожалению такое иногда бывает. Для минимизации такого рода события можно останавливать все пакеты перед очередным обновлением DSM.

Ну теперь ясно, что проверка соответствия четности, по сути и есть комплексная операция по обслуживанию дисков.

Не совсем точная формулировка, но если вопрос стоит «делать её или не делать и как часто» — то ответ — однозначно делать. Как часто — это другой вопрос. Некоторые англо-юзеры делают её ежемесячно…

PS «Data Scrubbing

Data scrubbing is a data maintenance function that inspects volumes or Disk Groups and repairs any detected data inconsistencies. This function can be used with volumes or Disk Groups that implement SHR (comprised of three or more disks), RAID 5, or RAID 6.

We recommend regularly performing data scrubbing in order to maintain data consistency and avoid losing any critical data in the event of disk failure.

To perform data scrubbing:

Select the volume or Disk Group on which to perform data scrubbing.

Click Manage

Select Data scrubbing.

Note:

Data scrubbing can only be performed when the status of the volume or Disk Group is Normal.

Please do not shut down the system before data scrubbing is completed. If the system is shut down before completion, data scrubbing must be restarted from the beginning.

Synology Support 12 Apr 2013, 16:03″

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

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

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

В
нашем примере будем считать, что контроль
по четности должен обеспечить четность
суммы битов, т.е. сумма всех битов должна
давать результат 0 (имеется в виду
сложение по модулю 2, т.е. результат
сложения битов должен быть четным. –
Прим. пер.). Если первый бит первого диска
равен 0, первый бит второго диска равен
1, первый бит третьего диска равен 1,
первый бит четвертого диска равен 1, то
бит контроля по четности для этих битов
должен быть равен 1, чтобы дополнить эти
биты до четного числа (см. табл.
5.2).

Таблица 5.2.
Пример контроля по четности для массива
RAID

диск 1: бит 1

диск 2: бит 1

диск 3: бит 1

диск 4: бит 1

диск 5: бит контроля по
четности

Сумма битов

0

1

1

1

1

4(четная)

Контроль
по четности следует понимать как
действия, применяемые к отдельным битам.
Хотя слой диска содержит много битов,
контроль по четности для отдельных
битов позволит восстановить все данные.
Биты контроля по четности, перечисленные
в табл.
5.2, создаются на самом деле по отдельным
битам, составляющим слои данных. Несмотря
на то, что дисковые накопители разбиваются
на куски данных (слои), с возможными
размерами по 64 Кб и более, но контроль
по четности, как мы вам показали, может
быть произведен на уровне отдельных
битов. На самом деле контроль по четности
вычисляется при помощи алгоритмов более
сложных, чем тот, который мы сейчас
описали.

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

Создание данных для контроля по четности

Как
мы уже объяснили в данном разделе, данные
контроля по четности, применяемые в
массивах RAID 5, составляются из битов,
дополняющих до четного числа сумму
одинаково отстоящих от начала битов
всехдисковых накопителей. Но вам,
конечно,понятно, что было бы непрактичным,
чтобы контроллер массива считывал бы
все данные со всех дисковых накопителей
при каждой операции ввода-вывода. Это
было бы неэффективно и медленно.

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

С
этого момента, всякий раз при записи
данных на дисковый накопитель, должно
производиться чтение данных с диска
данных и с диска контроля по четности.
Новые данные должны сравниваться со
старыми данными, и если какой-либо бит
данных поменялся, то данные контроля
по четности для этого бита тоже должны
быть изменены. Эта проверка производится
при помощи логической операции
«исключающее ИЛИ» ( XOR, exclusive OR
).Поэтому требуется чтение данных только
с диска данных и диска контроля по
четности, а не со всех дисков массива.
Как только описанная операция вычисления
изменений данных контроля по четности
будет завершена, запись должна быть
произведена на оба диска, т.к. операция
с данными контроля по четности затрагивает
весь слой данных. Таким образом, для
выполнения каждой записи в том RAID 5
производятся четыре физических операции
ввода-вывода: два чтения (одно – чтение
с диска данных, другое – чтение с диска
контроля по четности) и две записи (сами
данные и данные контроля по четности).
Но в массивах RAID 5 данные контроля по
четности равномерно распределены по
всем дисковым накопителям, поэтому и
нагрузка на накопители будет распределена
равномерно.

Рекомендации
по применению RAID 5

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

  • Применяйте RAID 5 для томов, предназначенных
    только для чтения. Любой том дисков,
    операции записи на котором превышают
    10% от объема ввода-вывода, не следует
    реализовывать как RAID 5.

  • Применяйте кэширование записи для
    томов RAID 5. Так как запись для RAID 5
    не завершена до тех пор, пока не будут
    выполнены два чтения и две записи, то
    при использовании кэша записи время
    отклика для записи может быть сокращено.
    (Используя кэш записи, обязательно
    применяйте батарею для бесперебойного
    электропитания.) Но надо отметить, что
    если поток записываемых данных превысит
    производительность записи дисков, то
    кэширование записи вам не поможет. В
    любом случае, вы не должны превышать
    пропускную способность дисков.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Ошибки контроля руководителя
  • Ошибки компьютера на мониторе
  • Ошибки контроля первого и второго рода
  • Ошибки компоновки это
  • Ошибки контроля барьеры и сопротивление контролю