Home

【vCenter】在 vSphere 6.5、6.7、7.0 和 8.0 中增加 VCSA 磁盘空间

这篇文章整理在 vSphere 6.5 / 6.7 / 7.0 / 8.0 环境中给 vCenter Server Appliance 扩容磁盘的通用思路。重点不是“把某块盘做大”这么简单,而是先确认哪个挂载点满了、它对应哪块 VMDK,再按版本选择合适的扩容方式。

适用场景

适合下面这类情况:

  • VCSA 某个挂载点空间不足
  • 5480 管理界面已经出现分区告警
  • 需要扩大 /storage/log/storage/db/storage/seat 等业务分区
  • 希望按 VMware 官方推荐流程扩容,而不是直接手动改分区

版本差异与前提说明

本文介绍了如何为 VCSA 6.56.77.08.0 增加特定 VMDK 的磁盘空间。由于 vSphere 6.0 之后引入了 LVM 结构,很多分区可以动态扩展,但不同版本仍有一些限制。

有关 vCenter Server 磁盘布局的更多信息,请参阅:

备注

  • 6.5 版本不支持调整根分区(上面知识库中列出的 VMDK1)的大小。 有关更多信息, 请参阅vSphere 6.5 发行说明。
  • 6.7 版本新增了调整根分区大小的功能。
  • 7.0 及以上版本不支持调整根分区大小。
  • 此知识库文章也适用于 SEAT 分区已满或任何其他 vCenter 设备分区已满的问题。
  • 本知识库文章也适用于外部平台服务控制器(PSC)。
  • 如果 vCenter/PSC 无法访问,请直接连接到运行虚拟机的 ESXi 主机。
  • 如果“扩展 VMDK 大小”选项呈灰色不可用状态,则磁盘可能正在使用快照,或者磁盘大小可能已达到数据存储块大小允许的最大值。在继续操作之前,请移除附加到 vCenter VM 的所有快照,并确保在扩展任何分区之前对 vCenter 进行完整的文件级备份。

有关 VMware 原生支持的基于文件的备份的信息

vCenter Server Appliance 的文件级备份和恢复

环境

VMware vCenter Server Appliance 6.7.x、

VMware vCenter Server 7.0.x、

VMware vCenter Server 8.0.x 和

VMware vCenter Server Appliance 6.5.x

基本处理流程

  1. 关闭 vCenter Server 虚拟机。如果虚拟机无法访问,则从 ESXi 主机级别执行此操作。
  2. 右键单击虚拟机。
  3. 点击“编辑设置”。
  4. 选择虚拟磁盘。
  5. 增加磁盘容量。确保虚拟机上没有附加任何快照。
  6. 虚拟机启动
  7. 使用 BASH Shell 或设备管理 CLI 扩展分区。

先确认逻辑卷对应哪块磁盘

这一步非常关键。VCSA 不是普通 Linux 虚拟机,很多人看到空间告警就直接猜测要扩哪块盘,结果容易扩错。

将 vCenter 逻辑卷映射到实际硬盘

  1. 运行此命令以查找到分区的逻辑卷映射

lsblk -o NAME,HCTL,MOUNTPOINT,SIZE

  1. 获取每个设备的实际路径 PCI 设备详细信息

ls -al /sys/block/sd*

  1. 确定需要增加的分区,例如,假设是映射到逻辑卷 /sys/block/sdq 的 /storage/lvm_snapshot 分区。
  2. 找到 PCI 设备的 SCSI 标签

cat /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/label

注意:如果在步骤 2 中获取的设备 realpath 在主机文件夹(第 4 级文件夹)之前没有序列号格式,则该路径映射到 SCSI0,例如 /sys/devices/pci0000:00/0000:00:10.0/ 映射到 SCSI0

映射 SCSI 设备。

  1. 现在我们知道分区 /sys/block/sdq 映射到 SCSI 设备 1 和单元号 1(来自步骤 1 输出的 HCTL 第 3 部分),这意味着它映射到 SCSI(1:1)。

  1. 简单来说,在 VCSA 中,/dev/sdX 的字母顺序通常对应系统识别到的磁盘顺序。
  • a= 硬盘 1 ( /dev/sda)
  • b= 硬盘 2 ( /dev/sdb)
  • qSDQ是字母表中的第17个字母,所以SDQ是Hard Disk 17的缩写。

方式一:使用 BASH Shell 扩容

注意: 请确保 vCenter Server 虚拟机未附加任何快照。

  1. 使用 SSH 和 root 凭据登录到 vCenter Server Appliance。
  2. 运行以下命令启用 Bash shell:

shell.set --enabled true

  1. 输入shell并按回车键。
  2. 使用以下命令验证哪个磁盘出现容量问题,然后跟踪虚拟机编辑设置中将显示哪个 SCSI ID:

df -h; lsblk; lsscsi

例如,如果以下命令执行后,

/storage/log 对应于 sde,并且 SCSI ID 为 SCSI(0:4)。

虚拟机设置中虚拟设备节点中显示为 SCSI(0:4) 的虚拟硬盘对应于 /storage/log 磁盘。

-----------------
:
/dev/mapper/log_vg-log 9.8G 4.4G 5.0G 47% /storage/log
:
sdd 8:48 0 25G 0 disk
mqcore_vg-core 254:12 0 25G 0 lvm /storage/core
★sde 8:64 0 10G 0 disk
★ mqlog_vg-log 254:14 0 10G 0 lvm /storage/log
sdf 8:80 0 10G 0 disk
mqdb_vg-db 254:5 0 10G 0 lvm /storage/db
:
[2:0:3:0] disk VMware Virtual disk 1.0 /dev/sdd
★[2:0:4:0] disk VMware Virtual disk 1.0 /dev/sde
[2:0:5:0] disk VMware Virtual disk 1.0 /dev/sdf
-----------------
  1. 使用 vSphere Client 或 vSphere Web Client,找到 vCenter Server Appliance 虚拟机,并增加受影响虚拟磁盘上的磁盘空间。有关详细信息,请参阅“增加虚拟磁盘的大小”。
  2. 虚拟磁盘增大后,返回 SSH 会话并运行以下命令,即可自动扩展物理卷增大后对应的逻辑卷:

/usr/lib/applmgmt/support/scripts/autogrow.sh

  1. 运行以下命令以确认虚拟磁盘已成功扩展:

df -h

如果 vCenter 升级预检查失败,并出现“可用空间不足”的报错,通常要先判断是不是根分区或日志空间不足。

1.根分区(**/**:包含操作系统文件,但是,7.0 及更高版本不支持调整根分区大小。

2.清除 journalctl 日志也会释放空间。

  1. 可用于清除 journalctl 日志的命令如下。

(通过 SSH 连接到 vCenter 并运行以下命令)

#journalctl —vacuum-time=1h

  1. 此命令用于查询和显示日志中的消息,并删除超过一小时的日志条目。
  2. 运行此命令检查根分区和其他分区的大小 #df -h

方式二:使用设备管理 CLI 扩容

**注意:**命令com.vmware.appliance.version1.resources.storage.stats.list 必须在指定位置执行,如果在 shell 提示符下运行命令则无效。命令执行成功命令执行失败:请确保命令在正确的环境中运行。以下是 shell 输出的失败示例: Command >

root@hostname# com.vmware.appliance.version1.resources.storage.stats.list

bash: com.vmware.appliance.version1.resources.storage.stats.list: command not found

  1. 使用 SSH 和 root 凭据登录到 vCenter Server Appliance。
  2. 运行以下命令以验证哪个磁盘出现磁盘容量问题:

适用于 vCenter Server Appliance 6.5

com.vmware.appliance.version1.resources.storage.stats.list

适用于 vCenter Server Appliance 6.7:

com.vmware.appliance.version1.resources.storage.stats.list

输出结果类似于以下内容:

...

7:

Totalinodes: 655360

Usedinodes: 4211

Name: /storage/seat

Totalkbytes: 10181944

Usedkbytes: 9081843

...

对于 vCenter Server Appliance 7.0,请改为执行 BASH Shell 过程。

  1. 使用 vSphere Client 或 vSphere Web Client,找到 vCenter Server Appliance 虚拟机,并增加受影响虚拟磁盘上的磁盘空间。有关详细信息,请参阅“增加虚拟磁盘的大小”。
  2. 虚拟磁盘增大后,返回 SSH 会话并运行以下命令,即可自动扩展物理卷增大后对应的逻辑卷:

适用于 vCenter Server Appliance 6.5

com.vmware.appliance.version1.system.storage.resize

适用于 vCenter Server Appliance 6.7:

com.vmware.appliance.system.storage.resize

  1. 再次运行该命令以确认虚拟磁盘已成功扩展:

适用于 vCenter Server Appliance 6.5

com.vmware.appliance.version1.resources.storage.stats.list

适用于 vCenter Server Appliance 6.7:

com.vmware.appliance.version1.resources.storage.stats.list

输出结果类似于以下内容:

...

7:

Totalinodes: 786432

Usedinodes: 4211

Name: /storage/seat

Totalkbytes: 12246192

Usedkbytes: 9081843

总结

VCSA 扩容时,真正重要的是把三件事先理清:

  1. 哪个挂载点空间不足
  2. 它映射到哪块 VMDK
  3. 当前版本应该使用 BASH Shell 还是设备管理 CLI

只要这三点判断正确,后面的扩盘和自动扩容其实并不复杂。最怕的不是命令难,而是盘扩错、分区认错,或者在带快照的情况下直接动手。

VMware LVM 存储