操作步骤

1.在VMWare ESXi中给虚拟机扩容

在虚拟机列表中找到待扩容的虚拟机,首先需要关闭待扩容的虚拟机

然后选中虚拟机 -> 编辑 -> 硬盘 -> 然后修改大小就好了(如下图所示)

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_centos


注意:添加新硬盘应该也是可以的, 不过我一般是在原有硬盘上进行扩容,如果是灰色有可能是因为有快照导致不能改变磁盘信息, 可能需要先将快照删掉。

2.进入虚拟机查看系统分区情况(检查容量是否增加)

# 查看磁盘中使用情况
df -Th
# 查看当前系统的分区情况
lsblk

 

从下图可以看出sda分区已经扩容到500G,但是文件系统/dev/mapper/centos-root中还是36G没有变,而且使用了100%了。

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_centos_02

3.新建分区

# 查看磁盘情况
fdisk -l

 

可以看到/dev/sda 磁盘已经有500G了

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_文件系统_03


接下来新增分区

# 创建分区命令
fdisk /dev/sda
再输入p
新增分区输入:n
回车(默认为主分区primary)
分区号,起始扇区,结束扇区都默认(回车)
设置分区格式输入:t
分区号默认(回车)
Hex 代码为 8e (8e代表Linux LVM分区类型)
w (写入分区表)
等待分区完成

 

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_ESXI本地存储虚拟化_04


确认一下,发现dev/sda3分区创建好了,分区格式为Linux LVM类型

# 查看当前磁盘情况
fdisk -l

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_系统分区_05

4.格式化新建的分区

重启一下虚拟机,以便重读分区表,开始格式化分区

# 开始格式化分区
mkfs.ext3 /dev/sda3
12

 

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_centos_06

5.合并分区

# lvm  
lvm> pvcreate /dev/sda3   
lvm> vgextend centos /dev/sda3   
# 输入y确认   
# 查看一下当前的Volume卷详情   
lvm> vgdisplay -v

 

下图为当前的Volume卷详细,当前/dev/sda3的PE容量为112639。

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_系统分区_07


接下来将系统盘/dev/mapper/centos-root与sda3的112639空余容量合并,然后退出。

lvm> lvextend -l+112639 /dev/mapper/centos-root
lvm> quit

 

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_ESXI本地存储虚拟化_08


最后将文件系统进行扩容,让系统识别,输入命令

xfs_growfs /dev/mapper/centos-root

 

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_系统分区_09

6.再次确认

再次查看系统分区情况,centos-root分区已经扩容成果了,打完收工

lsblk

 

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_ESXI本地存储虚拟化_10

问题处理

扩容LVM时,报错如下:

Couldn’t create temporary text file name.

Backup of volume group centos metadata failed.

Volume group “centos” successfully extended

ESXI本地存储虚拟化 esxi为虚拟机扩容磁盘_ESXI本地存储虚拟化_11


原因:存储使用100%,无法挂载,须预留部分空间出来。

解决办法:

删掉待扩容磁盘中无用文件(或暂时剪切到其他磁盘中),继续(vgextend centos /dev/sdb3)操作即可。