LVM逻辑盘卷管理

一、简介

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

LVM的工作原理是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

基本的逻辑卷管理概念:

PV(Physical Volume)- 物理卷

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。

VG(Volumne Group)- 卷组

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

关系图如下:

扫描二维码关注公众号,回复: 1965269 查看本文章

038ab12ee6a26238.jpg

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 的最大容量!

4f85384f7df5a5d0.gif

二、系统环境及磁盘准备

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

猜你喜欢

转载自www.linuxidc.com/Linux/2017-02/140396.htm