Tutorial - Beheer Azure-schijven met de Azure CLI

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

Azure-virtuele machines (VM's) gebruiken schijven om het besturingssysteem, applicaties en data op te slaan. Wanneer je een VM creëert, is het belangrijk om een schijfgrootte en configuratie te kiezen die passen bij de verwachte werkbelasting. Deze handleiding laat zien hoe u virtuele machinedisks implementeert en beheert. U krijgt meer informatie over:

  • OS-schijven en tijdelijke schijven
  • Gegevensschijven
  • Schijftypen en prestatieopties
  • Schijfprestaties
  • Het koppelen en voorbereiden van gegevensschijven
  • Momentopnamen van schijven

Standaard Azure-schijven

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

Besturingssysteemschijf: de besturingssysteemschijf (OS) host het VM-besturingssysteem en kan maximaal 4.095 gibibytes (GiB) zijn, hoewel veel besturingssystemen standaard zijn gepartitioneerd met master boot records (MBR's). Een MBR beperkt de bruikbare grootte tot 2 tebibyte. Als je meer dan 2 TiB nodig hebt, maak dan gegevensschijven aan en bevestig ze om ze voor gegevensopslag te gebruiken. Apparaatnamen variëren per type VM-generatie en schijfcontroller, dus vertrouw niet op een vast pad, zoals /dev/sda. Caching van besturingssysteemschijven is geoptimaliseerd voor de prestaties van het besturingssysteem, dus sla geen toepassingsgegevens op de besturingssysteemschijf op. Gegevensschijven gebruiken voor toepassings- en gegevensopslag.

Temporary disk - Tijdelijke opslag maakt gebruik van lokale opslag op dezelfde Azure host als de virtuele machine. Afhankelijk van de VM-grootte en -generatie kan deze opslag worden weergegeven als een tijdelijke schijf of lokale NVMe-schijf. Het is krachtig, maar niet-persistent. Als de virtuele machine naar een nieuwe host wordt verplaatst, worden gegevens over tijdelijke opslag verwijderd. De beschikbare grootte is afhankelijk van de VM-grootte.

Gegevensschijven

Om toepassingen te installeren en gegevens op te slaan, kunnen er extra gegevensschijven worden toegevoegd. Gegevensschijven moeten worden gebruikt in elke situatie waarin duurzame en responsieve gegevensopslag gewenst is. De grootte van de virtuele machine bepaalt hoeveel gegevensschijven aan een virtuele machine kunnen worden gekoppeld.

VM-schijftypen

Azure beheerde schijven bieden vijf schijftypen:

Over het algemeen gebruikt u Premium SSD v2 of Premium SSD voor productieworkloads, Standard SSD voor dev/test en minder prestatiegevoelige workloads en Ultra Disks voor IO-intensieve gegevensworkloads. Ultra Disks en Premium SSD v2 zijn opties voor alleen gegevensschijven en kunnen niet worden gebruikt als besturingssysteemschijven. Zie Azure beheerde schijftypen voor gedetailleerde limieten, beschikbaarheid van regio's en grootten.

Azure Cloud Shell starten

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

Als u Cloud Shell wilt openen, selecteert u Try it in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook starten op een afzonderlijk browsertabblad op https://shell.azure.com. Selecteer Copy om een codeblok te kopiëren, in Cloud Shell te plakken en druk op Enter om het uit te voeren.

Schijven maken en koppelen

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

Schijf toevoegen bij het aanmaken van de VM

Maak een resourcegroep met de opdracht az group create.

az group create --name myResourceGroupDisk --location eastus

Maak een virtuele machine met behulp van de opdracht az vm create . In het volgende voorbeeld wordt een virtuele machine met de naam myVM gemaakt, wordt een gebruikersaccount met de naam azureuser toegevoegd en worden SSH-sleutels gegenereerd als deze nog niet bestaan. Het --data-disk-sizes-gb argument geeft extra gegevensschijven op die moeten worden gemaakt en gekoppeld. Als u meer dan één schijf wilt maken en koppelen, gebruikt u een door spaties gescheiden lijst met schijfgrootten. In het volgende voorbeeld maakt u een virtuele machine met twee gegevensschijven, beide 128 GiB. Omdat de schijven 128 GiB zijn, configureert u beide als P10-schijven, die maximaal 500 IOPS per schijf bieden.

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

Bevestig schijf aan bestaande VM

Om een nieuwe schijf aan te maken en aan een bestaande virtuele machine te koppelen, gebruik de az vm disk attach opdracht. In het volgende voorbeeld wordt een Premium-schijf van 128 GiB gemaakt en gekoppeld aan de VM die in de laatste stap is gemaakt.

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

Een gegevensschijf voorbereiden in Linux

Nadat u een schijf aan de virtuele machine hebt gekoppeld, configureert u het besturingssysteem om de schijf te gebruiken. In de volgende voorbeelden wordt handmatig de eerste 128 GiB-gegevensschijf geconfigureerd die is gekoppeld toen u de virtuele machine maakte. De schijfcontroller van de virtuele machine bepaalt hoe Linux de schijf beschikbaar maakt. U kunt dit proces ook automatiseren met behulp van cloud-init, wat wordt behandeld in een latere zelfstudie.

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

ssh azureuser@10.101.10.10

Controleer of u de juiste gegevensschijf hebt geïdentificeerd voordat u deze formatteert. Het opmaken van de verkeerde schijf resulteert in gegevensverlies.

Gebruik op een VIRTUELE machine met een SCSI-controller lsblk om de gegevensschijf te identificeren. In de volgende voorbeelden wordt gebruikgemaakt van /dev/sdc. Vervang sdc door de apparaatnaam voor de gegevensschijf.

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

Partitioneer de schijf met parteden gebruik partprobe vervolgens om het besturingssysteem op de hoogte te maken van de nieuwe partitietabel.

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

Schrijf een bestandssysteem naar de partitie door de mkfs-opdracht te gebruiken.

sudo mkfs.xfs /dev/sdc1

Monteer de nieuwe schijf zodat deze toegankelijk is in het besturingssysteem.

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

De schijf kan nu worden benaderd via het /datadrive aankoppelpunt, wat kan worden bevestigd door het df -h commando uit te voeren.

df -h | grep -i "sd"

De uitvoer toont de nieuwe schijf gemonteerd op /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       128G   52M  128G   1% /datadrive

Om ervoor te zorgen dat de schijf na een herstart opnieuw wordt gekoppeld, moet deze worden toegevoegd aan het /etc/fstab-bestand. Om dit te doen, haal de UUID van de schijf op met het blkid-hulpprogramma.

sudo -i blkid

In de uitvoer wordt de UUID van het station weergegeven. Op een virtuele machine met een SCSI-controller kan de partitie worden weergegeven als /dev/sdc1. Op een VIRTUELE machine met een NVMe-controller kan deze worden weergegeven als /dev/nvme0n2p1.

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

Opmerking

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 /etc/fstab bestand in een teksteditor als volgt:

sudo nano /etc/fstab

Voeg een regel toe die lijkt op de volgende in het /etc/fstab bestand, waarbij je de UUID-waarde vervangt door je 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 Ctrl+O u om het bestand te schrijven en Ctrl+X de editor af te sluiten.

Nu de schijf is geconfigureerd, kunt u de SSH-sessie sluiten.

exit

Maak een schijfmomentopname

Wanneer u een momentopname van een schijf maakt, maakt Azure een alleen-lezenkopie van de schijf op een bepaald tijdstip. Azure VM-snapshots zijn nuttig om snel de status van een VM op te slaan voordat u configuratiewijzigingen aanbrengt. In het geval van een probleem of fout kunt u een VIRTUELE machine herstellen met behulp van een momentopname. Wanneer een VIRTUELE machine meer dan één schijf heeft, wordt er onafhankelijk van elke schijf een momentopname gemaakt. Als u toepassingsconsistente back-ups wilt maken, kunt u overwegen de virtuele machine te stoppen voordat u schijfmomentopnamen maakt. U kunt ook Azure Backup gebruiken, die automatische back-ups ondersteunt terwijl de virtuele machine wordt uitgevoerd.

Momentopname maken

Voordat je een snapshot maakt, heb je 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 latere stap kan worden gebruikt.

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

Nu je de ID hebt, gebruik az snapshot create om een snapshot van de schijf te maken.

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

Maak schijf van momentopname

Nadat deze momentopname is gemaakt, kan deze worden omgezet in een schijf met behulp van az disk create, 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 van snapshot

Voordat u de virtuele machine verwijdert, gebruikt u az vm show om de resource-id's van alle bijbehorende gegevensschijven in de dataDiskIds variabele op te slaan.

dataDiskIds=$(az vm show \
   --resource-group myResourceGroupDisk \
   --name myVM \
   --query "storageProfile.dataDisks[].managedDisk.id" \
   --output tsv)

Om de herstel van een virtuele machine te demonstreren, verwijder de bestaande virtuele machine met az vm delete.

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

Maak een nieuwe virtuele machine op basis van de momentopnameschijf.

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

Gegevensschijven opnieuw koppelen

Alle datadisks moeten opnieuw aan de virtuele machine worden gekoppeld.

Gebruik az vm disk attach met elke resource-id om alle gegevensschijven opnieuw te koppelen.

for dataDiskId in $dataDiskIds; do
   az vm disk attach \
      --resource-group myResourceGroupDisk \
      --vm-name myVM \
      --name "$dataDiskId"
done

Volgende stappen

In deze tutorial heb je geleerd over onderwerpen met betrekking tot VM-schijven, zoals:

  • OS-schijven en tijdelijke schijven
  • Gegevensschijven
  • Schijftypen en prestatieopties
  • Schijfprestaties
  • Het koppelen en voorbereiden van gegevensschijven
  • Momentopnamen van schijven

Ga verder met de volgende tutorial om meer te leren over het automatiseren van VM-configuratie.