Convertir des machines virtuelles Linux et Windows de SCSI en NVMe

Azure machines virtuelles prennent en charge deux interfaces de contrôleur de stockage : Small Computer System Interface (SCSI) et NVM Express (NVMe). SCSI est une norme héritée qui fournit une connectivité physique et un transfert de données entre les ordinateurs et les périphériques. NVMe fournit une connectivité similaire, mais est une interface plus rapide et plus efficace pour le transfert de données entre les serveurs et les systèmes de stockage.

Cet article explique comment convertir une machine virtuelle Azure à partir d’un contrôleur de disque SCSI en NVMe à l’aide de Azure Boost et du script de conversion NVMe Azure. Le même script et la même procédure s’appliquent à :

  • Machines virtuelles Linux et Windows.
  • Machines virtuelles avec ou sans disques de données et disque temporaire.

Azure continue de prendre en charge l’interface SCSI sur les offres de machine virtuelle qui fournissent un stockage SCSI. Toutefois, toutes les nouvelles séries de machines virtuelles n’incluent pas SCSI comme option à l’avenir.

Qu’est-ce qui change pour votre machine virtuelle ?

La modification de l’interface hôte de SCSI en NVMe ne modifie pas le stockage distant (disque du système d’exploitation ou disques de données). Il modifie la façon dont le système d’exploitation utilise les disques.

Disque Machine virtuelle SCSI Machine virtuelle NVMe (v5 avec disque temporaire) Machine virtuelle NVMe (v6)
Disque de système d’exploitation /dev/sda /dev/nvme0n1 /dev/nvme0n1
Disque temporaire /dev/sdb /dev/sda /dev/nvme1n1
Premier disque de données /dev/sdc /dev/nvme0n2 /dev/nvme0n2

La conversion de votre machine virtuelle Azure de SCSI en NVMe à l’aide de Azure Boost peut vous aider à tirer pleinement parti de ces améliorations de performances et à maintenir une périphérie concurrentielle dans le paysage du cloud computing.

Migrer une machine virtuelle de SCSI vers NVMe

Pour migrer de SCSI vers NVMe, procédez comme suit :

  1. Vérifiez que votre série de machines virtuelles prend en charge NVMe.
  2. Vérifiez les conditions préalables pour votre système d’exploitation.
  3. Convertissez votre machine virtuelle en NVMe.
  4. Vérifiez la conversion.

1. Vérifiez si votre série de machines virtuelles prend en charge NVMe

La table de disponibilité Azure Boost répertorie les tailles de machine virtuelle qui prennent en charge les disques attachés NVMe.

2. Vérifiez les conditions préalables

Avant de commencer, vérifiez que les conditions préalables suivantes sont remplies :

  • Un abonnement Azure et une machine virtuelle que vous devez convertir de SCSI en NVMe ou de NVMe en SCSI
  • PowerShell et le module Az installés et configurés
  • Autorisations appropriées pour exécuter des scripts sur des ressources Azure

3. Utilisation

Pour exécuter le script, ouvrez PowerShell en tant qu’administrateur et procédez comme suit :

  1. Installez PowerShell ou exécutez le script sur Azure Cloud Shell.

Conseil / Astuce

Installez PowerShell à l’aide de la documentation PowerShell.

  1. Autoriser les fichiers de script PowerShell non signés.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. Connectez-vous à votre compte Azure à l’aide Connect-AzAccountde .
Connect-AzAccount
  1. Vérifiez que vous êtes connecté à votre abonnement. Pour modifier l’abonnement, utilisez Set-AzContext.
Select-AzSubscription -Subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  1. Téléchargez le 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. Exécutez le script de conversion.
.\Azure-NVMe-Conversion.ps1

Note

Si vous convertissez des tailles de machine virtuelle avec une prise en charge de disque différente (temporaire), votre abonnement Azure doit être inscrit pour la VMTempDiskResizePreview fonctionnalité. Si la fonctionnalité n’est pas inscrite, le script se termine par une erreur. Inscrivez la fonctionnalité à l’aide de la commande suivante, attendez 10 minutes pour que l’approbation automatique prenne effet, puis réexécutez le script.

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

Le script a les paramètres suivants.

Paramètre Descriptif Obligatoire
-ResourceGroupName Nom du groupe de ressources de votre machine virtuelle. Oui
-VMName Nom de votre machine virtuelle sur Azure. Oui
-NewControllerType Type de contrôleur de stockage pour convertir la machine virtuelle en (NVMe ou SCSI). Oui
-VMSize Référence SKU de machine virtuelle Azure vers lequel convertir la machine virtuelle. Oui
-StartVM Démarrez la machine virtuelle après la conversion. Non
-FixOperatingSystemSettings Corrigez automatiquement les paramètres du système d’exploitation à l’aide de Azure Exécuter des commandes. Non
-WriteLogfile Créez un fichier journal. Non
-IgnoreSKUCheck Ignorer la vérification du SKU de la machine virtuelle. Non
-IgnoreWindowsVersionCheck Ignorez la vérification de la version Windows. Non
-IgnoreAzureModuleCheck N'exécutez pas la vérification des modules installés Azure. Non
-IgnoreOSCheck Ne vérifiez pas la préparation du système d’exploitation. L’attente est que le système d’exploitation est prêt. Non
-SleepSeconds Délai de Azure pour régler les modifications avant de démarrer la machine virtuelle. Non

Le script effectue les étapes suivantes :

  1. Valide les versions du module Az, l’existence de machine virtuelle, le type de système d’exploitation, la génération, le type de contrôleur actuel et la fonctionnalité NVMe de la référence SKU de machine virtuelle cible.
  2. Avec -FixOperatingSystemSettings, valide et configure le système d’exploitation invité pour NVMe à l’aide de Azure Commande d’exécution :
    • Sur Linux, vérifie que le pilote NVMe se trouve dans initrd/initramfs, définit nvme_core.io_timeout=240et recherche les /etc/fstab noms d’appareils déconseillés.
    • Sur Windows, configure le stornvme pilote pour démarrer au démarrage (sc.exe config stornvme start=boot).
  3. Arrête et désalloue la machine virtuelle.
  4. Mises à SCSI, NVMe jour supportedCapabilities.diskControllerTypes sur le disque du système d’exploitation.
  5. Redimensionne la machine virtuelle sur la référence SKU cible et définit le type de contrôleur de disque sur NVMe.
  6. Démarre la machine virtuelle (avec -StartVM).

4. Vérifier la conversion

Confirmer à l’aide de PowerShell

Une fois la machine virtuelle redémarrée, vérifiez que le type de contrôleur de disque a été modifié correctement.

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

Vérifier le résultat à l’intérieur de l’invité

Vérifiez les appareils à l’aide de la nvme commande. Si la nvme commande est manquante, installez le nvme-cli package.

nvme list

La sortie affiche le disque du système d’exploitation et les disques de données.

Conseil / Astuce

Vous pouvez toujours revenir à SCSI. Le script fournit une commande à la fin d’une exécution réussie pour revenir à votre configuration d’origine. Enregistrez cette commande avant de fermer la session.

Si vous devez restaurer, réexécutez le script avec -NewControllerType SCSI et la référence SKU de machine virtuelle d’origine :

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