LVM逻辑卷的使用

来自CloudWiki
跳转至: 导航搜索

逻辑卷管理

LVM概念:

  当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到磁盘“灵活性”的限制。这时就需要用到一项非常普及的硬盘设备资源管理技术了 — LVM。LVM逻辑卷管理是Linux环境下对磁盘分区进行管理的一种机制,允许用户对硬盘资源进行动态调整。LVM是建立在硬盘或者分区之上的一个逻辑层,为文件系统屏蔽下层磁盘分区布局,从而提高磁盘分区管理的灵活性。通过LVM系统,管理员可以轻松管理磁盘分区,如将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷(logical volume),并进一步在逻辑卷上创建文件系统。管理员通过LVM可以方便地调整卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。例如,按照.使用用途进行定义development和sales,而不是使用物理磁盘名sda和sdb。当系统添加了新的磁盘后,管理员不必将磁盘的文件移动到新的磁盘上,以便充分利用新的存储空间,而是通过LVM直接扩展文件系统跨越磁盘即可。

LVM基本术语:

1.物理卷PV

  物理卷在LVM系统中处于最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后,也可以继续向其中添加新的物理卷。物理卷可以是整个硬盘、硬盘上的分区,或从逻辑上与磁盘分区具有同样功能的设备(如RAID)。物理卷是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

2.卷组VG

  卷组建立在物理卷之上,由一个或多个物理卷组成。卷组创建之后,可以动态地添加物理卷到卷组中,在卷组上可以创建一个或多个LVM分区(逻辑卷)。一个LVM系统中可以只有一个卷组,也可以包含多个卷组。LVM管理的卷组类似于非LVM系统中的物理硬盘。

3.逻辑卷LV

  逻辑卷建立在卷组之上,是从卷组中“切出”的一块空间。逻辑卷创建之后,其大小可以伸缩。LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统.(如/home或者/usr等)。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。

4.物理区域PE

  每一个物理卷被划分为基本单元(称为PE),具有唯一编号的 PE,是可以被LVM寻址的最小存储单元。PE的大小可根据实际情况在创建物理卷时指定,默认为4 MB。PE的大小一旦确定将不能改变,同一个卷组中所有物理卷的PE大小一致。

5.逻辑区域LE

  逻辑区域也被划分为可被寻址的基本单位(称为LE)。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。和非LVM系统将包含分区信息的元数据(metadata)保存在位于分区起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起.始处的卷组描述符区域VGDA中。VGDA包括PV描述符、VG描述符、IV描述签和一些PF描述符。


LVM逻辑卷操作:

LVM技术简单来说,就是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户无须关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。常规操作有如下4个操作:


1.部署逻辑卷

  一般而言,在生产环境中无法精确地预估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录的体积也随之增加;分析并记录用户的行为导致日志目录的体积不断变大,这些都会导致原有的硬盘分区在使用上捉襟见肘。另外,还存在对较大的硬盘分区进行精简缩容的情况。可以通过部署LVM来解决上述问题。部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。

2.扩容逻辑卷

  卷组是由多块硬盘设备共同组成的,用户在使用存储设备时感觉不到设备底层的架构和局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩容前请--定要记得卸载设备和挂载点的关联。

3.缩小逻辑卷

  相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外,Linux 系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证数据安全)。在执.行缩容操作前记得先把文件系统卸载掉。

4.删除逻辑卷

  当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。 




实训:

1.创建物理卷

在创建物理卷之前,需要对磁盘进行分区。首先使用fdisk命令对sdb进行分区操作,分出两个大小为5GB的分区,命令如下:

fdisk /dev/sdb

p(打印分区表)

n (新建一个新分区)

回车

回车

+5G

n(新建一个新分区)

p (打印分区表)

回车

回车

+5G

p(打印分区表)

w(保存退出)


用lsblk查看一下 可以看到sdb这个磁盘分成了sdb1和sdb2两个区

Lvm121.jpg

分完区后,对这两个分区创建物理卷:

pvcreate /dev/sdb1  /dev/sdb2

Lvm122.jpg

创建完毕后,我们可以用pvs查看物理卷的简单信息,也可以用 pvdisplay 查看详细信息

Lvm123.jpg

2.创建卷组

使用刚才创建好的两个物理卷,创建名为myvg的卷组,命令如下

Vgcreate myvg /dev/sdb[1-2]

Lvm124.jpg

查看卷组信息,命令如下:

Vgs (可以查看到创建的myvg卷组,名字为centos的卷组是系统卷组,因为在安装系统的时候,是使用LVM模式安装的)

Lvm125.jpg

详细命令用:

Vgdisplay

Lvm126.jpg


 当多个物理卷组合成一个卷组后时,LVM会在所有的物理卷上做类似格式化的工作,将每个物理卷切成- -块一块的空间,这一块一块的空间就称为PE (Physical Extent),它的默认大小是4 MB。
 由于受内核限制的原因,一个逻辑卷(LogicVolume)最多只能包含65536个PE(PhysicalExtent),所以一个PE的大小就决定了逻辑卷的最大容量,4 MB的PE决定了单个逻辑卷最大容量为256GB,若希望使用大于256Gb的逻辑卷,则创建卷组时需要指定更大的PE。


删除卷组:

Vgremove myvg

Lvm127.jpg

在重新创建卷组,并指定PE大小为16M

vgcreate -s 16m myvg /dev/sdb[1-2]

Lvm128.jpg

用vgdisplay查看一下:

可以查看到现在myvg卷组的PE大小为16MB

向卷组myvg中添加一个物理卷,在/dev/sdb. 上再分一个/dev/sdb3分区,把该分区到卷组myvg中。命令如下:

Fdisk /dev/sdb

Lsblk (查看创建的分区)

Lvm129.jpg

将创建的/dev/sdb3添加到myvg卷组中,在添加的过程中,会自动将/dev/sdb3创建为物理卷,命令如下:

Vgextend myvg /dev/sdb3

Lvm131.jpg

用vgs查看一下 可以看到

Myvg这个卷组变成了3个物理卷

Lvm133.jpg

可以用详细命令查看一下:

Vgdisplay myvg

Lvm134.jpg


3.创建逻辑卷

创建逻辑卷,名为mylv,大小为5gb。命令如下:

 Lvcreate -L +5G -n mylv myvg

-L创建逻辑卷的大小

-n 创建逻辑卷的名称

Lvm135.jpg


用lvs查看一下逻辑卷

Lvm136.jpg

扫描上一步创建lv逻辑卷:

Lvscan

Lvm137.jpg

使用ext4文件系统格式化逻辑卷mylv:

Mkfs.ext4 /dev/mapper/myvg-mylv

Lvm138.jpg

把逻辑卷mylv挂载到/mnt下并验证:

Mount /dev/mapper/myvg-mylv /mnt/

Lvm139.jpg

用df -h 查看挂载信息

Lvm140.jpg

将创建的LVM卷扩容之1Gb:

Lvextend -L +1G /dev/mapper/myvg-mylv

Lvm141.jpg

用lvs查看一下myvg-mylv这个大小

Lvm142.jpg

在用df -h查看一下

Lvm143.jpg

可以查看到LVM卷的大小变成了6GB,但是挂载信息中没有发生变化,这时系统还识别不了新添加的磁盘文件系统,所以还需要对文件系统进行扩容。

Resize2fs  /dev/mapper/myvg-mylv

Lvm144.jpg

再用df -h 查看一下

Lvm145.jpg

可以看到扩容逻辑卷成功。