Een schijf toevoegen aan een virtuele Linux-machine

Van toepassing op: ✔️ Virtuele Linux-heavy_check_mark: Flexibele schaalsets

In dit artikel wordt beschreven hoe u een permanente schijf aan uw VM koppelt, zodat u uw gegevens kunt behouden, zelfs als uw VM opnieuw wordt ingemaakt vanwege onderhoud of het formaat van de VM.

Een nieuwe schijf koppelen aan een VM

Als u een nieuwe, lege gegevensschijf wilt toevoegen aan uw VM, gebruikt u de opdracht az vm disk attach met de parameter --new . Als uw VM zich in een beschikbaarheidszone bevindt, wordt de schijf automatisch gemaakt in dezelfde zone als de VM. Zie Overzicht van Beschikbaarheidszones voor meer informatie. In het volgende voorbeeld wordt een schijf met de naam myDataDisk gemaakt die 50 Gb groot is:

az vm disk attach \
   -g myResourceGroup \
   --vm-name myVM \
   --name myDataDisk \
   --new \
   --size-gb 50

Een bestaande schijf koppelen

Als u een bestaande schijf wilt koppelen, moet u de schijf-id zoeken en de id doorgeven aan de opdracht az vm disk attach. In het volgende voorbeeld worden query's op een schijf met de naam myDataDisk in myResourceGroup opgevraagd en vervolgens gekoppeld aan de VM met de naam myVM:

diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)

az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId

De schijf formatteren en monteren

Als u de nieuwe schijf wilt partitioneren, formatteren en monteren zodat deze door uw Linux-VM kan worden gebruikt, gebruikt u SSH in uw VM. Zie voor meer informatie SSH gebruiken met Linux op Azure. In het volgende voorbeeld wordt verbinding gemaakt met een VM met het openbare IP-adres 10.123.123.25 met de gebruikersnaam azureuser:

ssh azureuser@10.123.123.25

De schijf vinden

Nadat u verbinding hebt met uw VM, moet u de schijf vinden. In dit voorbeeld gebruiken we om lsblk de schijven weer te geven.

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

De uitvoer lijkt op die in het volgende voorbeeld:

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0      50G

Hier sdc is de schijf die we willen, omdat deze 50G is. Als u meerdere schijven toevoegt en niet zeker weet welke schijf deze alleen op grootte is gebaseerd, kunt u naar de VM-pagina in de portal gaan, Schijven selecteren en het LUN-nummer voor de schijf controleren onder Gegevensschijven. Vergelijk het LUN-nummer van de portal met het laatste nummer van het GEDEELTE VAN DEL van de uitvoer, dat de LUN is.

De schijf opmaken

Maak de schijf op met , als de schijfgrootte 2 tebibyte (TiB) of groter is, moet u GPT-partitionering gebruiken. Als deze kleiner is dan parted 2TiB, kunt u MBR- of GPT-partitionering gebruiken.

Notitie

U wordt aangeraden de nieuwste versie te parted gebruiken die beschikbaar is voor uw distributie. Als de schijfgrootte 2 tebibyte (TiB) of groter is, moet u GPT-partitionering gebruiken. Als de schijfgrootte kleiner is dan 2 TiB, kunt u MBR- of GPT-partitionering gebruiken.

In het volgende voorbeeld parted wordt gebruikt op , waar de eerste /dev/sdc gegevensschijf zich doorgaans op de meeste VM's zal plaatsen. Vervang sdc door de juiste optie voor uw schijf. We maken deze ook op met behulp van het XFS-bestandssysteem.

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

Gebruik het partprobe hulpprogramma om ervoor te zorgen dat de kernel op de hoogte is van de nieuwe partitie en het nieuwe bestandssysteem. Als u dit niet gebruikt, kunnen partprobe de blkid- of lslbk-opdrachten de UUID voor het nieuwe bestandssysteem niet onmiddellijk retourneren.

De schijf monteren

Maak nu een map om het bestandssysteem te mounten met behulp van mkdir . In het volgende voorbeeld wordt een map gemaakt op /datadrive :

sudo mkdir /datadrive

Gebruik mount om het bestandssysteem vervolgens te mounten. In het volgende voorbeeld wordt de /dev/sdc1 partitie aan het /datadrive bevestigingspunt bevestigd:

sudo mount /dev/sdc1 /datadrive

De mount persistent maken

Om ervoor te zorgen dat het station automatisch opnieuw wordt ontkoppeld na het opnieuw opstarten, moet het worden toegevoegd aan het bestand /etc/fstab. Het wordt ook ten zeerste aanbevolen dat de UUID (Universally Unique Identifier) wordt gebruikt in /etc/fstab om te verwijzen naar het station in plaats van alleen de apparaatnaam (zoals /dev/sdc1). Als het besturingssysteem een schijffout ontdekt tijdens het opstarten, kunt u door de UUID te gebruiken voorkomen dat de verkeerde schijf wordt gekoppeld aan een bepaalde locatie. Resterende gegevensschijven worden dan toegewezen aan dezelfde apparaat-id's. Als u de UUID van het nieuwe station wilt zoeken, gebruikt u het hulpprogramma blkid:

sudo blkid

De uitvoer ziet er ongeveer uit als in het volgende voorbeeld:

/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"

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

sudo nano /etc/fstab

In dit voorbeeld gebruikt u de UUID-waarde voor het apparaat dat in de vorige stappen is gemaakt /dev/sdc1 en het mountpoint van /datadrive . Voeg de volgende regel toe aan het einde van het /etc/fstab bestand:

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

In dit voorbeeld gebruiken we de nano-editor, dus wanneer u klaar bent met het bewerken van het bestand, gebruikt u om het bestand te schrijven en Ctrl+O de editor af te Ctrl+X sluiten.

Notitie

Later kan het verwijderen van een gegevensschijf zonder fstab te bewerken ertoe leiden dat de VM niet kan worden opgestart. De meeste distributies bieden de opties nofail en/of nobootwait fstab. Met deze opties kan een systeem worden opgestart, zelfs als de schijf niet kan worden bevestigd tijdens het opstarten. Raadpleeg de documentatie van uw distributie voor meer informatie over deze parameters.

De nofail-optie zorgt ervoor dat de VM wordt gestart, zelfs als het bestandssysteem is beschadigd of de schijf niet bestaat tijdens het opstarten. Zonder deze optie kunt u gedrag tegenkomen zoals beschreven in Kan geen SSH-naar-Linux-VM vanwege FSTAB-fouten

De seriële console van de Azure-VM kan worden gebruikt voor consoletoegang tot uw VM als het wijzigen van fstab heeft geleid tot een opstartfout. Meer informatie is beschikbaar in de documentatie van de seriële console.

TRIM/UNMAP-ondersteuning voor Linux in Azure

Sommige Linux-kernels ondersteunen TRIM-/UNMAP-bewerkingen om ongebruikte blokken op de schijf te verwijderen. Deze functie is voornamelijk handig in standaardopslag om Azure ervan op de hoogte te stellen dat verwijderde pagina's niet meer geldig zijn en kunnen worden verwijderd. Bovendien kunt u geld besparen als u grote bestanden maakt en ze vervolgens verwijdert.

Er zijn twee manieren om TRIM-ondersteuning in teschakelen in uw Linux-VM. Zoals gebruikelijk raadpleegt u uw distributie voor de aanbevolen aanpak:

  • Gebruik de discard optie voor het monteren in /etc/fstab, bijvoorbeeld:

    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    
  • In sommige gevallen kan de discard optie gevolgen hebben voor de prestaties. U kunt de opdracht ook handmatig uitvoeren vanaf de opdrachtregel of deze toevoegen aan uw fstrim crontab zodat deze regelmatig wordt uitgevoerd:

    Ubuntu

    sudo apt-get install util-linux
    sudo fstrim /datadrive
    

    RHEL/CentOS

    sudo yum install util-linux
    sudo fstrim /datadrive
    

Problemen oplossen

Wanneer u gegevens schijven toevoegt aan een virtuele Linux-machine, kunnen er fouten optreden als er geen schijf aanwezig is op LUN 0. Als u een schijf hand matig toevoegt met behulp van de az vm disk attach -new opdracht en u een LUN opgeeft ( --lun ) in plaats van het Azure-platform te toestaan de juiste LUN te bepalen, moet u er rekening mee houden dat er al een schijf bestaat/bestaat op LUN 0.

Bekijk het volgende voor beeld met een fragment van de uitvoer van lsscsi :

[5:0:0:0]    disk    Msft     Virtual Disk     1.0   /dev/sdc 
[5:0:0:1]    disk    Msft     Virtual Disk     1.0   /dev/sdd 

De twee gegevens schijven bestaan op LUN 0 en LUN 1 (de eerste kolom in de lsscsi uitvoer gegevens [host:channel:target:lun] ). Beide schijven moeten vanuit de VM toegankelijk zijn. Als u hand matig de eerste schijf hebt opgegeven die moet worden toegevoegd bij LUN 1 en de tweede schijf op LUN 2, ziet u mogelijk de schijven niet correct vanuit uw VM.

Notitie

De Azure host -waarde is 5 in deze voor beelden, maar dit kan variëren afhankelijk van het type opslag dat u selecteert.

Dit schijf gedrag is geen Azure-probleem, maar de manier waarop de Linux-kernel de SCSI-specificaties volgt. Wanneer de Linux-kernel de SCSI-bus voor aangesloten apparaten scant, moet een apparaat worden gevonden op LUN 0 zodat het systeem kan door gaan met scannen op extra apparaten. Als zodanig:

  • Bekijk de uitvoer van lsscsi na het toevoegen van een gegevens schijf om te controleren of u een schijf op LUN 0 hebt.
  • Als uw schijf niet correct wordt weer gegeven in uw virtuele machine, controleert u of er een schijf is op LUN 0.

Volgende stappen

  • Als u wilt controleren of uw Linux-VM correct is geconfigureerd, bekijkt u de prestatieaanbevelingen voor uw Linux-machine optimaliseren.
  • Breid uw opslagcapaciteit uit door extra schijven toe te voegen en RAID te configureren voor extra prestaties.