Pull to refresh

Первый взгляд на Fusion-IO ioDrive2

Reading time 5 min
Views 54K

Вступление


На хабре уже проскакивала информация о продукции FusionIO (раз, два), однако за 4 года положение дел немного изменилось. Для тех, кто не в курсе в вкратце расскажу, что это, и с чем его едят.

FusionIO – это компания, которая делает PCI-E SSD платы, которые отличаются выдающимися характеристиками производительности и космической ценой.
Я расскажу, зачем оно нужно и почему, где его взять, сколько оно стоит, и как оно работает.


Зачем оно нужно



Нетрудно догадаться, что нужно оно для приложений, чувствительных к скорости работы диска. В нашем случае, для размещения баз MS SQL Server 2012. До этого мы использовали iSCSI дисковую полку, с RAID10 из 14 SAS дисков. Однако под большой нагрузкой задержка на запись лог-файла для нагруженных баз доходила до 10 мс, что являлось совершенно неприемлемым.
Почему FusionIO? Потому что Стив Возняк:), а также компании, которые используют FusionIO – Facebook, Apple iCloud, Salesforce и куча других. Если серьезно, то сыграли 2 фактора – цена и скорость. За эти деньги быстрее просто нету.
Вот например заявленная производительность ioDrive2 – именно на них мы остановились:




Где его взять



Если кратко – заказать у своего поставщика серверного оборудования.

Мы начали поиски со своего поставщика серверного оборудования. Там ребята попросили день на раздумья, и в итоге пообещали привезти за 6–8 недель. Долго конечно, а что делать.
Вторым шагом я написал в отдел продаж FusionIO с простым вопросом – где купить в России? В работу включились менеджеры с кучей вопросов «а зачем оно вам», «а вот давайте мы расскажем» и т.п. Я их уверил, что знаю, что мне нужно, и спросил — кому деньги отдать? Мне огласили цену, и отправили к реселлеру, который «занимается продажами в Вашем регионе». Забегая вперед, скажу, что купили мы в итоге у своего поставщика вместе с серверами. Со мной связался Джон, предложил приехать в Москву и рассказать обо всех преимуществах и дать карту на тест. Через пару недель у нас состоялась встреча, на которой я узнал, что они сейчас занимается открытием офиса продаж в Москве, и в течение полугода вероятно таки его откроют. А это значит, что скоро можно будет купить эти платы по безналу, с нормальным суппортом и вменяемыми сроками, а также получить карты на тест.
А в это время карты ехали к нам по супермикровским каналам – сейчас кстати наибольшая часть этих карт продается через вендоров (HP, Dell, Supermicro и другие, даже Cisco в свои UCS планирует их ставить).

Сколько стоит


ioDrive 2 на 1.2 Tb стоит $14000. Процитирую материал из статьи 2008 года: На сегодняшний момент этот товар предназначен исключительно для корпоративных пользователей: 80Гб версия обойдется в $3000, незаметно вырастая до $14000 за 320Гб сверхскорости.
Речь кстати в той статье шла про первое поколение ioDrive, которые значительно менее производительные.
Через пару-тройку лет цены еще упадут, и за эти деньги можно будет купить 5-терабайтный Octal, или какой-нибудь ioDrive 3 похожего объема.

MLC или SLC



Инженеры Fusion-IO говорят, что ради надежности покупать SLC не стоит — MLC достаточно надежны. Если важная дополнительная скорость — тогда возможно стоит.

Как работает


Быстро. Очень быстро.
Вот результаты SQLIO в сравнении с нашей текущей полкой:
Мегабайты в секунду (полка, понятно, уперлась в сеть):



Иопсы:



В топик наверняка придет amarao, и скажет, что SSD на запись не сильно быстрее хорошего рейда, а также что главное – это латенси — и я с ним в чем-то согласен. Однако, тест длиною в сутки на рандомную запись в файл размером в терабайт я, пожалуй, проводить не буду – вдруг и правда там все плохо:), а вот про латенси немного расскажу.
Простой бенчмарк на рандомную запись 4Кб блоками в 12 потоков с очередью 24 на каждый поток (итого 288) – смотрим на гистограмму латенси внизу



Если мы заглянем в Resource Monitor, то там страшное



Длиннющая очередь диска, однако, за счет того, что запросы обрабатываются очень быстро, латенси не превышает 1 мс. К слову, если снизить очередь до 200, то 99% выполняются быстрее 1 мс.

Что можно настроить


Ну, во первых, размер сектора. По дефолту они идут с секторов в 512 байт, максимальный размер – 4 кб, его, кстати, рекомендует выставлять HP. Также они, да и все остальные рекомендуют выставлять размер NTFS allocation unit size в 64 кб.
Размер сектора меняется через Low Level Format с потерей всех данных.



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



Также есть возможность отформатировать девайс с меньшим полезным пространством для увеличения скорости



Я тестировать не стал, нас такая скорость более чем устраивает, а терять драгоценные гигабайты не хочется. Вот тут немного тестов есть.
Возможно есть какой-то низкоуровневый тюнинг – я только начинаю читать документацию. Если будет что-то интересное, обязательно расскажу.

Вместо заключения


Пара скриншотов интерфейса ioSphere – софт для управления и мониторинга фьюжн-девайсами.





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

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

Надеюсь, было интересно.

UPD1

Выдержка из документации по поводу износа ячеек:

The ioMemory VSL manages block retirement using pre-determined retirement thresholds. The ioSphere and the
fio-status utilities show a health indicator that starts at 100 and counts down to 0. As certain thresholds are
crossed, various actions are taken.
At the 10% healthy threshold, a one-time warning is issued. See the 'monitoring' section below for methods for
capturing this alarm event.
At 0%, the device is considered unhealthy. It enters write-reduced mode, which somewhat prolongs its lifespan so data
can be safely migrated off. In this state the ioMemory device behaves normally, except for the reduced write
performance.
After the 0% threshold, the device will soon enter read-only mode – any attempt to write to the ioMemory device causes
an error. Some filesystems may require special mount options in order to mount a read-only block device in addition
to specifying that the mount should be read-only.
For example, under Linux, ext3 requires that "-o ro,noload" is used, the «noload» option tells the filesystem to
not try and replay the journal.
Read-only mode should be considered a final opportunity to migrate data off the device, as device failure is more likely
with continued use.
Tags:
Hubs:
+64
Comments 86
Comments Comments 86

Articles