温故Linux 操作系统11:逻辑卷管理LVM

1.LVM简介

1.1.什么是LVM?

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性
简而言之,LVM就是使多个不相干的设备变成一个,以供使用;在原始数据不变的强况下,使设备拉大

1.2.为什么要使用LVM?

在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

1.3.LVM工作机制?

LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

1.4.几个专业名词

物理扩展(PE,Physical Extension)
物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe的大小。

物理卷(PV, Physical Volume)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份。

卷组(VG, Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(LV, Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
在这里插入图片描述
LVM的表示方式为:
/dev/卷组/逻辑卷
/dev/mapper/卷组-逻辑卷

2.逻辑卷制作步骤

 1. 创建三个(举例为3个)物理分区并把分区id修改为8e
fdisk /dev/vdb------->n
t为修改分区
 2. 创建物理卷 
pvcreate /dev/vdb{1..3}
 3. 创建物理卷组
vgcreate kuany /dev/vdb{1..3}
 4. 创建逻辑卷
lvcreate -n lv0 -L 1.5G kuany			# 在物理卷组中提取一部分空间, 生成逻辑卷lv0。
										#-L指定逻辑卷的大小, -n指定逻辑卷的名称

为了方便看到成果,我们可以打开一个新的Shell监控设备信息
watch -n 1 'echo ===pvs info===;pvs; echo ===vgs info===; vgs; echo ===lvs info===; lvs'
在这里插入图片描述1.
在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
逻辑卷创建成功之后, 会产生一个虚拟设备文件:
在这里插入图片描述

3.逻辑卷挂载

 1. 格式化逻辑卷设备 
mkfs.ext4  /dev/kuany/lv0
 2. 挂载设备到文件系统上 
mkdir /lvm 
mount /dev/kuany/lv0  /lvm
 3. 编辑开机自动挂载 
mount | tail -1 
vim /etc/fstab  
""" /dev/mapper/kunany-lv0 /lvm  ext4  defaults 0 0 """

在这里插入图片描述

4.ext格式逻辑卷的拉伸与缩减

LVM的强大之处在于可以支持在线扩容(拉伸), 但不支持在线缩减。ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)
常用命令:lvextendresize2fs

4.1.拉伸逻辑卷

如何将逻辑卷拉伸到1.8G如何实现?

1). 确定卷组是否有足够的空间可以拉伸?
vgs
2). 逻辑卷拉伸命令
lvextend  -L 1.8G /dev/kuany/lv0     或者
lvextend  -L +300M /dev/kuany/lv0

3). 查看拉伸后的空间大小
lvs			# 查看逻辑卷设备的大小是否拉伸成功
df -h /lvm	# 查看文件系统的大小是否拉伸成功

4). 更新文件系统
resize2fs /dev/kuany/lv0 

5). 查看更新后的文件系统
df -h /lvm

在这里插入图片描述

4.2.拉伸物理卷组

将逻辑卷拉伸到3.5G如何实现?

0). 确定卷组是否有足够的空间可以拉伸?
vgs

1). 创建一个物理卷
 pvcreate  /dev/vdb5
2). 将新的物理卷添加/拉伸到物理卷组中
vgextend kuany /dev/vdb5

3). 查看拉伸后的物理卷组大小
vgs

4). 拉伸逻辑卷,执行3.1实验的内容
lvextend  -L 3.5G /dev/kuany/lv0 
df -h
resize2fs  /dev/kuany/lv0 
df -h

4.3.缩小逻辑卷

1). 卸载正在挂载的逻辑卷
umount /lvm

2). 对文件系统进行校验
e2fsck -fv /dev/kuany/lv0

3). 缩小文件系统到1G
resize2fs  /dev/kuany/lv0  1G

4). 缩小逻辑卷
 lvreduce  -L 1G /dev/kuany/lv0

重新挂载设备, 查看缩减是否生效?

5). 查看卷组中是否有空闲的分区?如果有,则移除空闲分区。
vgreduce kuany  /dev/vdb{number}
pvremove  /dev/vdb{number}

在这里插入图片描述

5.xfs格式逻辑卷的拉伸(不能缩减)

目标: 将逻辑卷拉伸到1.8G如何实现?

1). 确定卷组是否有足够的空间可以拉伸?
vgs
2). 逻辑卷拉伸命令
lvextend  -L 1.8G /dev/kuany/lv0
lvextend  -L +300M /dev/kuany/lv0

3). 查看拉伸后的空间大小
lvs			# 查看逻辑卷设备的大小是否拉伸成功
df -h		# 查看文件系统的大小是否拉伸成功

4). 更新文件系统
xfs_growfs  /dev/kuany/lv0 

5). 查看更新后的文件系统
df -h
发布了39 篇原创文章 · 获赞 4 · 访问量 720

猜你喜欢

转载自blog.csdn.net/weixin_44718794/article/details/103056259