Проблема DDA Hyper-V 2016: сбой загрузки виртуальной машины при подключении диска к противоположному узлу NUMA
Краткое описание: хост - Windows Server 2016 Datacenter Build 14393 (UEFI) с ролью Hyper-V. SR-IOV и Intel VT включены. 4 хоста Intel® Optane ™ SSD 900P, 280 ГБ, PCIe NVMe 3.0 подключены к хосту. Чтобы проверить поддержку DDA, я выполняю скрипт PowerShell, который возвращает OK, DDA поддерживается. Виртуальная машина Ubuntu Server 16.04 (gen 2) развернута. Все необходимые пакеты были установлены на ВМ. Затем я подключил эти 4x Optane SSD к виртуальной машине Ubuntu Server через DDA. После этого дополнительные настройки -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 4Gb
были применены. Итак, виртуальная машина имеет сквозное подключение 4-х накопителей NVMe. Перезагрузка / выключение / включение питания виртуальной машины Ubuntu работает без проблем. Также нет проблем со связью между дисками и виртуальной машиной.
Проблема: при перезагрузке хоста Windows Server происходит сбой загрузки виртуальной машины Ubuntu Server.
Из того, что я обнаружил, я предполагаю, что проблема заключается в конфигурации узла NUMA. Сбой загрузки виртуальной машины из-за того, что твердотельные накопители NVMe подключены к другой NUMA. Для справки: 2 накопителя SSD подключены к узлу NUMA # 0, а еще два накопителя SSD подключены к узлу NUMA №1.
Таким образом, загрузка виртуальной машины выполняется на узле NUMA # 1 и завершается неудачно. ВМ загружается только тогда, когда твердотельные накопители NVMe, работающие на NUMA № 0, отключены.