Введение
Перед вами третья статья в цикле, посвящённом анализу разных уровней RAID с разным числом жёстких дисков. Здесь мы вновь взяли те же самые жёсткие диски: восемь Samsung HM321KJ SATA/300, на которых собрали разные конфигурации RAID 0, RAID 5 и RAID 6, с числом жёстких дисков от трёх до восьми, с размером полосы (stripe) от 4 до 128 кбайт.
Дисковые массивы с избыточностью (RAID) – это не какая-то бесполезная технология, это основа всего современного бизнеса. По недавнему исследованию систем хранения Fleishman-Hillard, 75% опрошенных компаний используют конфигурации RAID, за которыми следуют решения DAS и NAS. Для развёртывания RAID требуется контроллер, который может одновременно работать с несколькими жёсткими дисками, создавая единый раздел для хранения данных. Основная цель массива RAID заключается в повышении надёжности хранения данных и увеличении ёмкости, но, кроме того, массивы RAID позволяют ускорить работу хранилища. А накопители на жёстких дисках всегда являлись “узким местом” для сценариев любого рода. Поэтому мы и опубликовали цикл статей, посвящённых масштабируемости RAID, который завершается третьей частью.
В первой части тестов масштабируемости RAID мы провели тесты на базовых RAID-массивах уровней 0, 1 и 0+1. RAID 0 использует так называемое чередование, когда данные распределяются по всем доступным накопителям, что позволяет повысить производительность и использовать всю доступную ёмкость массива. RAID 0 популярен в таких высокопроизводительных задачах, как программы монтажа HD-видео, но стоит только одному жёсткому диску выйти из строя, как вы потеряете весь массив. RAID 1 является противоположностью с точки зрения надёжности, поскольку содержимое одного винчестера автоматически копируется на второй. RAID 0+1 сочетает RAID 0 и 1, то есть зеркалирует два массива RAID 0. Мы использовали от двух до восьми жёстких дисков, чтобы посмотреть, насколько увеличивается производительность RAID-массива при добавлении винчестеров.
То же самое мы сделали и во второй части тестов масштабируемости RAID, однако там мы уже тестировали сложные массивы RAID 5 и 6, которые используют один или два винчестера, соответственно, для хранения информации избыточности, кроме, как минимум, двух жёстких дисков. Информация избыточности позволяет массиву RAID 5 выжить в случае сбоя одного жёсткого диска. RAID 6 обеспечивает двойную избыточность, то есть информация избыточности хранится на двух жёстких дисках, которые позволяют восстановить данные в случае сбоя. Массивы RAID с избыточностью – надёжное средство хранения больших массивов данных, но для них требуется мощный RAID-контроллер, который сможет достаточно быстро создавать информацию избыточности или воссоздавать данные “на лету” при худшем сценарии. В сентябре мы как раз протестировали несколько RAID-контролеров под шину PCI Express.
Но RAID включает больше параметров, нежели уровень RAID и число жёстких дисков. Есть такие факторы, как интерфейс RAID-контроллера (обычно PCI Express или PCI-X), определённое количество памяти на контроллере и, конечно, внутренняя конфигурация массива RAID. Следует помнить, что все массивы, кроме RAID 1, построены на так называемых полосах (stripe), размер которых задаётся при создании массива. И третья статья цикла посвящена изучению того, как будут работать массивы RAID 0, RAID 5 и RAID 6 при изменении размера полос от 4 до 128 кбайт.
RAID: краткое введение
В первой части тестов масштабируемости RAID мы подробно описали распространённые режимы RAID 0, 1 и 0+1. Во второй части вы найдёте информацию о RAID 5 и 6. Режимы RAID отличаются, главным образом, тем, как они работают с несколькими жёсткими дисками. RAID 0 – идеальный массив для максимальной производительности, но данные с него необходимо регулярно резервировать, поскольку они будут потеряны в случае выхода из строя хотя бы одного винчестера. RAID 1 хорошо подходит для надёжного хранения данных, поскольку содержимое одного винчестера копируется на другой. RAID 5 требует серьёзного RAID-контроллера и работает с числом винчестеров от трёх. Массив RAID 5 будет работать даже в случае выхода из строя одного жёсткого диска, но производительность у него не такая хорошая, как у RAID 0. Массив RAID 6 обеспечивает двойную избыточность и сохраняет данные, даже если из строя выйдут два жёстких диска. Но RAID 6 требует для развёртывания, минимум, четыре винчестера.
RAID не всегда развёртывается на физических жёстких дисках, часто возможно создать массив RAID на основе других массивов RAID или разделов, таких, как JBOD, объединяющих несколько жёстких дисков. Такие каскады массивов RAID, как RAID 0+1, ещё называют “гнездовыми” (Nested). Популярны и такие варианты, как RAID 5+0, когда два или больше массивов RAID 5 объединены в RAID 0 более высокого уровня. Используя массивы RAID 5 или RAID 6, которые обеспечивают большую надёжность, чем отдельные винчестеры, риск потерять данные в верхнеуровневом RAID 0 снижается.
Большинство специалистов рекомендует создавать RAID-массивы из идентичных жёстких дисков. Фактически, очень важно использовать винчестеры с идентичной ёмкостью, поскольку накопитель с минимальной ёмкостью будет использоваться в качестве наименьшего общего знаменателя массива: 4x 500 Гбайт в RAID 5 приведут к полезной ёмкости 1 500 Гбайт (помните, что один винчестер используется для хранения информации избыточности). Но если вы возьмёте 2x 500 Гбайт и 2x 320 Гбайт, то получите полезную ёмкость только 3x 320 Гбайт – вся остальная ёмкость на 500-Гбайт винчестерах останется незаполненной. Эксперты в области хранения данных рекомендуют использовать и одинаковые модели с одинаковыми прошивками. Опять же, самый медленный винчестер будет определять общую производительность.
Мощные RAID-контроллеры всегда содержат встроенную кэш-память, либо слот памяти, позволяющий пользователю устанавливать память самостоятельно. Кэш работает по такому же принципу, как и кэш на жёстких дисках, но намного большая ёмкость приводит к тому, что его влияние на производительность оказывается сильнее. Во время тестов HyperDrive 4 от HyperOS мы использовали мощный RAID-контроллер SAS. Если вы посмотрите на диаграммы передачи данных, то заметите, что на этот твёрдотельный накопитель на основе RAM можно записывать со скоростью почти 90 Мбайт/с. Однако первая сотня мегабайт может записываться со впечатляющей скоростью 450 Мбайт/с по причине того, что RAID-контроллер кэширует данные перед их непосредственной записью на накопитель. Этот эффект очень положительно сказывается на производительности RAID-массивов, но вы должны удостовериться, что RAID-контроллер оснащён резервным аккумулятором (battery backup unit, BBU), либо система запитана от источника бесперебойного питания (UPS), чтобы данные в кэше не потерялись после перебоя с электричеством.
Статьи THG.ru, посвящённые RAID
В первой и второй статьях нашего цикла мы детально рассмотрели массивы RAID 0, 1, 0+1, 5 и 6.
Кроме цикла статей, посвящённого масштабированию RAID, мы опубликовали и другие статьи на эту тему.
- “Восстанавливаем данные с жёстких дисков и RAID: опыт Kroll Ontrack”.
Если случится катастрофа, такая, как выход из строя жёсткого диска, на помощь всегда могут прийти профессионалы. Мы посетили центр восстановления Kroll Ontrack, где происходит процесс возвращения пользовательских данных “к жизни”. Что интересно, можно восстанавливать не только отдельные жёсткие диски, но и RAID. Тем не менее, регулярно делайте резервные копии – так вы сэкономите массу нервов, денег и времени! - “Параллельные вычисления, часть II. Число каналов памяти и массивы RAID”.
Когда производители стали переходить на двухканальные платформы, то прирост производительности был заметен. Но сохранился ли он сегодня, когда появились процессоры с мощными и ёмкими системами кэширования? Насколько увеличится производительность обычных приложений и игр при переходе с одного винчестера на RAID 0 из двух и четырёх жёстких дисков? В нашей второй статье цикла, посвящённого параллельным вычислениям, мы ответим на эти вопросы. - “Миграция RAID-массивов: тесты THG”
Массивы RAID стали в последнее время весьма популярными. Но что делать, если вам необходимо обновить платформу? Сможет ли существующий массив RAID работать под новой платформой? В нашей лаборатории мы решили проверить возможность миграции массива со старых RAID-контроллеров на новые. - “Миграция уровней RAID. Возможности чипсетов Intel и nVidia”.
Жёсткий диск является “узким местом” современных ПК, поэтому пользователи всё более активно переходят на массивы RAID, позволяющие либо увеличить производительность, либо повысить надёжность хранения данных, либо то и другое сразу. Но что делать, если потребуется изменить конфигурацию RAID или увеличить доступное пространство? Мы решили оценить возможности встроенных RAID-контроллеров чипсетов Intel и nVidia в области миграции уровней RAID и конфигурации массивов. - “RAID 0 против WD Raptor: кто быстрее?”.
Цена на обычные жёсткие диски на 7 200 об/мин продолжает падать, чего не скажешь о модельном ряде Western Digital Raptor на 10 000 об/мин. Конечно, Raptor до сих пор остаётся самым производительным жёстким диском для настольных ПК. Но насколько он хуже или лучше массива RAID 0 из двух винчестеров на 7 200 об/мин, которые обойдутся в такую же сумму? - “Две внешние оснастки с поддержкой RAID от EasyRAID и Sans Digital”.
Внешние хранилища становятся всё популярнее, потому что они позволяют легко и просто расширить ёмкость накопителей компьютера. А если хранилище обладает ещё и избыточностью, то за сохранность данных можно не так сильно беспокоиться. В нашем тестировании участвуют две внешние оснастки с поддержкой разных режимов RAID на 2 и 4 жёстких диска: EasyRAID S4-FWTT и Sans Digital MOBILEstor MS2UT. - “Строим массив RAID: 2,5″ против 3,5”.
Сегодня 2,5″ приводы SATA получают всё большее распространение на серверном рынке. Они обладают меньшими габаритами, энергопотреблением и уровнем шума. Мы решили сравнить, как массив RAID из 2,5″ винчестеров покажет себя по сравнению с 3,5″ жёсткими дисками. - “Data Robotics Drobo: удобное хранилище с избыточностью и USB-интерфейсом”.
Компания Data Robotics представила весьма любопытное внешнее хранилище Drobo, позволяющее установить до четырёх жёстких дисков. Внутри используется виртуальный массив RAID, в результате чего ёмкость винчестеров может быть разной. Да и расширить ёмкость можно в любое время. В итоге мы получаем удобное и простое в работе хранилище, с которым справится даже новичок. Жаль, что цена высоковата, да и ряд недостатков тоже есть. - “Acard ARS-3031: 1U RAID подсистема хранения с подключением SCSI”.
В корпусе, напоминающем обычный стоечный сервер 1U, размещается подсистема хранения данных Acard ARS-3031 на основе RAID-массива с четырьмя накопителями SATA. Система использует внешний интерфейс SCSI, поэтому её можно легко и удобно использовать для модернизации подсистем хранения стоечных серверов. - “Сетевой файловый сервер в тостере: ещё один сумасшедший проект”.
Похоже, фантазия моддеров неисчерпаема. Предлагаем познакомиться с очередным интересным проектом: сетевым файловым сервером с поддержкой RAID, уместившемся в корпусе обычного тостера.
Блок бесперебойного питания необходим на случай отключения электричества.
На что влияет размер полосы?
Перед тем, как мы перейдём к обсуждению размера полосы, важно упомянуть о термине “ширина полосы” (stripe width), которая соответствует числу накопителей в массиве RAID. Например, пять винчестеров приводят к ширине полосы пять. Ширина полосы меняется только при изменении числа накопителей в RAID-массиве. Чем больше будет накопителей, тем быстрее будет работать массив, пока не упрётся в “узкое место” контроллера или его интерфейса. Размер полосы определяет ёмкость минимальных порций данных, которые будут записываться на каждый отдельный винчестер в RAID-массиве, причём размер полосы можно регулировать на большинстве RAID-контроллеров. Весь же массив будет состоять из совокупности полос на отдельных жёстких дисках.
Полоса – минимальная единица данных, которая может адресоваться внутри RAID-массива. Поэтому иногда её называют блоком. Действительно, полосу RAID-массива можно сравнить с блоком LBA (logical block addressing) на обычных жёстких дисках. Большинство RAID-контроллеров позволяют выбирать размер полосы, поскольку он влияет на производительность RAID-массива. Обычно предлагаются варианты 16, 32, 64 и 128 кбайт, но многие профессиональные RAID-контроллеры позволяют выбрать и полосы меньшего размера, и даже большего, например, 256 кбайт.
Вообще, возможность менять размер полосы на встроенных RAID-контроллерах, например, в южных мостах Intel ICH7R, ICH8R и ICH9R, для настольных компьютеров имеет мало значения. На самом деле, на эту функцию обращают даже слишком много внимания, поскольку её влияние на производительность обычного игрового или офисного ПК минимально. Однако для серверов размер полосы может быть важен, хотя, опять же, разница видна только между очень маленьким и очень большим размерами на определённых приложениях. Разницу при переходе от 32 на 64 кбайт замерить можно, но заметить на практике – вряд ли.
В целом, выбор размера полосы влияет на следующие факторы.
- Производительность.
Обычные жёсткие диски обеспечивают лучшую производительность передачи данных при последовательном чтении и записи, когда перемещения головки сведены к минимуму. С этой точки зрения имеет смысл выбирать максимальный размер полосы, особенно если ваши жёсткие диски обеспечивают высокую скорость передачи. Однако это относится только к файлам, которые по размеру превышают размер полосы. Если вы храните миллионы текстовых файлов, документов Word, небольших таблиц или другие аналогичные мелкие файлы, только небольшой размер полосы позволит распределить эти файлы по нескольким жёстким дискам и повысить пропускную способность. - Ёмкость.
Размер полосы также соответствует минимальной ёмкости, которую будет занимать один файл. Например, если вы выберите размер полосы 64 кбайт и будете сохранять текстовый файл в 2 кбайт, то он всё равно займёт в массиве 64 кбайт. Вполне очевидно, что размер полосы определяет минимальный объём данных, который контроллер может распределить по своим жёстким дискам. Если файл будет записываться в одну полосу, то есть на один жёсткий диск, вы не получите преимущество в скорости от RAID.
Если вы хотите создать массив RAID для быстрого доступа к мелким файлам, то лучше выбирать полосу с маленьким размером, при этом и полезной ёмкости будет теряться меньше, да и вы получите прирост в скорости благодаря распределению мелких файлов по нескольким жёстким дискам. Для файловых серверов, которые хранят фотографии, музыку и видео, лучше выбирать большой размер полосы, поскольку он позволяет увеличить последовательную скорость чтения данных. В общем, лучшим решением будет поэкспериментировать с разными опциями. Попробуйте создать массивы с малым и с большим размером полосы, после чего замерьте производительность. При этом мы не рекомендуем делать близкие шаги: переход с 32 на 64 кбайт вряд ли существенно повлияет на производительность.
Тестовая конфигурация
Тестовая конфигурация | |
Системное аппаратное обеспечение | |
Процессор | AMD Opteron 875 (Egypt 90 нм, 2,2 ГГц, кэш 2×2 Мбайт L2) |
Материнская плата | Iwill DK88 Dual Opteron Board, чипсет nVidia nForce Professional 2200, BIOS: 1.4 |
Общее аппаратное обеспечение | |
Память | 2x 1024 Мбайт DDR-400 (CL 3,0-3-3-8), Micron 18VDDF12872G-40BD3 |
Видеокарта | ATi Rage XL |
Системный жёсткий диск | 120 Гбайт, 7 200 об/мин, кэш 8 Мбайт, SATA/300, Samsung HD120IJ |
Тестовые жёсткие диски | 8x 320 Гбайт, 7 200 об/мин, кэш 8 Мбайт, SATA/300, Samsung HD321KJ |
RAID-контроллер | Areca ARC-1220 8-Port PCIe RAID6, прошивка V1.43 2007-4-17 |
DVD-ROM | Teac DV-W50D |
Программное обеспечение | |
Видеокарта AMD | Встроенный Windows |
nVidia nForce Professional | Версия 6.70 |
ОС | Windows Server 2003 Enterprise Edition, Build 3790 SP2 |
Аппаратный RAID-контроллер PCIe Areca ARC-1220.
Материнская плата IWill DK88 Opteron.
Хотя компания IWill оставила свой бизнес, для нашего проекта мы решили взять одну из серверных материнских плат её производства. DK88 построена на чипсете nVidia nForce Professional и обеспечивает как слоты PCI Express, так и PCI-X.
В нашей лаборатории есть двуядерный Opteron 875, который мы и решили использовать для нашего проекта. Поскольку мы взяли RAID-контроллер со встроенным аппаратным движком XOR, то подобный мощный процессор вряд ли необходим. Но мы хотели подстраховаться и избежать “узких мест”.
Результаты тестов
Диаграммы тестов отсортированы по массивам RAID (RAID 6, RAID 5, RAID 0), а также по размеру полосы.
Время доступа
По сравнению со временем доступа 14 мс у одного винчестера Samsung HD321KJ, который мы использовали для тестов размера полосы, все конфигурации RAID имеют время доступа, почти в два раза больше. Можно заметить, что у полосы в 64 кбайт время доступа больше, но разница столь невелика, что её можно не принимать во внимание. С другой стороны, в тестах ввода/вывода разница будет более ощутима.
Пропускная способность интерфейса
Пропускная способность интерфейса для подобных конфигураций не является “узким местом”, так как ни один из массивов не может превысить скорость физического чтения 400 Мбайт/с. Как видим, контроллер Areca оптимизирован не только под пропускную способность, поскольку восемь винчестеров в RAID 0 должны достигать 500 Мбайт/с.
Скорость чтения
По сравнению с пропускной способностью отдельного жёсткого диска, все массивы RAID обеспечили, минимум, в семь раз большую производительность передачи данных. Вполне очевидно, что больший размер полосы даёт более высокую производительность в RAID 0, 5 или 6. Максимальная разница составила 35 Мбайт/с, что составляет более 10% – и это просто при выборе другого размера полосы!
Скорость записи
Скорость записи на RAID-массивах 5 и 6 с избыточностью существенно ниже. Увеличение размера полосы позволяет повысить скорость записи.
Производительность ввода/вывода RAID 6
Разница между размером полосы в 4 и 128 кбайт заметна, даже если нет очереди команд (Q1). Увеличение размера полосы позволяет выполнять больше операций ввода/вывода в секунду, а увеличение глубины очереди команд тоже повышает производительность ввода/вывода. При полосе маленького размера в 4 и 8 кбайт мы наблюдаем лишь удвоение или утроение производительности ввода/вывода при росте глубины очереди команд (16 команд и выше), а у полосы крупного размера множитель оказывается больше.
Производительность ввода/вывода RAID 5
В целом, производительность ввода/вывода у RAID 5 оказывается чуть лучше, чем у RAID 6. Но всё, что мы сказали по поводу RAID 6, верно и здесь: при полосе большего размера мы получаем больше операций ввода/вывода в секунду, рост производительности оказывается тоже больше.
Производительность ввода/вывода RAID 0
Производительность RAID 0 масштабируется замечательно, поскольку здесь не нужно рассчитывать информацию избыточности, на что требуются определённые ресурсы. Опять же, лучшую производительность мы получаем при размере полосы в 128 и 64 кбайт, но не во всех сценариях. В RAID 0 при минимальном размере полосы в 4 и 8 кбайт мы получаем лучшую производительность, когда в очереди нет команд. Впрочем, для серьёзных серверных нагрузок, когда одновременно нужно обрабатывать множество запросов к данным, больший размер полосы окажется эффективнее и быстрее.
Заключение
Хотя размер полосы RAID-массива представляется как фактор, которым можно пренебречь, разница между выбором минимального и максимального размера полосы может оказать на производительность более заметный эффект, чем добавление в массив ещё одного жёсткого диска! Поэтому перед созданием массива следует уделить некоторое время подбору правильного размера полосы для вашего сервера и приложений. Для настольных пользователей мы рекомендуем придерживаться размера полосы по умолчанию – 32 или 64 кбайт, поскольку разница в производительности, которую можно получить на настольных приложениях после изменения размера полосы, не стоит затраченных усилий.
Наша двуядерная тестовая система Opteron на контроллере Areca ARC-1220 оказалась замечательной платформой для кросс-тестирования конфигураций RAID 5 и RAID 6 с числом жёстких дисков от трёх до восьми. Как мы уже упоминали в предыдущих статях нашего цикла, посвящённого масштабированию RAID, предел контроллера составляет чуть ниже 500 Мбайт/с, что является достаточной пропускной способностью для большинства сценариев RAID 5 и RAID 6, но не всегда для RAID 0. Впрочем, контроллер хорошо подходит для тестов ввода/вывода, и мы обнаружили ощутимую разницу в производительности операций ввода/вывода в тестах разных размеров полосы (4-128 кбайт).
В лучшем случае производительность ввода/вывода удваивается при переходе полосы с 4 на 128 кбайт при глубокой очереди команд. Конфигурация RAID 0 на восьми жёстких дисках обеспечивает 350-800 операций ввода/вывода при 1-64 командах в очереди, но увеличивается до 250-1900 операций ввода/вывода при размере полосы 128 кбайт. Как видим, производительность более чем удваивается. В массиве RAID 5 относительное увеличение схожее, с результатом 300-500 операций ввода/вывода в секунду при полосе 4 кбайт и 220-1100 операций ввода/вывода при полосе 128 кбайт. Результат в RAID 6 чуть ниже.
Пропускная способность тоже выигрывает от увеличения размера полосы, хотя прирост производительности довольно небольшой по сравнению с ростом скорости операций ввода/вывода. В то же время, вы сможете получить 10% прирост скорости передачи данных, просто увеличив размер полосы. Недостатки большого размера полосы заключаются в возможном снижении производительности при нулевой очереди команд, в потере ёмкости на мелких файлах, а также и потенциальной потере производительности, если вы храните файлы меньше размера полосы.
Не забудьте ознакомиться с двумя другими статьями в цикле, посвящённом масштабированию RAID.
- “Тесты масштабируемости RAID. Часть I”.
Массивы RAID становятся всё популярнее, поскольку жёсткие диски являются “узким местом” современных ПК. И многие энтузиасты начинают переходить на массивы RAID, позволяющие увеличить скорость винчестеров или повышающие надёжность хранения данных за счёт избыточности. Мы решили провести тесты масштабирования массивов RAID, которые позволяют узнать, как число приводов в массиве влияет на производительность. В первой части мы рассмотрим массивы RAID 0, RAID 1 и RAID 0+1. - “Тесты масштабируемости RAID. Часть II”.
Массивы RAID становятся всё популярнее, поскольку жёсткие диски являются “узким местом” современных ПК. И многие энтузиасты начинают переходить на массивы RAID, позволяющие увеличить скорость винчестеров или повышающие надёжность хранения данных за счёт избыточности. Мы решили провести тесты масштабирования массивов RAID, которые позволяют узнать, как число приводов в массиве влияет на производительность. Во второй части мы рассмотрим массивы RAID 5 и 6.