Activation de l’interface NVMe et SCSI sur une machine virtuelle

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez l’aide sur la fin de vie de CentOS.

NVMe est l’acronyme de Nonvolatile Memory Express (mémoire non volatile express), qui est un protocole de communication qui facilite le transfert de données plus rapide et plus efficace entre les serveurs et les systèmes de stockage. Avec NVMe, les données peuvent être transférées au débit le plus élevé et avec le temps de réponse le plus rapide. Azure prend désormais en charge l’interface NVMe sur les familles Ebsv5 et Ebdsv5, offrant les performances d’IOPS et de débit les plus élevées pour le stockage sur disque distant parmi toutes les séries de machines virtuelles GP v5.

SCSI (Small Computer System Interface) est une norme héritée pour la connexion physique et le transfert de données entre des ordinateurs et des périphériques. Bien que les tailles de machines virtuelles Ebsv5 prennent toujours en charge SCSI, nous vous recommandons de basculer vers NVMe pour de meilleures performances.

Prérequis

Une nouvelle fonctionnalité a été ajoutée à la configuration de la machine virtuelle, appelée DiskControllerType, qui permet aux clients de sélectionner leur type de contrôleur préféré comme NVMe ou SCSI. Si le client ne spécifie pas de valeur DiskControllerType, la plateforme choisit automatiquement le contrôleur par défaut en fonction de la configuration de la taille de machine virtuelle. Si la taille de la machine virtuelle est configurée pour SCSI comme valeur par défaut et prend en charge NVMe, SCSI est utilisé, sauf s’il est mis à jour vers le DiskControllerType NVMe.

Pour activer l’interface NVMe, les conditions préalables suivantes doivent être remplies :

  • Choisissez une famille de machines virtuelles qui prend en charge NVMe. Il est important de noter que seules les tailles de machines virtuelles Ebsv5 et Ebdsv5 sont équipées de NVMe dans les machines virtuelles de génération Intel v5. Veillez à sélectionner l’une des machines virtuelles de la série, Ebsv5 ou Ebdsv5.
  • Sélectionnez l’image du système d’exploitation marquée avec la prise en charge NVMe.
  • Optez pour NVMe en sélectionnant le type de contrôleur de disque NVMe dans le Portail Microsoft Azure ou un modèle ARM/CLI/PowerShell. Pour obtenir des instructions pas à pas, rendez-vous ici.
  • Seules les images Gen2 sont prises en charge.
  • Choisissez l’une des régions Azure où NVMe est activé.

En remplissant les cinq conditions ci-dessus, vous serez en mesure d’activer NVMe sur la famille de machines virtuelles prise en charge en un rien de temps. Suivez les conditions ci-dessus pour créer ou redimensionner correctement une machine virtuelle avec NVMe sans aucune complication. Reportez-vous à la Foire aux questions pour en savoir plus sur l’activation de NVMe.

Images de système d’exploitation prises en charge

Linux

Distribution Image
Almalinux 8.x (actuellement 8.7) almalinux : almalinux:8-gen2 : dernière version
Almalinux 9.x (actuellement 9.1) almalinux : almalinux:9-gen2 : dernière version
Debian 11 Debian : debian-11:11-gen2 : dernière version
CentOS 7.9 openlogic : centos:7_9-gen2 : dernière version
RHEL 7.9 RedHat :RHEL:79-gen2 : dernière version
RHEL 8.6 RedHat :RHEL:86-gen2 : dernière version
RHEL 8.7 RedHat :RHEL:87-gen2 : dernière version
RHEL 9.0 RedHat: RHEL:90-gen2: latest
RHEL 9.1 RedHat :RHEL:91-gen2 : dernière version
Ubuntu 18.04 Canonical:UbuntuServer:18_04-lts-gen2:latest
Ubuntu 20.04 Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest
Ubuntu 22.04 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest
Oracle 7.9 Oracle: Oracle-Linux:79-gen2:latest
Oracle 8.5 Oracle : Oracle-Linuz:ol85-lvm-gen2:latest
Oracle 8.6 Oracle:Oracle-Linux:ol86-lvm-gen2:latest
Oracle 8.7 Oracle : Oracle-Linux:ol87-lvm-gen2:latest
Oracle 9.0 Oracle : Oracle-Linux:ol9-lvm-gen2:latest
Oracle 9.1 Oracle : Oracle-Linux:ol91-lvm-gen2:latest
SLES-pour-SAP 15.3 SUSE:sles-sap-15-sp3:gen2:latest
SLES-pour-SAP 15.4 SUSE:sles-sap-15-sp4:gen2:latest
SLES 15.4 SUSE:sles-15-sp4:gen2:latest
SLES 15.5 SUSE:sles-15-sp5:gen2:latest

Windows

Lancement d’une machine virtuelle avec l’interface NVMe

NVMe peut être activé lors de la création de la machine virtuelle à l’aide de différentes méthodes telles que : Portail Microsoft Azure, CLI, PowerShell et les modèles ARM. Pour créer une machine virtuelle NVMe, vous devez d’abord activer l’option NVMe sur une machine virtuelle et sélectionner le type de disque du contrôleur NVMe pour la machine virtuelle. Notez que le diskcontrollertype NVMe peut être activé lors de la création ou mis à jour vers NVMe lorsque la machine virtuelle est arrêtée et libérée, à condition que la taille de la machine virtuelle prenne en charge NVMe.

Affichage du Portail Microsoft Azure

  1. Ajoutez un filtre de contrôleur de disque. Pour trouver les tailles éligibles NVMe, sélectionnez Afficher toutes les tailles, sélectionnez le filtre Contrôleur de disque, puis NVMe :

    Capture d’écran des instructions pour ajouter un filtre de contrôleur de disque pour l’interface NVMe.

  2. Activez la fonctionnalité NVMe en accédant à l’onglet Avancé.

    Capture d’écran des instructions pour activer la fonctionnalité d’interface NVMe.

  3. Vérifiez que la fonctionnalité est activée en accédant à Vérifier et créer.

    Capture d’écran des instructions pour examiner et vérifier l’activation des fonctionnalités.

Exemple de modèle ARM



{
    "apiVersion": "2022-08-01",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "[variables('vmName')]",
    "location": "[parameters('location')]",
    "identity": {
        "type": "userAssigned",
        "userAssignedIdentities": {
            "/subscriptions/ <EnterSubscriptionIdHere> /resourcegroups/ManagedIdentities/providers/Microsoft.ManagedIdentity/userAssignedIdentities/KeyVaultReader": {}
        }
    },
    "dependsOn": [
        "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
    ],
    "properties": {
        "hardwareProfile": {
            "vmSize": "[parameters('vmSize')]"
        },
        "osProfile": "[variables('vOsProfile')]",
        "storageProfile": {
            "imageReference": "[parameters('osDiskImageReference')]",
            "osDisk": {
                "name": "[variables('diskName')]",
                "caching": "ReadWrite",
                "createOption": "FromImage"
            },
            "copy": [
                {
                    "name": "dataDisks",
                    "count": "[parameters('numDataDisks')]",
                    "input": {
                        "caching": "[parameters('dataDiskCachePolicy')]",
                        "writeAcceleratorEnabled": "[parameters('writeAcceleratorEnabled')]",
                        "diskSizeGB": "[parameters('dataDiskSize')]",
                        "lun": "[add(copyIndex('dataDisks'), parameters('lunStartsAt'))]",
                        "name": "[concat(variables('vmName'), '-datadisk-', copyIndex('dataDisks'))]",
                        "createOption": "Attach",
                        "managedDisk": {
                            "storageAccountType": "[parameters('storageType')]",
                            "id": "[resourceId('Microsoft.Compute/disks/', concat(variables('vmName'), '-datadisk-', copyIndex('dataDisks')))]"
                        }
                    }
                }
            ],
            "diskControllerTypes": "NVME"
        },
        "securityProfile": {
            "encryptionAtHost": "[parameters('encryptionAtHost')]"
        },
                          
        "networkProfile": {
            "networkInterfaces": [
                {
                    "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
                }
            ]
        },
        "availabilitySet": {
            "id": "[resourceId('Microsoft.Compute/availabilitySets', parameters('availabilitySetName'))]"
        }
    },
    "tags": {
        "vmName": "[variables('vmName')]",

      "location": "[parameters('location')]",

                "dataDiskSize": "[parameters('dataDiskSize')]",

                "numDataDisks": "[parameters('numDataDisks')]",

                "dataDiskCachePolicy": "[parameters('dataDiskCachePolicy')]",

                "availabilitySetName": "[parameters('availabilitySetName')]",

                "customScriptURL": "[parameters('customScriptURL')]",

                "SkipLinuxAzSecPack": "True",

                "SkipASMAzSecPack": "True",

                "EnableCrashConsistentRestorePoint": "[parameters('enableCrashConsistentRestorePoint')]"

            }

        }

Conseil

Utilisez le même paramètre DiskControllerType si vous utilisez les outils PowerShell ou CLI pour lancer la machine virtuelle NVMe prise en charge.

Étapes suivantes