Virtuele Linux- en Windows-machines converteren van SCSI naar NVMe

Azure virtuele machines (VM's) ondersteunen twee opslagcontrollerinterfaces: Small Computer System Interface (SCSI) en NVM Express (NVMe). SCSI is een verouderde standaard die fysieke connectiviteit en gegevensoverdracht biedt tussen computers en randapparatuur. NVMe biedt vergelijkbare connectiviteit, maar is een snellere en efficiëntere interface voor gegevensoverdracht tussen servers en opslagsystemen.

In dit artikel leest u hoe u een Azure-VM converteert van een SCSI-schijfcontroller naar NVMe met behulp van Azure Boost en het script Azure NVMe-conversie. Hetzelfde script en dezelfde procedure zijn van toepassing op:

  • Linux- en Windows-VM’s.
  • VM's met of zonder gegevensschijven en een tijdelijke schijf.

Azure blijft ondersteuning bieden voor de SCSI-interface op de VM-aanbiedingen die SCSI-opslag bieden. Niet alle nieuwe VM-reeksen bevatten echter SCSI als optie in de toekomst.

Wat verandert er voor uw VIRTUELE machine?

Als u de hostinterface wijzigt van SCSI in NVMe, wordt de externe opslag (besturingssysteemschijf of gegevensschijven) niet gewijzigd. Het wijzigt de manier waarop het besturingssysteem gebruikmaakt van de schijven.

Schijf SCSI-VM NVMe-VM (v5 met tijdelijke schijf) NVMe-VM (v6)
OS-schijf /dev/sda /dev/nvme0n1 /dev/nvme0n1
Tijdelijke schijf /dev/sdb /dev/sda /dev/nvme1n1
Eerste gegevensschijf /dev/sdc /dev/nvme0n2 /dev/nvme0n2

Als u uw Azure VM converteert van SCSI naar NVMe met behulp van Azure Boost, kunt u optimaal profiteren van deze prestatieverbeteringen en een concurrentievoordeel in het cloud-computinglandschap behouden.

Een VIRTUELE machine migreren van SCSI naar NVMe

Als u wilt migreren van SCSI naar NVMe, volgt u deze stappen op hoog niveau:

  1. Controleer of de VM-serie NVMe ondersteunt.
  2. Controleer de vereisten voor uw besturingssysteem.
  3. Converteer uw VIRTUELE machine naar NVMe.
  4. Controleer de conversie.

Note

Aangepaste VM's waarop software van derden wordt uitgevoerd die opstarttijd kan wijzigen, opslagstuurprogramma's, filterstuurprogramma's of schijfumeratie zijn momenteel geen ondersteund migratiescenario. Voorbeelden hiervan zijn bepaalde producten voor back-up, beveiliging, eindpuntbeveiliging en opslagbeheer. Voor deze configuraties heeft Azure Ondersteuning mogelijk beperkte mogelijkheden om migratiefouten te diagnosticeren of op te sporen. Test de conversie op een representatieve niet-productie-VM voordat u doorgaat met productieworkloads.

1. Controleer of de reeks virtuele machines NVMe ondersteunt

De tabel Azure Boost-beschikbaarheid bevat de VM-grootten die ondersteuning bieden voor gekoppelde NVMe-schijven.

2. Controleer de vereisten

Voordat u begint, zorg ervoor dat u over de volgende vereisten beschikt:

  • Een Azure-abonnement en een virtuele machine die u moet converteren van SCSI naar NVMe of van NVMe naar SCSI
  • PowerShell en de Az-module geïnstalleerd en geconfigureerd
  • Juiste machtigingen voor het uitvoeren van scripts op Azure resources

3. Gebruik

Als u het script wilt uitvoeren, opent u PowerShell als beheerder en voert u de volgende stappen uit:

  1. Installeer PowerShell of voer het script uit op Azure Cloud Shell.

Aanbeveling

Installeer PowerShell met behulp van de PowerShell-documentatie.

  1. Niet-ondertekende PowerShell-scriptbestanden toestaan.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Maak verbinding met uw Azure-account met behulp van Connect-AzAccount.
Connect-AzAccount
  1. Zorg ervoor dat u bent verbonden met uw abonnement. Als u het abonnement wilt wijzigen, gebruikt u Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Download het script.
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"
  1. Voer het conversiescript uit.
.\Azure-NVMe-Conversion.ps1

Note

Als u wisselt tussen VM-grootten met verschillende ondersteuning voor resource- (tijdelijke) schijven, moet uw Azure-abonnement zijn geregistreerd voor de functie VMTempDiskResizePreview. Als de functie niet is geregistreerd, wordt het script afgesloten met een fout. Registreer de functie met behulp van de volgende opdracht, wacht tien minuten totdat de automatische goedkeuring van kracht is en voer het script opnieuw uit.

Register-AzProviderFeature -FeatureName VMTempDiskResizePreview -ProviderNamespace Microsoft.Compute

Example

.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType <NVMe/SCSI> -VMSize <new-VM-SKU> -StartVM

Het script heeft de volgende parameters.

Kenmerk Beschrijving Verplicht
-ResourceGroupName De naam van de resourcegroep voor uw virtuele machine. Ja
-VMName De naam van uw virtuele machine op Azure. Ja
-NewControllerType Het type opslagcontroller waarnaar de virtuele machine moet worden geconverteerd (NVMe of SCSI). Ja
-VMSize De SKU van de Azure-VM waarnaar de virtuele machine moet worden omgezet. Ja
-StartVM Start de VIRTUELE machine na de conversie. Nee.
-FixOperatingSystemSettings Herstel de instellingen van het besturingssysteem automatisch met behulp van Azure Opdrachten uitvoeren. Nee.
-WriteLogfile Maak een logboekbestand. Nee.
-IgnoreSKUCheck Negeer de controle van de VM-SKU. Nee.
-IgnoreWindowsVersionCheck Negeer de Windows versiecontrole. Nee.
-IgnoreAzureModuleCheck Voer de controle voor geïnstalleerde Azure modules niet uit. Nee.
-IgnoreOSCheck Controleer niet of het besturingssysteem gereed is. De verwachting is dat het besturingssysteem gereed is. Nee.
-SleepSeconds Het tijdstip waarop Azure wijzigingen moet afhandelen voordat de VIRTUELE machine wordt gestart. Nee.

Het script voert de volgende stappen uit:

  1. Valideert az-moduleversies, bestaan van VM, besturingssysteemtype, generatie, huidig controllertype en NVMe-functionaliteit van de doel-VM-SKU.
  2. Met -FixOperatingSystemSettings valideert en configureert u het gastbesturingssysteem voor NVMe met Azure Run Command:
    • Op Linux controleert u of het NVMe-stuurprogramma zich in initrd/initramfs bevindt, stelt u nvme_core.io_timeout=240 in en controleert u /etc/fstab op verouderde apparaatnamen.
    • Configureert op Windows het stornvme stuurprogramma om te starten bij opstarten (sc.exe config stornvme start=boot).
  3. Stopt de VM en geeft deze vrij.
  4. Werk bij van supportedCapabilities.diskControllerTypes naar SCSI, NVMe op de besturingssysteemschijf.
  5. Wijzigt de grootte van de VIRTUELE machine in de doel-SKU en stelt het type schijfcontroller in op NVMe.
  6. Start de VM op (met -StartVM).

4. Controleer de conversie

Bevestigen met behulp van PowerShell

Nadat de VIRTUELE machine opnieuw is opgestart, controleert u of het type schijfcontroller is gewijzigd.

$vm = Get-AzVM -ResourceGroupName "<resource-group-name>" -VMName "<vm-name>"
$vm.StorageProfile.DiskControllerType

Controleer het resultaat in het gastsysteem

Controleer de apparaten met behulp van de nvme opdracht. Als de nvme opdracht ontbreekt, installeert u het nvme-cli pakket.

nvme list

De uitvoer toont de besturingssysteemschijf en de gegevensschijven.

Aanbeveling

U kunt altijd terugkeren naar SCSI. Het script biedt een opdracht aan het einde van een geslaagde uitvoering om terug te keren naar de oorspronkelijke configuratie. Sla deze opdracht op voordat u de sessie sluit.

Als u het script wilt terugdraaien, voert u het script opnieuw uit met -NewControllerType SCSI de oorspronkelijke VM-SKU:

.\Azure-NVMe-Conversion.ps1 -ResourceGroupName <your-RG> -VMName <your-VMname> -NewControllerType SCSI -VMSize <original-SKU> -StartVM