LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4核心上實作。Linux使用者安裝Linux作業系統時遇到的一個常見的難以決定的問題就是如何正确地評估各分區大小,以配置設定合适的硬碟空間。普通的磁盤分區管理方式在邏輯分區劃分好之後就無法改變其大小,當一個邏輯分區存放不下某個檔案時,這個檔案因為受上層檔案系統的限制,也不能跨越多個分區來存放,是以也不能同時放到别的磁盤上。而遇到出現某個分區空間耗盡時,解決的方法通常是使用符号連結,或者使用調整分區大小的工具,但這隻是暫時解決辦法,沒有從根本上解決問題。随着Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,使用者在無需停機的情況下可以友善地調整各個分區大小。
下面将操作示範如何對Linux磁盤進行擴容及縮容:
Linux LVM磁盤縮容
執行個體:
首先我們使用vgdisplay指令來檢視邏輯卷磁盤空間:
Alloc PE / Size //此表示已使用了的空間
Free PE / Size //表示還剩餘多少空間
然後使用df –h指令檢視磁盤分區空間 //檢視磁盤分區
檢視磁盤空間
把var的分區縮容5G出來,給到根分區,指令如下:
lvreduce -L 5G /dev/mapper/centos-var //縮減var下空間5G
縮減完後需要對磁盤執行如下指令才能生效:
resize2fs /dev/mapper/cnetos-var //重新加載邏輯卷
然後把縮減下的空間增加到需要的磁盤,指令如下:
lvextend -L+5G /dev/mapper/centos-root //增加邏輯卷磁盤空間
resize2fs /dev/mapper/centos-root //重新加載邏輯卷,大小才能生效
注意:本次擴容檔案系統為Linux ext4檔案系統,xfs檔案系統無法縮減分區空間在增加到另外一個空間,否則資料會丢失,在擴容前一定要檢視檔案系統格式。
Linux LVM磁盤擴容
下面對Linux新增磁盤加入到邏輯卷組當中,首先我們使用fdisk –l指令檢視檢視磁盤新增磁盤,如圖:
這邊我們添加了一塊20G的硬碟,然後對新增的磁盤使用fdisk /dev/sdb指令格式化、分區,如圖:
分好區後我們吧磁盤加入到現有的邏輯卷組當中,使用pvdisplay檢視目前邏輯卷組名稱,如圖:
然後把新增的磁盤加入到現有的邏輯卷組當中,指令如下:
vgextend centos /dev/sdb1 //将磁盤加入到現有的邏輯卷組當中
lvextend -L +20G /dev/mapper/centos-root //給現有的邏輯卷擴容
resize2fs /dev/mapper/centos-root //重新開機生效
注:本次擴容隻針對ext4檔案系統,xfs檔案系統無效,會導緻資料丢失,後果很嚴重。切記!!!
确認檔案系統是xfs:
cat /etc/fstab | grep centos-home
/dev/mapper/centos-home /home xfs defaults 0 0
xfs用以下指令來擴磁盤空間:
xfs_growfs /dev/mapper/centos-home
總結
Linux LVM邏輯磁盤管理是非常強大的工具,在遇到磁盤空間不足的情況下,可以在不停機情況下進行擴容以及縮容,避免服務磁盤資料寫滿的情況下中斷服務。