spvd.ru
spvd.ru
Павел Селиванов. Статьи, обзоры, заметки

RAID-контроллер Adaptec 5805ZQ и SSD-кэширование

SSD накопители быстры, но обходятся существенно дороже HDD в пересчёте на мегабайт хранимой информации. Поэтому в современные системы хранения данных интегрируются технологии иерархического распределения информации между носителями разного типа и многоуровневое кэширование. С массовым появлением SSD, они тут же были включены в эту схему. Некоторые отголоски данных технологий достигли и традиционных десктопных систем, в пример можно привести платформы на базе чипсета Z68 с технологией Intel Smart Response. То же самое происходит и в сегменте серверов стандартной архитектуры. Посмотрим, что даёт SSD кэширование для серверов на примере RAID-контроллера Adaptec 5805ZQ и твёрдотельного накопителя Intel SSD 311 20ГБ.

Немного о самой платформе, послужившей для тестов.

Основой стала серверная материнская плата Supermicro X9SCM-F (на чипсете Intel C204) с процессором Intel Xeon E3-1230 и 16 ГБ памяти.

Дисковая подсистема собрана на SAS дисках Seagate Cheetah 15K.7 (ST3300657SS) в массиве RAID1.

Для управления дисковой подсистемой выбор пал на контроллер Adaptec 5805ZQ.

Помимо упомянутой технологии SSD-кэширования maxCache, данный RAID-контроллер поддерживает ещё одну интересную технологию – Zero-Maintenance Cache Protection – защиту данных в DRAM-кэше с помощью flash-памяти и блока конденсаторов. При аварийном исчезновении питания заряд конденсаторов расходуется на перемещение данных в кэше во flash-память, где данные смогут храниться (хотя такие сроки вряд ли практически востребованы) годами до следующего включения, т. е. никаких аккумуляторов и ограничения в несколько десятков часов. Аналогичная технология применяется и другими производителями, например, ей оснащены контроллеры Intel RS2VB080 и RS2VB040.

Такова тестовая платформа, осталось отметить только ещё одного героя сегодняшних тестов – твёрдотельный накопитель Intel SSD 311 объёмом 20 ГБ.

SLC технология, небольшой объём (и как следствие – невысокая цена) делают данный накопитель идеальным кандидатом на роль накопителя для SSD-кэширования начального уровня. Собственно, примерно так он и позиционируется производителем.

Но пора уже перейти собственно к тестам.

Назначим наш SSD устройством для кэширования и приступим.

Тестировать будем с помощью двух программ: IOmeter, вышедшей когда-то из недр Intel, и SQLIO, автора Gert Drapers, Microsoft.

Тест IOmeter, шаблон Database, четыре Worker’а, 20 Outstanding I/Os per target, Write IO Data Pattern – Pseudo random, размер занимаемого дискового пространства ограничивался до 1, 5, 20 и 50 гигабайт.

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

Для более детального исследования производительности воспользуемся тестом SQLIO. Тест запускается из командной строки. В принципе, существует графическая оболочка к нему, с говорящим названием SQLIO GUI, написанная Yoni Nakache, но ввиду продолжительности тестов для получения статистически достоверного результата, а это часы и даже дни, мне представляется более удобным написать командный файл.

Каждая строка файла будет представлять команду вида:

sqlio.exe -kR -s3600 -frandom -o4 -b8 -LS -Fparam1.txt > results\maxiq-1gb-read-8.txt

где (список неполный):

-k(R или W) – тест чтения или записи;
-s(время в секундах) – продолжительность отдельного теста;
-f(random, sequential) – тип запросов, случайные или последовательные;
-o(число) – количество запросов в одном потоке;
-b(число) – размер блока для ввода/вывода в килобайтах;
-L(S или P) – способ отсчёта задержек до получения отклика от дисковой системы, по системному или процессорному таймеру;
-F(имя файла) – указание на текстовый файл с параметрами для создания тестового файла.

Вывод тестовой утилиты перенаправлен в файл.

Я провёл тесты с включенным SSD-кэшированием и без него, на запись и чтение, с блоками размером 8, 16, 32 и 64 килобайта, с тестовыми файлами объёмом 1, 5, 20 и 50 ГБ. Начнём с тестов на чтение.

 

Как и в тесте IOmeter, чем меньше файл, тем больше отрыв с включенным кэшированием. Точнее, технически правильнее было бы, пожалуй, говорить не о чистом размере файла, а о соотношении его размеров и объёма SSD накопителей, назначенных для кэширования.

А теперь посмотрим на тесты записи. Не обошлось без ложки дёгтя.

 

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

Странность проявилась только в эксперименте с 20-гигабайтным файлом. Два теста из четырёх, с 32- и 64-килобайтными блоками, показали заметное падение производительности. По-видимому, это можно объяснить тем фактом, что размер "горячих" данных в данном тесте оказался почти равен (чуть больше, если быть точным) объёму SSD, контроллер обновлял таблицу данных для кэширования с каждым последующим обращением к дискам, возросла нагрузка, и в итоге на синтетическом тесте только записи это проявилось как падение производительности. В реальности операции записи практически всегда будут перемешаны с операциями чтения, так что средняя производительность с кэшированием всё же должна быть выше. И, в конце концов, зная о подобной особенности и подсчитав объём данных, можно взять SSD побольше или создать пул из нескольких накопителей для кэширования. А вот небольшой пик с блоком 16 кБ я объяснить, честно говоря, затрудняюсь, даже проведя серию дополнительных тестов. Так же или меньше, но он проявлялся почти каждый раз, так что просто списать его на ошибку измерений нельзя.

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

Отдельная благодарность Ивану Кулишу за предоставленный SSD накопитель.

Оцените материал: 
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com blogger.com liveinternet.ru livejournal.ru memori.ru google.com yandex.ru
Оставить комментарий

Отправка комментария без регистрации. Комментарий публикуется после проверки.

Имя и сайт используются только при регистрации

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

(обязательно)