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.

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 converteert tussen VM-grootten met verschillende schijfondersteuning voor resources (tijdelijk), moet uw Azure-abonnement zijn geregistreerd voor de VMTempDiskResizePreview functie. 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 om de VIRTUELE machine te converteren naar (NVMe of SCSI). Ja
-VMSize De Azure VM-SKU om de VIRTUELE machine te converteren naar. 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. Hiermee -FixOperatingSystemSettingsvalideert en configureert u het gastbesturingssystemen voor NVMe met behulp van Azure Opdracht Uitvoeren:
    • Controleer in Linux of het NVMe-stuurprogramma zich in initrd/initramfshet NVMe-stuurprogramma bevindt, stelt nvme_core.io_timeout=240en controleert op /etc/fstab afgeschafte 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. Updates supportedCapabilities.diskControllerTypes voor 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 binnen de gast

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