Add a disk to a Linux VM (Lemez hozzáadása Linux rendszerű virtuális géphez)

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai

Ez a cikk bemutatja, hogyan csatolhat egy állandó lemezt a virtuális géphez, hogy megőrizhesse az adatait, még akkor is, ha a virtuális gépet karbantartás vagy átméretezés miatt újraépíti.

Új lemez csatolása virtuális géphez

Ha új, üres adatlemezt szeretne hozzáadni a virtuális géphez, használja az az vm disk attach parancsot a --new paraméterrel. Ha a virtuális gép rendelkezésre állási zónában van, a lemez automatikusan ugyanabban a zónában jön létre, mint a virtuális gép. További információ: A Availability Zones áttekintése. Az alábbi példa egy myDataDisk nevű lemezt hoz létre, amely 50 Gb méretű:

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

Kevesebb késés

Egyes régiókban a lemez csatolási késése csökkent, így akár 15%-os javulást is tapasztalhat. Ez akkor hasznos, ha tervezett/nem tervezett feladatátvételt végzett a virtuális gépek között, skálázza a számítási feladatokat, vagy nagy léptékű állapotalapú számítási feladatot futtat, például Azure Kubernetes Service. Ez a fejlesztés azonban csak az explicit lemez csatolási parancsára korlátozódik( az vm disk attach). Nem fog teljesítménybeli javulást tapasztalni, ha olyan parancsot hív meg, amely implicit módon végrehajthat egy csatolást, például az vm update: . A fejlesztéshez nem kell más műveletet elvégeznie, mint meghívnia az explicit csatolási parancsot.

Az alacsonyabb késés jelenleg minden nyilvános régióban elérhető, kivéve a következőket:

  • Közép-Kanada
  • USA középső régiója
  • USA keleti régiója
  • USA 2. keleti régiója
  • USA déli középső régiója
  • USA 2. nyugati régiója
  • Észak-Németország
  • Jio Nyugat-India
  • Észak-Európa
  • Nyugat-Európa

Meglévő lemez csatlakoztatása

Meglévő lemez csatolásához keresse meg a lemezazonosítót, és adja át az azonosítót az az vm disk attach parancsnak . Az alábbi példa lekérdezi a myResourceGroupmyDataDisk nevű lemezét, majd csatolja a myVM nevű virtuális géphez:

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

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

A lemez formázása és csatlakoztatása

Az új lemez particionálásához, formázásához és csatlakoztatásához, hogy a Linux rendszerű virtuális gép használhassa azt, SSH-val csatlakozzon a virtuális géphez. További információ: SSH használata Linuxon az Azure-on. Az alábbi példa egy 10.123.123.25-ös nyilvános IP-címmel rendelkező virtuális géphez csatlakozik az azureuser felhasználónévvel:

ssh azureuser@10.123.123.25

A lemez megkeresése

Miután csatlakozott a virtuális géphez, keresse meg a lemezt. Ebben a példában a lemezeket fogjuk lsblk listázni.

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

A kimenet a következő példához hasonló:

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 Itt a lemezt szeretnénk, mert az 50G. Ha több lemezt ad hozzá, és nem biztos benne, hogy csak a méret alapján melyik lemezről van szó, lépjen a virtuális gép lapjára a portálon, válassza a Lemezek lehetőséget, és ellenőrizze a lemez LUN-számát az Adatlemezek területen. Hasonlítsa össze a lun számot a portálról a kimenet HTCL részének utolsó számával, amely a LUN. Egy másik lehetőség a könyvtár tartalmának listázása /dev/disk/azure/scsi1 :

ls -l /dev/disk/azure/scsi1

A kimenetnek az alábbi példához hasonlónak kell lennie:

lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc

A lemez formázása

Formázza a lemezt a paranccsal parted, ha a lemez mérete két terabájt (TiB) vagy nagyobb, akkor GPT-particionálást kell használnia, ha 2TiB alatti, akkor MBR- vagy GPT-particionálást is használhat.

Megjegyzés

Javasoljuk, hogy a disztribúcióhoz elérhető legújabb verziót parted használja. Ha a lemez mérete 2 terabájt (TiB) vagy nagyobb, GPT particionálást kell használnia. Ha a lemez mérete 2 TiB alatt van, akkor MBR- vagy GPT-particionálást is használhat.

Az alábbi példa a következőt használja parted : /dev/sdc, ahol az első adatlemez általában a legtöbb virtuális gépen található. Cserélje le a elemet sdc a lemez megfelelő beállítására. Az XFS fájlrendszer használatával is formázzuk.

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

partprobe A segédprogrammal győződjön meg arról, hogy a kernel ismeri az új partíciót és fájlrendszert. A használat partprobe hiánya miatt a blkid vagy az lsblk parancsok nem adják vissza azonnal az új fájlrendszer UUID azonosítóját.

A lemez csatlakoztatása

Most hozzon létre egy könyvtárat a fájlrendszer csatlakoztatásához a használatával mkdir. Az alábbi példa egy könyvtárat hoz létre a következő helyen /datadrive:

sudo mkdir /datadrive

A paranccsel mount csatlakoztathatja a fájlrendszert. Az alábbi példa csatlakoztatja a /dev/sdc1 partíciót a csatlakoztatási /datadrive ponthoz:

sudo mount /dev/sdc1 /datadrive

A csatlakoztatás megőrzése

Annak érdekében, hogy a meghajtó automatikusan újra legyen csatlakoztatva az újraindítás után, hozzá kell adni a /etc/fstab fájlhoz. Erősen ajánlott az UUID (univerzálisan egyedi azonosító) használata /etc/fstab is a meghajtóra való hivatkozáshoz, nem csak az eszköz nevére (például /dev/sdc1). Ha indítás közben az operációs rendszer lemezhibát észlel, az UUID használatával elkerülhető egy nem megfelelő lemez a megadott helyre történő csatolása. A többi adatlemez ettől még ugyanazokat az eszközazonosítókat kapja. Az új meghajtó UUID-jének megkereséséhez használja a blkid segédprogramot:

sudo blkid

A kimenet az alábbi példához hasonlóan néz ki:

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

Megjegyzés

Az /etc/fstab fájl nem megfelelő szerkesztése esetén előfordulhat, hogy a rendszer nem tud elindulni. Ha nem biztos a dolgában, a fájl megfelelő szerkesztésével kapcsolatos információkért olvassa el a disztribúció dokumentációját. Azt is javasoljuk, hogy szerkesztés előtt készítsen biztonsági másolatot a /etc/fstab fájlról.

Ezután nyissa meg a /etc/fstab fájlt egy szövegszerkesztőben. Adjon hozzá egy sort a fájl végéhez az előző lépésekben létrehozott eszköz UUID-értékének /dev/sdc1 és a csatlakoztatási pontjának /datadrivehasználatával. A cikk példáját használva az új sor a következőhöz hasonlóan fog kinézni:

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

Ha végzett a fájl szerkesztésével, mentse és zárja be a szerkesztőt.

Másik lehetőségként futtassa a következő parancsot a lemez fájlhoz való hozzáadásához /etc/fstab :

echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,nofail   1   2" >> /etc/fstab

Megjegyzés

Az adatlemez fstab szerkesztése nélküli eltávolítása később a virtuális gép rendszerindításának sikertelenségéhez vezethet. A legtöbb disztribúció a nofail és/vagy a nobootwait fstab lehetőséget biztosítja. Ezek a beállítások akkor is lehetővé teszik a rendszer rendszerindítását, ha a lemez nem csatlakoztatható a rendszerindításkor. A paraméterekkel kapcsolatos további információkért tekintse meg a disztribúció dokumentációját.

A nem megfelelő beállítás biztosítja, hogy a virtuális gép akkor is elinduljon, ha a fájlrendszer sérült, vagy a lemez nem létezik a rendszerindításkor. E lehetőség nélkül az FSTAB-hibák miatt nem lehet SSH-ról Linux rendszerű virtuális gépre történő SSH-val kapcsolatos viselkedést tapasztalni

Az Azure-beli virtuális gép soros konzolja használható a virtuális gép konzolhoz való hozzáféréséhez, ha az fstab módosítása rendszerindítási hibát eredményezett. További részleteket a Soros konzol dokumentációjában talál.

TRIM/UNMAP-támogatás Linuxhoz az Azure-ban

Egyes Linux-kernelek támogatják a TRIM/UNMAP műveleteket a lemezen nem használt blokkok elvetéséhez. Ez a funkció elsősorban arra szolgál, hogy tájékoztassa az Azure-t arról, hogy a törölt lapok már nem érvényesek, és el is vethetők. Ez a funkció pénzt takaríthat meg a felhasznált tárterület alapján számlázott lemezeken, például a nem felügyelt standard lemezeken és a lemezpillanatképeken.

Linux rendszerű virtuális gépén kétféleképpen engedélyezheti a TRIM-támogatást. A szokásos módon tekintse meg a disztribúciót az ajánlott megközelítéshez:

  • Használja a csatlakoztatási discard lehetőséget a fájlban /etc/fstab, például:

    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    
  • Bizonyos esetekben a discard beállítás teljesítménybeli következményekkel járhat. Másik lehetőségként manuálisan is futtathatja a fstrim parancsot a parancssorból, vagy hozzáadhatja a crontabhoz a rendszeres futtatáshoz:

sudo apt install util-linux
sudo fstrim /datadrive

Hibaelhárítás

Amikor adatlemezeket ad hozzá Egy Linux rendszerű virtuális géphez, hibákat tapasztalhat, ha egy lemez nem létezik a LUN 0-nál. Ha manuálisan ad hozzá lemezt a az vm disk attach -new paranccsal,--lun és ahelyett, hogy engedélyezi az Azure-platformnak a megfelelő LUN meghatározását, gondoskodjon arról, hogy a lemez már létezik / létezni fog a LUN 0-nál.

Tekintse meg az alábbi példát, amely a kimenet egy kódrészletét mutatja: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 

A két adatlemez lun 0 és LUN 1 (a kimeneti adatok [host:channel:target:lun]első oszlopalsscsi). Mindkét lemeznek elérhetőnek kell lennie a virtuális gépen belülről. Ha manuálisan adta meg az első hozzáadandó lemezt a LUN 1-nél és a második lemezt a LUN 2-nél, előfordulhat, hogy nem látja megfelelően a lemezeket a virtuális gépen belülről.

Megjegyzés

Az Azure-érték host ezekben a példákban 5, de ez a választott tárolótípustól függően változhat.

Ez a lemezviselkedés nem Azure-probléma, hanem az, ahogyan a Linux-kernel követi az SCSI-specifikációkat. Amikor a Linux-kernel csatlakoztatott eszközöket keres az SCSI-buszon, a lun 0-nál egy eszközt kell találni ahhoz, hogy a rendszer további eszközöket keressen. Ennek megfelelően:

  • Az adatlemez hozzáadása után tekintse át a kimenetét lsscsi , és ellenőrizze, hogy rendelkezik-e lemezzel a LUN 0-nál.
  • Ha a lemez nem jelenik meg megfelelően a virtuális gépen, ellenőrizze, hogy létezik-e lemez a LUN 0 helyen.

Következő lépések