Все ненужное - на слом!
SSD, стремительно ворвавшись в поток серверных решений, внес некоторую сумятицу в относительно плавное течение. Появился дисбаланс в цепочке между потребителем - процессором и поставщиком - SSD хранилищем, поскольку вдруг выяснилось, что промежуточные звенья - контроллеры и шины не справляются. Ну, не то - чтобы совсем не справляются, но производителям контроллеров пришлось срочно делать заплатки к микрокоду, чтобы подстроиться под особенности внутренней структуры SSD. При этом осталось внутреннее противоречие. Традиционные HDD, как бы ни быстры они были в своей области, не меняют кардинально принципы организации хранения и становятся "медленными". В то же время "быстрые" SSD имеют кардинально отличающуюся внутреннюю организацию и требуют других алгоритмов доступа. Встает вопрос: "А стоит ли мешать все в кучу? Не настало ли время отделить котлеты от мух?" HDD останутся со своими контроллерами, а SSD для особенно требовательных задач подключим к системе по своему хайвею, оптимизированному конкретно под них. Дело даже не в пропускной способности связки шина-контроллер-интерфейс-дивайс, а в первую очередь в сокращении задержек прохождения информации туда-сюда (latency). Чем меньше звеньев на пути - тем она меньше, это понятно.В самое сердце!
PCI SSD. Это решение родилось не вчера. Решения с разным успехом представлялись на рынок - (что нашлось) июль 2001 - Cenatek представила Rocket Drive, декабрь 2001 - Platypus Technology из Австралии предложила высокопроизводительный RAM SSD accelerator (я даже продал пару - стоили совершенно безумные деньги!) Из здравствующих ныне - давно и успешно специализирующаяся на PCI SSD ускорителях FusionIO, безуспешно обогнать которуюкинулись теперь многие. Идет становление рынка, каждая компания пытается нащупать ту нишу и с теми возможностями - которые есть у нее под рукой. Вплоть до связки достаточно стандартного контроллера с напаянными или пришпандоренными как мезанины одним или двумя SSD. Но до недавнего времени по-прежнему оставалась цепочка PCI шина - контроллер - собственно, флеш-накопитель. Выкидывался только интерфейс.
Как максимально близко подобраться к процессору? Убрать все с пути и цепляться непосредственно к одному из интерфейсов, исходящих из него. Что мы имеем в современном исполнении процессора? Шины памяти, (после того, как один из мостов переехал внутрь) шины PCI и шина межсоединений процессоров QuickPath Interconnect (QPI). Последняя самая быстрая, но туда не влезешь особенно - и короткая, и по-хорошему сильно загруженная своими задачами. Остаются шины памяти и PCI.
Отступление в смежную область
По шинам памяти нам предлагают общаться с SSD пара компаний - SMART Storage Systems и Diablo Technologies Inc. Их решения в формате "SSD DIMM" я коротенько описывал в . Решение небесспорное.
1. Имеется ограничение на объем - каждый модуль ограничен физически объемом, который можно напаять на маленькую плату формата DIMM. Материнская плата имеет ограниченное количество слотов, куда можно их установить.
2. Занимаемые SSD DIMM модулями слоты в системе урезают возможный объем оперативной памяти (RAM)
3. Несмотря на подключение по шине памяти, процессор общается с накопителями не как с памятью, а - как говорил один знакомый - "через назад", через драйверы, которые позволяют SSD DIMM "прикинуться" обычным HDD.
4. Локальное применение внутри конкретного сервера
Наверное, есть еще существенные недостатки, привел лишь те - что сразу приходят в голову. Не говоря уже о том, что решение проприетарное (закрытое, частное), никем особенно не поддержанное и (пока) существующее в виде прототипа. До промпроизводства все никак не дотянут.
К нашим баранам!
PCI. В марте 2011 в тесном контакте с SNIA зародился открытый проект - NVM Express. NVM - общее обозначение энергонезависимой памяти (Non-volatile memory). Организовался он общими усилиями порядка 80 компаний, в число которых входят все основные игроки рынка систем хранения, накопителей, чипов и т.д. LSI и Adaptec тоже в первых рядах - сначала немного удивился, потом все понял. Microsoft, VMWare,... (так вот они где все!... А мы удивлялись - почему SSD DIMM никто не поддерживает?..). Спецификации представлены тут.
Конструктивных реализаций предусмотрено несколько - под разные варианты применения.
- В виде PCI-e платы. Применение ограничено одним конкретным сервером.
- В формате 2,5" накопителя
-- С непосредственным подключением накопителей в формате 2,5" через разъем SFF-8639. Ориентировано применение в качестве кэш или быстрого хранилища без резервирования. Ограничено пределами одного сервера.
-- Через контроллер. Вот тут предусмотрены и RAID и кластер, ...
-- Во внешнем хранилище. Доступ через метаданные
Что мы получаем?
- экстремально низкие задержки. Это конек SSD, и этот конек используется теперь на всю катушку!
- масштабируемая пропускная способность (линейно с количеством задействованных линий PCI. Пока они не закончатся..)
- мало того, что оптимизируется очередь запросов, так они теперь могут параллельно выстраиваться и выполняться в независимых тредах в разных ядрах процессора. Размер очереди увеличен до 64к для каждого занятого в процессе ядра!
- в системах с подключением накопителей в формате 2,5" - горячая замена накопителей
- экономия на стоимости и потребляемой мощности дискового контроллера (для формата 2,5"). Для систем с PCIe контроллером этот пункт не действует.
- возможность работы с метаданными - прямой путь к распределенному и виртуальному хранилищу.
- использование уникальных идентификаторов Namespace ID позволяет получить множественный доступ к отдельному устройству. Идентификатор строится следующим образом:
Unique NVMe Controller Identifier =
2B PCI Vendor ID + 20B Serial Number + 40B Model Number + 2B Controller ID
Unique Namespace Identifier =
64B Unique NVM Subsystem Identifier + 8B IEEE Extended Unique Identifier
- NSID - ключевая технология для резервирования (Reservation) - аналог понятия "кластер". Что такое "резервирование"? Координация доступа множества хостов к ресурсу в общем доступе.
- управление питанием. SSD не надо раскручиваться для того, чтобы "проснуться". В режиме глубокого сна он может потреблять всего 5 милиВатт. А "просыпается", в отличие от HDD, практически мгновенно! Предусмотрено аж 32 уровня потребления, которые можно задавать устройству с контроллера при помощи NPSS (Number of Power States Supported). То есть, накопители живут не в черно-белом мире (работаю - сплю), а могут быть тонко настроены на требуемую именно в данный момент производительность.
Например, вот так:
Example Power State Descriptor Table | |||||||
Power State | Maximum Power (MP) | Entry Latency (ENTLAT) | Exit Latency (EXLAT) | Relative Read Throughput (RRT) | Relative Read Latency (RRL) | Relative Write Throughput (RWT) | Relative Write Latency |
0 | 25 W | 5 μs | 5 μs | 0 | 0 | 0 | 0 |
1 | 18 W | 5 μs | 7 μs | 0 | 0 | 1 | 0 |
2 | 18 W | 5 μs | 8 μs | 1 | 0 | 0 | 0 |
3 | 15 W | 20 μs | 15 μs | 2 | 0 | 2 | 0 |
4 | 10 W | 20 μs | 30 μs | 1 | 1 | 3 | 0 |
5 | 8 W | 50 μs | 50 μs | 2 | 2 | 4 | 0 |
6 | 5 W | 20 μs | 5000 μs | 4 | 3 | 5 | 1 |
- система основана в максимальной степени на стандартных технологиях, уже использующихся в промышленности.
- тесная поддержка VM
NVMe - это четыре буквы 2013 года!!! Активность бешеная, но не на поверхности. Все готовятся. Мягкие пишут драйверы и программные стеки. Жесткие адаптируют свою продукцию под новую технологию.
Samsung первый объявил о выпуске готового накопителя - XS1715 PCIe SSD.
PMC-Sierra подготовил линейку контроллеров, но пока никому не показывает:
PMC-Sierra 89HF08P08CG3 NVMEC08: 8-channel with PCIe x4/x8 Gen 3
PMC-Sierra 89HF16P04AG3 NVMEC16: 16-channel with PCIe x4 Gen 3
Supermicro уже в апреле (по родмэпу, по крайней мере) готов грузить X10DDW-i, которая имеет 8шт внутренних и 2шт внешних NVMe портов! Каждый из портов - 4-линейный.
... наверное, еще много чего много у кого есть, привел лишь примеры.
Массовое явление продукции и систем намечено на 2014 год. Как бы, мы уже тут, вооружились оптическими приборами, и чековыми книжками, на готове...
PMC-Sierra 89HF32P08AG3 NVMEC32: 32-channel with PCIe x4/x8 Gen 3
Список литературы.
NVM Express http://www.nvmexpress.org/
Рекламный ролик Интел (ни о чем) NVMe за 3 минуты http://www.youtube.com/watch?v=ACyTonhxXd8
Обзор Демартек - "видел, трогал!" http://www.demartek.com/Demartek_Comments_IDF2013_and_NVMe.html
Пресс-релиз Samsung первый NVMe SSD
http://www.samsung.com/global/business/semiconductor/news-events/press-releases/detail?cateSearchParam=&searchTextParam=&startYyyyParam=&startMmParam=&endYyyyParam=&endMmParam=&newsId=12961&page=&searchType=&rdoPeriod=A
Представление решения
https://www.snia.org/sites/default/education/tutorials/2012/fall/solid/AnilVasudeva_NVMe_NextGen_SSD%20Interface-r1-nc1.pdf
Кстати, коллега также осветил предмет, параллельный взгляд никогда не помешает погружению в тему:
http://true-system.blogspot.ru/2014/03/nvme.html
Комментариев нет:
Отправить комментарий