Почему темой данной статьи выбран апгрейд дисковой подсистемыПонятно, что в первую очередь нужно, как правило:
- Увеличить оперативную память. Это настолько очевидный ход, что я даже не счёл нужным писать об этом в основной статье
- Поставить дополнительный процессор(ы) или заменить оба процессора на максимально производительные версии поддерживаемые сокетами сервера.
Для старых серверов, что память, процессоры, как правило, можно найти по бросовым ценам.
В определённый момент перед любым владельцем собственного сервера становится вопрос — 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
Я не буду освещать эти технологии. Практически в любой ОС сейчас они поддерживаются. Мне запомнилось, что при использовании 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 интерфейс, а если его нет, то ставить контроллер.
Справедливости ради скажу, что по
Однако факт такой, что нужно проверять скорость 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
2.4
32.5
2.0 x8
480
490
3000
2500
1.3
4
2.0 x8
225
345
2800
1300
1.3
16
2.0 x8
235
375
2700
1700
1.6
5.5
2.0 x8
270
375
2800
1700
3.2
11
2.0 x8
345
385
2700
2200
3.2
11
2.0 x8
345
385
2800
2200
2.6
32
2.0 x8
350
385
2700
2200
1,6
8,76
2.0 x8
395
270
1550
1100
3,2
17,52
2.0 x8
770
230
3100
2200
2,2
2.0 x8
340
110
2700
1000
2,2
33
2.0 x8
350
103
2700
1000
4,8
10.1
2.0 x8
269
51
2600
900
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
1.4
9.2
2.0 x8
750
95
3300
630
1.6
25.10
3.0 x8
1200
200
6170
2200
3,2
17,52
3.0 x8
1200
200
6170
2200
3,2
17,5
3.0 x8
850
80
4500
2600
3,2
2,78
3.0 x8
1000
180
6800
6000
3.2
29
3.0 x8
750
120
5500
1800
3.2
29
3.0 x8
1000
120
6000
2000
3.2
29
3.0 x8
1000
180
6200
2600
3.2
18
3.0 x8
980
180
6200
2600
Из этих SSD особняком стоят Fusion ioMemory. Научным директором
Если приглядеться к таблице, то видно они имеют довольно высокое число IOPS на запись практически равное числу IOPS на чтение. Учитывая их текущую цену, на мой взгляд, на эти SSD стоит обратить внимание.
Правда у них есть несколько особенностей:
- Они не могут быть загрузочными
- Нужен драйвер для использования. Драйвера есть практически подо всё, но под последние версии Linux их придётся компилировать.
- Оптимальный размер сектора у них 4096 байт. (512 тоже поддерживается)
- Драйвер при наихудшем сценарии может потреблять довольно много RAM (при размере сектора 512 байт)
- Скорость работы зависит от скорости процессора, поэтому энергосберегающие технологии лучше отключать. Это и плюс и минус, так как с помощью мощного процессора устройство может работать даже быстрее, чем это указано в спецификациях
- Нуждается в хорошем охлаждении. Для серверов это не должно быть проблемой.
- Не рекомендуется для ESXi, так как ESXi предпочитает диски с сектором 512N, а это может повлечь большой расход памяти драйвером.
- Брендированные версии этих 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 работали на полной скорости и вынестина них всё требующее скорости.
Источник: habr.com