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

Если вы имеете в машине самый быстрый на сегодняшний день процессор, большое количество оперативной памяти и процессорного кэша, но если дисковая система компьютера будет работать медленно и нестабильно, то общая производительность вашей конфигурации окажется крайне низкой. Такую машину вряд ли захочется использовать в качестве сервера или графической станции - налицо неоправданные затраты средств на быстрые процессоры и память, которые являются мертвым капиталом, если заранее не позаботится о выборе соответствующей системы работы с жесткими дисками. Одним из вариантов организации работы дисковой системы являются RAID-матрицы, которые создаются из стандартных SCSI- или SSA-дисков с помощью специальных контроллеров. Эта технология, порожденная еще мэйнфреймами и мощными RISC-компьютерами, все больше и больше находит свое место и в ПК платформах. Низкая цена, стопроцентная совместимость с основными операционными системами, поддержка распространенного программного обеспечения и наличие вспомогательных утилит делают возможным создание на базе недорогих ПК, быстрых и надежных серверов масштаба среднего предприятия или подразделения крупной компании.

Сегодня решения, предполагающие использование RAID-контроллеров, предлагаются всеми известными поставщиками компьютерного оборудования, активно работающими и на отечественном рынке. Наибольшую популярность среди brand name производителей серверов получили модели контроллеров на процессоре i960, что объясняется его высокой производительностью, поддержкой технологии горячей замены и обеспечения большого количества сервисных функций. С такими моделями сейчас поставляются основные марки ПК серверов фирм IBM, HP, Compaq, Intel, Digital, ALR и др. Все они обычно поставляются в двух конфигурациях: с RAID-системами и без них. Хотя преимущества RAID очевидны, у заказчика не всегда хватает средств для приобретения варианта с RAID. К счастью, современные модели контроллеров дисковых массивов достаточно стандартны и универсальны. Но, с другой стороны, практически все модели brand name поставляются только с двухканальными вариантами RAID-контроллеров, что лишает администраторов сетей и технических специалистов возможности использовать потенциал различных моделей. Известны случаи, когда заказчики отказывались от RAID-матриц brand name по причине нехватки финансовых средств, хотя денег было достаточно для установки небольшого RAID-массива. Ведь сейчас на отечественном рынке минимальная матрица из одного RAID-контроллера на базе i960 и 2-х дисков 1 Гбайт SCSI имеет стоимость всего около 1.6 тыс. долл. Правда, если вы установили сервер без RAID, а потом нашли возможность приобрести и его, это легко осуществимо как с помощью фирмы производителя, так и самостоятельно. Этим пользуются многие организации, желающие приобрести хороший сервер немного дешевле.

В нашей практике приходилось ставить RAID-контроллеры фирмы Mylex практически на все модели серверов фирм IBM 320, Intel Altair, Xpress, Digital Prioris и др. Самая большая проблема, которую можно встретить на этом пути, - это замена оригинального BIOS-контроллера на разработанный под вашу конкретную модель. Тем не менее создавая свою собственную дисковую систему можно построить очень гибкую конфигурацию, сделав акцент на максимально быструю, или на максимально экономичную, или же на максимально надежную систему. Вы всегда сможете предусмотреть возможность расширения, резервирования и перестройки конфигурации. Современный российский компьютерный рынок всегда славился своими "умельцами", способными быстро и качественно собрать компьютеры почти и любой конфигурации. Сейчас это можно сказать и про мощные серверы, благодаря доступности RAID-технологии для конечных пользователей - единственный пока недостаток состоит в отсутствии информации о возможностях работы и способах создания RAID-матриц.

Что такое RAID-контроллер

Принятые на практике RAID-алгоритмы

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

Основная идея этих алгоритмов заключается в том, что входной поток информации делится на блоки, которые, в свою очередь, записываются на диски. При считывании происходит обратный процесс - блоки информации собираются с накопителей и преобразовываются в единый поток. Таким образом, программа работы с этой системой может и не подозревать, что вместо одного накопителя она взаимодействует с несколькими. На практике существуют много применений таких алгоритмов, но самое большое распространение в компьютерной области получили именно матрицы жестких дисков - RAID (Redundant Array of Inexpensive Disks). В зависимости от способа распределения блоков в дисковом массиве различают несколько уровней RAID, с нулевого по пятый. На практике получили распространение, в основном, 0,1 и 5 уровни. Сейчас можно встретить контроллеры с 6, 7 и т.д. уровнем RAID. Так как изначально были стандартизированны только пять алгоритмов, то все остальные способы реализации работы дисковых массивов являются продолжением развития RAID-технологии и могут отличаться у разных поставщиков. Для организации работы компьютера с матричной дисковой подсистемой достаточно знать 0,1 и 5 алгоритмы, которые, как правило, покрывают все необходимые проблемы, просты в использовании и достаточно эффективны.

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

RAID1 или зеркалирование (mirroring) требует четного числа дисков и осуществляет попарное дублирование информации. Этот алгоритм уже дает стопроцентную гарантию сохранности данных при сбое любого из дисков и теоретическое увеличение скорости в N/2 раза, но стоимость дискового пространства увеличивается вдвое. Алгоритм применяется в системах, где необходима надежность сохранности данных и обьем дисковой матрицы незначителен. RAID5 представляет собой что-то среднее между 0 и 1 и наиболее популярен для организации серверных дисковых матриц. Порция информации из входного потока разделяется на N-1 блоков, а N-й блок вычисляется из N-1 первых и является контрольным. В случае безвозвратной потери одного из N блоков, информация однозначно восстанавливается из N-1 других. Контрольный блок каждый раз от цикла к циклу записывается на новый диск, совершая как бы "круговой обход". Таким образом все диски в матрицы являются равнозначными, подвержены одинаковому износу, и, в случае сбоя любого блока на диске или всего диска целиком, информация восстанавливается без потерь. Стоимость дискового пространства в N/(N-1) раз больше, чем одного диска - при увеличении числа дисков цена уменьшается, а теоретическая скорость записи/чтения тоже в N/(N-1) раз больше, чем одиночного.

Конструкция RAID-контроллера

RAID-контроллер представляет собой интеллектуальный SCSI- или SSA-контроллер, с помощью которого можно организовать алгоритмы RAID на дисковых матрицах. Современные модели имеют 1,2 или 3 SCSI-канала, к каждому из которых можно подключать от 1 до 7 SCSI-устройств в случае SCSI- шины и 127 в случае SSA. Наибольшее распространение на сегодняшний день имеют SCSI-устройства. Конструктивно, практически все современные SCSI RAID-контроллеры одинаковы и представляют собой плату слота расширения на шины PCI, EISA или внешнее устройство на шину SCSI. Подавляющее большинство RAID-контроллеров создано на базе RISC процессора Intel i960, и почти все они аппаратно одинаковы и различаются только версиями BIOS. Как и в других областях, в сфере RAID-контроллеров имеются законодатели рынка, предлагаемые решения которых обычно становятся стандартом де-факто. Сегодня основной OEM-поставщик и производитель этих устройств - фирма Mylex. На мировом рынке имеются ряд фирм, продающих эти устройства с небольшими конструктивными отличиями, например MegaRAID. Среди моделей хорошо представленных в России различия существуют у моделей, применяемых для серверов фирмы Intel и для IBM с шиной SSA. Различия не принципиальны и не могут влиять на совместимость их друг с другом.

Другой вариант организации RAID-контроллеров - на базе серии процессоров 68000/68020/ 68030 фирмы Motorola. Модели под различные шины (ISA, EISA, PCI) для стандарта SCSI известны под маркой фирмы DPT. Эти контроллеры известны во всем мире и также представлены на отечественном рынке, хотя менее популярны, чем построенные на базе чипа фирмы Intel. Типичная конструкция контроллеров на процессоре i960 представляет собой плату с впаянным полноразмерным или "облегченным" вариантом этого чипа (рис.1).

Picture 1 (1x1)

Рис. 1.  Пример общей компоновки контроллера RAID 960

Как и для любого микропроцессорного устройства, контроллеру необходима оперативная память, минимальный размер которой в большинстве моделей составляет 2 Мбайт. При наличии памяти большей емкости контроллер использует ее для кэширования данных. Верхний предел ограничен объемом SIMM (32 - 64 Мбайт). Устройство имеет собственный заменяемый BIOS, выполненный по технологии FLASH или в виде съемной микросхемы ПЗУ. В зависимости от количества SCSI-каналов на плате располагаются соответственно 1,2 или 3 SCSI чипа - NCR53C720. На плате RAID-контроллера имеются перемычки для включения и выключения SCSI-каналов (JP1, JP2, JP3), необходимые для возможности его установки на конечном устройстве, и выводы индикации состояния шин и кэша (JP5). Индикация может быть подключена к обычным светодиодам на корпусе компьютера, отображая активность устройств или состояние "полный кэш". На внешней стороне платы обычно существуют один или два разъема под внешний SCSI-кабель. С помощью этих разъемов возможно подключение внешних SCSI-устройств или дисковых массивов.

Каждое устройство может комплектоваться или уже укомплектовано аккумулятором поддержки питания кэша и переходником WIDE FAST SCSI-2 на FAST SCSI-2, который необходим при использовании разных стандартов SCSI на плате и на дисках. В программе процессора контроллера имеется большое количество функций работы с дисками, которые настраиваются при помощи конфигурационной утилиты. Все операции управления логическими матрицами, алгоритмы RAID и управления кэш памятью, проводятся самим контроллером без обращения к центральному процессору и шине данных. Используя режимы Bus Mastering для шин EISA и PCI, устройство способно передавать данные со скоростью 33 Мбайт/с и 132 Мбайт/с.

Технология Hot Swap. Резервные диски.

Жесткие диски - один из немногих компонентов, в котором есть механическая часть, в первую очередь подверженная износу при долговременной работе. И какие бы хорошие и надежные диски не использовались, всегда имеется вероятность выхода их из строя, увеличивающаяся со временем эксплуатации. Хотя в случае применения, скажем, RAID5 выход из строя диска не повлечет за собой потерю данных, система останется без избыточности - это будет сигналом для администратора сети бить тревогу. Если организация работы сервера допускает его остановку, то замена неработающего диска не составит труда. Но, как правило, все компьютеры со статусом "сервер" не могут быть выключены в любой момент времени без ощутимых последствий. RAID-контроллеры позволяют решить эту проблему за счет поддержки функций горячей замены и технологии резервных дисков. В случае поломки диска или каких-либо других проблем, вследствие которых контроллер не может в дальнейшем его эксплуатировать, например превышение допустимого количества плохих блоков, диск помечается как "мертвый" (Kill Drive) и не участвует в дальнейшей работе. В этом случае оператор может вынуть этот диск из системы и заменить другим. После подключения и обнаружения RAID-контроллером нового диска произойдет его форматирование (если необходимо) и будет выполнена операция перестройки матрицы (Rebuild). Таким образом, система опять восстановит свой прежний вид.

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

Применение технологии резервных дисков предпочтительней по ряду причин: во-первых, стоимость хороших конструктивов, обеспечивающих корректное и надежное размыкание и обратное подключение SCSI-шины, достаточно велика и, на данный момент, сравнима со стоимостью 1 Гбайт SCSI-диска; во-вторых, положение вещей на рынке жестких дисков за последние несколько лет таково, что, возможно, через год после приобретения накопителей вы не сможете найти точно такую же модель, по крайней мере за короткий срок. Использование же в матрице разных моделей жестких дисков может привести к большим проблемам вплоть до невозможности работать вместе.

RAID-системы и альтернативные варианты

Программные и аппаратные реализации зеркалирования

На сегодняшний день существует много способов организации дисковых систем помимо RAID-матриц. Наибольший интерес представляет организация RAID1 - зеркалирования. Этот способ может быть реализован как программно (в Novell NetWare, Windows NT), так и аппаратно (на SCSI контроллерах Adaptec, Tekram и т.д.). Хотя способы безусловно недорогие, они обладают рядом существенных недостатков. Программное зеркалирование сильно нагружает вычислительную мощность компьютера. Выполнение программ обслуживания дисков занимает какое-то время, что непосредственно сказывается на быстродействии дисковой системы. Кроме того, при программной реализации всегда существует вероятность потери данных при аварийном отказе операционной системы, случайной аппаратной перезагрузки или пропаже питания в компьютере. Такой вариант реализации зеркалирования, конечно, имеет место в современных решениях, но должен применяться только на надежных машинах и в условиях экономии финансовых средств.

Аппаратный RAID1 - более надежное решение. Возможно, это не плохой вариант реализации дисковой системы компьютера при небольших дисковых матрицах из 2 или 4 дисков. К тому же SCSI-контроллер, позволяющий сделать зеркалирование относительно недорогим. Основными недостатками этого решения является то, что при наращивании матрицы система становиться все дороже и дороже по сравнению с RAID5, а скорость общения с дисками остается низкой. При каком-то значении объема дисковой матрицы наступает переломный этап, когда RAID5 становиться выгодней. Таким образом, реализуя зеркалирование на одном из недорогих SCSI-контроллеров, вы лишаете себя возможности дополнительного недорогого расширения дисковой системы. К тому же опыт подсказывает, что, несмотря на аппаратное выполнение функций зеркалирования, возможна потеря производительности системы до 25% по сравнению с одиночным диском.

RAID 5-го уровня и зеркалирование, что выгоднее?

При проектировании дисковой системы немаловажным фактором является ее стоимость. Для того чтобы максимально эффективно использовать выделенные средства для реализации этой задачи, необходимо грамотно подойти к выбору типа дисковой матрицы. Приведем небольшой расчет для RAID5 и RAID1, помогающие это сделать. Оба алгоритма позволяют обеспечить работу со стопроцентной надежностью сохранения данных при сбое. Рассмотрим два альтернативных варианта. Первый - дисковая система на основе младшей модели RAID-контроллера, второй на одном из простых моделей SCSI-устройства. Для примера возьмем одни из самых популярных на нашем рынке контроллеров Adaptec 2940 для RAID1 (250 долл.) и Mylex DAC960PL-1 (1000 долл.) для RAID5. За основу матриц выберем некие условные диски (модель не имеет значения) емкостью 1 Гбайт (350 долл.). Для организации RAID5 необходимо минимум 3 диска, для зеркалирования - 2.

Как видно из графика зависимости стоимости от используемого дискового пространства, приведенного на рис. 2., при таких исходных данных реализация дисковой системы на RAID1 хороша при используемом дисковом пространстве 1 или 2 Гбайт. При большем объеме матрицы лучшим решением будет RAID5. Надо заметить, что всегда необходимо учитывать возможность расширения системы. Поэтому в случае объема 3 Гбайт в приведенном примере, лучше выбрать RAID5. В этих рассуждениях не учитывается еще тот факт, что при организации зеркалирования скорость доступа ко всем дискам меньше, чем к одному, а при организации RAID5 больше. К тому же следует принять во внимание тот факт, что функций у DAC960 значительно больше и среди них такие немаловажные, как горячая замена и возможность установки резервных дисков.

Picture 2 (1x1)

Рис. 2.  Изменение стоимости дисковой системы в зависимости от объема пространства на дисках

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

С какими операционными системами работает RAID? RAID-контроллеры, например фирмы Mylex, совместимы со стандартной ПК платформой и имеют сертификаты для работы с MS-DOS; Novell Netware; Windows NT и Advanced Server; IBM OS/2; SCO UNIX; UnixWare.

В стандартной поставке к контроллеру прилагаются драйверы для работы с этими ОС (DAC Software kit) вместе с описанием настройки и конфигурации. Созданы работающие модели серверов с RAID, эксплуатируемым в среде Solaris. Работа с Windows 95 возможна с RAID даже с драйверами под DOS. Вполне возможно, что список ОС этим не ограничен, здесь приведены только реально проверенные факты.

Какой необходимо иметь объем кэша контроллера? Конечно, чем больше, тем лучше - кэшем контроллер не испортишь. Но чтобы реально подойти к оптимальному выбору объема кэш-памяти, необходимо хотя бы приблизительно представлять себе, какой обьем оперативной информации постоянно работает с дисковой системой. Минимальный обьем 2 Мбайт используется для работы процессора контроллера. Четких рекомендаций здесь дать трудно, но по сложившемуся опыту работы лучше придерживаться следующих параметров: для матриц емкостью 5 Гбайт - 4-8 Мбайт кэша, для матриц 5-10 Гбайт - минимум 8 Мбайт кэша, для матриц 10-20 Гбайт - минимум 16 Мбайт. Кэш-память контроллера представляет собой обычный 72 pin SIMM и легко может быть заменена. При самостоятельном выборе кэша следует обратить внимание на то, чтобы SIMM был с реальной четностью и хорошими динамическими характеристиками. У нас бывали прецеденты, когда некоторые неизвестные модули памяти из материнской платы не работали в RAID.

Как правильно выбрать режим работы кэша? У кэша RAID-матрицы есть два режима работы: сквозная запись (Write Through) и отложенная запись (Write Back). При первом режиме контроллер не дает подтверждения записи, пока данные не попали на диски, при втором достаточно того, чтобы данные попали в кэш. Второй режим помогает значительно увеличить производительность RAID-системы. Особенно это сказывается при наличии большого кэша и режима записи/чтения маленьких объемов информации. Существенный недостаток его в том, что при потере питания на контроллере или аппаратной перезагрузки информация безвозвратно теряется, так и не попав на диски. Здесь возможны три варианта: отказ от дополнительного быстродействия RAID-системы в пользу надежности; пренебрежение возможностью потерять данные из кэша в пользу производительности; приобретение дополнительного аккумулятора (Battery BackUp) для поддержания питания SIMM при отсутствии питания на плате.

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

Как определить состояние контроллера при зависании сервер?а? Какие бы не были надежные сервера и операционные системы, нельзя быть уверенным, что система не зависнет. Самое неприятное в этой ситуации - необходимость делать аппаратную перезагрузку, не представляя себе, что происходит с дисковой системой. Предотвратить эту ситуацию можно при аппаратной установке RAID. На плате контроллера имеется разъем для трех индикаторов: активность SCSI-шины, активность шины PCI (EISA), "полный кэш" (данные в кэше еще не попали на диск). Желательно последний из них вывести на светодиод корпуса сервера. По состоянию этих индикаторов можно определить активность контроллера. При "чистом" кэше можно смело делать перезагрузку, не опасаясь потери данных. По рекомендации производителя необходимо выждать не менее 15 сек. после зависания или не менее 3 сек. после выключения индикатора "полный кэш" прежде чем делать перезагрузку.

Чем отлич?аются модели MYLEX DAC960PL и MYLEX DAC960PD? Эти два контроллера для шины PCI стандарта WIDE FAST SCSI-2. Принципиальное различие в типе процессора I960. На модели PD имеется полноразмерный чип, на модели PL уменьшенный вариант той же микросхемы. Обе модели работают со стандартными SIMM любой емкости (2-64 Мбайт), но модель PD поддерживает еще EDRAM - память со статичными регистрами, позволяющую увеличить скорость доступа (не путать с EDO для chipset Triton). Общее различие: модель PD более производительная, PL - более экономичная. Когда собирается матрица небольшого объема (до 10 Гбайт) без большой нагрузки на диски целесообразней выбрать контроллер типа PL. Если же объем дискового пространства больше 20 Гбайт или нужна хорошая производительность, то для этого требуется модель PD.

Какими средствами можно конфигурировать RAI?D? С любым RAID-контроллером должна поставляться утилита конфигурации под MS-DOS (daccf.exe). После физической установки RAID-контроллера можно загрузиться с дискеты или дополнительного винчестера и запустить утилиту. После создания матрицы и системных дисков всю конфигурацию можно сохранить на дискете прямо из программы. После окончания работы и перезагрузки получаются готовые для работы системные диски. Для изменения конфигурации RAID необходимо останавливать сервер и запускать эту программу. Этого можно избежать, используя клиент-серверную утилиту Global Array Maneger под Novell NetWare. Серверная часть, в виде модуля nlm, загружается под NetWare и администратор со своей рабочей станции может наблюдать за работой дисков, вносить изменения вплоть до "убийства" диска (kill drive). Утилита Global Array Manager также входит в стандартную поставку RAID-контроллера.

Как правильно сделать RAID-систему

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

Рекомендации будут строиться на следующих фактах: большое распространение в России получили RAID-контроллеры производства американской фирмы Mylex, а наиболее актуальными на сегодняшний момент RAID-контроллерами являются системы с каналами WIDE/FAST SCSI-2 на шины PCI и EISA.

Какие диски выбрать?

В первую очередь необходимо выбрать действительно надежные и качественные диски, способные бесперебойно работать продолжительное время. Среди прочих характеристик стоит обратить внимание на время наработки на отказ, которое в каталогах часто обозначается MTBF (hours). Желательно, чтобы этот показатель был не меньше 500000 часов. Помните, что вероятность отказа дисковой матрицы как целой системы увеличивается с увеличением количества дисков. Конструкция дисков условно делится на механическую и электронную часть - дисковый контроллер. Механическая часть полностью характеризуется тремя параметрами: скоростью вращения шпинделя (Spindle Speed), скоростью позиционирования головки (Track-to-Track Seek) и плотностью записи информации на один цилиндр. Современные модели жестких SCSI-дисков известных фирм производителей имеют скорость вращения шпинделя 5400 и 7200 оборотов с секунду (rps). Выбор таких дисков позволит сделать матрицу достаточно быстрой. Однако технология производства дисков на 7200 rps достаточно дорога и менее надежна. Несмотря на хорошие характеристики по каталогам диски на 7200 rps значительно дороже. Их реальная вероятность отказа в несколько раз выше, чем 5400 rps. Если первоочередная задача создания RAID-матрицы - скорость, то выбор этих дисков очевиден, если же требуется надежность и экономичность, то необходимы диски с 5400 rps.

Производительность дисковой матрицы зависит не только от производительности дисков, но и от их числа и правильной конфигурации. Контроллер диска в основном характеризуется интерфейсом (FAST SCSI-2, WIDE FAST SCSI-2 и др.) и размером кэша. Желательно чтобы объем кэша на диске был не менее 512 Кбайт. Этот, казалось бы, незначительный факт позволит увеличить производительность записи/чтения, особенно при частых и малых транзакциях - ведь в дисковой матрице этот кэш складывается и при 10 дисках, а в результате вы получите уже не менее 5 Мбайт. Кроме того, кэш значительно помогает работе с постоянно мультиплексируемой шиной SCSI. Выбор стандарта FAST SCSI-2 (8 бит данных) или WIDE FAST SCSI-2 (16 бит данных) обусловлен другими причинами. Стандартный FAST имеет пропускную способность до 10 Мбайт/с, и если принять среднюю скорость работы диска за 2Мбайт/с, то при наличии менее 5 устройств на шине, она не будет узким местом. При равном или большем количестве желательнее стандарт WIDE (20Мбайт/с). В ситуации, когда информация находится в кэше контроллеров дисков, WIDE-шина даст более быстрые результаты. При самостоятельной сборке RAID на шине WIDE можно столкнуться еще и с той проблемой, что кабели WIDE (68 pin) имеют другой шаг, и для изготовления собственного кабеля необходима точная обжимная аппаратура. Сделать его "в домашних условиях" не получится, а на российском рынке на данный момент представлены, в основном, стандартные кабели на 3 разъема. С покупкой или изготовлением по чертежу FAST (50pin) кабеля сейчас никаких проблем нет.

Важной задачей является выбор емкости жестких дисков. Например, при организации RAID5 с полезным объемом 8 Гбайт можно поставить 3 диска по 4 Гбайт, 5 дисков по 2 и 9 дисков по 1 Гбайт. В этом случае платить приходится за 12, 10 или 9Гбайт объема, соответственно. Большее количество дисков теоретически даст большую скорость работы матрицы. Ограничения здесь чисто конструктивные: количество посадочных мест в корпусе, вентиляция и мощность блока питания. При расчете необходимой мощности источника питания следует помнить, что диски потребляют максимум энергии при раскрутке. B RAID-контроллерах есть возможность устанавливать план раскрутки шпинделей дисков с целью распределения во времени максимальной нагрузки.

Немаловажную роль в дисковых системах играют и корпуса. Для непрерывной устойчивой работы дисков необходим корпус с хорошей вентиляцией и мощным блоком питания. Посадочные места под диски должны быть расположены таким образом, чтобы между ними было достаточно расстояния для прохода воздуха. Вентиляция должна быть проточной, а не замкнутой. Желательно если имеется возможность установить дополнительную вентиляционную панель. Сейчас на российском рынке появилось много недорогих корпусов для RAID и практически все они снабжены конструктивом горячей замены (Hot Swap). Приобретая такие корпуса для своей системы, важно обратить внимание - действительно ли эти модули позволяют корректно и безопасно разрывать и восстанавливать SCSI соединения при работающей машине. Всегда имеется возможность отказаться от Hot Swap модулей в пользу дополнительного диска (дисков), которые будут находиться в режиме горячего резерва. Если вам требуется действительно долгоработающий сервер, то настоятельно рекомендуется подумать о резервных дисках и не подвергать себя соблазну использовать их для увеличения объема матрицы. Практически наверняка через год или полтора вы уже не найдете эту модель диска на мировом рынке.

Какое количество SCSI каналов потребуется?

Современные модели RAID-контроллеров имеют обычно до 3 SCSI-каналов. Так как эти изделия достаточно сложны и дороги, следует правильно выбрать модель. Если задача пользователя создать максимально дешевую дисковую систему, то выбирается минимум каналов исходя из количества дисков, причем на один канал можно ставить не более 7 устройств. Если же задача состоит в получении максимальной надежности и быстродействия, то лучший вариант - это 3-х канальный контроллер. Если же необходим компромисс, то возможны варианты. Многоканальный RAID позволит увеличить быстродействие дисковой системы по той причине, что каналы работают независимо друг от друга. Обращение к дискам на разных каналах происходит параллельно, а обращение по одному SCSI-каналу - в мультиплексорном режиме. В случае работы RAID с кэшем контроллеров дисков скорость передачи информации ограничена только пропускной способностью SCSI-шины, и на многоканальном варианте RAID-контроллера этот показатель будет выше. Для создания матрицы дисков безразлично расположение устройств на SCSI шинах, главное, чтобы их количество было не меньше минимального для выбранного уровня RAID (рис. 1).

Picture 3 (1x1)

Рис. 1. Способы организации дисковых матриц

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

Picture 4 (1x1)

Рис. 2. Схема конфигурации матриц для различных групп пользователей

В масштабах локальной сети эффективность работы такого сервера может значительно увеличиться. Хотя RAID-контроллеры сами по себе надежны и почти не подвержены поломкам в процессе эксплуатации, при использование многоканального RAID существует дополнительная гарантия отказоустойчивости сервера, когда в случае выхода из строя одного из каналов, всегда есть возможность переставить диски на другие и продолжать работу. С технической точки зрения, установка одного или многоканального контроллера абсолютно одинакова. Многоканальный не требует дополнительных слотов расширения, дополнительного питания и т.д. Он использует те же утилиты для конфигурации и также полностью совместим со стандартной ПК платформой, а ограничения здесь только финансовые, например недорогая модель одноканального RAID-контроллера фирмы Mylex на сегодняшний день стоит около 1000 долл. Увеличение на один канал обойдется дополнительно где-то в 25%. В дополнение можно посоветовать будущим конструкторам RAID-систем не устанавливать на SCSI каналы RAID-контроллера медленные устройства типа CD или стримера. Хотя теоретических запретов на это нет, но практический опыт работы показывает, что эти устройства значительно замедляют работу матрицы, особенно если они подключены не на отдельный канал. Лучшее решение в этом случае - это поставить дополнительный недорогой SCSI-контроллер.

Выбор типа RAID-алгоритма

Для достижения максимальной производительности работы сервера необходимо правильно подойти к выбору RAID-алгоритма. Как известно, самый быстрый доступ к дисковой подсистеме обеспечивает RAID0. Этот алгоритм хорош для виртуальных дисков, используемых для промежуточного хранения информации в процессе работы программы или для организации файла подкачки. Возможно также использование этого алгоритма для хранения больших объемов информации, некритичных к возможной потере, копии которых всегда можно восстановить из архива. RAID0 не только самый быстрый, но и максимально использующий дисковое пространство алгоритм. RAID0 - лучшее решение для мощной графической станции, работающей с очень большими объемами мультимедиа-файлов в реальном времени, когда кэш уже не спасает. При такой организации нам удавалось достигать результатов записи/чтения файлов размером 200 и более Мбайт, когда использование кэша уже исключается, и получать производительность до 14 Мбайт/с. Пиковая скорость в этом случае при размерах файлов 15 Мбайт достигает 30 Мбайт/c (рис.3).

Picture 5 (1x1)

Рис. 3. Производительность чтения/записи RAID-системы в зависимости от длины файла

Алгоритмы RAID5 и RAID1 применяют для виртуальных дисков, главное требование к которым - надежность хранения данных. Это файлы данных, резервного копирования, инсталлированное и настроенное программное обеспечение, операционные системы, рабочие модули и данные серверов печати, почтовых серверов и т.д. Эти диски можно выделять для хранения особо важных архивов и для ценных файлов, которые могут потребоваться в любой момент. Эти уровни сокращают полезный объем дискового пространства, но позволяют быть уверенными в гарантированной сохранности данных. Важной особенностью является то, что возможно сделать некоторое количество виртуальных системных дисков с разным уровнем RAID на одной дисковой матрице. Организация этих дисков не зависит ни от количества SCSI-каналов, ни от числа, ни от расположения физических дисков. Перед конфигурацией виртуальных дисков нужно четко представлять, какой обьем для какого уровня RAID необходим. Нежелательно создавать диски с объемом, равным необходимому на сегодняшний момент. Всегда оставляйте как минимум запас в 25% на расширение. Это связано с тем, что переделка объема виртуальных дисков может повлечь для администратора много проблем: архивацию всех данных на стриммер, остановку сервера, переконфигурацию, восстановление данных и т.д. В худшем случае, это простое непредвидение ситуации может обойтись как минимум днем работы администратора. Если у пользователя имеется строгие, разграниченные по функциям группы пользователей, то для них полезно сделать разные виртуальные диски, пусть даже с одинаковым уровнем RAID. Это облегчит администрирование и, возможно, даст увеличение производительности. Хорошим решением является создание виртуальных системных дисков для различных групп пользователей на разных матрицах (pack). В этом случае к минимуму сводится количество конфликтующих транзакций, что может существенно повысить производительность сервера. В заключении следует также предостеречь администратора от создания большого количества мелких дисков - в этом случае он рискует попасть в ситуацию, когда не хватит места ни на одном из них для инсталляции программного обеспечения, хотя общий объем дискового пространства позволил бы сделать это.

Сергей Романчиков (serge@cron.ru) — генеральный директор компании “Крон-студия” (Москва).