Часто задаваемые вопросы о удаленных дисках NVMe

В этой статье рассматриваются некоторые распространенные вопросы о поддержке удаленных дисков NVM Express (NVMe) на виртуальных машинах, созданных в Azure.

Каковы предварительные требования для включения удаленного интерфейса NVMe на виртуальной машине?

Определяется DiskControllerTypes во время настройки виртуальной машины и зависит от выбранного размера виртуальной машины, который может быть либо NVMe, либо малым компьютерным системным интерфейсом (SCSI). Если значение не указано DiskControllerTypes , платформа автоматически выбирает контроллер по умолчанию на основе конфигурации размера виртуальной машины.

Чтобы включить удаленный интерфейс NVMe на виртуальной машине, необходимо выполнить следующие предварительные требования:

  • Большинство современных размеров виртуальных машин Azure поддерживают тип контроллера диска NVMe для удаленного хранилища. Поддержка начинается с размеров виртуальных машин Ebsv5 и более поздних поколений (v6, v7).

  • Выберите образ операционной системы, помеченный поддержкой NVMe. Для размеров виртуальных машин, поддерживающих интерфейс NVMe, Azure автоматически настраивает тип контроллера диска NVMe во время создания виртуальной машины. Параметр NVMe на вкладке "Дополнительно" выбран по умолчанию и не может быть изменен.

    Снимок экрана: запрос на выбор типа контроллера диска.

  • Выберите опцию использования NVMe, указав тип контроллера диска NVMe в портале Azure, либо в шаблоне Azure Resource Manager, Azure CLI или Azure PowerShell. Для получения пошаговых инструкций обратитесь к общему разделу частых вопросов о NVMe.

Как изменить размер виртуальной машины на основе SCSI на удаленную виртуальную машину с поддержкой NVMe другого размера?

Для этого можно использовать следующий процесс:

  • Измените размер виртуальной машины на основе SCSI, созданной с помощью отключаемого образа, на виртуальную машину с поддержкой NVMe другого размера без повторного создания конфигураций виртуальных машин и без добавления тегов к изображению.
  • Измените размер виртуальной машины на основе SCSI на виртуальную машину с поддержкой NVMe другого размера без повторного создания конфигураций виртуальных машин.

Исходная виртуальная машина может быть:

  • Непомеченный образ ОС, поддерживающий удаленный NVMe.
  • Образ ОС с тегом NVMe.

Чтобы изменить размер виртуальной машины, выполните следующую команду, чтобы запустить скрипт Azure PowerShell, который задает целевое discontrollertype значение виртуальной машины как NVMe:

azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]

Дополнительные сведения см. в статье SCSI по NVMe для виртуальных машин Linux

Как проверить, помечен ли изображение как NVMe?

Чтобы проверить, помечен ли образ как NVMe, используйте следующую команду:

az vm image show --urn URN_OF_IMAGE

Как создать определение образа, поддерживающее NVMe для удаленных дисков?

Чтобы создать определение образа, поддерживающее NVMe для удаленных дисков, выполните следующие действия.

  1. Отправьте виртуальный жесткий диск с поддержкой NVMe (VHD) в учетную запись хранения. AzCopy — это быстрый способ, но вы также можете использовать портал для отправки.

    azcopy copy <local path to your VHD> <container in your storage account>
    
  2. Создайте коллекцию образов с помощью Azure PowerShell, портала или Azure CLI.

  3. Создайте определение образа Обязательно включите --feature DiskControllerTypes=SCSI,NVMe.

    Ниже приведен пример Azure CLI:

    az sig image-definition create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --publisher <publisher> --offer <offerName> --sku <skuName> --os-type <osType> --os-state <osState> --feature DiskControllerTypes=SCSI,NVMe
    
  4. Создайте версию образа с VHD (виртуальным жестким диском), поддерживающим NVMe.

    Ниже приведен пример Azure CLI:

    az sig image-version create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --gallery-image-version <version> --target-regions <region1> <region2> --replica-count <replicaCount> --os-vhd-uri <NVMe-supported vhd uri> --os-vhd-storage-account <storageAccount>
    

Какие параметры хранилища дисков Azure совместимы с удаленными дисками NVMe?

Размеры NVMe можно объединить с Azure Standard HDD, Standard SSD, Premium SSD v1, Premium SSD v2 и Ultra Disk Storage. Дополнительные сведения о предложениях дисков Azure см. в разделе "Типы управляемых дисков Azure".

Поддерживает ли Azure динамическое изменение размера на дисках с размерами виртуальных машин NVMe?

Динамическое изменение размера NVMe поддерживается на дисках SSD уровня "Премиум" версии 1, дисках SSD уровня "Премиум" версии 2, дисках SSD стандарта, и дисках HDD стандарта. Вы также можете добавлять удаленные диски NVMe без перезапуска виртуальной машины.

Как определить удаленные диски NVMe на виртуальной машине Linux?

  1. Получите программный пакет nvme-cli:

    sudo apt install nvme-cli
    
  2. Выполните команду NVMe list , чтобы получить сведения о диске NVMe:

    sudo nvme list
    

    Снимок экрана: инструкции по идентификации дисков NVMe на виртуальной машине Linux.

    Снимок экрана: инструкции по выбору идентификатора пространства имен на портале Linux.

    Вот как данные отображаются в ответ на команды Azure PowerShell:

    Снимок экрана: пример ответа на команду Azure PowerShell.

Как определить диски NVMe на виртуальной машине Windows?

Откройте Azure PowerShell и выполните следующую команду:

wmic diskdrive get model,scsilogicalunit

Снимок экрана: пример команды PowerShell для использования NVMe в Windows.

Подключенные диски ASAP представлены в гостевой операционной системе со строкой модели Virtual_Disk NVMe Premium. Значение идентификатора LUN, видимого на портале, логической единицы SCSI увеличивается на 1.

Ниже приведен моментальный снимок того, как диски NVMe отображаются на виртуальной машине Windows с поддержкой NVMe:

Снимок экрана: пример команды Azure PowerShell для идентификации диска NVMe на виртуальной машине Windows.

Следующий снимок состояния демонстрирует выходные данные гостевой системы для дисков с данными, подключенных к LUN 0 и LUN 4 (CRP). Идентификатор LUN эквивалентен идентификатору пространства имен.

Снимок экрана: пример отображения дисков NVMe на виртуальной машине Windows с поддержкой NVMe.

Поддерживаются ли общие диски на удаленных дисках с виртуальными машинами с поддержкой NVMe?

Функция общего диска поддерживается для дисков "Премиум SSD", "Премиум SSD версии 2" и "Ультра Disk Storage". Общие диски, использующие NVMe, не поддерживаются в ОС Windows Server 2019.

Можно ли отсоединить диск данных от виртуальной машины на основе SCSI, а затем подключиться к виртуальной машине на основе NVMe?

Да. Диск данных можно отсоединить от виртуальной машины на основе SCSI и подключиться к виртуальной машине на основе NVMe. После подключения тип диска автоматически преобразуется в NVMe.

Будут ли все диски моей виртуальной машины подключены к одному контроллеру NVMe или распределяются по нескольким контроллерам?

Старые типы виртуальных машин Azure (например, Ebsv6) присоединяют все диски к одному контроллеру NVMe. Выберите более новые размеры виртуальных машин (V7 и более поздних версий, работающих на оборудовании Intel и ARM), автоматически распределяйте диски между несколькими контроллерами и отдельными кэшируемыми дисками (включая диск ОС) и дисками данных без кэширования для повышения производительности и надежности.

Как диски назначены контроллерам и что я должен знать об управлении дисками?

Загрузочные и кэшированные диски данных назначаются кэшированному контроллеру, а некэшируемые диски данных переходят к некэшированному контроллеру. Назначение контроллера выполняется автоматически на основе политики кэширования дисков, выбранной в параметрах виртуальной машины.

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

Как определить диски и управлять ими на контроллерах в Linux и Windows?

Замечание

Использование идентификаторов UUID (Linux) или GUID (Windows) гарантирует правильность идентификации и повторного подключения дисков после событий виртуальной машины, обновлений или изменений контроллера. Если имена устройств изменяются после перезагрузки или операций с дисками, следует использовать идентификаторы UUID/GUID или постоянное именование для автоматизации и скриптов.

  • Чтобы просмотреть контроллеры NVMe и подключенные диски, выполните следующую команду:
lsblk -o NAME,MODEL,SIZE,TYPE,MOUNTPOINT

В этом списке перечислены все блоковые устройства, показывающие, какие диски (например, nvme0n1, nvme1n1) подключены к контроллерам. Кэшированные диски (включая диск ОС) обычно отображаются под nvme0, в то время как некэшированные диски данных отображаются под nvme1.

  • Для получения подробных сведений О NVMe выполните следующую команду:
nvme list

При этом отображаются все устройства NVMe, их идентификаторы контроллера, пространства имен и серийные номера.

  • Для постоянной идентификации диска используйте:
blkid

В этом примере показан идентификатор UUID для каждого диска, который можно использовать для надежного повторного подключения после событий виртуальной машины.