删除vSAN中不可访问对象的方法

vSAN是VMware推出的用于vSphere系列产品、为虚拟环境优化的分布式可容错的存储系统。vSAN是VMware对ESXi主机本地存储设备(包括SSD与HDD)进行集中管理、空间分配使用的一种方式或一种新的技术。现在一些vSphere数据中心已经使用vSAN组成的分布式存储代替传统、专业的共享存储并获得了更好的性能。在使用vSAN存储的过程中,可能会出现一些“不可访问”的对象。虽然这些“不可访问”的对象对虚拟机的正常运行不会造成影响,但因为有“不可访问”对象存在,在正常的vSAN维护中或vSAN磁盘模式升级中,这些“不可访问”的对象不能迁移到其他主机会导致进入维护模式或升级vSAN磁盘格式失败。如果要解决这个问题,就需要强制删除这些“不可访问”的对象。下面通过具体的实例进行介绍。

(1)某4台ESXi主机组成的标准vSAN群集,在“监控→vSAN→运行状况”的“数据→vSAN对象运行状况”中有“不可访问”的对象,如图1-1所示。单击“立即修复对象”按钮无法修复。

删除vSAN中不可访问对象的方法

图1-1 vSAN对象运行状况检查到不可访问对象

(2)这4台主机原来运行的是vSphere 6.7.0,vSAN磁盘格式是6.0版本,如图1-2所示。

删除vSAN中不可访问对象的方法

图1-2 查看当前vSAN磁盘格式

(3)在将vSphere 6.7.0 升级到了6.7.0 U1(这包括了vCenter Server与4台ESXi主机的升级)后,准备升级vSAN磁盘格式。在“配置→vSAN→常规”中的“磁盘格式版本”中单击“预检查升级”按钮,预检查完成后出现错误,单击“详细信息”,如图1-3所示。

删除vSAN中不可访问对象的方法

图1-3 预检查升级

(4)在“vSAN群集-升级预检查问题”提示“无法升级群集,对象……”,在此对话框中显示了无法访问的对象。如图1-4所示。用鼠标选中“无法升级群集,对象……”这些信息右键用鼠标右键单击复制这些信息并将信息保存在“记事本”中备用。

删除vSAN中不可访问对象的方法

图1-4 vSAN中无法访问的对象

【说明】在图1-4中的信息为:

无法升级群集: 对象 db6f235b-b856-89dd-6324-0010181a9981, 6238115c-0828-2cc6-3dd3-b8aeedb7689f, c19a245b-f031-9b4f-9b10-b8aeedb7689f 在 vSAN 中无法访问。

(5)使用SSH客户端软件(例如xShell)登录到其中一台ESXi主机(需要在这台主机启动SSH服务),在登录到shell界面后,先执行cd/vmfs/volumes/vsanDatastore命令进入vSAN数据存储,然后使用objtool命令依次删除图1-4中无法访问的对象(记录对象的UUID)。

objtool在/usr/lib/vmware/osfs/bin/目录中,在图1-4中有3个不可访问的对象,其UID依次为:

db6f235b-b856-89dd-6324-0010181a9981

6238115c-0828-2cc6-3dd3-b8aeedb7689f

c19a245b-f031-9b4f-9b10-b8aeedb7689f

则在SSH中依次执行如下的命令(在vSAN数据存储根目录下):

/usr/lib/vmware/osfs/bin/objtool delete -f -u db6f235b-b856-89dd-6324-0010181a9981

/usr/lib/vmware/osfs/bin/objtool delete -f -u 6238115c-0828-2cc6-3dd3-b8aeedb7689f

/usr/lib/vmware/osfs/bin/objtool delete -f -u c19a245b-f031-9b4f-9b10-b8aeedb7689f

如图1-5所示。

删除vSAN中不可访问对象的方法

图1-5 删除不可访问的对象

(6)在删除不可访问的对象后,在“配置→vSAN→常规”中单击“预检查升级”按钮执行升级前的检查,执行完成后提示预检查已成功完成,单击“升级”按钮,如图1-6所示。

删除vSAN中不可访问对象的方法

图1-6 升级磁盘格式

(7)在“vSAN群集-升级”对话框中单击“是”按钮,如图1-7所示。

删除vSAN中不可访问对象的方法

图1-7 升级

(8)升级完成后在“磁盘格式版本”中显示“版本7.0上的所有XX个磁盘”,如图1-8所示。

删除vSAN中不可访问对象的方法

图1-8 升级完成

(8)在“配置 →vSAN→磁盘管理”中可以看到磁盘格式已经升级到7,如图1-9所示。

删除vSAN中不可访问对象的方法