阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.3下配置LVM(逻辑卷管理)

123次阅读
没有评论

共计 6926 个字符,预计需要花费 18 分钟才能阅读完成。

一、简介

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

LVM 的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在 LVM 中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

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

基本的逻辑卷管理概念:

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

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

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

mysqldump 和 LVM 逻辑卷快照 http://www.linuxidc.com/Linux/2013-09/90382.htm

LVM 的综合性介绍及实现 http://www.linuxidc.com/Linux/2013-03/81482.htm

LVM 创建实例讲解 http://www.linuxidc.com/Linux/2014-02/97201.htm

详解 LVM 工作原理及企业中高级应用实例分析 http://www.linuxidc.com/Linux/2013-05/84993.htm

关系图如下:

CentOS 6.3 下配置 LVM(逻辑卷管理)

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 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

CentOS 6.3 下配置 LVM(逻辑卷管理)

二、系统环境

实验环境:Oracle VM VirtualBox

系统平台:CentOS release 6.3 (Final)

mdadm 版本:mdadm – v3.2.6 – 25th October 2012

LVM 版本:lvm2-2.02.100-8.el6.i686

设备类型:分区、物理硬盘、raid 设备

三、磁盘准备

在这篇文章中,我们将模拟 raid5、分区、物理硬盘三种类型设备创建 VG,raid5 需要四块硬盘,分区和物理硬盘各一块硬盘,还有扩容时需要至少一块硬盘,所以在虚拟机里添加八块硬盘,每块 5GB.

CentOS 6.3 下配置 LVM(逻辑卷管理)

四、安装 LVM 管理工具

4.1 检查系统中是否安装了 LVM 管理工具

# rpm -qa|grep lvm

4.2 如果未安装,则使用 yum 方式安装

# yum install lvm*

# rpm -qa|grep lvm

CentOS 6.3 下配置 LVM(逻辑卷管理)

五、新建一个 raid5 设备

使用 /dev/sdb, /dev/sdc, /dev/sdd, /dev/sde 四块物理硬盘做软 raid 模拟。

# mdadm -C /dev/md5 -ayes -l5 -n3 -x1 /dev/sd[b,c,d,e]

CentOS 6.3 下配置 LVM(逻辑卷管理)

写入 RAID 配置文件 /etc/mdadm.conf 并做适当修改。

# echo DEVICE /dev/sd{b,c,d,e} >> /etc/mdadm.conf

# mdadm –Ds >> /etc/mdadm.conf

详细请参考上篇文章:http://www.linuxidc.com/Linux/2014-06/103838.htm

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103839p2.htm

六、新建一个分区

使用 /dev/sdf 模拟分区。

# fdisk /dev/sdf

# fdisk -l /dev/sdf

CentOS 6.3 下配置 LVM(逻辑卷管理)

准备工作就绪,下面我们使用三种设备 /dev/md5、/dev/sdf1、/dev/sdg 来完成 LVM 实验。

七、创建 PV

# pvcreate /dev/md5 /dev/sdf1 /dev/sdg

CentOS 6.3 下配置 LVM(逻辑卷管理)

查看 PV

# pvdisplay

CentOS 6.3 下配置 LVM(逻辑卷管理)

还可以使用命令 pvs 和 pvscan 查看简略信息。

# pvs

CentOS 6.3 下配置 LVM(逻辑卷管理)

# pvscan

8

一、简介

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

LVM 的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在 LVM 中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

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

基本的逻辑卷管理概念:

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

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

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

mysqldump 和 LVM 逻辑卷快照 http://www.linuxidc.com/Linux/2013-09/90382.htm

LVM 的综合性介绍及实现 http://www.linuxidc.com/Linux/2013-03/81482.htm

LVM 创建实例讲解 http://www.linuxidc.com/Linux/2014-02/97201.htm

详解 LVM 工作原理及企业中高级应用实例分析 http://www.linuxidc.com/Linux/2013-05/84993.htm

关系图如下:

CentOS 6.3 下配置 LVM(逻辑卷管理)

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 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

CentOS 6.3 下配置 LVM(逻辑卷管理)

二、系统环境

实验环境:Oracle VM VirtualBox

系统平台:CentOS release 6.3 (Final)

mdadm 版本:mdadm – v3.2.6 – 25th October 2012

LVM 版本:lvm2-2.02.100-8.el6.i686

设备类型:分区、物理硬盘、raid 设备

三、磁盘准备

在这篇文章中,我们将模拟 raid5、分区、物理硬盘三种类型设备创建 VG,raid5 需要四块硬盘,分区和物理硬盘各一块硬盘,还有扩容时需要至少一块硬盘,所以在虚拟机里添加八块硬盘,每块 5GB.

CentOS 6.3 下配置 LVM(逻辑卷管理)

四、安装 LVM 管理工具

4.1 检查系统中是否安装了 LVM 管理工具

# rpm -qa|grep lvm

4.2 如果未安装,则使用 yum 方式安装

# yum install lvm*

# rpm -qa|grep lvm

CentOS 6.3 下配置 LVM(逻辑卷管理)

五、新建一个 raid5 设备

使用 /dev/sdb, /dev/sdc, /dev/sdd, /dev/sde 四块物理硬盘做软 raid 模拟。

# mdadm -C /dev/md5 -ayes -l5 -n3 -x1 /dev/sd[b,c,d,e]

CentOS 6.3 下配置 LVM(逻辑卷管理)

写入 RAID 配置文件 /etc/mdadm.conf 并做适当修改。

# echo DEVICE /dev/sd{b,c,d,e} >> /etc/mdadm.conf

# mdadm –Ds >> /etc/mdadm.conf

详细请参考上篇文章:http://www.linuxidc.com/Linux/2014-06/103838.htm

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103839p2.htm

八、创建 VG

# vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg

CentOS 6.3 下配置 LVM(逻辑卷管理)

说明:vg0 是创建的 VG 设备的名称,可以随便取;后面接上述的三个设备,也就是把三个设备组合成一个 vg0.

查看 VG

# vgdisplay

CentOS 6.3 下配置 LVM(逻辑卷管理)

说明:

VG Name VG 的名称

VG Size VG 的总大小

PE Size PE 的大小,默认为 4MB

Total PE PE 的总数量,5114 x 4MB = 19.98GB

Free PE / Size 剩余空间大小

同样可以使用命令 vgs 和 vgscan 查看。

# vgs

CentOS 6.3 下配置 LVM(逻辑卷管理)

# vgscan

CentOS 6.3 下配置 LVM(逻辑卷管理)

九、创建 LV

# lvcreate -L 5G -n lv1 vg0

CentOS 6.3 下配置 LVM(逻辑卷管理)

说明:

-L 指定创建的 LV 的大小
-l 指定创建的 LV 的 PE 数量
-n LV 的名字
上面命令的意思是:从 vg0 中分出 5G 的空间给 lv1 使用

查看 LV 的信息

# lvdisplay

CentOS 6.3 下配置 LVM(逻辑卷管理)

说明:

LV Path LV 的路径,全名

LV Name LV 的名字

VG Name 所属的 VG

LV Size LV 的大小

再来看 VG 的信息

# vgs

CentOS 6.3 下配置 LVM(逻辑卷管理)

VFree 从 19.98g 减少到了 14.98g,另外的 5g 被分配到了 lv1.

十、格式化 LV

# mkfs.ext4 /dev/vg0/lv1

CentOS 6.3 下配置 LVM(逻辑卷管理)

十一、挂载使用

# mkdir /mnt/lv1

# mount /dev/vg0/lv1 /mnt/lv1/

# df –TH

CentOS 6.3 下配置 LVM(逻辑卷管理)

将挂载信息写入 /etc/fstab

CentOS 6.3 下配置 LVM(逻辑卷管理)

十二、添加测试数据

下面我们将对 LVM 进行扩容和缩减操作,所以向 /mnt/lv1 中写入测试数据以验证 LVM 的磁盘动态管理。

# touch /mnt/lv1/test_lvm_dynamic.disk

# touch /mnt/lv1/test_lvm_dynamic.disk2

# touch /mnt/lv1/test_lvm_dynamic.disk3

# ll /mnt/lv1/

19

十三、LVM 的扩容操作

LVM 最大的好处就是可以对磁盘进行动态管理,而且不会丢失现有的数据。

假如有一天,lv1 的使用量达到了 80%,需要扩容,那我们该怎么做呢?

因为 vg0 中还有很多剩余空间,所以我们可以从 vg0 中再分配点空间给 lv1。

13.1 LV 的扩容

查看 vg0 的剩余容量,还有 14.98g 可用。

CentOS 6.3 下配置 LVM(逻辑卷管理)

对 lv1 进行扩容。

# lvextend -L +1G /dev/vg0/lv1

CentOS 6.3 下配置 LVM(逻辑卷管理)

说明:在 lv1 原有的基础上增加了 1G.

查看现在 vg0 的剩余容量,减少了 1G.

CentOS 6.3 下配置 LVM(逻辑卷管理)

再查看 lv1 的容量,从 5G 增加到了 6G.

CentOS 6.3 下配置 LVM(逻辑卷管理)

使用 df –TH 命令查看实际的磁盘容量。

CentOS 6.3 下配置 LVM(逻辑卷管理)

发现实际容量并没有变化,因为我们的系统还不认识刚刚添加进来的磁盘的文件系统,所以还需要对文件系统进行扩容。

# resize2fs /dev/vg0/lv1

# df –TH

CentOS 6.3 下配置 LVM(逻辑卷管理)

现在的可用容量已经增加到了 5.9G。

查看测试数据

CentOS 6.3 下配置 LVM(逻辑卷管理)

数据正常,对 lv1 的在线动态扩容完成。

还有一种情况,就是假如我们的 vg0 空间不够用了,怎么办?这时我们就需要对 VG 进行扩容。

13.2 VG 的扩容

VG 的扩容可以有两种方法,第一种方法是通过增加 PV 来实现,操作如下:

A. 创建 PV,使用 /dev/sdh 来创建一个 PV。

CentOS 6.3 下配置 LVM(逻辑卷管理)

B. 扩容 VG

现在的 vg0 容量为 19.98g.

CentOS 6.3 下配置 LVM(逻辑卷管理)

# vgextend vg0 /dev/sdh

# vgs

CentOS 6.3 下配置 LVM(逻辑卷管理)

现在 vg0 的容量为 24.97g, 增加了 5GB,即一块物理硬盘的容量,VG 扩容成功。

第二种方法是通过扩展 RAID 设备的容量来间接对 VG 进行扩容。这种方法在上一篇文章中有介绍,这里不再赘述,需要注意的地方是,/dev/md5 的大小变化后,需要调整 PV 的大小,操作如下:

# pvresize /dev/md5

CentOS 6.3 下配置 LVM(逻辑卷管理)

十四、LVM 的缩减操作

缩减操作需要离线处理。

14.1 LV 的缩减

A. umount 文件系统

CentOS 6.3 下配置 LVM(逻辑卷管理)

B. 缩减文件系统

# resize2fs /dev/vg0/lv1 4G

CentOS 6.3 下配置 LVM(逻辑卷管理)

提示需要先运行磁盘检查。

C. 检查磁盘

# e2fsck –f /dev/vg0/lv1

CentOS 6.3 下配置 LVM(逻辑卷管理)

D. 再次执行缩减操作

CentOS 6.3 下配置 LVM(逻辑卷管理)

缩减文件系统成功,下面缩减 LV 的大小。

E. 缩减 LV

# lvreduce /dev/vg0/lv1 –L 4G

CentOS 6.3 下配置 LVM(逻辑卷管理)

说明:Step E 和 Step D 缩减的大小必须保持一致,这里的 4G 是缩减到的大小;如果使用的是 ”-4G”,则表示容量减少多少的意思。

F. 挂载查看

CentOS 6.3 下配置 LVM(逻辑卷管理)

LV 缩减成功。

G. 查看测试数据

CentOS 6.3 下配置 LVM(逻辑卷管理)

数据正常。

14.2 VG 的缩减

A. umount 文件系统

CentOS 6.3 下配置 LVM(逻辑卷管理)

B. 查看当前的 PV 详情

CentOS 6.3 下配置 LVM(逻辑卷管理)

C. 将 /dev/sdg 从 vg0 中移除

# vgreduce vg0 /dev/sdg

CentOS 6.3 下配置 LVM(逻辑卷管理)

D. 再次查看 PV 情况

CentOS 6.3 下配置 LVM(逻辑卷管理)

/dev/sdg 已经不属于 vg0 了。

E. 查看 vg0 的情况

CentOS 6.3 下配置 LVM(逻辑卷管理)

vg0 的大小减少了 5GB.

VG 缩减成功。

十五、删除 LVM

如果要彻底的来移除 LVM 的话,需要把创建的步骤反过来操作。

15.1 umount 文件系统

CentOS 6.3 下配置 LVM(逻辑卷管理)

15.2 移除 LV

# lvremove /dev/vg0/lv1

CentOS 6.3 下配置 LVM(逻辑卷管理)

15.3 移除 VG

# vgremove vg0

CentOS 6.3 下配置 LVM(逻辑卷管理)

15.4 移除 PV

# pvremove /dev/md5 /dev/sdf1 /dev/sdg /dev/sdh

CentOS 6.3 下配置 LVM(逻辑卷管理)

LVM 移除成功。

十六、LVM 快照(snapshot)

快照就是将当时的系统信息记录下来,就好像照相一样,未来若有任何资料变动了,则 原始资料会被移动到快照区,没有被改动的区域则由快照区与档案系统共享

CentOS 6.3 下配置 LVM(逻辑卷管理)

LVM 系统快照区域的备份示意图(虚线为档案系统,长虚线为快照区)

左图为最初建立系统快照区的状况,LVM 会预留一个区域 (左图的左侧三个 PE 区块) 作为数据存放处。此时快照区内并没有任何数据,而快照区与系统区共享所有的 PE 数据,因此你会看到快照区的内容与文件系统是一模一样的。等到系统运作一阵子后,假设 A 区域的数据被更动了 (上面右图所示),则更动前系统会将该区域的数据移动到快照区,所以在右图的快照区被占用了一块 PE 成为 A,而其他 B 到 I 的区块则还是与文件系统共享!

快照区与被快照的 LV 必须要在同一个 VG 里。

16.1 建立 LV

# lvcreate -L 100M -n lv1 vg0

# mkfs.ext4 /dev/vg0/lv1

# mount /dev/vg0/lv1 /mnt/lv1/

16.2 写入测试数据

# touch /mnt/lv1/test_lvm_snapshot_1

# touch /mnt/lv1/test_lvm_snapshot_2

# cp -a /etc/ /mnt/lv1/

# cp -a /boot/ /mnt/lv1/

CentOS 6.3 下配置 LVM(逻辑卷管理)

16.3 创建快照

# lvcreate -L 80M -s -n lv1snap /dev/vg0/lv1

说明:为 /dev/vg0/lv1 创建一个大小为 80M,名称为 lv1snap 的快照。

# lvdisplay

CentOS 6.3 下配置 LVM(逻辑卷管理)

/dev/vg0/lv1snap 的 LV Size 为 100MB,使用量为 0.01%.

16.4 将刚才创建的快照挂载查看

CentOS 6.3 下配置 LVM(逻辑卷管理)

/mnt/lv1 和 /mnt/snapshot 是一模一样的。

16.5 进行档案的修改操作

CentOS 6.3 下配置 LVM(逻辑卷管理)

16.6 再次查看

CentOS 6.3 下配置 LVM(逻辑卷管理)

snapshot 的使用量为 10.36%,原始资料有改动。

16.7 对 snapshot 里的资料进行打包备份,准备还原

CentOS 6.3 下配置 LVM(逻辑卷管理)

16.8 卸载并移除 snapshot

CentOS 6.3 下配置 LVM(逻辑卷管理)

16.9 卸载并格式化 /mnt/lv1,清空数据

CentOS 6.3 下配置 LVM(逻辑卷管理)

16.10 恢复数据

CentOS 6.3 下配置 LVM(逻辑卷管理)

可以看到,原始数据已经成功恢复。

LVM 快照实验成功。

注意:对 lv1 的修改量不能超过快照的大小,由于原始数据会被搬移到快照区,如果你的快照区不够大,若原始资料被更动的实际数据量比快照区大,那么快照区当然容纳不了,这时候快照功能会失效喔!

 

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6926字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中