Игры с RAID

17 ноября 2008, понедельник 18:57
для раздела Блоги
Достаточно много компьютерных энтузиастов доросли до такого уровня, когда стопка разнокалиберных жестких дисков уже не устраивает и хочется построить правильный RAID массив на много терабайт. Но тратить кучу денег на первое попавшееся железо никто не будет, а узнать всё заранее не очень-то просто: в официальных обзорах обычно сравнивают количественные, но не качественные характеристики, на форумах информации мизер, т.к. далеко не у каждой домохозяйки есть такие игрушки, а профессионалы попросту молчат. Цель моей статьи не завалить графиками из IOMeter, а понаступать на все возможные грабли при работе с разными типами систем: аппаратным RAID, сборкой на основе чипсетного контроллера и программным массивом. Надеюсь, кому-нибудь она поможет определиться в выборе и подготовит к решению возможных проблем.

Тестовая система.



CPU: E8200 2,66GHz
Cooler: Scythe Ninja Plus Rev.B
Motherboard: ASUS P5E-V HDMI
RAM: 2x Corsair TWIN2X4096-6400C4DHX 8GB
Video: Integrated
HDD: Seagate Momentus 7200.2 ST980813AS 80GB
Case: Thermaltake Armor
PSU: Enermax PRO 82+ 525W

А вот краса и гордость:



Жесткие диски: 3х WD1000FYPS 3000GB
Аппаратный RAID: Adaptec ASR-31605 + BBU
Чипсетный контроллер: Intel ICH9R
Программный массив на базе Windows 2008 Server x64 Datacenter edition Eng. Диски подключены к ICH9R в режиме AHCI.

Исследуемые ситуации.

- Особенности систем.
- Отложенный запуск дисков.
- Работа с массивом >2ТБ.
- Миграция уровня RAID.
- Горячая замена диска.
- Добавление нового диска в массив.
- Миграция платформы.
- Выпадение диска из массива RAID-0.
- Выпадение одного и двух дисков из массива RAID-5.


Особенности систем

Аппаратный RAID
Этот раздел и все прочие я буду начинать с самого сложного, но и самого интересного - контроллера Adaptec.
Отвечу на два вопроса, которые обычно возникают перед покупкой: заработает ли он на обычной, не серверной материнской плате и насколько нужна батарейка? Батарейка необходима в том случае, если вы собираетесь использовать кеш. У моей модели его 256 Мбайт, а это значит, что все операции в пределах данного объема будут выполняться очень быстро, как на RAM диске - грех не воспользоваться. Но есть и минус: если вдруг пропадет питание, то данные, которые еще не записались на пластины, пропадут. А если в момент аварии происходило редактирование какого-то большого файла, то система может остановиться вообще в непредсказуемой точке. Если же есть батарейка, то при прекращении питания данные в кеше не исчезнут и будут записаны на диск при первой возможности. Производитель обещает, что батарейка может поддерживать кеш 3 дня. Так нужна ли она? Думаю, что если массив будет выполнять роль файлопомойки, которая используется только на чтение, то можно и обойтись. Во всех остальных случаях рисковать не стоит.

Теперь насчет материнской платы. ASUS P5E-V HDMI, которая позиционируется далеко не как серверная, имеет 2 слота PCIe x16. Верхний синий разъем всегда работает на полную скорость, нижний же черный работает как x4, и то при условии, что третий слот x1 свободен, иначе скорость просядет до x2. Контроллер заработал сразу без всяких шаманств и в x4, и в x16. В слот x1 его по понятным причинам установить невозможно. Есть ли разница в скорости? Забегая вперед, покажу:



Тест проводился на массиве RAID-0 из 3 дисков. Синим цветом нарисован график скорости чтения в режиме x8 (максимум самого контроллера), красный - x4. Очень интересно выглядит скачок на отметке 2ТБ... скорее всего, это связано с адресацией дискового пространства, но что именно происходит, я сказать не могу. Главное, что разница в скоростях минимальна.

Быстро выяснилось, что маленькие радиаторы на чипах не справляются со своей задачей в пассивном режиме - контроллер начинает пищать, когда его температура переваливает за 75 градусов. Бловер TITAN TTC-005, посаженный на 7В, решил проблему раз и навсегда - выше 50 не поднимается.



Следующие грабли я нашел после прошивки последней версии биоса контроллера. Полный текст переписки с суппортом я выложил отдельно. Краткий смысл в том, что при инициализации контроллера невозможно попасть в меню конфигурирования - сервер просто виснет. Если работать через утилиту из Windows, всё в норме, но если бы я поспешил с обновлением и после этого захотел поставить ОС на еще не сконфигурированный массив, была бы проблема. В исходной прошивке проблем не было... В итоге Adaptec признал баг и обещал выпустить новую версию биоса. Кстати, тот факт, что меня не послали к Асусу, развеивает все мифы о том, что серверному контроллеру якобы обязательно нужна серверная материнская плата, однако и здесь без приколов не обошлось.

У материнской платы нашлись две проблемы. Первая: если контроллер стоит в разъеме x16, то отключается HDMI выход. Как я ни старался, работал только VGA... Т.к. вместе с переходником HDMI->DVI я использую DVI KVМ переключатель, было решено пожертвовать скоростью чтения из кеша и оставить плату в нижнем четырехскоростном разъеме.

А вторую проблему я обнаружил чисто случайно после установки PCIe видеокарты.



Это сообщение пролетает за 1/10 секунды, поэтому извиняюсь за качество - это скриншот из видеоролика. Суть в том, что материнская плата не может работать с множеством тяжелых ROM, и кому не хватило места, отваливается. В моем случае не повезло ICH9R в режиме RAID - устройства, подключенные к нему, не работают, а в диспетчере устройств Windows горит восклицательный знак с припиской "Device can not be started". Если ICH9R перевести в режим AHCI, проблем нет, но я на это идти не хочу.
Техподдержка ASUS ответила в течение 3х часов:

цитата:
Пожалуйста, обновите еще раз BIOS, используя утилиту AFUDOS.
После обновления обязательно сбросьте настройки BIOS с помощью перемычки CLRTC.
Отключите максимальное количество интегрированных устройств на плате.
Отключите контроллер Jmicron и включите int 19 capture.
Выключите legacy USB support.
Попробуйте проверить работу материнской платы с другим рейд контроллером.
Возможно, есть внешние контроллеры с меньшим размером ROM, с которыми не возникает подобная проблема.


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

Лично я попросту не буду использовать внешнюю видеокарту, а всем остальным советую учесть этот нюанс - "умных" устройств с ROM желательно иметь минимум, т.к. RAID контроллер может требовать для себя довольно много. Кстати, не могу утверждать, что серверная плата этим и отличается: в свое время мы намучились с серверами IBM, в которые устанавливались карты контроля доступа Аккорд-СБ, также с "увесистым" ROM - по такой же причине не у дел оставались SCSI контроллеры, к которым подключались стриммеры. IBM признал баг и сказал, что используемая микросхема BIOS физически не может вместить нужный нам объем данных.

Чипсетный контроллер
Ну, это уже проще. Чтобы задействовать функции RAID на материнской плате с подходящим южным мостом, достаточно включить этот режим в BIOS. С вашего позволения, я не буду описывать каждый клик мышки, а остановлюсь на основных принципах. ICH9R достаточно мощный контроллер, который поддерживает до 6 дисков, умеет создавать RAID-5 и за счет технологии Matrix Storage создавать несколько логических томов с разными типами RAID на одном наборе дисков. У него нет своего чипа для вычисления контрольных сумм RAID-5 и своего кеша, но это компенсируется за счет процессора и оперативной памяти компьютера. Он, как и хардверный контроллер, поддерживает загрузочные тома, может настраиваться из собственного биоса и имеет вполне удовлетворительный инструмент для управления под Windows.



Программный массив

В последних версиях Windows есть такое понятие, как динамические диски. Работа с ними ведется через панель MMC Управление дисками.



Общая логика проста: массив представляет собой полностью программную абстракцию, незнакомую старым версиям Windows и Linux, с которой также не работают сторонние утилиты (они видят диски как раздельные устройства). Зато она свободна от всяческих ограничений, таких как число разделов или размер MBR диска.



Динамический диск может быть одиночным (с возможностью расширения), можно создать Spanned Volume (в простонародье JBOD - Just a bunch of disks - просто куча дисков; позволяет объединить диски разного размера в единое пространство), а также RAID-0, RAID-1 и RAID-5. Более экзотические конфигурации, типа RAID-10 или RAID-6, не предусмотрены.

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

Отложенный запуск дисков

Один жесткий диск потребляет во время работы 8-12 Вт, но в момент включения это число больше примерно в три раза. Несложно посчитать, что 15 дисков в штатном режиме потребляют ток около 12А по линии 12В, а при старте им нужно обеспечить все 40, плюс всем остальным узлам потребуется 10, а то и 20А. Получается, что необходим блок питания мощностью около 850Вт, хотя абсолютное большинство времени система не будет потреблять больше 200Вт. При малой нагрузке любой блок питания работает с низким КПД, соответственно будут утекать лишние деньги за электричество. А если еще вспомнить про ИБП, то картина совсем плачевная: модели на 600 ВА хватило бы за глаза, а потребуется покупать минимум на 1000. Надеюсь, понятно, почему технология staggered spin-up или отложенный запуск дисков (когда они стартуют по очереди) так важна в большом хранилище.
Что нужно для ее работы? В теории все SATA2 диски должны поддерживать такие функции как NCQ, Hot Swap, Port Multiplier и Staggered Spin-Up. Контроллер же должен просто поддерживать режим AHCI (Advanced Host Controller Interface). Реальность же, как обычно, гораздо суровее и об этом мало кто говорит. Производитель дисков может запросто заблокировать какую-то функцию по маркетинговым соображениям (классический пример - Seagate и AAM), а контроллер может поддерживать нужные функции, но не иметь возможности настроить какие-либо параметры.

Аппаратный RAID

Staggered Spin-Up не заработал. Вместо этого получился долгий процесс выяснения отношений с WD и Adaptec, который я также вынес отдельно. Оба производителя заявляют от поддержке отложенного запуска, но WD упорно тычет носом в джампер и утверждает, что функция должна поддерживаться контроллером, а Adaptec во всем винит жесткие диски. Также Adaptec сказал странную вещь, что контроллер настроен на запуск дисков группами по 6 штук с интервалом в 0,5 сек и это никак не изменить... Вообще, процесс раскрутки занимает несколько секунд и толку от паузы в полсекунды не будет никакого, всё равно будет момент, когда необходим ток под 60A.
В моем понимании диск с установленным на отложенный запуск джампером должен не включать двигатель и тупо ждать сигнал на старт от контроллера. Никто не сможет дать команду на запрет раскрутки в первые мгновения после подачи питания... но это уже философия. Не знаю, кого винить, WD, Adaptec или себя, но факт остается фактом: все диски стартуют одновременно. Всем троим незачёт.

Чипсетный контроллер

Intel заявляет о поддержке AHCI для своих южных мостов начиная с ICH6R, которые ставились в дополнение к 915м чипсетам. ICH9R тем более обладает поддержкой всех нужных функций, но... диски вновь стартуют все сразу, а никаких настроек нет.

Программный массив

Конечно, вы понимаете, что говорить о поддержке аппаратных функций программным массивом нелепо. Всё зависит от контроллера, к которому физически подключены диски. Если вы захотите сделать "дешево и сердито", купив пачку дешевых PCI SATA контроллеров, то ни о каком AHCI говорить не приходится. В моем случае справедливы все выводы, сделанные по ICH9R.


Работа с массивом >2ТБ.

Аппаратный RAID

Старые RAID контроллеры не поддерживают тома >2ТБ, но мой Adaptec к таковым не относится. Посмотрим, как выглядит из Windows массив RAID-0 из трех терабайтных дисков.



Первое, что появляется перед глазами: доступные 2 ТБ + хвост, в котором невозможно даже создать раздел. Кто виноват и что делать??? Виноват тип диска MBR (Master Boot Record), который появился еще в первозданном IBM PC. Более подробно можно почитать хотя бы на [url=http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C]Википедии[/url], но суть в том, что 2 ТБ - это предел, причем независимый от типа файловой системы. Отсюда вывод, что во-первых, диск размером >2 ТБ должен использовать иной формат размещения разделов, а во-вторых, такой диск уже не сможет быть загрузочным для классического BIOS. Если вы захотите установить ОС на подобный RAID массив, то необходимо разбить его на логические разделы (LUN) на уровне контроллера, тогда с точки зрения ОС вы получите несколько совершенно независимых дисков.
А как же жить с диском >2 ТБ? Для этого Интелом был предложен новый стандарт - [url=http://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_GUID]GPT[/url]. Он поддерживает до 128 разделов размером до 18 Эбайт (18 млн ТБ) - думаю, на первое время нам хватит. Этот формат не поддерживается в 32-битном Windows XP, но с ним умеют работать XP x64 и Server 2003 SP1, соответственно в 2008м x64 всё просто:



После преобразования диска в GPT уже можно создать нормальный большой радел...



...которым можно и нужно пользоваться.



Далее я планировал продемонстрировать работу различных приложений для управления разделами, но ни Acronis Disk Director, ни Partition Magic, ни ворох других программ не смогли что-либо сделать с GPT диском. Как сказано на Википедии, "Более старые ОС обычно представляют диск, как содержащий единственный раздел неизвестного типа и без свободного места; как правило, они отказываются модифицировать такой диск, пока пользователь явно не потребует и не подтвердит удаление данного раздела". Я нашел только один инструмент для работы с разделами: консольная утилита diskpart, по которой Микрософтом написан приличный мануал.

Ограничения налицо, но я надеюсь, вам и не понадобится выполнять сложные операции с разделами, а для базовых вполне хватит стандартных средств Windows. Тем не менее, хочется верить, что сторонние разработчики наконец проснутся и обеспечат поддержку GPT дисков в своих программах.

Чипсетный контроллер

Уважаемый мною магазин NIX.ru пишет в своем FAQ следующее:
цитата:
RAID-контроллер не поддерживает создание тома размером более 2Тб (именно одного тома, суммарный объем дисков или томов может быть больше без каких–либо последствий) либо некорректно работает с ним. На момент написания FAQ (март 2008) это касалось, например, всех встроенных в чипсеты контроллеров с BIOS от производителя (т.е. в первую очередь - Intel Matrix RAID (ICH9R и более ранние), nVidia RAID и т.п.), а также PCI-контроллеров вроде Promise FastTrack4310

Не знаю, что их заставило такое утверждать, но у меня получилось вот так:



Не берусь защищать nVidia RAID и ICHxR прошлых поколений, но вот пожалуйста, массив >2ТБ на чипсетном контроллере. Все выводы по работе с GPT разделом остаются в силе.

Программный массив

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



В данном случае создан массив RAID-0.
Динамический диск (до создания на нем раздела) можно преобразовать в GPT или оставить в MBR, но это уже не важно - логически конфигурация RAID находится выше формата диска.

Миграция уровня RAID

Аппаратный RAID

Думаю, всем ясно, что миграцию нельзя выполнять в сторону уменьшения объема, поэтому даю установку: преобразовать массив RAID-5 из 3 дисков в массив RAID-0. В такой области ASR-31605 просто не имеет права создавать проблемы.









Всё прошло гладко. Перестроение массива всегда занимает очень много времени - вплоть до нескольких дней. Производительность при этом проседает на порядок.



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

Чипсетный контроллер

ICH9R в теории позволяет совершать миграцию уровня RAID без потери данных.



Однако не всё так радужно. Переделать RAID-5 в RAID-0 нельзя.



Я стал разбираться, что же тогда можно. Получилась такая табличка:



Такая миграция, как например из 1 диска в любой RAID возможна только если есть нужное число дополнительных дисков. При этом размер логического диска изменить невозможно! При миграции в большую сторону на дисках просто остается свободное место. Хваленая технология Matrix Storage позволяет создать на нем еще другой том, но уже не дает возможности выбрать его размер и занимает весь оставшийся объем! Т.е. на одной группе дисков может быть только два логических тома. Сразу чувствуется, что функционал обрезали по политическим, а не техническим причинам - типа одному человеку больше и не нужно, а для простых серверов пусть покупают дорогие контроллеры. Кстати, массив типа JBOD на ICH9R создать нельзя.

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

Перестроение массива (в данном случае из RAID-0 на 2 дисках в RAID-5) занимает еще больше времени.



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



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

Программный массив

Вот что может программный массив:



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



Зеркало, соответственно, можно разбить.



Всё, ничего больше сделать нельзя.

Горячая замена диска

Хорошо, когда диск можно вытащить или вставить без выключения сервера. Это важно, если используются соответствующие корзины или внешний диск с SATA подключением. Да и вообще, часто возникает желание подергать разъемы на ходу :)
В теории стандарт AHCI поддерживает горячую замену. ATA диски при такой процедуре стабильно вешали систему и даже теряли данные, поэтому интересно было посмотреть, как поведут себя RAID массивы...

Эта статья должна была появиться на 3 месяца раньше, если бы не один неприятный момент. Все знают переходники питания MOLEX->SATA.



Так вот, я проверял реакцию дисков на отключение питания, дергая MOLEX соединение.
Результат: 2 трупа.
Да-да, я убил 2 терабайтных диска просто из-за горячего подключения!!!
3 месяца заняли разборки с гарантийным отделом, но в итоге мне их заменили... Дело в том, что SATA разъем на стороне диска имеет контакты разной длины, за счет чего коммутация линий питания происходит в правильном порядке. Никогда не подключайте на горячую устройства с разъемом питания типа MOLEX! Если честно, теперь и SATA подключать боязно, т.к. длина длиной, а в момент скольжения с контактами может происходить что угодно...

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

Аппаратный RAID

После выдергивания диска ничего катастрофического не происходит - просто в логах оседает соответствующее событие:



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



Но это легко исправить. Достаточно сделать рескан.



Вот. Всё в норме.



Хардверный рейд справился с поставленной задачей. Посмотрим, как поведет себя ICH9R.

Чипсетный контроллер

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



Больше никаких сюрпризов.

Программный массив

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



После подключения обратно он автоматически восстанавливается.
Добавление нового диска в массив

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

Аппаратный RAID

Для теста был создан массив из двух дисков. Логический диск был преобразован в GPT и отформатирован в NTFS.



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



Всё, процесс пошел. Раздел остался доступен, данные на месте, и не нужно искать, куда бы временно положить весь архив.



Хвост в 11 МБ так и висит в течение всей процедуры. Через сутки массив перестроился полностью.



Теперь нужно расширить раздел. В Windows 2008 можно воспользоваться встроенными средствами. Достаточно выбрать пункт "Extend volume"...



...и задать величину, на которую нужно увеличить массив.



Через мгновение раздел приобретает размер тома.



Есть и альтернативное средство - уже полюбившийся мне DISKPART. В управлении дисками Windows 2003 пункт "Extend volume" отсутствует, поэтому консольная утилита - единственное средство.

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

diskpart
list volume
select volume #
extend



Итак, контроллер Adaptec блестяще справился с заданием.

Чипсетный контроллер

ICH9R не умеет изменять размер диска! Об этом я уже писал, когда пытался мигрировать уровень RAID.

Программный массив

Расширять динамические диски можно только в рамках JBOD через пункт меню Extend volume. Если создан любой другой уровень RAID, то с ним ничего не сделать.

Миграция платформы

Теперь стоит посмотреть, как поведут себя системы, при переезде на другую ОС и что будет, если переткнуть диски в другие порты.
Порядок действий таков: в системе создается RAID-5, диск преобразовывается в GPT (кроме случая с программным массивом), раздел форматируется, сервер выключается, диски подключаются к другим портам. Загрузка осуществляется с отдельного жесткого диска, на котором установлен Windows Server 2003 x32 Standart edition Rus со всеми необходимыми драйверами.

Аппаратный RAID

У аппаратных контроллеров конфигурация хранится в них самих, поэтому после загрузки система ругнулась:



После нажатия на Enter загрузка продолжилась и массив встал как родной. Даже букву сам получил.



Намеков на проблемы нет.

Чипсетный контроллер

Снова неинтересно. Абсолютно никаких лишних вопросов.

Программный массив

В программном массиве, также как и в случае с чипсетным, вся информация хранится на дисках, поэтому физическое перетыкание портов ни на что не влияет. Зато с точки зрения ОС получается интересно:



Диски выглядят как инородные. Чтобы начать ими пользоваться, необходимо произвести импорт.





Массив выглядит деградировавшим, т.к. после создания RAID-5 я не дождался конца синхронизации и сразу перешел к делу.



Всё нормально. А о том, как выполняется ребилд, я расскажу позже.

Выпадение диска из массива RAID-0

Всякое в жизни бывает. Может SATA инферфейс сбойнуть, может разъем питания отойти... так или иначе, ситуация, когда исправный диск временно вылетел из массива, вполне реальна. Посмотрим, что будет с данными, если выдернуть и вставить обратно один диск в массиве RAID 0. Для теста я возьму гигабайтный RAR архив и после экзекуции проверю его целостность.

Аппаратный RAID

Операцию хотсвапа на уровне железа я уже описывал, не буду на этом повторно останавливаться. После удаления жесткого диска логический том переходит в состояние Failed. Забавно было наблюдать, как буква диска была еще какое-то время доступна, и даже была возможность на него писать - сначала я думал, что это приколы кеша контроллера, однако это не так - грабли целиком я раскопал при работе с чипсетным контроллером. Но об этом позже. После нескольких операций записи том отвалился, и в системном журнале Windows появилась ошибка: "The device 'Adaptec Array SCSI Disk Device' disappeared from the system without first being prepared for removal".
Попробую вернуть всё на место. После втыкания диска обратно и повторного сканирования все физические диски обнаружились, но логический том по прежнему Failed. Вернуть его к жизни можно принудительно:



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

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

Чипсетный контроллер

После отключения одного диска из RAID-0 выскакивает предупреждение:



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

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



Спасибо Биллу Гейтсу! Это Windows кеширует всё, к чему идет обращение! А т.к. у меня в сервере 8ГБ оперативки, кешировать он может много. То-то я думаю, с чего копирование якобы завершено, а лампочка активности диска на корпусе еще горит секунд 10? И наоборот, тест архива в WinRAR идет без обращения к диску!

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

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

Снова дилемма: либо скорость, либо надежность. Даже на рабочей станции польза такого "подарка" была бы весьма спорной, а на сервере от подобного 100% нужно избавляться. Кстати, в 2003м Windows эта функция по-умолчанию выключена, а лично у меня она даже и включаться никогда не хотела...



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

Программный массив

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



После подключения диска обратно массив становится онлайн автоматически. Тестовый архив без повреждений.

Выпадение одного и двух дисков из массива RAID-5

Аппаратный RAID

Начнем с одного диска. Разбитый RAID-5 из консоли Adaptec выглядит следующим образом:



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



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



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

В итоге все экзекуции прошли успешно. Тестовый файл остался неповрежденным.

Чипсетный контроллер

Отключение одного диска приводит к такому сообщению:



Диск в Windows работает нормально.
После отключения второго диска повторяются те же шутки, что и с RAID-0. Разница в том, что после возвращения дисков на место том остается недоступным, как и у Adaptec. Попытка активировать его вручную приводит к следующему предупреждению:



Именно это я и вытворял с RAID-0... ну да ладно.
Если нажать ОК, появится еще одно сообщение.



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

Программный массив

Если отключить один диск из RAID-5, массив перейдет в состояние Failed redundancy.



Отключение еще одного выводит массив из строя полностью.



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



О том, сколько будет длится перестроение, информации нет, но наверняка счет идет в сутках.



Тестовый архив оказался цел. Проверку производительности с помощью HDTach сделать невозможно, т.к. эта утилита не видит массив как единый том.

Заключение

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


* - Включенное кеширование записи в Windows может стать причиной потери данных

Все системы показали себя хорошо. Ограничения при миграции уровня RAID и добавлении нового диска в массив связаны исключительно с маркетингом, а не с техникой. Кстати, если не брать в расчет производительность и потенциальную глючность "непрофессиональных" массивов, смысл брать аппаратный контроллер, пожалуй, только в доступности этих двух функций. Лично для меня они стали решающими, т.к. требовалось создание единого отказоустойчивого массива, а диски планировалось докупать постепенно. Нет, конечно за эти деньги предоставляется россыпь различных фичей, но в контексте создания домашнего хранилища с выходом в интернет на скорости <100Мбит их необходимость под вопросом.

Ложка дегтя, точнее цистерна дегтя - отложенный запуск дисков, который не заработал ни в одном случае. Разборки с WD и Adaptec продолжаются уже несколько месяцев, но пока безрезультатно...

Кстати, даже только благодаря динамическому расширению массива, контроллер уже окупается. Первый жесткий диск я приобрел в феврале за 9000р, второй и третий - в апреле за 7500, сейчас они стоят ~5000. Если бы я был вынужден собирать массив сразу целиком и купил 16 дисков по 9000, то выложил бы немалую сумму, а т.к. оставшиеся диски обойдутся уже дешевле 5000, то контроллер сэкономил мне минимум 60k. Серверные модели снимаются с производства не быстро, поэтому растянуть удовольствие можно надолго.

А раз уж я затронул финансовый вопрос, хочу дать еще один совет: если вы строите отдельный файловый сервер, правильно вычисляйте стоимость хранения информации. $/GB это характеристика не только харда. Цена гигабайта это стоимость всего сервера, поделенного на емкость всего хранилища. Исходя из этого можно высчитать цену одного порта: стоимость сервера без дисков, поделить на количество дисков. И уже зная это число, можно начинать искать "идеальную" модель харда, сводя к минимуму отношение $/GB у одного работающего диска (т.е. где $ = цена диска + цена порта). Чем выше цена порта, тем меньший вклад вносит цена самого диска, поэтому самая емкая модель чаще всего и есть самая выгодная, хотя по началу так не кажется.

Обсуждение материала здесь или на сайте cohardent.com.




Update

После публикации оригинала статьи прошло 3 месяца, за это время мой массив разросся до 6 дисков. Контроллер успешно справлялся с миграцией 3->4 диска и 4->5, но поиграть с секстетом было не суждено. Один из первых терабайтников умер в процессе миграции массива и снова дурацкой смертью в виде сгоревшей электроники. На этот раз я не дергал никаких разъемов!!! Тут уж либо WD виноват, либо БП (что вряд ли), либо карма...
Самой большой моей ошибкой было использование RAID0, но это не просто крик души о терабайте потерянных данных - самое интересное в том, что я купил еще один диск (седьмой), свинтил с него плату электроники и запустил сгоревший экземпляр. Да, я знаю, что так делать не стоит, ибо прошивка калибруется под конкретную механику + был велик шанс спалить электронику и от нового харда тоже, но такие приемы иногда выручали... в общем, у меня на руках были все диски с данными, причем в рабочем состоянии... но контроллер отказался их принимать - все они выглядели как чистые.
Полную переписку с Adaptec желающие могут почитать тут, но самая главная мысль достаточно простая: Adaptec официально сообщил, что любой сбой в процессе миграции массива может быть фатален, даже если уровень RAID подразумевает отказоутойчивость.

Удачи всем в битве за терабайты.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают