В наши руки попал экземпляр контроллера компании Broadcom 946N-8i, который имеет 2Gb кеша и шину PCI-E 3.0. Данный RAID контроллер является полным аналогом 9460-8i, разработанный для компании NEC:
Для анализа производительности мы взяли такую следующую конфигурацию тестового стенда Asus Maximus VIII Ranger, процессор Intel Core-i5 6500, 32Gb DDR4 и два диска по MSI M390 512Gb.
Судя по спецификации диски поддерживают максимальную скорость чтения 3300MB/s, а записи – 3000MB/s:
Чтобы подключить данные диски к контроллеру нам потребовалось еще 2 адаптера NVME M-key M.2 - U.2 SFF- 8639:
К сожалению, обычный кабель с разъемами SFF-8643 на SFF- 8639 не подходит! Компания Broadcom представляет специальный сдвоенный кабель, предназначенный для подключения NVMe дисков. Сдвоенность связана с тем, что там режим NVMe включается на паре разъемов, и возможно это сделано для того, чтобы не угробить диски, поскольку производитель не рекомендует диски NVMe подключать к контроллеру в режиме SAS.
Официально существует два оригинальных кабеля для прямого подключения дисков 50 см и 1 м:
05-50065-00 |
Cable, U.2 Enabler, HD to SFF8639 0.5M |
x8 SFF-8643 |
2 x4 SFF-8639 Direct Drive Connect |
05-50064-00 |
Cable, U.2 Enabler, HD to SFF8639 1M |
x8 SFF-8643 |
2 x4 SFF-8639 Direct Drive Connect |
Но в реальности найти сейчас их в наличии не представляет возможности, поэтому нам пришлось подобрать аналогичный кабель длиной 80 см.
Далее требуются провести настройки контроллера, но оказалось, что Legacy Bios отключен компанией Broadcom, теперь можно либо использовать технологию HII, либо утилиту storcli.
Мы решили воспользоваться утилитой, которая имеет максимальные возможности для тонкой настройки. Существуют версии под основные ОС, мы использовали под Windows storcli64.exe. Чтобы этот контроллер увидел NVMe диски для начала требуется выбрать профиль для NVMe:
storcli64 /c0 set profile profileid=11
, где 0 – порядковый номер контроллера, 11 – порядковый номер профиля NVMe, после выполнения этой команды требуется перезапустить систему.
Следующая команда показывает все диски, подключенные к контроллеру:
storcli64 /c0 /eall /sall show
, где мы увидели два диска с идентификаторами 16:4 и 16:6
Данные идентификаторы нужны для создания RAID 1:
storcli64 /c0 add vd r1 Size=all name=RAID1 drives=16:4,6
После создания RAID массива нужно убедиться, что активировано использование кеша:
storcli64 /c0 /vall show all
На скрине видно, что создан массив RAID1 с идентификатором 239. Теперь проанализируем колонку Cache = RWTD, где:
R = Read Ahead Always – означает активацию кеша на чтение, активируется автоматически, даже, если нет батареи, так как кеш на чтение не влияет на целостность данных.
Если по каким-то причинам кеш на чтение автоматически не активировался, его можно включить следующей командой:
storcli64 /c0/v239 set rdcache=RA
WT = WriteThrough – означает, что кеш на запись отключен.
Тут существует 2 варианта в зависимости подключена ли батарея к контроллеру:
1) Если батарея в комплекте вводим:
storcli64 /c0/v239 set wrcache=WB
2) Если батареи нет, то на свой страх (есть риск потери данных при внезапном отключении питания сервера) вводим:
storcli64 /c0/v239 set wrcache=AWB
Теперь приступаем к самому интересному, мы будем тестировать производительность массива и получили следующие результаты:
Данный результат показывает скорость чтения и записи примерно одинаковые на уровне 7000MB/s, что превышает скорость NVMe дисков более чем в два раза! Возможно было бы больше, но упирается в ограничения шины PCI-E 3.0 x8. Такую производительность мы получили благодаря использования кеширования на уровне контроллера.
После установки уже на сервере клиента данный контроллер стал выдавать скорость в два раза меньше, примерно 3500 MB/s
В чем же дело? После анализа ситуации мы стали проверять конфигурацию сервера и оказалось, что контроллер был установлен в слоте PCI-E x16, который поддерживал только x4, а для контроллера нужен минимум x8 для максимальной производительности.
После установки в полноценный слот мы получили такие же результаты, как и на тестовом стенде.
Выделим основные плюсы и минусы:
Плюсы:
-
кеш дает максимальную пропускную способность для шины PCI-E 3.0
Минусы:
-
нужен специальный кабель для подключения NVMe дисков
-
для дисков M.2 также требуется адаптер на U.2
В заключении можно сказать, что использование данного контроллера вполне рационально, если сервер ограничен шиной PCI-E 3.0, а для PCI-E 4.0 существуют более производительные контроллеры 9560-8i, но это уже другая история…
Автор: ServerBay