Konwertowanie maszyn wirtualnych z systemem Linux i Windows z SCSI na nvme

Azure maszyny wirtualne obsługują dwa interfejsy kontrolera magazynu: Mały interfejs systemu komputerowego (SCSI) i NVM Express (NVMe). SCSI to starszy standard, który zapewnia łączność fizyczną i transfer danych między komputerami i urządzeniami peryferyjnymi. Urządzenie NVMe zapewnia podobną łączność, ale jest szybszym i bardziej wydajnym interfejsem do transferu danych między serwerami i systemami magazynowania.

W tym artykule pokazano, jak przekonwertować maszynę wirtualną Azure z kontrolera dysku SCSI na nvme przy użyciu narzędzia Azure Boost i skryptu konwersji Azure NVMe. Ten sam skrypt i procedura mają zastosowanie do:

  • Maszyny wirtualne z systemem Linux i Windows.
  • Maszyny wirtualne z dyskami danych lub bez tych dysków oraz dysk tymczasowy.

Azure nadal obsługuje interfejs SCSI na maszynach wirtualnych, które zapewniają magazyn SCSI. Jednak nie wszystkie nowe serie maszyn wirtualnych obejmują SCSI jako opcję w przyszłości.

Co się zmienia dla maszyny wirtualnej?

Zmiana interfejsu hosta z SCSI na NVMe nie powoduje zmiany magazynu zdalnego (dysku systemu operacyjnego lub dysków danych). Zmienia sposób korzystania z dysków przez system operacyjny.

Disk Maszyna wirtualna SCSI Maszyna wirtualna NVMe (wersja 5 z dyskiem tymczasowym) Maszyna wirtualna NVMe (wersja 6)
Dysk systemu operacyjnego /dev/sda /dev/nvme0n1 /dev/nvme0n1
Dysk tymczasowy /dev/sdb /dev/sda /dev/nvme1n1
Pierwszy dysk danych /dev/sdc /dev/nvme0n2 /dev/nvme0n2

Konwertowanie maszyny wirtualnej Azure z SCSI na nvme przy użyciu narzędzia Azure Boost może pomóc w pełni wykorzystać te ulepszenia wydajności i utrzymać przewagę konkurencyjną w środowisku przetwarzania w chmurze.

Migrowanie maszyny wirtualnej z SCSI do nvme

Aby przeprowadzić migrację z SCSI do nvme, wykonaj następujące ogólne kroki:

  1. Sprawdź, czy seria maszyn wirtualnych obsługuje nvme.
  2. Sprawdź wymagania wstępne dotyczące systemu operacyjnego.
  3. Przekonwertuj maszynę wirtualną na nvme.
  4. Sprawdź konwersję.

1. Sprawdź, czy seria maszyn wirtualnych obsługuje urządzenie NVMe

W tabeli dostępności Azure Boost wymieniono rozmiary maszyn wirtualnych, które obsługują dyski dołączone do nvme.

2. Sprawdź wymagania wstępne

Przed rozpoczęciem upewnij się, że masz następujące wymagania wstępne:

  • Subskrypcja Azure i maszyna wirtualna, którą należy przekonwertować z SCSI na nvme lub NVMe na SCSI
  • Program PowerShell i moduł Az zainstalowany i skonfigurowany
  • Odpowiednie uprawnienia do wykonywania skryptów w zasobach Azure

3. Użycie

Aby uruchomić skrypt, otwórz program PowerShell jako administrator i wykonaj następujące kroki:

  1. Zainstaluj program PowerShell lub uruchom skrypt w Azure Cloud Shell.

Wskazówka

Zainstaluj program PowerShell przy użyciu dokumentacji programu PowerShell.

  1. Zezwalaj na niepodpisane pliki skryptów programu PowerShell.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Nawiąż połączenie z kontem Azure przy użyciu polecenia Connect-AzAccount.
Connect-AzAccount
  1. Upewnij się, że masz połączenie z subskrypcją. Aby zmienić subskrypcję, użyj polecenia Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Pobierz skrypt.
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. Uruchom skrypt konwersji.
.\Azure-NVMe-Conversion.ps1

Note

W przypadku konwertowania między rozmiarami maszyn wirtualnych z obsługą różnych zasobów (tymczasowych) musisz zarejestrować subskrypcję Azure dla VMTempDiskResizePreview tej funkcji. Jeśli funkcja nie jest zarejestrowana, skrypt kończy działanie z powodu błędu. Zarejestruj funkcję przy użyciu następującego polecenia, poczekaj 10 minut, aż automatyczne zatwierdzenie zostanie zastosowane, a następnie uruchom ponownie skrypt.

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

Skrypt ma następujące parametry.

Parameter Opis Wymagane
-ResourceGroupName Nazwa grupy zasobów maszyny wirtualnej. Tak
-VMName Nazwa maszyny wirtualnej na Azure. Tak
-NewControllerType Typ kontrolera magazynu, aby przekonwertować maszynę wirtualną na (NVMe lub SCSI). Tak
-VMSize Jednostka SKU maszyny wirtualnej Azure do konwersji maszyny wirtualnej na. Tak
-StartVM Uruchom maszynę wirtualną po konwersji. Nie.
-FixOperatingSystemSettings Automatycznie napraw ustawienia systemu operacyjnego przy użyciu Azure uruchom polecenia. Nie.
-WriteLogfile Utwórz plik dziennika. Nie.
-IgnoreSKUCheck Ignoruj sprawdzanie SKU maszyny wirtualnej. Nie.
-IgnoreWindowsVersionCheck Ignoruj sprawdzanie wersji Windows. Nie.
-IgnoreAzureModuleCheck Nie uruchamiaj sprawdzania zainstalowanych modułów Azure. Nie.
-IgnoreOSCheck Nie sprawdzaj gotowości systemu operacyjnego. Oczekuje się, że system operacyjny jest gotowy. Nie.
-SleepSeconds Czas Azure na rozliczenie zmian przed uruchomieniem maszyny wirtualnej. Nie.

Skrypt wykonuje następujące kroki:

  1. Sprawdza poprawność wersji modułu Az, istnienia maszyny wirtualnej, typu systemu operacyjnego, generowania, bieżącego typu kontrolera i możliwości NVMe docelowej jednostki SKU maszyny wirtualnej.
  2. Za -FixOperatingSystemSettingspomocą polecenia program weryfikuje i konfiguruje system operacyjny gościa dla urządzenia NVMe przy użyciu polecenia Azure Uruchom:
    • W systemie Linux sprawdza, czy sterownik NVMe znajduje się w initrd/initramfssystemie , ustawia nvme_core.io_timeout=240i sprawdza /etc/fstab , czy nazwy przestarzałych urządzeń.
    • W Windows konfiguruje sterownik do uruchamiania przy rozruchu stornvme (sc.exe config stornvme start=boot).
  3. Zatrzymuje i cofa przydział maszyny wirtualnej.
  4. SCSI, NVMe Aktualizacje supportedCapabilities.diskControllerTypes na dysku systemu operacyjnego.
  5. Zmienia rozmiar maszyny wirtualnej na docelową jednostkę SKU i ustawia typ kontrolera dysku na NVMe.
  6. Uruchamia maszynę wirtualną (przy użyciu polecenia -StartVM).

4. Weryfikowanie konwersji

Potwierdzanie przy użyciu programu PowerShell

Po ponownym uruchomieniu maszyny wirtualnej upewnij się, że typ kontrolera dysku został pomyślnie zmieniony.

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

Sprawdzanie wyniku wewnątrz gościa

Sprawdź urządzenia przy użyciu nvme polecenia . nvme Jeśli brakuje polecenia, zainstaluj nvme-cli pakiet.

nvme list

Dane wyjściowe przedstawiają dysk systemu operacyjnego i dyski danych.

Wskazówka

Zawsze można przywrócić interfejs SCSI. Skrypt udostępnia polecenie na końcu pomyślnego uruchomienia, aby przywrócić oryginalną konfigurację. Zapisz to polecenie przed zamknięciem sesji.

Jeśli musisz wycofać zmiany, uruchom ponownie skrypt z parametrem -NewControllerType SCSI i oryginalną jednostką SKU maszyny wirtualnej:

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