Дисковые массивы являются не самыми распространенными устройствами хранения данных, поэтому попадают к нам руки не так часто, как другие носители информации.
Дисковый массив – это составное устройство, обычно состоящее из нескольких дисков и объединяющего их контроллера. Разные массивы имеют различное предназначение, это либо увеличение производительности дисковой подсистемы за счет организации одновременной записи данных на разные диски, либо увеличение надежности хранения данных за счет организации «избыточной емкости» (внедрение на отдельный диск или на все диски (более надежный метод) информации для восстановления). При этом, чем выше уровень надежности массива, тем меньше суммарная емкость его дискового пространства и тем меньше скорость его работы.
В зависимости от типа массива и неисправности, восстановление данных может быть как относительно простым, так и довольно сложным. Разберем три примера на одном типе массива для того, чтобы пояснить это.
Пример первый. Простое восстановление данных массива. RAID-0, все диски физически исправны, произведено перестроение (rebuild) массива, после которого с массивом ничего не делалось (данные не записывались, разделы не форматировались, и т.п.). Суть работ: выяснить порядок дисков до процедуры ребилда, выяснить размер страйпа (порция данных в секторах, записываемая последовательно на все диски массива в определенном порядке), построить массив с использованием соответствующего ПО, найти данные и выгрузить на целевой накопитель.
Пример второй. Восстановление данных массива средней тяжести. RAID-0, один из дисков «выпал», но не стучит и не издает посторонних звуков, массив перестал работать. Неисправность выпавшего диска: блокировка микропрограммой в связи с каким-то критически опасным для диска событием (особенно этим знамениты диски Seagate). Суть работ: выяснить проблему неисправного диска, произвести необходимые правки в служебной области, выяснить порядок дисков в массиве, выяснить размер страйпа, построить массив с использованием соответствующего ПО, найти данные и выгрузить на целевой накопитель.
Пример третий. Сложное восстановление массива. RAID-0, один из дисков стучит и скрежещет. Неисправность стучащего диска: блок магнитных головок (БМГ) вышел из строя в момент парковки, одна из головок не зашла на парковочную рампу и загнулась. Головка при старте не может спозиционироваться, микропрограмма выдает ошибку и заставляет накопитель повторно искать сервометки. Как результат – стук. Суть работ: подобрать запчасти для неисправного диска, произвести замену БМГ, выяснить порядок дисков в массиве, выяснить размер страйпа, построить массив с использованием соответствующего ПО, найти данные и выгрузить на целевой накопитель.
Работа, естественно, идет только с клонами дисков-пациентов, оригиналы мы не трогаем никогда. В нашем деле это настолько естественно, что не обсуждается: работая с клоном, мы всегда имеем возможность экспериментировать, а в случае неудачи – вернуться к исходному состоянию, заново склонировав источник.
Понятно, что восстановление данных с массивов разных типов и с разными типами неисправностей происходит по-разному. Но здесь мы бы хотели поговорить о другом – о надежности массивов и о том, какие неисправности массивов мы встречаем чаще, а какие – реже.
В источниках в Сети можно найти немало информации о том, насколько надежны те или иные типы массивов. В частности, все мы знаем, что массивы с контролем четности (RAID-5, RAID-6 и их разновидности) имеют более высокий уровень надежности по сравнению с массивами, направленными на максимальное повышение производительности (RAID-0). Но насколько все это справедливо на практике?
Представляем вам уникальные данные, которые собирались в течение 10 лет в 4 странах: России, Финляндии, Греции и Турции. В нашем обзоре представлены наиболее распространенные типы RAID; конечно, нам приходилось работать и с менее распространенными массивами типа RAID-3, RAID-4, Hybrid RAID от Synology, DROBO, но они попадали к нам настолько редко, что ни о какой статистике говорить нельзя.
Представляемые нами данные приведены в таблице 1. Из этой таблицы сразу же очевиден тот факт, что наиболее часто используются массивы с контролем четности RAID-5, и ненамного реже – быстрые массивы без контроля четности RAID-0. Преимущественное использование RAID-5 объясняется двумя факторами: при относительно небольшой потере производительности и емкости (емкость массива RAID-5 равняется емкости всех составляющих его дисков минус один диск) этот массив поразительно живуч и продолжает работать даже в том случае, когда один из дисков массива вышел из строя. Активное использование массивов RAID-0 объясняется их высокой производительностью: контроллер реализует одновременную запись данных на все диски массива.
И те, и другие типы массивов наиболее часто попадались нам в NAS-боксах (NAS: Network Attached Storage, сетевой накопитель), при этом использование массивов типа RAID-0 в NAS выглядит не совсем логичным, ведь в любом случае скорость массива ограничивается скоростью локальной сети, а она весьма далека от предельно возможных скоростей системной шины компьютера.
Массивы типа RAID-1 («зеркало») и RAID-6 (двойной контроль четности) также, как и предыдущая «пара» массивов, встречаются примерно с одинаковой частотой, приблизительно раза в три реже, чем массивы RAID-5 и RAID-0.
Наконец, массивы смешанного типа (RAID-1+0 и RAID-5+0) являются самыми редкими в нашей работе.
Таблица 1
Распределение восстановлений данных с дисковых массивов, попадавших к нам в работу за период с 2007 по 2017 гг., по типам массивов и по странам
Наиболее интересными являются данные по отказоустойчивости дисковых массивов. Массивы смешанного типа (RAID-1+0 и RAID-5+0) ожидаемо являются лидерами надежности: это достаточно просто объясняется тем, что массивы являются самодублирущимися, и для их «полного» уничтожения требуется, чтобы из строя без возможности восстановления было выведено не менее половины составляющих их дисков. Правда, очевиден и недостаток таких массивов: при очень высоком уровне надежности в первом случае теряется как минимум половина емкости дисков, включаемых в массив, а во втором – даже больше (половина минус 1 диск на каждый кластер составного массива). Именно поэтому данные типы массивов не слишком популярны.
Надежность массивов RAID-1, RAID-5 и RAID-6 растет линейно: это 88.6, 96.5 и 97.9% соответственно. И это также достаточно легко объяснимо: в массивах RAID-1 («зеркало») производится одновременная запись данных на два и более накопителей; соответственно, выход из строя одновременно их всех маловероятен, а все ошибки, связанные с такими массивами, приводящие их в наши лаборатории, связаны со сбоями контроллера или с ошибками пользователя (удаление данных, форматирование и т.п.). В массивах RAID-5 имеется «избыточная» емкость, кратная объему одного диска; выход из строя любого диска массива не фатален для данных. Ну а в массивах RAID-6 «избыточная» емкость распределяется уже по двум накопителям, соответственно, массив может без вреда для данных потерять любые два диска, что делает систему еще более надежной.
Массивы типа RAID-0 оказались ожидаемо наименее надежными – из всех массивов этого типа, попавших к нам в работу, удалось восстановить данные лишь в 68.7% случаев. Основная причина столь низкого процента выхода – необратимые повреждения одного или нескольких (реже – всех) дисков массива, которые оказалось невозможно устранить. Наиболее частым оказалось запиливание одного или нескольких дисков массива. Распределение отказоустойчивости массивов приведено на диаграмме ниже.
Таблица 2
Распределение неисправностей дисковых массивов, попадавших к нам в работу за период с 2007 по 2017 гг.
Статистика распределения неисправностей дисковых массивов, прошедших через нас за 10 лет, приведена в таблице 2. Все неисправности мы сгруппировали в четыре класса: логические, физические, неисправности служебной зоны и неисправности контроллера массива. Распределение получается довольно любопытным.
Составные массивы (RAID1+0, RAID5+0) наиболее устойчивы ко всем типам неисправностей.
Массивы RAID-0 оказались наименее устойчивы к логическим проблемам (удаленные данные, форматирование, перераспределение разделов и т.п.) – фактически удалось восстановить информацию в объеме, необходимом заказчику, лишь для половины таких заказов. Также весьма плачевно выглядит ситуация с физическими неисправностями дисков в массивах этого типа: восстановлению подлежало около половины поступивших с этой неисправностью устройств. Объясняется такое распределение следующим: физически неисправные диски массива не всегда возможно привести в состояние, при котором возможно их вычитывание; при этом потеря даже одного диска фатальна для данных. Другая причина – диск удавалось реанимировать лишь частично (например, при выходе из строя одной из поверхностей удавалось считать остальные), но «дыры» в страйпах были так велики, что необходимые заказчику данные или вообще не восстанавливались, или восстанавливались с повреждениями, которые заказчик не мог принять. Картину усугубляет тот факт, что дисковый массив – это не то устройство, которое обычно находится на виду, и если данные с него не используются постоянно, то от момента физического выхода из строя накопителя, входящего в массив, до обнаружения этого факта, может пройти довольно много времени; устройство при этом не обесточено, диски крутятся, а неисправность прогрессирует (особенно если это запил или царапина).
Распределение неисправностей массивов типа «зеркало»: удавалось восстановить практически все массивы с неисправностями дисков или контроллера, не удавалось восстановить некоторое количество логических заказов.
Плохие результаты по восстановлениям данных с массивов RAID-0 и RAID-1 с логическими проблемами объясняется перезаписью данных, от которой ни тот, ни другой тип массива не защищен. Как правило, пользователи не сразу замечают, что данные были удалены, и продолжают некоторое время использовать массив, перезаписывая на нем информацию. Если же массив форматируется или переразмечается, то обычно это сопровождается массивной перезаписью данных (установка операционной системы или «возвращение» назад зарезервированных данных – чаще всего зарезервированных в далеком от полного объеме). В этом ключе массивы RAID-5 и RAID-6 с одним или (реже) двумя давно исключенными из массива дисками позволяли восстановить более «старую» логику, что давало больший выход годных для заказчика данных и как результат – большее количество успешно выполненных восстановлений. Именно поэтому мы всегда просим предоставить в работу все диски, которые когда-либо устанавливались в салазки RAID-сервера.
Массивы с контролем четности (RAID-5, RAID-6) поступали в работу главным образом с физическими неисправностями дисков. Этому есть два объяснения: наиболее распространенное – при выходе из строя одного из дисков массива массив продолжал работать, и заказчик просто не замечал, что устройство работает в downgraded-состоянии; соответственно, когда из строя выходил уже следующий диск (или диски), массив отказывал, и только после этого поступал в работу. Наименее распространенное объяснение – диски в массивах с контролем четности испытывают увеличенные нагрузки (запись-чтение происходят постоянно, так как контроллер все время выполняет вычислительные операции и записывает их результаты на диски), они быстрее изнашиваются и, соответственно, выходят из строя по причине износа. Наиболее характерен такой износ в тех случаях, когда для дискового массива используются не предназначенные для этого диски, например – в серверную стойку в массив RAID-5 устанавливаются обычные накопители для ноутбука.
Физические ошибки контроллера встречаются редко для всех типов массивов, и являются самой «хорошей» неисправностью, так как при ошибках контроллера удается восстановить все 100% данных. Это связано с тем, что, когда контроллер выходит из строя, на диски не производится запись; кроме того, при неисправном контроллере нельзя произвести rebuild массива, а это означает, что массив застрахован от ошибок пользователя.
Какие можно сделать выводы из приведенных нами данных?
Прежде всего, если вам позарез нужен быстрый массив, озаботьтесь системой резервного копирования, так как при выходе такого массива из строя достаточно велики шансы (более 25%), что данные из него в случае отказа не получится восстановить.
Если вам нужен массив максимальной надежности, то используйте составной массив. В нашей практике не было ни одного случая, когда из такого массива не удалось восстановить данные. Конечно, вы серьезно потеряете в емкости, но зато получите практически 100%-надежность. С учетом цен на современные накопители, потери в емкости в денежном эквиваленте оказываются минимальными.
Ну, а если вы хотите достичь баланса и получить и надежный, и быстрый массив, и при этом не сильно проиграть в емкости, то лучше всего использовать массив RAID-5. Он весьма незначительно отличается по надежности и от RAID-1, и от RAID-6, которые оба проигрывают ему в емкости, а RAID-6 – еще и в производительности.
Станислав Корб, ©2018