Zelfstudie: Schijven met virtuele-machineschaalset maken en gebruiken met Azure PowerShell
Van toepassing op: ✔️ Linux-VM's ✔️ Windows VM's ✔️ Uniforme schaalsets
Schaalsets voor virtuele machines maken gebruik van schijven voor het opslaan van het besturingssysteem, toepassingen en gegevens van het VM-exemplaar. Bij het maken en beheren van een schaalset is het belangrijk dat u een schijfgrootte en configuratie kiest die geschikt zijn voor de verwachte werkbelasting. Deze zelfstudie bevat informatie over het maken en beheren van VM-schijven. In deze zelfstudie leert u het volgende:
- Besturingssysteemschijven en tijdelijke schijven
- Gegevensschijven
- Standard- en Premium-schijven
- Schijfprestaties
- Gegevensschijven koppelen en voorbereiden
Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Notitie
In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Azure Cloud Shell gebruiken
Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.
Om Azure Cloud Shell op te starten:
| Optie | Voorbeeld/koppeling |
|---|---|
| Selecteer Nu proberen in de rechterbovenhoek van een codeblok. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. | ![]() |
| Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. | ![]() |
| Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. | ![]() |
Om de code in dit artikel in Azure Cloud Shell uit te voeren:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.
Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.
Selecteer Invoeren om de code uit te voeren.
Standaard Azure-schijven
Op het moment dat u een schaalset maakt, worden er automatisch twee schijven aan elk VM-exemplaar gekoppeld.
Besturingssysteemschijf: besturingssysteemschijven kunnen tot 2 TB groot zijn, en hosten het besturingssysteem van het VM-exemplaar. De besturingssysteemschijf is standaard gelabeld met /dev/sda. De schijfcacheconfiguratie van de besturingssysteemschijf is geoptimaliseerd voor besturingssysteemprestaties. Vanwege deze configuratie kan de besturingssysteemschijf beter geen toepassingen of gegevens hosten. Gebruik voor toepassingen en gegevens gegevensschijven, die verderop in dit artikel worden beschreven.
Tijdelijke schijf: tijdelijke schijven gebruiken een SSD-schijf die zich op dezelfde Azure-host bevindt als het VM-exemplaar. Deze schijven leveren zeer goede prestaties en kunnen worden gebruikt voor bewerkingen zoals tijdelijke gegevensverwerking. Als het VM-exemplaar echter wordt verplaatst naar een nieuwe host, worden gegevens die zijn opgeslagen op een tijdelijke schijf verwijderd. De grootte van de tijdelijke schijf wordt bepaald door de grootte van het VM-exemplaar. Tijdelijke schijven zijn gelabeld als /dev/sdb en hebben een koppelpunt van /mnt.
Groottes van tijdelijke schijven
| Type | Veelgebruikte grootten | Maximumgrootte van tijdelijke schijf (GiB) |
|---|---|---|
| Algemeen doel | A-, B- en D-serie | 1600 |
| Geoptimaliseerde rekenkracht | F-serie | 576 |
| Geoptimaliseerd geheugen | D-, E-, G- en M-serie | 6144 |
| Geoptimaliseerde opslag | L-serie | 5630 |
| GPU | N-serie | 1440 |
| Hoge prestaties | A- en H-serie | 2000 |
Azure-gegevensschijven
Er kunnen extra gegevensschijven worden toegevoegd voor het installeren van toepassingen en het opslaan van gegevens. Gegevensschijven moeten worden gebruikt in situaties waarin duurzame en responsieve gegevensopslag gewenst is. Elke gegevensschijf heeft een maximale capaciteit van 4 TB. De grootte van het VM-exemplaar bepaalt hoeveel gegevensschijven er kunnen worden gekoppeld. Voor elke VM-vCPU kunnen twee schijven worden gekoppeld.
Max. aantal gegevensschijven per VM
| Type | Veelgebruikte grootten | Max. aantal gegevensschijven per VM |
|---|---|---|
| Algemeen doel | A-, B- en D-serie | 64 |
| Geoptimaliseerde rekenkracht | F-serie | 64 |
| Geoptimaliseerd geheugen | D-, E-, G- en M-serie | 64 |
| Geoptimaliseerde opslag | L-serie | 64 |
| GPU | N-serie | 64 |
| Hoge prestaties | A- en H-serie | 64 |
Typen VM-schijven
Azure biedt twee typen schijven.
Standard-schijf
Standard Storage wordt ondersteund door HDD's en biedt voordelige en hoogwaardige opslag. Standard-schijven zijn ideaal voor een kostenefficiënte werkbelasting voor ontwikkelen en testen.
Premium-schijf
Premium-schijven worden ondersteund door hoogwaardige SSD-schijven met een lage latentie. Deze schijven worden aanbevolen voor VM's waarop productieworkloads worden uitgevoerd. Premium Storage ondersteunt virtuele machines uit de DS-serie, DSv2-serie GS-serie en FS-serie. Wanneer u een schijfgrootte selecteert, wordt de waarde omhoog afgerond naar het volgende type. Als de schijfgrootte bijvoorbeeld kleiner dan 128 GB is, is het schijftype P10. Als de schijfgrootte tussen 129 en 512 GB is, is het type een P20. Alles groter dan 512 GB is een P30.
Prestaties Premium-schijf
| Schijftype voor Premium Storage | P4 | P6 | P10 | P20 | P30 | P40 | P50 |
|---|---|---|---|---|---|---|---|
| Schijfgrootte (afronden) | 32 GB | 64 GB | 128 GB | 512 GB | 1.024 GB (1 TB) | 2.048 GB (2 TB) | 4.095 GB (4 TB) |
| Max. aantal IOP's per schijf | 120 | 240 | 500 | 2.300 | 5.000 | 7.500 | 7.500 |
| Doorvoer per schijf | 25 MB/s | 50 MB/s | 100 MB/s | 150 MB/s | 200 MB/s | 250 MB/s | 250 MB/s |
In de bovenstaande tabel wordt het max. IOP's per schijf aangegeven, maar er kan een hoger prestatieniveau worden bereikt door striping van meerdere gegevensschijven. Een virtuele machine van het type Standard_GS5 kan bijvoorbeeld maximaal 80.000 IOPS bereiken. Zie Windows VM-grootten voor gedetailleerde informatie over het maximum aantal IOP's per VM.
Schijven maken en koppelen
U kunt schijven maken en koppelen wanneer u een schaalset maakt, maar ook voor een bestaande schaalset.
Vanaf API-versie 2019-07-01 kunt u de grootte van de besturingssysteemschijf instellen in een schaalset voor virtuele machines met de eigenschap storageProfile.osDisk.diskSizeGb. Na het inrichten moet u de schijf wellicht uitbreiden of partitioneren om gebruik te maken van de volledige ruimte. Meer informatie over het uitbreiden van het volume in uw besturingssysteem in Windows of Linux.
Schijven koppelen bij het maken van een schaalset
Maak een virtuele-machineschaalset met behulp van New-AzVmss. Geef desgevraagd een gebruikersnaam en wachtwoord op voor de VM-exemplaren. Om het verkeer te distribueren naar de verschillende VM-exemplaren, wordt er ook een load balancer gemaakt. De load balancer bevat regels voor het distribueren van verkeer op TCP-poort 80, en voor het toestaan van verkeer van Extern bureaublad op TCP-poort 3389 en externe toegang via PowerShell op TCP-poort 5985.
Er worden twee schijven gemaakt met de parameter -DataDiskSizeGb. De eerste schijf is 64 GB en de tweede schijf 128 GB. Geef desgevraagd uw eigen beheerdersreferenties op voor de VM-exemplaren in de schaalset:
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-VMScaleSetName "myScaleSet" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-UpgradePolicyMode "Automatic" `
-DataDiskSizeInGb 64,128
Het duurt enkele minuten om alle schaalsetresources en VM-exemplaren te maken en te configureren.
Een schijf koppelen aan een bestaande schaalset
U kunt ook schijven koppelen aan een bestaande schaalset. Gebruik de schaalset die in de vorige stap is gemaakt om een andere schijf toe te voegen met Add-AzVmssDataDisk. In het volgende voorbeeld wordt een extra schijf van 128 GB gekoppeld aan een bestaande schaalset:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
-VirtualMachineScaleSet $vmss `
-CreateOption Empty `
-Lun 2 `
-DiskSizeGB 128
# Update the scale set to apply the change
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
De gegevensschijven voorbereiden
De schijven die worden gemaakt en die worden gekoppeld aan de VM-exemplaren in uw schaalset zijn RAW-schijven. U moet dit type schijven voorbereiden voordat u ze kunt gebruiken met uw gegevens en toepassingen. Dit doet u door een partitie en een bestandssysteem te maken en de schijven vervolgens te koppelen.
Als u dit proces wilt automatiseren voor meerdere VM-exemplaren in een schaalset, kunt u de aangepaste scriptextensie van Azure gebruiken. Met deze extensie kunt u scripts lokaal uitvoeren op elk VM-exemplaar, bijvoorbeeld om gekoppelde gegevensschijven voor te bereiden. Zie voor meer informatie het overzicht van de aangepaste scriptextensie.
In het volgende voorbeeld wordt met Add-AzVmssExtension op elk VM-exemplaar een voorbeeldscript uit een GitHub-repository uitgevoerd waarmee alle gekoppelde RAW-gegevensschijven worden voorbereid:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Define the script for your Custom Script Extension to run
$publicSettings = @{
"fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File prepare_vm_disks.ps1"
}
# Use Custom Script Extension to prepare the attached data disks
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
Als u wilt controleren of de schijven goed zijn voorbereid, gaat u met RDP naar een van de VM-exemplaren.
Haal eerst het load balancer-object op met Get-AzLoadBalancer. Bekijk vervolgens de inkomende NAT-regels met Get-AzLoadBalancerInboundNatRuleConfig. De NAT-regels vermelden de FrontendPort voor elk VM-exemplaar waarop RDP luistert. Vraag ten slotte het openbare IP-adres van de load balancer op met Get-AzPublicIPAddress:
# Get the load balancer object
$lb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"
# View the list of inbound NAT rules
Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort
# View the public IP address of the load balancer
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" -Name myPublicIPAddress | Select IpAddress
U kunt nu verbinding maken met uw VM door uw openbare IP-adres en poortnummer van het vereiste VM-exemplaar op te geven, zoals is gedaan in de voorgaande opdrachten. Wanneer u hierom wordt gevraagd, voert u de referenties in die zijn gebruikt bij het maken van de schaalset. Als u Azure Cloud Shell gebruikt, voert u deze stap uit vanaf een lokale PowerShell-prompt of vanuit de Extern bureaublad-client. In het volgende voorbeeld wordt verbinding gemaakt met het VM-exemplaar 1:
mstsc /v 52.168.121.216:50001
Open een lokale PowerShell-sessie op het VM-exemplaar en bekijk de gekoppelde schijven met Get-Disk:
Get-Disk
In de volgende voorbeelduitvoer ziet u dat de drie gegevensschijven zijn gekoppeld aan het VM-exemplaar.
Number Friendly Name HealthStatus OperationalStatus Total Size Partition Style
------ ------------- ------------ ----------------- ---------- ---------------
0 Virtual HD Healthy Online 127 GB MBR
1 Virtual HD Healthy Online 14 GB MBR
2 Msft Virtual Disk Healthy Online 64 GB MBR
3 Msft Virtual Disk Healthy Online 128 GB MBR
4 Msft Virtual Disk Healthy Online 128 GB MBR
Onderzoek de bestandssystemen en koppelpunten op het VM-exemplaar als volgt:
Get-Partition
In de volgende voorbeelduitvoer ziet u dat er stationsletters zijn toegewezen aan de drie gegevensschijven:
DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000001
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
1 F 1048576 64 GB IFS
DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000002
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
1 G 1048576 128 GB IFS
DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000003
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
1 H 1048576 128 GB IFS
De schijven in elk VM-exemplaar in uw schaalset worden automatisch op dezelfde manier voorbereid. Als de schaalset wordt opgeschaald, worden de vereiste gegevensschijven gekoppeld aan de nieuwe VM-exemplaren. De aangepaste scriptextensie wordt ook uitgevoerd om de schijven automatisch voor te bereiden.
Sluit de sessie van Extern bureaublad met het VM-exemplaar.
Gekoppelde schijven opvragen
Gebruik Get-AzVmss als volgt om informatie op te vragen over schijven die zijn gekoppeld aan een schaalset:
Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"
Onder de eigenschap VirtualMachineProfile.StorageProfile wordt de lijst met DataDisks weergegeven. U ziet vervolgens gegevens van de grootte van de schijf, de opslaglaag en het LUN (Logical Unit Number). In de volgende voorbeelduitvoer ziet u gegevens van de drie gegevensschijven die aan het VM-exemplaar zijn gekoppeld:
DataDisks[0] :
Lun : 0
Caching : None
CreateOption : Empty
DiskSizeGB : 64
ManagedDisk :
StorageAccountType : PremiumLRS
DataDisks[1] :
Lun : 1
Caching : None
CreateOption : Empty
DiskSizeGB : 128
ManagedDisk :
StorageAccountType : PremiumLRS
DataDisks[2] :
Lun : 2
Caching : None
CreateOption : Empty
DiskSizeGB : 128
ManagedDisk :
StorageAccountType : PremiumLRS
Een schijf loskoppelen
Wanneer u een bepaalde schijf niet meer nodig hebt, kunt u deze loskoppelen van de schaalset. De schijf wordt dan verwijderd uit alle VM-exemplaren in de schaalset. Als u een schijf wilt loskoppelen van een schaalset, gebruikt u Remove-AzVmssDataDisk en geeft u het LUN van de schijf op. De LUN's worden weergegeven in de uitvoer van Get-AzVmss in de vorige sectie. In het volgende voorbeeld wordt het LUN 3 losgekoppeld van de schaalset:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Detach a disk from the scale set
Remove-AzVmssDataDisk `
-VirtualMachineScaleSet $vmss `
-Lun 2
# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
Resources opschonen
Als u de schaalset en schijven wilt verwijderen, verwijdert u de resourcegroep en alle bijbehorende resources met Remove-AzResourceGroup. De parameter -Force bevestigt dat u de resources wilt verwijderen, zonder een extra prompt om dit te doen. De parameter -AsJob retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u schijven maakt en gebruikt met schaalsets met Azure PowerShell:
- Besturingssysteemschijven en tijdelijke schijven
- Gegevensschijven
- Standard- en Premium-schijven
- Schijfprestaties
- Gegevensschijven koppelen en voorbereiden
Ga naar de volgende zelfstudie voor informatie over het gebruik van een aangepaste installatiekopie voor de VM-exemplaren in uw schaalset.


