Dela via


Formatera och montera hanterade diskar

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

Den här artikeln beskriver hur du formaterar, monterar och bevarar hanterade diskar på virtuella Azure Linux-datorer (VM). Hanterade diskar är beständig lagring som är ansluten till den virtuella datorn och som kan använda SCSI- eller NVMe-gränssnitt beroende på din VM-storlek.

Förutsättningar

Kontrollera att du har följande innan du formaterar och monterar en datadisk:

  • Identifiera rätt disk för att undvika dataförlust
  • SSH-åtkomst till din virtuella dator
  • Rotprivilegier eller sudo-privilegier

Varning

Kontrollera alltid att du arbetar med rätt disk innan du formaterar. Om du formaterar fel disk kan det leda till dataförlust.

Formatera disken

Använd den senaste versionen av parted tillgänglig för din distribution. Om diskstorleken är 2 tebibyte (TiB) eller större använder du GPT-partitionering. Om diskstorleken är under 2 TiB kan du använda antingen MBR- eller GPT-partitionering.

När du har identifierat rätt disk (till exempel /dev/nvme0n2 för en datadisk) kan du formatera den:

I följande exempel används parted/dev/sdc, där den första datadisken vanligtvis finns på de flesta virtuella datorer. Ersätt sdc med rätt alternativ för disken. Den formaterar också disken med hjälp av XFS-filsystemet .

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

Använd verktyget partprobe för att säkerställa att kerneln är medveten om det nya partitions- och filsystemet. Om du inte använder partprobeblkid returnerar kommandona och lsblk inte omedelbart UUID för det nya filsystemet.

Montera disken

Skapa nu en katalog genom att använda mkdir för att montera filsystemet. I följande exempel skapas en katalog på /datadrive:

sudo mkdir /datadrive

Använd mount för att montera filsystemet. I följande exempel monteras partitionen /dev/sdc1 (för SCSI) eller /dev/nvme0n2p1 (för NVMe) till monteringspunkten /datadrive :

# Mount the disk identified earlier (replace sdc1 with your identified disk's partition)
sudo mount /dev/sdc1 /datadrive

Du kan också använda Azure-enhetssökvägen:

sudo mount /dev/disk/azure/scsi1/lun0-part1 /datadrive

Behåll monteringspunkten

För att säkerställa att enheten monteras om automatiskt efter en omstart, lägg till den i filen /etc/fstab.

Vi rekommenderar starkt att UUID (Universally Unique Identifier) används i /etc/fstab för att referera till enheten istället för enhetsvägen (till exempel /dev/sdc1). Enhetssökvägar är inte beständiga och ändras vid omstart. Använd verktyget för att hitta UUID för den nya enheten blkid :

sudo blkid

Utdata ser ut ungefär som i följande exempel:

/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"

Varning

Om filen redigeras /etc/fstab felaktigt kan det leda till ett system som inte kan startas. Om du är osäker kan du läsa distributionens dokumentation för information om hur du redigerar filen korrekt. Du bör också skapa en säkerhetskopia av /etc/fstab filen innan du redigerar den.

Öppna sedan /etc/fstab filen i en textredigerare. Lägg till en rad i slutet av filen genom att använda UUID-värdet för disken som skapades i föregående steg och monteringspunkten /datadrive. Med hjälp av exemplet från den här artikeln skulle den nya raden se ut så här:

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

När du är klar med redigeringen av filen sparar och stänger du redigeraren.

Du kan också köra följande kommando för att lägga till disken i /etc/fstab filen:

# For SCSI disks
UUID=$(sudo blkid -s UUID -o value /dev/sdc1)
echo "UUID=$UUID   /datadrive   xfs   defaults,nofail   1   2" | sudo tee -a /etc/fstab

# For NVMe disks
UID=$(sudo blkid -s UUID -o value /dev/nvme1n1p1)
echo "UUID=$UUID   /datadrive   xfs   defaults,nofail   1   2" | sudo tee -a /etc/fstab

Anmärkning

Om du senare tar bort en datadisk utan att redigera fstab kan den virtuella datorn inte startas. De flesta distributioner tillhandahåller antingen nofail och/eller nobootwait fstab-alternativen. Med de här alternativen kan ett system startas även om disken inte kan monteras vid start. Mer information om dessa parametrar finns i dokumentationen för distributionen.

Alternativet nofail säkerställer att den virtuella datorn startar även om filsystemet är skadat eller om disken inte finns vid start. Utan det här alternativet kan du stöta på beteendet enligt beskrivningen i Det går inte att SSH till en virtuell Linux-dator på grund av FSTAB-fel

Seriekonsolen för virtuella Azure-datorer kan användas för konsolåtkomst till den virtuella datorn om en ändring av fstab resulterar i ett startfel. Mer information finns i dokumentationen för seriekonsolen.

TRIM/UNMAP-stöd för Linux i Azure

Vissa Linux-kernels har stöd för TRIM/UNMAP-åtgärder för att ta bort oanvända block på disken. Den här funktionen är främst användbar för att informera Azure om att borttagna sidor inte längre är giltiga och kan tas bort. Den här funktionen kan spara pengar på diskar som debiteras baserat på mängden förbrukat lagringsutrymme, till exempel ohanterade standarddiskar och ögonblicksbilder av diskar.

Det finns två sätt att aktivera TRIM-stöd på din virtuella Linux-dator. Som vanligt, konsultera din distribution för det rekommenderade förfarandet.

• Använd monteringsalternativet discard i /etc/fstab, till exempel:

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

• I vissa fall kan alternativet discard få prestandakonsekvenser. Du kan också köra fstrim kommandot manuellt från kommandoraden eller lägga till det i crontab för att köra regelbundet:

sudo apt install util-linux
sudo fstrim /datadrive

Felsökning

När du lägger till datadiskar på en virtuell Linux-dator kan det uppstå fel om en disk inte finns på LUN 0. Om du lägger till en disk manuellt med hjälp av az vm disk attach -new kommandot och du anger ett LUN (--lun) i stället för att låta Azure-plattformen fastställa rätt LUN bör du se till att det redan finns en disk/finns på LUN 0.

Tänk dig följande exempel som visar ett kodfragment av utdata från 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 två datadiskarna finns på LUN 0 och LUN 1 (den första kolumnen i utdatainformationen lsscsi[host:channel:target:lun]). Båda diskarna ska vara tillgängliga från den virtuella datorn. Om du hade angett den första disken manuellt som ska läggas till på LUN 1 och den andra disken på LUN 2 kanske du inte ser diskarna korrekt inifrån den virtuella datorn.

Anmärkning

Azure-värdet host är 5 i de här exemplen, men det kan variera beroende på vilken typ av lagring du väljer.

Det här diskbeteendet är inte ett Azure-problem, utan det sätt på vilket Linux-kerneln följer SCSI-specifikationerna. När Linux-kerneln söker igenom SCSI-bussen efter anslutna enheter måste en enhet hittas på LUN 0 för att systemet ska kunna fortsätta söka efter ytterligare enheter. Som sådan:

  • Granska utdata från lsscsi efter att du har lagt till en datadisk för att kontrollera att du har en disk på LUN 0.
  • Om disken inte visas korrekt i den virtuella datorn kontrollerar du att det finns en disk på LUN 0.