1 LVM介紹
LVM(Logical Volume Manager)邏輯卷管理,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁盤分區,
邏輯卷管理器的技術結構
2 LVM的優缺點
優點:
1. 文件系統可以跨多個磁盤,因此文件系統大小不會受物理磁盤的限制。
2. 可以在系統運行的狀態下動態的擴展文件系統的大小。
3. 可以增加新的磁盤到LVM的存儲池中。
4. 可以以鏡像的方式冗餘重要的數據到多個物理磁盤。
5. 可以方便的導出整個卷組到另外一臺機器。
缺點:
1. 在從卷組中移除一個磁盤的時候必須使用reducevg命令(這個命令要求root權限,並且不允許在快照卷組中使用)。
2. 當卷組中的一個磁盤損壞時,整個卷組都會受到影響。
3. 因爲加入了額外的操作,存貯性能受到影響。
3 LVM基礎概念
1. 物理卷……PV(Physical Volume):物理卷在邏輯卷管理中處於最底層,它可以是實際物理硬盤上的分區,也可以是整個物理硬盤。
2. 卷組……VG(Volumne Group):卷組建立在物理卷之上,一個卷組中至少要包括一個物理卷,在卷組建立之後可動態添加物理捲到卷組中。一個LVM系統中可以只有一個卷組,也可以擁有多個卷組。
3. 邏輯卷……LV(Logical Volume):邏輯卷建立在卷組之上,卷組中的未分配空間可以用於建立新的邏輯卷,邏輯卷建立後可以動態地擴展和縮小空間。系統中的多個邏輯卷可以屬於同一個卷組,也可以屬於不同的多個卷組。
4. 物理區域……PE(Physical Extent):物理區域是物理卷中可用於分配的最小存儲單元,物理區域的大小可根據實際情況在建立物理卷時指定。物理區域大小一旦確定將不能更改,同一卷組中的所有物理卷的物理區域大小需要一致。
5. 邏輯區域……LE(Logical Extent):邏輯區域是邏輯卷中可用於分配的最小存儲單元,邏輯區域的大小取決於邏輯卷所在卷組中的物理區域的大小。
6. 卷組描述區域……VGDA(Volume Group Descriptor Area):卷組描述區域存在於每個物理卷中,用於描述物理卷本身、物理卷所屬卷組、卷組中的邏輯卷及邏輯卷中物理區域的分配等所有信息,卷組描述區域是在使用pvcreate建立物理卷時建立的。
4 LVM管理命令
PV:Physical(物理卷)
pvcreate、pvs 、pvdisplay 、pvremove、pvmove、pvscan
VG:Volume Group(卷組)
vgcreate、vgs、vgdisplay、vgremove、vgrename、vgreduce、vgextent
LV:logical Volume(邏輯卷)
lvs、lvdisplay、lvremove、lvextend、lvresize、lvscan、lvrename
功能命令 | 物理卷管理 | 卷組管理 | 邏輯卷管理 |
掃描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
顯示 | pvdisplay /pvs | vgdisplay /vgs | lvdisplay /lvs |
刪除 | pvremove | vgremove | lvremove |
擴展 | vgextend | lvextend | |
縮小 | vgreduce | lvreduce |
5 LVM的配置
部署邏輯卷創建過程:
1.創建物理卷, 添加物理磁盤
2.創建卷組, 添加物理卷加⼊到該卷組
3.在卷組中劃分邏輯卷
操作步驟:
1、部署邏輯卷
1. 準備物理磁盤
[root@lvm ~]# lsblk |grep "sd[bcd]"
2. 將磁盤加⼊pv
[root@lvm ~]# pvcreate /dev/sdb
3. 檢查pv創建情況
[root@lvm ~]# pvs
4. 創建名爲datavg的卷組
vgcreate
-s 指定PE大小
[root@lvm ~]# vgcreate datavg /dev/sdb
5. 檢查卷組
[root@lvm ~]# vgs
6. 查看卷組組信息
[root@lvm ~]# vgdisplay test
7. 創建邏輯卷, 分配名稱, 以及⼤⼩, 指定卷組
[root@lvm ~]# lvcreate -L 200M -n data test
8. 檢查邏輯卷
[root@lvm ~]# lvscan
9. 查看邏輯卷信息
[root@lvm ~]# lvdisplay /dev/test/data
10. 格式化⽂件系統
[root@lvm ~]# mkfs.xfs /dev/test/data
11. 掛載並使⽤
[root@lvm ~]# mkdir /data
[root@lvm ~]# mount /dev/test/data /data/
[root@lvm ~]# df –h
2、卷組池管理
1. 新硬盤加⼊pv
[root@lvm ~]# pvcreate /dev/sdc
2. 查看pv信息
[root@lvm ~]# pvdisplay /dev/sdc
3. 擴展卷組VG, 擴⼤VG卷組使⽤vgextend擴展
[root@lvm ~]# vgextend test /dev/sdc
4. 查看vg信息
[root@lvm ~]# vgdisplay test
5. 移除卷組VG, 移除vg組中某⼀塊硬盤
[root@lvm ~]# vgreduce datavg /dev/sdb
6. 查看vg信息
[root@lvm ~]# vgdisplay test
7.數據遷移卷組VG, 同⼀卷組的磁盤纔可以進⾏在線遷移
檢查當前邏輯卷VG中PV使⽤情況
[root@lvm ~]# pvs
8. pvmove在線數據遷移⾄其他pv
[root@lvm ~]# pvmove /dev/sdb
9. 檢查是否將sdb數據遷移⾄sdc
[root@lvm ~]# pvs
3、擴容邏輯卷
邏輯卷的擴展, 取決於vg卷中剩餘多少容量, 擴展容量不能超過卷組VG
xfs擴容 lv邏輯卷
1. 增加800M分配給邏輯卷 {注意: 800M +800M 不⼀樣;直接800M是擴展到800M,+800M是在原有基礎+800M。}
[root@lvm ~]# lvextend -L +800M /dev/test/data
2. 刷新磁盤分區
[root@lvm ~]# xfs_growfs /dev/test/data
3. 查看磁盤大小
[root@lvm ~]# df –Th
4. ext擴容分配磁盤池中多少百分⽐給邏輯卷
[root@lvm ~]# lvextend -l +50%FREE /dev/test/nfs
[root@lvm ~]# resize2fs /dev/test/nfs
5. 查看磁盤大小
[root@lvm ~]# df –Th
4、縮⼩邏輯卷
ext4 離線減小邏輯卷
1. 取消掛載/dev/test/nfs
[root@lvm ~]# umount /dev/test/nfs/
2. 掃描信息 (把空的數據補齊)
[root@lvm ~]# e2fsck -f /dev/test/nfs
3. 減小文件系統到600M
[root@lvm ~]# resize2fs /dev/test/nfs 600M
4. 減小邏輯卷爲600M
[root@lvm ~]# lvreduce -L 600M /dev/test/nfs
5. 重新掛載磁盤,並查看掛載信息
[root@lvm ~]# mount /dev/test/nfs /nfs/
[root@lvm ~]# df –Th
xfs只能擴大文件系統大小,不能減小文件系統大小。
5、刪除邏輯卷
當生產環境中想要重新部署LVM或者不再需要使用LVM時,則需要執行LVM的刪除操作。爲此,需要提前備份好重要的數據信息,然後依次刪除邏輯卷、卷組、物理卷設備,這個順序不可顛倒。若你寫入自動掛載配置文件中,首先取消邏輯卷與目錄的掛載關聯,刪除配置文件中永久生效的設備參數。
1. 刪除邏輯卷設備,需要輸入y來確認操作
[root@lvm ~]# lvremove /dev/test/nfs
2. 刪除卷組,此處只寫卷組名稱即可,不需要設備的絕對路徑。
[root@lvm ~]# vgremove test
3. 刪除物理卷設備。
[root@lvm ~]# pvremove /dev/sdb /dev/sdc
4. 在上述操作執行完畢之後,再執行lvdisplay、vgdisplay、pvdisplay命令來查看LVM的信息時就不會再看到信息了(前提是上述步驟的操作是正確的)。
[root@lvm ~]# pvdisplay /dev/sdb
[root@lvm ~]# vgdisplay test
[root@lvm ~]# lvdisplay /dev/test/nfs