VMware ESXi:如何检查磁盘错误?

VMDK文件,其完整名称“虚拟机磁盘”,是包含有关虚拟机的所有信息的虚拟磁盘,常用于云计算和虚拟计算中。对VMware ESXi,VMDK文件主要由虚拟磁盘描述符diskname.vmdk和包含裸文件的虚拟磁盘扩展diskname-flat.vmdk组成。

VMDK文件的重要性不言而喻,但当您管理大量虚拟机时,由于各种原因可能会导致一个或多个VMDK文件损坏或丢失(例如意外文件终止,强制系统关闭,病毒等),因此您可能会无法启动虚拟机。

如果您的任何.vmdk文件损坏,您可以使用VMKFSTOOLS命令来执行不同的存储操作,例如检查和修复有故障的VMDK文件。

VMware ESXi

如何从命令行执行ESXi硬盘检测?

VMKFSTOOLS是用于管理VMFS卷、存储设备和虚拟磁盘的ESXi Shell命令。您可以使用它来执行许多VMFS卷和虚拟磁盘的操作,例如,在物理分区上创建和管理VMFS数据集,操纵虚拟磁盘文件,检查或修复VMDK文件等。

ESXi使用VMKFSTOOLS检查磁盘错误:

注意:默认情况下禁用SSH。在使用vmkfstools命令之前,请启用SSH并通过SSH以root身份连接到ESXi主机。在Windows操作系统中,您可以使用PuTTY作为SSH客户端,远程执行ESXi shell命令。

要检查虚拟磁盘的完整性,可以使用以下检查磁盘错误命令:请使用-x和check选项(需要替换数据存储和磁盘名称为您自己的):

vmkfstools -x check /vmfs/volumes/my_datastore/my_disk.vmdk

如果未检测到错误,VMKFSTOOLS将返回“磁盘无错误”。如果确实有问题,可以使用下面的命令修复损坏的虚拟磁盘:

vmkfstools -x repair /vmfs/volumes/my_datastore/my_disk.vmdk

命令修复磁盘

在使用VMKFSTOOLS进行更改后,vSphere Client可能不会立即更新。您可以从客户端使用刷新操作。

可以在虚拟机上运行chkdsk吗?

一些用户有这样的疑问:在虚拟机上运行chkdsk命令检查磁盘错误是否可以,或者这样做是否有意义?

由于虚拟机是通过软件来模拟硬件系统的全部功能,所以任何在物理计算机上能做的事情,在虚拟机上都可以做到。那么在虚拟机的来宾操作系统内部运行chkdsk命令是否可以达到与在物理机中相同的效果呢?

检测和修复损坏的文件系统

出于安全原因,有些人不建议这样做,认为chkdsk会尝试检查整个存储区域。实际上,如果您在虚拟机上启动chkdsk,它只会扫描它所在的虚拟磁盘,而不是整个物理驱动器。通常不可能超出虚拟机内分配的虚拟磁盘。

Chkdsk的主要用途是检测和修复损坏的文件系统,无论它是在物理硬盘上还是在虚拟硬盘上都无关紧要。运行chkdsk有助于文件系统的一致性,并且如果您需要连续备份虚拟机,它尤为重要。

注意:VMKFSTOOLS无法修复所有ESXi磁盘错误

虽然VMKFTOOLS命令是ESXi常用的检查磁盘错误的手段,但经常会出现VMDK不能被它正常修复的情况,就像物理磁盘问题总不能被chkdsk修复一样。如果你的虚拟机承载着一些非常重要的数据或业务,不要指望出现问题后再来修复它。

当虚拟机出现问题,不能正常修复时,可以考虑打开VMDK文件从中复制必要的内容。但要真正要防止此类问题,虚拟机备份是一种简单而有效的手段。通过定期备份ESXi虚拟机,您始终可以在需要时将它们恢复到可用状态。

在这里,我将介绍一个可靠的VMware备份软件—以傲梅企业备份旗舰版为例。它适用于VMware ESXi 6.0及以上版本(也支持免费 ESXi)。您可以轻松地将ESXi主机或vCenter添加到Web控制台以实现虚拟机自动备份和恢复。

如果您的任何虚拟机出现故障,您可以轻松地执行恢复,甚至将虚拟机还原到另一台主机(以及数据存储、vCenter)根据需要。

您可以选择在Windows或Linux系统上转到下载中心下载并安装此虚拟机备份软件。

易于使用:集中式Web控制台和直观的用户界面,只要单击即可实现任何操作。

用户界面

自动化:创建备份计划以自动执行虚拟机备份,并启用保留策略以自动删除旧备份。

备份计划

灵活恢复:当您想要将虚拟机恢复或迁移到另一个位置时,选择您想要的任何备份版本,然后选择“还原到源位置”“还原到新位置”

使用“还原到新位置”,您可以执行异地还原以从备份创建一个相同的虚拟机,不用重新安装或配置新虚拟机。

还原到新位置

结论

在实际使用中,您的VMDK文件可能会损坏,甚至无法启动虚拟机。因此,您可能想知道如何使用命令行在ESXi虚拟机中检查磁盘错误。

在上面的文章中,我介绍了使用VMKFSTOOLS命令检查ESXi磁盘错误的方法,它可以检测到一些虚拟磁盘问题并尝试修复它。但是,并非每一种错误都可以通过这种方式修复。为了尽量减少可能的损失,建议采用高效的VMware备份解决方案并定期进行备份。