Lägg till en disk till en virtuell Linux-dator
Gäller för: ✔️ Virtuella Linux-datorer ✔️ – flexibla skalningsuppsättningar
Den här artikeln visar hur du ansluter en beständig disk till den virtuella datorn så att du kan bevara dina data – även om den virtuella datorn etableras på nytt på grund av underhåll eller storleksändring.
Koppla en ny disk till en virtuell dator
Om du vill lägga till en ny, tom datadisk på den virtuella datorn använder du kommandot az vm disk attach med parametern --new
. Om den virtuella datorn finns i en tillgänglighetszon skapas disken automatiskt i samma zon som den virtuella datorn. Mer information finns i Översikt över Tillgänglighetszoner. I följande exempel skapas en disk med namnet myDataDisk som är 50 Gb i storlek:
az vm disk attach \
-g myResourceGroup \
--vm-name myVM \
--name myDataDisk \
--new \
--size-gb 50
Kortare svarstider
I utvalda regioner har svarstiden för diskanslutningen minskat, så du ser en förbättring på upp till 15 %. Detta är användbart om du har planerade/oplanerade redundansväxlingar mellan virtuella datorer, om du skalar din arbetsbelastning eller kör en tillståndskänslig arbetsbelastning i hög skala, till exempel Azure Kubernetes Service. Den här förbättringen är dock begränsad till det explicita kommandot för diskanslutning, az vm disk attach
. Prestandaförbättringen visas inte om du anropar ett kommando som implicit kan utföra en koppling, till exempel az vm update
. Du behöver inte vidta någon annan åtgärd än att anropa det explicita attach-kommandot för att se den här förbättringen.
Kortare svarstider är för närvarande tillgängliga i alla offentliga regioner förutom:
- Kanada, centrala
- Central US
- East US
- USA, östra 2
- USA, södra centrala
- USA, västra 2
- Tyskland, norra
- Jio Indien, västra
- Europa, norra
- Europa, västra
Ansluta en befintlig disk
Om du vill ansluta en befintlig disk letar du upp disk-ID:t och skickar ID:t till kommandot az vm disk attach . Följande exempel frågar efter en disk med namnet myDataDisk i myResourceGroup och kopplar den sedan till den virtuella datorn med namnet myVM:
diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)
az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId
Formatera och montera disken
Om du vill partitionera, formatera och montera den nya disken så att den virtuella Linux-datorn kan använda den, SSH till den virtuella datorn. Mer information finns i Så här använder du SSH med Linux på Azure. Följande exempel ansluter till en virtuell dator med den offentliga IP-adressen 10.123.123.25 med användarnamnet azureuser:
ssh azureuser@10.123.123.25
Hitta disken
När du har anslutit till den virtuella datorn letar du upp disken. I det här exemplet använder lsblk
vi för att lista diskarna.
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
Utdata ser ut ungefär så här:
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
sdc
Här är den disk som vi vill ha, eftersom det är 50G. Om du lägger till flera diskar och inte är säker på vilken disk den baseras på enbart storlek kan du gå till den virtuella datorns sida i portalen, välja Diskar och kontrollera LUN-numret för disken under Datadiskar. Jämför LUN-numret från portalen med det sista numret för HTCL-delen av utdata, vilket är LUN. Ett annat alternativ är att visa innehållet i /dev/disk/azure/scsi1
katalogen:
ls -l /dev/disk/azure/scsi1
Utdata bör likna följande exempel:
lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc
Formatera disken
Formatera disken med parted
, om diskstorleken är två tebibyte (TiB) eller större måste du använda GPT-partitionering, om den är under 2TiB kan du använda antingen MBR- eller GPT-partitionering.
Anteckning
Vi rekommenderar att du använder den senaste versionen parted
som är tillgänglig för distributionen.
Om diskstorleken är 2 tebibyte (TiB) eller större måste du använda GPT-partitionering. Om diskstorleken är under 2 TiB kan du använda antingen MBR- eller GPT-partitionering.
I följande exempel används parted
på /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. Vi formaterar det också 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
partprobe
Använd verktyget för att kontrollera att kerneln är medveten om den nya partitionen och filsystemet. Om det inte används partprobe
kan blkid- eller lsblk-kommandona inte returnera UUID för det nya filsystemet omedelbart.
Montera disken
Skapa nu en katalog för att montera filsystemet med hjälp av mkdir
. 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
till monteringspunkten /datadrive
:
sudo mount /dev/sdc1 /datadrive
Spara monteringen
För att säkerställa att enheten monteras om automatiskt efter en omstart måste den läggas till i /etc/fstab
filen. Vi rekommenderar också starkt att UUID (Universally Unique Identifier) används i för att referera till enheten i /etc/fstab
stället för bara enhetsnamnet (till exempel /dev/sdc1). Om operativsystemet upptäcker ett diskfel vid start och använder UUID undviker du att den felaktiga disken monteras på en viss plats. Återstående datadiskar tilldelas sedan samma enhets-ID:n. Du kan hitta UUID för den nya enheten med verktyget 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"
Anteckning
Felaktig redigering av filen /etc/fstab
kan leda till att systemet inte kan startas. Om du är osäker läser du distributionens dokumentation för att få information om hur du redigerar filen på rätt sätt. Vi rekommenderar också att du skapar 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 med UUID-värdet för enheten /dev/sdc1
som skapades i föregående steg och monteringspunkten /datadrive
för . 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 du och stänger redigeraren.
Du kan också köra följande kommando för att lägga till disken i /etc/fstab
filen:
echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2" >> /etc/fstab
Anteckning
Om du senare tar bort en datadisk utan att redigera fstab kan den virtuella datorn misslyckas med att starta. De flesta distributioner tillhandahåller antingen nofail - och/eller nobootwait fstab-alternativen. De här alternativen gör att ett system kan starta även om disken inte kan monteras vid start. Mer information om dessa parametrar finns i distributionens dokumentation.
Nofail-alternativet säkerställer att den virtuella datorn startar även om filsystemet är skadat eller om disken inte finns vid starttiden. Utan det här alternativet kan du stöta på beteende enligt beskrivningen i Cannot SSH to Linux VM due to Linux VM due to FSTAB errors (Det går inte att använda SSH till 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 ändring av fstab har resulterat i ett startfel. Mer information finns i dokumentationen för seriekonsolen.
STÖD FÖR TRIM/UNMAP för Linux i Azure
Vissa Linux-kernels stöder 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. Se som vanligt distributionen för den rekommenderade metoden:
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
ha prestandakonsekvenser. Du kan också körafstrim
kommandot manuellt från kommandoraden eller lägga till det i crontab för att köra regelbundet:
Felsökning
När du lägger till datadiskar på en virtuell Linux-dator kan det uppstå fel om det inte finns någon disk på LUN 0. Om du lägger till en disk manuellt med kommandot az vm disk attach -new
och du anger ett LUN (--lun
) i stället för att låta Azure-plattformen fastställa lämplig 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 manuellt hade angett den första disken som ska läggas till på LUN 1 och den andra disken på LUN 2 kanske du inte ser diskarna korrekt från den virtuella datorn.
Anteckning
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
lsscsi
från när 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.
Nästa steg
- Om du vill se till att din virtuella Linux-dator är korrekt konfigurerad läser du rekommendationer för optimera prestanda för Linux-datorer .
- Utöka lagringskapaciteten genom att lägga till fler diskar och konfigurera RAID för extra prestanda.