LVM简介及CentOS7 LVM操作实战(亲测成功)

您所在的位置:网站首页 lvm格式 LVM简介及CentOS7 LVM操作实战(亲测成功)

LVM简介及CentOS7 LVM操作实战(亲测成功)

#LVM简介及CentOS7 LVM操作实战(亲测成功)| 来源: 网络整理| 查看: 265

LVM 简介:

在这里插入图片描述

LVM相关概念和机制

LVM(Logical Volume Manager)可以让分区变得弹性,可以随时随地的扩大和缩小分区大小,前提是该分区是LVM格式的。

lvm需要使用的软件包为lvm2,一般在CentOS发行版中都已经预安装了。

PV(Physical Volume)即物理卷   硬盘分区后(还未格式化为文件系统)使用pvcreate命令可以将分区创建为pv,要求分区的system ID为8e,即为LVM格式的系统标识符。

VG(Volume Group)即卷组 将多个PV组合起来,使用vgcreate命令创建成卷组,这样卷组包含了多个PV就比较大了,相当于重新整合了多个分区后得到的磁盘。虽然VG是整合多个PV的,但是创建VG时会将VG所有的空间根据指定的PE大小划分为多个PE,在LVM模式下的存储都以PE为单元,类似于文件系统的Block。

PE(Physical Extend) PE是VG中的存储单元。实际存储的数据都是存储在这里面的。

LV(Logical Volume) VG相当于整合过的硬盘,那么LV就相当于分区,只不过该分区是通过VG来划分的。VG中有很多PE单元,可以指定将多少个PE划分给一个LV,也可以直接指定大小(如多少兆)来划分。划分为LV之后就相当于划分了分区,只需再对LV进行格式化即可变成普通的文件系统。

通俗地讲,非LVM管理的分区步骤是将硬盘分区,然后将分区格式化为文件系统。而使用LVM,则是在硬盘分区为特定的LVM标识符的分区后将其转变为LVM可管理的PV,其实PV仍然类似于分区,然后将几个PV整合为类似于磁盘的VG,最后划分VG为LV,此时LV就成了LVM可管理的分区,只需再对其格式化即可成为文件系统。

LE(logical extent) PE是物理存储单元,而LE则是逻辑存储单元,也即为lv中的逻辑存储单元,和pe的大小是一样的。从vg中划分lv,实际上是从vg中划分vg中的pe,只不过划分lv后它不再称为pe,而是成为le。

LVM之所以能够伸缩容量,其实现的方法就是将LV里空闲的PE移出,或向LV中添加空闲的PE。

LVM的写入机制

LV是从VG中划分出来的,LV中的PE很可能来自于多个PV。在向LV存储数据时,有多种存储机制,其中两种是:

线性模式(linear):先写完来自于同一个PV的PE,再写来自于下一个PV的PE。 条带模式(striped):一份数据拆分成多份,分别写入该LV对应的每个PV中,所以读写性能较好,类似于RAID 0。 尽管striped读写性能较好也不建议使用该模式,因为lvm的着重点在于弹性容量扩展而非性能,要实现性能应该使用RAID来实现,而且使用striped模式时要进行容量的扩展和收缩将比较麻烦。默认的是使用线性模式。

LVM简介() LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。 LVM是 Logical Volume Manager(逻辑卷管理)的简写 PV:是物理的磁盘分区 VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库统一管理了几个大的硬盘,形成了一个统一虚拟的存储资源池。 LV:也就是从VG中划分的逻辑分区 抽象模型如下:

LVM 详细图解:

在这里插入图片描述

PV  (Physical Volume)  物理卷 VG  (Volume Group)   卷组 LV  (Logical Volume)   逻辑卷 LVM常用命令 功能 PV管理命令 VG管理命令 LV管理命令 scan 扫描 pvscan vgscan lvscan create 创建 pvcreate vgcreate lvcreate display 显示 pvdisplay vgdisplay lvdisplay remove 移除 pvremove vgremove lvremove extend 扩展 vgextend lvextend(lvresize) reduce 减少 vgreduce lvreduce(lvresize) resize改变容量 lvresize attribute 改变属性 pvchange vgchange lvchange 操作实战

通过在虚拟机的CentOS7上创建LVM ,使用LV,扩容LV,缩减LV实战来了解LVM及熟悉对LVM的操作。 准备工作准备虚拟机,操作系统为CentOS7,初始20G的硬盘

在这里插入图片描述 初始状态共20G的系统盘

在这里插入图片描述 在虚拟机中添加两块硬盘

在这里插入图片描述 PS:刚添加的硬盘不会显示,两种方法:1.reboot 重启服务器 2.在不关机的情况下扫描SCSI磁盘。

步骤: [root@localhost ~]# ls /sys/class/scsi_host/ host0 host1 host2 重新扫描SCSI总线: echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan

启动虚拟机通过pvs命令查看物理卷的情况,目前只看到有虚拟机初始安装时有个pv为/dv/sda2 vg为centso的物理卷 大小为20G 在这里插入图片描述

通过fdisk -l 可以看到新加的两个盘大小分别都是5G。我们将用这两个盘组成一个vg,进行lvm的管理。 在这里插入图片描述

一、创建LVM逻辑卷

1、将物理硬盘格式化成PV(物理卷) 使用的是pvcreate命令 pvcreate /dev/sdc /dev/sdb (将/dev/sdc /dev/sdb两块硬盘创建为物理卷) 在这里插入图片描述 通过pvdisplay或pvs查看当前的pv信息,可以看到两块5G的物理卷已经成功创建在这里插入图片描述 2、创建卷组(VG),并将PV加入到卷组中 通过vgcreate命令 vgcreate vg /dev/sdb /dev/sdc 在这里插入图片描述 通过vgdisplay或vgs命令查看vg的信息。看到vg已经创建好了,大小是两个pv的大大小也就是5G+5G,大概是10G的样子,这里显示9.99G 在这里插入图片描述 3、基于卷组(VG)创建逻辑卷(LV) 通过lvcreate命令 lvcreate -n app -L 2G vg (基于vg创建逻辑卷lv,名字为app,大小为2G) 在这里插入图片描述 用lvdisplay或lvs命令查看创建好的逻辑卷。可以看到名字为app的逻辑卷lv已经创建好了,它是基于vg创建的,大小为2G 在这里插入图片描述 到这里,lv就创建好了,但是要用起来,还得格式化并挂载到我们的文件系统。

二、格式化并使用逻辑卷

1、格式化 mkfs -t ext4 /dev/vg/app 用ext4的格式格式化/dev/vg/app 在这里插入图片描述 2、挂载 创建挂载点 mkdir /app 将/dev/vg/app 挂载到/app mount /dev/vg/app /app 然后df -h 可以看到已经挂载到/app下了 ,大小为lv 的大小2G 在这里插入图片描述 cd /app touch test.txt 在/app下创建一个测试文件test.txt,可以看到该挂载点是可以用了。 在这里插入图片描述 设置开机加载 echo “/dev/vg/app /app ext4 defaults 0 0” >>/etc/fstab

三、扩容逻辑卷

这里扩容分两种情况,一种情况是vg还有足够的空间,那么就可以直接扩lv就可以了。另外一种情况是要扩的空间已经超过了vg的大小,那么就可以通过加物理磁盘扩充到vg里,然后再扩lv。 第一种情况,扩的空间大小在vg的容量范围之内 在这里插入图片描述 现在vg的大小为10G,现在/app是2G,计划扩到8G,没有超过vg的大小那么可以直接扩lv就可以了。

第一步:首先卸载设备和挂载点的关联 umount /app

第二步:将逻辑卷/dev/vg/app 扩展到8G lvextend -L 8G /dev/vg/app 可以清楚的看到vg/app从2G扩容到了8G 在这里插入图片描述 第三步:检查硬盘(lv)完整性,并重置硬盘(lv)容量 e2fsck -f /dev/vg/app 检查硬盘完整性 在这里插入图片描述 resize2fs /dev/vg/app 重置硬盘(lv)容量,这一步必需要做,否则即使扩了容量,但看到的还是扩容之前的容量。 在这里插入图片描述 第四步:重新挂载硬盘并查看 mount -a df -h 可以看到/app已经成功扩容到8G了 在这里插入图片描述 ls 查看/app里面的文件还在,说明扩容对文件数据没有啥影响。 在这里插入图片描述 如果扩容的大小超过了vg的大小怎么办呢?可以通过扩硬件的方式,加块硬盘到vg然后再扩lv。

第二种情况,扩容的大小超过了vg的大小

现在vg的大小为10G,现在/app是8G,计划扩到11G,已经没有超过vg的10G大小那么就需要先加硬盘,然后扩vg,再扩lv。

第一步:添加硬盘 在这里插入图片描述 通过fdisk -l命令查看添加 在这里插入图片描述 第二步:扩容vg 将新的硬盘扩到vg卷组里 卸载/app umount /app vgextend vg /dev/sdd 将新添加的硬盘/dev/sdd添加到vg卷组里 在这里插入图片描述 第三步:扩容lv 将逻辑卷/dev/vg/app 扩展到11G lvextend -L 11G /dev/vg/app 可以看到vg/app从原来的8G扩到了11G 在这里插入图片描述 第四步:同样检查硬盘(lv)完整性,并重置硬盘(lv)容量 e2fsck -f /dev/vg/app 检查硬盘完整性 resize2fs /dev/vg/app 重置硬盘(lv)容量 在这里插入图片描述 第五步:重新挂载硬盘并查看 mount -a df -h 可以看到/app已经成功扩容到11G了 在这里插入图片描述 四、缩小逻辑卷 相对于逻辑卷扩容,缩小逻辑卷,数据丢失的风险更大。所以在生产环境中操作一定要注意提前备份好数据。在对LVM逻辑卷进行缩小操作之前,先把要缩小的文件系统卸载并检查文件系统的完整性。 现在我们将/app由现在的11G缩到10G

第一步:卸载/app并检查文件系统完整性 在这里插入图片描述 第二步:把逻辑卷缩容到10G resize2fs /dev/vg/app 10G lvreduce -L 10G /dev/vg/app 在这里插入图片描述 第三步:重新挂载并查看状态 在这里插入图片描述 通过LVM的管理,创建、扩容、缩容,可以看到通过LVM技术可以实现系统存储空间的动态的调整。

基本原理是将多个物理硬盘创建成pv(物理卷),这些物理卷是动态调整的物理基础,通过vg将pv管理起来形成一个整体的资源池。在vg中划分lv来动态调整逻辑卷的大小。

--IChen. 希望可以帮助到您!


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3