Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure виртуальные машины поддерживают два типа интерфейсов хранилища: небольшой системный интерфейс (SCSI) и NVM Express (NVMe). Интерфейс SCSI — это устаревший стандарт, обеспечивающий физическое подключение и передачу данных между компьютерами и периферийными устройствами. NVMe аналогичен SCSI, что обеспечивает подключение и передачу данных, но NVMe — это более быстрый и эффективный интерфейс для передачи данных между серверами и системами хранения.
В этой статье вы узнаете, как преобразовать Azure виртуальные машины под управлением Linux или Windows с контроллера диска SCSI в NVMe с помощью Azure Boost и скрипта преобразования NVMe Azure.
Azure продолжает поддерживать интерфейс SCSI в версиях предложений виртуальных машин, предоставляющих хранилище SCSI. Однако в дальнейшем не все новые серии виртуальных машин будут поддерживать хранилище SCSI.
Что изменилось для виртуальной машины?
Изменение интерфейса узла с SCSI на NVMe не изменяет удаленное хранилище (диск ОС или диски данных), но изменяет способ использования дисков операционной системы.
Предупреждение
Нумерирование устройств NVMe (/dev/nvme0n1, /dev/nvme0n2) не является стабильным во время перезагрузки. Всегда используйте:
-
/dev/disk/azure/*символьные ссылки - UUID дисков в
/etc/fstab
| Диск | Виртуальная машина с поддержкой SCSI | Виртуальная машина NVMe с временным диском SCSI (например, Ebds_v5) | Виртуальная машина NVMe с временным диском NVMe |
|---|---|---|---|
| Диск операционной системы | /dev/sda |
/dev/nvme0n1 |
/dev/nvme0n1 |
| Временный диск | /dev/sdb |
/dev/sda |
/dev/nvme1n1 |
| Первый диск данных | /dev/sdc |
/dev/nvme0n2 |
/dev/nvme0n2 |
Подсказка
Некоторые типы виртуальных машин имеют несколько временных дисков (например, E64ds_v6).
Преобразование Azure виртуальной машины из SCSI в NVMe с помощью Azure Boost поможет вам воспользоваться всеми преимуществами этих улучшений производительности и поддерживать конкурентное преимущество в облачной вычислительной среде.
Перенос виртуальной машины Linux из SCSI в NVMe
Чтобы выполнить миграцию из SCSI в NVMe, необходимо выполнить следующие высокоуровневые действия.
- Проверьте, поддерживает ли серия виртуальных машин NVMe.
- Проверьте готовность вашей операционной системы к работе с NVMe.
- Преобразуйте виртуальную машину в NVMe.
- Проверьте операционную систему.
1. Проверьте, поддерживает ли серия виртуальных машин NVMe
Таблица доступности Azure Boost перечисляет поддерживаемые виртуальные машины для дисков, подключенных через NVMe.
2. Проверьте готовность операционной системы к работе с NVMe
Операционная система должна поддерживать устройства NVMe. Например, необходимо подготовить драйверы устройств и initrdвременную файловую систему, используемую во время запуска. Кроме того, необходимо проверить точки подключения файловых систем, так как они проверяют, используется ли имя устройства SCSI (/dev/sdX).
Скрипт миграции может автоматически выполнять эти проверки готовности при использовании -FixOperatingSystemSettings.
2.1 Проверьте тип контроллера виртуальной машины
Проверка типа контроллера с помощью PowerShell
PS C:\Users\user1> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users\user1> $vm.StorageProfile.DiskControllerType
SCSI
PS C:\Users\user1>
Проверьте тип контроллера с помощью Azure CLI
$ az vm show --name [your-vm-name] --resource-group [your-resource-group-name]
{
"additionalCapabilities": {
...
"storageProfile": {
...
"diskControllerType": "SCSI",
...
Проверьте тип контроллера с помощью портала Azure
2.2 Подготовка к миграции
Скрипт миграции может автоматически заботиться о предварительных требованиях при использовании -FixOperatingSystemSettings параметра.
Если вы хотите внести необходимые изменения вручную, убедитесь, что:
- Модули NVMe устанавливаются и входят в состав
initrd/initramfs. - Конфигурация GRUB включает параметр
nvme_core.io_timeout=240. -
/etc/fstabпроверяет наличие устройств.
Уточните у поставщика вашей ОС все необходимые команды для обновления initrd/initramfs.
2.2.1 Подготовка PowerShell
Подсказка
Этот шаг не требуется при запуске скрипта в Azure Cloud Shell.
Установите PowerShell с помощью документации по PowerShell.
Подключитесь к Azure с помощью
Connect-AzAccount.Выберите правильную подписку с помощью
Select-AzSubscription -Subscription [your-subscription-id].Задайте политику выполнения с помощью
Set-ExecutionPolicy -ExecutionPolicy Unrestricted.
2.2.2. Скачивание скрипта
Скрипт можно скачать с помощью команды PowerShell:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/Azure-NVMe-Conversion.ps1" -OutFile ".\Azure-NVMe-Conversion.ps1"
2.3. Запуск миграции
Сценарий имеет несколько параметров:
| Параметр | Описание | Обязательно |
|---|---|---|
-ResourceGroupName |
Имя группы ресурсов для виртуальной машины. | Да |
-VMName |
Имя виртуальной машины в Azure. | Да |
-NewControllerType |
Тип контроллера хранилища, в который должна быть преобразована виртуальная машина (NVMe или SCSI). | Да |
-VMSize |
Номер SKU виртуальной машины Azure, в который требуется преобразовать виртуальную машину. | Да |
-StartVM |
Запустите виртуальную машину после преобразования. | нет |
-IgnoreSKUCheck |
Игнорировать проверку SKU виртуальной машины. | нет |
-IgnoreWindowsVersionCheck |
Пропустить проверку версии Windows. | нет |
-FixOperatingSystemSettings |
Автоматически исправьте параметры ОС с помощью команд выполнения Azure. | нет |
-WriteLogfile |
Создайте файл журнала. | нет |
-IgnoreAzureModuleCheck |
Не выполняйте проверку установленных модулей Azure. | нет |
-IgnoreOSCheck |
Не проверяйте готовность ОС. Ожидается, что ОС готова. | нет |
-SleepSeconds |
Время, необходимое Azure для применения изменений перед запуском виртуальной машины. | нет |
Ниже приведен пример команды:
# Example usage
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM -FixOperatingSystemSettings
Подсказка
Вы всегда можете вернуться к SCSI. Скрипт предоставляет команду для прямого возврата к исходной конфигурации.
2.3.1 Пример выходных данных
PS /home/philipp> ./NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType NVMe -VMSize Standard_E4bds_v5 -StartVM -FixOperatingSystemSettings
00:00 - INFO - Starting script Azure-NVMe-Conversion.ps1
00:00 - INFO - Script started at 06/27/2025 15:41:39
00:00 - INFO - Script version: 2025062704
00:00 - INFO - Script parameters:
00:00 - INFO - ResourceGroupName -> testrg
00:00 - INFO - VMName -> testvm
00:00 - INFO - NewControllerType -> NVMe
00:00 - INFO - VMSize -> Standard_E4bds_v5
00:00 - INFO - StartVM -> True
00:00 - INFO - FixOperatingSystemSettings -> True
00:00 - INFO - Script Version 2025062704
00:00 - INFO - Module Az.Compute is installed and the version is correct.
00:00 - INFO - Module Az.Accounts is installed and the version is correct.
00:00 - INFO - Module Az.Resources is installed and the version is correct.
00:00 - INFO - Connected to Azure subscription name: AG-GE-CE-PHLEITEN
00:00 - INFO - Connected to Azure subscription ID: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
00:00 - INFO - VM testvm found in Resource Group testrg
00:01 - INFO - VM testvm is running
00:01 - INFO - VM testvm is running Linux
00:01 - INFO - VM testvm is running SCSI
00:02 - INFO - Running in Azure Cloud Shell
00:02 - INFO - Authentication token is a SecureString
00:02 - INFO - Authentication token received
00:02 - INFO - Getting available SKU resources
00:02 - INFO - This might take a while ...
00:06 - INFO - VM SKU Standard_E4bds_v5 is available in zone 1
00:06 - INFO - Resource disk support matches between original VM size and new VM size.
00:06 - INFO - Found VM SKU - Checking for Capabilities
00:06 - INFO - VM SKU has supported capabilities
00:06 - INFO - VM supports NVMe
00:06 - INFO - Pre-Checks completed
00:06 - INFO - Entering Linux OS section
00:37 - INFO - Script output: Enable succeeded:
00:37 - INFO - Script output: [stdout]
00:37 - INFO - Script output: [INFO] Operating system detected: sles
00:37 - INFO - Script output: [INFO] Checking if NVMe driver is included in initrd/initramfs...
00:37 - INFO - Script output: [INFO] NVMe driver found in initrd/initramfs.
00:37 - INFO - Script output: [INFO] Checking nvme_core.io_timeout parameter...
00:37 - INFO - Script output: [INFO] nvme_core.io_timeout is set to 240.
00:37 - INFO - Script output: [INFO] Checking /etc/fstab for deprecated device names...
00:37 - INFO - Script output: [INFO] /etc/fstab does not contain deprecated device names.
00:37 - INFO - Script output:
00:37 - INFO - Script output: [stderr]
00:37 - INFO - Script output:
00:37 - INFO - Errors: 0 - Warnings: 0 - Info: 7
00:37 - INFO - Shutting down VM testvm
01:18 - INFO - VM testvm stopped
01:18 - INFO - Checking if VM is stopped and deallocated
01:19 - INFO - Setting OS Disk capabilities for testvm_OsDisk_1_165411276cbe459097929b981eb9b3e2 to new Disk Controller Type to NVMe
01:19 - INFO - generated URL for OS disk update:
01:19 - INFO - https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Compute/disks/testvm_OsDisk_1_165411276cbe459097929b981eb9b3e2?api-version=2023-04-02
01:19 - INFO - OS Disk updated
01:19 - INFO - Setting new VM Size from Standard_E4s_v3 to Standard_E4bds_v5 and Controller to NVMe
01:19 - INFO - Updating VM testvm
01:54 - INFO - VM testvm updated
01:54 - INFO - Start after update enabled for VM testvm
01:54 - INFO - Waiting for 15 seconds before starting the VM
02:09 - INFO - Starting VM testvm
03:31 - INFO - VM testvm started
03:31 - INFO - As the virtual machine got started using the script you can check the operating system now
03:31 - INFO - If you have any issues after the conversion you can revert the changes by running the script with the old settings
03:31 - IMPORTANT - Here is the command to revert the changes:
03:31 - INFO - .\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
03:31 - INFO - Script ended at 06/27/2025 15:45:11
03:31 - INFO - Exiting
PS /home/philipp>
Если после этого вы не сможете получить доступ к операционной системе, проверьте следующее:
- Последовательная консоль для операционных систем Linux.
- Снимок экрана: операционная система на портале Azure.
При необходимости вы всегда можете вернуться к SCSI с помощью команды, показанной в конце скрипта:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
2.4 Проверка результата
Проверьте результат на портале Azure
Проверка результата в PowerShell
PS C:\Users> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users> $vm.StorageProfile.DiskControllerType
NVMe
PS C:\Users>
3. Проверка операционной системы
3.1 Проверка устройств
Вы можете проверить устройства с помощью nvme команды.
nvme Если команда отсутствует, установите nvme-cli пакет с помощью nvme list.
Выходные данные должны отображать диск ОС и диски данных.
3.2 Получение udev-файла для NVMe (необязательно)
На виртуальных машинах SCSI правила udev, интегрированные в агент waagent Azure, создали ссылки в /dev/disk/azure/scsi1/lunX для идентификации дисков данных. Так как SCSI больше не используется, правила не применяются.
При использовании одного из двух доступных вариантов развертывания правил с поддержкой NVMe udev в каталоге /dev/disk/azure/data/by-lun вы увидите новые символические ссылки. Этот каталог является заменой /dev/disk/azure/scsi1.
nvme-conversion-vm:/usr/lib/udev/rules.d # ls -l /dev/disk/azure/data/by-lun/
total 0
lrwxrwxrwx 1 root root 19 Jun 7 13:52 0 -> ../../../../nvme0n2
lrwxrwxrwx 1 root root 19 Jun 7 13:52 1 -> ../../../../nvme0n3
nvme-conversion-vm:/usr/lib/udev/rules.d #
Скачивание udev-файла вручную
Чтобы скачать новый udev файл правил, выполните следующую команду:
sudo curl -o /etc/udev/rules.d/88-azure-nvme-data-disk.rules \
https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/88-azure-nvme-data-disk.rules
sudo udevadm control --reload-rules && sudo udevadm trigger
Готовые к установке пакеты из GitHub
Предварительно скомпилированные пакеты из коллекции GitHub с утилитами и правилами udev для виртуальных машин Azure доступны на Index of /results/cjp256/azure-vm-utils/ для нескольких дистрибутивов.
Несколько дистрибутивов уже начали интегрировать пакет. Его можно установить непосредственно из репозиториев.
| Распределение | Минимальная версия |
|---|---|
| SUSE | SLES 15 SP5 или новее |
| Red Hat | RHEL 9.6 или более поздней версии |
| Убунту | Ubuntu 25.04 или более поздней версии |
Подготовка пользовательского образа Linux для NVMe
Important
Если вы создаете пользовательский образ Linux на виртуальной машине на базе SCSI и развертываете его на виртуальной машине с размером NVMe по умолчанию (v5/v6/v7), виртуальная машина не загружается, если initramfs не содержит модули ядра nvme и nvme-core.
Проверка доступности модулей NVMe
modinfo nvme && echo "nvme module OK" || echo "ERROR: nvme module not found"
modinfo nvme-core && echo "nvme-core module OK" || echo "ERROR: nvme-core module not found"
Проверка наличия модулей NVMe в initramfs
# RHEL / CentOS / Oracle Linux:
lsinitrd /boot/initramfs-$(uname -r).img | grep -i nvme
# Ubuntu / Debian:
lsinitramfs /boot/initrd.img-$(uname -r) | grep -i nvme
# SLES:
lsinitrd /boot/initrd-$(uname -r) | grep -i nvme
Пересоберите initramfs, если модули NVMe отсутствуют
# RHEL / CentOS / Oracle Linux:
sudo dracut --force --add-drivers "nvme nvme-core" /boot/initramfs-$(uname -r).img $(uname -r)
# Ubuntu / Debian:
echo "nvme" | sudo tee -a /etc/initramfs-tools/modules
echo "nvme-core" | sudo tee -a /etc/initramfs-tools/modules
sudo update-initramfs -u
# SLES:
echo 'add_drivers+=" nvme nvme-core "' | sudo tee -a /etc/dracut.conf.d/nvme.conf
sudo dracut --force
Минимальные версии ядра для NVMe
| Распределение | Минимальная версия | Примечания |
|---|---|---|
| Убунту | 18.04 (ядро 4.15+) | NVMe в initramfs по умолчанию |
| RHEL / CentOS | 7.4 (ядро 3.10.0-693+) | Возможно, потребуется перестроение initramfs |
| SLES | 12 SP3+ | Возможно, потребуется перестроение initramfs |
| Debian | 9+ (ядро 4.9+) | Возможно, потребуется перестроение initramfs |
| Oracle Linux | 7.4+ (UEK 4+) | UEK включает NVMe |
| CentOS 6 / RHEL 6 | Не поддерживается | Не удается загрузиться с NVMe |
Доверенный запуск и тип контроллера диска
Предупреждение
Доверенные виртуальные машины запуска не могут изменить тип контроллера диска после развертывания.
DiskControllerType на диске ОС навсегда заблокирован.
- Невозможно изменить размер виртуальной машины доверенного запуска, созданной на SCSI (версии 3/v4) до размеров NVMe (v6/v7).
- Невозможно изменить размер виртуальной машины доверенного запуска, созданной на NVMe, до размеров только SCSI.
- Чтобы изменить тип контроллера, создайте снимок диска ОС, создайте новый диск нужного типа и создайте новую виртуальную машину.
Планирования: Перед созданием доверенной виртуальной машины запуска определите целевое поколение виртуальных машин. Если позже вам может потребоваться изменение размера при смене контроллера, развертывайте систему без Trusted Launch или используйте двухрежимный типоразмер (EBSv5).
Настройка времени ожидания ввода-вывода NVMe
Important
Виртуальные машины Azure Boost (v5/v6/v7) требуют nvme_core.io_timeout=240, чтобы предотвратить панику ядра и ошибки ввода-вывода при кратковременном увеличении задержки хранилища на узле. Значение по умолчанию (30 секунд) слишком короткое.
# Check current timeout
cat /sys/module/nvme_core/parameters/io_timeout
# Set immediately (non-persistent)
echo 240 | sudo tee /sys/module/nvme_core/parameters/io_timeout
# Make persistent — RHEL/CentOS/Oracle:
sudo grubby --update-kernel=ALL --args="nvme_core.io_timeout=240"
# Make persistent — Ubuntu/Debian:
sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="nvme_core.io_timeout=240 /' /etc/default/grub
sudo update-grub
# Make persistent — SLES:
sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="nvme_core.io_timeout=240 /' /etc/default/grub
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Verify after reboot
cat /sys/module/nvme_core/parameters/io_timeout
# Should show: 240
Различия именования устройств NVMe
Виртуальные машины NVMe используют разные пути устройства, отличные от виртуальных машин SCSI.
Не прописывайте жёстко /dev/sd* пути к устройствам — они не существуют в виртуальных машинах NVMe.
| SCSI | NVMe | Стабильный путь (рекомендуется) |
|---|---|---|
/dev/sda (ОС) |
/dev/nvme0n1 |
/dev/disk/azure/root |
/dev/sdb (temp) |
/dev/nvme0n2 (зависит) |
/dev/disk/azure/resource |
/dev/sdc (LUN 0) |
/dev/nvme0n3 (зависит) |
/dev/disk/azure/scsi1/lun0 |
Предупреждение
Нумерирование устройств NVMe (/dev/nvme0n1, /dev/nvme0n2) не является стабильным во время перезагрузки. Всегда используйте:
-
/dev/disk/azure/*символьные ссылки - UUID дисков в
/etc/fstab
# Get UUIDs
blkid
# Use in fstab:
# UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2
# Map NVMe devices to Azure LUNs
ls -la /dev/disk/azure/
nvme list # (install nvme-cli if needed)
Переключение и временный диск на виртуальных машинах NVMe
Временные диски NVMe отображаются неформатированные , в отличие от временных дисков SCSI. Их необходимо явно отформатировать и настроить.
# Identify temp disk
ls -la /dev/disk/azure/resource
# Format and mount
sudo mkfs.ext4 /dev/disk/azure/resource-part1
sudo mkdir -p /mnt/resource
sudo mount /dev/disk/azure/resource-part1 /mnt/resource
# Configure swap
sudo fallocate -l 4G /mnt/resource/swapfile
sudo chmod 600 /mnt/resource/swapfile
sudo mkswap /mnt/resource/swapfile
sudo swapon /mnt/resource/swapfile
Предупреждение
Временные диски являются эфемерными. Данные теряются при остановке/деаллокации. Настройте waagent для автоматического управления переключениями:
# /etc/waagent.conf
ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=4096
Перенос виртуальной машины Windows из SCSI в NVMe
В этом разделе описывается преобразование виртуальной машины Windows из SCSI в NVMe с помощью скрипта преобразования Azure NVMe. Скрипт автоматически выполняет подготовку ОС, освобождение виртуальной машины, обновление контроллера диска, необязательное изменение размера и перезапуск виртуальной машины.
Prerequisites
Перед началом работы убедитесь в следующем:
Виртуальная машина использует поколение 2 (2-го поколения). Вы не можете преобразовать виртуальные машины 1-го поколения в NVMe.
Виртуальная машина работает под управлением Windows Server 2019 или более поздней версии. Windows Server 2016 не поддерживается, если вы не используете
-IgnoreWindowsVersionCheckпараметр и не проверяете совместимость драйверов вручную. Windows Server 2012 R2 и более ранних версий не поддерживаются.SKU целевой виртуальной машины поддерживает NVMe. Чтобы убедиться в этом, см. таблицу доступности Azure Boost.
Вы не использовали доверенный запуск для настройки виртуальной машины. Вы не можете преобразовать виртуальные машины, настроенные с доверенным запуском из SCSI в NVMe.
Преобразование виртуальной машины с временным диском (например, Standard_D4ds_v5) на номер SKU версии 6 (например, Standard_D4ds_v6) не поддерживается с помощью этого скрипта. Используйте моментальные снимки дисков для этого пути миграции.
Поддерживается преобразование виртуальных машин без временного диска (например, Standard_D4s_v5) на номера SKU версии 6.
Антивирусное или защитное ПО, отличное от Microsoft, может помешать внесению изменений в драйверы в процессе преобразования. Временно отключите его перед запуском скрипта.
Если виртуальная машина отображает синий экран после преобразования, вернитесь к SCSI и повторите попытку после отключения решения для обеспечения безопасности.
PowerShell со следующими версиями модулей Az устанавливается:
-
Az.Compute9.0 или более поздней версии -
Az.Accounts4.0 или более поздней версии -
Az.Resources7.0 или более поздней версии
-
Скачивание скрипта
Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/Azure-NVMe-Conversion.ps1" `
-OutFile ".\Azure-NVMe-Conversion.ps1"
Скрипт является частью репозитория SAP-on-Azure-Scripts-and-Utilities и лицензирован в соответствии с лицензией MIT.
Запуск преобразования
Используйте параметр -FixOperatingSystemSettings, чтобы скрипт автоматически настроил драйвер stornvme при запуске. Эта конфигурация необходима для Windows для распознавания контроллера NVMe после перезапуска виртуальной машины. Если его опустить, перед преобразованием потребуется вручную задать драйвер.
.\Azure-NVMe-Conversion.ps1 `
-ResourceGroupName "<resource-group-name>" `
-VMName "<vm-name>" `
-NewControllerType NVMe `
-VMSize "<target-sku>" `
-FixOperatingSystemSettings `
-StartVM `
-WriteLogfile
Скрипт выполняет следующие действия автоматически:
- Проверяет версии модулей, существование виртуальной машины, тип ОС, Windows версию, 2-го поколения, текущий тип контроллера и возможности NVMe с помощью SKU виртуальной машины.
- При необходимости исправляет
stornvmeслужбу драйверов (sc.exe config stornvme start=boot) и проверяет другие параметры ОС для готовности NVMe (с-FixOperatingSystemSettings). - Останавливает виртуальную машину и освобождает её ресурсы.
- Обновляет
supportedCapabilities.diskControllerTypesдоSCSI, NVMeна диске ОС с помощью метода RESTPATCH. - Изменяет размер виртуальной машины до целевого SKU.
- Запускает виртуальную машину (с
-StartVM).
Подсказка
Скрипт предоставляет команду возврата в выходных данных в конце успешного выполнения. Сохраните эту команду перед закрытием сеанса, чтобы при необходимости выполнить откат к SCSI.
Что изменится для вашей виртуальной машины Windows
В отличие от Linux, Windows использует буквы дисков, а не пути к устройству, поэтому диск ОС остается C:\ после преобразования. Однако базовый интерфейс диска изменяется. Назначения дисков данных могут измениться, если вы не используете идентификаторы постоянного диска.
| Диск | Виртуальная машина с поддержкой SCSI | Виртуальная машина с поддержкой NVMe |
|---|---|---|
| Диск операционной системы |
C:\ (без изменений) |
C:\ (без изменений) |
| Временный диск |
D:\ (обычно) |
D:\ (как правило, RAW для артикулов v6) |
| Диски данных | Назначено порядком LUN | Назначается по порядку пространств имен NVMe |
Important
В SKU v6 временные диски имеют формат RAW и не отформатированы заранее в NTFS. Используйте скрипт запуска или расширение пользовательского скрипта для форматирования и подключения их при каждом запуске.
Проверка преобразования
После перезапуска виртуальной машины убедитесь, что тип контроллера диска был успешно изменен.
Подтверждение с помощью PowerShell
$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType
Выходные данные должны быть NVMe.
Подтверждение с помощью диспетчер устройств на виртуальной машине
- Откройте диспетчер устройств.
- Разверните контроллеры хранилища.
- Убедитесь, что указан стандартный контроллер NVM Express .
Возврат к SCSI
Предупреждение
Доверенные виртуальные машины запуска: Шаг восстановления для восстановления DiskControllerType не работает на виртуальных машинах доверенного запуска. Необходимо повторно создать виртуальную машину. См. раздел "Доверенный запуск" и "Тип контроллера диска".
Если необходимо выполнить откат, повторно запустите скрипт, указав -NewControllerType SCSI и исходный SKU виртуальной машины:
.\Azure-NVMe-Conversion.ps1 `
-ResourceGroupName "<resource-group-name>" `
-VMName "<vm-name>" `
-NewControllerType SCSI `
-VMSize "<original-SKU>" `
-StartVM `
-WriteLogfile