首頁 > 軟體

LVM邏輯盤卷管理

2020-06-16 17:21:50

一、簡介

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


IT145.com E-mail:sddin#qq.com