一、概念
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。#使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合
1.1、特点
传统分区的缺点:
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:
1.不同的分区相对独立,无相互联系,空间不能充分利用;
2.当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。
当采用LVM时:
1.硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.文件系统建立在LVM上,可以跨分区,方便使用;
3.当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
lvm的制作
lvm的使用
lvm扩容-------在线扩容。可以在有数据的情况下去扩容。
基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)
逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)
LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。
二、扩容
2.1、新增磁盘
新增一块5G的硬盘
点击添加:
默认下一步即可:
添加磁盘大小:
2.2、磁盘查看
添加完新硬盘之后,通过fdisk -l查看不到,需要执行如下指令,然后发现新硬盘设备名称为:/dev/sdb(重启即可查看到新增磁盘,但是实际生产中不会重启服务器使其生效)
[root@web02 ~]# grep mpt /sys/class/scsi_host/host?/proc_name
/sys/class/scsi_host/host2/proc_name:mptspi
[root@web02 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
2.3、创建PV卷
[root@web02 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
查看PV
[root@web02 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb lvm2 --- 5.00g 5.00g
[root@web02 ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb lvm2 [5.00 GiB]
Total: 2 [<24.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [5.00 GiB]
pvs:用于显示物理卷(PV)的摘要信息,包括它们所属的卷组、格式、属性和使用情况。
pvscan: 用于主动扫描系统上的物理卷,列出所有被发现的物理卷,包括已被使用和未被使用的物理卷。
2.4、创建vg
查看原Linux系统磁盘VG卷组
[root@web02 ~]# vgdisplay
将新的PV扩展进VG centos
[root@web02 ~]# vgextend centos /dev/sdb
Volume group "centos" successfully extended
将centos卷组上的root逻辑卷增加容量
[root@web02 ~]# lvextend -l +100%free /dev/mapper/centos-root
New size (5119 extents) matches existing size (5119 extents).
格式化扩展后的卷组
[root@web02 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3932160 to 5241856
扩容前:
扩容后:
三、LVM工作原理总结
将分区按照LVM的格式首先创建成PV(物理卷),把物理卷加到卷组(VG)里,再通过逻辑卷分出LV(逻辑卷),实现分区的扩容,所以使用LVM进行扩容实际上是将分出的逻辑卷扩容给根分区。
如何使用LVM扩容步骤总结
准备一个分好区的新磁盘→修改磁盘类型为8e→创建逻辑卷(PV)(将新添加的磁盘分区作为物理卷)→创建卷组(VG)→创建逻辑卷(LV)→格式化和挂载逻辑卷→实现扩容
LVM逻辑卷
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评
估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足
应用系统的需要。
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,
可提高磁盘分区管理的灵活性。RHEL 5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基
于LVM创建,必须独立出来。
要想理解好LVM的原理,我们必须首先要掌握4个基本的LVM术语。
- ①PE
(Physical Extend)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一-编号的
PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。 - ②PV (Physical Volume)物理卷就是指硬盘分区或从逻辑 上与磁盘分区具有同样功能的设备(如RAID),
是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。 - ③VG
(Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建
-个或多个"LVM分区" (逻辑卷),LVM卷组由- -个或多个物理卷组成。 - ④LV
(Logical Volume) LVM的逻辑卷类似于非LVM系统中的硬盘分区, 在逻辑卷之上可以建立文件系统
(此如/home或者/usr等)。 - ⑤LE (Logical Extent)逻辑卷也被划分为被称为LE(Logical Extents)的可被寻址的基本单位。在同一个卷组
中,LE的大小和PE是相同的,并且一- -对应。
我们知道在使用LVM对磁盘进行动态管理以后,我们是以逻辑卷的方式呈现给上层的服务的。所以我们所有的操
作目的,其实就是去创建一个LV(Logical Volume),逻辑卷就是用来取代我们之前的分区,我们通过对逻辑卷进行格式
化,然后进行挂载操作就可以使用了。那么LVM的工作原理是什么呢?咱们下面通过图来对逻辑卷的原理进行解
释! !
简单来说就是:
- PV:是物理的磁盘分区
- VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘
- LV:也就是从VG中划分的逻辑分区