Zelfstudie: Azure-schijven beheren met de Azure CLI

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Virtuele machines (VM's) in Azure gebruiken schijven om het besturingssysteem, toepassingen en gegevens op te slaan. Wanneer u een VM maakt, is het van belang dat u een schijfgrootte en configuratie kiest die geschikt zijn voor de verwachte werkbelasting. In deze zelfstudie ziet u hoe u VM-schijven implementeert en beheert. U krijgt informatie over:

  • Besturingssysteemschijven en tijdelijke schijven
  • Gegevensschijven
  • Standard- en Premium-schijven
  • Schijfprestaties
  • Het koppelen en voorbereiden van gegevensschijven
  • Momentopnamen van schijven

Standaard Azure-schijven

Wanneer een virtuele Azure-machine wordt gemaakt, worden automatisch twee schijven aan de virtuele machine gekoppeld.

Besturingssysteemschijf: besturingssysteemschijven kunnen tot 2 TB groot zijn, en huisvesten het besturingssysteem van de VM’s. De besturingssysteemschijf is standaard gelabeld met /dev/sda. De schijfcacheconfiguratie van de besturingssysteemschijf is geoptimaliseerd voor besturingssysteemprestaties. Vanwege deze configuratie kan de besturingssysteemschijf beter niet worden gebruikt voor toepassingen of gegevens. Gebruik voor toepassingen en gegevens gegevensschijven, die verderop in deze zelfstudie worden beschreven.

Tijdelijke schijf: tijdelijke schijven gebruiken een SSD-schijf die zich op dezelfde Azure-host bevindt als de virtuele machine. Tijdelijke schijven leveren zeer goede prestaties en kunnen worden gebruikt voor bewerkingen als tijdelijke gegevensverwerking. Als de virtuele machine wordt verplaatst naar een nieuwe host, worden gegevens die zijn opgeslagen op een tijdelijke schijf echter verwijderd. De grootte van de tijdelijke schijf wordt bepaald door de VM-grootte. Tijdelijke schijven zijn gelabeld als /dev/sdb en hebben een koppelpunt van /mnt.

Azure-gegevensschijven

Voor de installatie van toepassingen en de opslag van gegevens kunnen extra gegevensschijven worden toegevoegd. Gegevensschijven moeten worden gebruikt in situaties waarin duurzame en responsieve gegevensopslag gewenst is. De grootte van de virtuele machine bepaalt hoeveel gegevensschijven aan een virtuele machine kunnen worden gekoppeld.

Typen VM-schijven

Azure biedt twee typen schijven.

Standard-schijven - ondersteund door HDD's en bieden voordelige en hoogwaardige opslag. Standard-schijven zijn ideaal voor een kostenefficiënte werkbelasting voor ontwikkelen en testen.

Premium-schijven - ondersteund door hoogwaardige schijven met een lage latentie op basis van SSD. Ideaal voor virtuele machines met een productiewerkbelasting. VM-grootten met een S in de groottenaam, bieden doorgaans ondersteuning voor Premium Storage. VM's uit de DS-serie, DSv2-serie, GS-serie en FS-serie ondersteunen premium opslag. Wanneer u een schijfgrootte selecteert, wordt de waarde omhoog afgerond naar het volgende type. Als de schijfgrootte bijvoorbeeld groter is dan 64 GB maar kleiner dan 128 GB, is het schijftype P10.


Premium SSD-grootten P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Schijfgrootte in GiB 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16,384 32.767
Basis ingerichte IOPS per schijf 120 120 120 120 240 500 1,100 2.300 5\.000 7500 7500 16.000 18.000 20,000
**Uitgebreide ingerichte IOPS per schijf N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. 8,000 16.000 20,000 20,000 20,000 20,000
Ingerichte basisdoorvoer per schijf 25 MB/s 25 MB/s 25 MB/s 25 MB/s 50 MB/s 100 MB/s 125 MB/s 150 MB/s 200 MB/s 250 MB/s 250 MB/s 500 MB/s 750 MB/s 900 MB/s
**Uitgebreide ingerichte doorvoer per schijf N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. N.v.t. 300 MB/s 600 MB/s 900 MB/s 900 MB/s 900 MB/s 900 MB/s
Max. burst-IOP's per schijf 3500 3500 3500 3500 3500 3500 3500 3500 30,000* 30,000* 30,000* 30,000* 30,000* 30,000*
Max. burst-doorvoer per schijf 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 1000 MB/s* 1000 MB/s* 1000 MB/s* 1000 MB/s* 1000 MB/s* 1000 MB/s*
Max. burst-duur 30 min 30 min 30 min 30 min 30 min 30 min 30 min 30 min Onbeperkt* Onbeperkt* Onbeperkt* Onbeperkt* Onbeperkt* Onbeperkt*
Kan worden gereserveerd Nee Nee Nee Nee Nee Nee Nee Nr. Ja, maximaal één jaar Ja, maximaal één jaar Ja, maximaal één jaar Ja, maximaal één jaar Ja, maximaal één jaar Ja, maximaal één jaar

*Is alleen van toepassing op schijven waarvoor bursting op aanvraag is ingeschakeld.
** Alleen van toepassing op schijven waarvoor prestaties plus (preview) zijn ingeschakeld.

Wanneer u een Premium Storage-schijf inricht, bent u, in tegenstelling tot standaard opslag, verzekerd van de capaciteit, IOPS en doorvoer van die schijf. Als u bijvoorbeeld een P50-schijf maakt, richt Azure een schijf in met een opslagcapaciteit van 4.095 GB, 7.500 IOPS en een doorvoer van 250 MB/s. Uw toepassing kan alle of een deel van de capaciteit en prestaties gebruiken. Premium SSD-schijven zijn zodanig ontworpen dat er in de voorgaande tabel 99,9% van de tijd minder dan één milliseconde latentie en doel-IOPS en -doorvoer wordt beschreven.

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. Er kunnen bijvoorbeeld 64 gegevensschijven worden gekoppeld aan Standard_GS5 VM. Als voor elk van deze schijven een P30-grootte wordt gebruikt, kan een maximum van 80.000 IOP's worden behaald. Zie VM-typen en -grootten voor gedetailleerde informatie over het maximum aantal IOP's per VM.

Azure Cloud Shell starten

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.

Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook openen in een afzonderlijk browsertabblad door naar https://shell.azure.com/powershell te gaan. Klik op Kopiëren om de codeblokken te kopiëren, plak deze in Cloud Shell en druk vervolgens op Enter om de code uit te voeren.

Schijven maken en koppelen

Gegevensschijven kunnen worden gemaakt en aan een VM worden gekoppeld tijdens het maken of aan een bestaande virtuele machine worden gekoppeld.

Schijf koppelen tijdens het maken van de virtuele machine

Een resourcegroep maken met de opdracht az group create.

az group create --name myResourceGroupDisk --location eastus

Maak een VM met de opdracht az vm create. In het volgende voorbeeld wordt de VM myVM gemaakt, wordt het gebruikersaccount azureuser toegevoegd en worden SSH-sleutels gemaakt als deze nog niet bestaan. Het argument --datadisk-sizes-gb wordt gebruikt om op te geven dat een extra schijf moet worden gemaakt en gekoppeld aan de virtuele machine. Als u meer dan één schijf wilt maken en koppelen, gebruikt u een door spaties gescheiden lijst met waarden voor schijfgroottes. In het volgende voorbeeld wordt een virtuele machine gemaakt met twee gegevensschijven, beide van 128 GB. Omdat de schijfgrootte 128 GB is, zijn deze schijven beide geconfigureerd als P10, dat maximaal 500 IOP's per schijf biedt.

az vm create \
  --resource-group myResourceGroupDisk \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 128 128

Een schijf koppelen aan een bestaande virtuele machine

Als u een nieuwe schijf wilt maken en koppelen aan een bestaande virtuele machine wilt maken, gebruikt u de opdracht az vm disk attach. In het volgende voorbeeld wordt een Premium-schijf gemaakt met een grootte van 128 GB en gekoppeld aan de virtuele machine die u in de vorige stap hebt gemaakt.

az vm disk attach \
    --resource-group myResourceGroupDisk \
    --vm-name myVM \
    --name myDataDisk \
    --size-gb 128 \
    --sku Premium_LRS \
    --new

Gegevensschijven voorbereiden

Wanneer een schijf is gekoppeld aan de virtuele machine, moet het besturingssysteem worden geconfigureerd voor gebruik van de schijf. Het volgende voorbeeld laat zien hoe u een schijf handmatig configureert. Dit proces kan ook worden geautomatiseerd met behulp van cloud-init, wat wordt beschreven in een latere zelfstudie.

Maak een SSH-verbinding met de virtuele machine. Vervang het voorbeeld van een IP-adres door het openbare IP-adres van de virtuele machine.

ssh azureuser@10.101.10.10

Partitioneer de schijf met parted.

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

Schrijf een bestandssysteem naar de partitie met behulp van de opdracht mkfs. Gebruik partprobe om het besturingssysteem bekend te maken met de wijziging.

sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

Koppel de nieuwe schijf, zodat deze toegankelijk is in het besturingssysteem.

sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive

De schijf kan nu worden geopend via het /datadrive koppelpunt, dat kan worden geverifieerd door de opdracht uit te df -h voeren.

df -h | grep -i "sd"

De uitvoer toont het nieuwe station dat is gekoppeld aan /datadrive.

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.0G   27G   7% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   41M   13G   1% /mnt
/dev/sdc1        50G   52M   47G   1% /datadrive

Om ervoor te zorgen dat het station na het opnieuw opstarten opnieuw wordt gekoppeld, moet het worden toegevoegd aan het bestand /etc/fstab. Haal hiervoor de UUID van de schijf op met het hulpprogramma blkid.

sudo -i blkid

De uitvoer geeft de UUID van het station weer, in dit geval /dev/sdc1.

/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"

Notitie

Het onjuist bewerken van het bestand /etc/fstab kan leiden tot een systeem dat niet kan worden opgestart. Als u niet zeker weet wat u moet doen, raadpleegt u de documentatie van de distributie over het bewerken van dit bestand. U wordt ook aangeraden een back-up van het bestand /etc/fstab te maken voordat u het bewerkt.

Open het bestand /etc/fstab als volgt in een teksteditor:

sudo nano /etc/fstab

Voeg een regel die lijkt op de volgende aan het bestand /etc/fstab toe en vervang de UUID door uw eigen waarde.

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive  xfs    defaults,nofail   1  2

Wanneer u klaar bent met het bewerken van het bestand, gebruikt u Ctrl+O om het bestand te schrijven en Ctrl+X om de editor af te sluiten.

Nu de schijf is geconfigureerd, sluit u de SSH-sessie.

exit

Een momentopname van een gegevensschijf maken

Wanneer u een momentopname van de schijf maakt, maakt Azure een alleen-lezen en tijdgebonden kopie van de schijf. Azure VM-momentopnamen zijn handig om snel de status van een virtuele machine op te slaan voordat u configuratiewijzigingen aanbrengt. Bij een probleem of fout kan de virtuele machine worden hersteld met behulp van een momentopname. Wanneer een virtuele machine meer dan één schijf heeft, wordt van elke schijf een momentopname gemaakt, onafhankelijk van de andere schijven. Overweeg de virtuele machine te stoppen voordat u momentopnamen van de schijf maakt, zodat u toepassingsconsistente back-ups kunt maken. U kunt ook de Azure Backup-service gebruiken, waarmee u automatische back-ups kunt maken terwijl de virtuele machine wordt uitgevoerd.

Momentopname maken

Voordat u een momentopname maakt, hebt u de id of naam van de schijf nodig. Gebruik az vm show om de schijf-id weer te geven. In dit voorbeeld wordt de schijf-id opgeslagen in een variabele, zodat deze in een later stadium kan worden gebruikt.

osdiskid=$(az vm show \
   -g myResourceGroupDisk \
   -n myVM \
   --query "storageProfile.osDisk.managedDisk.id" \
   -o tsv)

Nu u de id hebt, gebruikt u az snapshot create om een momentopname van de schijf te maken.

az snapshot create \
    --resource-group myResourceGroupDisk \
    --source "$osdiskid" \
    --name osDisk-backup

Schijf maken op basis van een momentopname

Deze momentopname kan vervolgens met az disk create worden geconverteerd naar een schijf die kan worden gebruikt om de virtuele machine opnieuw te maken.

az disk create \
   --resource-group myResourceGroupDisk \
   --name mySnapshotDisk \
   --source osDisk-backup

Virtuele machine herstellen op basis van een momentopname

Voor het herstellen van de virtuele machine dient u de bestaande virtuele machine te verwijderen met az vm delete.

az vm delete \
--resource-group myResourceGroupDisk \
--name myVM

Maak een nieuwe virtuele machine op basis van de momentopname van de schijf.

az vm create \
    --resource-group myResourceGroupDisk \
    --name myVM \
    --attach-os-disk mySnapshotDisk \
    --os-type linux

Gegevensschijf opnieuw koppelen

Alle gegevensschijven moeten opnieuw worden gekoppeld aan de virtuele machine.

Zoek de naam van de gegevensschijf met de opdracht az disk list. In dit voorbeeld wordt de naam van de schijf in een variabele met de naam datadisk, die in de volgende stap wordt gebruikt, opgeslagen.

datadisk=$(az disk list \
   -g myResourceGroupDisk \
   --query "[?contains(name,'myVM')].[id]" \
   -o tsv)

Gebruik de opdracht az vm disk attach om de schijf te koppelen.

az vm disk attach \
   –g myResourceGroupDisk \
   --vm-name myVM \
   --name $datadisk

Volgende stappen

In deze zelfstudie hebt u meer geleerd over onderwerpen over VM-schijven, zoals:

  • Besturingssysteemschijven en tijdelijke schijven
  • Gegevensschijven
  • Standard- en Premium-schijven
  • Schijfprestaties
  • Het koppelen en voorbereiden van gegevensschijven
  • Momentopnamen van schijven

In de volgende zelfstudie leert u hoe u de configuratie van virtuele machines automatiseert.