Konvertieren von Linux- und Windows-VMs von SCSI in NVMe

Azure virtuellen Computer (VMs) unterstützen zwei Speichercontrollerschnittstellen: Small Computer System Interface (SCSI) und NVM Express (NVMe). SCSI ist ein Legacystandard, der physische Konnektivität und Datenübertragung zwischen Computern und Peripheriegeräten bietet. NVMe bietet eine ähnliche Konnektivität, ist aber eine schnellere und effizientere Schnittstelle für die Datenübertragung zwischen Servern und Speichersystemen.

In diesem Artikel erfahren Sie, wie Sie einen Azure virtuellen Computer mithilfe von Azure Boost und dem AZURE NVMe-Konvertierungsskript von einem SCSI-Datenträgercontroller in NVMe konvertieren. Dasselbe Skript und die gleiche Prozedur gelten für:

  • Linux- und Windows-VMs.
  • Virtuelle Computer mit oder ohne Datenträger und einem temporären Datenträger.

Azure unterstützt weiterhin die SCSI-Schnittstelle auf den VM-Angeboten, die SCSI-Speicher bereitstellen. Nicht alle neuen VM-Reihen enthalten SCSI als Option in Zukunft.

Was ändert sich für Ihren virtuellen Computer?

Durch das Ändern der Hostschnittstelle von SCSI zu NVMe wird der Remotespeicher (Betriebssystemdatenträger oder -datenträger) nicht geändert. Sie ändert die Art und Weise, wie das Betriebssystem die Datenträger verwendet.

Datenträger SCSI-VM NVMe-VM (v5 mit temporärem Datenträger) NVMe-VM (v6)
Betriebssystem-Datenträger /dev/sda /dev/nvme0n1 /dev/nvme0n1
Temporärer Datenträger /dev/sdb /dev/sda /dev/nvme1n1
Erster Datenträger /dev/sdc /dev/nvme0n2 /dev/nvme0n2

Das Konvertieren Ihrer Azure VM von SCSI in NVMe mithilfe von Azure Boost kann Ihnen helfen, diese Leistungsverbesserungen vollständig zu nutzen und einen Wettbewerbsvorteil in der Cloud Computing-Landschaft zu erhalten.

Migrieren eines virtuellen Computers von SCSI zu NVMe

Führen Sie die folgenden allgemeinen Schritte aus, um von SCSI zu NVMe zu migrieren:

  1. Überprüfen Sie, ob Ihre VM-Serie NVMe unterstützt.
  2. Überprüfen Sie die Voraussetzungen für Ihr Betriebssystem.
  3. Konvertieren Sie Ihren virtuellen Computer in NVMe.
  4. Überprüfen Sie die Konvertierung.

1. Überprüfen Sie, ob Ihre virtuelle Computer-Serie NVMe unterstützt

In der Tabelle Azure Heraufwendbarkeit werden die VM-Größen aufgelistet, die NVMe-angefügte Datenträger unterstützen.

2. Überprüfen Der Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Voraussetzungen verfügen:

  • Ein Azure-Abonnement und ein virtueller Computer, den Sie von SCSI in NVMe oder von NVMe in SCSI konvertieren müssen
  • PowerShell und das Az-Modul installiert und konfiguriert
  • Geeignete Berechtigungen zum Ausführen von Skripts für Azure Ressourcen

3. Nutzung

Um das Skript auszuführen, öffnen Sie PowerShell als Administrator, und führen Sie die folgenden Schritte aus:

  1. Installieren Sie PowerShell, oder führen Sie das Skript auf Azure Cloud Shell aus.

Tipp

Installieren Sie PowerShell mithilfe der PowerShell-Dokumentation.

  1. Nicht signierte PowerShell-Skriptdateien zulassen.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Stellen Sie eine Verbindung mit Ihrem Azure Konto mithilfe von Connect-AzAccount.
Connect-AzAccount
  1. Stellen Sie sicher, dass Sie mit Ihrem Abonnement verbunden sind. Um das Abonnement zu ändern, verwenden Sie Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Laden Sie das Skript herunter.
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. Führen Sie das Konvertierungsskript aus.
.\Azure-NVMe-Conversion.ps1

Note

Wenn Sie zwischen VM-Größen mit unterschiedlicher Ressourcenunterstützung (temporärer) Datenträger konvertieren, muss Ihr Azure-Abonnement für das VMTempDiskResizePreview Feature registriert werden. Wenn das Feature nicht registriert ist, wird das Skript mit einem Fehler beendet. Registrieren Sie das Feature mithilfe des folgenden Befehls, warten Sie 10 Minuten, bis die automatische Genehmigung wirksam wird, und führen Sie dann das Skript erneut aus.

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

Das Skript weist die folgenden Parameter auf.

Parameter BESCHREIBUNG Erforderlich
-ResourceGroupName Der Ressourcengruppenname für Ihren virtuellen Computer. Ja
-VMName Der Name Ihrer VM auf Azure. Ja
-NewControllerType Der Speichercontrollertyp, in den der virtuelle Computer konvertiert werden soll (NVMe oder SCSI). Ja
-VMSize Die Azure VM-SKU zum Konvertieren der VM in. Ja
-StartVM Starten Sie den virtuellen Computer nach der Konvertierung. Nein
-FixOperatingSystemSettings Korrigieren Sie die Betriebssystemeinstellungen automatisch mithilfe von Azure Ausführen von Befehlen. Nein
-WriteLogfile Erstellen Sie eine Protokolldatei. Nein
-IgnoreSKUCheck Ignorieren Sie die Überprüfung der VM-SKU. Nein
-IgnoreWindowsVersionCheck Ignorieren Sie die Windows Versionsüberprüfung. Nein
-IgnoreAzureModuleCheck Führen Sie die Überprüfung nicht auf installierte Azure Module aus. Nein
-IgnoreOSCheck Überprüfen Sie nicht auf die Betriebssystembereitschaft. Es wird erwartet, dass das Betriebssystem bereit ist. Nein
-SleepSeconds Die Zeit, die Azure benötigt, um Änderungen zu übernehmen, bevor der virtuelle Computer gestartet wird. Nein

Das Skript führt die folgenden Schritte aus:

  1. Überprüft Az-Modulversionen, VM-Existenz, Betriebssystemtyp, Generation, aktueller Controllertyp und NVMe-Funktion der Ziel-VM-SKU.
  2. Überprüft -FixOperatingSystemSettingsund konfiguriert das Gastbetriebssystem für NVMe mithilfe von Azure Befehl ausführen:
    • Überprüft unter Linux, ob der NVMe-Treiber in initrd/initramfsist, legt fest nvme_core.io_timeout=240und sucht nach /etc/fstab veralteten Gerätenamen.
    • Konfiguriert auf Windows den Treiber für den stornvme Start (sc.exe config stornvme start=boot).
  3. Stoppt den virtuellen Computer und gibt ihn frei.
  4. Updates supportedCapabilities.diskControllerTypes auf SCSI, NVMe dem Betriebssystemdatenträger.
  5. Ändert die Größe des virtuellen Computers an die Ziel-SKU und legt den Datenträgercontrollertyp auf NVMe fest.
  6. Startet den virtuellen Computer (mit -StartVM).

4. Überprüfen der Konvertierung

Bestätigen mithilfe von PowerShell

Vergewissern Sie sich nach dem Neustart des virtuellen Computers, dass der Datenträgercontrollertyp erfolgreich geändert wurde.

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

Überprüfen des Ergebnisses innerhalb des Gasts

Überprüfen Sie die Geräte mithilfe des nvme Befehls. Wenn der nvme Befehl fehlt, installieren Sie das nvme-cli Paket.

nvme list

Die Ausgabe zeigt den Betriebssystemdatenträger und die Datenträger an.

Tipp

Sie können jederzeit auf SCSI zurücksetzen. Das Skript stellt einen Befehl am Ende einer erfolgreichen Ausführung bereit, um zur ursprünglichen Konfiguration zurück zu wechseln. Speichern Sie diesen Befehl, bevor Sie die Sitzung schließen.

Wenn Sie ein Rollback ausführen müssen, führen Sie das Skript erneut mit -NewControllerType SCSI und der ursprünglichen VM-SKU aus:

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