SATA RAID-контроллеры: теория и практика
АрхивНакопителиЦель этой статьи — познакомить читателя с SATA RAID-контроллерами разной направленности и производительности, дать «срез» рынка — от самых простых устройств до мощных автономных систем хранения со встроенными мультипроцессорами.
ATA-диски и ATA-интерфейс прошли длительную эволюцию и все успешнее конкурируют со SCSI-устройствам на рынке серверов и рабочих станций. Современный интерфейс SATA (в сущности, простое соединение «точка-точка» между диском и контроллером) быстро проникает в серверы — во многом благодаря таким особенностям SATA-дисков, как высокая емкость и низкая стоимость мегабайта дискового пространства. Работа менее надежных по сравнению со SCSI SATA-дисков в ответственных приложениях становится возможной благодаря технологиям RAID, и сегодня десятки фирм предлагают широчайший спектр SATA RAID-контроллеров. В подобном разнообразии довольно трудно сориентироваться, и цель этой статьи — познакомить читателя с SATA RAID-контроллерами разной направленности и производительности, дать «срез» рынка — от самых простых устройств до мощных автономных систем хранения со встроенными мультипроцессорами. Но сначала кратко ознакомимся (кто-то просто освежит в памяти) с собственно технологией RAID без привязки к конкретному дисковому интерфейсу.
Немного теории: уровни RAID
За двенадцать лет существования RAID было написано множество превосходных статей и книг, посвященных этой технологии, поэтому мы не будем глубоко анализировать влияние размера страйп-блока на скорость произвольного доступа или пристально разглядывать распределение данных по дискам. Кратко рассмотрим основные RAID-уровни — RAID 0, 1, 5, 50 — и обсудим их практическое применение. Еще один «уровень» RAID — JBOD (Just a Bundle Of Disks) — просто набор дисков без организации RAID.
• RAID0 объединяет все N дисков в массив, емкость которого равна N*(емкость наименьшего диска). При этом данные расщепляются (striped) блоками по всем дискам массива. Если поступает запрос на чтение/запись логически последовательных блоков, то происходит параллельное обращение, и скорость операций ввода-вывода увеличивается. Практически это означает две вещи: 1) cбой приводит к потере данных; 2) скорость потокового чтения/записи при некотором оптимальном размере страйп-блока увеличивается почти пропорционально числу дисков в массиве (!). Конечно, пропускная способность шины RAID-контроллера и сбалансированность его внутренней архитектуры имеют огромное значение. В общем, это неприемлемое для серверов решение может использоваться для работы с большими файлами на рабочей станции — при обработке видео, некоторых научных вычислениях, для собственного удовольствия и т. д. Если вы все-таки соблазнились высокой скоростью RAID0, обязательно продумайте маломальскую систему резервного копирования (backup).
• RAID1 — отказоустойчивый массив из пары дисков. При записи данные с первого диска дублируются на втором (так называемое зеркалирование). Это эффективное и сравнительно простое в реализации решение обладает существенным недостатком — объем дискового пространства массива равен емкости наименьшего диска (например, если объединить в RAID1 диски на 30 и 40 Гбайт, то доступно будет только 30 Гбайт). У RAID1 есть приятные особенности — можно уменьшить время доступа к массиву по сравнению с одиночным диском благодаря оптимизации запросов на чтение. Кроме того, скорость чтения тоже может значительно повыситься из-за параллельного считывания с двух дисков. В серверных приложениях RAID1 может показывать гораздо большую производительность, чем одиночный диск или даже RAID0, но это верно не для всех приложений и, к сожалению, не для всех контроллеров. Так что будьте внимательны при покупке.
• RAID5 использует независимый доступ к дискам, так что запросы к разным дискам могут выполняться параллельно. Избыточность достигается путем размещения блоков четности циклически по всем дискам массива. При сбое какого-либо диска информацию можно восстановить, используя данные на оставшихся дисках. Емкость такого массива равна (N–1)*(емкость наименьшего диска). Минимальное число дисков для реализации массива равно трем. Причем для вычисления четности (а это нужно при каждой операции записи) необходимо вычислить функцию XOR для записываемых битов. Большинство контроллеров используют для этого специализированные процессоры, но некоторые выполняют операцию программно, силами центрального процессора.
Итак, независимый доступ дает возможность массивам RAID5 достигать высокой производительности в серверных приложениях с высокой частотой транзакций, при этом достаточно экономно расходуя дисковое пространство для обеспечения избыточности. RAID5 — очень распространенное и разумное решение для самых разных серверов.
• RAID10 — массив RAID0, элементами которого являются массивы RAID1. Цель — объединить высокую производительность RAID0 с отказоустойчивостью RAID1. В последнее время часто встречается в недорогих контроллерах.
• Идея RAID50 в том, чтобы объединить отказоустойчивость и высокую скорость обработки транзакций RAID5 с высокой скоростью потокового чтения/записи RAID0. RAID50 представляет собой RAID0-массив, элементами которого являются массивы RAID5. Это хорошее серверное решение, но для его реализации требуется как минимум шесть дисков. Читать дальше >>>
Производительность RAID-массива зависит от производительности составляющих его дисков. Многодисковый массив может во много раз поднять скорость потокового чтения/записи, но на время доступа RAID влияет довольно слабо. Не вдаваясь в эзотерические тайны протоколов, отметим основные особенности SATA- и SCSI-устройств. Прежде всего, MTBF (среднее время между отказами) типичного ATA(SATA) диска примерно в 1,5–2 раза меньше, чем у SCSI-винчестера. Это неприятно для администраторов серверов с SATA-дисками, но не слишком сильно сказывается на доступности данных при грамотном использовании RAID. Впрочем, производители часто не указывают MTBF, что косвенно может свидетельствовать о невысокой надежности винчестера. Далее, основной козырь ATA(SATA)-дисков — большая емкость и низкая стоимость. Сейчас запросто можно купить 250-гигабайтный на 7200 об./мин. SATA-диск за $250, тогда как максимальная емкость SCSI-диска — 147 Гбайт (10000 об./мин.) при цене $800. Время поиска типичного 250-Гбайт SATA-диска — 9 мс, скорость чтения в начале диска — 55–60 Мбайт /с. Для приведенного в пример 147-Гбайт SCSI-диска время поиска — 4,1 мс, скорость чтения — 65–70 Мбайт/с. Итак, 1 Мбайт дискового пространства SATA-винчестера более чем в пять раз (!) дешевле, при этом время доступа в два с лишним раза выше, а скорость передачи данных всего на 16% меньше. Понятно, что SATA имеет смысл использовать там, где требуется большой объем дисковой памяти и относительно невысокие требования ко времени доступа (файл-серверы); SCSI явно лидирует в области «тяжелых» CУБД и других приложений, где нужна максимальная скорость обработки большого числа запросов.
Ground Zero — два порта
Самые простые контроллеры поддерживают два порта SATA (максимум два винчестера). В такой конфигурации доступны всего два уровня RAID — 0 и 1. Исключение — контроллер Promise TX2plus с каналом ATA-133, благодаря чему можно подключить еще два диска. Такие типичные для «серьезных» контроллеров функции, как горячая замена дисков или резервное питание батареи, обычно не поддерживаются, поэтому в случае сбоя придется изрядно потрудиться, восстанавливая массив (см. табл. 1).
Promise FastTrak S150 TX2plus. |
Adaptec SATA RAID 1210SA. |
Таблица 1. Характеристики двухпортовых контроллеров | ||||
Контроллер |
Уровни RAID |
Интерфейс PCI |
Кэш |
Горячая замена |
Promise FastTrak S150 TX2plus |
0, 1, 0+1, JBOD |
32х66 МГц |
нет |
да |
Adaptec SATA RAID 1210SA |
0, 1, JBOD |
32х66 МГц |
нет |
нет |
Тем не менее, если нужно радикально увеличить скорость потокового чтения/записи (RAID0) или создать отказоустойчивую конфигурацию (RAID1) для недорого сервера «малой кровью» — эти контроллеры вполне годятся. В последнее время такие крупные производители Intel-серверов, как Dell или HP, комплектуют свои продукты самого нижнего ценового сегмента подобными контроллерами. Стоимость контроллеров колеблется от 20 до 80 долларов, причем самыми дорогими оказываются RAID-контроллеры от именитых SCSI-брэндов, вроде Mylex или Adaptec. Возможно, это как-то сказывается на качестве драйверов и firmware, однако по скорости эти «дорогостоящие» контроллеры, как правило, оказываются в середнячках.
Следующий уровень — четыре порта
По функциям четырехпортовые SATA RAID все больше и больше приближаются к SCSI RAID. Здесь есть уже и поддержка «настоящего серверного» RAID5, и горячая замена, и удаленный мониторинг, и другие прелести. Впрочем, не всегда и не везде, и, конечно, только за дополнительные деньги.
Promise FastTrak S150 SX4. |
Пропускной способности 32-разрядной 33-мегагерцовой PCI-шины уже не хватает для одновременной работы четырех современных винчестеров, поэтому для этих устройств хорошим тоном является поддержка как минимум 66-МГц шины PCI с пропускной способностью 266 Мбайт/с. Посмотрим на характеристики некоторых распространенных четырехканальных SATA RAID-контроллеров (табл. 2).
Promise FastTrak S150 TX4. |
Adaptec SATA RAID 2410SA. |
Таблица 2. Характеристики четырехканальных SATA RAID-контроллеров | |||||
Контроллер |
Уровни RAID |
Интерфейс |
Кэш |
Горячая |
Аппаратный |
Promise FastTrak S150 SX4 |
0, 1, 5, 10, JBOD |
32х66 МГц |
до 256 Мбайт ECC/non-ECC SDRAM |
да |
да, процессор Promise |
Promise FastTrak S150 TX4 |
0, 1, 0+1, JBOD |
32х66 МГц |
нет |
да |
нет |
Intel SRCS14L |
0, 1, 4, 5, 10 |
64х66 МГц |
64 Мбайт PC100 ECC SDRAM |
да |
да, i80303 |
Adaptec SATA RAID 2410SA |
0, 1, 10, 5, JBOD |
64х66 МГц |
64 Мбайт ECC SDRAM |
нет |
да, i80302 |
HighPoint RocketRAID 1640 |
0, 1, 5, 10, JBOD |
32х33 МГц |
нет |
нет |
нет |
Разброс по «фичам» очень велик — от совсем аскетичных без поддержки RAID5 до вполне «профессиональных», с поддержкой горячей замены и быстродействующей 64-битной 66-МГц шины. Ясно, что делать сервер на базе RocketRAID 1640 или FastTrak S150 TX4, скорее всего, не стоит, а вот на FastTrak S150 SX4 или Intel SRCS14L рекомендую обратить внимание. Впрочем, предложение на рынке настолько велико, что в рамках одной статьи подробно рассмотреть даже одни четырехпортовые SATA RAID-контроллеры очень проблематично. Среди других уважаемых фирм, производящих контроллеры этого уровня, отметим 3Ware и Mylex. Не забывайте, однако, что стоимость самых навороченных четырехпортовых контроллеров приближается к $400. В общем, если вы собираетесь потратить от $400 до $1500 на дисковую подсистему сервера или рабочей станции — тщательно изучите эти RAID-контроллеры. Впрочем, за $1500 можно приобрести и SCSI RAID вместе с винчестерами, значительно превосходящий по масштабируемости четырехпортовые SATA RAID, ограниченные четырьмя дисками. Далее нас ждут настоящие монстры SATA RAID, снимающие эту проблему, — с числом каналов вплоть до шестнадцати. Читать дальше >>>
Типичный одноканальный SCSI-контроллер поддерживает до пятнадцати дисков, но существуют и четырехканальные (например, LSI Logic MegaRAID SCSI 320-4x), способные управляться с шестьюдесятью винчестерами! Конечно, масштабирование производительности в таких тяжелых конфигурациях далеко от идеала, но возможность нарастить объем дискового пространства впечатляет. Надо сказать, даже самые мощные современные SATA RAID-контроллеры в этом смысле сильно уступают SCSI, поддерживая максимум шестнадцать устройств. Зато их производительность не ограничена пропускной способностью SCSI-шины, и потенциально они могут достигать очень высокой скорости потокового чтения/записи, опережая SCSI. Что же касается времени доступа, то 15000-об./мин. SCSI-диски, конечно же, недостижимы даже для самых быстрых SATA-винчестеров, поэтому для «тяжелых» СУБД предпочтительнее SCSI (и Fibre Channel). Характеристики самых мощных SATA RAID-контроллеров от известных на этом рынке фирм представлены в табл. 3.
Таблица 3. Характеристики самых мощных SATA RAID-контроллеров | ||||||
Контроллер |
Число каналов |
Уровни |
Шинный |
Кэш |
Горячая |
Аппаратный XOR |
Adaptec SATA RAID 21610SA |
16 |
0, 1, 5, 10, JBOD |
PCI 2.2 |
64 Мбайт |
да |
да, i80303 |
RAIDCore RC4852 |
8 |
0, 1, 5, 10, 50, 1n, 10n, JBOD |
PCI-X |
нет |
да |
нет |
3Ware 9500S-12 |
12 |
0, 1, 5, 10, 50, JBOD |
PCI 2.2 |
до 1 Гбайт ECC SDRAM |
да |
да |
HighPoint RocketRAID 1820 |
8 |
0, 1, 5, 10, JBOD |
PCI-X |
нет |
нет |
нет |
Разброс характеристик очень велик, так что и здесь можно долго выбирать и сравнивать. Есть и полностью «серверные» решения с многочисленными функциями (батарея питания кэша, увеличение емкости в процессе работы, изменение уровня и конфигурации массива); имеются и недорогие контроллеры, тем не менее позволяющие достигать высокой производительности. Цены колеблются от $160 до $850. Во многих случаях вместо многоканального монстра внутри сервера гораздо удобнее использовать внешние автономные подсистемы хранения данных. Их удобнее конфигурировать и обслуживать, значительно проще адаптировать к изменяющимся потребностям хранения данных. Рынок таких устройств для дисков с SATA-интерфейсом стремительно развивается, поэтому имеет смысл хотя бы кратко рассмотреть некоторые из них.
Автономные подсистемы
Автономная SATA-система представляет собой, грубо говоря, ящик с корзинами для SATA-дисков (обычно в пределах двадцати). Интерфейс каждого диска подключается внутри «ящика» к общей плате. Обмен данными с внешним миром происходит через один или несколько быстродействующих интерфейсов — U160/320 SCSI, Fibre Channel. Устройства с интерфейсами SCSI/Fibre Channel предназначены для подключения к одному или нескольким хост-компьютерам (серверам), в этом случае их принято называть SAS (Server Attached Storage) либо DAS (Direct Attached Storage). Контроллер хоста общается с такой системой хранения как с обычным SCSI/Fibre Channel-устройством. Далее, диски SATA все активнее используются в системах SAN (Storage Area Networks) и NAS (Network Attached Storage) c интерфейсами Fibre Channel и Gigabit Ethernet. Эти устройства, по сути, являются специализированными серверами с собственными процессорами и основной памятью, позволяющими создавать распределенные и гибкие системы хранения данных. Из огромного множества доступных на рынке устройств я выбрал несколько типичных, их параметры приведены в табл. 4.
Promise Vtrak 15100. |
Adaptec iSA1500. |
Таблица 4. Характеристики автономных SATA-систем | |||||
Устройство |
Максимальное |
Внешние |
Уровни |
Назначение |
Другие |
Promise Vtrak 15100 |
15 |
2 канала U160 SCSI |
0, 1, 3, 5, 10, 50 |
SAS/DAS |
Intel SL6R3, max 512 Мбайт ECC |
Promise Vtrak 15200 |
15 |
2 канала iSCSI |
0, 1, 3, 5, 10, 50 |
SAN |
Intel SL6R3, max 512 Мбайт ECC |
Adaptec iSA1500 |
4 |
1 порт Gigabit Ethernet |
0, 1, 5, 10 |
SAN (iSCSI) |
Intel Xeon 1,6 ГГц, |
Iomega NAS 800m/2TB |
8 |
2 порта Gigabit Ethernet |
0, 1, 5 |
NAS |
2хIntel Xeon 2,4 ГГц, |
Стоимость таких систем может составлять от пары сотен долларов до десяти тысяч, а то и и выше. Причина широкого распространения SATA в автономных подсистемах все та же — большая емкость дисков и в несколько раз более низкая стоимость хранения единицы информации по сравнению с дисками SCSI.
Заключение
Выбирая дисковую подсистему для сервера или рабочей станции, имеет смысл внимательно отнестись к SATA RAID-контроллерам. Предложений на рынке пруд-пруди, и можно выбрать устройство на любой вкус. Терабайтный отказоустойчивый массив можно вполне создать менее чем за $1500. При этом к выбору надо подойти очень серьезно, тщательно взвесив сильные и слабые стороны понравившегося контроллера. Полезно просмотреть как можно больше тестов, поинтересоваться у знакомых и в сетевых конференциях об «особенностях» работы контроллера (к сожалению, до сих пор бывают случаи необычно низкой производительности некоторых контроллеров с некоторыми дисками или в определенных RAID-уровнях), изучить спецификации производителя и выяснить, поддерживает ли контроллер нужные вам функции — горячую замену, горячее резервирование, извещение о событиях по e-mail и т. д.