1. 程式人生 > 其它 >LVM簡介及CentOS7 LVM操作實戰 VMware虛擬機器中CentOS7的硬碟空間擴容LVM簡介及CentOS7 LVM操作實戰

LVM簡介及CentOS7 LVM操作實戰 VMware虛擬機器中CentOS7的硬碟空間擴容LVM簡介及CentOS7 LVM操作實戰

LVM簡介
LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁碟分割槽進行管理的一種機制,LVM是建立在硬碟和 分割槽之上的一個邏輯層,來提高磁碟分割槽管理的靈活性。通過LVM系統管理員可以輕鬆管理磁碟分割槽,如:將若干個磁碟分割槽連線為一個整塊的卷組 (volumegroup),形成一個儲存池。管理員可以在卷組上隨意建立邏輯卷組(logicalvolumes),並進一步在邏輯卷組上建立檔案系 統。
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫
PV:是物理的磁碟分割槽
VG:LVM中的物理的磁碟分割槽,也就是PV,必須加入VG,可以將VG理解為一個倉庫統一管理了幾個大的硬碟,形成了一個統一虛擬的儲存資源池。
LV:也就是從VG中劃分的邏輯分割槽
抽象模型如下:


操作實戰
通過在虛擬機器的CentOS7上建立LVM ,使用LV,擴容LV,縮減LV實戰來了解LVM及熟悉對LVM的操作。
準備工作準備虛擬機器,作業系統為CentOS7,初始20G的硬碟

初始狀態共20G的系統盤

在虛擬機器中新增兩塊硬碟

啟動虛擬機器通過pvs命令檢視物理卷的情況,目前只看到有虛擬機器初始安裝時有個pv為/dv/sda2 vg為centso的物理卷 大小為20G

通過fdisk -l 可以看到新加的兩個盤大小分別都是5G。我們將用這兩個盤組成一個vg,進行lvm的管理。

 

一、建立LVM邏輯卷
1、將物理硬碟格式化成PV(物理卷) 使用的是pvcreate命令
pvcreate /dev/sdc /dev/sdb (將/dev/sdc /dev/sdb兩塊硬碟建立為物理卷)

通過pvdisplay或pvs檢視當前的pv資訊,可以看到兩塊5G的物理卷已經成功建立

2、建立卷組(VG),並將PV加入到卷組中 通過vgcreate命令
vgcreate vg /dev/sdb /dev/sdc

 

通過vgdisplay或vgs命令檢視vg的資訊。看到vg已經建立好了,大小是兩個pv的大大小也就是5G+5G,大概是10G的樣子,這裡顯示9.99G

3、基於卷組(VG)建立邏輯卷(LV) 通過lvcreate命令
lvcreate -n app -L 2G vg (基於vg建立邏輯卷lv,名字為app,大小為2G)

用lvdisplay或lvs命令檢視建立好的邏輯卷。可以看到名字為app的邏輯卷lv已經建立好了,它是基於vg建立的,大小為2G

到這裡,lv就建立好了,但是要用起來,還得格式化並掛載到我們的檔案系統。

 

二、格式化並使用邏輯卷
1、格式化
mkfs -t ext4 /dev/vg/app 用ext4的格式格式化/dev/vg/app

2、掛載
建立掛載點 
mkdir /app
將/dev/vg/app 掛載到/app
mount /dev/vg/app /app 
然後df -h 可以看到已經掛載到/app下了 ,大小為lv 的大小2G

cd /app 
touch test.txt 在/app下建立一個測試檔案test.txt,可以看到該掛載點是可以用了。

設定開機載入
echo "/dev/vg/app /app ext4 defaults 0 0" >>/etc/fstab

 

三、擴容邏輯卷
這裡擴容分兩種情況,一種情況是vg還有足夠的空間,那麼就可以直接擴lv就可以了。另外一種情況是要擴的空間已經超過了vg的大小,那麼就可以通過加物理磁碟擴充到vg裡,然後再擴lv。
第一種情況,擴的空間大小在vg的容量範圍之內

現在vg的大小為10G,現在/app是2G,計劃擴到8G,沒有超過vg的大小那麼可以直接擴lv就可以了。
第一步:首先解除安裝裝置和掛載點的關聯
umount /app
第二步:將邏輯卷/dev/vg/app 擴充套件到8G
lvextend -L 8G /dev/vg/app 可以清楚的看到vg/app從2G擴容到了8G

第三步:檢查硬碟(lv)完整性,並重置硬碟(lv)容量
e2fsck -f /dev/vg/app 檢查硬碟完整性

resize2fs /dev/vg/app 重置硬碟(lv)容量,這一步必需要做,否則即使擴了容量,但看到的還是擴容之前的容量。

第四步:重新掛載硬碟並檢視
mount -a
df -h 可以看到/app已經成功擴容到8G了

ls 檢視/app裡面的檔案還在,說明擴容對檔案資料沒有啥影響。

如果擴容的大小超過了vg的大小怎麼辦呢?可以通過擴硬體的方式,加塊硬碟到vg然後再擴lv。
第二種情況,擴容的大小超過了vg的大小
現在vg的大小為10G,現在/app是8G,計劃擴到11G,已經沒有超過vg的10G大小那麼就需要先加硬碟,然後擴vg,再擴lv。
第一步:新增硬碟

通過fdisk -l命令檢視新增

第二步:擴容vg 將新的硬碟擴到vg卷組裡
解除安裝/app
umount /app
vgextend vg /dev/sdd 將新新增的硬碟/dev/sdd新增到vg卷組裡

第三步:擴容lv 將邏輯卷/dev/vg/app 擴充套件到11G
lvextend -L 11G /dev/vg/app 可以看到vg/app從原來的8G擴到了11G

第四步:同樣檢查硬碟(lv)完整性,並重置硬碟(lv)容量
e2fsck -f /dev/vg/app 檢查硬碟完整性
resize2fs /dev/vg/app 重置硬碟(lv)容量

第五步:重新掛載硬碟並檢視
mount -a
df -h 可以看到/app已經成功擴容到11G了


四、縮小邏輯卷
相對於邏輯卷擴容,縮小邏輯卷,資料丟失的風險更大。所以在生產環境中操作一定要注意提前備份好資料。在對LVM邏輯捲進行縮小操作之前,先把要縮小的檔案系統解除安裝並檢查檔案系統的完整性。
現在我們將/app由現在的11G縮到10G
第一步:解除安裝/app並檢查檔案系統完整性

第二步:把邏輯捲縮容到10G
resize2fs /dev/vg/app 10G
lvreduce -L 10G /dev/vg/app

第三步:重新掛載並檢視狀態


通過LVM的管理,建立、擴容、縮容,可以看到通過LVM技術可以實現系統儲存空間的動態的調整。

基本原理是將多個物理硬碟建立成pv(物理卷),這些物理卷是動態調整的物理基礎,通過vg將pv管理起來形成一個整體的資源池。在vg中劃分lv來動態調整邏輯卷的大小。

參考:VMware虛擬機器中CentOS7的硬碟空間擴容

轉自: LVM簡介及CentOS7 LVM操作實戰