Андроид. Windows. Антивирусы. Гаджеты. Железо. Игры. Интернет. Операционные системы. Программы.

Раид 0 из 4 винчестеры. Практические советы по созданию RAID-массивов на домашних ПК. От теории к практике

У энтузиастов есть неписаное правило: жёсткий диск Western Digital WD1500 Raptor является идеальной моделью для настольных ПК, если вам нужна максимальная производительность. Но по этому пути могут последовать далеко не все пользователи, поскольку тратить $240 на жёсткий диск ёмкостью всего 150 Гбайт - решение не очень привлекательное. Остаётся ли Raptor лучшим выбором? Цена не менялась уже многие месяцы, а сегодня за такие деньги можно легко купить пару 400-Гбайт накопителей. Не настало ли время сравнить производительность современных RAID массивов с Raptor?

Энтузиасты хорошо знакомы с жёсткими дисками Raptor, поскольку это единственный 3,5" жёсткий диск для настольных ПК, который вращается на скорости 10 000 об/мин. Большинство винчестеров в этом секторе рынка имеют скорость вращения 7 200 об/мин. Только дорогие жёсткие диски для серверов вращаются быстрее. Первые жёсткие диски WD Raptor на 36 и 74 Гбайт были представлены три года назад. Около года назад на рынок вышел Western Digital Raptor-X , который обеспечивает более высокую производительность, доступны также модели с прозрачной крышкой, которая позволяет заглянуть внутрь жёсткого диска.

Жёсткие диски Western Digital Raptor после своего выхода обошли все другие 3,5" винчестеры Serial ATA для настольных ПК, хотя изначально они позиционировались на недорогие серверы.

Скорость вращения шпинделя 10 000 об/мин даёт два существенных преимущества. Во-первых, скорость передачи данных заметно увеличивается. Да, максимальная последовательная скорость чтения не особо впечатляет, но минимальная скорость намного превосходит любые жёсткие диски на 7 200 об/мин. Кроме того, у жёсткого диска на 10 000 об/мин меньше задержки на вращение, то есть накопителю требуется меньшее время на получение данных после того, как головки чтения/записи будут позиционированы.

Главным недостатком WD Raptor является цена - около $240 за 150-Гбайт модель. Среди других недостатков отметим более высокий (хотя и не критичный) уровень шума и более высокое тепловыделение. Впрочем, энтузиасты легко смирятся с подобными недостатками, если этот жёсткий диск даст более высокую производительность подсистемы хранения данных.

Если посчитать стоимость хранения гигабайта данных, то Raptor будет уже не так привлекателен. За $240 можно взять пару 400-Гбайт жёстких дисков, да и до уровня $300 за 750-Гбайт Seagate Barracuda 7200.10 уже недалеко. Если обратить взор на дешёвый сегмент, то можно взять пару 160-Гбайт жёстких дисков на 7 200 об/мин по $50 каждый, которые обеспечат ту же ёмкость, что и Raptor, но более чем в два раза дешевле. Поэтому сегодня даже энтузиасты часто спрашивают себя: стоит ли брать WD Raptor, не лучше ли выбрать конфигурацию RAID 0 на двух жёстких дисках на 7 200 об/мин?

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

Быстрый или разумный жёсткий диск?

Производительность Ёмкость Безопасность хранения данных Цена
Один винчестер (7 200 об/мин) Хорошая От достаточной до отличной Достаточная * От низкой к высокой, от $50 до $300
150-Гбайт WD Raptor (10 000 об/мин) Отличная Достаточная Достаточная * Высокая: $ 240+
2x 160 Гбайт (7 200 об/мин) От очень хорошей до отличной От хорошей до отличной Недостаточная * От низкой до высокой: от $50 за жёсткий диск
2x 150 Гбайт WD Raptor (10 000 об/мин) Отличная Хорошая Недостаточная * От высокой до очень высокой: от $240 за накопитель

* Следует помнить, что любой жёсткий диск рано или поздно выйдет из строя. Технология базируется на механических компонентах, а время жизни у них ограниченное. Производители указывают для жёстких дисков время наработки на отказ (MTBF, Mean Time Between Failures). Если вы установили массив RAID 0 на двух жёстких дисках на 7 200 об/мин, то риск потери данных увеличивается в два раза, поскольку при сбое одного винчестера вы потеряете весь массив RAID 0. Поэтому регулярно проводите резервирование важных данных и создавайте образ операционной системы.

Сегодня можно купить 40-80-Гбайт жёсткие диски чуть ли не за копейки, и если у вас нет особых требований по ёмкости, то такого объёма будет достаточно даже сегодня. Впрочем, мы рекомендуем брать жёсткие диски по цене $50-$70, поскольку вы можете легко взять модели с ёмкостью от 120 до 200 Гбайт. В интернет-магазинах уже начали появляться модели на 250 и 320 Гбайт по цене меньше $100. За те деньги, которые вы потратите на WD Raptor с 10 000 об/мин, можно легко получить ёмкость от 800 Гбайт до 1 Тбайт на жёстких дисках с 7 200 об/мин.

Если вам не нужна такая высокая ёмкость, можно довольствоваться жёсткими дисками на 7 200 об/мин начального уровня. Два накопителя WD1600AAJS от Western Digital обойдутся в $55 каждый, при этом вы легко получите ёмкость 320 Гбайт в массиве RAID 0. И потратите в два раза меньше денег, и получите в два раза большую ёмкость. Насколько оправдана подобная экономия? Давайте разберёмся.

7 200 или 10 000 об/мин? RAID 0 или Raptor?

Мы решили протестировать разные конфигурации жёстких дисков. В нашем тестировании участвуют одиночный WD Raptor WD1500ADFD, одиночный WD4000KD, Raptor в массиве RAID 0 и WD4000 в массиве RAID 0. Мы решили взять 400-Гбайт жёсткие диски WD на 7 200 об/мин, поскольку два таких винчестера примерно соответствуют по цене одному Raptor. Посмотрим, насколько хорошо "бюджетный" RAID-массив покажет себя по сравнению с одним Raptor.

WD4000KD оснащён 16 Мбайт кэша и имеет интерфейс Serial ATA/150. Основное отличие по сравнению с WD Raptor на 10 000 об/мин кроется в производительности и ёмкости. Raptor существенно уступает по стоимости хранения одного гигабайта, которая оказывается, как минимум, в шесть раз больше по сравнению с 400-Гбайт WD4000KD. Тесты покажут, насколько сильны различия в производительности. На момент публикации цена WD4000KD Caviar составляла $130.

Raptor - бесспорный чемпион по производительности на рынке настольных ПК, но это и самый дорогой жёсткий диск. WD1500 Raptor использует интерфейс Serial ATA/150, которого по-прежнему вполне достаточно. Если взглянуть на результаты тестов, то ни один другой жёсткий диск не может обойти Raptor, пусть даже с интерфейсом SATA 300 Мбайт/с. В общем, скорость интерфейса SATA не должна влиять на решение о покупке. На момент публикации цена WD1500ADFD Raptor составляла $240.

Данная конфигурация должна сразиться с WD1500 Raptor. Смогут ли два жёстких диска WD4000KD в массиве RAID 0 обойти Raptor?

Этот сценарий самый дорогой в нашем тестировании, поскольку он требует двух жёстких дисков WD Raptor, но он, тем не менее, очень интересен. Два жёстких диска Raptor на 10 000 об/мин в массиве RAID 0 должны "порвать" буквально всех.

RAID 0

Производительность

В теории RAID 0 является идеальным решением для увеличения производительности, поскольку последовательная скорость передачи информации практически линейно масштабируется с ростом числа жёстких дисков в массиве. Файлы распределяются поблочно по всем жёстким дискам, то есть RAID-контроллер записывает данные практически одновременно на несколько винчестеров. Скорость передачи данных RAID 0 заметно возрастает почти во всех сценариях, хотя время доступа и не уменьшается. В реальных тестах время доступа в массивах RAID 0 даже увеличивается, хотя и очень незначительно, примерно на половину миллисекунды.

Если построить конфигурацию RAID на нескольких жёстких дисках, "узким местом" может стать контроллер накопителей. Обычная шинная PCI позволяет передавать, максимум, 133 Мбайт/с, что легко поглощается двумя современными жёсткими дисками. Контроллеры Serial ATA, которые входят в чипсет, дают, как правило, более высокую пропускную способность, поэтому они не ограничивают производительность массивов RAID.

Мы получили до 350 Мбайт/с на четырёх жёстких дисках WD Raptor с 10 000 об/мин на чипсетах с южными мостами Intel ICH7 и ICH8 . Великолепный результат, который очень близок к суммарной пропускной способности четырёх отдельных жёстких дисков. В то же время, чипсет nVidia nForce 680 показал максимум в 110 Мбайт/с, увы. Похоже, что не каждый интегрированный RAID-контроллер способен обеспечить высокую производительность массивов RAID, пусть даже технически такая возможность есть.

Сравнение режимов RAID

Следует отметить, что RAID 0 на самом деле не раскрывает идею массивов RAID, что расшифровывается как Redundant Arrays of Independent/Inexpensive Drives (избыточный массив недорогих/независимых дисков). Избыточность подразумевает хранение данных, по крайней мере, в двух местах, чтобы они сохранились даже при сбое одного жёсткого диска. Так и происходит, например, в случае массива RAID 1, в котором все данные зеркалируются на втором жёстком диске. Если один из винчестеров "умрёт", то вы узнаете об этом только из сообщений RAID-контроллера. Массив RAID 5 намного более сложный и рассчитан на профессиональный сектор. Он работает подобно массиву RAID 0, распределяя данные по всем жёстким дискам, но к данным добавляется информация избыточности. Поэтому чистая ёмкость массива RAID 5 равняется суммарной ёмкости всех жёстких дисков за исключением одного. Информация избыточности записывается не на один жёсткий диск (как в случае RAID 3), а распределяется по всем накопителям, чтобы не создавать "узкое место" при чтении или записи информации избыточности на один HDD. Массив RAID 5, вполне понятно, требует не меньше трёх жёстких дисков.

Риски и побочные эффекты

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

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



Intel Matrix RAID: на одном наборе жёстких дисков можно создавать разные массивы RAID.

Если RAID-контроллер достаточно "умный", то он может позволять устанавливать два или больше массивов RAID на один набор жёстких дисков. Хотя каждый RAID-контролер может поддерживать несколько массивов RAID, для этого, чаще всего, требуются разные наборы жёстких дисков. Поэтому южные мосты Intel ICH7-R и ICH8-R оказались очень интересными: они поддерживают функцию Intel Matrix RAID.

Типичной реализацией можно назвать два массива RAID на двух жёстких дисках. Первую треть ёмкости двух жёстких дисков можно отвести на быстрый массив RAID 0 для операционной системы, а остальную часть - на массив RAID 1 для хранения важных данных. Если один из жёстких дисков выйдет из строя, то операционная система будет потеряна, но важные данные, которые зеркалируются на второй жёсткий диск, сохранятся благодаря RAID 1. Кстати, после установки Windows можно создать образ операционной системы и хранить его на надёжном массиве RAID 1. Тогда, если винчестер выйдет из строя, ОС можно будет быстро восстановить.

Следует помнить, что многие RAID-массивы требуют установки драйвера RAID (например, Intel Matrix Storage Manager), что может создавать проблемы во время загрузки и восстановления системы. Любому загрузочному диску, который вы будете использовать для восстановления, потребуются драйверы RAID. Поэтому приберегите дискету с драйверами для такого случая.

Тестовая конфигурация

Конфигурация для тестов низкого уровня

Процессоры 2x Intel Xeon (ядро Nocona), 3,6 ГГц, FSB800, кэш L2 1 Мбайт
Платформа Asus NCL-DS (Socket 604), чипсет Intel E7520, BIOS 1005
Память Corsair CM72DD512AR-400 (DDR2-400 ECC, reg.), 2x 512 Мбайт, задержки CL3-3-3-10
Системный жёсткий диск Western Digital Caviar WD1200JB, 120 Гбайт, 7200 об/мин, кэш 8 Мбайт, UltraATA/100
Контроллеры накопителей Intel 82801EB UltraATA/100 Controller (ICH5)
Silicon Image Sil3124, PCI-X
Сеть Встроенный контроллер Broadcom BCM5721 Gigabit Ethernet
Видеокарта Встроенная ATi RageXL, 8 Мбайт
Тесты и настройки
Тесты производительности c"t h2benchw 3.6
PCMark05 V1.01
Тесты ввода/вывода IOMeter 2003.05.10
Fileserver-Benchmark
Webserver-Benchmark
Database-Benchmark
Workstation-Benchmark
Системное ПО
ОС Microsoft Windows Server 2003 Enterprise Edition, Service Pack 1
Драйвер платформы Intel Chipset Installation Utility 7.0.0.1025
Графический драйвер Default Windows Graphics Driver

Конфигурация для SYSmark2004 SE

Системное аппаратное обеспечение
Процессор Intel Core 2 Extreme X6800 (Conroe 65 нм, 2,93 ГГц, 4 Мбайт кэша L2)
Материнская плата Gigabyte GA-965P-DQ6 2.0, чипсет: Intel 965P, BIOS: F9
Общее аппаратное обеспечение
Память 2x 1024 Мбайт DDR2-1111 (CL 4,0-4-4-12), Corsair CM2X1024-8888C4D XMS6403v1.1
Видеокарта HIS X1900XTX IceQ3, GPU: ATi Radeon X1900 XTX (650 МГц), память: 512 Мбайт GDDR3 (1550 МГц)
Жёсткий диск I 150 Гбайт, 10 000 об/мин, кэш 8 Мбайт, SATA/150, Western Digital WD1500ADFD
Жёсткий диск II 400 Гбайт, 7 200 об/мин, кэш 16 Мбайт, SATA/300, Western Digital WD4000KD
DVD-ROM Gigabyte GO-D1600C (16x)
Программное обеспечение
Драйверы ATi Catalyst Suite 7.1
Драйверы чипсета Intel Software Installation Utility 8.1.1.1010
Драйверы RAID Intel Matrix Storage Manager 6.2.1.1002
DirectX 9.0c (4.09.0000.0904)
ОС Windows XP, Build 2600 SP2
Тесты и настройки
SYSmark Version 2004 Second Edition, Official Run

Что ж, придётся перейти к итогам битвы между текущими 150-Гбайт жёсткими дисками WD Raptor и 400-Гбайт винчестерами WD4000KD в массиве RAID 0. Результат оказался удивительным. Хотя WD Raptor остаётся, без сомнения, самым быстрым настольным жёстким диском Serial ATA, массив RAID 0 выходит на первое место в большинстве тестов, не считая времени доступа и производительности ввода/вывода. Стоимость хранения гигабайта данных на Raptor вызывает наибольшие сомнения, поскольку вы можете купить в три раза более ёмкий жёсткий диск на 7 200 об/мин в два раза дешевле. То есть по цене гигабайта Raptor сегодня проигрывает в шесть раз. Впрочем, если вы беспокоитесь за сохранность данных, то дважды подумайте, прежде чем предпочесть массив RAID 0 на двух дешёвых жёстких дисках на 7 200 об/мин по сравнению с WD Raptor.

В ближайшие месяцы цена на 500-Гбайт жёсткие диски упадёт ниже $100. Но возрастут требования к доступному объёму, чтобы хранить видео высокого разрешения, музыку и фотографии. Наконец, плотность записи на пластины жёстких дисков продолжает увеличиваться, поэтому вскоре появятся более производительные модели на 7 200 об/мин. В перспективе привлекательность Raptor будет падать.

Как нам кажется, Western Digital следует изменить ценовую политику модельного ряда Raptor, поскольку прирост производительности происходит за счёт больших компромиссов по ёмкости жёстких дисков. И, надо сказать, подобные компромиссы не всем покажутся оправданными. Мы хотели бы увидеть появление обновлённого жёсткого диска Raptor на 300 Гбайт, который, возможно, стал бы ещё и гибридным винчестером со встроенной флэш-памятью для Windows Vista.

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

RAID-калькулятор



Реализация дисковых подсистем может быть довольно разнообразная: могут использоваться локальные диски, подключенные к встроенному контроллеру, или использоваться внешний контроллер, а также могут использоваться системы SAN (СХД, Storage). Но во всех способах реализации диски объединяются в логические пулы, которые называются RAID-массивами. Такое объединение решает в основном вопрос сохранности данных, т.е. в случае выхода из строя одного из дисков логического массива – он продолжает работать без остановки сервиса, а главное без потери данных. А также объединение дисков в пул может решать вопрос производительности пула, например, RAID 0 значительно увеличивает скорость чтения, но при этом увеличивает вероятность выхода из строя массива.

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

IOPS

Важным показателем производительности дисковой подсистемы является количество элементарных операций в единицу времени (IOPS), которые может выполнить диск. Для дисковой подсистемы это операции чтения и записи данных. При планировании нагрузки для дисковой подсистемы важно представлять, какую нагрузку будет давать тот или иной сервис на дисковую подсистему. Обычно такие значения выводятся эмпирическим путем согласно уже полученного опыта на подобных проектах.

Поэтому рассчитывая количество дисков и тип RAID-массива, важно обращать внимание на нагрузку по IOPS. Важно заметить, что считается общее количество IOPS, которые потом нужно разделить на операции чтения и операции записи, так, например, на СУБД серверах разделение будет 80% на запись и 20% на чтение, а на файловых серверах наоборот 70% чтения и 30% записи, но все зависит от сервиса, который будет размещаться. Также стоит заметить, что значение IOPS для каждого диска, приведенные ниже в Таблице 1, приблизительные, поскольку разные операции дают разную нагрузку, например, последовательная запись блоками данных по 4к даст значительно больший показатель IOPS, чем случайное чтение блоками по 128К. Кроме того, производительность дисковой подсистемы измеряется не только количеством IOPS, но и очередью диска, откликом и другими счетчиками, о которых мы расскажем чуть ниже.

Диск Количество IOPS
SATA 7200 100
SAS 10000 140
SAS 15000 210
SSD 8600

Таблица 1. Примерное значение IOPS в разрезе дисков

Также в расчете IOPS для RAID-массивов использовались пенальти для каждого типа массива. Например, в RAID 1 для записи данных происходит две операции на один диск и на второй диск, поэтому такой массив имеет пенальти 2. В RAID 5 для записи данных происходит 4 операции: чтение данных, чтение четности RAID, запись данных, запись четности, поэтому пенальти составляет 4. Для массивов 50, 60, 61 рассчитывался кумулятивный эффект для составляющих RAID массивов. Значение пенальти Raid приведены в Таблице 2.

Виды RAID-массивов

Существует несколько распространенных разновидностей RAID Массивов (см. Таблицу 2).

Диаграмма
(кликабельно)
Кол-во дисков Кол-во вышедших из строя дисков Скорость записи Скорость чтения Описание RAID пенальти
от 2 Нет Информация разбивается на блоки данных фиксированной длины и записывается на оба/несколько дисков поочередно. 1
от 2 1 Не меняется по сравнению с использованием одного диска. Данные пишутся и на один диск, и на второй (зеркалируются). 2

от 3 1 Блоки данных и контрольные суммы циклически записываются на все диски массива. 4

от 4 2 Блоки данных и контрольные суммы циклически записываются на все диски массива, но контрольных суммы две. 6

от 4 от 1 до N/2 дисков в пределах разных зеркал. Зеркалированный массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Эта архитектура представляет собой массив типа RAID 0, сегментами которого вместо отдельных дисков являются массивы RAID 1. 2

от 6 от 1 до 2 дисков, если выйдет одинаковое количество дисков в разных страйпах. Массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Однако сегментами его вместо отдельных дисков являются массивы RAID 5. 4

Таблица 2. Наиболее распространенные типы RAID-массивов

RAID 60 и 61 являются комбинированием RAID-массивов 0 и 1 соответственно, сегментами которого вместо отдельных дисков являются массивы RAID 6. Такие массивы наследуют все преимущества и недостатки составляющих их RAID-массивов. На практике наиболее распространенными RAID-массивами являются RAID 1, RAID 5 и RAID 10.

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

Проверка производительности дисковой подсистемы должна проводиться на основе следующих показателей:

% Активности диска

Показывает процент общей загруженности диска. Представляет из себя сумму значений счетчиков - процент активности диска при чтении и процент активности диска при записи. При использовании RAID-массивов часто можно увидеть значения этого счетчика больше 100%.

% Бездействия диска

Показывает время простоя диска, т.е. время, в течении которого диск оставался в состоянии покоя, не обрабатывая операции чтения \записи. В отличии от предыдущего показателя лежит строго в диапазоне от 100% (полный покой) до 0% (полная загрузка).

Обращений к диску

Этот показатель как раз и показывает количество IOPS. Предельные значения как раз и указаны в расчетах. Показатель можно детализировать на обращения к диску при записи и при чтении.

Среднее время обращения к диску

Среднее время в секундах, требуемое для выполнения диском одной операции чтения или записи. Складывается из значений времени на обращение при чтении и времени на обращение при записи.

Средняя длина очереди диска

Средняя длина очереди диска отображает количество операций диска, поставленное в очередь за определенный интервал времени. Это значение рассчитывается на основе закона Литтла, согласно которому количество запросов, ожидающих обработки, в среднем равняется частоте поступления запросов, умноженной на время обработки запроса.

Текущая длина очереди диска

Показывает количество операций с диском, которые ожидают обработки на текущий момент времени.

Скорость обмена с диском

Значение, которое показывает среднее количество байт на чтение/запись, отправленных на диск за одну секунду.

Средний размер одного обмена с диском

Количество байт, передаваемое за одну IOPS. Определяется как среднеарифметическое за период времени.

Расщеплений ввода/вывода на диск

Частота разбиения операций записи/чтения на несколько операций. В случае большой фрагментации диска будут запрашиваться большие блоки и вызывать увеличение показателя.



Таким образом, для правильной архитектуры дисковой подсистемы важно сформировать требования к отказоустойчивости массива, которые зависят от важности размещенной на дисках информации, а также спрогнозировать приблизительную нагрузку в IOPS для формирования надежной и производительной масштабируемой системы.

Сервисы на базе платформы 1С при работе с диском генерируют значительно большее количество операций записи, чем чтения, поэтому для максимального быстродействия дисковая подсистема должна иметь наибольшее количество IOPS и наименьшее значение пенальти для RAID-массива.

  • RAID 1 для формирования дисковой подсистемы для ОС.
  • RAID 10 для хранения 1С баз и данных, требования к скорости записи у которых высокие.
  • RAID 5 для хранения файловых данных.

Системная интеграция. Консалтинг

Сравниваем производительность решений одного ценового уровня

Любопытный факт: так называемый Experience Index в Windows 7, оценивающий производительность основных подсистем ПК, для типичного твердотельного диска (SSD), причем далеко не самого медленного (в районе 200 МБ/с на чтение и запись, случайный доступ - 0,1 мс), показывает значение 7,0, в то время как индексы всех остальных подсистем (процессор, память, графика, игровая графика) в тех же десктопных системах на базе старших ЦП (со средним по нынешним временам объемом памяти DDR3-1333 в 4 ГБ и средней же игровой видеокартой вроде AMD Radeon HD 5770) оцениваются значениями заметно выше 7,0 (а именно - 7,4-7,8; у данного критерия Windows 7 шкала логарифмическая, так что разница в десятые доли выливается в десятки процентов абсолютных значений). То есть быстрый «бытовой» SSD на шине SATA, по мнению Windows 7, является самым узким местом даже в не самых топовых по нынешним временам настольных ПК. Какова же должна быть (запредельная?) производительность системного диска, чтобы «великая и могучая» «Семерка» посчитала ее достойной остальных компонентов подобного ПК?.. :)

Вопрос этот, видимо, риторический, поскольку на «икспириенс-индекс» Windows 7 нынче мало кто ориентируется при подборе конфигурации своего десктопа. И SSD уже прочно укоренились в умах юзеров в качестве безальтернативного варианта, если от дисковой подсистемы хочется выжать максимум и получить комфортную, «без тормозов» работу. Но так ли это на самом деле? Одинока ли Windows 7 в своих оценках реальной полезности SSD? И есть ли альтернатива SSD в мощных десктопах? Особенно если не очень хочется увидеть безысходную пустоту в своем кошельке… Мы рискнем предложить один из возможных вариантов замены.

Каковы главные недостатки современных SSD? Если не принимать во внимание «долгоиграющие» споры по поводу их надежности, долговечности и деградации со временем, то таких недостатков, по большому счету, два: маленькая емкость и немаленькая цена. Действительно, средненький MLC SSD на 128 ГБ нынче стоит в районе 8000 руб. (цена на момент написания статьи; разумеется, она сильно зависит от модели, но порядок цен пока что таков). Это, конечно, не 600 рублей за 1 ГБ, как для памяти DDR3, а на порядок меньше, но все же далеко не так мало, как для традиционных магнитных винчестеров. Действительно, весьма производительный «семитысячник» на 1000 ГБ с максимальной скоростью чтения/записи около 150 МБ/с (что, кстати, не намного меньше, чем у SSD за 8 тыс. руб.!) нынче можно купить менее чем за 2000 руб. (например, Hitachi 7K1000.C или что-то корейское). Удельная стоимость гигабайта пространства в этом случае составит всего 2 (два) рубля! Вы чувствуете разницу с SSD с его 60 рублями за гигабайт? ;) Да и так ли уж велика «пропасть» между ними в типичных десктопных приложениях с большим количеством последовательных обращений? Например, при работе с видео, аудио, графикой и пр. Ведь типичная скорость последовательного чтения у MLC SSD (160-240 МБ/с) не намного превышает таковую на первых 120 гигабайтах пространства у того же «терабайтника-семитысячника» (150 МБ/с). А по скорости последовательной записи у них вообще примерный паритет (те же 150 МБ/с против 70-190 у SSD). Да, по времени случайного доступа они совершенно несопоставимы, но ведь и мы не сервер себе собираем на рабочий стол.

Более того, для десктопа те же 128 ГБ по нынешним временам - объем крайне несерьезный (в 80 ГБ - вообще смешной). Едва вместит один-два системных раздела с ОС и основными приложениями. А где хранить многочисленные мультимедийные файлы? Куда ставить игрушки, каждая из которых теперь потянет на 5-20 ГБ в распакованном виде? Короче, без нормального емкого «винта» все равно никуда. Вопрос только в том, будет он системным или добавочным в компьютере.

А что если подойти с другой стороны? Коль уж без НЖМД (вспоминаем старую добрую аббревиатуру - накопители на жестких магнитных дисках, или просто «винчестеры») с ПК никуда, то не объединить ли их в RAID-массив? Тем более что простенький RAID-контроллер многим из нас достался, по сути, «бесплатно» - в южном мосте материнских плат на чипсетах AMD, Intel или Nvidia. Например, те же 8000 рублей можно потратить не на SSD, а на 4 «терабайтника». Объединим их в массив(ы) - тогда и докупать емкий НЖМД для хранения данных не придется, то есть даже сэкономим. Или как второй вариант - вместе покупки одного SSD и одного диска на 2-3 ТБ можно приобрести 4 диска по 1,5-2 ТБ…

Более того, скажем, RAID 0 из четырех дисков будет иметь не только учетверенную емкость, но и в 4 раза более высокую линейную скорость чтения-записи. А это уже 400-600 МБ/с, что единичному SSD той же цены даже не снилось! Таким образом, подобный массив будет работать гораздо быстрее SSD, по крайней мере, с потоковыми данными (чтение/запись/редактирование видео, копирование крупных файлов и мн. др.). Не исключено, что и в других типичных задачах персонального компьютера такой массив поведет себя отнюдь не хуже SSD - ведь процент последовательных операций в таких задачах весьма высок, да и случайные обращения, как правило, производятся на достаточно компактном участке такого емкого накопителя (файл подкачки, временный файл фоторедактора и пр.), то есть перемещение головок внутри этого участка будет происходить гораздо быстрее, чем в среднем по диску - за время в пару-тройку миллисекунд), что, безусловно, положительно скажется на его производительности. Если же многодисковый RAID-массив еще и кешируется в ОС, то от него можно ожидать внушительной скорости и на операциях с мелкими блоками данных.

Чтобы проверить наши предположения, мы протестировали четырехдисковые массивы RAID 0 и RAID 5 из терабайтных дисков Hitachi Deskstar E7K1000 со скоростью вращения 7200 об/мин и буфером 32 МБ. Да, они несколько медленнее по скорости пластин, чем более новые и продающиеся нынче по 1800-1900 руб./шт. накопители Hitachi 7K1000.C той же емкости. Однако их микропрограмма лучше оптимизирована для работы дисков в массивах, поэтому, несколько недобрав заветные 600 МБ/с по максимальной скорости чтения 4-дискового RAID 0, мы получим лучшую производительность в задачах с немалым количеством случайных обращений. А найденные нами закономерности можно будет распространить и на массивы из более быстрых (и емких) моделей дисков разных производителей.

Используя платы на чипсетах Intel с южным мостом ICH8R/ICH9R/ICH10R (и более поздние), четыре терабайтных диска оптимально, на наш взгляд, организовать следующим образом. Благодаря технологии Intel Matrix RAID из первой половины объема каждого из дисков делаем массив RAID 0 емкостью 2 ТБ (чтобы он без специальных ухищрений понимался «операционками» ниже Vista), который обеспечит нам наивысшую производительность системных разделов, быстрый запуск приложений и игр, а также высокую скорость оперативной работы с мультимедийным и прочим контентом. А для более надежного хранения важных нам данных вторую половину объема этих дисков мы объединим в массив RAID 5 (кстати, тоже далеко не самой плохой производительности, в чем мы убедимся чуть ниже). Таким образом, всего за 8 тыс. руб. мы получим и сверхбыстрый системный диск на 2 ТБ, и надежный и емкий «архивный» том на 1,5 ТБ. Именно в такой конфигурации из двух массивов, созданных нами со значениями по умолчанию, мы и будем проводить наше дальнейшее тестирование. Впрочем, особо мнительные нелюбители RAID5 на интеловских контроллерах могут вместо него построить RAID10 в полтора раза меньшего объема - производительность его на чтение данных будет пониже, чем у RAID5, при записи (с кешированием) они примерно равноценны, зато надежность и извлекаемость данных при развале массиве будет получше (в половине случаев RAID10 можно оживить при выходе из строя даже двух дисков).

Утилита Intel Matrix Storage Manager позволяет включать и отключать кеширование записи на такие дисковые массивы средствами операционной системы (то есть, используя оперативную память ПК), см. третью сверху строчку в правом поле Information на скриншоте:

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

Испытания проводилось нами на тестовой системе, представляющей типичный, не самый мощный по нынешним временам десктоп:

  • процессор Intel Core 2 Duo E8400 (3 ГГц);
  • 2 ГБ системной памяти DDR2-800;
  • плата ASUS P5Q-E на чипсете Intel P45 Express с ICH10R;
  • видеоускоритель AMD Radeon HD 5770.

На системном диске Seagate ST950042AS находились ОС Windows 7 x64 Ultimate и Windows XP SP3 Pro (тестируемые массивы и накопители испытывались в «чистом» состоянии). В качестве бенчмарков, по результатам которых мы будем судить о соперничестве SSD с традиционными RAID, нами здесь использовались программы ATTO Disk Benchmark 2.41, Futuremark PCMark05, Futuremark PCMark Vantage x86, Intel NAS Performance Toolkit 1.7 и др. Тесты проводились пятикратно и результаты усреднялись. Для ориентировки внизу диаграмм с результатами тестов приведены данные для быстрого одиночного накопителя Seagate Barracuda XT ST32000641AS емкостью 2 ТБ, то есть такой же, как у «системного» RAID 0 из четырех испытуемых нами Hitachi Deskstar E7K1000 HDE721010SLA330.

Честь недорогого, но весьма производительного SSD емкостью 128 ГБ и ценой (на момент написания статьи) в районе 8000 руб. защищала модель PNY Optima SSD 128GB MLC. Сперва взглянем на нее чуть подробнее.

SSD PNY Optima 128GB Gen 2

Модель с номером P-SSD2S128GM-CT01 (прошивка 0309) представляет собой типичный 2,5-дюймовый SATA SSD в стильном черном металлическом корпусе толщиной 9,5 мм. Его производитель - компания , больше известная своими флешками и модулями памяти.


PNY Optima SSD 128 GB MLC

Накопитель основан на флеш-памяти Intel 29F64G08CAMDB с MLC-ячейками и контроллере JMicron JMF612, который позволяет этому SSD работать не только по Serial ATA, но и по интерфейсу USB 2.0 (мини-разъем последнего находится рядом с портом SATA в заднем торце корпуса диска).

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


Плата накопителя PNY Optima SSD 128 GB MLC

Производитель обещает для этой модели скорость чтения 235 МБ/с и скорость записи 150 МБ/с (она на практике оказалось даже чуть выше). Кеш-память диска составляет 64 МБ, поддержка TRIM встроена, ударостойкость заявляется на уровне 1500g, а диапазон рабочих температур - от -10 до +70°C. Производитель дает 3 года гарантии на эту модель с MTBF в 1,5 млн часов.

К слову, не следует заблуждаться и считать популярные MLC SSD на контроллере JMicron JMB612 решениями "низшего сорта". Как показывают , накопители на этом контроллере смотрятся в среднем ничуть не хуже, чем SSD сходной емкости и цены на контроллерах от Indilinx (IDX110), Intel, SandForce (SF1222) и Samsung, даже выигрывая у них в ряде дисковых бенчмарков.

Результаты тестов

Максимальная скорость последовательного чтения и записи полезных данных для SSD PNY Optima 128GB по результатам теста ATTO Disk Benchmark 2.41 (запись и чтение файла объемом 256 МБ блоками от 64 КБ до 8 МБ) составила соответственно 238 и 155 МБ/с, что чуть выше заявленных производителем значений (см. диаграмму).

Любопытно, что низкоуровневый тест HD Tach RW 3.0, использующий обращения к накопителю в обход файловой системы, показал для этих двух параметров значения в 217 и 165 МБ/с соответственно (см. график). Что же касается пары испытуемых нами четырехдисковых RAID-массивов, то RAID 0 показал максимальную скорость чтения/записи крупных файлов под 450 МБ/с (это подтверждается и графиком HD Tach RW 3.0), что вдвое-втрое больше, чем у данного SSD! Правда, включение кеширования записи (WC=yes на диаграммах) средствами Windows несколько снижает скорость последовательной записи, а также чтения, но не настолько критично, чтобы это можно было считать неприемлемым.

Что же касается RAID 5, организованного на второй половине наших испытуемых НЖМД, то максимальная скорость последовательного чтения этого массива переваливает за 270 МБ/с (что заметно выше, чем у любого современного магнитного винчестера!), а скорость последовательной записи кардинально зависит от кеширования в Windows: без него она едва достигает совершенно неприемлемых 40-50 МБ/с, тогда как с ним повышается более чем втрое (см. также график HD Tach RW 3.0), хотя все равно не достигает таковой при чтении RAID 5, как это было у RAID 0. Но в любом случае, здесь наш RAID 5 работает заметно быстрее одиночного «семитысячника» Seagate Barracuda XT.

Другая существенная польза от Windows-кеширования массивов дисков - кардинальное ускорение работы с мелкими (менее 64 КБ) файлами и блоками данных. Это наглядно видно из результатов теста ATTO Disk Benchmark 2.41 (про вертикали слева здесь указан размер блока данных в КБ; колонки справа - значения скорости в КБ/с).


RAID 0 без кеширования


RAID 0 с кешированием


RAID 5 без кеширования


RAID 5 с кешированием

Как видно, при этом ускоряется работа не только при записи, но и при чтении. В общем, использование кеширования массивов в ОС является фактически непременным условием, если вы хотите получить на них хорошую производительность не только с потоковыми данными, но и во всем остальном (например, как системного диска).

Работу кеширования операций с RAID через оперативную память компьютера (причем как при чтении, так и при записи) наглядно демонстрирует следующая диаграмма, обычно приводимая нами в качестве иллюстрации скорости работы дискового интерфейса (SATA, SAS и пр.).

Скорость буферизованного чтения в 3-5 ГБ/с - это значения одного порядка с полосой пропускания системной памяти в ПК типа нашего тестового. Шина DMI, по которой южный мост интеловских чипсетов общается с системой, имеет куда более низкий потенциал, равный, по сути, шине PCI Express x4 первого поколения (то есть 1 ГБ/с в одном направлении). Второй полезный вывод из этой диаграммы - для RAID-массивов (даже без кеширования) скорость передачи данных по шине (нескольким шинам SATA) от хоста к накопителям возрастает условно пропорционально числу дисков в массиве. И для RAID 0, например, в разы превышает скорость обмена данными с одиночным SSD на шине SATA. Вывод, в общем-то, вполне очевидный.

Кстати, среднее время случайного доступа к массивам (мелкими блоками) при чтении не зависит от кеширования Windows, а вот при записи - меняется существенно (см. диаграмму). Причем, для простейшего (программного) RAID 5 без кеширования оно неприлично велико.

Что же касается вопроса дополнительной нагрузки на процессора от кеширования, то она, безусловно, есть, но для более ли менее современных десктопов ее нельзя назвать слишком обременительной. Взглянем на графики загрузки ЦП при выполнении того же теста ATTO:

RAID 0
RAID 5
Графики загрузки ЦП без кеширования RAID

И для RAID 0, и для RAID 5 загрузка ЦП при чтении и записи без RAID-кеширования Windows - единицы процентов. Если же кеширование включить, то на малых блоках загрузка ЦП возрастает до десятков процентов, порой переваливая за 50% (левые части графиков ниже).

RAID 0

RAID 5
Графики загрузки ЦП c кешированием RAID

Интересно, что для RAID 5 нагрузка на процессор при этом чуть ниже, чем для RAID 0 - видимо, сказывается более высокая скорость чтения/записи для второго случая. Кроме того, при увеличении размера блока данных нагрузка на процессор понижается, приближаясь к таковой с отключенным кешированием для блоков размером 64 КБ и выше. Безусловно, это лишь прикидка, иллюстрация вопроса. Этот аспект можно было бы исследовать более скрупулезно, в «чистом виде». Но в данном случае для нас это не является целью статьи, поскольку интересующий нас здесь вопрос - какова производительность накопителей.

Последнюю мы оценивали, в частности, по комплексным тестам, имитирующим работу разнообразных задач под Windows - PCMark Vantage, PCMark05 и Intel NAS Performance Toolkit. Детальные результаты по каждому паттерну этих тестов приведены в общей таблице . А в теле статьи мы представим только итоговые диаграммы, дающие представления об усредненной производительности накопителей под Windows.

В тесте PCMark05 данная модель SSD опережает 4-дисковый RAID 0 менее чем вдвое. Да, это заметное преимущество, но не такое фатальное, как при сравнении с одиночным винчестером. Любопытно, что достигается это преимущество лишь в трех из пяти паттернов PCMark05 (в основном - при запуске Windows и приложений), тогда как в паттерне Virus Scan наш RAID 0 оказывается на 10% быстрее, чем SSD, а в паттерне File Write - вообще быстрее, чем SSD, более чем втрое!

Кеширование массивов увеличивает их производительность в данном бенчмарке примерно в полтора раза, хотя одиночный Seagate Barracuda XT оказывается все же чуть быстрее, чем тестируемый здесь RAID 5. Впрочем, мы и не предлагали вам использовать данный RAID 5 для основных системных разделов и запуска приложений. ;) А вот при записи на этот «архивный» том файлов (паттерн File Write) его скорость явно выше, чему одиночного диска.

В более свежем тесте PCMark Vantage под Windows 7 преимущество SSD над нашими массивами подавляющее (в среднем минимум втрое). Очевидно, паттерны данного бенчмарка очень активно оперируют псевдослучайными обращениями к накопителям, в чем SSD вне конкуренции.

Однако анализ результатов по паттернам (см. табл.) показывает, что «не все коту Масленица» -- в ряде задач наш RAID 0 не только имеет с SSD близкую скорость (Movie Maker, то есть редактирование видео), но и может существенно опережать его (Media Center). Таким образом, по крайней мере, для медиацентра массив выгоднее, чем SSD (это касается и его куда большей емкости). Кеширование здесь также добавляет 20-30% к средней производительности массивов, делая даже программный RAID 5 вполне конкурентоспособным с одиночным топовым «двухтерабайтником».

В более свежем и, на наш взгляд, более реалистичном тесте Intel NAS Performance Toolkit, который использует несколько иную философию бенчмаркинга, нежели «трековые» PCMark, - а именно непосредственную работу с файловой системой тестируемого накопителя, а не воспроизведение заранее записанных (в другой системе) команд обращения к диску внутри предварительно созданного временного файла, - ситуация еще более благоволит к многодисковым RAID. В среднем, наш RAID 0 здесь опережает твердотельный накопитель не только с кешированием (в полтора раза!), но и без него! А программный «архивный» RAID 5 с кешированием оказывается быстрее, чем одиночный диск Barracuda XT.

При детальном рассмотрении (см. табл.) оказывается, что в 10 из 12 паттернов кешируемый RAID 0 более быстр, чем SSD! Это касается и работы с видео, и Content Creation (создание контента), и офисной работы, и обработки фотографий (Photo Album), и копирования файлов. Лишь при 4-потоковом воспроизведении видео и копировании директории со многими файлами с диска твердотельный накопитель одержал вверх над RAID 0 из традиционных винчестеров. На этой оптимистичной ноте мы перейдем к заключению.

Заключение

Собственно, все уже сказано выше. При грамотном выборе традиционных винчестеров на магнитных пластинах их массивы из 4 накопителей вполне способны поспорить по производительности в типичных задачах настольного ПК с одиночным SSD той же стоимости ! Более того, по цене гигабайта пространства и по вместимости такие массивы несопоставимо выгоднее твердотельных накопителей. А возможность (в случае с интеловскими чипсетами) одновременно с быстрым RAID 0 создать на части пространства НЖМД еще и емкий защищенный «архивный» RAID 5 для хранения наиболее важных данных вообще не имеет адекватных по цене аналогов среди SSD. Так что выбор за вами. Только не забывайте включать кеширование RAID-массивов средствами соответствующей утилиты под Windows - без этого удовольствие от использования производительного, емкого и экономичного решения на вашем десктопе будет неполным.

И еще пару ремарок - относительно энергопотребления и надежности данных решений. Безусловно, 0,5-3 Вт потребления одного SSD не идут ни в какое сравнение с 20-40 Вт прожорливости массива из четырех НЖМД. Однако и мы ведь рассматриваем не ноутбук/неттоп, а полноценный десктоп (иначе, собственно, такой RAID и незачем городить). Поэтому потребление надо оценивать в сумме. А на фоне гораздо большей прожорливости типичных десктопных процессоров (100-200 Вт вместе с материнской платой) и видеокартой (50-300 Вт) еще пара десятков ватт на накопители совсем не кажется расточительством (только параноик станет считать лишние киловаттчасы от них на своем домашнем электросчетчике:)). Тем более если принять во внимание, что к SSD вам все равно придется докупать один-два НЖМД (для прикидки: 20Вт·8час·30дней=4,8кВт·ч, то есть максимум 15-20 дополнительных рублей на электричество в месяц). Что же касается надежности обоих решений, то и к SSD, и к RAID на чипсетных контроллерах, и даже к НЖМД в Сети можно найти многочисленные претензии, хотя производители и обещают для них миллионночасовые MTBF. Поэтому в любом случае, лучшей защитой от потери данных является их регулярное резервирование на независимых носителях. И об этом никогда не следует забывать.

На закуску - диаграмма, геометрически усредняющая производительность (в МБ/с) протестированных накопителей по всем 26 паттернам тестов PCMark05 (5 паттернов), PCMark Vantage x86 (7 паттернов), Intel NAS Performance Toolkit (12 паттернов) и чтения/записи крупных файлов в ATTO Disk Benchmark (2 паттерна). Смотрите и размышляйте. ;)

Сегодня мы поговорим о RAID-массивах . Разберемся, что это такое, зачем это нам надо, какое оно бывает и как все это великолепие использовать на практике.

Итак, по порядку: что такое RAID-массив или просто RAID ? Расшифровывается эта аббревиатура как "Redundant Array of Independent Disks" или "избыточный (резервный) массив независимых дисков". Говоря по-простому, RAID-массив это совокупность физических дисков, объединенных в один логический.

Обычно бывает наоборот - в системный блок установлен один физический диск, который мы разбиваем на несколько логических. Здесь обратная ситуация - несколько жестких дисков сначала объединяются в один, а потом операционной системой воспринимаются как один. Т.е. ОС свято уверена, что у нее физически только один диск.

RAID-массивы бывают аппаратные и программные.

Аппаратные RAID-массивы создаются до загрузки ОС посредством специальных утилит, зашитых в RAID-контроллер - нечто вроде BIOS. В результате создания такого RAID-массива уже на стадии инсталляции ОС, дистрибутив "видит" один диск.

Программные RAID-массивы создаются средствами ОС. Т.е. во время загрузки операционная система "понимает", что у нее несколько физических дисков и только после старта ОС, посредством программного обеспечения диски объединяются в массивы. Естественно сама операционная система располагается не на RAID-массиве , поскольку устанавливается до его создания.

"Зачем все это нужно?" - спросите Вы? Отвечаю: для повышения скорости чтения/записи данных и/или повышения отказоустойчивости и безопасности.

"Каким образом RAID-массив может увеличить скорость или обезопасить данные?" - для ответа на этот вопрос рассмотрим основные типы RAID-массивов , как они формируются и что это дает в результате.

RAID-0 . Называемый так же "Stripe" или "Лента". Два или более жестких дисков объединяются в один путем последовательного слияния и суммирования объемов. Т.е. если мы возьмем два диска объемом 500Гб и создадим из них RAID-0 , операционной системой это будет восприниматься как один диск объемом в терабайт. При этом скорость чтения/записи у этого массива будет вдвое больше, нежели у одного диска, поскольку, например, если база данных расположена таким образом физически на двух дисках, один пользователь может производить чтения данных с одного диска, а другой пользователь производить запись на другой диск одновременно. В то время как в случае расположения базы на одном диске, сам жесткий диск задачи чтения/записи разных пользователей будет выполнять последовательно. RAID-0 позволит выполнять чтение/запись параллельно. Как следствие - чем больше дисков в массиве RAID-0 , тем быстрее работает сам массив. Зависимость прямопропорциональная - скорость возрастается в N раз, где N - количество дисков в массиве.
У массива RAID-0 есть только один недостаток, который перекрывает все плюсы от его использования - полное отсутствие отказоустойчивости. В случае смерти одного из физических дисков массива, умирает весь массив. Есть старая шутка на эту тему: "Что обозначает "0" в названии RAID-0 ? - объем восстанавливаемой информации после смерти массива!"

RAID-1 . Называемый так же "Mirror" или "Зеркало". Два или более жестких дисков объединяются в один путем параллельного слияния. Т.е. если мы возьмем два диска объемом 500Гб и создадим из них RAID-1 , операционной системой это будет восприниматься как один диск объемом в 500Гб. При этом скорость чтения/записи у этого массива будет такая же, как у одного диска, поскольку, чтение/запись информации производятся на оба диска одновременно. RAID-1 не дает выигрыша в скорости, однако обеспечивает большую отказоустойчивость, поскольку в случае смерти одного из жестких дисков, всегда есть полный дубль информации, находящийся на втором диске. При этом необходимо помнить, что отказоустойчивость обеспечивается только от смерти одного из дисков массива. В случае если данные были удалены целенаправленно, то они удаляются со всех дисков массива одновременно!

RAID-5 . Более безопасный вариант RAID-0. Объем массива рассчитывается по формуле (N - 1) * DiskSize RAID-5 из трех дисков по 500Гб, мы получим массив объемом в 1 терабайт. Суть массива RAID-5 в том, что несколько дисков объединятся в RAID-0, а на последнем диске хранится так называемая "контрольная сумма" - служебная информация, предназначенная для восстановления одного из дисков массива, в случае его смерти. Скорость записи в массиве RAID-5 несколько ниже, поскольку тратится время на расчет и запись контрольной суммы на отдельный диск, зато скорость чтения такая же, как в RAID-0.
Если один из дисков массива RAID-5 умирает, резко падает скорость чтения/записи, поскольку все операции сопровождаются дополнительными манипуляциями. Фактически RAID-5 превращается в RAID-0 и если своевременно не позаботиться восстановлением RAID-массива есть существенный риск потерять данные полностью.
С массивом RAID-5 можно использовать так называемый Spare-диск, т.е. запасной. Во время стабильной работы RAID-массива этот диск простаивает и не используется. Однако в случае наступления критической ситуации, восстановление RAID-массива начинается автоматически - на запасной диск восстанавливается информация с поврежденного с помощью контрольных сумм, расположенных на отдельном диске.
RAID-5 создается как минимум из трех дисков и спасает от одиночных ошибок. В случае одновременного появления разных ошибок на разных дисках RAID-5 не спасает.

RAID-6 - является улучшенным вариантом RAID-5. Суть та же самая, только для контрольных сумм используется уже не один, а два диска, причем контрольные суммы считаются с помощью разных алгоритмов, что существенно повышает отказоустойчивость всего RAID-массива в целом. RAID-6 собирается минимум из четырех дисков. Формула расчета объема массива выглядит как (N - 2) * DiskSize , где N - количество дисков в массиве, а DiskSize - объем каждого диска. Т.е. при создании RAID-6 из пяти дисков по 500Гб, мы получим массив объемом в 1,5 терабайта.
Скорость записи RAID-6 ниже чем у RAID-5 примерно на 10-15%, что обусловлено дополнительными временными затратами на расчет и запись контрольных сумм.

RAID-10 - так же иногда называется RAID 0+1 или RAID 1+0 . Представляет собой симбиоз RAID-0 и RAID-1. Массив строится минимум из четырех дисков: на первом канале RAID-0, на втором RAID-0 для повышения скорости чтения/записи и между собой они в зеркале RAID-1 для повышения отказоустойчивости. Таким образом, RAID-10 совмещает в себе плюс первых двух вариантов - быстрый и отказоустойчивый.

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

RAID-60 - та же самая идея: фактически имеем RAID-6, собранный из нескольких массивов RAID-0.

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

Как Вы сами понимаете комбинированные RAID-массивы: RAID-10 , RAID-50 , RAID-60 и варианты RAID X+1 являются прямыми наследниками базовых типов массивов RAID-0 , RAID-1 , RAID-5 и RAID-6 и служат только для повышения либо скорости чтения/записи, либо повышения отказоустойчивости, неся при этом в себе функционал базовых, родительских типов RAID-массивов .

Если перейти к практике и поговорить о применении тех или иных RAID-массивов в жизни, то логика довольно проста:

RAID-0 в чистом виде не используем вообще;

RAID-1 используем там, где не особо важна скорость чтения/записи, но важна отказоустойчивость - например на RAID-1 хорошо ставить операционные системы. В таком случае к дискам никто кроме ОС не обращается, скорости самих жестких дисков для работы вполне достаточно, отказоустойчивость обеспечена;

RAID-5 ставим там, где нужна скорость и отказоустойчивость, но не хватает денег на покупку большего количества жестких дисков или есть необходимость восстанавливать массивы в случае их повреждения, не прекращая работы - тут нам помогут запасные Spare-диски. Обычное применение RAID-5 - хранилища данных;

RAID-6 используется там, где просто страшно или есть реальная угроза смерти сразу нескольких дисков в массиве. На практике встречается достаточно редко, в основном у параноиков;

RAID-10 - используется там, где нужно чтобы работало быстро и надежно. Так же основным направлением для использования RAID-10 являются файловые серверы и серверы баз данных.

Опять же, если еще упростить, то приходим к выводу, что там где нет большой и объемной работы с файлами вполне достаточно RAID-1 - операционная система, AD, TS, почта, прокси и т.д. Там же, где требуется серьезная работа с файлами: RAID-5 или RAID-10 .

Идеальным решением для сервера баз данных представляется машина с шестью физическими дисками, два из которых объединены в зеркало RAID-1 и на нем установлена ОС, а оставшиеся четыре объединены в RAID-10 для быстрой и надежной работы с данными.

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

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

История создания

Впервые термин «RAID-массив» появился в 1987 году, когда американские исследователи Паттерсон, Гибсон и Катц из Калифорнийского университета Беркли в своей статье «Избыточный массив недорогих дисков» (“A Case for Redundant Arrays of Inexpensive Discs, RAID”) описали, каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так, чтобы в результате повышались емкость и быстродействие системы, а отказ отдельных дисков не приводил к отказу всей системы.

С момента выхода этой статьи прошло уже более 20 лет, но технология построения RAID-массивов не утратила актуальности и сегодня. Единственное, что изменилось с тех пор, - это расшифровка аббревиатуры RAID. Дело в том, что первоначально RAID-массивы строились вовсе не на дешевых дисках, поэтому слово Inexpensive (недорогие) поменяли на Independent (независимые), что больше соответствовало действительности.

Принцип действия

Итак, RAID - это избыточный массив независимых дисков (Redundant Arrays of Independent Discs), на который возлагается задача обеспечения отказоустойчивости и повышения производительности. Отказоустойчивость достигается за счет избыточности. То есть часть емкости дискового пространства отводится для служебных целей, становясь недоступной для пользователя.

Повышение производительности дисковой подсистемы обеспечивается одновременной работой нескольких дисков, и в этом смысле чем больше дисков в массиве (до определенного предела), тем лучше.

Совместную работу дисков в массиве можно организовать с помощью либо параллельного, либо независимого доступа. При параллельном доступе дисковое пространство разбивается на блоки (полоски) для записи данных. Аналогично информация, подлежащая записи на диск, разбивается на такие же блоки. При записи отдельные блоки записываются на разные диски, причем запись нескольких блоков на различные диски происходит одновременно, что и приводит к увеличению производительности в операциях записи. Нужная информация также считывается отдельными блоками одновременно с нескольких дисков, что тоже способствует росту производительности пропорционально количеству дисков в массиве.

Следует отметить, что модель с параллельным доступом реализуется только при условии, что размер запроса на запись данных больше размера самого блока. В противном случае осуществлять параллельную запись нескольких блоков практически невозможно. Представим ситуацию, когда размер отдельного блока составляет 8 Кбайт, а размер запроса на запись данных - 64 Кбайт. В этом случае исходная информация нарезается на восемь блоков по 8 Кбайт каждый. Если имеется массив из четырех дисков, то одновременно можно записать четыре блока, или 32 Кбайт, за один раз. Очевидно, что в рассмотренном примере скорость записи и скорость считывания окажутся в четыре раза выше, чем при использовании одного диска. Это справедливо лишь для идеальной ситуации, однако размер запроса далеко не всегда кратен размеру блока и количеству дисков в массиве.

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

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

Уровни RAID-массивов

В настоящее время существует несколько RAID-уровней, которые можно считать стандартизованными, - это RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 и RAID 6.

Применяются также различные комбинации RAID-уровней, что позволяет объединить их достоинства. Обычно это комбинация какого-либо отказоустойчивого уровня и нулевого уровня, применяемого для повышения производительности (RAID 1+0, RAID 0+1, RAID 50).

Отметим, что все современные RAID-контроллеры поддерживают функцию JBOD (Just a Bench Of Disks), которая не предназначена для создания массивов, - она обеспечивает возможность подключения к RAID-контроллеру отдельных дисков.

Нужно отметить, что интегрированные на материнские платы для домашних ПК RAID-контроллеры поддерживают далеко не все RAID-уровни. Двухпортовые RAID-контроллеры поддерживают только уровни 0 и 1, а RAID-контроллеры с большим количество портов (например, 6-портовый RAID-контроллер, интегрированный в южный мост чипсета ICH9R/ICH10R) - также уровни 10 и 5.

Кроме того, если говорить о материнских платах на чипсетах Intel, то в них тоже реализована функция Intel Matrix RAID, которая позволяет создать на нескольких жестких дисках одновременно RAID-матрицы нескольких уровней, выделив для каждой из них часть дискового пространства.

RAID 0

RAID уровня 0, строго говоря, не является избыточным массивом и соответственно не обеспечивает надежности хранения данных. Тем не менее данный уровень активно применяется в случаях, когда необходимо обеспечить высокую производительность дисковой подсистемы. При создании RAID-массива уровня 0 информация разбивается на блоки (иногда эти блоки называют страйпами (stripe)), которые записываются на отдельные диски, то есть создается система с параллельным доступом (если, конечно, это позволяет размер блока). Благодаря возможности одновременного ввода-вывода с нескольких дисков, RAID 0 обеспечивает максимальную скорость передачи данных и максимальную эффективность использования дискового пространства, поскольку не требуется места для хранения контрольных сумм. Реализация этого уровня очень проста. В основном RAID 0 применяется в тех областях, где требуется быстрая передача большого объема данных.

RAID 1 (Mirrored disk)

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

RAID 5

RAID 5 - это отказоустойчивый дисковый массив с распределенным хранением контрольных сумм. При записи поток данных разбивается на блоки (страйпы) на уровне байтов и одновременно записываются на все диски массива в циклическом порядке.

Предположим, что массив содержит n дисков, а размер страйпа d . Для каждой порции из n–1 страйпов рассчитывается контрольная сумма p .

Cтрайп d 1 записывается на первый диск, страйп d 2 - на второй и так далее вплоть до страйпа d n–1 , который записывается на (n –1)-й диск. Далее на n -й диск записывается контрольная сумма p n , и процесс циклически повторяется с первого диска, на который записывается страйп d n .

Процесс записи (n–1) страйпов и их контрольной суммы производится одновременно на все n дисков.

Для вычисления контрольной суммы используется поразрядная операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. Так, если имеется n жестких дисков, d - блок данных (страйп), то контрольная сумма рассчитывается по следующей формуле:

p n = d 1 d 2 ... d 1–1 .

В случае выхода из строя любого диска данные на нем можно восстановить по контрольным данным и по данным, оставшимся на исправных дисках.

В качестве иллюстрации рассмотрим блоки размером по четыре бита. Пусть имеются всего пять дисков для хранения данных и записи контрольных сумм. Если есть последовательность битов 1101 0011 1100 1011, разбитая на блоки по четыре бита, то для расчета контрольной суммы необходимо выполнить следующую поразрядную операцию:

1101 0011 1100 1011 = 1001.

Таким образом, контрольная сумма, записываемая на пятый диск, равна 1001.

Если один из дисков, например четвертый, вышел из строя, то блок d 4 = 1100 окажется недоступным при считывании. Однако его значение легко восстановить по контрольной сумме и по значениям остальных блоков с помощью все той же операции «исключающего ИЛИ»:

d 4 = d 1 d 2 d 4 p 5 .

В нашем примере получим:

d 4 = (1101) (0011) (1100) (1011) = 1001.

В случае RAID 5 все диски массива имеют одинаковый размер, однако общая емкость дисковой подсистемы, доступной для записи, становится меньше ровно на один диск. Например, если пять дисков имеют размер 100 Гбайт, то фактический размер массива составляет 400 Гбайт, поскольку 100 Гбайт отводится на контрольную информацию.

RAID 5 может быть построен на трех и более жестких дисках. С увеличением количества жестких дисков в массиве его избыточность уменьшается.

RAID 5 имеет архитектуру независимого доступа, что обеспечивает возможность одновременного выполнения нескольких операций считывания или записи.

RAID 10

Уровень RAID 10 представляет собой некое сочетание уровней 0 и 1. Минимально для этого уровня требуются четыре диска. В массиве RAID 10 из четырех дисков они попарно объединяются в массивы уровня 0, а оба этих массива как логические диски объединяются в массив уровня 1. Возможен и другой подход: первоначально диски объединяются в зеркальные массивы уровня 1, а затем логические диски на основе этих массивов - в массив уровня 0.

Intel Matrix RAID

Рассмотренные RAID-массивы уровней 5 и 1 редко используются в домашних условиях, что связано прежде всего с высокой стоимостью подобных решений. Наиболее часто для домашних ПК применяется именно массив уровня 0 на двух дисках. Как мы уже отмечали, RAID уровня 0 не обеспечивает безопасности хранения данных, а потому конечные пользователи сталкиваются с выбором: создавать быстрый, но не обеспечивающий надежности хранения данных RAID-массив уровня 0 или же, увеличивая стоимость дискового пространства в два раза, - RAID-массив уровня 1, который обеспечивает надежность хранения данных, однако не позволяет получить существенного выигрыша в производительности.

Для того чтобы разрешить эту нелегкую проблему, корпорация Intel разработала технологию Intel Matrix Storage, позволяющую объединить достоинства массивов уровней 0 и 1 всего на двух физических дисках. А для того, чтобы подчеркнуть, что речь в данном случае идет не просто о RAID-массиве, а о массиве, сочетающем в себе и физические и логические диски, в названии технологии вместо слова «массив» используется слово «матрица».

Итак, что же представляет собой RAID-матрица из двух дисков по технологии Intel Matrix Storage? Основная идея заключается в том, что при наличии в системе нескольких жестких дисков и материнской платы с чипсетом Intel, поддерживающим технологию Intel Matrix Storage, возможно разделение дискового пространства на несколько частей, каждая из которых будет функционировать как отдельный RAID-массив.

Рассмотрим простой пример RAID-матрицы из двух дисков по 120 Гбайт каждый. Любой из дисков можно разбить на два логических диска, например по 40 и 80 Гбайт. Далее два логических диска одного размера (например, по 40 Гбайт) можно объединить в RAID-матрицу уровня 1, а оставшиеся логические диски - в RAID-матрицу уровня 0.

В принципе, используя два физических диска, также можно создать всего одну или две RAID-матрицы уровня 0, но вот получить только матрицы уровня 1 невозможно. То есть если в системе имеются всего два диска, то технология Intel Matrix Storage позволяет создавать следующие типы RAID-матриц:

  • одна матрица уровня 0;
  • две матрицы уровня 0;
  • матрица уровня 0 и матрица уровня 1.

Если в системе установлены три жестких диска, то возможно создание следующих типов RAID-матриц:

  • одна матрица уровня 0;
  • одна матрица уровня 5;
  • две матрицы уровня 0;
  • две матрицы уровня 5;
  • матрица уровня 0 и матрица уровня 5.

Если в системе установлены четыре жестких диска, то дополнительно имеется возможность создать RAID-матрицу уровня 10, а также комбинации уровня 10 и уровня 0 или 5.

От теории к практике

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

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

Дело в том, что хотя теоретически при использовании RAID-массива уровня 0 скорость чтения и записи должна возрастать вдвое, на практике возрастание скоростных характеристик гораздо менее скромное и для разных RAID-контроллеров оно различно. Аналогично и для RAID-массива уровня 1: несмотря на то что теоретически скорость чтения должна увеличиваться вдвое, на практике не всё так гладко.

Для нашего сравнительного тестирования RAID-контроллеров мы использовали материнскую плату Gigabyte GA-EX58A-UD7. Эта плата основана на чипсете Intel X58 Express с южным мостом ICH10R, имеющим интегрированный RAID-контроллер на шесть портов SATA II, который поддерживает организацию RAID-массивов уровней 0, 1, 10 и 5 с функцией Intel Matrix RAID. Кроме того, на плате Gigabyte GA-EX58A-UD7 интегрирован RAID-контроллер GIGABYTE SATA2, на базе которого реализованы два порта SATA II c возможностью организации RAID-массивов уровней 0, 1 и JBOD.

Также на плате GA-EX58A-UD7 интегрирован SATA III-контроллер Marvell 9128, на базе которого реализованы два порта SATA III c возможностью организации RAID-массивов уровней 0, 1 и JBOD.

Таким образом, на плате Gigabyte GA-EX58A-UD7 имеются три отдельных RAID-контроллера, на базе которых можно создать RAID-массивы уровней 0 и 1 и сравнить их друг с другом. Напомним, что стандарт SATA III обратно совместим со стандартом SATA II, поэтому на базе контроллера Marvell 9128, поддерживающего диски с интерфейсом SATA III, можно также создавать RAID-массивы с использованием дисков с интерфейсом SATA II.

Стенд для тестирования имел следующую конфигурацию:

  • процессор - Intel Core i7-965 Extreme Edition;
  • материнская плата - Gigabyte GA-EX58A-UD7;
  • версия BIOS - F2a;
  • жесткие диски - два диска Western Digital WD1002FBYS, один диск Western Digital WD3200AAKS;
  • интегрированные RAID-контроллеры:
  • ICH10R,
  • GIGABYTE SATA2,
  • Marvell 9128;
  • память - DDR3-1066;
  • объем памяти - 3 Гбайт (три модуля по 1024 Мбайт);
  • режим работы памяти - DDR3-1333, трехканальный режим работы;
  • видеокарта - Gigabyte GeForce GTS295;
  • блок питания - Tagan 1300W.

Тестирование проводилось под управлением операционной системы Microsoft Windows 7 Ultimate (32-bit). Операционная система инсталлировалась на диск Western Digital WD3200AAKS, который подключался к порту контроллера SATA II, интегрированного в южный мост ICH10R. RAID-массив собирался на двух дисках WD1002FBYS с интерфейсом SATA II.

Для измерения скоростных характеристик создаваемых RAID-массивов мы использовали утилиту IOmeter, которая является отраслевым стандартом для измерения производительности дисковых систем.

Утилита IOmeter

Поскольку мы задумывали эту статью как своеобразное руководство пользователя по созданию и тестированию RAID-массивов, логично будет начать с описания утилиты IOmeter (Input/Output meter), которая, как мы уже отметили, является своеобразным отраслевым стандартом для измерения производительности дисковых систем. Данная утилита бесплатна, и ее можно скачать с ресурса http://www.iometer.org.

Утилита IOmeter является синтетическим тестом и позволяет работать с неразбитыми на логические разделы жесткими дисками, благодаря чему можно тестировать диски независимо от файловой структуры и свести к нулю влияние операционной системы.

При тестировании возможно создание специфической модели доступа, или «паттерна», которая позволяет конкретизировать выполнение жестким диском специфических операций. В случае создания конкретной модели доступа разрешается менять следующие параметры:

  • размер запроса на передачу данных;
  • случайное/последовательное распределение (в %);
  • распределение операций чтения/записи (в %);
  • количество отдельных операций ввода-вывода, работающих параллельно.

Утилита IOmeter не требует инсталляции на компьютер и состоит из двух частей: собственно IOmeter и Dynamo.

IOmeter - это контролирующая часть программы с пользовательским графическим интерфейсом, позволяющим производить все необходимые настройки. Dynamo - это генератор нагрузки, который не имеет интерфейса. Каждый раз при запуске файла IOmeter.exe автоматически запускается и генератор нагрузки Dynamo.exe.

Для того чтобы начать работу с программой IOmeter, достаточно запустить файл IOmeter.exe. При этом открывается главное окно программы IOmeter (рис. 1).

Рис. 1. Главное окно программы IOmeter

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

Итак, при запуске программы IOmeter в левой части главного окна (в окне Topology) будет отображаться древовидная структура всех запущенных генераторов нагрузки (экземпляров Dynamo). Каждый запущенный экземпляр генератора нагрузки Dynamo называется менеджером (manager). Кроме того, программа IOmeter является многопотоковой и каждый отдельный запущенный поток экземпляра генератора нагрузки Dynamo называется Worker. Количество запущенных Worker’ов всегда соответствует количеству логических ядер процессора.

В нашем примере используется только один компьютер с четырехъядерным процессором, поддерживающим технологию Hyper-Threading, поэтому запускается лишь один менеджер (один экземпляр Dynamo) и восемь (по количеству логических ядер процессора) Worker’ов.

Собственно, для тестирования дисков в данном окне нет необходимости что-либо менять или добавлять.

Если выделить мышью название компьютера в древовидной структуре запущенных экземпляров Dynamo, то в окне Target на вкладке Disk Target отобразятся все диски, дисковые массивы и прочие накопители (включая сетевые), установленные в компьютере. Это те накопители, с которыми программа IOmeter может работать. Носители могут быть помечены желтым или голубым цветом. Желтым цветом отмечаются логические разделы носителей, а голубым - физические устройства без созданных на них логических разделов. Логический раздел может быть перечеркнут или не перечеркнут. Дело в том, что для работы программы с логическим разделом его нужно прежде подготовить, создав на нем специальный файл, равный по размеру емкости всего логического раздела. Если логический раздел перечеркнут, то это значит, что раздел еще не подготовлен для тестирования (он будет подготовлен автоматически на первом этапе тестирования), ну а если раздел не перечеркнут, то это означает, что на логическом разделе уже создан файл, полностью готовый для тестирования.

Отметим, что, несмотря на поддерживаемую возможность работы с логическими разделами, оптимально тестировать именно не разбитые на логические разделы диски. Удалить логический раздел диска можно очень просто - через оснастку Disk Management . Для доступа к ней достаточно щелкнуть правой кнопкой мыши на значке Computer на рабочем столе и в открывшемся меню выбрать пункт Manage . В открывшемся окне Computer Management в левой части необходимо выбрать пункт Storage , а в нем - Disk Management . После этого в правой части окна Computer Management отобразятся все подключенные диски. Щелкнув правой кнопкой по нужному диску и выбрав в открывшемся меню пункт Delete Volume …, можно удалить логический раздел на физическом диске. Напомним, что при удалении с диска логического раздела вся информация на нем удаляется без возможности восстановления.

Вообще, с помощью утилиты IOmeter тестировать можно только чистые диски или дисковые массивы. То есть нельзя протестировать диск или дисковый массив, на котором установлена операционная система.

Итак, вернемся к описанию утилиты IOmeter. В окне Target на вкладке Disk Target необходимо выбрать тот диск (или дисковый массив), который будет подвергаться тестированию. Далее необходимо открыть вкладку Access Specifications (рис. 2), на которой можно будет определить сценарий тестирования.

Рис. 2. Вкладка Access Specifications утилиты IOmeter

В окне Global Access Specifications имеется список предустановленных сценариев тестирования, которые можно присвоить менеджеру загрузки. Впрочем, эти сценарии нам не понадобятся, поэтому все их можно выделить и удалить (для этого предусмотрена кнопка Delete ). После этого нажмем на кнопку New , чтобы создать новый сценарий тестирования. В открывшемся окне Edit Access Specification можно определить сценарий загрузки диска или RAID-массива.

Предположим, мы хотим выяснить зависимость скорости последовательного (линейного) чтения и записи от размера блока запроса на передачу данных. Для этого нам нужно сформировать последовательность сценариев загрузки в режиме последовательного чтения при различных размерах блока, а затем последовательность сценариев загрузки в режиме последовательной записи при различных размерах блока. Обычно размеры блоков выбираются в виде ряда, каждый член которого вдвое больше предыдущего, а первый член этого ряда равен 512 байт. То есть размеры блоков составляют следующий ряд: 512 байт, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 Кбайт, 1 Мбайт. Делать размер блока больше 1 Мбайт при последовательных операциях нет смысла, поскольку при таких больших размерах блока данных скорость последовательных операций не изменяется.

Итак, сформируем сценарий загрузки в режиме последовательного чтения для блока размером 512 байт.

В поле Name окна Edit Access Specification вводим название сценария загрузки. Например, Sequential_Read_512. Далее в поле Transfer Request Size задаем размер блока данных 512 байт. Ползунок Percent Random/Sequential Distribution (процентное соотношение между последовательными и выборочными операциями) сдвигаем до упора влево, чтобы все наши операции были только последовательными. Ну а ползунок , задающий процентное соотношение между операциями чтения и записи, сдвигаем до упора вправо, чтобы все наши операции были только чтением. Остальные параметры в окне Edit Access Specification менять не нужно (рис. 3).

Рис. 3. Окно Edit Access Specification для создания сценария загрузки последовательного чтения
при размере блока данных 512 байт

Нажимаем на кнопку Ok , и первый созданный нами сценарий отобразится в окне Global Access Specifications на вкладке Access Specifications утилиты IOmeter.

Аналогично нужно создать сценарии и для остальных блоков данных, однако, чтобы облегчить себе работу, проще не создавать сценарий каждый раз заново, нажимая для этого кнопку New , а, выбрав последний созданный сценарий, нажать кнопку Edit Copy (редактировать копию). После этого опять откроется окно Edit Access Specification с настройками нашего последнего созданного сценария. В нем достаточно будет поменять лишь название и размер блока. Проделав аналогичную процедуру для всех остальных размеров блоков, можно приступить к формированию сценариев для последовательной записи, что делается совершенно аналогично, за исключением того, что ползунок Percent Read/Write Distribution , задающий процентное соотношение между операциями чтения и записи, нужно сдвинуть до упора влево.

Аналогично можно создать сценарии для выборочной записи и чтения.

После того как все сценарии будут готовы, их нужно присвоить менеджеру загрузки, то есть указать, с какими сценариями будет работать Dynamo .

Для этого еще раз проверяем, что в окне Topology выделено название компьютера (то есть менеджер нагрузки на локальном ПК), а не отдельный Worker. Это гарантирует, что сценарии нагрузки будут присваиваться сразу всем Worker’ам. Далее в окне Global Access Specifications выделяем все созданные нами сценарии нагрузки и нажимаем кнопку Add . Все выделенные сценарии нагрузки добавятся в окно (рис. 4).

Рис. 4. Присвоение созданных сценариев нагрузки менеджеру нагрузки

После этого нужно перейти к вкладке Test Setup (рис. 5), на которой можно задать время выполнения каждого созданного нами сценария. Для этого в группе Run Time задаем время выполнения сценария нагрузки. Вполне достаточно будет задать время, равное 3 мин.

Рис. 5. Задание времени выполнения сценария нагрузки

Кроме того, в поле Test Description необходимо указать название всего теста. В принципе, данная вкладка имеет массу других настроек, однако для наших задач они не нужны.

После того как все необходимые настройки произведены, рекомендуется сохранить созданный тест, нажав на панели инструментов на кнопку с изображением дискеты. Тест сохраняется с расширением *.icf. Впоследствии можно будет воспользоваться созданным сценарием нагрузки, запустив не файл IOmeter.exe, а сохраненный файл с расширением *.icf.

Теперь можно приступить непосредственно к тестированию, нажав на кнопку с изображением флажка. Вам будет предложено указать название файла с результатами тестирования и выбрать его местоположение. Результаты тестирования сохраняются в CSV-файле, который потом легко экспортировать в Excel и, установив фильтр по первому столбцу, выбрать нужные данные с результатами тестирования.

В ходе тестирования промежуточные результаты можно наблюдать на вкладке Result Display , а определить, к какому сценарию нагрузки они относятся, можно на вкладке Access Specifications . В окне Assigned Access Specification исполняемый сценарий отображается зеленым, выполненные сценарии - красным, а еще не выполненные сценарии - синим цветом.

Итак, мы рассмотрели базовые приемы работы с утилитой IOmeter, которые потребуются для тестирования отдельных дисков или RAID-массивов. Отметим, что мы рассказали далеко не обо всех возможностях утилиты IOmeter, но описание всех ее возможностей выходит за рамки данной статьи.

Создание RAID-массива на базе контроллера GIGABYTE SATA2

Итак, мы начинаем создание RAID-массива на базе двух дисков с использованием интегрированного на плате RAID-контроллера GIGABYTE SATA2. Конечно, сама компания Gigabyte не производит чипов, а потому под чипом GIGABYTE SATA2 скрывается перемаркированный чип другой фирмы. Как можно выяснить из INF-файла драйвера, речь идет о контроллере серии JMicron JMB36x.

Доступ в меню настройки контроллера возможен на этапе загрузки системы, для чего нужно нажать комбинацию клавиш Ctrl+G, когда появится соответствующая надпись на экране. Естественно, прежде в настройках BIOS нужно определить режим работы двух SATA-портов, относящихся к контроллеру GIGABYTE SATA2, как RAID (в противном случае доступ в меню конфигуратора RAID-массива будет невозможен).

Меню настройки RAID-контроллера GIGABYTE SATA2 довольно простое. Как мы уже отмечали, контроллер является двухпортовым и позволяет создавать RAID-массивы уровня 0 или 1. Через меню настройки контроллера можно удалить или создать RAID-массив. При создании RAID-массива имеется возможность указать его название, выбрать уровень массива (0 или 1), задать размер страйпа для RAID 0 (128, 84, 32, 16, 8 или 4K), а также определить размер массива.

Если массив создан, то какие-либо изменения в нем уже невозможны. То есть нельзя впоследствии для созданного массива изменить, например, его уровень или размер страйпа. Для этого прежде нужно удалить массив (с потерей данных), а потом создать его заново. Собственно, это свойственно не только контроллеру GIGABYTE SATA2. Невозможность изменения параметров созданных RAID-массивов - особенность всех контроллеров, которая вытекает из самого принципа реализации RAID-массива.

После того как массив на базе контроллера GIGABYTE SATA2 создан, текущую информацию о нем можно просмотреть, используя утилиту GIGABYTE RAID Configurer, которая устанавливается автоматически вместе с драйвером.

Создание RAID-массива на базе контроллера Marvell 9128

Конфигурирование RAID-контроллера Marvell 9128 возможно только через настройки BIOS платы Gigabyte GA-EX58A-UD7. Вообще, нужно сказать, что меню конфигуратора контроллера Marvell 9128 несколько сыровато и может ввести в заблуждение неискушенных пользователей. Впрочем, об этих незначительных недоработках мы расскажем чуть позже, а пока рассмотрим основные функциональные возможности контроллера Marvell 9128.

Итак, несмотря на то что этот контроллер поддерживает работу с дисками с интерфейсом SATA III, он также полностью совместим с дисками с интерфейсом SATA II.

Контроллер Marvell 9128 позволяет создать RAID-массив уровней 0 и 1 на базе двух дисков. Для массива уровня 0 можно задать размер страйпа 32 или 64 Кбайт, а также указать имя массива. Кроме того, имеется и такая опция, как Gigabyte Rounding, которая нуждается в пояснении. Несмотря на название, созвучное с именем компании-производителя, функция Gigabyte Rounding никакого отношения к ней не имеет. Более того, она никак не связана с RAID-массивом уровня 0, хотя в настройках контроллера ее можно определить именно для массива этого уровня. Собственно, это первая из тех недоработок конфигуратора контроллера Marvell 9128, о которых мы упоминали. Функция Gigabyte Rounding определена только для RAID-массива уровня 1. Она позволяет использовать для создания RAID-массива уровня 1 два диска (например, различных производителей или разные модели), емкость которых немного отличается друг от друга. Функция Gigabyte Rounding как раз и задает разницу в размерах двух дисков, применяемых для создания RAID-массива уровня 1. В контроллере Marvell 9128 функция Gigabyte Rounding позволяет установить разницу в размерах дисков 1 или 10 Гбайт.

Еще одна недоработка конфигуратора контроллера Marvell 9128 заключается в том, что при создании RAID-массива уровня 1 у пользователя имеется возможность выбора размера страйпа (32 или 64 Кбайт). Однако понятие страйпа вообще не определено для RAID-массива уровня 1.

Создание RAID-массива на базе контроллера, интегрированного в ICH10R

RAID-контроллер, интегрированный в южный мост ICH10R, является самым распространенным. Как уже отмечалось, данный RAID-контроллер 6-портовый и поддерживает не только создание массивов RAID 0 и RAID 1, но также RAID 5 и RAID 10.

Доступ в меню настройки контроллера возможен на этапе загрузки системы, для чего нужно нажать комбинацию клавиш Ctrl+I, когда появится соответствующая надпись на экране. Естественно, прежде в настройках BIOS следует определить режим работы этого контроллера как RAID (в противном случае доступ в меню конфигуратора RAID-массива будет невозможен).

Меню настройки RAID-контроллера достаточно простое. Через меню настройки контроллера можно удалить или создать RAID-массив. При создании RAID-массива можно указать его название, выбрать уровень массива (0, 1, 5 или 10), задать размер страйпа для RAID 0 (128, 84, 32, 16, 8 или 4K), а также определить размер массива.

Сравнение производительности RAID-массивов

Для тестирования RAID-массивов с помощью утилиты IOmeter мы создали сценарии нагрузки последовательного чтения, последовательной записи, выборочного чтения и выборочной записи. Размеры блоков данных в каждом сценарии нагрузки составляли следующую последовательность: 512 байт, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 Кбайт, 1 Мбайт.

На каждом из RAID-контроллеров создавался массив RAID 0 со всеми допустимыми размерами страйпов и массив RAID 1. Кроме того, дабы иметь возможность оценить прирост производительности, получаемый от использования RAID-массива, мы также протестировали на каждом из RAID-контроллеров одиночный диск.

Итак, обратимся к результатам нашего тестирования.

Контроллер GIGABYTE SATA2

Прежде всего рассмотрим результаты тестирования RAID-массивов на базе контроллера GIGABYTE SATA2 (рис. 6-13). В общем-то контроллер оказался в буквальном смысле загадочным, а его производительность просто разочаровала.

Рис. 6. Скорость последовательных
и выборочных операций для диска
Western Digital WD1002FBYS

Рис. 7. Скорость последовательных

c размером страйпа 128 Кбайт
(контроллер GIGABYTE SATA2)

Рис. 12. Скорость последовательных
и выборочных операций для RAID 0
c размером страйпа 4 Кбайт
(контроллер GIGABYTE SATA2)

Рис. 13. Скорость последовательных
и выборочных операций
для RAID 1 (контроллер GIGABYTE SATA2)

Если посмотреть на скоростные характеристики одного диска (без RAID-массива), то максимальная скорость последовательного чтения составляет 102 Мбайт/с, а максимальная скорость последовательной записи - 107 Мбайт/с.

При создании массива RAID 0 с размером страйпа 128 Кбайт максимальная скорость последовательного чтения и записи увеличивается до 125 Мбайт/с, то есть возрастает примерно на 22%.

При размере страйпа 64, 32 или 16 Кбайт максимальная скорость последовательного чтения составляет 130 Мбайт/с, а максимальная скорость последовательной записи - 141 Мбайт/с. То есть при указанных размерах страйпа максимальная скорость последовательного чтения возрастает на 27%, а максимальная скорость последовательной записи - на 31%.

Вообще-то это маловато для массива уровня 0, и хотелось бы, чтобы максимальная скорость последовательных операций была выше.

При размере страйпа 8 Кбайт максимальная скорость последовательных операций (чтения и записи) остается примерно такой же, как и при размере страйпа 64, 32 или 16 Кбайт, однако с выборочным чтением - явные проблемы. При увеличении размера блока данных вплоть до 128 Кбайт скорость выборочного чтения (как и должно быть) возрастает пропорционально размеру блока данных. Однако при размере блока данных более 128 Кбайт скорость выборочного чтения падает практически до нуля (примерно до 0,1 Мбайт/с).

При размере страйпа 4 Кбайт падает не только скорость выборочного чтения при размере блока более 128 Кбайт, но и скорость последовательного чтения при размере блока более 16 Кбайт.

Использование массива RAID 1 на контроллере GIGABYTE SATA2 практически не изменяет (в сравнении с одиночным диском) скорость последовательного чтения, однако максимальная скорость последовательной записи уменьшается до 75 Мбайт/с. Напомним, что для массива RAID 1 скорость чтения должна возрастать, а скорость записи не должна уменьшаться в сравнении со скоростью чтения и записи одиночного диска.

На основании результатов тестирования контроллера GIGABYTE SATA2 можно сделать только один вывод. Использовать данный контроллер для создания массивов RAID 0 и RAID 1 имеет смысл только в том случае, когда все остальные RAID-контроллеры (Marvell 9128, ICH10R) уже задействованы. Хотя представить себе подобную ситуацию довольно сложно.

Контроллер Marvell 9128

Контроллер Marvell 9128 продемонстрировал гораздо более высокие скоростные характеристики в сравнении с контроллером GIGABYTE SATA2 (рис. 14-17). Собственно, различия проявляются даже при работе контроллера с одним диском. Если для контроллера GIGABYTE SATA2 максимальная скорость последовательного чтения составляет 102 Мбайт/с и достигается при размере блока данных 128 Кбайт, то для контроллера Marvell 9128 максимальная скорость последовательного чтения составляет 107 Мбайт/с и достигается при размере блока данных 16 Кбайт.

При создании массива RAID 0 с размером страйпа 64 и 32 Кбайт максимальная скорость последовательного чтения увеличивается до 211 Мбайт/с, а последовательной записи - до 185 Мбайт/с. То есть при указанных размерах страйпа максимальная скорость последовательного чтения возрастает на 97%, а максимальная скорость последовательной записи - на 73%.

Существенной разницы по скоростным показателям массива RAID 0 с размером страйпа 32 и 64 Кбайт не наблюдается, однако применение страйпа 32 Кбайт более предпочтительно, поскольку в этом случае скорость последовательных операций при размере блока менее 128 Кбайт будет немного выше.

При создании массива RAID 1 на контроллере Marvell 9128 максимальная скорость последовательных операций практически не изменяется в сравнении с одиночным диском. Так, если для одиночного диска максимальная скорость последовательных операций составляет 107 Мбайт/с, то для RAID 1 она равна 105 Мбайт/с. Также заметим, что для RAID 1 скорость выборочного чтения немного ухудшается.

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

Контроллер ICH10R

RAID-контроллер, встроенный в ICH10R, оказался самым высокопроизводительным из всех протестированных нами (рис. 18-25). При работе с одиночным диском (без создания RAID-массива) его производительность фактически такая же, как и производительность контроллера Marvell 9128. Максимальная скорость последовательного чтения и записи составляет 107 Мбайт и достигается при размере блока данных 16 Кбайт.

Рис. 18. Скорость последовательных
и выборочных операций
для диска Western Digital WD1002FBYS (контроллер ICH10R)

Если говорить о массиве RAID 0 на контроллере ICH10R, то максимальная скорость последовательного чтения и записи не зависит от размера страйпа и составляет 212 Мбайт/с. От размера страйпа зависит лишь размер блока данных, при котором достигается максимальное значение скорости последовательного чтения и записи. Как показывают результаты тестирования, для RAID 0 на базе контроллера ICH10R оптимально использовать страйп размером 64 Кбайт. В этом случае максимальное значение скорости последовательного чтения и записи достигается при размере блока данных всего 16 Кбайт.

Итак, резюмируя, еще раз подчеркнем, что RAID-контроллер, встроенный в ICH10R, существенно превосходит по производительности все остальные интегрированные RAID-контроллеры. А учитывая, что он обладает и большей функциональностью, оптимально использовать именно этот контроллер и просто забыть о существовании всех остальных (если, конечно, в системе не применяются диски SATA III).

Похожие публикации