虚拟化ESXi常见故障问题及解决方案

一、针对VMWare集群相关问题

1.1 问题

1)ESXi集群资源不足,存在很多虚拟机,配置很高,资源利用率很低;业务已下线,但是资源未下线;

2)部分主机CPU和内存使用情况一直很高;

3)存储LUN大小不合理,导致空闲资源无法集中使用。

1.2 原因

1)资源分配不合理,空闲虚拟机较多,占用资源较多。

2)集群整体缺乏监控,对集群的各个资源使用情况没有监控。

1.3 解决方案

1)回收资源,下架并删除已经不使用的资源,缩容使用率较低的虚拟机资源,主要针对开发、测试用的虚拟机,生产环境不建议操作。

2)限制虚拟机可使用的资源,例如,限制CPU使用量、限制内存使用量,主要针对开发、测试用的虚拟机,生产环境不建议操作。

3)划分区域,划分开发、测试和生产等区域,不同组访问不同的区域,跨区访问需要授权,特别是访问生成环境。

4)增加ESXi和虚拟机的监控,建议使用VMware 运管平台运维管理(vRealize Operations Manager)。

5)升级vCenter和ESXi软件,将现有主机升级到最新版本,需要评估可行性。

6)合并较小的LUN,增加存储的利用率。

图片[1]-虚拟化ESXi常见故障问题及解决方案-不念博客

二、持续较高的 CPU 使用情况的解决方案

CPU 使用情况中的临时高峰表示 CPU 资源的使用情况最佳。持续较高的 CPU 使用情况可能表示存在问题。

可以使用 CPU 性能图表监控主机、群集、资源池、虚拟机和 vApp 的 CPU 使用情况。

2.1 问题

1)主机 CPU 使用情况一直很高。CPU 使用情况值较高时会增加主机上虚拟机的就绪时间和处理器列队。

2)虚拟机 CPU 使用情况超过 90%,且 CPU 就绪值超过 20%。应用程序性能将受到影响。

2.2 原因

1)主机可能缺少满足要求所需的 CPU 资源。

2)相对于常规 CPU 的虚拟 CPU 的数量可能过多。

3)可能存在 IO 存储或网络操作使 CPU 处于等待状况。

4)客户机操作系统为 CPU 生成的负载过多。

2.3 解决方案

1)验证是否在主机的每台虚拟机上均安装了 VMware Tools。

2)将主机上或资源池中其他虚拟机的 CPU 使用情况与此虚拟机的 CPU 使用情况值进行比较。主机的虚拟机视图上的堆栈条形图显示主机上所有虚拟机的 CPU 使用情况。

3)确定虚拟机的高就绪时间是否导致其 CPU 使用时间达到 CPU 限制设置。如果出现这种情况,请增加虚拟机上的 CPU 限制。

4)增加 CPU 份额以给予虚拟机更多机会运行。如果主机系统受到 CPU 约束,则主机上的总就绪时间可能仍维持在相同级别。如果主机就绪时间没有减少,则为高优先级虚拟机设置 CPU 预留,保证它们收到所需要的 CPU 周期。

5)增加分配给虚拟机的内存量。此操作会减少所缓存应用程序的磁盘和/或网络活动。这可能会降低磁盘 I/O,并减少主机对虚拟化硬件的需求。具有较少资源分配的虚拟机通常可累积更多的 CPU 就绪时间。

6)将虚拟机上的虚拟 CPU 数目减少到执行工作负载所需要的数目例如,四路虚拟机上的单线程应用程序只能从单个 vCPU 中受益。而管理程序还需维护三个空闲 vCPU,占用本可用来处理其他工作的 CPU 周期。

7)如果主机不在 DRS 群集中,则将它添加到一个群集中。如果主机在 DRS 群集中,则增加主机数,并将一个或多个虚拟机迁移到新主机上。

8)如有必要,请在主机上升级物理 CPU 或内核。

9)使用最新版本的管理程序软件并启用 CPU 节省功能(例如 TCP 分段卸载、较大内存页面和巨型帧)。三

三、内存性能问题的解决方案

主机计算机内存是客户机虚拟内存和客户机物理内存的硬件备份。

主机计算机内存必须至少稍大于主机上虚拟机的总活动内存。

虚拟机的内存大小必须稍大于客户机内存平均使用情况。

增加虚拟机内存大小可导致更多内存使用情况开销。

3.1 问题

1)内存使用情况一直很高(94% 或更高)或者一直很低(24% 或更低)。

2)可用内存一直为 6% 或更低,且交换频繁发生。

3.2 原因

1)主机可能缺少满足要求所需的内存。如果活动内存与分配的内存大小相同,则会导致用于负载的内存资源不足。如果活动内存一直很低,则分配的内存会过多。

2)主机计算机内存资源不足以满足要求,这会导致内存回收和性能降低。

3)如果活动内存与分配的内存大小相同,则会导致用于负载的内存资源不足。

3.3 解决方案

1)验证是否在每个虚拟机上均安装了 VMware Tools。虚拟增长驱动程序与 VMware Tools 一起安装,它对性能而言至关重要。

2)验证是否启用了虚拟增长驱动程序。通过虚拟增长和交换,VMkernel 定期回收没有使用的虚拟机内存。通常,这不影响虚拟机性能。

3)如果内存太大,则在虚拟机上减少内存空间,并更正缓存大小。这将为其他虚拟机释放内存。

4)如果虚拟机的内存预留值设置大大高于活动内存设置,则减少预留设置,以便 VMkernel 可以回收空闲内存供主机上其他虚拟机使用。

5)将一个或多个虚拟机迁移到 DRS 群集中的主机上。

6)将物理内存添加到主机。

四、ESXi部分主机空间不足

4.1 问题

部分ESXi主机空间不足。

4.2 解决方案

如果文件系统有未使用空间,但是 inode 已达到最大数量,则无法创建新文件。这看起来像已满文件系统一样。

要解决此问题,请确定 ESX 控制台文件系统和 VMFS 文件系统是否已达到 inode 或文件系统限制并移除某些文件。

要确定 ESX 控制台文件系统和 VMFS 文件系统是否已达到 inode 或文件系统限制并移除某些文件,请执行以下操作:

1)获取对命令行的 root 访问权限

  • 对于 ESX,打开 SSH 会话。
  • 有关 ESXi,请参见 Tech Support Mode for Emergency Support (1003677)

2)在 ESX 主机上,请运行以下命令

[root@esx /]$ stat -f /

您会看到类似以下内容的输出:

File:"/"
ID:0 Namelen:255 Type: ext2/ext3
Blocks:Total:1259079 Free:898253 Available:834295 Size:4096
Inodes:Total:640000 Free:580065

在本例中,总共有 640000 个 inode 且 580065 个可用,因此 inode 可用。3)但是,如果您已用尽 inode 限制,则必须移除一些文件有关释放磁盘空间的详细信息,请参见:

  • Investigating disk space on an ESX or ESXi host (1003564)
  • Freeing ESXi inodes (1008643)

4)运行此命令生成可能是删除候选项的日志文件列表

find / -path "/vmfs" -prune -o -type f -size +50000k -exec ls -lh '{}' \;

此命令将寻找 50,000 KB (50MB) 或更大的文件,跳过虚拟机可能位于的 /vmfs 目录,并提供每个文件的详细输出。这可能会返回本地存储的 ISO 文件、日志包、较大的日志文件等。多余的文件可能位于的一些典型路径如下:

/tmp/vmware-root
/var/core
/var/log/vmware/aam/rul

警告

  • 使用 rm 移除存在问题的文件之前,请进行检查。文件删除后便无法恢复。
  • 除非有必要,否则请勿删除日志信息。考虑在其他位置存档较旧的日志记录。

5)针对 VMFS 卷运行此命令

vmkfstools -P -v 10 /vmfs/volumes/466e7eb9-3692da25-a15c-001321caa748

您会看到类似以下内容的输出:

VMFS-3.21 file system spanning 1 partitions.
File system label (if any): lun1 (2)
Mode: public
Capacity 5100273664 (4864 file blocks * 1048576), 148897792 (142 blocks) avail
Volume Creation Time:Tue Jun 12 12:08:41 2007
Files (max/free):30720/30707
Ptr Blocks (max/free):61440/61436
Sub Blocks (max/free):3968/3963
UUID:466e7eb9-3692da25-a15c-001321caa748
Partitions spanned:
vmhba1:0:1:1

在本例中,Files、Ptr Blocks 和 Sub Blocks 的值均不为零,因此对于新文件存在可用的 VMFS 条目。

© 版权声明
THE END