如果想在linux中随需求变化动态调整硬盘分区大小,可能会有些限制,这时需要用一个目前比较流行的硬盘设备资源管理技术(LVM),即逻辑卷管理器,它允许用户对硬盘资源进行动态调整。
![8c77fcf1aa48ee2bc3f5a22614046844.png](https://i-blog.csdnimg.cn/blog_migrate/92a7bace4911c90c872f37c22b4ee09b.jpeg)
LVM
LVM技术是在硬盘分区和文件系统之间加了一个逻辑层,提供一个抽象的卷组,能够把多个硬盘设备进行卷组合并。对于普通用户来讲,他不关心底层有多少个物理硬盘,只要有空间,就能对硬盘分区动态调整。
有个例子非常形象:你在家做馒头,先准备一些面粉(可以理解为物理卷),然后加水揉成大面团(可以理解卷组),然后再把面团分成小馒头(可以理解为逻辑卷)。
物理卷处于LVM最底层,可以理解物理硬盘、分区、阵列都可以,卷组建立在物理卷之上,一个卷组可以包含多个物理卷,当然卷组创建之后还是可以继续添加新的物理卷。逻辑卷是在空闲的卷组中建立的,并且建立后可以动态的扩展。
第一步:创建物理卷
在虚拟机中新增2个硬盘,再重启虚拟机。这步操作简单理解就是让硬盘设备支持LVM技术。
首先看到系统已经识别出2个新增硬盘:
![bdb54ac59dd9b9b9f68c190712679f73.png](https://i-blog.csdnimg.cn/blog_migrate/a65e6ef878623776e2b29e75ad7dc2ba.jpeg)
使用命令:pvcreate /dev/sdb /dev/sdc
![2af29e10324ec225da2814b9a5106331.png](https://i-blog.csdnimg.cn/blog_migrate/91ad78fbb097677ab833385a53b4b7e8.jpeg)
第二步:创建卷组
使用命令 vgcreate mystorage /dev/sdb /dev/sdc ##卷组名字自己起,这里叫mystorage
![341373f61332beb0153648904abe2280.png](https://i-blog.csdnimg.cn/blog_migrate/ebe8d5b0a3cc0c7578c913499960281b.jpeg)
可以使用命令 vgdisplay查看卷组状态。
第三步:切割逻辑卷
逻辑卷有两种计量单位,一种是容量为单位,使用参数为-L。例如,使用-L 300M生成一个大小为300M的逻辑卷。一种以基本单元为个数为单位,使用参数为-l。每个基本单元大小默认为4MB。例如 -l 100 可以生成 100*4 = 400MB的逻辑卷。
现在就做一个400MB的逻辑卷
使用命令
lvcreate -n myvo -l 100 mystorage
![8ceec4ce4b580d293b76b5bfdb1b99be.png](https://i-blog.csdnimg.cn/blog_migrate/0988a598d46556a288bf59ce3f0f41c2.jpeg)
第四步:挂载
linux系统会把LVM中逻辑卷设备存放在/dev目录中,按照上述起的名字建立目录,上述目录为 /dev/mystorage/myvo。
格式化
mkfs.ext4 /dev/mystorage/myvomount /dev/mystorage/myvo /mydata
![404724c3e3a57fa0dc36e4f7636c129d.png](https://i-blog.csdnimg.cn/blog_migrate/dd9fc01cad1dbff1f07504516f96cb2c.jpeg)
![e505f62b45e94a388f8e39999035a810.png](https://i-blog.csdnimg.cn/blog_migrate/19765f737f16c8ac6423e34c111611d8.jpeg)
最后可以写到配置文件/etc/fstab中永久生效。
echo "/dev/mystorage/myvo /mydata ext4 defaults 0 0" >> /etc/fstab
扩容逻辑卷
前面实验的卷组是两个硬盘构成,而且只用了400M,只要卷组足够,就可以一直动态扩容,但是注意,扩容前需要卸载设备。
第一步:
umount /mydatalvextend -L 1000M /dev/mystorage/myvo
![fae0f04d9da56833dbe7da523cd1a399.png](https://i-blog.csdnimg.cn/blog_migrate/2ec1f387dbe4cccb8f6f11f11c500536.jpeg)
第二步:检查硬盘完整性,并重置容量
e2fsck -f /dev/mystorage/myvo resize2fs /dev/mystorage/myvo
第三步:重新挂载
mount /dev/mystorage/myvo /mydatadf -h ## 查看最终状态
![33cc963e7668410d5d5d1676e7c6ae53.png](https://i-blog.csdnimg.cn/blog_migrate/5d32edbd30fd3b4bc94db096e35194e3.jpeg)
删除LVM
如果想重新部署LVM或者不再使用LVM,则需要执行LVM删除操作。严格执行删除顺序,
先删除逻辑卷、卷组、物理卷。
第一步:取消挂载,并删除配置文件中的有关设备参数
umount /mydatavi /etc/fstab
第二步:删除逻辑卷
lvremove /dev/mystorage/myvo
第二步:删除卷组
vgremove mystorage # 此处不用写路径,只写名字
第三步:删除物理卷
pvremove /dev/sdb /dev/sdc
![036133e5177f4c79d1c33b956ff946bf.png](https://i-blog.csdnimg.cn/blog_migrate/d9a5e49a28c915934db80e56722114be.jpeg)
最后成功删除LVM。