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

Maszyny wirtualne platformy Azure (VM) obsługują dwa interfejsy kontrolerów magazynu: Small Computer System Interface (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 w ofertach maszyn wirtualnych, które oferują magazyn danych 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ę.

Note

Niestandardowe maszyny wirtualne uruchamiające oprogramowanie innych firm, które może modyfikować zachowanie podczas rozruchu, sterowniki magazynu danych, sterowniki filtrujące lub wykrywanie dysków, nie są obecnie obsługiwanym scenariuszem migracji. Przykłady obejmują niektóre produkty do tworzenia kopii zapasowych, zabezpieczeń, ochrony punktu końcowego i zarządzania magazynem. W przypadku tych konfiguracji Azure pomoc techniczna może mieć ograniczoną możliwość diagnozowania lub korygowania błędów migracji. Przetestuj konwersję na reprezentatywnej maszynie wirtualnej nieprodukcyjnej przed kontynuowaniem pracy z obciążeniami produkcyjnymi.

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

Jeśli zmieniasz rozmiar maszyny wirtualnej między rozmiarami obsługującymi różne typy dysków zasobów (tymczasowych), Twoja subskrypcja platformy Azure musi być zarejestrowana dla funkcji VMTempDiskResizePreview. 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 pamięci masowej, na jaki ma zostać przekonwertowana maszyna wirtualna (NVMe lub SCSI). Tak
-VMSize Jednostka SKU maszyny wirtualnej Azure, na którą ma zostać przekonwertowana maszyna wirtualna. Tak
-StartVM Uruchom maszynę wirtualną po konwersji. Nie.
-FixOperatingSystemSettings Automatycznie napraw ustawienia systemu operacyjnego za pomocą poleceń uruchamiania w usłudze Azure. 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 pomocą -FixOperatingSystemSettings weryfikuje i konfiguruje system operacyjny gościa pod kątem NVMe za pomocą funkcji Azure Run Command:
    • W systemie Linux sprawdza, czy sterownik NVMe znajduje się w initrd/initramfs, ustawia nvme_core.io_timeout=240 i sprawdza /etc/fstab pod kątem przestarzałych nazw urządzeń.
    • W systemie Windows konfiguruje sterownik stornvme do uruchamiania podczas rozruchu (sc.exe config stornvme start=boot).
  3. Zatrzymuje i cofa przydział maszyny wirtualnej.
  4. Aktualizuje supportedCapabilities.diskControllerTypes do SCSI, NVMe na dysku systemowym.
  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 za pomocą polecenia nvme. Jeśli brakuje polecenia nvme, zainstaluj pakiet nvme-cli.

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