Интернет- версия проекта MegaPlus.ru

на главную | обратная связь  

RAID как обязательный атрибут сервера

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

Конечно же, SCSI диски по сравнению с IDE дисками имеют большую производительность и надёжность, но даже сегодня SCSI устройства остаются слишком дорогими не только для обычных пользователей, но и для компаний, желающих собрать недорогие серверы. К сожалению, стоимость одного мегабайта SCSI винчестеров несравнимо выше стоимости мегабайта IDE HDD. Про диски с Serial ATA говорить ещё рано: на сегодняшний день этот стандарт ещё очень слабо распространён - материнские платы только обзаводятся встроенными контроллерами Serial ATA, а винчестеры с поддержкой этого стандарта отличаются от IDE-винчестеров, разве что электроникой, так что говорить о каком-либо увеличении надёжности так же не приходится.

Поэтому, де-факто, сегодня RAID массивы на IDE винчестерах являются отличным выбором для тех, кому нужна большие производительность и надежность, чем та, которую готов дать обычный винчестер. На рынке присутствуют десятки моделей IDE винчестеров, все они могут использоваться в RAID массивах, да и с контроллерами недостатка в ассортименте нет: многие материнские платы среднего уровня и почти все материнские платы для компьютерных энтузиастов имеют встроенные ATA-133 RAID контроллеры, и в случае необходимости можно приобрести отдельную плату-контроллер от известных производителей и использовать её для создания RAID массива.

В этой статье мы рассмотрим преимущества, которые представляют нам RAID массивы и сравним четыре IDE RAID контроллера от таких производителей, как 3ware, Adaptec, HighPoint и Promise.

Ликбез по RAID

Прежде всего, что же такое RAID? Эта ставшая уже нарицательным аббревиатура, расшифровывается как Redundat Array of Inexpensive Disks или как Redundant Array of Independent Disks (Избыточный Массив Недорогих Дисков или Избыточный Массив Независимых Дисков). Как расшифровывать это сокращение - выбирать вам, поскольку пользователь может построить RAID-массив как из недорогих винчестеров с частотой вращения шпинделя 5400 оборотов в минуту, так и из дорогих высокопроизводительных SCSI дисков с частотой вращения шпинделя 15 000 оборотов в минуту. В RAID массив объединяются несколько физических дисков, в результате чего эти диски управляются одним контроллером и рассматриваются системой как один массив, то есть, как один диск. В результате увеличивается либо производительность массива, либо надёжность по сравнению с одним диском, либо и то и другое. При объединении винчестеров в RAID массив, возможны различные конфигурации построения массива, в зависимости от того, по каким принципам контроллер будет работать с каждым винчестером. Различают несколько уровней RAID массивов:

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

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

RAID 0 - Можно сказать, что RAID 0 является противоположностью RAID 1. В случае установки винчестеров в RAID массив нулевого уровня, контроллер так же использует несколько физических дисков как один логический, распределяя записываемую информацию по каждому из них. RAID 0 так же принято называть "Stripping", потому что контроллер как бы разбрасывает записываемую информацию сразу на несколько винчестеров, но не дублирует её, как в случае с зеркалированием. В результате объём дисковой подсистемы возрастает вместе с риском потери информации, так как выход из строя одного любого винчестера а RAID массиве нулевого уровня приводит к потере данных всего массива. То есть, RAID 0 массив из двух винчестеров будет в два раза ненадёжнее, чем любой из этих винчестеров и в четыре раза ненадёжнее чем RAID 1 массив из тех же двух винчестеров. Но преимущества RAID 0 в том, что объём дискового массива нулевого уровня будет складываться из объёмов всех винчестеров, входящих в массив. Это немаловажно, если вы работаете с огромными файлами (базы данных или видеофайлы), которые просто не могут уместиться на одном физическом диске, но отлично разместятся на одном логическом, собранном RAID-контроллером из двух.

RAID 10/0+1 - RAID массив 10 уровня и RAID 0+1 схожи в том, что использование этих массивов приводит к увеличению производительности и надёжности, так как эти массивы комбинируют в себе возможности RAID 0 и RAID 1, хотя делают это по разному. RAID 10 распределяет информацию по зеркалированным дискам, а RAID 0+1 является массивом, состоящим как бы из двух зеркалированных друг относительно друга RAID 0 массивов. В случае RAID 10 мы имеем дело с распределением по зеркалам, а в случае с RAID 0+1 - с зеркалированием распределённой информации. Хм... это не одно и то же...

В случае с RAID 0+1 и RAID 10 объём массива будет равняться половине суммы объёмов всех входящих в массив носителей. Каждый из винчестеров будет иметь свою "зеркальную пару", на которой будет храниться та же информация, что и на нём, так что логически работа будет производиться только с половиной винчестеров, хотя физически будут использоваться все.

Ну а что же по надёжности? В случае выхода из строя одного винчестера в RAID 0+1 массиве, состоящем из четырёх винчестеров, будут потеряны сразу два винчестера и в работе останется лишь половина RAID 0+1, то есть, RAID 0 массив, распределённый по двум дискам, а он, как известно, имеет в два раза меньшую надёжность, чем один винчестер. Так что лучше поскорее заменить вышедший из строя диск. В этом плане RAID 10 намного надёжнее, так как позволяет выходить из строя нескольким дискам в разных зеркалах. Правда, если в RAID 10 выйдут из строя два винчестера, являющиеся зеркалами друг друга, то массив перестанет функционировать.

RAID 5 - Этот тип массива распределяет информацию по нескольким винчестерам, как и в RAID 0, но при этом учитывает чётность. Индекс чётности хранится на каждом диске, входящем в массив. Проверка чётности немного снижает производительность RAID 5 массива в целом, но значительно увеличивает надёжность по сравнению с другими уровнями RAID. Если в массиве пятого уровня один из дисков выходит из строя, контроллер восстанавливает массив, используя индексы чётности, читаемые с других физических дисков.

Объём массива RAID пятого уровня зависит от числа физических дисков, объединённых в логические. Объём индекса чётности в RAID 5 равен объёму одного из физических дисков. Чем больше винчестеров в массиве, тем меньше будет процентное соотношение объёма индексных файлов по отношению к объёму всего массива. При использовании четырёх винчестеров, объединённых в RAID 5, объём массива будет равен сумме объёмов трёх из них, так как на каждом из винчестеров 25% будет занято индексом чётности.

Таким образом, мы видим, что RAID 0 даёт пользователю наибольшую производительность, за которую приходится платить наименьшей надёжностью массива, даже меньшей, чем надёжность одного диска. И чем больше винчестеров будет объединено в массив, тем меньше будет его надёжность. RAID 1 наоборот увеличивает надёжность, но не даёт прироста в производительности и объём массива будет в два раза ниже, чем суммарный объём всех винчестеров, входящих в его состав. RAID 10 и RAID 0+1 так же позволяют использовать лишь половину объёма всех винчестеров, но повышают при этом производительность и надёжность дисковой подсистемы. RAID 5 является как бы универсальным способом по надёжности и использованию объёма входящих в состав винчестеров, но использование этого способа снижает производительность дисковой подсистемы.

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

RAID-контроллеры

Все RAID-контроллеры, используемые нами в тестах, рассчитаны на работу в операционных средах Windows NT, Windows 2000 и Windows XP. Конечно же, некоторые из них будут работать и в Windows 98 и Windows ME, но эти операционные системы не рассчитаны на работу с RAID массивами. Рассматриваемые нами карты поддерживают несколько RAID массивов на одном контроллере и даже организацию RAID массивов из самих RAID массивов, то есть, можно сделать два RAID 0 массива из двух винчестеров каждый и объединить их в RAID 1. Так же рассматриваемые нами контроллеры поддерживают горячую замену винчестеров, чтобы была возможность заменить вышедший из строя носитель без остановки работы сервера.

Посмотрим на сравнительные характеристики используемых контроллеров

При выборе контроллера, важно знать, какие уровни RAID он поддерживает. И здесь есть некоторые моменты, на которые надо обратить внимание. Единственная плата, поддерживающая RAID 10 в нашем обзоре - это 3ware Escalade 7500. Дешёвый контроллер HighPoint RocketRAID 133 не поддерживает RAID 5, а Promise FastTrak SX4000 не поддерживает JBOD (Just a Bunch of Disks, простой пучок дисков) - конфигурацию, когда RAID контроллер работает как обычный IDE контроллер, не создавая массивы из винчестеров.

HighPoint PocketRAID - единственная двухканальная плата, чем так же и объясняется её низкая стоимость. Двухканальный контроллер поддерживает до четырёх дисков в конфигурации Master/Slave. Все прочие карты поддерживают не более чем по одному винчестеру на каждый канал и так же могут работать лишь не более чем с четырьмя винчестерами. И только контроллер от Adaptec использует 64-битную 33-Мегагерцовую шину PCI, а ведь при работе с быстрыми винчестерами, пропускной способности шины PCI (133 Мб/с) может уже и не хватить, так что использование 64-битной шины вполне оправдано.

Что касается поддержки операционных систем, то 3ware и HighPoint предоставляют открытые драйвера для Linux, операционной системы, весьма распространённой в серверах и рабочих станциях. 3ware так же предлагает драйвер под FreeBSD от сторонних производителей, что так же неплохо, ведь FreeBSD часто используется в вебсерверах.

Не всегда более дорогой RAID контроллер является лучшим. Более того - зачастую к дорогому RAID контроллеру придётся докупить ещё и память SDRAM, используемую для кэширования им информации. А в таких контроллерах используется SDR SDRAM ECC память, которая на сегодня уже является редкостью и производители контроллеров уже подумывают об использовании более распространённой DDR SDRAM в качестве кэш-памяти. Прежде чем покупать IDE RAID контроллер, надо выбрать конфигурацию сервера, число используемых винчестеров и в какой массив они будут объединены. Потому что если вы используете два винчестера в RAID массиве, то естественно, нет смысла покупать четырёхканальный RAID контроллер с поддержкой RAID пятого уровня.

Тестирование

Как мы уже говорили, производительность RAID-массива зависит от его уровня и от числа винчестеров, входящих в массив. Сравним производительность RAID 1, RAID 0 с двумя винчестерами, RAID 0 с четырьмя винчестерами и RAID 5. Для тестирования использовалась следующая тестовая конфигурация:

Во всех тестах использовалась файловая система NTFS с размером кластера 4 Кб. Для RAID 0+1, RAID 10 и RAID 5 использовались четыре винчестера. Рассмотрим производительность RAID массивов в WinBench 99.

Ну что же, первые тесты показывают, что не всегда чем дороже, тем лучше: 80-долларовая плата начального уровня HighPoint RocketRAID 133 выигрывает у дорогих контроллеров RAID. К сожалению, RocketRAID 133 не поддерживает RAID массивы пятого уровня, поэтому нельзя предположить, как бы повёл себя контроллер при распределении индексов чётности по винчестерам. Но High-End Winmark и Business WinMark показывают лишь обобщённые очки, набранные контроллерами. Рассмотрим результаты синтетических тестов. Следующий тест - WinBench 99 Data Transfer Rate.

В тестах Data Transfer Rate выигрывают контроллеры от Promise и 3ware, однако, в начале и конце диска показатели разные. С точки зрения оптимального соотношения производительности и надёжности, нас интересуют режимы RAID 10 и RAID 0+1. Здесь, безусловно, и в начале и в конце диска выигрывает контроллер 3Ware. Обратите внимание, что при работе в RAID 1 с четырьмя дисками скорость передачи данных переваливает через 100 Мб/с. Но до преимуществ 64-битной шины PCI, которые раскрывает контроллер 3ware Escalade 7500, ещё далеко. Теоретически, все контроллеры способны передавать до 133 Мб/с и чтобы достигнуть этого предела, потребуется установить в RAID 0 четыре винчестера со скоростью чтения выше 33 Мб/с.

Время доступа к диску меняется у разных контроллеров и в зависимости от типа массива. Наименьшее влияние типа массива на время доступа к диску у контроллера HighPoint Rocket RAID 133. Наибольшее - у Adaptec 2400 A; это единственный контроллер, у которого в режиме RAID 0+1 время доступа увеличивается по сравнению с RAID 0 и у этого контроллера самое большое время доступа к диску в режиме RAID 1.

Загруженность процессора - очень важный фактор выбора контроллера и типа массива как в сервере, так и в рабочей станции. Практически все контроллеры показывают одинаковые значения, рознящиеся в зависимости от типа массива. Самая высокая загрузка процессора, как и ожидалось, проявляется в режиме RAID 5, здесь почти все ресурсы 2.4 ГГц процессора Pentium 4 уходят на работу с дисковой подсистемой. Немногим меньше расходуется в режиме RAID 0 с четырьмя винчестерами. Ну а RAID 1, RAID 0 с двумя дисками, RAID 10 и RAID 0+1 являются наиболее щадящими в вопросе загрузки CPU.

Выводы

Трудно представить современный сервер или рабочую станцию, не использующую RAID массив. Где-то используются винчестеры с интерфейсом SCSI, где-то Serial ATA, а где-то ATA100/133. Выбор интерфейса зависит прежде всего от денежной суммы, на которую рассчитывает заказчик сервера. Интерфейс SCSI имеет преимущества при частых обращениях к файловой системе, поэтому крупные серверы на больших предприятиях имеют ATA100/133 винчестер для загрузки операционной системы и SCSI RAID массив для хранения информации, к которой будет осуществляться доступ клиентов. Как правило, такие серверы имеют очень высокую стоимость и их использование не всегда оправдано. Для серверов начального уровня или для компьютеров, используемых для обработки медиа-файлов, наиболее выгодно использовать RAID массивы из ATA100/133 винчестеров с частотой вращения шпинделя 7200 оборотов в минуту. С одной стороны, они имеют высокую скорость передачи, сравнимую со SCSI винчестерами, приемлемую стоимость за мегабайт, да и IDE RAID контроллеры стоят намного дешевле, чем SCSI RAID платы. При использовании четырёх винчестеров оптимальным является выбор RAID массива десятого уровня, поскольку он имеет чуть меньшую производительность, чем четыре винчестера в RAID 0, но при этом его надёжность даже выше, чем у RAID 1 и RAID 0+1. Можно сказать, что недостатком RAID 10 является использование лишь половины объёма всех винчестеров в массиве, но при наличии в продаже 160-200 Гб винчестеров, этот вопрос можно снимать с рассмотрения, поскольку 400 Гб хватит для большинства современных задач. А там, где идёт работа с большими объёмами данных, обычно устанавливаются серверы совсем другого уровня.

Ну а если в компьютере установлены лишь два жёстких диска, отведённых под RAID массив? Тогда надо чётко понимать, как будет использоваться их дисковое пространство. Если под временные файлы или файл подкачки, то имеет смысл установить их в RAID 0, так как стоимость информации на них будет ниже, чем стоимость времени, которое позволит выиграть более быстрый массив. Ну а если на этих винчестерах будет храниться важная информация, то имеет смысл ставить лишь RAID 1 (зеркалирование). Поскольку надёжность такого массива будет даже ниже, чем надёжность одного винчестера и в случае выхода из строя оного, восстановить данные будет невозможно. А в наше время информация стоит дороже, чем носитель, на котором она хранится.

В заключении хочу напомнить, что производители IDE винчестеров всегда заявляют ресурс наработки на отказ, MTBF, измеряющийся в тысячах часов. Приятно видеть, что ресурс винчестера составляет, скажем, 60 000 часов (почти 7 лет беспрерывной работы), но это значение - усреднённое и, к сожалению, зачастую винчестеры не вырабатывают и половину заявленного ресурса. Так что при выборе RAID массива лучше принять за истину, что все IDE винчестеры ненадёжны и надо быть готовым к тому, что любой винчестер может выйти из строя на второй день после установки - излишняя предосторожность не помешает. И не забывайте делать резервные копии!