2021-05-12 14:32:11
LVM邏輯盤卷管理
一、簡介
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁碟分割區進行管理的一種機制,LVM是建立在硬碟和分割區之上的一個邏輯層,來提高磁碟分割區管理的靈活性。
LVM的工作原理是通過將底層的物理硬碟抽象的封裝起來,然後以邏輯卷的方式呈現給上層應用。在傳統的磁碟管理機制中,我們的上層應用是直接存取檔案系統,從而對底層的物理硬碟進行讀取,而在LVM中,其通過對底層的硬碟進行封裝,當我們對底層的物理硬碟進行操作時,其不再是針對於分割區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁碟管理操作。
LVM最大的特點就是可以對磁碟進行動態管理。因為邏輯卷的大小是可以動態調整的,而且不會丟失現有的資料。如果我們新增加了硬碟,其也不會改變現有上層的邏輯卷。作為一個動態磁碟管理機制,邏輯卷技術大大提高了磁碟管理的靈活性。
基本的邏輯卷管理概念:
PV(Physical Volume)- 物理卷
物理捲在邏輯卷管理中處於最底層,它可以是實際物理硬碟上的分割區,也可以是整個物理硬碟,也可以是raid裝置。
VG(Volumne Group)- 卷組
捲組建立在物理卷之上,一個捲組中至少要包括一個物理卷,在捲組建立之後可動態新增物理捲到卷組中。一個邏輯卷管理系統工程中可以只有一個捲組,也可以擁有多個捲組。
LV(Logical Volume)- 邏輯卷
邏輯卷建立在捲組之上,捲組中的未分配空間可以用於建立新的邏輯卷,邏輯卷建立後可以動態地擴充套件和縮小空間。系統中的多個邏輯卷可以屬於同一個捲組,也可以屬於不同的多個捲組。
關係圖如下:
PE(Physical Extent)- 物理塊
LVM 預設使用4MB的PE區塊,而LVM的LV最多僅能含有65534個PE (lvm1 的格式),因此預設的LVM的LV最大容量為4M*65534/(1024M/G)=256G。PE是整個LVM 最小的儲存區塊,也就是說,其實我們的資料都是由寫入PE 來處理的。簡單的說,這個PE 就有點像檔案系統裡面的block 大小。所以調整PE 會影響到LVM 的最大容量!
二、系統環境及磁碟準備
系統平台:CentOS 7
LVM版本:lvm2-2.02.130-5.el7.x86_64
裝置型別:分割區、物理磁碟
磁碟準備:新增一塊磁碟做實驗
三、安裝LVM管理工具
1、檢查系統中是否安裝了LVM管理工具
[root@bash ~]# rpm -qa |grep lvm mesa-private-llvm-3.6.2-2.el7.x86_64 lvm2-2.02.130-5.el7.x86_64 lvm2-libs-2.02.130-5.el7.x86_64
2、如果未安裝,則使用yum方式安裝
# yum -y install lvm* [root@localhost ~]# rpm -qa lvm2 lvm2-2.02.130-5.el7.x86_64
四、新建一個分割區
1、使用/dev/sdb模擬分割區
# fdisk /dev/sdb
檔案系統型別為:8e (Linux LVM)
[root@bash ~]# fdisk -l /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x141c2b15 Device Boot Start End Blocks Id System /dev/sdb1 2048 10487807 5242880 8e Linux LVM /dev/sdb2 10487808 20973567 5242880 8e Linux LVM /dev/sdb3 20973568 31459327 5242880 8e Linux LVM /dev/sdb4 31459328 41943039 5241856 8e Linux LVM
五、建立PV
命令介紹:
#pvs 檢視pv狀態 # pvcreate 將物理分割區新建成為PV # pvscan 查詢目前系統裡面任何具有PV的磁碟 # pvdisplay 顯示出目前系統上面的PV狀態 # pvremove 將PV屬性移除,讓該分割區不具有PV屬性
1、將/dev/sdb1 - /dev/sdb4新建成為PV格式
[root@bash test]# pvcreate /dev/sdb{1..4} Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created Physical volume "/dev/sdb3" successfully created Physical volume "/dev/sdb4" successfully created
2、查詢目前系統裡面任何具有PV的磁碟
[root@bash test]# pvscan PV /dev/sdb3 lvm2 [5.00 GiB] PV /dev/sdb2 lvm2 [5.00 GiB] PV /dev/sdb1 lvm2 [5.00 GiB] PV /dev/sdb4 lvm2 [5.00 GiB] Total: 4 [20.00 GiB] / in use: 0 [0 ] / in no VG: 4 [20.00 GiB]
六、建立VG
命令介紹:
# vgcreate 新建VG vgcreate [-s N[mgt]] VG名稱 裝置名稱 -s 接PE的大小 # vgscan 查詢目前系統裡面是否有VG的磁碟 #vgs檢視vg狀態 # vgdisplay 顯示出目前系統上面的VG狀態 # vgextend 在VG內增加額外的PV # vgreduce 在VG內刪除PV # vgchange 設定VG是否啟動(active) # vgremove 刪除一個VG
PV的名稱是分割區的裝置檔案名字,VG名稱可以自定義的,我將VG的名稱定義為myvg
1、將/dev/sdb1-/dev/sdb3
新建為一個VG,且指定PE為15MB
[root@bash test]# vgcreate -s 15M "myvg" /dev/sdb{1..3} Volume group "myvg" successfully created
2、檢視系統上的VG狀態
[root@bash test]# pvscan PV /dev/sdb1 VG myvg lvm2 [5.00 GiB / 5.00 GiB free] PV /dev/sdb2 VG myvg lvm2 [5.00 GiB / 5.00 GiB free] PV /dev/sdb3 VG myvg lvm2 [5.00 GiB / 5.00 GiB free] PV /dev/sdb4 lvm2 [5.00 GiB] Total: 4 [19.98 GiB] / in use: 3 [14.99 GiB] / in no VG: 1 [5.00 GiB]
3.顯示出目前系統上面的VG狀態
[root@bash test]# vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 14.99 GiB PE Size 15.00 MiB Total PE 1023 Alloc PE / Size 0 / 0 Free PE / Size 1023 / 14.99 GiB VG UUID CT1KmC-upAS-0r1t-5KQV-MR7z-2jfj-ufOc8Q
4、新增PV給myvg
[root@bash test]# vgextend "myvg" /dev/sdb4 Volume group "myvg" successfully extended
5、顯示出目前系統上面的VG狀態
[root@bash test]# vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 4 Act PV 4 VG Size 19.98 GiB PE Size 15.00 MiB Total PE 1364 Alloc PE / Size 0 / 0 Free PE / Size 1364 / 19.98 GiB VG UUID CT1KmC-upAS-0r1t-5KQV-MR7z-2jfj-ufOc8Q
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2017-02/140396p2.htm
相關文章