На 0, 1, 5, 10, 50 рассчитайсь!
 
27.04.2004
Павел Данилов


 
стр. 1
стр. 2 >>

Введение

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. Это хорошее серверное решение, но для его реализации требуется как минимум шесть дисков.

Диски: SCSI vs. SATA

Производительность 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).

Таблица 1

Тем не менее, если нужно радикально увеличить скорость потокового чтения/записи (RAID0) или создать отказоустойчивую конфигурацию (RAID1) для недорого сервера «малой кровью» — эти контроллеры вполне годятся. В последнее время такие крупные производители Intel-серверов, как Dell или HP, комплектуют свои продукты самого нижнего ценового сегмента подобными контроллерами. Стоимость контроллеров колеблется от 20 до 80 долларов, причем самыми дорогими оказываются RAID-контроллеры от именитых SCSI-брэндов, вроде Mylex или Adaptec. Возможно, это как-то сказывается на качестве драйверов и firmware, однако по скорости эти «дорогостоящие» контроллеры, как правило, оказываются в середнячках.


 
стр. 1
стр. 2 >>

<<Ревизия vs версия
Все материалы номера
Железный поток >>