Введение
Для наших тестов RAID мы вновь использовали винчестеры Samsung HM321KJ SATA/300. На этот раз мы тестировали конфигурации RAID 5 и RAID 6 с числом жёстких дисков от трёх до восьми.
За последние месяцы тема RAID стала весьма популярной. Технология RAID, которая расшифровывается как массив недорогих/независимых жёстких дисков с избыточностью (Redundant Array of Independent Drives), была разработана, чтобы преодолеть ограничения отдельных жёстких дисков, которые, надо сказать, не так надёжны, как хотелось бы. RAID позволяет объединить винчестеры в массивы разных типов. После своего дебюта в high-end серверах конфигурации RAID (или уровни RAID) стали весьма доступными для обычных пользователей. Массивы RAID 0 и RAID 1 легко развернуть, поэтому они являются самыми популярными. Они построены на создании так называемого чередования (RAID 0) или зеркалирования (RAID 1), когда содержимое одного жёсткого диска полностью копируется на другой. Впрочем, RAID 5 и RAID 6 являются более элегантными конфигурациями для тех, кому нужен максимум возможностей от массива.
Мы вновь использовали ту же тестовую систему, что и в первой части тестов масштабируемости RAID. Мы постарались протестировать все возможные конфигурации RAID 5 и RAID 6, как на минимально возможном числе винчестеров, так и с восемью подключёнными жёсткими дисками. Два упомянутых уровня RAID особенно интересны для файловых серверов, которые должны обеспечить большую доступную ёмкость, а также высокий уровень защиты информации от потери. Базовый массив RAID 0 даёт максимальную производительность, поскольку он считывает и записывает данные на все жёсткие диски одновременно. Но за это приходится платить снижением надёжности хранения данных, поскольку риск потери информации повышается с каждым жёстким диском, добавленным в массив. Так, шансы, что вы потеряете данные на массиве RAID 0 с пятью жёсткими дисками в пять раз выше, чем с одним винчестером. RAID 1, напротив, снижает риск потери данных, зеркалируя информацию с одного винчестера на другой в реальном времени. К сожалению, на том же наборе из двух винчестеров вы сможете использовать лишь 50% ёмкости по сравнению с RAID 0, да и два винчестера обычно являются максимумом, с которым работает RAID 1.
RAID 5 и RAID 6 сочетают высокую производительность и надёжность хранения данных, поскольку информация записывается и считывается на все жёсткие диски, но при этом записывается и информация избыточности (чётности). Если RAID 5 распределяет информацию по всем жёстким дискам, то RAID 6 идёт ещё дальше и создаёт ещё одну информацию избыточности по всем дискам RAID 5. Конфигурация RAID 5 требует не меньше трёх винчестеров для распределения данных, а RAID 6 требует уже четыре или больше жёстких дисков. Если массив RAID 5 выживет при выходе из строя одного винчестера, то RAID 6 может выдержать сбой двух накопителей без потери данных. RAID 5 уже многие годы весьма популярен среди рабочих станций профессиональных пользователей и серверов, а RAID 6 используют там, где необходимо ещё более повысить надёжность хранения данных. Оба массива можно развернуть на host-контроллерах RAID, которые часто берут на себя расчёты информации избыточности. Впрочем, из-за появления дву- и четырёхядерных процессоров расчёты избыточности (XOR) уже не создают “узкого места” по производительности. В любом случае, RAID-контроллеры с аппаратным XOR-движком обеспечивают прозрачную поддержку массивов с избыточностью, так что сложные хранилища данных всё равно не нагрузят вашу систему.
Ниже мы рассмотрим, как работают RAID 5 и RAID 6, как рассчитывается информация избыточности, и как эти массивы будут работать на нашей тестовой системе. Вы будете наверняка удивлены тем, что большое число приводов отнюдь не приводит к пропорциональному росту производительности, а RAID 5 вряд ли можно назвать хорошим выбором для обычных настольных ПК.
RAID 5: чередование с избыточностью
В приведённой таблице хорошо видно, как массив RAID 5 распределяет данные. В данном примере мы использовали четыре жёстких диска, то есть одна порция данных (stripe set), включая информацию избыточности, разделяется на четыре кусочка данных. Последний кусочек всегда является информацией избыточности. Важно понимать, что массив, который сохраняет кусочек с информацией избыточности всегда на один жёсткий диск, является RAID 3. Хотя RAID 3 сегодня поддерживают немногие контроллеры, мы считаем, что такой режим оправдывает себя для массивов с тремя или, максимум, четырьмя жёсткими дисками, чья конфигурация с большим числом винчестеров может быстро упереться в производительность жёсткого диска, хранящего информацию избыточности. Именно поэтому RAID 5 распределяет информацию избыточности по всем доступным винчестерам.
Это имеет своё преимущество, поскольку отдельного винчестера с информацией избыточности, который мог бы стать “узким местом”, здесь нет. Но есть и недостаток: вам всегда придётся работать с информацией избыточности, если вы используете пониженный массив (с вышедшим из строя жёстким диском) или восстанавливаете полное состояние RAID 5 после понижения и добавления рабочего винчестера. Если жёсткий диск с информацией избыточности RAID 3 выйдет из строя, то вы сможете нормально работать с RAID 3 до тех пор, пока не установите винчестер на замену, после чего информация избыточности будет восстановлена.
Ограничения RAID 5
Возможность потери жёсткого диска без потери данных звучит хорошо, но массивы RAID 5 не обеспечивают полной надёжности хранения данных, как считают некоторые пользователи. Да, данные надёжно хранятся на полном рабочем массиве, и вы их не потеряете, если один винчестер выйдет из строя. Но данные можно легко потерять по следующим причинам:
- если выйдут из строя винчестеры из одной партии по одной причине (заводской дефект или окончание срока службы);
- пониженный массив RAID 5 не всегда даёт привычную производительность, и при этом нагрузка значительно увеличивается, повышая вероятность выхода из строя ещё одного винчестера;
- перестройка массива RAID 5 значительно нагружает жёсткие диски, что приводит к снижению производительности и высокой нагрузке массива;
- люди совершают ошибки: администратор может заменить не тот жёсткий диск и случайно уничтожить массив RAID.
Можно, конечно, повысить надёжность хранения данных выше уровня RAID 5, создав гнездовые конфигурации RAID, сочетая два массива. Хорошим примером можно считать RAID 5+1, когда массив RAID 5 зеркалируется на ещё один массив RAID 5. Но поскольку производительность контроллеров со временем возросла, появился ещё один весьма популярный массив: RAID 6.
RAID 6: чередование с двойной избыточностью
Если вы помните, как мы рассчитывали информацию избыточности, распределяемую по массиву RAID 5, то наверняка догадаетесь и о том, как распределяется двойная избыточность. Процесс создания информации избыточности (XOR) выполняется ещё раз, что позволяет потерять в массиве RAID 6 два жёстких диска, прежде чем произойдёт физическая потеря данных.
Как вычисляется избыточность?
Термины RAID 5 или RAID 6 вошли в лексикон современного ИТ-специалиста, но многие не знают базовых принципов их работы. Начнём с того, что для данных следует рассчитать информацию избыточности. Мы рассмотрим подобные вычисления на примере шести кусочков информации, что соответствует RAID 5 с шестью жёсткими дисками. Предположим, нам надо записать пять битов информации 11010, каждый бит будет записываться на свой жёсткий диск. Если нам нужно рассчитать информацию, которая позволит восстановить данные, то самый простой способ – выполнение двоичного XOR (исключающее или). Операция очень простая: 0+0=0, 0+1=1, 1+0=1 и 1+1=0. Эту операцию ещё называют проверкой на чётность, когда бит чётности будет равен нулю, если общее число единиц и нулей чётное, и единице в противном случае. Побитно обработав наш информационный блок 11010 мы получим:
1+1=0, 0+0=0, 0+1=1, 1+0=1. Всего три единицы и два нуля, поэтому число нечётное, результат равен 1.
Шестой элемент, который называют битом чётности, равен 1. Добавив его к нашей информации, мы получаем 110101. Контроллер теперь сохранит каждый бит на своём жёстком диске: на первый будет записана 1, на второй – 1, на третий – 0 и т.д. Если один бит информации из шести будет потерян, то достаточно вновь провести расчёты XOR на оставшихся элементах, чтобы высчитать потерянный. Предположим, что вышел из строя четвёртый жёсткий диск, на который была записана 1. Наши данные теперь представляют 110×01. Выполним операции XOR побитно над данными:
1+1=0, 0+0=0, 0+0=0, 0+1=1
Мы получили отсутствующий элемент, который позволит восстановить данные массива. RAID 6 с дополнительной избыточностью просто добавляет ещё один кусочек данных с избыточностью к массиву RAID 5.
Для подобных вычислений требуется большая вычислительная мощность, особенно для массивов RAID 6 с двумя вышедшими из строя винчестерами, так что следует обзавестись мощным многоядерным процессором или аппаратным движком вычислений XOR на контроллере, а уже потом устанавливать RAID. Проблема заключается в том, что уровни RAID определяют лишь, что нужно делать, а не как нужно делать. Так называемые подписи RAID различаются для контроллеров разных производителей (мы уже обсуждали эту тему в статье, посвящённой миграции RAID). Именно поэтому восстановление массивов RAID – задача сложная и дорогая, поскольку следует знать, как они организованы.
Тестовая конфигурация
Системное аппаратное обеспечение | |
Процессор | AMD Opteron 875 (Egypt 90 нм, 2,2 ГГц, кэш 2×2 Мбайт L2) |
Материнская плата | Iwill DK88 Dual Opteron Board, чипсет nVidia nForce Professional 2200, BIOS: 1.4 |
Общее аппаратное обеспечение | |
Память | 2x 1024 Мбайт DDR-400 (CL 3,0-3-3-8), Micron 18VDDF12872G-40BD3 |
Видеокарта | ATi Rage XL |
Системный жёсткий диск | 120 Гбайт, 7 200 об/мин, кэш 8 Мбайт, SATA/300, Samsung HD120IJ |
Тестовые жёсткие диски | 8x 320 Гбайт, 7 200 об/мин, кэш 8 Мбайт, SATA/300, Samsung HD321KJ |
RAID-контроллер | Areca ARC-1220 8-Port PCIe RAID6, прошивка V1.43 2007-4-17 |
DVD-ROM | Teac DV-W50D |
Программное обеспечение | |
Видеокарта AMD | Встроенный Windows |
nVidia nForce Professional | Версия 6.70 |
ОС | Windows Server 2003 Enterprise Edition, Build 3790 SP2 |
Аппаратный RAID-контроллер PCIe: Areca ARC-1220
Материнская плата IWill DK88 Opteron
Хотя компания IWill оставила свой бизнес, для нашего проекта мы решили взять одну из серверных материнских плат её производства. DK88 построена на чипсете nVidia nForce Professional и обеспечивает как слоты PCI Express, так и PCI-X.
AMD Opteron 875
В нашей лаборатории есть двуядерный Opteron 875, который мы и решили использовать для нашего проекта. Поскольку мы взяли RAID-контроллер со встроенным аппаратным движком XOR, то подобный мощный процессор вряд ли необходим. Но мы хотели подстраховаться и избежать “узких мест”.
Результаты тестов
После публикации первой части тестов масштабируемости RAID читатели попросили нас привести и результаты одиночных жёстких дисков, что мы и сделали. Поэтому в наших графиках приведены и результаты производительности винчестеров по отдельности.
Время доступа
Мы добавили время доступа и одного жёсткого диска Samsung Spinpoint HD321KJ, чтобы вы смогли сравнить его со временем доступа массивов RAID 5 и RAID 6 с несколькими винчестерами. Как мы уже видели в первой части материала, время доступа массивов с несколькими винчестерами существенно увеличивается. Основная причина этого кроется в задержках на вращение всех жёстких дисков массива, а также в дополнительных задержках, связанных с вычислением чётности. Любопытно видеть, что массивы RAID 5 или RAID 6 с шестью или больше винчестерами легко удваивают среднее время доступа одиночного жёсткого диска SATA.
Пропускная способность интерфейса
Пропускная способность интерфейса вряд ли является проблемой при тестировании отдельных жёстких дисков, поскольку современные интерфейсы Serial ATA достаточно быстрые, чтобы справиться даже с самыми скоростными винчестерами. В данном случае пропускная способность интерфейса упирается в пропускную способность контроллера, и мы можем видеть, какой поток данных контроллер Areca ARC-1220 RAID5/6 может обработать. Вполне понятно, что пределом является 500 Мбайт/с.
Скорость чтения
Чем лучше контроллер, тем лучше он будет масштабироваться. В наших тестах Areca ARC-1220 смог получить преимущество от дополнительных винчестеров в конфигурациях RAID 5 и RAID 6. Один жёсткий диск HD321KJ от Samsung даёт максимальную скорость чтения до 82 Мбайт/с. Массив RAID 5 с тремя жёсткими дисками соответствует по производительности массиву RAID 0 на двух винчестерах, именно поэтому конфигурация на трёх HDD практически удваивает производительность одного винчестера. Добавление жёстких дисков приводит к увеличению скорости чтения с каждым новым винчестером. Но наша тестовая система уже выдыхается на шести жёстких дисках, выдавая 356 Мбайт/с. Восемь винчестеров дадут чуть более высокую производительность 384 Мбайт/с.
Скорость записи
На расчёт информации избыточности требуется время. Это становится очевидным, если взглянуть на результаты тестов записи данных. По скорости чтения мы смогли получить почти 400 Мбайт/с, но массивы RAID 5 с множеством винчестеров не смогли добраться и до половины от этого значения. В конфигурациях RAID 6 на восьми жёстких дисках максимальная скорость записи оказалась меньше 150 Мбайт/с. Впрочем, весьма любопытно видеть, как от высокого числа накопителей увеличивается минимальная скорость записи, а максимальная скорость не сильно отличается между тремя и восемью винчестерами (RAID 5). Вполне очевидно, что контроллер просто не может обрабатывать больше данных избыточности.
Производительность ввода/вывода RAID 5
Вас интересует производительность ввода/вывода для файловых серверов, web-серверов, баз данных или рабочих станций? Тогда забудьте о результатах, приведённых выше, поскольку каждый жёсткий диск даст существенный прирост производительности при большой глубине запросов. При глубине в четыре запроса и выше каждый дополнительный винчестер даёт не меньше 50 операций ввода/вывода в секунду, что весьма существенно для высокопроизводительных приложений. Тот факт, что массивы RAID 5 с большим количеством винчестеров дают даже меньше операций ввода/вывода в секунду при нулевой глубине очереди говорит только об одном: массив RAID 5 с большим числом HDD абсолютно не подходит для настольных приложений из-за большого времени доступа.
Производительность ввода/вывода RAID 6
Массивы RAID 6 дают существенно меньшую производительность ввода/вывода по сравнению со схожими массивами RAID 5, да и не масштабируются так хорошо. Единственный тест ввода/вывода, показавший хорошую масштабируемость, – сценарий web-сервера, поскольку там мало операций записи, при которых требуется двойной расчёт избыточности.
Заключение
Наш двуядерный процессор Opteron с контроллером Areca ARC-1220 оказался замечательной платформой для кросс-тестирования массивов RAID 5 и RAID 6 с числом жёстких дисков от трёх до восьми. Мы обнаружили, что ограничения контроллера начинаются ниже уровня 500 Мбайт/с, что даёт достаточную пропускную способность для большинства сценариев RAID 5 и всех RAID 6. Скорость чтения массива RAID 5 приблизилась к максимуму уже на шести жёстких дисках. Вообще, при выборе конфигурации RAID 5 следует обращать внимание на минимальные скорости передачи, чтобы гарантировать, что производительность подсистемы хранения не упадёт ниже определённого порога. Число жёстких дисков больше шести имеет смысл, если вам нужно как раз гарантировать определённый минимальный порог производительности.
Производительность записи ограничивается производительностью аппаратного XOR-движка контроллера Areca, а именно, Intel IOP332. Если при чтении на массиве RAID 5 из восьми жёстких дисков возможна скорость до 384 Мбайт/с, то при записи на такой же конфигурации мы получили максимум 186 Мбайт/с. В случае сценариев RAID 6 производительность записи оказывается ещё ниже из-за необходимости двойных вычислений избыточности. И разница между шестью и восемью жёсткими дисками мизерная. В общем, RAID 6 – массив более безопасный, но не такой быстрый.
Среднее время доступа массивов RAID существенно страдало при повышении числа жёстких дисков, начинаясь от уровня 14 мс, соответствующего одиночному винчестеру Samsung HM321KJ, вплоть до 31,8 мс для массива RAID 6 на восьми жёстких дисках. Это существенно влияло и на производительность ввода/вывода, которая оказалась разочаровывающей при малой глубине очереди. Впрочем, при увеличении глубины очереди массивы RAID 6 и, особенно, RAID 5 дают впечатляющую производительность ввода/вывода, которая практически линейно масштабируется по сравнению с одним винчестером, обеспечивая производительность выше 1 000 операций ввода/вывода в секунду при числе дисков в массиве до восьми.
Как мы думаем, массив RAID 6 имеет смысл только в том случае, когда не требуются частые и объёмные запросы. Скажем, массив RAID 6 может использоваться как хранилище для резервных копий, на котором можно сохранять данные о проектах вашей компании в конце рабочего дня (впрочем, не следует резервировать только на один массив). RAID 5 даёт наиболее сбалансированную производительность (с учётом времени доступа и пропускной способности) на четырёх или пяти жёстких дисках. Дальнейшее увеличение числа винчестеров повышает пропускную способность, но и увеличивает время доступа. Наконец, мы не рекомендуем использовать большое число HDD, поскольку при добавлении каждого жёсткого диска растут шансы, что вам придётся работать с пониженным массивом RAID (когда вышел из строя жёсткий диск). Если вам нужен высокопроизводительный массив, то следует устанавливать разумное число высокопроизводительных винчестеров. Если же на главном месте ёмкость, то лучше взять меньше винчестеров с большей ёмкостью. В конце концов, рост числа HDD сказывается и на энергопотреблении.
Не забудьте ознакомиться и с первой частью статьи, посвящённой масштабированию RAID 0 и других режимов.
- “Тесты масштабируемости RAID. Часть I”.
Массивы RAID становятся всё популярнее, поскольку жёсткие диски являются “узким местом” современных ПК. И многие энтузиасты начинают переходить на массивы RAID, позволяющие увеличить скорость винчестеров или повышающие надёжность хранения данных за счёт избыточности. Мы решили провести тесты масштабирования массивов RAID, которые позволяют узнать, как число приводов в массиве влияет на производительность. В первой части мы рассмотрим массивы RAID 0, RAID 1 и RAID 0+1. - “Тесты масштабируемости RAID. Часть III”.
Массивы RAID становятся всё популярнее, поскольку жёсткие диски являются “узким местом” современных ПК. И многие энтузиасты начинают переходить на массивы RAID, позволяющие увеличить скорость винчестеров или повышающие надёжность хранения данных за счёт избыточности. Мы решили провести тесты масштабирования массивов RAID, которые позволяют узнать, как размер полосы (stripe) влияет на производительность. Во второй части мы рассмотрим массивы RAID 0, 5 и 6 с восемью жёсткими дисками и размером полосы от 4 до 128 кбайт.