LVM是Linux環境下對磁盤分區進行管理的一種機制。
PV :物理卷:磁盤或分區 /dev/sda?
VG:卷組:一組磁盤和/或分區 /dev/<VG name>/(目錄)
LV:邏輯卷:LVM分區 /dev/<VG name>/<LV name>
RHEL/CentOS實現LVM的軟件包名爲lvm2,且一般是默認安裝的,可以使用如下命令進行安裝或更新:
#yum -y install lvm2
用戶可以使用 lvm -help 顯示lvm工具的常用命令,並可以使用命令參數 -h查看每個命令的使用方法.
1.創建卷
創建物理卷 pvcreate<磁盤或分區設備名> 創建物理卷的分區類型應爲8e
創建卷組 vgcreate<卷組名><物理卷設備名> 將若干物理卷添加到卷組中
創建邏輯卷 lvcreate<-L 邏輯卷大小><-n 邏輯卷名><卷組名> 指定邏輯卷大小時可使用的單位有:k/K,m/M,g/G,t/T,默認爲M
lvcreate<-l PE值><-n 邏輯卷名><卷組名>
注:在創建邏輯卷時,可以使用選項<-l PE值>指定邏輯卷的大小.PE值可以通過使用命令vgdisplay|grep “Free PE” 獲得。
例如:
1).創建兩個物理卷
pvcreate /dev/sdb1
pvcreate /dev/sdb2
2).爲創建的物理卷創建一個名爲chowVG的卷組
vgcreate chowVG /dev/dsb1 /dex/sdb2
3).在chowVG卷組中創建一個大小爲20G,名字爲chow的邏輯卷
lvcreate -L 20G -n chow chowVG
2.查看卷
pvdisplay 查看物理卷
vgdisplay 查看卷組
lvdisplay 查看邏輯卷
3.調整卷
擴展卷組 | vgextend<卷組名><物理卷設備名>[.....] | 將指定的物理卷添加到卷組中 |
縮減卷組 | vgreduce<卷組名><物理卷設備名>[.....] | 將指定的物理卷從卷組中刪除 |
擴展邏輯卷 | lvextend<-L +邏輯卷增量><邏輯卷設備名稱> lvextend<-l +PE值><邏輯卷設備名稱> | 擴展邏輯卷之後才能擴展邏輯捲上的文件系統的大小 |
縮減邏輯卷 | lvreduce<-L +邏輯卷增量><邏輯卷設備名稱> lvreduce<-l +PE值><邏輯卷設備名稱> | 縮減邏輯卷之前一定要縮減邏輯捲上的文件系統的大小 |
將磁盤數據遷移到LVM
問題描述:
1.系統磁盤使⽤接近100%
2.系統響應非常緩慢
3.原系統分區時,直接使⽤磁盤⽅式,未採⽤LVM技術
解決⽅法:
1.系統磁盤是否爲LVM,已經是LVM存在,則新建⼀個物理卷,將新增物理卷添加到舊的物理卷,並對邏輯捲進⾏動態拉伸,完成磁盤動態擴容,完全不會影響業務數據。
2.系統碰盤不是LVM,則⽆法對數據進⾏動態添加。停⽌所有服務,將部分達索數據遷移到新建LVM,遷移完成後,比對⽂件夾數據,確定⼀致後,將舊有數據清除,並將LVM掛載到相應⽬錄中,完成磁盤的擴容。
如果需要圖形⽤戶界⾯:
0.yum install system-config-lvm
1.虛機中添加⼀塊磁盤
2.對磁盤進⾏分區和初始化(以sdb爲例)
fdisk /dev/sdb
n 創建新分區
l 查看系統⽀持的分區格式
t 分區類型選擇8e
w 保存修改操作磁盤,需要⽤到root權限
1.fdiks /dev/sdb
更新剛剛操作過的磁盤分區表,不是必須執⾏的命名,⼀般系統會⾃動更新
2.partx -a /dev/sdb把新創建的分區更新爲物理卷
3.pvcreate /dev/sdb1⽤新創建的物理卷創建卷組
4.vgcreate myvg /dev/sdb1
vas
如果需要對原卷組進⾏擴容,則勿需再創建新卷組
vgextend myvg /dev/sdb1
從已有卷組中創建邏輯卷使⽤卷組中的30G作爲新的邏輯卷
5.lvcreate -L 30G -n mylv myvg
使⽤卷組中的所有空間作爲新的邏輯卷
lvcreate -l 100%free -n mlv myvg
查看邏輯卷的狀態
lvs
查看是否產⽣新的邏輯卷節點
6.ll /dev/myvg/mylv
對新的邏輯鄭進⾏格式化
7.mkfs.ext4 /dev/myvg/mylv
掛載和使⽤新的邏輯卷
8.sudo mount /dev/myvg/mylv /mnt/lvmdisk
如果需要對邏輯進⾏擴容只相增加20G的空間
lvextend -L +20G /dev/myvg/mylv 注意這⾥是⼤寫的L
想使⽤卷組中的所有容間
lvextend -l +100%FREE /dev/myvg/mylv 注意這⾥是⼩寫的l
更新邏輯卷的磁盤⼤⼩resize2fs -P /dev/myvg/mylv