Lägg till en disk till en virtuell Linux-dator
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
Den här artikeln visar hur du kopplar en beständig disk till den virtuella datorn så att du kan bevara dina data – även om den virtuella datorn återskapas på grund av underhåll eller storleksändring.
Ansluta 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 stor:
az vm disk attach \
-g myResourceGroup \
--vm-name myVM \
--name myDataDisk \
--new \
--size-gb 50
Kortare svarstider
I utvalda regioner har svarstiden för diskanslutning minskat, så du ser en förbättring på upp till 15 %. Det här ä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 bifogad fil, till exempel az vm update
. Du behöver inte vidta någon annan åtgärd än att anropa kommandot explicit bifoga 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
- Västra USA 2
- Tyskland, norra
- Jio Västra Indien
- 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 reda på 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, som är LUN. Ett annat alternativ är att lista 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 mbr- eller GPT-partitionering.
Kommentar
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"
Kommentar
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 och stänger du 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
Kommentar
Om du senare tar bort en datadisk utan att redigera fstab kan den virtuella datorn inte startas. De flesta distributioner tillhandahåller antingen alternativen nofail och/eller nobootwait fstab. 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.
Nofail-alternativet 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å beteende enligt beskrivningen i Cannot SSH to Linux VM due to FSTAB errors (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 har resulterat 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 kan du läsa din distribution 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
få 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 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.
Kommentar
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 den virtuella Linux-datorn är korrekt konfigurerad läser du rekommendationer för Optimera dina Linux-datorers prestanda .
- Utöka lagringskapaciteten genom att lägga till fler diskar och konfigurera RAID för extra prestanda.