文章目录
一、简介
什么是LVM?
LVM是**逻辑盘卷管理(Logical Volume Manager)**的简称,它是Linux环境下对硬盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高硬盘分区管理的灵活性。
为什么要使用LVM?
在日常工作或者学习中,随着电脑的不断被使用,我们的硬盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理硬盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移。这样能减少操作成本,LVM最大的特点就是可以对硬盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态硬盘管理机制,逻辑卷技术大大提高了硬盘管理的灵活性。
LVM工作机制
LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的硬盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的硬盘管理操作。
逻辑卷管理概念
-
物理卷(PV,Physical Volume)
物理卷就是指硬盘、硬盘分区或从逻辑上和硬盘分区具有同样功能的设备(如RAID)。它在LVM中处于最底层,是LVM的基本存储逻辑块。但与基本的物理存储介质相比,它包含了与LVM相关的管理参数。
-
卷组(VG,Volume Group)
卷组建立在物理卷之上,由一个或多个物理卷组成,在卷组建立之后可以动态添加物理卷到卷组中。
-
逻辑卷(LV,Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的卷组。
-
物理块(PE,Physical Extent)
LVM系统中最小的存储区块,每个PE区块默认大小为4M。
二、建立LVM的流程
- 新增物理盘或者分区
- 把分区/整个物理盘建立成物理卷(PV)
- 把物理卷整合成卷组(VG)
- 把卷组划分成逻辑卷(LV)
对上层应用或用户来说,逻辑卷(LV)就是分区,所以还需要格式化和挂载。
三、LVM相关命令
物理卷PV
pvcreate
新建物理卷pvdisplay
显示物理卷信息pvremove
删除物理卷pvscan / pvs
简要显示物理卷信息
卷组VG
vgcreate
新建卷组(可选参数-s,设置PE大小,默认为4M)vgdisplay
显示卷组信息vgremove
删除卷组vgextend
扩展卷组vgscan / vgs
简要显示卷组信息vgreduce
缩减卷组大小
逻辑卷LV
lvcreate
新建逻辑卷lvdisplay
显示逻辑卷信息lvremove
删除逻辑卷lvextend
扩展逻辑卷lvscan / vgs
简要显示逻辑卷信息lvreduce
缩减逻辑卷大小
四、实验
1. 添加硬盘
为虚拟机添加一块硬盘(如5G),给原来的硬盘扩容一定空间(如10G)
2. 检查LVM管理工具
检查系统中是否安装了LVM管理工具
rpm -qa |grep lvm
#llvm-private-7.0.1-1.el7.x86_64
#lvm2-libs-2.02.186-7.el7_8.2.x86_64
#lvm2-2.02.186-7.el7_8.2.x86_64
#mesa-private-llvm-3.9.1-3.el7.x86_64
如果未安装,则通过yum安装
yum install -y lvm*
3. 创建物理卷PV
a. 查看磁盘分区情况
fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors # 硬盘 sda(已扩容10G)
Units = sectors of 1 * 512 = 512 bytes # 每个扇区 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000ac1d5
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux # 分区 sda1
/dev/sda2 2099200 41943039 19921920 8e Linux LVM # 分区 sda2
Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors # 硬盘 sdb(新添加的5G硬盘)
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x942a9fee
Device Boot Start End Blocks Id System # 无分区
Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors # 逻辑卷,根分区
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors # 逻辑卷,交换分区
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看出:硬盘sda
总容量为32.2G,已经创建了两个分区,占用了近20G的空间;而硬盘sdb
总容量近5G(有一部分信息占用),还没有分区。
b. 创建分区
分别创建三个分区sda3(2G)
、sda4(3G)
、sdb1(5G)
fdisk /dev/sda ## 先创建硬盘sda1的两个分区
#Welcome to fdisk (util-linux 2.23.2).
#Changes will remain in memory only, until you decide to write them.
#Be careful before using the write command.
Command (m for help):
输入m
查看可以执行的操作
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition