Lvm

當所有 4 個主分區都被佔用時擴展 LVM

  • November 26, 2020

我被要求增加 LVM 管理的 CentOS(虛擬)伺服器的磁碟大小。目前分區表如下:

Disk /dev/vda: 429.5 GB, 429496729600 bytes, 838860800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000ba858

Device Boot Start End Blocks Id System
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 104857599 51915776 8e Linux LVM
/dev/vda3 104857600 314572799 104857600 8e Linux LVM
/dev/vda4 314572800 629145599 157286400 8e Linux LVM

總共有 4 個主分區,大約有 100GB 的可用空間。由於允許的最大主分區限制為 4 個,因此無法添加新分區。

當使用 ext4 分區時,我想我可以只使用 fdisk,刪除 /dev/vda4 並重新添加它,使用相同的起始位置但新的結束位置。但是,LVM 不是我的強項。我能用 LVM 做同樣的事情嗎?我假設還需要呼叫lvextend命令以及resize2fs/xfs_growfs之後?

lvdisplay 的輸出:

 --- Logical volume ---
 LV Path                /dev/vg_directadmin/swap
 LV Name                swap
 VG Name                vg_directadmin
 LV UUID                qD1ib9-TAqx-gkKb-9ybC-Jg7g-653o-dDehoj
 LV Write Access        read/write
 LV Creation host, time localhost.localdomain, 2015-07-08 15:02:22 +0200
 LV Status              available
 # open                 2
 LV Size                1.00 GiB
 Current LE             256
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:1

 --- Logical volume ---
 LV Path                /dev/vg_directadmin/lv_tmp
 LV Name                lv_tmp
 VG Name                vg_directadmin
 LV UUID                ezqLis-CBQt-IiZK-7BjX-gvf5-b476-xxlkTe
 LV Write Access        read/write
 LV Creation host, time localhost.localdomain, 2015-07-08 15:02:22 +0200
 LV Status              available
 # open                 1
 LV Size                1.00 GiB
 Current LE             256
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:2

 --- Logical volume ---
 LV Path                /dev/vg_directadmin/lv_root
 LV Name                lv_root
 VG Name                vg_directadmin
 LV UUID                FfvRs5-bQav-72te-GxcF-wlan-hWoT-Ir3I36
 LV Write Access        read/write
 LV Creation host, time localhost.localdomain, 2015-07-08 15:02:23 +0200
 LV Status              available
 # open                 1
 LV Size                297.50 GiB
 Current LE             76160
 Segments               3
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:0

花了一個下午研究LVM並找到了解決方案。所以,我最初的解決方案是一個可行的解決方案。這就是我所做的。

  1. fdisk用來做大/dev/vda4。為此,請刪除分區 4,將其重新添加為主分區並讓它利用所有可用扇區。它會詢問您是否刪除 LVM2_member 簽名,請務必回答no。將分區類型設置為 Linux LVM (8e)。寫入新的分區表。
  2. pvresize /dev/vda4.
  3. lvextend -l +100%FREE /dev/vg_directadmin/lv_root.
  4. 最後,您需要/dev/vg_directadmin/lv_root使用 resize2fs (如果我沒記錯的話,在 CentOS 7 上使用 xfs_growfs )來調整大小。我還必須進行磁碟檢查,e2fsck -f /dev/vg_directadmin/lv_root然後是resize2fs /dev/vg_directadmin/lv_root.
  5. 最後,重新安裝。

希望這對其他人有幫助。HowToForge 上的 Linux LVM 也是一個有用的教程!

引用自:https://serverfault.com/questions/985851