写在开头:本人还是学生,如有写的不好,欢迎指出,望各位大佬请喷
目录
LVM:Logical Volume Manager
RAID与LVM 区别
RAID技术用来解决磁盘的读写速度和安全性问题,LVM则可以灵活的解决随着实际需求的变化,来调整硬盘分区的大小这个问题
RAID 然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。
原理
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。
尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失
而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整
物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。
卷组建立在物理卷之上,一个卷组能够包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念
如果VG卷组的剩余容量不足了,可以随时将新的PV物理卷加入到里面去
技术架构
首先需要把这些面粉(物理卷[PV,Physical Volume])揉成一个大面团(卷组[VG,Volume Group]),然后再把这个大面团分割成一个个小馒头(逻辑卷[LV,Logical Volume]),而且每个小馒头的重量必须是每勺面粉(基本单元[PE,Physical Extent])的倍数
LVM Linux实操
LVM 部署命令
命令格式:pvcreate 硬盘路径名称 硬盘路径名称 ...
命令格式: lvcreate -n 逻辑卷名称 -l/L 数量 卷组名
lvconvert
用于管理逻辑卷的快照,语法格式为:“lvconvert [参数] 快照卷名称”
e2fsck
用于检查使用 Linux ext2 档案系统的 partition 是否正常工作
- -f : 强制检查
- -a : 对 partition 做检查,若有问题便自动修复,等同 -p 的功能
- -v : 详细显示模式
- -V : 显示出目前 e2fsck 的版本
- -y : 预先设定所有检查时的问题均回答[是]
- -B : 设定单位 block 的大小
- -b : 设定存放 superblock 的位置
resize2fs
同步内核信息, 调整ext2\ext3\ext4文件系统的大小,它可以放大或者缩小没有挂载的文件系统的大小。如果文件系统已经挂载,它可以扩大文件系统的大小,前提是内核支持在线调整大小
格式:resize2fs 参数 /dev/卷组名称/逻辑卷名称 容量大小
导致问题的原因是添加的磁盘之前创建过分区,已经有了分区表,现在的虚拟机并不能识别磁盘的分区表,可以使用parted命令重做分区表
设备名称为LV Path:即/dev/卷组名称/逻辑卷名称。
如果用了LVM逻辑卷管理器的话,不建议用XFS文件系统。因为XFS文件系统自身就可以使用xfs_growfs命令进行磁盘扩容,虽然不比LVM灵活,但起码也是够用的。在实测阶段我们发现,有一些服务器上XFS与LVM兼容性并不好
扩容和缩小
扩容
缩小
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大
所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证数据安全)。在执行缩容操作前记得先把文件系统卸载掉
逻辑卷快照
第一步:查看卷组中的容量是否够用(同时容纳原逻辑卷,快照卷)
格式:lvcreate -L 原卷大小 -s -n 快照卷名字 原卷路径