Barracuda ATA IV в RAID0. Правда и вымысел...

Автор: niknik
Дата: 05.08.2002
Все фото статьи

Введение


Год назад фирмой Seagate был выпущен революционный диск Barracuda ATA IV - это был первый винчестер с 40ГБ-пластинами со скоростью вращения шпинделя 7200 оборотов в минуту. Одним из новшеств, которое Seagate привнёсла на рынок IDE-винчестеров, был бесшумный гидромотор, который придал жёстким дискам Seagate дополнительную привлекательность. Диск Barracuda ATA IV заслужил множество наград от различных тестовых лабораторий, журналов, сайтов и т.п. Надо сказать, награды были заслуженными, так как диск и вправду сочетал высокую надёжность, бесшумность работы и разумную цену.
Но через некоторое время диски на 40ГБ-пластинах выпустили фирмы-конкуренты, и Barracuda ATA IV постепенно исчез с первых страниц журналов и новостных лент интернет-изданий.
Однако, чуть позже в интернет-сообществе возникла и покатилась, набирая силу, волна слухов: -"Barracuda ATA IV не работает в RAID0!".
Поначалу я был даже ошарашен. Я не понимал, как это винчестер не работает в RAID0... Весь мой предыдущий опыт общения с винчестерами (небольшой, конечно, но всё же...) говорил мне, что это невозможно, но количество "пострадавших" всё возрастало, и голос их звучал всё громче. Наконец, мои нервы не выдержали, и я решил выяснить, сколько в вышеупомянутых словах правды и сколько - вымысла.

Тестовая система и методика тестирования


В тестировании приняли участие шесть винчестеров Barracuda ATA IV ёмкостью 40ГБ с тремя версиями firmware: 3.10, 3.19 и 3.75. Как легко догадаться, шесть винчестеров - это три пары винчестеров с одинаковой прошивкой.
Для тестов винчестеров использовался широко распространённый (особенно в качестве интегрированного контроллера на материнских платах) контроллер Promise FastTRAK100 TX2.
Тестирование винчестеров проводилось в два этапа. Сначала три винчестера с разными прошивками были протестированы на контроллере FastTRAK100 TX2 в режиме SPAN, т.е. как одиночные диски. Затем испытаниям подверглись не одиночные винчестеры, а массивы из двух винчестеров, объединённых в RAID0. Размер stripe-блока при создании массивов устанавливался в 64КБ. Для тестов в WinBench массивы размечались в FAT32 и NTFS одним разделом с размером кластера по умолчанию.
Тесты проводились по четыре раза, результаты усреднялись. Винчестеры между тестами не охлаждались.
Использовались следующие тесты:

WinBench 99 1.2
IOMeter 1999.10.20

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

Паттерны StorageReview
  File Server Web Server
  80% Read, 100% Random 100% Read, 100% Random
 512b 10% 22%
 1KB 5% 15%
 2KB 5% 8%
 4KB 60% 23%
 8KB 2% 15%
 16KB 4% 2%
 32KB 4% 6%
 64KB 10% 7%
 128KB 0% 1%
 512KB 0% 1%

Эти паттерны призваны измерить производительность дисковой подсистемы при нагрузке, типичной для file&web-серверов.

На основании проведённого Storagereview исследования о характере нагрузки на дисковую подсистему при работе с обычными Windows-приложениями наш автор, Романов Сергей aka GReY, создал паттерн для теста IOMeter (паттерн создавался по усреднённой статистике IPEAK, приведённой на StorageReview для режимов работы Office, Hi-End и Bootup):

Паттерн Workstation
 Transfer Size Request % of Access Specification % Reads % Random
 Workstation   
 512B 1 0 100
 1KB 2 0 100
 2KB 1 0 100
 4KB 50 60 80
 8KB 4 50 100
 16KB 6 50 100
 20KB 2 50 100
 24KB 2 50 100
 28KB 1 50 100
 32KB 13 70 70
 48KB 1 50 100
 52KB 1 50 100
 64KB 14 80 60
 64KB+512B 2 50 100

Этим паттерном мы будем руководствоваться для оценки привлекательности винчестеров и RAID-контроллеров для обычного Windows-пользователя.

Дополнительно проведено сравнение скорости работы контроллера с различными типами RAID-массивов при изменяемом соотношении операций чтения/записи. Был создан паттерн, в котором использовались 100% случайные 8КБ-блоки данных, а соотношение числа чтений/записей менялось от 100/0 до 0/100 c шагом -10/+10.

Ну и, наконец, была проверена способность контроллеров работать с Sequential-запросами переменного размера на чтение и запись в различных типах RAID-массивов.

Тестовая система

материнская плата - Asustek P3B-F
процессор - Intel P3 600E;
память - 2*128Mb SDRAM Hyundai PC100 ECC;
винчестер - IBM DPTA 372050;
видеокарта - Matrox Millennium 4Mb;
Promise FastTRAK100 TX2 BIOS v2.00.0.24/Drivers v2.00.0.25
операционная система - Windows 2000 Pro SP2;

Winbench99


Как мы помним, в последнем нашем тестировании IDE-винчестеров, Barracuda ATA IV показала весьма неплохие результаты в Winbench99. Интересно, как зависят результаты Barracuda ATA IV в Winbench99 от версии firmware винчестера, а также насколько растут результаты в Winbench99 при объединении винчестеров Barracuda ATA IV в RAID0-массив.


Если сравнить результаты одиночного винчестера и RAID0-массива, то, вне зависимости от версии прошивки, массив RAID0 быстрее при работе с файлами большого размера (например, в SoundForge). При работе с мелкими файлами массив RAID0 преимущества не имеет.


Картину в целом можно оценить по интегральным тестам - скорость винчестеров и RAID0-массивов немного зависит от версии прошивки. В тестах на одиночном винчестере самые высокие результаты показал винчестер с прошивкой 3.10, а среди RAID0-массивов большую скорость показали винчестеры с прошивкой 3.19.
Под NTFS результаты немного другие:



Как видим, для RAID0 самой быстрой прошивкой оказалась 3.19, а среди одиночных дисков лучшие результаты показали винчестеры с firmware 3.19 и 3.75.
В целом, нужно признать, что коэффициент полезности RAID0 на Barracuda ATA IV в Winbench99 весьма невелик.
В заключение этого раздела предлагаю Вам посмотреть на графики линейного чтения одиночных винчестеров Barracuda ATA IV (с разными версиями firmware) и RAID0-массивов:

JBOD 3.10
JBOD 3.19
JBOD 3.75
RAID0 3.10
RAID0 3.19
RAID0 3.75

IOMeter: Sequential Read/Write


Низкоуровневые тесты Barracuda ATA IV и RAID0-массивов на этом винчестере мы начнём с тестов последовательного чтения. Суть теста в том, что на винчестер (массив) подаются запросы на чтение блоков данных, с последовательно увеличивающимся адресом. Размер блока данных, запрашиваемый одной командой изменяется от 512байт до 1МБ. Глубина очереди команд устанавливается равной четырём запросам.


Сравним скорость работы одиночных винчестеров:


Оказывается, скорость работы винчестеров Barracuda ATA IV с запросами на чтение блоков данных разного размера довольно сильно зависит от версии firmware! Диск с самой "старой" прошивкой из тех, что принимали участие в наших тестах, показал вдвое меньшую скорость при работе с 8КБ-блоками, чем диск с firmware 3.19! Самая новая же прошивка - 3.75 неожиданно показала средние результаты.


Но, если мы посмотрим на результаты винчестеров в RAID0, то увидим, что лучшую скорость показывает пара винчестеров с 3.75-й прошивкой!
Обратите внимание, что при работе с мелкими блоками (до 1КБ) никакого увеличения скорости по сравнению с одиночными винчестерами не наблюдается. Но, когда размер запрашиваемого блока данных достигает 64КБ, все массивы "выходят на режим" - так что, размер имеет значение?
Посмотрим, что у нас будет при записи:



При последовательной записи винчестеры с различными версиями firmware демонстрируют примерно равную скорость, но от нашего взора не укрылось, что лучшие результаты показал диск с firmware 3.10, а худшие - диск с firmware 3.75.


При сравнении скорости записи RAID0-массивов выясняется, что firmware 3.10 действительно лучше справляется с записью. Впрочем, массив из дисков с firmware 3.75 тоже выглядит неплохо, но только при работе с блоками данных, чей размер превышает 16КБ. Хуже всех в этом режиме работает массив из дисков с firmware 3.19.
Итак, синтетические тесты показали, что удвоения скорости чтения на массиве из двух дисков Barracuda ATA IV добиться вполне возможно. Однако для этого нужно два условия - большой размер запроса (FAT32 с кластером 32КБ?) и большая интенсивность запросов.

Дописал предыдущую фразу и подумал, а ведь насчёт интенсивности запросов - это ещё проверить надо. Как говорил один мультперсонаж - "Мне для работы своей головы не жалко"! :)
Итак, на следующих двух диаграммах представлены зависимости трансфера с/на RAID0-массив от размера блока данных при пяти вариантах нагрузки (1,4,16,64,256 запросов).


Как видим, при чтении глубина очереди команд очень сильно влияет на скорость передачи данных. Если при линейной нагрузке (1 исходящий запрос) скорость RAID0-массива с трудом достигает отметки в 60МБ/сек., то при queue=4 она уже достигает максимума (почти 80МБ/сек.). При дальнейшем увеличении глубины очереди команд мы наблюдаем увеличение скорости работы с блоками малого размера, но за 80МБ/сек. трансфер так и не переваливает.


При записи зависимость скорости передачи данных от глубины очереди команд также есть. Но здесь она не выражена так ярко, как при чтении. Хотя...
Обратите внимание на зависимость скорости от размера блока при queue=1. Видите излом графика, где размер блока равен 64КБ? После того, как размер блока данных становится большим, чем 64КБ (а это размер stripe-блока), он разбивается на "подзапросы" для винчестеров с размером, равным 64КБ (макс. размер адресуемого блока данных для ATA100), и эти "подзапросы" передаются на винчестер. Чем больше размер исходного блока, тем большее количество "подзапросов" возникает при его "дроблении" драйвером контроллера. Соответственно, при этом у каждого винчестера растёт своя очередь команд, и оба винчестера всё время "при деле".

Итак, мы выяснили, что винчестеры Seagate Barracuda ATA IV в RAID0 могут полностью утилизировать свой скоростной потенциал. Однако для этого нужно два условия: большой размер единовременно запрашиваемого блока (>64КБ) или большая интенсивность запросов меньшего размера.
К сожалению, при работе в реальных приложениях под Windows выполнить эти два условия не представляется возможным... Соответственно и скорость RAID0-массива на Barracuda ATA IV при потоковых запросах оказывается невысокой.

IOMeter: Database


При помощи этого теста мы исследуем, как обстоят дела у винчестеров Barracuda ATA IV и массивов RAID0 на этих винчестерах с отложенной записью.
Результаты работы паттерна Database сведены в таблицу:


Для удобства анализа построены три диаграммы, на каждой из которых Вы найдёте графики зависимости скорости отработки запросов одиночными винчестерами и RAID0-массивами от доли операций записи.




Что же, всё логично - чем больше глубина очереди команд, тем больше шансов есть у контроллера равномерно нагрузить работой оба винчестера в массиве.
Как выяснилось, винчестеры Barracuda ATA IV в составе RAID0-массива нормально справляются с такой нагрузкой (случайные запросы на чтение и запись). Отчётливо видно, что скорость RAID0-массивов на винчестерах Barracuda ATA IV с любой версией firmware оказалась выше, чем у одиночных винчестеров при всех нагрузках, превышающих линейную (queue=1). ;)
Однако различия между винчестерами с разными прошивками и RAID0-массивами из этих винчестеров налицо. Диски с прошивкой 3.19 несколько лучше остальных реагируют на увеличение доли операций записи, а диски с прошивкой 3.75, наоборот, чуть отстают.

IOMeter: Workstation


Сначала, как обычно, результаты в табличной форме:


И, конечно, в виде диаграммы:


В паттерне Workstation, эмулирующем работу в типичных Windows приложениях под NTFS5 массив RAID0 на Barracuda ATA IV оказался быстрее одиночного диска при любой нагрузке.
Разница в быстродействии одиночных дисков с разными прошивками исчезающе мала, но при работе в RAID0 небольшое влияние версии прошивки на быстродействие наблюдается. Но так как разница в скорости массивов составляет 1-2 процента, то можно считать, что все прошивки справляются с паттерном Workstation одинаково успешно. Хотя, справедливости ради, стоит отметить, что диски с firmware 3.75 немного отстают.

IOMeter: Fileserver & Webserver


Результаты работы в этих паттернах дисков Barracuda ATA IV в составе RAID0-массивов позволят облегчённо вздохнуть всем тем, кто купил эти диски для серверов. :)




Как видите, массив RAID0 из дисков Barracuda ATA IV обеспечивает неплохой прирост скорости по сравнению с одиночным диском. Конечно, результаты могли бы быть и получше, но таких проблем, как с Sequential-запросами, здесь не наблюдается.
Надёжность дисков Barracuda ATA IV находится на высоком уровне, и, учитывая вышеизложенное, эти диски можно признать хорошим выбором для сервера с невысокой нагрузкой на дисковую подсистему.

FC-Test


Как вы помните, одной из целей, для которых создавался FC-Test было тестирование винчестеров в задачах, "близких к реальным". :)
В недавнем сравнении 12-ти дисков использование FC-Test выявило весьма необычные способности вроде бы давно исследованных вдоль и поперёк винчестеров, и поэтому мне было очень любопытно применить FC-Test к RAID-контроллерам.
Для того, чтобы это тестирование имело ещё и практическую ценность, мы сравним скорость работы трёх RAID0-массивов ёмкостью по 80ГБ со скоростью работы одиночного винчестера с такой же ёмкостью.
Тем, кто ещё не знаком с описанием программы FC-Test и методики тестирования винчестеров при помощи этого теста предлагаю ознакомиться с соответствующей статьёй, а все остальные без труда поймут, о чём у нас дальше пойдёт речь.

Тесты проводились под NTFS (результаты в FAT32 тоже снимались, но так как они принципиально не отличаются от результатов, полученных под NTFS, то я решил их в обзор не включать во имя уменьшения его размера) в следующих паттернах:

Паттерны для FC-Test
  Всего файлов Объём, MB
 Install 414 575
 ISO 3 1600
 MP3 271 990
 Programs 8504 1380
 Windows 9006 1060

Может быть, этот набор тестов немного великоват для того, чтобы выяснить, как винчестеры Barracuda ATA IV ведут себя при работе в RAID0-массиве (для этого хватило бы одного паттерна "ISO"), но ведь мы еще пытаемся сравнить между собой диски с разными версиями firmware...
В диаграммах приведена скорость (в МБ/сек.) работы RAID0-массивов и одиночного диска Seagate Barracuda ATA IV (80ГБ, прошивка 3.19) в четырёх режимах.






На всех этих диаграммах мы можем видеть две закономерности:

Скорость RAID0-массивов на дисках с любой версией firmware быстрее, чем скорость одиночного диска при записи и копировании набора файлов.
При чтении скорость RAID0-массивов на дисках с любой версией firmware всегда меньше (иногда существенно!), чем скорость одиночного диска.

Разница в скорости между массивами RAID0 на винчестерах с разными версиями firmware есть, но найти какую-то закономерность трудновато. :)
Впрочем, одна, на мой взгляд, есть - RAID0 с винчестерами 3.75 лучше остальных справляется с чтением набора файлов. Но, к сожалению, он всё равно медленнее, чем одиночный диск.
Почему же массив из двух дисков оказался медленнее, чем одиночный диск при чтении, то есть там, где RAID0-массив должен показывать максимальное превосходство перед одиночным диском?
Исследование нагрузки на дисковую подсистему при помощи Perfomance Monitor показало, что при чтении файлов максимальная глубина очереди команд составила всего 4 запроса, а среднее значение было еще меньше - 1,4 запроса! Все мы помним, как ведут себя RAID0-массивы на Barracuda ATA IV при режиме чтения при малой нагрузке, и именно в этот режим мы попадаем в нашем случае!

Выводы


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

Винчестеры Barracuda ATA IV "работают" в RAID0-конфигурациях, что бы там не говорили "осведомлённые источники"

Винчестеры Barracuda ATA IV вполне успешно справляются с "серверными" паттернами

Винчестеры Barracuda ATA IV в составе RAID0-массивов плохо работают с запросами на чтение и запись блоков малого размера при малой интенсивности запросов (малой глубине очереди команд).

Все исследованные версии firmware имеют указанный выше недостаток.

Итак, можно ли исправить найденные у винчестеров Barracuda ATA IV недостатки и сохранить достоинства? По всей видимости - да. На мой взгляд, проблема низкой скорости Barracuda ATA IV в RAID0-массиве заключается в недостаточной оптимизации алгоритмов упреждающего чтения. Решить эту проблему можно, и, я думаю, Seagate сделает это. Судя по результатам винчестеров с разными версиями прошивок, программисты Seagate медленно, но верно приближаются к решению проблемы. Это видно по тому, что результаты винчестеров с большим номером фирмваре при линейном чтении выше, чем у винчестеров с более старыми прошивками.
Можно ли решить проблемы изменением настроек RAID-массива или изменением размера кластера (его увеличением)? Может быть, но мне, увы, это не удалось...

Прошивать или нет - вот в чём вопрос


По Сети "гуляет" некоторое количество прошивок к винчестерам Barracuda ATA IV, и многие из наших читателей уже не устояли перед соблазном приложить свои руки к увеличению энтропии вселенной...
Надеюсь, что после прочтения этой статьи количество желающих рискнуть своим винчестером и находящимися на нём данными ради небольшой прибавки в производительности сократится.
Как Вы могли видеть, все три исследованные прошивки не исцеляют Barracuda ATA IV от её проблем. Так что давайте, подождём "правильную" прошивку, и уж тогда... :)