Attacher un disque de données à une machine virtuelle Windows dans Azure avec PowerShell

S’applique à : ✔️ Machines virtuelles Windows ✔️ Ensembles à dimensionnement flexible

Cet article vous explique comment attacher des disques nouveaux et existants à une machine virtuelle Windows à l’aide de PowerShell.

Commencez par passer en revue ces conseils :

Cet article utilise PowerShell dans Azure Cloud Shell, qui est constamment mise à jour vers la dernière version. Pour ouvrir Cloud Shell, sélectionnez Essayer en haut d’un bloc de code.

Réduire la latence d’attachement de disque de données

Dans certaines régions, la latence d’attachement de disque est réduite. Vous voyez donc une amélioration allant jusqu’à 15%. Cette amélioration est utile si vous avez des basculements, planifiés ou non, entre des machines virtuelles, si vous mettez votre charge de travail à l’échelle, ou si vous exécutez une charge de travail avec état à grande échelle, telle que le service Azure Kubernetes. Toutefois, cette amélioration est limitée à la commande d’attachement de disque explicite , Add-AzVMDataDisk. Vous ne voyez pas l’amélioration des performances si vous appelez une commande susceptible d’effectuer implicitement une attachement, comme Update-AzVM. Vous n’avez rien besoin de faire sinon appeler la commande d’attachement explicite pour voir cette amélioration.

Il est actuellement possible de bénéficier d’une latence réduite dans chaque région publique, à l’exception des suivantes :

  • Centre du Canada
  • Centre des États-Unis
  • USA Est
  • USA Est 2
  • États-Unis - partie centrale méridionale
  • USA Ouest 2
  • Allemagne Nord
  • Inde Ouest
  • Europe Nord
  • Europe Ouest

Ajouter un disque de données vide à une machine virtuelle

Cet exemple montre comment ajouter un disque de données vide à une machine virtuelle existante.

Créer et attacher un disque managé

Définissez des valeurs pour le groupe de ressources, la machine virtuelle, l’emplacement, le type de stockage et le nom du disque de données. L’applet de commande New-AzDiskConfig crée une configuration pour un disque managé 128 Gio vide, et New-AzDisk crée le disque. Ensuite, Get-AzVM obtient la configuration de la machine virtuelle, Add-AzVMDataDisk y ajoute le disque et Update-AzVM applique la configuration mise à jour à la machine virtuelle.

$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1

Update-AzVM -VM $vm -ResourceGroupName $rgName

Créer et attacher un disque managé dans une zone de disponibilité

Définissez des valeurs pour le groupe de ressources, la machine virtuelle, l’emplacement, le type de stockage et le nom du disque de données. Pour créer un disque managé dans une zone de disponibilité, utilisez-le New-AzDiskConfig avec le -Zone paramètre. L’exemple suivant crée un disque managé 128 Gio vide dans la zone 1, l’ajoute à la configuration de la machine virtuelle et applique la configuration mise à jour à la machine virtuelle.

$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US 2'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128 -Zone 1
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1

Update-AzVM -VM $vm -ResourceGroupName $rgName

Initialiser le disque

Après avoir ajouté un disque vide, vous devez l’initialiser. Pour initialiser le disque, connectez-vous à une machine virtuelle et utilisez la gestion des disques. Si vous activez WinRM et un certificat sur la machine virtuelle lors de sa création, vous pouvez utiliser PowerShell distant pour initialiser le disque.

Vous pouvez également utiliser l’applet de commande Set-AzVMCustomScriptExtension pour ajouter une extension de script personnalisé à la machine virtuelle. L’exemple suivant utilise le groupe de ressources et les noms de machines virtuelles de la procédure de pièce jointe, ainsi que des valeurs pour l’emplacement de la machine virtuelle, le nom de l’extension, le fichier de script d’initialisation, le nom du compte de stockage, la clé de compte de stockage et le nom du conteneur. Stockez le script dans le conteneur stockage Azure spécifié avant d’exécuter la commande :

    $location = "location-name"
    $scriptName = "script-name"
    $fileName = "script-file-name"
    Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $location -VMName $vmName -Name $scriptName -TypeHandlerVersion "1.4" -StorageAccountName "mystore1" -StorageAccountKey "primary-key" -FileName $fileName -ContainerName "scripts"

Le fichier de script peut contenir du code pour initialiser les disques, par exemple :

Remarque

L’exemple de script utilise le style de partition MBR. Si votre disque est supérieur ou égal à deux tebioctets (Tio, TiB), vous devez utiliser le partitionnement GPT. Si c'est inférieur à deux To, vous pouvez utiliser soit MBR, soit GPT.

    $disks = Get-Disk | Where partitionstyle -eq 'raw' | sort number

    $letters = 70..89 | ForEach-Object { [char]$_ }
    $count = 0
    $labels = "data1","data2"

    foreach ($disk in $disks) {
        $driveLetter = $letters[$count].ToString()
        $disk |
        Initialize-Disk -PartitionStyle MBR -PassThru |
        New-Partition -UseMaximumSize -DriveLetter $driveLetter |
        Format-Volume -FileSystem NTFS -NewFileSystemLabel $labels[$count] -Confirm:$false -Force
	$count++
    }

Ajouter un disque de données existant à une machine virtuelle

Définissez des valeurs pour le groupe de ressources, la machine virtuelle et le nom de disque managé existant. Utilisez Get-AzDisk pour obtenir le disque managé et Get-AzVM obtenir la configuration de la machine virtuelle. Ensuite, utilisez cette option Add-AzVMDataDisk pour ajouter le disque existant à la configuration de la machine virtuelle et Update-AzVM appliquer la configuration mise à jour à la machine virtuelle.

$rgName = "myResourceGroup"
$vmName = "myVM"
$dataDiskName = "myDisk"
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName

$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName

$vm = Add-AzVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id

Update-AzVM -VM $vm -ResourceGroupName $rgName

Étapes suivantes

Vous pouvez également déployer des disques managés à l’aide de modèles. Pour plus d’informations, consultez Utilisation de disques managés dans des modèles Azure Resource Manager ou le modèle de démarrage rapide pour le déploiement de plusieurs disques de données.