当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] VMWare:需要整合虚拟机磁盘

作者:精品下载站 日期:2024-12-14 23:30:42 浏览:16 分类:玩电脑

VMWare:需要整合虚拟机磁盘


VMware vSphere Client 控制台中虚拟机的“摘要”选项卡中的警告“需要合并虚拟机磁盘”表示,在删除快照(使用“删除”或“全部删除”选项)时,磁盘上残留的文件无法与主虚拟磁盘文件 (vmdk) 合并(提交)。因此,您无法备份此类虚拟机,并且其性能也会下降。

[玩转系统] VMWare:需要整合虚拟机磁盘

Virtual machine Consolidation Needed status.
Virtual Machine disks consolidation is needed.

“需要虚拟机磁盘整合”错误的最典型原因是:

  • 存储性能差,导致快照超时或快照过大导致无法删除/合并快照;

  • VMFS 数据存储上没有足够的可用空间来执行整合,必须至少有 1 GB 可用空间(请参阅如何在 VMware ESXi 中增加 VMFS 数据存储容量);

  • 快照文件由 vSphere 或第三方应用程序(通常由备份应用程序,例如 HP DataPtotector、Veeam 或 Netapp VSC)锁定。确保没有正在运行的虚拟机备份进程;

    该问题可能是由于执行备份时将 VM 磁盘添加(热添加)到备份设备而导致的。在某些情况下,您需要在备份设备设置中手动断开有问题虚拟机的虚拟磁盘连接(这种情况发生在 Veeam Backup Proxy、Symantec NetBackup 和 CommVault Media Agent 中)。

  • 虚拟机拥有超过32个快照(VMware建议的最大数量);

  • 大快照整合后台进程已启动;

  • vCenter 服务器和 ESXi 主机之间的连接问题(可能是暂时的)。

VMware如何整合磁盘?

要修复“需要虚拟机整合”错误,请右键单击虚拟机,然后选择虚拟机 -> 操作 -> 快照 -> 整合

[玩转系统] VMWare:需要整合虚拟机磁盘

将出现一个包含以下请求的窗口:

Confirm Consolidate
This operation consolidates all redundant redo logs on your virtual machine. Are you sure you want to continue?

[玩转系统] VMWare:需要整合虚拟机磁盘

确认您要删除冗余日志。然后vCenter将整合磁盘并清除日志。整合过程可能需要很长时间,具体取决于 VM 的大小、快照数量以及当前主机/数据存储负载。在整合期间,VM 性能可能会下降。等待“整合虚拟机磁盘文件”任务完成。

[玩转系统] VMWare:需要整合虚拟机磁盘

执行合并时,增量磁盘中的数据将与主磁盘合并,并删除存储上不必要的文件。之后,VM 合并的警告将会消失。

磁盘整合文件锁定错误

在某些情况下,执行整合时,您可能会在 vSphere 控制台中看到以下错误:

Unable to access file since it is locked. An error occurred while consolidating disks: Failed to lock the file. Consolidation failed for disk node ‘scsi0:0’: Failed to lock the file.

或者

Consolidate virtual machine disk files - Unable to access file since it is locked.

[玩转系统] VMWare:需要整合虚拟机磁盘

在这种情况下,VMware 建议重新启动 ESXi 服务器上的管理代理。为此,请通过 SSH 连接到 ESXi 主机并运行以下命令:

services.sh restart

[玩转系统] VMWare:需要整合虚拟机磁盘

如果这没有帮助,请检查谁锁定了虚拟机文件。

  1. 转到 VMFS 数据存储上的 VM 目录:

    # cd /vmfs/volumes/xxxxxx-xxxxxx-xxxx-xxxxxxx/WINSRV1
  2. 列出锁定的虚拟机文件以及保存这些文件的 ESXi 主机:

    # for i in `ls`; do vmfsfilelockinfo -p $i ;done|grep 'is locked in\|Host owning the lock\|Total time taken' | sed 's|Host owning the lock on file is||g'|sed 's|Total time|---|g' | awk '{print $1}' |uniq
  3. 前面的命令将返回如下内容:

    ---
    "WINSRV1-bf11abd3.vswp"
    Esxi01,
    ---
    "WINSRV1-flat.vmdk"
    Esxi02,
    Esxi01
  4. 在此示例中,您可以看到 WINSRV1-flat.vmdk 文件被两个主机锁定。要从第二台主机释放文件锁定,请通过 SSH 连接到 Esxi02 并运行以下命令:

    # /etc/init.d/hostd restart
    # /etc/init.d/vpxa restart
  5. 从 vSphere Client 界面运行整合。

另外,您可以尝试按如下方式解锁VM文件:

  1. 如果可能的话,关闭虚拟机;

  2. 创建新快照;

  3. 使用“全部删除”选项删除所有虚拟机快照;

  4. 使用 vMotion 将正在运行的虚拟机移动到另一个 ESXi;

  5. 尝试如上所述合并快照。

[玩转系统] VMWare:需要整合虚拟机磁盘

如果虚拟机菜单中的“合并”选项处于非活动状态(按钮呈灰色),并且数据存储中仍然存在大量增量快照文件,则快照链的完整性很可能被破坏(错误:

Unable to enumerate all disks

)。

[玩转系统] VMWare:需要整合虚拟机磁盘

尝试手动从列表中删除虚拟机(从清单中删除),然后从数据存储浏览器中重新注册虚拟机的 VMX 文件。如果这没有帮助,请检查并修复快照链中的错误,如下所述:

The parent virtual disk has been modified since the child was created

(https://kb.vmware.com/s/article/1007969)。

使用 PowerCLI 整合虚拟机快照

您可以使用 PowerCLI 查找需要整合的所有虚拟机(该模块允许您管理 VMware 基础架构)。为此,请连接到您的 vCenter 服务器或 ESXi 主机:

Connect-VIServer mun_vsphere.a-d.site

获取状态为“需要虚拟机磁盘整合”的所有虚拟机的列表:

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded}

现在您可以整合列表中所有虚拟机的磁盘:

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded} | foreach {$_.ExtensionData.ConsolidateVMDisks_Task()}

[玩转系统] VMWare:需要整合虚拟机磁盘

您可以使用以下 PowerShell 脚本自动整合超过 30 天的虚拟机快照:

$VMName = Get-VM | Get-Snapshot |
Where {$_.Created -lt (Get-Date).AddDays(-30)} | select VM |
ForEach-Object {
$VMName.ExtensionData.ConsolidateVMDisks()
}

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯