一、新增磁盘扩容到根目录或者home下
比如新加一个硬盘sdb,空间不足的硬盘是sda,现在需要把sdb的空间加到sda下的root分区,此中场景可使用下面的方法。
# 1.查看磁盘情况(lsblk、fdisk -l、pvdisplay)
lsblk
# 2.创建物理卷(pvcreate)
pvcreate /dev/sdb
# 3.将磁盘扩展到卷组(vgextend)
vgextend centos /dev/sdb
# 4.扩展逻辑分区(lvextend)
# 根据自己的情况选择扩容到centos-root
# 还是centos-home逻辑分区,请修改注释
# 100%是将所有的磁盘空间扩容到指定分区,也可以根据需要进行调整比例
# 也支持指定大小比如10G等等(指定固定值时参数-l需要修改为-L)
lvextend -l+100%FREE /dev/mapper/centos-root
# 5.使扩展生效(xfs_growfs)根据扩容的分区进行选择使用
xfs_growfs /dev/mapper/centos-root#ext4类型执行操作
resize2fs /dev/mapper/centos-root
# 6.查看(df -H)
df -H
二、 对本盘扩容之后分空间到分区下
比如现在的盘是sda,下面的root空间满了,没有多余的空间,现在对sda进行扩容,扩容后,发现sda的空间的确是变多了,但是下面的root空间还是原来那么多,需要把sda扩容的空间加到root分区上,可使用下面的方法
用parted命令进行操作
#1. 查看磁盘情况:打印可用空间
parted /dev/sda print free
Number Start End Size Type File system Flags
32.3kB 1049kB 1016kB Free Space
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 53.7GB 52.6GB primary lvm
#2.分配剩余的可用空间
#将剩余的可用空间分配到 /dev/sda2,根据实际修改磁盘
# resizepart 中的2 只的是第二个分区即:/dev/sda2
# 100% 将所有的空闲空间分配给/dev/sda2,也可以用单位和百分比
parted /dev/sda resizepart 2 100%
# 3.刷新物理卷
#分区的空间修改了,也要刷新一下pv物理卷的大小,这样pv才能识别变动的空间
pvresize /dev/sda2
# 4.查看物理卷是否变化
#查看pv中free 项中是否显示了可用的空间
pvdisplay
# 5.扩展逻辑分区
#开始增加到逻辑卷中
lvextend -l+100%FREE /dev/mapper/centos-root
# 6.使扩展生效(xfs_growfs)
xfs_growfs /dev/mapper/centos-root
# 7.查看(df -H)
df -H
三、 将一个pv的空间移动给一个lv
比如vda5有34G空间,但是这个vda5并没有使用,想要将34G空间加到root下
1、先将vda下面的vg和lv删除
lvdisplay #查看有多少个lv
lvremove XXX #删除对应lv
vgdisplay #查看有多少个vg
vgremove XXX #删除对应vg
2、将新磁盘扩展到原来的卷组,c1指的是root所在的vg名称
vgextend c1 /dev/vda5
3、扩展逻辑分区
lvextend -l+100%free /dev/mapper/c1-root
4、使扩展生效
resize2fs /dev/mapper/c1-root
注意:分区类型是ext类型(可以使用cat /etc/fstab查看类型),用resize2fs,如果xfs类型,用xfs_growfs,比如:xfs_growfs /dev/mapper/c1-root