在平时的开发工作中,经常会创建磁盘不足够大的虚拟机,然后往集群里面写一些数据导致磁盘满了。手动编辑虚拟机的磁盘大小是不会文件系统识别的,大多数同学只能无奈的重新装OS
,这里我介绍一种基于LVM
实现动态的方式。
LVM了解
LVM
是逻辑盘卷管理(LogicalVolumeManager
)的简称,它是Linux
环境下对磁盘分区进行管理的一种机制,LVM
是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup
),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes
),并进一步在逻辑卷组上创建文件系统。管理员通过LVM
可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。
查看分区
当前默认只有一个采用lvm
的分区,一开始sda
磁盘容量为16G
,后来发现不够用了,编辑磁盘大小为50G
,但是可以发现这50G
并没有起到扩展分区容量的效果。
分区
可以通过新增一块其他磁盘来扩容,我这边采取的是增大当前磁盘的容量实现扩容。
有时候因为系统设备处于繁忙状态,所以分区需要重启后才会生效。
查看当前文件系统
当前文件系统为ext4
为新分区创建文件系统
查看卷组信息
创建新物理卷
扩展到卷组
查看逻辑分区
/dev/vg_tonyplay/lv_root
就是根分区,也是我们要扩展的分区。
扩展容量到逻辑分区
刷新逻辑分区容量使扩展生效
ext4
用resize2fs
,xfs
用xfs_growfs
查看逻辑分区容量
可以发现/dev/mapper/vg_tonyplay-lv_root
已经从开始的14G
扩展到了48G
。ok,这就说明大功告成了,再也不用通过重装系统这种蹩脚的方式扩容了
小结
至此,lvm
扩容工作的过程应该是比较清楚了,之后有机会的话我会再补充一下LVM
的压缩、删除等操作过程。