Virtuális merevlemezek kibontása Linux rendszerű virtuális gépen

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

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

Ez a cikk azt ismerteti, hogyan bővítheti ki a linuxos virtuális gépek (VM) felügyelt lemezeit. Hozzáadhat adatlemezeket, hogy további tárterületet biztosítson, és egy meglévő adatlemezt is kibonthat. Az operációs rendszer (OS) alapértelmezett virtuális merevlemez-mérete általában 30 GB egy Azure-beli Linux rendszerű virtuális gépen. Ez a cikk az operációsrendszer-lemezek vagy adatlemezek bővítését ismerteti. A csíkos kötetek mérete nem bővíthető.

Az operációsrendszer-lemezek maximális kapacitása 4095 GiB. Sok operációs rendszer azonban alapértelmezés szerint fő rendszerindítási rekorddal (MBR) particionált. Az MBR a használható méretet 2 TiB-ra korlátozza. Ha több mint 2 TiB-ra van szüksége, hozzon létre és csatoljon adatlemezeket, és használja őket az adattároláshoz. Ha adatokat kell tárolnia az operációsrendszer-lemezen, és további helyet igényel, konvertálja guid partíciós táblává (GPT).

Figyelmeztetés

Mindig győződjön meg arról, hogy a fájlrendszer kifogástalan állapotban van, a lemezpartíciós tábla típusa (GPT vagy MBR) támogatja az új méretet, és győződjön meg arról, hogy a lemezbővítési műveletek végrehajtása előtt biztonsági másolatot készít az adatokról. További információkért tekintse meg az Azure Backup rövid útmutatót.

Azure-adatlemez-objektum azonosítása az operációs rendszeren belül

Az adatlemezek kibontása esetén, ha a virtuális gépen több adatlemez is található, előfordulhat, hogy nehéz összekapcsolni az Azure LUN-okat a Linux-eszközökkel. Ha az operációsrendszer-lemezt bővíteni kell, az Azure Portalon egyértelműen fel van címkézve operációsrendszer-lemezként.

Először azonosítsa a lemezkihasználtság, a csatlakoztatási pont és az eszköz közötti kapcsolatot a df paranccsal.

df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/sda1                 xfs        97G  1.8G   95G   2% /
<truncated>
/dev/sdd1                 ext4       32G   30G  727M  98% /opt/db/data
/dev/sde1                 ext4       32G   49M   30G   1% /opt/db/log

Itt látható például, hogy a /opt/db/data fájlrendszer majdnem megtelt, és a /dev/sdd1 partíción található. A kimenet df az eszköz elérési útját jeleníti meg, függetlenül attól, hogy a lemezt az eszköz elérési útja vagy az fstab (előnyben részesített) UUID azonosítója csatlakoztatja-e. Jegyezze fel a Típus oszlopot is, amely a fájlrendszer formátumát jelzi. Ez később fontos.

Most keresse meg azt a LUN-t, amely a tartalmának /dev/disk/azure/scsi1vizsgálatával korrelál/dev/sdd. A következő ls parancs kimenete azt mutatja, hogy a Linux operációs rendszeren belül ismert /dev/sdd eszköz lun1 helyen található az Azure Portalon.

sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep  9 21:54 ./
drwxr-xr-x. 4 root root  80 Sep  9 21:48 ../
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root  13 Sep  9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root  12 Sep  9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root  13 Sep  9 21:54 lun2-part1 -> ../../../sde1

Azure Managed Disk kibontása

Kibontás állásidő nélkül

A felügyelt lemezeket a virtuális gép felszabadítása nélkül bővítheti. A lemez gazdagépgyorsítótár-beállítása nem változik, hogy kibonthat-e egy adatlemezt a virtuális gép felszabadítása nélkül.

Ez a funkció a következő korlátozásokkal rendelkezik:

  • Csak adatlemezek esetén támogatott.
  • Ha egy lemez mérete 4 TiB vagy kevesebb, fel kell szabadítania a virtuális gépet és le kell választania a lemezt, mielőtt 4 TiB-nál nagyobbra bővíti. Ha a lemez mérete már nagyobb 4 TiB-nál, akkor a virtuális gép felszabadítása és a lemez leválasztása nélkül is kibővítheti azt.
  • Ultralemezek és prémium SSD v2-lemezek esetén nem támogatott.
  • Megosztott lemezek esetében nem támogatott.
  • Telepítse és használja a következőt:
  • Néhány klasszikus virtuális gépen nem érhető el. Ezzel a szkripttel lekérheti a klasszikus virtuálisgép-termékváltozatok listáját, amelyek támogatják az állásidő nélküli bővítést.

Az Azure Managed Disk kibontása

Győződjön meg arról, hogy telepítve van a legújabb Azure CLI, és bejelentkezett egy Azure-fiókba az az login használatával.

Ez a cikk egy meglévő azure-beli virtuális gépet igényel, amelyhez legalább egy adatlemez van csatlakoztatva és előkészítve. Ha még nem rendelkezik olyan virtuális géppel, amelyet használhat, olvassa el a Virtuális gép létrehozása és előkészítése adatlemezekkel című témakört.

Az alábbi mintákban cserélje le a példaparaméterek nevét, például a myResourceGroup és a myVM nevet a saját értékeire.

Fontos

Ha a lemez megfelel a kibontás állásidő nélküli követelményeinek, kihagyhatja az 1. és a 3. lépést.

  1. A virtuális merevlemezeken nem végezhetők műveletek a virtuális gép futtatásával. Szabadítsa fel a virtuális gépet az az vm deallocate paranccsal. Az alábbi példa a myResourceGroup nevű erőforráscsoportban felszabadítja a myVM nevű virtuális gépet:

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    Feljegyzés

    A virtuális merevlemez kibontásához a virtuális gépet felszabadítani kell. A virtuális gép az vm stop leállítása nem oldja fel a számítási erőforrásokat. A számítási erőforrások kiadásához használja az vm deallocatea következőt: .

  2. Felügyelt lemezek listájának megtekintése egy erőforráscsoportban az lemezlistával. Az alábbi példa a myResourceGroup nevű erőforráscsoport felügyelt lemezeinek listáját jeleníti meg:

    az disk list \
        --resource-group myResourceGroup \
        --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
        --output table
    

    Bontsa ki a szükséges lemezt az az disk update használatával. Az alábbi példa a myDataDisk nevű felügyelt lemezt 200 GB-ra bontja:

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    Feljegyzés

    Felügyelt lemez kibontásakor a frissített méret a legközelebbi felügyelt lemezméretre lesz kerekítve. Az elérhető felügyelt lemezméretek és -szintek táblázatát az Azure Managed Disks Overview – Díjszabás és számlázás című témakörben tekintheti meg.

  3. Indítsa el a virtuális gépet az az vm start használatával. Az alábbi példa elindítja a myVM nevű virtuális gépet a myResourceGroup nevű erőforráscsoportban:

    az vm start --resource-group myResourceGroup --name myVM
    

Lemezpartíció és fájlrendszer kibontása

Feljegyzés

Bár számos eszköz használható a partíció átméretezéséhez, a dokumentum többi részében részletezett eszközök ugyanazok az eszközök, amelyeket bizonyos automatizált folyamatok, például a cloud-init használnak. Az itt leírtak szerint a growpart csomaggal rendelkező eszköz általános kompatibilitást biztosít a gdisk GUID partition table (GPT) lemezekkel, mivel egyes eszközök régebbi verziói, például fdisk nem támogatták a GPT-t.

Megváltozott lemezméret észlelése

Ha egy adatlemezt állásidő nélkül bővítettek a korábban említett eljárással, a lemez mérete csak az eszköz újraolvasása után változik, ami általában csak a rendszerindítási folyamat során történik. Ez az újrakonfigurálható igény szerint az alábbi eljárással hívható meg. Ebben a példában a dokumentumban szereplő metódusokkal észleltük, hogy az adatlemez jelenleg /dev/sda van, és 256 GiB-ről 512 GiB-ra lett átméretezve.

  1. Az első kimeneti sor aktuálisan felismert méretének azonosítása a következőből: fdisk -l /dev/sda

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    
  2. Szúrjon be egy karaktert 1 az eszköz rescan fájljába. Jegyezze fel az sda-ra mutató hivatkozást, ez megváltozna, ha egy másik lemezeszközt méreteznének át.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Ellenőrizze, hogy felismerték-e az új lemezméretet

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    

A cikk további része az operációsrendszer-lemezt használja a kötet méretének operációsrendszer-szinten történő növelésére szolgáló eljárás példáihoz. Ha a kibontott lemez adatlemez, használja az előző útmutatót az adatlemez-eszköz azonosításához, és kövesse ezeket az utasításokat útmutatóként, és szükség esetén helyettesítse az adatlemez-eszközt (például /dev/sdapartíciószámokat, kötetneveket, csatlakoztatási pontokat és fájlrendszerformátumokat).

Minden Linux operációsrendszer-útmutatót általánosnak kell tekinteni, és bármely disztribúcióra vonatkozhat, de általában megfelel a nevesített piactér-közzétevő konvencióinak. Hivatkozzon a Red Hat-dokumentumokra a Red Hat kompatibilitását igénylést igénylő disztribúció csomagkövetelményeihez, például a CentOS-hez és az Oracle-hez.

Az operációsrendszer-lemez méretének növelése

Az alábbi utasítások a támogatott Linux-disztribúciókra vonatkoznak.

Feljegyzés

A folytatás előtt készítsen egy teljes biztonsági másolatot a virtuális gépről, vagy legalább készítsen pillanatképet az operációsrendszer-lemezről.

Az Ubuntu 16.x és újabb verzióiban a rendszer automatikusan kiterjeszti az operációsrendszer-lemezt és fájlrendszerek gyökérpartícióját, hogy a cloud-init a gyökérlemezen lévő összes szabad, összefüggő helyet kihasználhassa, feltéve, hogy van egy kevés szabad hely az átméretezési művelethez. Ebben a helyzetben a sorrend egyszerűen

  1. Az operációsrendszer-lemez méretének növelése a korábban részletezett módon
  2. Indítsa újra a virtuális gépet, majd nyissa meg a virtuális gépet a legfelső szintű felhasználói fiókkal.
  3. Ellenőrizze, hogy az operációsrendszer-lemez ekkor nagyobb fájlrendszerméretet jelenít-e meg.

Az alábbi példában látható módon az operációsrendszer-lemezt a portálról 100 GB-ra méretezték át. A /dev/sda1 fájlrendszer / most már 97 GB-ot jelenít meg.

df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  314M     0  314M   0% /dev
tmpfs          tmpfs      65M  2.3M   63M   4% /run
/dev/sda1      ext4       97G  1.8G   95G   2% /
tmpfs          tmpfs     324M     0  324M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     324M     0  324M   0% /sys/fs/cgroup
/dev/sda15     vfat      105M  3.6M  101M   4% /boot/efi
/dev/sdb1      ext4       20G   44M   19G   1% /mnt
tmpfs          tmpfs      65M     0   65M   0% /run/user/1000
user@ubuntu:~#

Bővítés állásidő nélküli klasszikus virtuálisgép-termékváltozat támogatása nélkül

Ha klasszikus virtuálisgép-termékváltozatot használ, előfordulhat, hogy nem támogatja a lemezek kibontását állásidő nélkül.

A következő PowerShell-szkripttel állapíthatja meg, hogy mely virtuálisgép-termékváltozatokkal érhető el:

Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}

foreach($vmSize in $vmSizes){
    foreach($capability in $vmSize.Capabilities)
    {
       if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
        {
            $vmSize.Name
       }
   }
}