Диалектика SATA-революции

в 15:27, , рубрики: SR-IOV, виртуализация, Железо, Накопители

Накопители в конструктиве SATA Express и M.2Решение принято: начиная с чипсета 9-й серии жесткие диски подключаются напрямую к шине PCI Express, минуя SATA-контроллер. В итоге, производительность дисковой подсистемы увеличивается в полтора-два раза с соблюдением всех требований AHCI-стандарта, т.е. без потери программной совместимости:

Программная совместимость SATA Express

Такова надводная часть айсберга. Каковы отдаленные последствия, связанные с нововведением? Обратимся к спецификации NVM Express, регламентирующей логику работы твердотельного диска на PCIe-шине.

Несколько слов о Non-Volatile Memory Host Controller Interface Specification

Конфигурирование SATA Express портаМесто интерфейса NVMe отлично иллюстрирует статья Дейла Ландсмена из SanDisk «AHCI and NVMe as Interfaces for SATA».

Из нее всем интересующимся полезно будет узнать, что «AHCI was developed at a time when the purpose of the HBA in a system was to connect the CPU/Memory subsystem with the much slower rotating media-based storage subsystem. Such an interface has some inherent inefficiency when applied to SSD devices, which behave much more like DRAM than spinning media».

Иными словами, контроллер AHCI разработан во времена господства электромеханических накопителей с целью оптимизации их взаимодействия с системой. В частности, изменения очередности команд передачи данных для минимизации механических перемещений блока магнитных головок, а также оптимальной синхронизации процессов чтения и записи с вращением диска. Очевидно, для твердотельных накопителей, применяющих иные принципы хранения информации, и работающих на больших скоростях, использование архитектуры AHCI является временным выходом, продиктованным требованиями совместимости. Полное раскрытие скоростного потенциала SSD дисков, а также поддержка современных технологий виртуализации станут возможными только при использовании контроллера, оптимизированного для данного типа накопителей.

Выше проиллюстрированы три возможных метода подключения устройства хранения данных:

  1. Legacy SATA – традиционный SATA накопитель;
  2. SATA Express / AHCI – накопитель с физическим интерфейсом SATA Express и интегрированным контроллером, совместимым со стандартом AHCI;
  3. SATA Express / NVMe – накопитель с физическим интерфейсом SATA Express и интегрированным контроллером с архитектурой NVMe.

SR-IOV как зеркало хардверной революции

Вернемся к спецификации NVMe. При ее разработке изначально учитывалась возможность поддержки Single-Root Input-Output Virtualization:
Поддержка SATA Express контроллером возможностей Single Root I/O Virtualization

Тем, кто незнаком с концепцией SR-IOV, в двух словах сообщим, что сие суть дальнейшее развитие идеи виртуализации, пришедшей на периферию. Физический девайс с помощью SR-IOV представляется как совокупность виртуальных устройств со всеми вытекающими последствиями: разграничение доступа, повышение производительности etc. В настоящее время используется виртуализация центрального процессора VT-x, виртуализация адресного пространства для bus-master устройств VT-d, но продвижение в сторону виртуализации периферийных устройств пока затруднено. Вернее так: на рынке уже полно сетевых адаптеров, которые поддерживают SR-IOV, но слишком далеки они от народа дороги они. Массового психоза, связанного с раздвоением и прочим клонированием девайсов не наблюдается. Пока нет виртуализируемых USB-контроллеров (а жаль, кстати!), как следствие – флеш-дисков и других накопителей, в т.ч. SATA. Так вот – будут.

Есть, правда, одно «но». В силу того, что NVMe-контроллер становится частью жесткого диска, а сам накопитель подключается как PCI Express устройство, поддержка SR-IOV будет зависеть не только от чипсета и платформы, но и от накопителя. Это означает дальнейшую дивергенцию любительского (офисного) и профессионального (серверного) оборудования. Таковы перспективы будущего, на наш взгляд.

Используемая литература

Автор: icbook

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js