Содержание
Производительность дисковой подсистемы серверов Intel на базе Xeon E5-2600
Источник: http://www.team.ru/lab/raid_test.shtml | тестирование Андрей Леонтьев, текст Дмитрий Командный | 21.08.2012
Серверы Intel нового поколения на базе процессоров Intel Xeon E5-2600 и Intel Xeon E5-2400 (серверная архитектура Romley-EP/EN) обладают рядом серьезных усовершенствований, касающихся дисковой подсистемы:
- Перенос контроллера шины PCI Express из чипсета в центральный процессор.
- Поддержка нового стандарта шины PCI Express 3.0, имеющего вдвое большую пропускную способность (1GB/s в одну сторону на линию) по сравнению с PCI Express 2.0.
- Новое семейство RAID-контроллеров Intel на базе микропроцессора LSI-2208, который быстрее предыдущего LSI-2108 на 67% при последовательных операциях и на 42% при случайных операциях (по данным Intel).
- Увеличение максимального количества дисков в сервере с 12-ти до 24-х.
Представляется важным вопрос, насколько хорошо в новых серверах обеспечивается масштабирование дисковой подсистемы, то есть как изменяется ее производительность при увеличении количества дисков? Чтобы на него ответить, мы провели тестирование скорости последовательных и случайных операций для различных типов RAID-массивов при разном количестве дисков - от одного до 24-х.
Для тестов мы использовали сервер Team R2000GZ с дисковой подсистемой в составе:
- RAID-модуль Intel RMS25CB080. Этот модуль устанавливается в специальный разъем x8 PCIe 3.0 на системной плате сервера, теоретическая пропускная способность интерфейса которого составляет 8GB/s в каждую сторону (8 линий по 1GB/s) . Для подключения дисков модуль имеет 8 SAS-портов 6 Гбит/ с суммарной пропускной способностью 4.8GB/s.
- Расширитель SAS-портов Intel RES2CV360 на 36 портов, к которому мы подключили 8 портов контроллера и 24 жестких диска.
- 24 жестких диска Seagate SAS 2,5" Seagate Savvio 10K.5 300GB 6Gb/s 10000RPM 64MB Cache.
Тестирование выполнялось при помощи программы IOmeter.
Последовательное чтение и запись
Кэш-память дисков и контроллера отключена. Размер блока данных – 256KB, Strip Size – 256KB, количество запросов – 256.
Сначала мы измерили скорость последовательного чтения и записи одного диска. В идеальной дисковой подсистеме при объединении нескольких дисков в массив RAID 0 скорость записи и чтения для массива должна быть равна произведению скорости одного диска на количество дисков в массиве. Производительность такого "идеального" массива показана на диаграммах прямой "Теория".
Затем мы измерили реальную скорость последовательного чтения и записи для массивов RAID 0, RAID 1, RAID 5 и RAID 6 для различного количества дисков в массиве. Результаты приведены на диаграммах.
Массив RAID 0 хорошо масштабируется до размера 18 дисков. Далее скорость чтения не растет, поскольку достигает предельной пропускной способности контроллера при чтении – 3GB/s.
График массива RAID 5 сдвинут относительно "идеальной" прямой на 1 диск, поскольку в таком массиве емкость одного диска используется для хранения данных четности.
Массив RAID 6 сдвинут вправо на 2 диска, поскольку в нем для хранения контрольных сумм используется емкость уже двух дисков.
Массив RAID 1 читает соседние блоки "данных" параллельно с обоих дисков зеркальной пары, поэтому проигрывает RAID 0 всего 15%. Разница, видимо, связана с тем, что блоки данных в RAID 1 считываются с диска не подряд, а через один, поэтому требуется дополнительное время на перемещение головок.
При записи для RAID 0 пропорциональный рост происходит до размера массива в 22 диска. Пропускная способность контроллера при записи выше, чем при чтении, и составляет 3,5GB/s.
Массив RAID 5 хорошо масштабируется до размера в 17 дисков, после чего рост прекращается из-за роста затрат на вычисления четности.
График для RAID 5 сдвинут от идеальной прямой вправо на 1 диск, а график для RAID 6 - на 2 диска, поскольку для записи контрольных сумм используется объем уже двух дисков.
Для RAID 1 скорость записи в два раза меньше RAID 0, поскольку приходится записывать одни и те же данные дважды. При 22 дисках в массиве рост прекращается, поскольку "упирается" в предельную пропускную способность контроллера при записи - 3,5GB/s.
Сравнение массивов RAID1 и RAID 10
Массив RAID 10 представляет из себя два (или более) массива RAID 1, объединенных в RAID 0, то есть работающих параллельно. Например, мы можем взять два массива RAID 1 по два диска в каждом и объединить их в массив RAID 0, в результате мы получим массив RAID 10 из четырех дисков.
В терминологии, используемой в интерфейсе управления контроллерами Intel, RAID-массивы, являющиеся частями общего массива, называются спанами. Объединяя несколько спанов - массивов RAID 1 в массив RAID 0, мы получаем массив RAID 10. Максимальное число спанов в одном массиве – 8.
RAID 10-2 – массив из двух спанов по 2, 4, 6,8, 10 или 12 дисков
RAID 10-4 – массив из четырех спанов по 2, 4 или 6 дисков
RAID 10-6 – массив из шести спанов по 2 или 4 диска
RAID 10-8 – массив из восьми спанов по 2 диска
Для всех типов массивов RAID 10 при одинаковом количестве дисков производительность одинакова, потому что все эти массивы тоже одинаковы и эквивалентны массиву RAID 1. Например, массив RAID 1 из 24 дисков – это массив RAID 10, в котором двенадцать зеркальных пар дисков (спанов) работают параллельно. Поэтому вместо RAID 10 достаточно просто создать RAID 1 из нужного четного количества дисков.
Сравнение массивов RAID 5 и RAID 50
Массив RAID 50 получается из нескольких массивов RAID 5 (спанов), объединенных в RAID 0. В отличие от RAID 5 с одним избыточным диском для четности, RAID 50 имеет диски с четностью для каждого спана. Поэтому RAID 50 более надежен, чем RAID 5.
RAID 50-2 – массив из двух спанов по 3, 5, 7, 9, 10, 11 и 12 дисков
RAID 50-4 – массив из четырех спанов по 3, 4, 5 и 6 дисков
RAID 50-8 – массив из восьми спанов по 3 диска
Массивы RAID 50 с различной организацией демонстрируют одинаковую производительность при одинаковом количестве дисков с данными. Например, RAID 5 из 17 дисков, RAID 50-2 из 18 дисков, RAID 50-4 из 20 дисков и RAID 50-8 из 24 дисков имеют одинаковое количество дисков с данными – 16 и показывают одинаковую скорость чтения – 2575 MB/s.
Здесь картина немного другая. При увеличении количества спанов возрастает объем операций, необходимых для вычисления и записи данных четности, поэтому массивы с большим количеством спанов немного проигрывают по скорости.
Сравнение массивов RAID 6 и RAID 60
Массив RAID 60 получается из нескольких массивов RAID 6 (спанов), объединенных в RAID 0. В отличие от RAID 6 с двумя избыточными дисками, RAID 60 имеет по два таких диска для каждого спана. Поэтому RAID 60 более надежен, чем RAID 6.
RAID 60-2 – массив из двух спанов по 4, 6, 8, 10, 11 и 12 дисков
RAID 60-4 – массив из четырех спанов по 4, 5 и 6 дисков
RAID 60-6 – массив из шести спанов по 4 диска
Все массивы демонстрируют одинаковую производительность при одинаковом числе дисков данных. Например, RAID 6 из 14 дисков, RAID 60-2 из 16 дисков, RAID 60-4 из 20 дисков и RAID 60-6 из 24 дисков читают данные с 12 дисков и выдают скорость последовательного чтения 2GB/s.
При записи для массивов с большим количеством спанов возрастает удельная доля операций вычисления и записи контрольных сумм, поэтому массивы с большим количеством спанов проигрывают по скорости при равном количестве дисков с данными.
Случайное чтение и запись
Кэш-память дисков и контроллера отключена. Размер блока данных – 4KB, Strip Size – 256KB, количество запросов – 256.
Измерения скорости случайного чтения и записи мы выполнили в IOPS – количестве операций ввода-вывода в секунду, поскольку этот показатель (в отличие от MB/s) не зависит от размера блока данных.
Сначала мы измерили скорость одного диска. В теории при объединении нескольких дисков в RAID 0 скорость записи и чтения должна быть равна произведению скорости одного диска на количество дисков в массиве. Производительность такого "идеального" массива показана на диаграммах прямой "Теория".
Затем мы измерили реальную скорость случайного чтения и записи для массивов RAID 0, RAID 1, RAID 5 и RAID 6 для различного количества дисков в массиве.
Массивы RAID 0, RAID 5 и RAID 6 показывают совершенно одинаковые результаты, поскольку имеют одинаковое количество задействованных дисков – данные четности распределены по всем дискам массивов RAID 5 и RAID 6 равномерно. RAID 1 немного быстрее – на наш взгляд потому, что при любой операции чтения контроллер имеет выбор между двумя дисками зеркала и может читать с того диска, головки которого расположены ближе к нужному сектору.
При записи лучшую производительность демонстрирует RAID 0. RAID 1 примерно вдвое медленнее, поскольку в нем "полезных" дисков в два раза меньше. RAID 5 и RAID 6 показывают одинаковую скорость, которая равна скорости одного диска. Это объясняется тем, что при записи короткого блока данных на один диск контроллер должен прочитать соседние страйпы со всех дисков массива, чтобы сформировать, а затем записать, блок четности.
Сравнение массивов RAID1 и RAID 10
Как мы уже показали, для тестируемого контроллера нет различий между массивами RAID 1 и RAID 10. Поэтому просто приведем результаты тестов.
RAID 10-2 – массив из двух спанов по 2, 4, 6,8, 10 или 12 дисков
RAID 10-4 – массив из четырех спанов по 2, 4 или 6 дисков
RAID 10-6 – массив из шести спанов по 2 или 4 диска
RAID 10-8 – массив из восьми спанов по 2 диска
Сравнение массивов RAID 5 и RAID 50
При случайном чтении массивы RAID 5 и RAID 50 теоретически должны показывать одинаковую скорость, поскольку данные четности распределены равномерно по всем дискам массива и количество дисков, участвующих в операциях чтения, не зависит от количества спанов. Результаты измерений подтверждают это, но за единственным исключением - массив RAID 50 из 16 дисков (четыре спана по 4 диска) показывает такое же быстродействие, как RAID 50 из 12 дисков (четыре спана по 3 диска). Это отклонение связано, по-видимому, с "неудачным" сочетанием размера блока, параметра Strip Size, количеством спанов и числом дисков в спане.
RAID 50-2 – массив из двух спанов по 3, 5, 7, 9, 10, 11 и 12 дисков
RAID 50-4 – массив из четырех спанов по 3, 4, 5 и 6 дисков
RAID 50-8 – массив из восьми спанов по 3 диска
При случайной записи увеличение числа спанов дает пропорциональный рост скорости, поскольку операции записи в разных спанах могут выполняться параллельно. Массив RAID 50 из восьми спанов работает почти так же быстро, как и RAID 0 из восьми дисков.
Сравнение массивов RAID 6 и RAID 60
Как и массивы RAID 5 и RAID 50, массивы RAID 6 и RAID 60 при одинаковом общем количестве дисков на операциях случайного чтения должны показывать одинаковую производительность. Однако и здесь мы получили один результат, выбивающийся из общего ряда – RAID 60 из четырех спанов по 4 диска.
RAID 60-2 – массив из двух спанов по 4, 6, 8, 10, 11 и 12 дисков
RAID 60-4 – массив из четырех спанов по 4, 5 и 6 дисков
RAID 60-6 – массив из шести спанов по 4 диска
На операциях случайной записи при удвоении числа спанов производительность тоже примерно удваивается за исключением массива RAID 60 из 8 спанов (24 диска). В этом массиве уже слишком велики затраты на вычисление и запись контрольных сумм, поэтому скорость увеличивается только в полтора раза.
Выводы
Основываясь на результатах выполненных тестов можно утверждать, что дисковая система сервера нормально масштабируется на операциях последовательного чтения и записи на всех типах RAID-массивов до 18 дисков в массиве. При большем количестве дисков рост производительности замедляется из-за ограничений пропускной способности RAID-контроллера.
На операциях случайного чтения и записи дисковая подсистема хорошо масштабируется вплоть до максимально возможного количества дисков (24).
Отметим также, что тестируемый RAID-контроллер продемонстрировал прекрасные абсолютные показатели производительности.
Обсуждение