VMFS 数据存储上创建的 vmware.log 文件太多,导致开机延迟或无法打开虚拟机电源
search cancel

VMFS 数据存储上创建的 vmware.log 文件太多,导致开机延迟或无法打开虚拟机电源

book

Article ID: 342638

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Too many vmware.log files created on VMFS datastores results in delays or failure to power on virtual machines (1006434) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • VMFS 卷上的文件太多可能会导致目录内容枚举或读取速度缓慢,以及服务在诸如 vmware-hostd 等 ESX 组件中失败。
  • 如果 VMFS 数据存储上有太多文件,则备份产品无法完成虚拟机备份。
  • 给定虚拟机的目录中驻留的 vmware.log 文件数量过多(几百或几千个)。
  • 在主机重新引导后尝试打开虚拟机电源会导致以下错误:

    无法打开虚拟机客户机电源。错误: 无法找到交换文件 (Unable to power up vm guests. Error: cannot find swap file)。

  • 尝试将新虚拟机与现有磁盘关联时失败,因为新虚拟机创建失败。
  • 在受影响的 VMFS 数据存储上创建文件失败,某些文件删除尝试可能会失败。
  • 在常用 /var/log/vmkwarning 日志记录中引用了无法打开电源的虚拟机,并显示类似于以下内容的错误:

    WARNING: Swap: vm 13001: 1480: Failed to create swap file '/volumes/DatastoreName/VMfolder/VMname-6bc43c2b.vswp': Out of resources

  • 在 VMware vCenter 或 VirtualCenter 中,在虚拟机的任务与事件选项卡中选择事件之后,会显示当前各种此虚拟机故障切换失败消息。
  • 虚拟机显示为已关闭电源,但事实上它们仍正在运行并且可在虚拟机网络中进行访问。


Environment

VMware ESXi 3.5.x Embedded
VMware ESXi 3.5.x Installable
VMware ESX Server 3.0.x
VMware ESX Server 3.5.x

Resolution

由于 VMware High Availability 问题,一个或多个虚拟机重复尝试打开电源,并且在很长一段时间生成新的 vmware.log 文件。要解决此问题,请移除无关的 vmware.log 文件。

警告:本文提供的步骤要求您从数据存储中永久删除这些文件。执行这些步骤时请谨慎小心。
  1. 在群集中禁用然后再重新启用 VMware HA 来阻止 VMware HA 问题进一步持续。经验证,此操作可使 VirtualCenter 中受影响虚拟机的事件选项卡上停止显示故障切换错误。
  2. 在服务控制台上,更改包含过量 vmware-x.logs 的虚拟机的文件夹目录。

    注意:文件访问已延迟,因此用于搜索所有数据存储的日志文件的命令会返回过多文件或失败。继续逐个对受影响的虚拟机完成这些操作。

    要获取文件夹中 vmware-x.log 文件数量的计数,请运行:

    # ls *.log | wc -l
    要移除这些日志,请运行:

    # rm -f vmware-*.log
    这会删除所有日志文件,除非参数过多。即,rm 命令要处理的文件过多。在这种情况下,请尝试删除以 vmware-1 开头的文件:

    # rm -f vmware-1*.log
    如果文件数以万计,可能会有超过一千个以 1 开头的文件,因此参数仍然过多。必须更加具体:

    # rm -f vmware-10*.log
    # rm -f vmware-11*.log
    # rm -f vmware-12*.log
    如有必要,继续缩小命令删除候选项的范围,直至达到可接受的文件计数。

  3. 不断移除日志文件,直至仅保留 vmware.log。对受影响的任何其他虚拟机重复这些步骤。


Additional Information

某些有助于删除这些文件的其他命令:
此命令将列出存在时间超过 1 天的所有 vmware.log 文件:

cd /; find /vmfs/volumes/ -name vmware-*.log -mtime +1 -exec ls {} \;
此命令可用于删除存在时间超过 1 天的 vmware.log 文件:
cd /; find /vmfs/volumes/ -name vmware-*.log -mtime +1 -exec ls {} \; | xargs rm
此命令会生成以下输出。请注意以 Files (max/free) 开头的行。数据存储上存在过多文件,正在消耗所有可用 Inode。这样可以防止继续创建文件。
vmkfstools -Ph -v 10 /vmfs/volumes/ <VOLUME name=""></VOLUME>
VMFS-3.31 file system spanning 9 partitions.
File system label (if any):
Mode: public
Capacity 9.4T, 1.1T available, file block size 8.0M
Volume Creation Time: Thu Oct 16 17:10:08 2008
Files (max/free): 30720/0
Ptr Blocks (max/free): 61440/60208
Sub Blocks (max/free): 3968/1216
UUID: 48f7d7e0-295b9248-7710-0015174a4432
Partitions spanned (on "lvm"):
vmhba1:0:36:1
vmhba1:0:37:1
vmhba1:0:35:1
vmhba1:0:34:1
vmhba1:0:33:1
vmhba1:0:20:1
vmhba1:0:21:1
vmhba1:0:22:1
vmhba1:0:23:1
Too many vmware.log files created on VMFS datastores results in delays or failure to power on virtual machines