如何合併lvm
我不知道我的同事到底做了什麼,但我知道他試圖增加 LVM 的大小。現在我可以在執行命令後看到這樣的輸出
lsblk
:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 39G 0 part │ ├─rhel-root 253:0 0 95G 0 lvm / │ └─rhel-swap 253:1 0 4G 0 lvm [SWAP] └─sda3 8:3 0 60G 0 part └─rhel-root 253:0 0 95G 0 lvm /
如您所見, and
rhel-root
下有兩個相同的名稱,並且它們都安裝在 thr root directory 上。sda2``sda3``/
但是,輸出
df -h
是:Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 9.6M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/rhel-root 35G 28G 7.3G 80% / /dev/sda1 1014M 285M 730M 29% /boot tmpfs 783M 8.0K 783M 1% /run/user/42 tmpfs 783M 0 783M 0% /run/user/1001
看起來大小
/
還是35G,意思是沒有擴容。看來我需要合併
sda3
,sda2
但我不知道如何解決這個問題。輸出
lvs
:LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rhel -wi-ao---- 94.99g swap rhel -wi-ao---- 4.00g
輸出
vgs
:VG #PV #LV #SN Attr VSize VFree rhel 2 2 0 wz--n- 98.99g 0
輸出
pvs
:PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <39.00g 0 /dev/sda3 rhel lvm2 a-- <60.00g 0
輸出
vgdisplay
:--- Volume group --- VG Name rhel System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 9 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 98.99 GiB PE Size 4.00 MiB Total PE 25342 Alloc PE / Size 25342 / 98.99 GiB Free PE / Size 0 / 0 VG UUID tPY1JO-AwK2-ULra-Matz-5VVy-lxWK-CL60ng
你的同事已經成功地擴展了
rhel-root
LVlvextend
,所以它的一部分現在打開sda2
,另一部分打開sda3
。但是 LV 內部的文件系統還沒有擴展。只有一個
rhel-root
LV,但lsblk
在這里以一種可能有點令人困惑的方式顯示它:它顯示了 LV 的總大小,顯然與每個單獨的部分相關聯。
sda2
和sda3
PV 已經合併到VG 中,因此該rhel
VG 中的 LV 可以增長超出單個 PV 的限制。顯然,您的同事希望避免與即時編輯包含根文件系統的分區相關的風險,並且剛剛使用新空間創建了一個新分區,並將其作為新 PV 添加到現有 VG。在我看來,這是在可引導磁碟上擴展 VG 最安全的方法:雖然它會給您留下多個分區作為 PV,這可能會冒犯您的整潔感,但它確實沒有其他顯著影響。此時,如果你真的想要,你仍然可以刪除
sda3
和擴展sda2
。程序如下:首先,非常小心地使用
lvreduce
將root
LV 縮小回原來的樣子。您可以使用 LVM 備份文件/etc/lvm/archive
來找出確切的大小,或者您可以使用lvdisplay -m /dev/mapper/rhel-root
來查看 PV 上有多少個盤區sda2
,並使用該值。**如果您選擇這樣做,您必須非常小心,不要將 LV 縮小到小於其中的文件系統的目前大小:**您不想切斷文件系統的尾部,甚至一點也不想要。然後從VG 中刪除現在為空的
sda3
PV ,然後編輯分區表以刪除和擴展,用於使系統在磁碟正在使用時接受新的分區表(如果不可用或無法執行,則重新啟動job),然後通過擴展 PV 來擴展VG以佔用新空間。用於重新擴展LV。rhel``vgreduce rhel /dev/sda3``sda3``sda2``partprobe /dev/sda``partprobe``pvresize /dev/sda2``rhel``sda2``lvextend -l +100%FREE /dev/mapper/rhel-root``root
現在你和你的同事在同一點上,但沒有審美上的不愉快
sda3
。您的同事錯過的最後一步實際上是擴展文件系統以利用 LV 增加的容量。通過
/run
indf -h
輸出和 VG name的存在rhel
,我假設該系統是 RHEL 7 或更高版本。所以預設的文件系統類型是 XFS,這意味著擴展文件系統的命令是:fsadm resize /dev/mapper/rhel-root
或者
xfs_growfs /
注意:在這樣做之前請仔細考慮,因為**目前沒有生產質量的工具來縮小 XFS 文件系統,無論是線上還是離線。**因此,一旦您擴展了文件系統,您將無法將其縮小到更小的尺寸。
無論您是選擇刪除
sda3
和擴展sda2
,還是保持同事的工作原樣,此命令都是相同的。