Oefening: Een gegevensschijf toevoegen aan een VM

Voltooid

Uw advocatenkantoor breidt de belasting van de zaak uit en u moet een nieuwe Linux-webserver maken voor het opslaan van kritieke documenten uit verschillende bronnen: clients, andere advocatenkantoren en advocatenkantoren. Met de webserver kunt u documenten uploaden en opslaan op schijf.

Tip

In deze oefening wordt Linux als voorbeeld gebruikt, maar het basisproces voor het maken van virtuele machines en het toevoegen van schijven verloopt hetzelfde voor Windows. Het belangrijkste verschil zit hem in het partitioneren en formatteren van de schijf. In Windows kunt u verbinding maken met uw virtuele machine via Extern bureaublad en de ingebouwde hulpprogramma's van Schijfbeheer gebruiken of een PowerShell-script implementeren dat vergelijkbaar is met het Bash-script dat u hier gebruikt.

Het doel is om een Virtuele Linux-machine te maken en een nieuwe virtuele harde schijf (VHD) met de naam uploadDataDisk1 te koppelen om de /uploads map op te slaan.

Standaardwaarden voor Azure CLI instellen

Met de Azure CLI kunt u standaardwaarden instellen, zodat u ze niet telkens hoeft te herhalen wanneer u een opdracht uitvoert.

U geeft de standaardlocatie of regio van Azure op. Op deze locatie wordt uw Virtuele Azure-machine geplaatst.

In het ideale voorbeeld ligt deze locatie dicht bij uw klanten. Selecteer in dit geval de voor u dichtstbijzijnde regio uit de locaties die voor de Azure-sandbox beschikbaar zijn.

Met de gratis sandbox kunt u resources maken in een subset met wereldwijde Azure-regio's. Selecteer een regio in deze lijst wanneer u resources maakt:

  • westus2
  • US - zuid-centraal
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia
  1. Voer az configure uit om de gewenste standaardlocatie in te stellen. Vervang eastus door de locatie die u in de vorige stap hebt gekozen.

    az configure --defaults location=eastus
    

    Tip

    U kunt de knop Kopiëren gebruiken om opdrachten te kopiëren naar het klembord. Als u wilt plakken, klikt u met de rechtermuisknop op een nieuwe regel in de Cloud Shell-terminal en selecteert u Plakken of gebruikt u de sneltoets Shift+Insert (⌘+V in macOS).

  2. Stel de standaardnaam van de resourcegroep in op de vooraf geconfigureerde resourcegroep die voor u is gemaakt via de Azure-sandbox: [sandbox-resourcegroep]

    az configure --defaults group="<rgn>[sandbox Resource Group]</rgn>"
    

Een virtuele Linux-machine maken

Hier maakt u een Virtuele Linux-machine om uw webserver te hosten.

  1. Voer deze opdracht az vm create uit om uw virtuele Ubuntu Linux-machine te maken.

    az vm create \
      --name support-web-vm01 \
      --image Canonical:UbuntuServer:16.04-LTS:latest \
      --size Standard_DS1_v2 \
      --admin-username azureuser \
      --generate-ssh-keys
    
    • De naam van de virtuele machine is support-web-vm01.
    • De grootte is Standard_DS1_v2.
    • De gebruiker met beheerdersrechten is azureuser. In de praktijk kunt u elke gewenste naam kiezen.
    • Het --generate-ssh-keys argument genereert een SSH-keypair voor u, zodat u via SSH verbinding kunt maken met uw virtuele machine.

    Het implementeren van de VM duurt een paar minuten. Zodra de virtuele machine klaar is, wordt er informatie over weergegeven in JSON-indeling. Hier volgt een voorbeeld:

    {
      "fqdns": "",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/680469d8-edB7-42ec-b118-cd80d51741e7/providers/Microsoft.Compute/virtualMachines/support-web-vm01",
      "location": "eastus",
      "macAddress": "00-0D-3A-10-63-0A",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.211.38.211",
      "resourceGroup": "680469d8-edB7-42ec-b118-cd80d51741e7",
      "zones": ""
    }
    

    Notitie

    In deze les gebruikt u deze VIRTUELE machine om te leren hoe u schijven beheert. In de praktijk moet u mogelijk ook een webserver en andere software installeren en vervolgens az vm open-port uitvoeren om de benodigde poorten beschikbaar te maken voor externe gebruikers.

Een lege gegevensschijf aan uw virtuele machine toevoegen

Hier maakt u een lege gegevensschijf en koppelt u deze aan uw VIRTUELE machine. In eerste instantie is uw gegevensschijf 64 GB groot. Later koppelt u deze schijf aan de /uploads map op uw VIRTUELE machine.

Tip

Voor leerdoeleinden maakt u de VIRTUELE machine en de gegevensschijf als afzonderlijke stappen. In de praktijk kunt u het argument --data-disk-sizes-gb voor de opdracht az vm create opgeven om direct gegevensschijven toe te voegen bij het maken van de virtuele machine.

  1. Voer de volgende az vm disk attach-opdracht uit om een nieuwe lege schijf aan de virtuele machine toe te voegen.

    az vm disk attach \
      --vm-name support-web-vm01 \
      --name uploadDataDisk1 \
      --size-gb 64 \
      --sku Premium_LRS \
      --new
    

    Met deze opdracht gebeurt het volgende:

    • De schijf krijgt de naam uploadDataDisk1.
    • Stelt de grootte in op 64 GB.
    • Hiermee geeft u het gebruik van Premium-opslag met lokale redundantie.

Als u de schijf wilt gebruiken, moet u deze partitioneren en formatteren. Laten we dat nu doen.

De gegevensschijf initialiseren en formatteren

De lege schijf moet worden geïnitialiseerd en geformatteerd. Het proces om dat te doen is hetzelfde als dat voor een fysieke schijf.

Voor eenmalige taken kunt u handmatig verbinding maken met uw virtuele machine via SSH en de benodigde opdrachten uitvoeren. Als u het proces echter herhaalbaarder en minder foutgevoelig wilt maken, kunt u uw opdrachten opgeven in een Bash-script of een PowerShell-script (indien beschikbaar).

Het gebruik van een script om het proces te automatiseren heeft een extra voordeel: uw script fungeert als documentatie voor de wijze waarop het proces wordt uitgevoerd. Anderen kunnen het script lezen om te begrijpen hoe het systeem is geconfigureerd. Als u het proces wilt wijzigen, kunt u het script wijzigen en testen op een tijdelijke scratch-VM voordat u de wijziging in productie implementeert.

Als u het proces in deze les wilt automatiseren, gebruikt u de aangepaste scriptextensie. De aangepaste scriptextensie biedt een eenvoudige manier om scripts te downloaden en uit te voeren op uw virtuele Azure-machines. Het is een van de vele manieren waarop u het systeem kunt configureren wanneer de VM actief is.

U kunt uw scripts opslaan in Azure Storage of op een openbare locatie, zoals GitHub. U kunt scripts handmatig uitvoeren of als onderdeel van een meer geautomatiseerde implementatie. Hier voert u een Azure CLI-opdracht uit om een vooraf gemaakt Bash-script vanuit GitHub te downloaden en uit te voeren op uw VIRTUELE machine.

Voor leerdoeleinden gaan we ook een paar opdrachten uitvoeren op uw VIRTUELE machine om te controleren of de VIRTUELE machine is geconfigureerd zoals verwacht.

  1. Voer az vm show uit om het openbare IP-adres van de virtuele machine op te halen en het IP-adres op te slaan als een Bash-variabele.

    ipaddress=$(az vm show \
      --name support-web-vm01 \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  2. Voer de volgende ssh opdracht uit om de lsblk opdracht op uw VIRTUELE machine uit te voeren via een SSH-verbinding met behulp van de ipaddress variabelegegevens die u in de vorige stap hebt gemaakt. U weet nog dat azureuser de gebruikersnaam van de beheerder is die we hebben gebruikt bij het maken van de virtuele machine. Als u een andere naam hebt gekozen, moet u die in plaats daarvan gebruiken. Voer ja in wanneer u hierom wordt gevraagd.

    ssh azureuser@$ipaddress lsblk
    

    De uitvoer van deze opdracht ziet er ongeveer als volgt uit.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

    U ziet dat het station van 64 GB, sdcdat u hebt gemaakt, niet is gekoppeld. Het station wordt op deze manier vermeld omdat het nog niet is geïnitialiseerd.

  3. Voer de volgende az vm extension set opdracht uit om het vooraf gemaakte Bash-script uit te voeren op uw virtuele machine.

    Waarschuwing

    /etc/fstab wordt gewijzigd via het script. Als u het bestand /etc/fstab op de verkeerde manier bewerkt, kan het systeem mogelijk niet meer worden opgestart. Test configuratiewijzigingen altijd op een geheel nieuw tijdelijk systeem voordat u deze implementeert in een productieomgeving. Raadpleeg de documentatie van uw distributie om te leren hoe u dit bestand moet wijzigen. In een productieomgeving is het ook raadzaam een back-up van dit bestand te maken, zodat u de configuratie zo nodig kunt herstellen.

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
    

    Terwijl de opdracht wordt uitgevoerd, kunt u het Bash-script onderzoeken vanuit een afzonderlijk browsertabblad, indien gewenst.

    Samenvatting van het script:

    • Het station /dev/sdc wordt gepartitioneerd.
    • Er wordt een ext4-bestandssysteem op het station gemaakt.
    • Hiermee maakt u de /uploads map die we als koppelpunt gebruiken.
    • De schijf wordt gekoppeld aan het koppelpunt.
    • /etc/fstab wordt bijgewerkt, zodat het station automatisch wordt gekoppeld wanneer het systeem opnieuw wordt opgestart.
  4. Als u de configuratie wilt controleren, voert u dezelfde ssh-opdracht uit als u eerder hebt gedaan om de lsblk-opdracht op de virtuele machine uit te voeren via een SSH-verbinding.

    ssh azureuser@$ipaddress lsblk
    

    U ziet dat sdc/sdc1 is gepartitioneerd en aan de map /uploads is gekoppeld, zoals verwacht.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

Tip

Sommige Linux-kernels bieden ondersteuning voor TRIM om op die manier niet-gebruikte blokken op schijven te verwijderen. Deze functie is beschikbaar voor Azure-schijven en kan u geld besparen als u vaak grote bestanden maakt en ze vervolgens verwijdert. Ontdek in de documentatie van Azure hoe u deze functie inschakelt.

Samenvatting

U hebt een gegevensschijf gemaakt en deze vervolgens aan uw virtuele machine gekoppeld. U hebt de aangepaste scriptextensie gebruikt om een vooraf gemaakt Bash-script uit te voeren op uw VIRTUELE machine om het proces herhaalbaarder te maken. Via het Bash-script wordt de schijf gepartitioneerd, geformatteerd en gekoppeld zodat de webserver ernaar kan schrijven.

Nu de gegevensschijf op uw virtuele machine is voorbereid, gaan we eens kijken naar de verschillende typen schijven die u kunt maken. Eerst moet u een keuze maken tussen Standard-opslag of Premium-opslag.