邏輯卷詳解
LVM是Linux環境中對磁盤分區進行管理的一種機制,是創建在硬盤和分區之上、文件系統之下的一個邏輯層,可提升磁盤分區管理的靈活性。RHEL5默認安裝的分區格式就是LVM邏輯卷的格式,須要注意的是 /boot分區不能基於LVM建立,必須獨立出來。html
邏輯卷名詞解釋
- PV(Physical Volume):物理卷,處於LVM最底層,能夠是物理硬盤或者分區。
- VG(Volume Group):卷組,創建在PV之上,能夠含有一個到多個PV。
- LV(Logical Volume):邏輯卷,創建在VG之上,至關於原來分區的概念。不過大小能夠動態改變。
1.邏輯卷建立
邏輯卷建立首先須要準備新的硬盤或者分區(爲了後期便於維護管理,記得給分區加上8e標示)mysql
- 將磁盤或分區轉換成爲物理卷PV
pvcreate /dev/sdb1 /dev/sdb2
查看物理卷 pvs pvdisplay
- 建立卷組vg0,將建立好的物理卷添加到卷組中,默認的PE大小是4MB,PE是卷組的最小存儲單元,能夠用過-s參數修改
vgcreate vg0 /dev/sdb1 /dev/sdb2
查看卷組 vgs vgdisplay
- 建立邏輯卷lvdata
lvcreate -L 1G -n lvdata vg0
- 在邏輯捲上建立文件系統
mkfs.ext4 /dev/vg0/lvdata
- 掛載,將邏輯卷掛載到一個空目錄下
mount /dev/vg0/lvdata /mnt/data
- 爲了便於之後實現自動掛載,須要再/etc/fstab文件裏面添加一條記錄經過mount -a命令使配置文件生效
2.邏輯卷擴展
擴展邏輯卷,先關心下卷組裏的可用空間vgdsiplay,給邏輯卷拓展空間,不會影響之前空間的使用。linux
- 拓展邏輯卷,指定擴展大小
lvextend -L +1G /dev/vg0/lvdata
-L:指定邏輯卷的大小,單位爲「kKmMgGtT」字節;
-l:指定邏輯卷的大小(LE數)。
- 同步拓展文件系統
xfs_growfs /mnt/data/ xfs文件系統使用,後面跟掛載點
resize2fs /dev/vg0/lvdata ext文件系統使用,後臺跟邏輯卷名
lvextend -r -l +500 /dev/vg0/lvdata 通用寫法,推薦
3.卷組拓展
當卷組vg可用空間不足狀況下,能夠用分區或者新磁盤添加到卷組中sql
4.邏輯捲縮減
邏輯卷空間縮減,有必定風險,應當謹慎ide
- 先卸載邏輯卷
umount /mnt/data
- 經過e2fsck命令檢查邏輯卷
e2fsck -f /dev/vg0/lvdata
- resize2fs命令縮減文件系統空間
resize2fs /dev/vg0/lvdata 2G
- 縮減邏輯卷空間
lvreduce -L 2G /dev/vg0/lvdata
- 從新掛載
mount /dev/vg0/lvdata /mnt/data
注意:邏輯捲縮減只能是ext系列文件系統,xfs只支持拓展,不支持縮減ui
5.卷組縮減(因爲磁盤或者分區故障,將數據轉移到相同卷組其餘空間)
- 經過pvmove命令轉移空間數據
pvs 查看下各物理卷的剩餘空間
pvmove /dev/sdb1 /dev/sdb2
- 經過vgreduce命令將壞的磁盤或者分區從卷組vg0中移除
vgreduce vg0 /dev/sdb1
- 經過pvremove命令將即將壞的磁盤或者分區從邏輯卷系統中刪除
pvremove /dev/sdb1
pvmove命令,須要先關注下pvs中,各pv下剩餘空間,預先規劃,再操做
更多pvmove命令的案例能夠參考網址:
http://man7.org/linux/man-pages/man8/pvmove.8.htmlcode
6.邏輯卷的刪除
- 先取消掛載
umount /mnt/data
- 修改/etc/fstab文件裏面的掛載信息,不然系統啓動會出故障
- lvremove刪除邏輯卷
lvremove /dev/vg0/lvdata
- vgremove刪除卷組
vgremove vg0
- pvremove將物理卷轉換爲分區或者磁盤
pvremove /dev/sdb2 /dev/sdb3
- 若是有分區,修改分區標示,取消邏輯卷標示,換成普通標示
7.邏輯卷快照建立
- 快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝
- 對於須要備份或者複製的現有數據臨時拷貝以及其它操做來講,快照是最合適
的選擇
- 快照只有在它們和原來的邏輯卷不一樣時纔會消耗空間
- 在生成快照時會分配給它必定的空間,但只有在原來的邏輯卷或者快照有所
改變纔會使用這些空間
- 當原來的邏輯卷中有所改變時,會將舊的數據複製到快照中
- 快照中只含有原來的邏輯卷中更改的數據或者自生成快照後的快照中更改的
數據
- 創建快照的卷大小小於等於原始邏輯卷,也可使用lvextend擴展快照
- 因爲快照區與本來的LV共用不少PE的區塊,所以快照與被快照的LV必須在同
一個VG中.系統恢復的時候的文件數量不能高於快照區的實際容量
lvcreate -L # -n SLV_NAME -s -p r /PATH/LV 【指定爲那個邏輯卷建立的】
-s:表示快照卷
-p:指定權限r|w
-L:快照卷大小
xfs
lvcreate -s -n mysql_snapshot2 -L 1G /dev/vg0/mysql
//mount -o nouuid,ro /dev/vg0/mysql_snapshot2 /mnt/snap/
ext4
lvcreate -n binlog_snapshot -s -p r -L 1G /dev/vg0/binlog
//mount /dev/vg0/binlog_snapshot /mnt/snap/
** 注意,快照是不須要格式化和掛載的,爲了方便查看,能夠掛在到文件目錄下 **
8.邏輯卷快照還原
- 取消邏輯卷掛載
umount /mnt/data
- 執行lvconvert將快照的數據合併到原邏輯卷
lvconvert --merge /dev/vg0/binlog_snapshot
- 從新掛載原邏輯卷 mount /dev/vg0/lvdata /mnt/data