在VMware中,默认安装的Linux虚拟机的磁盘大小为20G,但是在安装完各种软件和下载各种包后往往出现根分区磁盘大小不足。即使删除大的日志文件还是磁盘空间不足,这个时候便需要对挂载在根分区上的磁盘进行扩容。
LVM,即Logical Volume Manager,逻辑卷管理器,是一种硬盘的虚拟化技术,可以允许用户的硬盘资源进行灵活的调整和动态管理。
LVM是Linux系统对于硬盘分区管理的一种机制,诞生是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对硬盘的强制性扩容和缩容理论上是可行的,但是却可能造成数据丢失。LVM技术是通过在硬盘分区和文件系统之间增加一个逻辑层,提供了一个抽象的卷组,就可以把多块硬盘设备、硬盘分区,甚至RAID整体进行卷则合并。并可以根据情况进行逻辑上的虚拟分割,这样一来,用户不用关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区设备的动态调整。
LVM的架构体系中,有三个很重要的概念:
PV,物理卷,即实际存在的硬盘、分区或者RAID
VG,卷组,是由多个物理卷组合形成的大的整体的卷组
LV,逻辑卷,是从卷组上分割出来的,可以使用使用的逻辑存储设备
原理图如图所示
LVM逻辑卷扩容根分区重要步骤:
1 添加磁盘
2 格式化磁盘
3 pv vg lv
4 扩容文件系统
格式化磁盘:
1 文件系统为xfs,则格式化磁盘用mkfs.xfs /dev/sdb1
2 文件系统为ext4,则格式化磁盘用mkfs.ext4 /dev/sdb1
扩容pv:
pvcreate /dev/sdb1(注意此为分区名)
扩容vg:
vgextend vgname pvname
扩容lv:
lvextend -L +20G lvname (此表示在原来lv大小的基础上新增20G)
lvextend -L 50G lvname (此表示将lv的大小设置为50G)
lvextend -l +100%FREE lvname (将lv扩展到其所在的vg中剩余的所有可用空间)
扩容文件系统:
1 文件系统为ext4,则扩容文件系统用resize2fs lvname/要扩容目录上的文件系统名称
2 文件系统为xfs,则扩容文件系统用xfs_growfs lvname/要扩容目录上的文件系统名称
1在VMware上添加一块20G的磁盘
2 开机,通过fdisk -l 查看机器所挂硬盘个数及分区情况
3 查看挂载在根分区的磁盘以及当前系统的卷组
由上图发现挂载在根分区上的磁盘是/dev/mapper/centos-root,还可以看到当前系统的卷组是centos。
4 使用磁盘所有大小作为整个分区/dev/sdb的大小
5 执行partprobe将刚才分区的信息加载到内核 ,使用lsblk命令查看
6 格式化磁盘
由于我使用的是centos7版本的Linux系统,默认的文件系统是xfs
7 将刚才新加的硬盘创建为物理卷并查看物理卷和卷组
8 将物理卷加到卷组里,刚才查的卷组名为“centos”,查看卷组,发现比刚才多了20G
9 将lv(逻辑卷)进行扩容并查看状态
lvextend 命令主要参数:
-l + :指定逻辑卷的LE个数,如 -l +200
-L + :表示增加多少空间,如 -L +15G ,单位有bBsSkKmMgGtTpPeE
-l +100%FREE :表示增加vg的全部可用空间
10 扩容文件系统
再次查看挂载在根分区上的磁盘
自此,根分区扩容完毕。