歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> LVM邏輯盤卷管理

LVM邏輯盤卷管理

日期:2017/2/28 13:43:36   编辑:Linux教程

一、簡介

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
Copyright © Linux教程網 All Rights Reserved