Linux中LVM2原理及制作LVM2

Linux中LVM2原理及制作LVM2

一、LVM原理

【MD】:Multi Device 多设备

Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系。真正的RAID集成在linux内核中

【DM】Device Mapper设备映射也是linux中一种常用的管理机制

         DM 与MD近似,也能够提供一种逻辑设备

         DM比MD的功能要强大。因为DM不仅仅能提供MD的RAID的功能,它还是逻辑卷(LVM2)基础,同时,在逻辑卷的基础上我们也能实现RAID0,RAID1。这样的功能。所有DM与MD中有某些功能是重叠的,但并不完全重叠。所以,我们通常使用MD做RAID用DM做LVM2

上图为DM的内核架构。即DM是怎么来工作的。

         DM像MD一样也是有一个核心模块,和许多子模块组成的。例如MD,MD的核心有RAID0,RAID1,RAID5,RAID1+0等,由多个子模块完成不同的级别。DM也是有多个子模块完成不同的组织方式。

例如:

         linear:有点类似Jbod。能够将多个磁盘的存储空间拼接在一块,当做一个磁盘来使用。

         mirror:类似于镜像。

         Snapshot:快照,向虚拟机一样,能够保留数据在做快照那一刻时的状态。快照,也可以说是访问同一条数据的另外一条路径。(主要用途是数据备份)

         Multipath:多路径。多路径需要借助于DM模块来配置,能够实现数据存储设备的寻路能够通过多跟不同线来完成。

RAID:只是为了避免硬件损坏而导致业务终止或数据损失的。并不能保证人为错误的操作,导致数据损失。说以通常即使有RAID后数据依然要做备份。

DM除了快照外,还支持动态缩减磁盘大小。

         比如:我们有多快物理磁盘,DM能够将这多个磁盘组织成一个大的逻辑设备,如果以后发现内存不够可以再添加一块硬盘扩大设备,如果后来发现空间太大,也可以撤掉一块硬盘缩小空间。如下图:

注意:这个逻辑设备只是相当于一个扩展分区,我们在这个扩展分区上可以创建新的分区,因此,我们要想在这个逻辑设备上使用存放数据,就必须在这个逻辑设备上创建逻辑分区,这个逻辑分区就是真正可以扩大缩小的一个分区。如下图

 

【PV】:Physical Volume物理卷

【VG】:Volume Group卷组

【LV】:Logical Volume逻辑卷

VG(卷组)的边界大小取决于PV(物理卷)组合的大小。

虽然PV组合成了多个VG但是,要真正使用就要划分LV(逻辑卷),在VG上可以划分多个LV,但这多个LV的大小加起来的和不能超过VG,如果发现VG不够用了,可以增加PV(物理卷),如果LV中空间不足可以扩大LV。

对卷创建快照,实际上就是对逻辑卷创建快照,而快照卷必须和逻辑卷处于同一个卷组中。也就意味这,如果你要打算对某个LV逻辑卷创建快照,就必须在同一个卷组中预留出空间给其中的某个逻辑卷创建快照卷。

为什么能够实现VG的扩展以及LV的扩展,其实吧PV放入VG时就要把PV这个物理卷的所有空间划分成一个物理块,及一个个存储单元。 这个块不是文件系统块,而是PE(PhysicalExtend物理盘区),只要物理卷加入VG后,新加卷中划分的PE一定是和VG原因的PE大小相同。说以在创建VG时要制定VG所使用多大的PE。

【PE】(Physical Extend) 物理盘区,简称盘区

所以VG卷组中就是由一大堆的PE组成。那么LV逻辑卷的创建就是由VG分给LV多少个PE。那么LV的大小取决于VG分给了LV多少个PE。而在LV上这些PE就叫做LE(LoglcalExtend逻辑盘区)。所以LV上的扩展就相当于添加几个PE,就能达到扩展PE的目的。

如果将逻辑卷建立在RAID的基础上使用RAID1+0那么,即使硬件有损坏,也不会对LVM的性能有影响,这样既可以保证数据的安全,也能扩大盘区。


二、创建LVM

【操作系统:】红帽6.3

【相关命令:】

         pvcreate:将物理卷创建为pv

         vgcreate:将pv组合成vg

         lvcreate:在vg上创建lv

那么首先我们要创建VG

这里例子中用创建一个10G的vg为例。

         首先要创建一个10G的vi我们可以用10个1G的构成也可以使用一个2G,一个3G,一个5G的pv够成。

为了模拟,这里使用磁盘分区来模拟硬盘去创建vg

首先准备2,3,5G的分区个一个。来模拟三块硬盘

创建分区可以使用fdisk来创建,本文档不做创建分区演示,详情请见日志《linux中RAID的创建方法》

如图:这里已经创建好了sdb10为2G,sdb11为3G,sdb12为5G为了后面的其他演示,这里还另外创建了一个7G的sdb13。

注意:创建完成后要修改分区类型为Linux LVM,其Linux LVM在本系统中的类型编号为8e。

然后

# partprobe  /dev/sdb

重读sdb分区表,如果失败可以使用partx -a /dev/sdb来重读

输入:cat /proc/partitions来验证是否可以使用该分区。

#cat /proc/partitions

然后将这些分区,也就是物理卷创建为pv

第一步:创建PV

#pvcreate/dev/sdb{10,11,12,13}

将sdb10,sdb11,sdb12,sdb13创建为pv

使用pvs能查看当前系统上有哪些pv

#pvs

这里就可以看见我们刚刚已经创建好了的pv,其中sda2是系统自己之前创建的。

上面的这些设备有些误差,这些误差只要在20%之内都是正常的。

使用pvdisplay可以查看pv的详细信息,要想看其中某个pv的信息信息可以加上设备名称

#pvdisplay /dev/sdb10

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值