Megosztás a következőn keresztül:


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 á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 rendszer automatikusan a virtuális géppel azonos zónában hozza létre a lemezt. További információ: A rendelkezésre állási zónák áttekintése. Az alábbi példa egy 50 Gb méretű myDataDisk nevű lemezt hoz létre:

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

Kevesebb késés

Bizonyos 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 az Azure Kubernetes Service-t. Ez a fejlesztés azonban csak az explicit lemez csatolási parancsára korlátozódik. az vm disk attach Nem fogja látni a teljesítménybeli javulást, ha olyan parancsot hív meg, amely implicit módon végrehajthat egy csatolást, például az vm update. A fejlesztés megtekintéséhez nem kell más műveletet elvégeznie, mint az explicit csatolási parancs meghívása.

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
  • 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érdez egy myDataDisk nevű lemezt a myResourceGroupban, majd csatolja azt 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álni tudja, az SSH-t a virtuális gépbe. 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 lemezek listáját használjuk lsblk .

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 van a lemez, amit szeretnénk, mert 50G. Ha több lemezt ad hozzá, és nem biztos benne, hogy a lemez mérete csak a méreten alapul, 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 csoportban. Hasonlítsa össze a portálról származó LUN-számot a kimenet HTCL-részének utolsó számával, azaz a LUN-lal. 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 úgy, hogy ha a lemez partedmérete két terabájt (TiB) vagy nagyobb, akkor gpt particionálást kell használnia, ha 2TiB alatt van, akkor MBR vagy GPT particionálást is használhat.

Feljegyzé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 legtöbb virtuális gépen az első adatlemezt használja parted /dev/sdc. Cserélje le sdc a lemez megfelelő beállítására. Az XFS fájlrendszerrel 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 elmulasztása azt okozhatja, hogy 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 következő használatával mkdir: . Az alábbi példa létrehoz egy könyvtárat a következő helyen /datadrive:

sudo mkdir /datadrive

Ezzel 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. Azt is javasoljuk, hogy az UUID (univerzálisan egyedi azonosító) /etc/fstab a meghajtóra hivatkozzon, és ne 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"

Feljegyzé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 pontnak /datadrivea haszná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

Feljegyzés

Ha később eltávolít egy adatlemezt az fstab szerkesztése nélkül, az 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 beállításokat biztosítja. Ezek a beállítások akkor is lehetővé teszik a rendszerindítást, 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 a Nem SSH-ról Linux rendszerű virtuális gépre való bejelentkezés során az alábbiak szerint tapasztalhat viselkedést

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észletek a Soros konzol dokumentációjában találhatók.

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 elvethető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 lemez pillanatképeien.

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

  • Használja a discard csatlakoztatási lehetőséget /etc/fstabpéldául:

    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    
  • Bizonyos esetekben a discard lehetőségnek lehetnek teljesítménybeli következményei. 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 a lemez nem létezik a LUN 0-nál. Ha manuálisan ad hozzá egy lemezt a az vm disk attach -new parancs használatával,--lun és ahelyett, hogy engedélyezi az Azure-platform számára a megfelelő LUN meghatározását, gondoskodjon arról, hogy egy lemez már létezik / létezni fog a LUN 0-nál.

Tekintse meg az alábbi példát, amely a kimenet lsscsiegy kódrészletét mutatja:

[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 a LUN 0 és a LUN 1 (a kimeneti adatok [host:channel:target:lun]első oszlopalsscsi) szerint létezik. 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, a második lemezt pedig a LUN 2-nél, előfordulhat, hogy nem látja megfelelően a lemezeket a virtuális gépen belülről.

Feljegyzés

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

Ez a lemez viselkedése 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 kell találni egy eszközt ahhoz, hogy a rendszer további eszközöket keressen. Ennek megfelelően:

  • Tekintse át az adatlemez hozzáadása után megjelenő kimenetet lsscsi annak ellenőrzéséhez, hogy van-e lemeze a LUN 0-nál.
  • Ha a lemez nem jelenik meg megfelelően a virtuális gépen belül, ellenőrizze, hogy létezik-e lemez a LUN 0-nál.

Következő lépések

  • Annak érdekében, hogy a Linux rendszerű virtuális gép megfelelően legyen konfigurálva, tekintse át a Linux rendszerű gépek teljesítményére vonatkozó javaslatok optimalizálását.
  • Bővítse a tárkapacitást további lemezek hozzáadásával, és konfigurálja a RAID-t a további teljesítmény érdekében.