Zelfstudie: Schijven maken en gebruiken met schaalset voor virtuele machines met Azure CLI
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, maakt u een gratis account aan voordat u begint.
Vereisten
Gebruik de bash-omgeving in Azure Cloud shell.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht AZ login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij de Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- Voor dit artikel is versie 2.0.29 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
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 gegevensschijven worden aangesloten op een absoluut maximum van 64 schijven per virtuele machine.
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 schijven met een lage latentie op basis van SSD. 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 Linux 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 eerst een resourcegroep met de opdracht az group create. In dit voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.
az group create --name myResourceGroup --location eastus
Maak een schaalset voor virtuele machines met de opdracht az vmss create. In het volgende voorbeeld wordt een schaalset gemaakt met de naam myScaleSet, en worden SSH-sleutels gegenereerd als deze nog niet bestaan. Er worden twee schijven gemaakt met de parameter --data-disk-sizes-gb. De eerste schijf is 64 GB en de tweede schijf 128 GB:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image UbuntuLTS \
--upgrade-policy automatic \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 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 az vmss disk attach. In het volgende voorbeeld wordt een extra schijf van 128 GB gekoppeld:
az vmss disk attach \
--resource-group myResourceGroup \
--name myScaleSet \
--size-gb 128
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 az vmss extension set op elk VM-exemplaar een voorbeeldscript uit een GitHub-repository uitgevoerd waarmee alle gekoppelde RAW-gegevensschijven worden voorbereid:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"],"commandToExecute":"./prepare_vm_disks.sh"}'
Als u wilt controleren of de schijven goed zijn voorbereid, gaat u met SSH naar een van de VM-exemplaren. Gebruik az vmss list-instance-connection-info om de verbindingsinformatie voor uw schaalsets op te vragen:
az vmss list-instance-connection-info \
--resource-group myResourceGroup \
--name myScaleSet
Gebruik uw eigen openbare IP-adres en poortnummer om verbinding te maken met het eerste VM-exemplaar, zoals wordt weergegeven in het volgende voorbeeld:
ssh azureuser@52.226.67.166 -p 50001
Controleer de partities in het VM-exemplaar als volgt:
sudo fdisk -l
In de volgende voorbeelduitvoer ziet u dat er drie gegevensschijven zijn gekoppeld aan het VM-exemplaar - /dev/sdc, /dev/sdd en /dev/sde. Deze schijven hebben allemaal één partitie die alle beschikbare ruimte benut:
Disk /dev/sdc: 64 GiB, 68719476736 bytes, 134217728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa47874cb
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 134217727 134215680 64G 83 Linux
Disk /dev/sdd: 128 GiB, 137438953472 bytes, 268435456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd5c95ca0
Device Boot Start End Sectors Size Id Type
/dev/sdd1 2048 268435455 268433408 128G 83 Linux
Disk /dev/sde: 128 GiB, 137438953472 bytes, 268435456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9312fdf5
Device Boot Start End Sectors Size Id Type
/dev/sde1 2048 268435455 268433408 128G 83 Linux
Onderzoek de bestandssystemen en koppelpunten op het VM-exemplaar als volgt:
sudo df -h
De volgende voorbeelduitvoer laat zien dat de bestandssystemen van de drie schijven correct zijn gekoppeld onder /datadisks:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 30G 1.3G 28G 5% /
/dev/sdb1 50G 52M 47G 1% /mnt
/dev/sdc1 63G 52M 60G 1% /datadisks/disk1
/dev/sdd1 126G 60M 120G 1% /datadisks/disk2
/dev/sde1 126G 60M 120G 1% /datadisks/disk3
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.
Verbreek de SSH-verbinding met uw VM-exemplaar:
exit
Gekoppelde schijven opvragen
Als u informatie wilt opvragen over schijven die zijn gekoppeld aan een schaalset, gebruikt u az vmss show en voert u een query uit op virtualMachineProfile.storageProfile.dataDisks:
az vmss show \
--resource-group myResourceGroup \
--name myScaleSet \
--query virtualMachineProfile.storageProfile.dataDisks
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:
[
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 64,
"lun": 0,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "Standard_LRS"
},
"name": null
},
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 128,
"lun": 1,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "Standard_LRS"
},
"name": null
},
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 128,
"lun": 2,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "Standard_LRS"
},
"name": null
}
]
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 az vmss disk detach en geeft u het LUN van de schijf op. De LUN's worden weergegeven in de uitvoer van az vmss show in de vorige sectie. In het volgende voorbeeld wordt het LUN 2 losgekoppeld van de schaalset:
az vmss disk detach \
--resource-group myResourceGroup \
--name myScaleSet \
--lun 2
Resources opschonen
Als u de schaalset en schijven wilt verwijderen, verwijdert u de resourcegroep en alle bijbehorende resources met az group delete. De parameter --no-wait retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid. De parameter --yes bevestigt dat u de resources wilt verwijderen, zonder een extra prompt om dit te doen.
az group delete --name myResourceGroup --no-wait --yes
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u schijven maakt en gebruikt met schaalsets met Azure CLI:
- 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.
