在系統安裝時候大多情況下有可能因為考慮不周,導致站群伺服器空間不足問題,這時候如果沒有 lvm 邏輯卷管理工具的話,往往就是查詢站群伺服器大檔案刪除之,或者應用遷移。但如果有了 lvm 邏輯卷管理,只需要新增硬碟,並將新硬碟的空間劃分到不足的分割槽及可,如果空間浪費也可以減少對應分割槽的空間,這樣可大大增加對空間的利用率
 
在安裝系統時使用 lvm 邏輯卷管理,建立方法如下:

在系統安裝到硬碟分割槽時選擇 “建立自定義佈局”

首先建立一個/boot 分割槽,/boot 分割槽不能在邏輯卷中,所以先需要建立一個分割槽給/boot,選中空閒的空間,點選建立,然後點選標準分割槽,點建立

建立/boot 分割槽,掛載點選擇/boot,大小設定為 500,單位為 MB,然後固定大小,點選建立,至此/boot 分割槽建立完成

建立 lvm 物理卷點選剩餘的空間,建立,建立時選擇 “lvm 物理卷”

建立 lvm 物理卷,檔案系統型別預設,空間大小使用全部可用空間,點選建立,至此物理卷建立完畢

從 lvm 物理卷建立 lvm 邏輯卷組,選中剛建立的 lvm 物理卷,然後點建立,建立時選擇 lvm 卷組

從 lvm 邏輯卷組建立 lvm 邏輯卷,開啟建立卷組對話方塊,輸入卷組名稱(隨意,看懂就行),然後在下面新增卷組中包含的 lvm 邏輯卷,我這裡在當前卷組分配了 2048 的 swap,再把剩餘所有空間分配到了根分割槽

效果圖

效果圖

透過以上步驟我們已經完成了在系統安裝時採用 lvm 邏輯卷管理的方式
 
在已有系統中增加新硬碟並使用邏輯卷管理:

新增一塊新硬碟(我這裡使用的是虛擬機器,新增硬碟步驟略)
將新硬碟初始化為物理卷(我這裡新新增的新硬碟為/dev/sdb)
pvcreate /dev/sdb
結果為 “Physical volume “/dev/sdb” successfully created” 代表建立成功
建立邏輯卷組
vgcreate VolGroup2 /dev/sdb
VolGroup2 為邏輯卷組的名稱,/dev/sdb 我們前面已經初始化成物理卷,所以這裡我們指定的是物理卷。整條命令的意思是建立一個名為 VolGroup2 的邏輯卷組,並將/dev/sdb 物理卷加入到此邏輯卷組中
結果為 “Volume group “VolGroup2” successfully created” 代表建立成功
建立邏輯卷
lvcreate -L 5G  -n LogVol01 VolGroup2
此命令的意思是從 VolGroup2 卷組建立一個名為 LogVol01 的邏輯卷
結果為 “Logical volume “LogVol01” created” 表示邏輯卷建立成功,成功後會在/dev/mapper 目錄下生成一個名為 VolGroup2-LogVol01 名稱的邏輯卷檔案
格式化剛建立的 VolGroup2-LogVol01 邏輯卷
mkfs.ext4 /dev/mapper/VolGroup2-LogVol01
將格式化後的邏輯卷掛載到我們站群伺服器的/data 目錄
mkdir /data
blkid | grep VolGroup2-LogVol01
記住 UUID
編輯/etc/fstab 檔案,在檔案最後加入
UUID=c0d28e46-c8b8-4d39-a355-b155e2852e36 /data ext4 defaults 0 0
mount -a
效果如下

剛才新增的硬碟為 10G,只分配了 5G 的空間給 VolGroup2-LogVol01,我們現在再把其它剩餘的空間用來給根分割槽擴容,操作步驟如下:

從 VolGroup2 建立一個新的邏輯卷,並使用剩餘所有空間
lvcreate -l 100%FREE  -n LogVol02 VolGroup2
將新建立的邏輯卷格式化,並掛載到/data2
mkdir /data2
mkfs.ext4 /dev/mapper/VolGroup2-LogVol02
blkid | grep VolGroup2-LogVol02
echo “UUID=7f427618-22bd-4e98-90ff-7f782d067644 /data2 ext4 defaults 0 0” >> /etc/fstab
mount -a
效果如下

 
增加新硬碟為給現有 lvm 邏輯卷擴容空間:

新增一塊新硬碟(我這裡使用的是虛擬機器,新增硬碟步驟略)
把新硬碟初始化成物理卷
pvcreate /dev/sdc
檢視 VolGroup2 邏輯卷組資訊
vgdisplay VolGroup2

從以上資訊可以看出 VolGroup2 共有 10G,也就是我們新增的第二塊硬碟的大小
擴容 VolGroup2 的大小,用我們第三塊盤去擴容
vgextend VolGroup2 /dev/sdc
檢視擴容後的大小,為 25G

透過上一步我們已經將 VolGroup2 擴容到了 25G,也就意味著還有剩餘空間沒有被分配到邏輯卷,這時候我們可以利用這些剩餘空間來增加邏輯卷的大小,但只能增加 VolGroup2 中的邏輯卷,而 VolGroup1 中的邏輯卷還需要另外的新硬碟來擴充套件 VolGroup1 的空間
lvextend -L+5G /dev/mapper/VolGroup2-LogVol01
透過上面的命令,我們將 VolGroup2-LogVol01 邏輯卷增加了 5G 的空間
這時候我們實際顯示還是原來的空間,我們需要再執行下面的命令
resize2fs /dev/mapper/VolGroup2-LogVol01
最後再檢視空間,這時候/data 增加了 5G

將第三塊硬碟的剩餘所有空間,擴充套件到/data2
lvextend -l+100%FREE /dev/mapper/VolGroup2-LogVol02
resize2fs /dev/mapper/VolGroup2-LogVol02
結果如下

這時候如果我們要擴容根分割槽的容量,同樣的道理,只需要再新增一塊新硬碟,然後把硬碟初始化成物理卷,再把物理卷加入到 VolGroup1 的組裡面,然後就可以擴容根分割槽了

執行以下命令
pvcreate /dev/sdd
vgextend VolGroup1 /dev/sdd
lvextend -l+100%FREE /dev/mapper/VolGroup1-LogVol01
在執行上面命令之前我已經對/dev/sdd 的空間劃分了 3G 給交換分機檔案,詳情見下面 b 步驟
resize2fs /dev/mapper/VolGroup1-LogVol01
透過上面命令,根分割槽也擴容了 2G,結果如下

經測試如果要對 lvm 的交換分機進行擴容,操作如下:
lvextend -l+3G /dev/mapper/VolGroup1-LogVol00
swapoff -a
mkswap /dev/mapper/VolGroup1-LogVol00
swapon /dev/mapper/VolGroup1-LogVol00
這時候交換結果如下: