Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel bespreken we het proces van het converteren van virtuele machines (VM) met Linux van SCSI naar NVMe-opslag. Door te migreren naar NVMe, kunt u profiteren van de verbeterde prestaties en schaalbaarheid.
SCSI versus NVMe
Azure-VM's ondersteunen twee typen opslaginterfaces: Small Computer System Interface (SCSI) en NVMe. De SCSI-interface is een verouderde standaard die fysieke connectiviteit en gegevensoverdracht biedt tussen computers en randapparatuur. NVMe is vergelijkbaar met SCSI omdat het connectiviteit en gegevensoverdracht biedt, maar NVMe is een snellere en efficiëntere interface voor gegevensoverdracht tussen servers en opslagsystemen.
Ondersteuning voor SCSI-interface-VM's
Azure blijft ondersteuning bieden voor de SCSI-interface in de versies van VM-aanbiedingen die SCSI-opslag bieden. Niet alle nieuwe VM-reeksen hebben echter SCSI-opslag als optie.
Wat verandert er voor uw VIRTUELE machine?
Als u de hostinterface wijzigt van SCSI in NVMe, verandert de externe opslag (besturingssysteemschijf of gegevensschijven) niet, maar wijzigt u de manier waarop de besturingssystemen de schijven zien.
| Schijf | VM met SCSI-functionaliteit | NVMe-VM met SCSI-tempdisk (bijvoorbeeld Ebds_v5) | NVMe-VM met NVMe tempdisk |
|---|---|---|---|
| Besturingssysteemschijf | /dev/sda | /dev/nvme0n1 | /dev/nvme0n1 |
| Tijdelijke schijf | /dev/sdb | /dev/sda | /dev/nvme1n1 |
| Eerste gegevensschijf | /dev/sdc | /dev/nvme0n2 | /dev/nvme0n2 |
Aanbeveling
Sommige VM-typen hebben meer dan één tijdelijke schijf (bijvoorbeeld E64ds_v6)
In de volgende secties bieden we een handleiding voor het converteren van uw Azure-VM van SCSI naar NVMe met behulp van Azure Boost, zodat u optimaal kunt profiteren van deze prestatieverbeteringen en een concurrerende rand in het cloud-computinglandschap kunt behouden.
Uw virtuele machine (VM) migreren van SCSI naar NVMe
Als u wilt migreren van SCSI naar NVMe, moeten enkele stappen worden uitgevoerd:
- Controleer of de reeks virtuele machines NVMe ondersteunt
- Controleer uw besturingssysteem op NVMe-gereedheid
- Uw virtuele machine converteren naar NVMe
- Controleer uw besturingssysteem
1. Controleer of de reeks virtuele machines NVMe ondersteunt
De ondersteunde virtuele machines ter ondersteuning van gekoppelde NVMe-schijven worden beschreven op de overzichtssite van Azure Boost in de beschikbaarheidstabel.
2. Controleer uw besturingssysteem op NVMe-gereedheid
Het besturingssysteem moet NVMe-apparaten ondersteunen, zoals apparaatstuurprogramma's en initrdm, het tijdelijke bestandssysteem dat tijdens het opstarten wordt gebruikt, moeten worden voorbereid. Daarnaast moet u de koppelpunten van de bestandssystemen valideren terwijl ze controleren of u de naam van het SCSI-apparaat (/dev/sdX) gebruikt.
Het migratiescript kan deze gereedheidscontroles automatisch uitvoeren wanneer u de -FixOperatingSystemSettings gebruikt.
2.1 Controleer het controllertype van de VM
2.1.1 Controleer het type controller met behulp van PowerShell
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 Controleer controllertype met behulp van Azure CLI
$ az vm show --name [your-vm-name] --resource-group [your-resource-group-name]
{
"additionalCapabilities": {
...
"storageProfile": {
...
"diskControllerType": "SCSI",
...
2.1.3 Type controller controleren met behulp van Azure Portal
2.2 Voorbereiden op migratie
Het migratiescript kan automatisch rekening houden met de vereisten bij het gebruik van de -FixOperatingSystemSettings parameter.
Als u handmatig de vereiste wijzigingen wilt doorvoeren en valideren
- NVMe-modules geïnstalleerd en onderdeel van initrd/initramfs
- GRUB-configuratie bevat de parameter nvme_core.io_timeout=240
- /etc/fstab controleert op apparaten
Neem contact op met de leverancier van het besturingssysteem om alle vereiste opdrachten voor het bijwerken van initrd/initramfs te behandelen.
2.2.1 PowerShell voorbereiden
Aanbeveling
Deze stap is niet vereist bij het uitvoeren van het script in Azure CloudShell
PowerShell installeren met https://aka.ms/powershell
Verbind met Azure via
Connect-AzAccounten selecteer het juiste abonnement metSelect-AzSubscription -Subscription [your-subscription-id]Het uitvoeringsbeleid instellen met
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
2.2.2 Download het script
U kunt het script downloaden met behulp van een PowerShell-opdracht
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 De migratie uitvoeren
Het script heeft meerdere parameters beschikbaar:
| Kenmerk | Beschrijving | Verplicht |
|---|---|---|
-ResourceGroupName |
De naam van de resourcegroep van uw VIRTUELE machine | Ja |
-VMName |
De naam van uw virtuele machine in Azure | Ja |
-NewControllerType |
Het type opslagcontroller waar de VIRTUELE machine naar moet worden geconverteerd (NVMe of SCSI) | Ja |
-VMSize |
Azure VM-SKU waarnaar u de VIRTUELE machine wilt converteren | Ja |
-StartVM |
De VIRTUELE machine starten na conversie | Nee. |
-IgnoreSKUCheck |
De controle van de VM-SKU negeren | Nee. |
-IgnoreWindowsVersionCheck |
Windows-versiecontrole negeren | Nee. |
-FixOperatingSystemSettings |
De besturingssysteeminstellingen automatisch herstellen met behulp van Azure RunCommands | Nee. |
-WriteLogfile |
Een logboekbestand maken | Nee. |
-IgnoreAzureModuleCheck |
Voer de controle voor geïnstalleerde Azure-modules niet uit | Nee. |
-IgnoreOSCheck |
Controleer niet op gereedheid van het besturingssysteem, de verwachting is dat het besturingssysteem gereed is | Nee. |
-SleepSeconds |
Tijd voordat Azure wijzigingen vereffent voordat de VIRTUELE machine wordt gestart | Nee. |
Voorbeeldopdracht:
# Example usage
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM -FixOperatingSystemSettings
Aanbeveling
U kunt altijd terugkeren naar SCSI. Het script deelt een opdracht met u om rechtstreeks terug te keren naar de oorspronkelijke configuratie.
2.3.1 Voorbeelduitvoer
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>
Als u later problemen ondervindt bij het openen van het besturingssysteem, probeert u dit te controleren
Seriële console voor Linux-besturingssystemen
Schermopname van het besturingssysteem in Azure Portal
Wanneer er iets gebeurt, kunt u altijd terugkeren naar SCSI met behulp van de opdracht die aan het einde van het script wordt weergegeven:
.\Azure-NVMe-Conversion.ps1 -ResourceGroupName testrg -VMName testvm -NewControllerType SCSI -VMSize Standard_E4s_v3 -StartVM
2.4 Controleer het resultaat
2.4.1 Resultaat controleren in Azure Portal
2.4.2 Resultaat controleren in PowerShell
PS C:\Users> $vm = Get-AzVM -name [your-vm-name]
PS C:\Users> $vm.StorageProfile.DiskControllerType
NVMe
PS C:\Users>
3. Controleer uw besturingssysteem
3.1 Apparaten controleren
U kunt de apparaten controleren met behulp van de nvme-opdracht. Als de nvme-opdracht ontbreekt, installeert u het pakket 'nvme-cli'.
nvme list
In de uitvoer moeten de besturingssysteemschijf en de gegevensschijven worden weergegeven.
3.2 Udev-bestand ophalen voor NVMe (optioneel)
Op virtuele SCSI-machines hebben de udev-regels die zijn geïntegreerd in waagent (Azure-agent) koppelingen /dev/disk/azure/scsi1/lunX gemaakt om de gegevensschijven te identificeren. Omdat SCSI niet meer wordt gebruikt, zijn de regels niet meer van toepassing.
Met een van de twee beschikbare opties voor het implementeren van udev-regels met NVMe-functionaliteit ziet u nieuwe symbolische koppelingen in de map /dev/disk/azure/data/by-lun. Deze map is de vervanging voor /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 Handmatig downloaden van udev-bestand
Gebruik deze opdracht om het nieuwe udev-regelsbestand te downloaden:
curl https://raw.githubusercontent.com/Azure/SAP-on-Azure-Scripts-and-Utilities/refs/heads/main/Azure-NVMe-Utils/88-azure-nvme-data-disk.rules en voer vervolgens uit udevadm control --reload-rules && udevadm trigger om de udev-regels opnieuw te laden.
3.2.2 Gereed om pakketten te installeren met behulp van Azure VM-hulpprogramma's
Er zijn vooraf gecompileerde pakketten beschikbaar op index van /results/cjp256/azure-vm-utils/voor meerdere distributies.
Er zijn al meerdere distributies gestart om het pakket te integreren. U kunt deze rechtstreeks vanuit hun opslagplaats installeren.
| Distributie | Minimumversie |
|---|---|
| SUSE | SLES 15 SP5 of hoger |
| RedHat | RHEL 9.6 of hoger |
| Ubuntu | Ubuntu 25.04 of hoger |