Процессорные технологии на поле программно-определяемого хранения

13 февраль, 2017 - 18:05Михаил Закусило

Ожидается, что в ближайшем будущем семейство серверных процессоров Xeon начнет оснащаться Volume Management Device — фирменной разработкой Intel, наполняющей новыми смыслами программно-определяемые системы хранения данных. Попытаемся составить представление о технологии VMD незадолго до официального ее запуска.

Volume Management Device — это устройство, которое формирует обособленный фрагмент PCIe-топологии, реализованный отдельным Host Bridge контроллером в составе процессора. Особенность его реализации в том, что платформе предоставляется возможность управлять доступом к выделенной дочерней шине, формируемой VMD. Ее обслуживание может быть скрыто от прикладного программного обеспечения. Поэтому PCIe-топология, реализованная VMD-доменом, не включается в стандартное конфигурационное пространство (MCFG MMIO) и доступна только через отдельный адресный диапазон. Стартовые процедуры UEFI могут декларировать этот диапазон посредством ACPI-интерфейса как дополнительный конфигурационный сегмент. В этом случае топология, адресуемая через Volume Management Device, доступна для сканирования стандартными методами, в том числе и в среде операционной системы с помощью уполномоченных драйверов.

VMD-домен используется для соединения платформы с пулом NVMe-накопителей, аналогично тому, как формируется RAID-масссив. В отличие от классических аппаратных RAID-контроллеров, снабженных собственными процессорами ввода-вывода, операции перемещения данных в сочетании с формированием и проверкой избыточных кодов возлагаются на специальные аппаратные средства в составе микросхемы центрального процессора. В частности, для этого может применяться узел DMA Engine с технологией Intel Quick Data.

Задействуя Volume Management Device, можно получить производные сущности — виртуальные массивы RAID (VROC). Иногда — SW VROC, подчеркивая программный способ организации дискового массива.

Volume Management Device, с точки зрения аппаратной виртуализации, может обслуживать NVMe-накопители, поддерживающие SR-IOV, но только как транзитное звено. Другими словами через VMD можно увидеть реплицированные накопителем виртуальные функции, но сам домен, предположительно, не умеет реплицировать накопители, лишенные функциональности SR-IOV.

Статус каждого накопителя в пуле, принадлежащем VMD, меняется динамически в результате горячей замены или отключения (вывода из эксплуатации). В этом смысле Volume Management Device позволяет изолировать нестабильный фрагмент PCIe-топологии от локальных ресурсов платформы. Каждый VMD-домен воспринимается платформой как отдельный контроллер, не пересекаясь во взаимодействии с другими доменами, коль скоро таковые имеются в составе одного или нескольких центральных процессоров.

Процессорные технологии на поле программно-определяемого хранения

В настоящее время приходится только догадываться, какая архитектура NVMe-устройств окажется наиболее приспособленной к доменной структуре. Можно предположить, что для Entry Level решений стоит применять двухпортовые накопители. Спецификация NVMe v1.2.1 подтверждает этот тезис, описывая их как два взаимно-независимые PCIe-устройства. Дополнительные аргументы можно обнаружить в способе реализации сброса: программно инициируемая операция RESET для каждого из портов NVMe-накопителя выполняется независимо. Это означает, что сброс по одному из портов не повлияет на функционирование его компаньона.

Несмотря на то, что двухпортовое NVMe-устройство позволяет изолировать сброс и иные принципиально важные события между портами, создавая дополнительный потенциал масштабируемости, функциональность VMD актуальна и при обслуживании массивов однопортовых накопителей, снабженных внешними коммутаторами. Более того, для разветвленных вычислительных структур, где нужно обслуживать больше двух хостов, двухпортовые устройства не решат проблему — без внешних коммутаторов все равно не обойтись. В итоге, технология Volume Management Device, наряду с двухпортовостью, становится одним из инструментов организации программно-определяемых хранилищ данных.