Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku probereme proces převodu virtuálních počítačů s Linuxem z SCSI na úložiště NVMe. Migrací na NVMe můžete využít výhod jeho vylepšeného výkonu a škálovatelnosti.
SCSI vs NVMe
Virtuální počítače Azure podporují dva typy rozhraní úložiště: Small Computer System Interface (SCSI) a NVMe. Rozhraní SCSI je starší standard, který poskytuje fyzické připojení a přenos dat mezi počítači a periferními zařízeními. NVMe se podobá rozhraní SCSI v tom, že poskytuje připojení a přenos dat, ale NVMe je rychlejší a efektivnější rozhraní pro přenos dat mezi servery a úložnými systémy.
Podpora virtuálních počítačů rozhraní SCSI
Azure nadále podporuje rozhraní SCSI ve verzích nabídek virtuálních počítačů, které poskytují úložiště SCSI. Ne všechny nové řady virtuálních počítačů ale mají úložiště SCSI jako další možnost.
Co se pro váš virtuální počítač mění?
Změna hostitelského rozhraní z rozhraní SCSI na NVMe nemění vzdálené úložiště (disk s operačním systémem nebo datové disky), ale mění způsob, jakým operační systémy vidí tyto disky.
| Disk | Virtuální počítač s povoleným rozhraním SCSI | Virtuální počítač NVMe s dočasným diskem SCSI (např. Ebds_v5) | Virtuální počítač NVMe s tempdiskem NVMe |
|---|---|---|---|
| Disk s operačním systémem | /dev/sda | /dev/nvme0n1 | /dev/nvme0n1 |
| Dočasný disk | /dev/sdb | /dev/sda | /dev/nvme1n1 |
| První datový disk | /dev/sdc | /dev/nvme0n2 | /dev/nvme0n2 |
Návod
Některé typy virtuálních počítačů mají více než jeden dočasný disk (např. E64ds_v6).
V následujících částech poskytujeme průvodce převodem virtuálního počítače Azure ze služby SCSI na NVMe pomocí Azure Boost, abyste mohli plně využít těchto vylepšení výkonu a udržovat konkurenceschopnou výhodu v prostředí cloud computingu.
Migrace virtuálního počítače z SCSI na NVMe
Aby bylo možné migrovat ze služby SCSI na NVMe, je potřeba provést některé kroky:
- Kontrola, jestli řada virtuálních počítačů podporuje NVMe
- Kontrola připravenosti NVMe na operační systém
- Převod virtuálního počítače na NVMe
- Kontrola operačního systému
1. Zkontrolujte, jestli řada virtuálních počítačů podporuje NVMe.
Podporované virtuální počítače pro podporu připojených disků NVMe jsou popsané v lokalitě přehledu Azure Boost v tabulce dostupnosti.
2. Kontrola připravenosti NVMe v operačním systému
Operační systém musí podporovat zařízení NVMe, včetně ovladačů zařízení a initrdm, dočasného systému souborů používaného během spouštění, musí být připravený. Kromě toho je potřeba ověřit přípojné body systémů souborů, protože kontrolují, jestli používáte název zařízení SCSI (/dev/sdX).
Skript migrace se při použití -FixOperatingSystemSettings může automaticky postarat o tyto kontroly připravenosti.
2.1 Kontrola typu kontroleru virtuálního počítače
2.1.1 Kontrola typu kontroleru pomocí PowerShellu
PS C:\Users\user1> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users\user1> $vm.StorageProfile.DiskControllerType
SCSI
PS C:\Users\user1>
2.1.2 Kontrola typu kontroleru pomocí Azure CLI
$ az vm show --name [your-vm-name] --resource-group [your-resource-group-name]
{
"additionalCapabilities": {
...
"storageProfile": {
...
"diskControllerType": "SCSI",
...
2.1.3 Kontrola typu kontroleru pomocí webu Azure Portal
2.2 Příprava na migraci
Skript pro migraci se při použití parametru -FixOperatingSystemSettings může automaticky starat o požadavky.
Pokud se chcete o požadované změny postarat ručně, ověřte je.
- Nainstalované moduly NVMe a zahrnuté jako součást initrd/initramfs
- Konfigurace GRUB zahrnuje parametr nvme_core.io_timeout=240
- /etc/fstab kontroluje zařízení
Obraťte se na dodavatele operačního systému a projděte si všechny požadované příkazy pro aktualizaci initrd/initramfs.
2.2.1 Příprava PowerShellu
Návod
Tento krok není nutný při spuštění skriptu v Azure CloudShellu.
Instalace PowerShellu pomocí https://aka.ms/powershell
Připojení k Azure pomocí
Connect-AzAccounta výběr správného předplatného pomocíSelect-AzSubscription -Subscription [your-subscription-id]Nastavení zásad spouštění pomocí
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
2.2.2 Stažení skriptu
Skript si můžete stáhnout pomocí příkazu PowerShellu.
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 Spuštění migrace
Skript má k dispozici více parametrů:
| Parameter | Popis | Povinné |
|---|---|---|
-ResourceGroupName |
Název skupiny prostředků vašeho virtuálního počítače | Ano |
-VMName |
Název virtuálního počítače v Azure | Ano |
-NewControllerType |
Typ řadiče úložiště, na který se má virtuální počítač převést (NVMe nebo SCSI) | Ano |
-VMSize |
Azure VM SKU, na který chcete virtuální počítač převést | Ano |
-StartVM |
Po převodu spusťte virtuální počítač. | Ne |
-IgnoreSKUCheck |
Ignorovat kontrolu SKU virtuálního počítače | Ne |
-IgnoreWindowsVersionCheck |
Ignorovat kontrolu verzí systému Windows | Ne |
-FixOperatingSystemSettings |
Automatická oprava nastavení operačního systému pomocí Azure RunCommands | Ne |
-WriteLogfile |
Vytvoření souboru protokolu | Ne |
-IgnoreAzureModuleCheck |
Neběhněte kontrolu nainstalovaných modulů Azure | Ne |
-IgnoreOSCheck |
Nekontrolujte připravenost operačního systému, očekáváme, že operační systém je připravený. | Ne |
-SleepSeconds |
Čas, kdy Azure vyřeší změny před spuštěním virtuálního počítače | Ne |
Ukázkový příkaz:
# Example usage
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM -FixOperatingSystemSettings
Návod
Kdykoli se můžete vrátit zpět na rozhraní SCSI, skript s vámi nasdílí příkaz, kterým se přímo vrátíte k původní konfiguraci.
2.3.1 Ukázkový výstup
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>
Pokud máte problémy s přístupem k operačnímu systému, zkuste to zkontrolovat
Sériová konzola pro operační systémy Linux
Snímek obrazovky s operačním systémem na webu Azure Portal
Když se něco stane, můžete se kdykoli vrátit k rozhraní SCSI pomocí příkazu zobrazeného na konci skriptu:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
2.4 Kontrola výsledku
2.4.1 Kontrola výsledku na webu Azure Portal
2.4.2 Kontrola výsledku v PowerShellu
PS C:\Users> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users> $vm.StorageProfile.DiskControllerType
NVMe
PS C:\Users>
3. Zkontrolujte operační systém.
3.1 Kontrola zařízení
Pokud příkaz nvme chybí, můžete zkontrolovat zařízení pomocí příkazu nvme a nainstalovat balíček nvme-cli.
nvme list
Výstup by měl zobrazit disk s operačním systémem a datové disky.
3.2 Získání souboru udev pro NVMe (volitelné)
Na virtuálních počítačích SCSI vytvořila pravidla udev integrovaná v agentu waagent (agent Azure) odkazy /dev/disk/azure/scsi1/lunX pro identifikaci datových disků. Vzhledem k tomu, že se už rozhraní SCSI nepoužívá, pravidla se nevztahují.
S jednou ze dvou dostupných možností nasazení pravidel NVMe povolených udev uvidíte nové symbolické odkazy v adresáři /dev/disk/azure/data/by-lun. Tento adresář je náhradou za /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 #
3.2.1 Ruční stažení souboru udev
Pokud chcete stáhnout nový soubor pravidel udev, použijte tento příkaz:
curl https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/NVMe-Preflight-Check/88-azure-nvme-data-disk.rules a pak spusťte udevadm control --reload-rules && udevadm trigger opětovné načtení pravidel udev.
3.2.2 Připraveno k instalaci balíčků pomocí nástrojů pro virtuální počítače Azure
V indexu /results/cjp256/azure-vm-utils/pro více distribucí jsou k dispozici předkompilované balíčky.
Již několik distribucí začalo integrovat balíček. Můžete ho přímo nainstalovat z jejich úložiště.
| Distribuce | Minimální verze |
|---|---|
| SUSE | SLES 15 SP5 nebo novější |
| RedHat | RHEL 9.6 nebo novější |
| Ubuntu | Ubuntu 25.04 nebo novější |