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

Upgrade дисковой подсистемы старого сервера с шиной PCIe 1.0 — 2.0Почему темой данной статьи выбран апгрейд дисковой подсистемыПонятно, что в первую очередь нужно, как правило:

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

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

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

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

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

В статье приведён список серверных SSD PCI-E 2.0 x8, которые сильно подешевели сейчас, указаны рейд-контроллеры с поддержкой SSD-кеширования и испытан SATA III SSD на интерфейсе SATA II.

Самый очевидный способ апгрейда дисковой подсистемы — это переход с 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, например 7805Q. 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

Upgrade дисковой подсистемы старого сервера с шиной PCIe 1.0 — 2.0Из этих 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

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

Да, линейная скорость чтения однозначно зарезается у 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 работали на полной скорости и вынестина них всё требующее скорости.

Источник: habr.com

Добавить комментарий