Максимальная производительность SSD на LSI контроллерах
Добрый день! Уважаемые читатели и и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами рассматривали ситуацию, где у нас неправильно определялось оборудование в операционной системе и высвечивался код ошибки 10. Сегодня я хочу вам показать, как правильно настраивать на RAID контроллере LSI массивы с SSD, чтобы добиваться максимально производительности, можно назвать, это "Best practices" для связки SSD и LSI.
Постановка задачи
У меня есть не самый новый RAID контроллер LSI 9280-16i4e, это старенькая модель у которой всего 512 МБ кэша DDR 2 и чипом LSISAS2108 с интегрированным XOR процессором Power PC 800 МГц. Из этого можно понять, что он не особо предназначен для SSD, но и из него мы выжмем максимум. В моем примере я хочу создать массив из 6 SSD Dell, и добиться от него максимальной производительности.
Best practices для SSD+LSI
Данная статья будет чем-то похожа на аналогичную, про "Best practices для HP P410i", там я так же прокачивал скорость своих SSD дисков. Создавать я в своем примере буду RAID-0, так как на моем тестовом стенде мне нужна максимальная производительность и я не очень боюсь потерять эти данные, если кто не в курсе RAID-0, это объединение всех дисков в один массив, за счет чего достигается максимальная производительность, но минимальная отказоустойчивость, так как при выходе одного SSD, весь массив развалится, но сейчас очень сложно ушатать SSD диск, так как его ресурс очень большой, проверить его можно вычислив DWPD и TBW.
Давайте проведем восемь экспериментов:
- Тестирование одного SSD диска с базовыми параметрами предлагаемыми LSI контроллером
- Тестирование одного SSD диска с базовыми настройками, но измененным размером Stripe
- Тестирование одного SSD с рекомендуемыми настройками и базовым Stripe
- Тестирование одного SSD с рекомендуемыми настройками, но измененным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками и стандартным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками, но измененным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с рекомендуемыми настройками и стандартным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с рекомендуемыми настройками, но измененным размером Stripe
Создавать RAID массивы я буду через утилиту MegaRAID Storage Manager (MSM) и производить замер скорости SSD дисков в утилите CrystalDiskMark. В качестве хостовой операционной системы будет выступать Windows Server 2016.
Открываем утилиту MSM, я перехожу в раздел "Logical", тут я вижу свои 6 SSD дисков Dell, они имеют статус Unconfigured Good (Не размечены).
Первый замер скорости будет с одним SSD и всеми базовыми параметрами. Выбираю свой RAID контроллер LSI 9280-16i4e, щелкаю по нему правым кликом и из контекстного меню я выбираю пункт "Create Virtual Drive."
Выбираю режим "Advanced" и нажимаю "Next".
В RAID level выбираем RAID-0, кстати про разные виды RAID вы можете почитать мою статью. Из "Selrct unconfigured drives" вы через кнопку "Add" переносите диск в "Drive Group" и нажимаете кнопку для создания "Create Drive Group".
После того. как будет создана "Drive Group" нажимаем кнопку "Next".
Оставляем все настройки как есть, это:
- Initialization - No Initialization
- Stripe size - 256 kb
- Read Policy - Always Read Ahead
- Write policy - Write Back
- I/O policy - Direct IO
- Access policy - Read Write
- Disk cache policy - Disable
Нажимаем кнопку "Create Virtual Drive" для создания массива.
Все мой RAID-0 создан, просто нажимаем "Next".
Далее "Finish". Вы должны увидеть "The virtual drive successfully created".
В списке на вашем LSI 9280-16i4e вы можете увидеть новую группу.
Открываем оснастку управление дисками, для этого в окне "Выполнить" введите команду "diskmgmt.msc".
Создаем обычный том.
Тестирование производительности SSD на LSI контроллере
Тест №1.
Открываем CrystalDiskMark, выбираем наш диск, у меня это E:, тестировать я буду в три подхода 2-х гигабитным файлом. Нажимаем "All".
Начинается тестирование вашего SSD диска, процесс занимаем минут 5. Результаты по скорости копирования и чтения, а так же количество IOPS при разных видах, вы видите на скриншоте. При таком раскладе мой RAID контроллер LSI 9280-16i4e выдал максимально 52 000 IOPS на чтение и 36 000 IOPS на запись, среднячок.
Тест №2
Во втором тесте мы оставим наш виртуальный раздел в RAID-0, со всеми настройками кэширования, но единственное увеличим размер Stripe с 256 кб на 512 кб. Для этого в утилите MSM найдите ван виртуальный диск, щелкните по нему правой кнопкой мыши и выберите пункт "Delete Virtual Drive".
Соглашаемся и удаляем наш виртуальный диск.
После чего создаем новый, как я описывал выше, единственное в "Stripe size" выберите значение 512 кб. Размечаем том и начинаем тестирование.
В итоге слегка подросла скорость чтения и записи при последовательном обращении, хочу отметить, что размер страйпа нужно выбирать исходя из специфики данных, это будет влиять на производительность.
Тест №3
Теперь опять удаляем текущий виртуальный диск и создаем уже, так как нужно с правильными настройками под SSD диск, чтобы максимально ускорить связку контроллера LSI и ваш твердотельный носитель. Тут вся соль заключается в правильных настройках политики и кэширования.
На шаге создания "Create Virtual Drive" выберите:
- Stripe Size - 256 kb
- Read Policy - NoRead Ahead
- Write Policy - Write Trough
- I/O Policy - Direct IO
- Disk cache policy - Enable
Делаем тестирование в CrystalDiskMark. В результате мы слегка потеряли в последовательном чтении и записи, но посмотрите какой прирост производительности по операциям ввода/вывода и это с учетом того, что у меня просто древний контроллер, который с ссд дисками и не очень, то и дружен. Как видите только по чтению +8000 IOPS на 4Kib Q8t8, а на 4Kib Q32t1 +17 000 IOPS.
Тест №4
- Stripe Size - 512 kb
- Read Policy - NoRead Ahead
- Write Policy - Write Trough
- I/O Policy - Direct IO
- Disk cache policy - Enable
Как видим при размете страйпа в 512 кб, чуть выше показатели по всем пунктам, в таком виде SSD максимально производителен, но вы можете еще поиграться с размером страйпа.
Тест №5
Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками и стандартным размером Stripe. Удаляем старый раздел и опять начинаем создавать новый, в режиме "Advanced", на вкладке "Create Drive Group" выберите RAID 0 в "RAID Level" и перенесите в новую группу все ваши твердотельные диски, после чего нажмите "Create Virtual Drive".
Оставляем настройки все как есть по умолчанию и создаем массив.
- Initialization - No Initialization
- Stripe size - 256 kb
- Read Policy - Always Read Ahead
- Write policy - Write Back
- I/O policy - Direct IO
- Access policy - Read Write
- Disk cache policy - Disable
Размечаем новый том и приступаем к замерам производительности в CrystalDiskMark. Как видите за счет страйпа из шести SSD, скорость последовательного чтения и записи подросли, и тут я уже упираюсь в свой тестовый сервер, так как он больше не может через себя прокачать. 875 MB/s пока предел, давайте попробуем увеличить размер страйпа.
Тест №6
Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками, но измененным размером Stripe
- Initialization - No Initialization
- Stripe size - 512 kb
- Read Policy - Always Read Ahead
- Write policy - Write Back
- I/O policy - Direct IO
- Access policy - Read Write
- Disk cache policy - Disable
Тут мы слегка увеличили количество операций ввода/вывода при чтении, но слегка потеряли на записи.
Тест №7
Тестирование шести SSD дисков в массиве RAID-0 с рекомендуемыми настройками и стандартным размером Stripe
- Stripe Size - 256 kb
- Read Policy - NoRead Ahead
- Write Policy - Write Trough
- I/O Policy - Direct IO
- Disk cache policy - Enable
Как говорится почувствуйте разницу, просто резкое увеличение операций ввода/вывода, особенно на запись.
Тестирование скорости RAID 00
Еще мне интересно было протестировать скорость RAID 00 против RAID 0, так как LSI пишет, что он быстрее обычного страйпа, на деле это не так, у меня он оказался медленнее.
- Stripe Size - 256 kb
- Read Policy - NoRead Ahead
- Write Policy - Write Trough
- I/O Policy - Direct IO
- Disk cache policy - Enable
Надеюсь, что мой скромный опыт окажет вам неоценимую помощь в вашем проекте. Мы с вами разобрали процесс увеличения производительности SSD дисков на контроллерах LSI. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Не интересный результат учитывая что уже есть диски 3200 мб в сек
Раскажите, это людям у которых еще стоит техника с Windows Server 2003. Вы явно не представляете штат серверов по России
Большое спасибо за проделанную работу