做运维的小伙伴可能会遇到这样一种情况,就是机房服务器用 VMware ESXi 来做服务器层面的虚拟化的,用该软件可以很方便的在服务器上虚拟一台新的主机出来。
正常情况下,我们创建一台虚拟机后很少会去做配置变动,但是如果现在由于虚拟机的存储不够需要临时扩容该怎么做呢?如果有不会的小伙伴可以随着我操作步骤来操作。
一、查看主机信息
首先我们通过下面三个命令,可以查看硬盘的情况,这里我以我的一台测试主机为例进行演示
bash
df -Th # 这是一个用于显示磁盘空间使用情况的命令。它以人类可读的格式(-h)显示文件系统类型(-T)
lsblk # 这是一个用于列出所有可用块设备的信息的命令
fdisk -l # 这是一个用于列出所有分区信息的命令
IDE磁盘的文件名为 /dev/hdxxx
SCSI/SATA/USB磁盘文件名为 /dev/sdxxx
可以看到我这里只有50G的存储,假如现在需要安装一个数据库,需要80G的存储空间的话,我这里的主机就不满足了。
二、操作扩容
所以接下来的话我们就需要通过VMware来进行扩容了。我们在VMware客户端浏览器上点击操作,选择编辑设置然后将磁盘修改到100后点击保存。然后关机重启。
重启后我们继续执行上面给的三个命令可以看到sda空间增加到了100G,但是文件系统 /dev/mapper/centos-root 空间没变。
三、新建分区
虽然在VMware上面给该主机将存储增加到100G但是虚拟机是无法自动使用新增的存储的,我们需要执行下面的命令来将新分配的存储进行分区后才能使用。
bash
# 创建分区命令
1、执行 fdisk /dev/sda
2、在command后输入:p(打印分区表)
3、在command后输入:n(新增分区)
4、回车(默认主分区primary)
5、分区号,起始扇区,结束山区都默认敲回车
6、在command后输入:t(设置分区格式)
7、分区号后默认敲回车
8、Hex代码输入填入:8e(8e表示Linux LVM分区类型)
9、在command后输入:w (写入分区表)
# 然后等待分区完成即可
执行完之后我们可以查看结果,此时可以看到此时已经多了一个sda3分区了
四、格式化新分区
新区创建完成后,我们需要重启一下虚拟机,这样系统便会重新读取分区表,接下来我们使用如下命令格式化新分区
bash
# 我这里新建的分区叫sda3,你需要换成你自己的新分区的名字
mkfs.ext3 /dev/sda3
五、合并分区
新分区格式化完成后,我们就可以对新分区进行一系列操作了,这里我们将演示将该新创建的分区合并到 /dev/mapper/centos-root 需要用到的命令如下:
shell
# lvm
lvm> pvcreate /dev/sda3
# 输入 y 确认
lvm> vgextend centos /dev/sda
# 查看当前volume详情
lvm> vgdisplay -v
接下来将上图中最后一个名为sda3的12799的空余容量合并到系统盘 /dev/mapper/centos-root
shell
lvm> lvextend -l+12799 /dev/mapper/centos-root
lvm> quit
最后将文件系统扩容,这样系统就可以识别了
bash
xfs_growfs /dev/mapper/centos-root
六、查看结果
此时再次查看文件系统,就可以发现 /dev/mapper/centos-root 的容量已经从50G变为100G了