Upgrade дисковой подсистемы старого сервера с шиной PCIe 1.0 — 2.0

Upgrade дисковой подсистемы старого сервера с шиной PCIe 1.0 — 2.0

Почему темой данной статьи выбран апгрейд дисковой подсистемы

Понятно, что в первую очередь нужно, как правило:

  1. Увеличить оперативную память. Это настолько очевидный ход, что я даже не счёл нужным писать об этом в основной статье
  2. Поставить дополнительный процессор(ы) или заменить оба процессора на максимально производительные версии поддерживаемые сокетами серверами.

Для старых серверов, что память, процессоры, как правило, можно найти по бросовым ценам.

В определённый момент перед любым владельцев собственного сервера становится вопрос — upgrade или новый сервер.

Поскольку цена нового сервера сейчас может измеряться миллионами рублей, то многие идут по пути апгрейда.

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

Самый очевидный способ апгрейда дисковой подсистемы — это переход с HDD на SSD. Это справедливо как для ноутбуков, так и для серверов. На серверах, пожалуй, отличие только в том, что SSD можно легко скомпоновать в рейд.

Правда есть тонкие моменты связанные с тем, что портов SATA III на старом сервере может и не быть и тогда придётся заменить или поставить соответствующий контроллер.

Есть, конечно, и промежуточные способы.

Кеширование на SSD.

В целом этот способ неплохо подходит для баз данных, 1C, любого произвольного доступа. Скорость действительно убыстряется. Для огромных файлов, видеонаблюдения этот способ бесполезен.

Рейд-контроллеры LSI (IBM, DELL, CISCO, Fujtsu)

Начиная с серии 92xx у LSI есть технология CacheCade 2.0, которая позволяет использовать почти любые SATA SSD как кеш рейд-массива. Как на чтение, так и на запись. И даже создавать зеркало из кеширующих SSD.

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

Рейд-контроллеры Adaptec

На контроллерах Adaptec есть технология MaxCache, которая также позволяет использовать SSD как кеш. Нас интересуют версии контроллеров, которые заканчиваются на букву Q.

Q-контроллеры способны использовать почти любой SSD, а не только SSD поставляемые Adaptec.

  • Начиная с 5xxx у всех контроллеров есть поддержка Hybrid raid. Суть этой технологии, что производится чтение всегда с SSD, когда есть зеркало один из дисков в котором SSD.
  • 5xxxQ, например 5805ZQ. Эти контроллеры поддерживают MaxCache 1.0. Только кеширование чтения.
  • 6xxQ, например 6805Q. MaxCache 2.0. Кеширование чтения и записи.
  • 7xxQ, например 6805Q. MaxCache 3.0. Кеширование чтения и записи.
  • 8xxQ для целей апгрейда почти не имеет смысла использовать из-за высоких цен.

Статья про кеширование на SSD на Хабре (контроллеры и ОС).

Программные технологии кеширования на SSD

Я не буду освещать эти технологии. Практически в любой ОС сейчас они поддерживаются. Мне запомнилось, что при использовании btrfs, она автоматически переправляет запросы на чтение к устройству с самой короткой очередью — SSD.

SATA III SSD на интерфейсе SATA II

Поскольку не всегда есть возможность и деньги на новый контроллер, то возникает вопрос насколько хорошо SATA III SSD работают на устаревшем интерфейсе SATA II.

Проведём небольшой тест. В качестве подопытного у нас будет SATA III SSD Intel S3710 на 400ГБ.

Random Read, iops Avg read latency, mS Random Write, iops Avg write latency, mS Linear read, MB/s Linear write, MB/s
SATA II 21241 2 13580 4 282 235
SATA III 68073 0.468 61392 0.52 514 462

Команды используемые для тестирования скорости

fio --name LinRead --eta-newline=5s --filename=/dev/sda --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting   fio --name LinWrite --eta-newline=5s --filename=/dev/sda --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting  fio --name RandRead --eta-newline=5s --filename=/dev/sda --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting  fio --name RandWrite --eta-newline=5s --filename=/dev/sda --rw=randwrite --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting 

Как видно разница и по линейной скорости, IOPS, задержкам очень приличная, поэтому имеет смысл использовать только SATA III интерфейс, а если его нет, то ставить контроллер.

Справедливости ради скажу, что по другим экспериментам разница в скорости случайного чтения и записи получилась незначительная. Возможно, такая большая разница по IOPS между SATA II и SATA III могла получиться потому что у меня стоял какой-то крайне неудачный контроллер SATA II или драйвер с какими-то багами.

Однако факт такой, что нужно проверять скорость SATA II — вдруг у вас такой же тормозной контроллер. В этом случае обязателен переход на SATA III контроллер.

PCIe SSD на шине PCI-e 2.0 или 1.0

Как известно, самые быстрые SSD — это PCI-e NVMe, которые не ограничены протоколами SAS или SATA.

Однако при установке современных PCI-e SSD нужно учитывать факт, что большинство из них используют всего 4 линии PCI-e, как правило PCI-e 3.0 или 3.1.

А теперь посмотрим таблицу скоростей шины PCI-e.

Пропускная способность PCI Express, Гбайт/с
Год
выпуска
Версия
PCI Express
Кодирование Скорость
передачи
Пропускная способность на x линий
×4 ×8 ×16
2002 1.0 8b/10b 0.50 Гбайт/с 1.0 Гбайт/с 2.0 Гбайт/с 4.0 Гбайт/с
2007 2.0 8b/10b 1.0 Гбайт/с 2.0 Гбайт/с 4.0 Гбайт/с 8.0 Гбайт/с
2010 3.0 128b/130b 1.97 Гбайт/с 3.94 Гбайт/с 7.88 Гбайт/с 15.8 Гбайт/с

При установке PCI 3.0 х4 SSD в шину PCI-e 2.0 он будет работать на таком же числе линий, но на существенно меньшей скорости. Есть проблема в том, что линейные скорости современных PCI-e SSD превышают пропускную способность шины PCI-e 2.0 и тем более PCI-e 1.0.

M.2 SSD и PCI-e переходник

Есть неплохие варианты апгрейда, когда мы покупаем за 10 долларов переходник и ставим M.2 SSD в сервер, но опять таки для хороших SSD будет зарезание скоростей (в особенности на PCI-e 1.0), да и M.2 SSD не всегда отличаются готовностью для серверных нагрузок: большой износостойкостью, защитой по питанию и стабильностью скоростных характеристик из-за заполнения SLC-кеша на дешевых моделях.

Итак этот способ может подойти только для сервера с шиной PCI-e 2.0 и занятом некритичной работой.

PCI-E 2.0 x8 SSD

Самый экономически логичный апгрейд — это использование PCI-E 2.0 x8 SSD для серверов с шиной PCI-e 1.0 (пропускная способность до 2 ГБ/сек) и PCI-e 2.0 (до 4 ГБ/сек).

Подобные SSD серверного сейчас можно совершенно недорого купить на как на различных маркетплейсах, так и на интернет-аукционах, в том числе и в России.

Я составил таблицу таких морально устаревших SSD, которые прекрасно разгонят ваш старый сервак. В конец таблицы я добавил несколько SSD с интерфейсом PCI-E 3.0 x8. Вдруг вам повезёт и попадутся по разумной цене.

Название TB PBW PCI-E 4k read iops, K 4k write iops, K read, MB/s write, MB/s
Fusion-io ioDrive II DUO MLC 2.4 32.5 2.0 x8 480 490 3000 2500
SANDISK FUSION IOMEMORY SX350-1300 1.3 4 2.0 x8 225 345 2800 1300
SANDISK FUSION IOMEMORY PX600-1300 1.3 16 2.0 x8 235 375 2700 1700
SANDISK FUSION IOMEMORY SX350-1600 1.6 5.5 2.0 x8 270 375 2800 1700
SanDisk Fusion ioMemory SX300-3200 3.2 11 2.0 x8 345 385 2700 2200
SanDisk Fusion ioMemory SX350-3200 3.2 11 2.0 x8 345 385 2800 2200
SANDISK FUSION IOMEMORY PX600 2.6 32 2.0 x8 350 385 2700 2200
Huawei ES3000 V2 1,6 8,76 2.0 x8 395 270 1550 1100
Huawei ES3000 V2 3,2 17,52 2.0 x8 770 230 3100 2200
EMC XtremSF 2,2   2.0 x8 340 110 2700 1000
HGST Virident FlashMAX II 2,2 33 2.0 x8 350 103 2700 1000
HGST Virident SSD FlashMAX II 4,8 10.1 2.0 x8 269 51 2600 900
HGST Virident FlashMAX III 2,2 7.1 2.0 x8 531 59 2700 1400
Dell Micron P420M 1.4 9.2 2.0 x8 750 95 3300 630
Micron P420M 1.4 9.2 2.0 x8 750 95 3300 630
HGST SN260 1.6 25.10 3.0 x8 1200 200 6170 2200
HGST SN260 3,2 17,52 3.0 x8 1200 200 6170 2200
Intel P3608 3,2 17,5 3.0 x8 850 80 4500 2600
Kingston DCP1000 3,2 2,78 3.0 x8 1000 180 6800 6000
Oracle F320 3.2 29 3.0 x8 750 120 5500 1800
Samsung PM1725 3.2 29 3.0 x8 1000 120 6000 2000
Samsung PM1725a 3.2 29 3.0 x8 1000 180 6200 2600
Samsung PM1725b 3.2 18 3.0 x8 980 180 6200 2600

Из этих SSD особняком стоят Fusion ioMemory. Научным директором Fusion был Стив Возняк. Потом эту компанию за 1.2 миллиарда долларов купила SanDisk. В своё время они стоили от $50 000 за штуку. Сейчас же можно их купить за несколько сотен долларов в новом состоянии за диск ёмкостью от 1ТБ и выше.

Если приглядеться к таблице, то видно они имеют довольно высокое число IOPS на запись практически равное числу IOPS на чтение. Учитывая их текущую цену, на мой взгляд, на эти SSD стоит обратить внимание.

Правда у них есть несколько особенностей:

  1. Они не могут быть загрузочными
  2. Нужен драйвер для использования. Драйвера есть практически подо всё, но под последние версии Linux их придётся компилировать.
  3. Оптимальный размер сектора у них 4096 байт. (512 тоже поддерживается)
  4. Драйвер при наихудшем сценарии может потреблять довольно много RAM (при размере сектора 512 байт)
  5. Скорость работы зависит от скорости процессора, поэтому энергосберегающие технологии лучше отключать. Это и плюс и минус, так как с помощью мощного процессора устройство может работать даже быстрее, чем это указано в спецификациях
  6. Нуждается в хорошем охлаждении. Для серверов это не должно быть проблемой.
  7. Не рекомендуется для ESXi, так как ESXi предпочитает диски с сектором 512N, а это может повлечь большой расход памяти драйвером.
  8. Брендированные версии этих SSD, как правило, не поддерживаются вендорами до уровня последнего драйвера от SanDisk (март 2019)

Я провёл тесты Fusion ioMemory в сравнении с довольно современным серверным SSD Intel P3700 PCI-E 3.0 x8 (последний стоит раза в 4 дороже, чем Fusion похожей ёмкости). Заодно можно и посмотреть насколько сильно зарезается скорость из-за шины x4.

Fusion PX600 1.3TB PCI-E 2.0 x8 Intel P3700 1.6TB PCI-E 3.0 x4

Да, линейная скорость чтения однозначно зарезается у Intel P3700. По паспорту должна быть 2800 МБ/сек, а у нас 1469 МБ/с. Хотя в целом можно сказать, что при шине PCI-e 2.0 можно использовать серверные SSD PCI-E 3.0 x4, если их удастся достать по разумной цене.

Выводы

Дисковую подсистему старого сервера с шиной PCI-E 1.0 или 2.0 можно разкочегарить за счёт использования SSD, которые умеют утилизировать 8 линий PCI-E, которые дают пропускную способность до 4ГБ/сек (PCI-E 2.0) или 2ГБ/сек (PCI-E 1.0). Наиболее экономически это выгодно сделать используя морально устаревшие PCI-E 2.0 SSD.

Также просты в реализации компромиссные варианты связанные с покупкой ключа CacheCade для контроллеров LSI или замены контроллера Adaptec на Q-версию.

Ну и совершенно банальный способ — это купить (рейд)контроллер SATA III для того, чтобы SSD работали на полной скорости и вынестина них всё требующее скорости.

 
Источник

Читайте также