Тестовая лаборатория
0,0
рейтинг
14 июля 2014 в 19:27

Администрирование → Диалектика SATA-революции

Накопители в конструктиве 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 будет зависеть не только от чипсета и платформы, но и от накопителя. Это означает дальнейшую дивергенцию любительского (офисного) и профессионального (серверного) оборудования. Таковы перспективы будущего, на наш взгляд.

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


IC Book Labs @icbook
карма
21,0
рейтинг 0,0
Тестовая лаборатория
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (19)

  • +4
    SSD devices, which behave much more like DRAM than spinning media».
    В этом плане дальше всех пошел ИБМ — сначала они натыкали в свои серверы безумное количество слотов для памяти, которые никто никогда не забивал полностью, а потом придумали ставить туда ССД в форм-факторе DIMM.
    • 0
      Отвечал, но не попал ))
    • 0
      Видел прототип SSD диска от SanDisk для MacBook — они тоже имеют DIMM формат.
    • 0
      там они получают от слота только питание и схожи по размерам. на этом все заканчивается
      • 0
        А куда они передают данные?
        • 0
          По sas/sata
          • 0
            Речь про решение IBM? Там никакого sas/sata нет.
  • +1
    Это как экстенсивное сельское хозяйство: сеем больше буряка, чтобы удовлетворить аппетиты вредителей, не увеличивая производство сахара:)
    A как, кстати, решается вопрос с виртуализацией SSD@DIMM?
    • 0
      Честно говоря — не вникал, но идея прикольная на мой взгляд.
      • +2
        Вон ASUS в DIMM-сокет POST-карты устанавливает. Тоже забавно! Вопрос в том, что мешает традиционным сексом заниматься? :)
        • +5
          Пропускная способность диммов — огромная, задержка низкая, фактически напрямую в процессор идет, слоты на плате все равно есть и часто пустуют — почему не задействовать? :)
          • 0
            Слабая конфигурируемость DIMM-сокетов — существенное препятствие. Все ж таки, наличие конфигурационного пространства PCI — важный фактор развития архитектуры. Разъемы для памяти в этом смысле воспринимаются, как слоты Legacy ISA :)

            UPD. Про SPD мы все знаем ))
  • +4
    Это что же, теперь SSD будут видны в lspci?
    • 0
      Именно так! Очень хороший вопрос, кстати.
    • 0
      Утилита LSPCI и подобные действительно будут видеть блок конфигурационных регистров, физически находящийся в составе жесткого диска. Более того, все свойства хост-контроллера (например, передача прерываний сообщениями Message Signaled Interrupt MSI и MSI-X) теперь являются свойствами жесткого диска.

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

      Вместе с тем, если в составе диска находится «старый» контроллер AHCI, то для программиста, пишущего драйвер, практически ничего не меняется — в конфигурационном пространстве PCI мы увидим тот же контроллер AHCI, его перемещение из чипсета в диск с точки зрения программной модели неочевидно. Хотя, при внимательном взгляде все можно рассмотреть, особенно если у этого AHCI-контроллера Vendor ID будет Seagate (например).
  • 0
    Да ладно вам, SR-IOV копейки стоит. Я недавно компьютер обновлял, у меня на мамке одна из сетевух — ixgb, а там уже SR-IOV на 8 устройств есть.
    • 0
      Уместно вспомнить, что смысл SR-IOV не в том, чтобы обеспечить виртуализацию устройства в принципе (это можно сделать и программно, средствами центрального процессора), а в том, чтобы обеспечить аппаратную поддержку этой операции и минимизировать потери производительности, связанные с тем, что гостевые ОС работают с виртуальными контроллерами, а не с физическим контроллером.

      Принципы проектирования периферийных контроллеров с аппаратной поддержкой технологии SR-IOV на примере USB 3.0 XHCI рассмотрены в статье: komposter.com.ua/content/virtualizaciya-usb-vse-vklyucheno-2013-01-23

      Стоимость устройств с SR-IOV, как и во многих других случаях, часто определяется не сложностью программно-аппаратных решений, а маркетинговыми факторами. Когда сетевой адаптер в составе материнской платы его цена может «раствориться» в цене платы, и покупая левый ботинок, мы получаем правый бесплатно…
      • +2
        Ну так SR-IOV, в контексте интела, по-крайней мере, это стандарт де-факто для серверных плат. То есть все они поддерживают (ixgb, ixgbe). Остальные серверные вендоры тоже, вроде бы, ушами не хлопают.

        А в контексте «оффлоада» на железо — основная проблема в том, что этот оффлоад мешает нормальной виртуализации. Как только кто-то сделал PCI-passthrough, прощай software. Получается не виртуализация (как её привыкли сейчас считать), а всего лишь партиционирование ресурсов. То есть нарезать сервер на пять гостей — да, отлично. Запустить пять виртуалок — нет, ни в коем случае, потому что от виртуализации ждут куда более богатой функциональности.
  • +1
    Да, основное различие в виртуализации HBA (любого вида) и media в том, что media данные хранит. То есть от смены нарезки сетевухи на несколько виртуальных ничего существенно не меняется, а если поменять «нарезку» жёсткого диска, то будет бяка.

    Кроме того, все SR-IOV железки имеют фатальную проблему — они не доступны management-хосту. Другими словами: никакой live migration, никаких снапшотов, никаких cow-thin-provisioning и т.д.

    Порезали железку на несколько, выдали кусочки виртуалкам, виртуалки в них вцепились — и всё, больше их без выключения/пересоздания никуда не перенести.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.