目录

简介

先决条件

要求

使用的组件

背景信息:

问题

vCenter中无法访问Datastore

vCenter/CLI中完全不提供Datastore

解决方案

网络可达性检查

IOvisor/SCVMclient/NFS代理状态检查

可解析到ESXI环回IP的集群UUID

/etc/vmware/esx.conf中的过时Datastore条目

检查ESXi中的防火墙规则

检查SCVM上的可输入规则

相关信息

简介

本文档介绍可用于排除Hyperflex Datastore装载问题的步骤。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息:

默认情况下，Hyperflex数据存储在NFS v3中装载。

NFS（网络文件系统）是虚拟机监控程序使用的一种文件共享协议，用于通过标准TCP/IP网络与NAS（网络连接存储）服务器通信。

以下是vSphere环境中使用的NFS组件的说明：

- NFS服务器 — 使用NFS协议使文件通过网络可用的存储设备或服务器。在Hyperflex世界中，每个控制器VM运行一个NFS服务器实例。数据存储的NFS服务器IP是eth1:0接口IP。

- NFS Datastore - NFS服务器上的共享分区，可用于保存虚拟机文件。

- NFS客户端 - ESXi包括用于访问NFS设备的内置NFS客户端。

除常规NFS组件外，ESXi上还安装了一个VIB，称为IOVisor。此VIB提供一个网络文件系统(NFS)安装点，以便ESXi虚拟机监控程序可以访问连接到单个虚拟机的虚拟磁盘驱动器。从虚拟机监控程序的角度来看，它只是连接到网络文件系统。

问题

装载问题的症状可能会在ESXi主机中显示为无法访问Datastore。

vCenter中无法访问Datastore

注意：在vCenter中，当Datastore显示为不可访问时，它们在ESX CLI中被视为已挂载不可用。这表示以前在主机上装载了Datastore。

通过CLI检查Datastore:

- SSH到ESXi主机，然后输入命令：

[root@node1:~] esxcfg-nas -l

test1 is 10.197.252.106:test1 from 3203172317343203629-5043383143428344954 mounted unavailable

test2 is 10.197.252.106:test2 from 3203172317343203629-5043383143428344954 mounted unavailable

vCenter/CLI中完全不提供Datastore

注意：当您的Datastore不在vCenter或CLI中时。这表示以前从未成功将Datastore装载到主机上。

- 通过CLI检查Datastore

SSH到ESXi主机并输入命令：

[root@node1:~] esxcfg-nas -l

[root@node1:~]

解决方案

装载问题的原因可能不同，请检查检查列表以验证并更正（如果有）。

网络可达性检查

在出现任何Datastore问题时，首先要检查的是主机是否能到达NFS服务器IP。

Hyperflex中的NFS服务器IP是分配给虚拟接口eth1:0的IP，该IP位于其中一个SCVM上。

如果ESXi主机无法ping通NFS服务器IP，则会导致数据存储无法访问。

在所有SCVM上使用ifconfig 命令查找eth1:0 IP。

注意：Eth1:0是虚拟接口，仅存在于其中一个SCVM上。

root@SpringpathControllerGDAKPUCJLE:~# ifconfig eth1:0

eth1:0 Link encap:Ethernet HWaddr 00:50:56:8b:62:d5

inet addr:10.197.252.106 Bcast:10.197.252.127 Mask:255.255.255.224

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

为了使ESXi主机出现Datastore装载问题，并检查它是否能到达NFS服务器IP。

[root@node1:~] ping 10.197.252.106

PING 10.197.252.106 (10.197.252.106): 56 data bytes

64 bytes from 10.197.252.106: icmp_seq=0 ttl=64 time=0.312 ms

64 bytes from 10.197.252.106: icmp_seq=1 ttl=64 time=0.166 m

如果您能ping通，请继续执行下一节中的故障排除步骤。

如果无法ping通，则必须检查环境以修复可达性。有几个指针可供查看：

- hx-storage-data vSwitch设置:

注意：默认情况下，所有配置由安装程序在集群部署期间完成。如果在此之后已手动更改，请验证设置

MTU设置 — 如果在集群部署期间启用了巨型MTU，则vSwitch上的MTU也必须为9000。如果不使用巨型MTU，则此值必须为1500。

组合和故障切换 — 默认情况下，系统尝试确保存储数据流量由FI在本地交换。因此，所有主机上的主用和备用适配器必须相同。

端口组VLAN设置 — 必须在存储控制器数据网络和存储虚拟机监控程序数据网络端口组上同时指定存储数据VLAN。

端口组级别上没有覆盖 — vSwitch级别上完成的Teaming & Failover设置默认应用于端口组，因此建议不覆盖端口组级别上的设置。

- UCS vNIC设置：

注意：默认情况下，所有配置由安装程序在集群部署期间完成。如果在此之后已手动更改，请验证设置

MTU设置 — 确保在存储数据vnic模板中正确配置了MTU大小和QoS策略。存储数据vnic使用白金级QoS策略，且必须根据您的环境配置MTU。

VLAN设置 — 必须在vnic模板中允许在集群部署期间创建的hx-storage-data VLAN。确保未将其标记为本地

IOvisor/SCVMclient/NFS代理状态检查

ESXI中的SCVMclient vib用作NFS代理。它拦截虚拟机IO，将其发送到相应的SCVM，并为其提供所需信息。

确保VIB安装在主机上，以便通过ssh连接到其中一个ESXI并运行以下命令：

[root@node1:~] esxcli software vib list | grep -i spring

scvmclient                  3.5.2b-31674   Springpath VMwareAccepted 2019-04-17

stHypervisorSvc             3.5.2b-31674   Springpath VMwareAccepted 2019-05-20

vmware-esx-STFSNasPlugin    1.0.1-21       Springpath VMwareAccepted 2018-11-23

立即检查esxi上scvmclient的状态并确保其运行，如果停止，请使用命令/etc/init.d/scvmclient start启动它

[root@node1:~] /etc/init.d/scvmclient status

+ LOGFILE=/var/run/springpath/scvmclient_status

+ mkdir -p /var/run/springpath

+ trap mv /var/run/springpath/scvmclient_status /var/run/springpath/scvmclient_status.old && cat /var/run/springpath/scvmclient_status.old |logger -s EXIT

+ exec

+ exec

Scvmclient is running

可解析到ESXI环回IP的集群UUID

Hyperflex将集群的UUID映射到ESXi的环回接口，以便ESXI将NFS请求传递到自己的scvmclient。如果不存在此问题，则可能会遇到主机上Datastore装载的问题。要验证此问题，请通过ssh连接到已装载Datastore的主机，然后通过ssh连接到主机，并捕获文件/etc/hosts

如果您看到非功能主机在/etc/hosts中没有条目，则可以将其从功能主机复制到非功能主机的/etc/host。

无法运行的主机

[root@node1:~] cat /etc/hosts

# Do not remove these lines, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost.localdomain localhost

10.197.252.75 node1

功能主机

[root@node2:~] cat /etc/hosts

# Do not remove these lines, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost.localdomain localhost

10.197.252.76 node2

127.0.0.1 3203172317343203629-5043383143428344954.springpath 3203172317343203629-5043383143428344954

/etc/vmware/esx.conf中的过时Datastore条目

如果HX群集是在不重新安装ESXI的情况下重新创建的，则可能在esx.conf文件中有旧的datastore条目。

这不允许您使用相同名称装载新Datastore。您可以从文件检查esx.conf中的所有HX数据存储：

[root@node1:~] cat /etc/vmware/esx.conf | grep -I nas

/nas/RepSec/share = "10.197.252.106:RepSec"

/nas/RepSec/enabled = "true"

/nas/RepSec/host = "5983172317343203629-5043383143428344954"

/nas/RepSec/readOnly = "false"

/nas/DS/share = "10.197.252.106:DS"

/nas/DS/enabled = "true"

/nas/DS/host = "3203172317343203629-5043383143428344954"

/nas/DS/readOnly = "false"

如果在输出中，您看到已映射的旧数据存储并使用旧集群UUID，因此ESXi不允许您使用新UUID装载同一命名的数据存储。

要解决此问题，需要使用命令 — esxcfg-nas -d RepSec删除旧的datastore条目

删除后，请从HX-Connect重试Datastore的装载

检查ESXi中的防火墙规则

检查防火墙启用设置

它设置为False，会导致问题。

[root@node1:~] esxcli network firewall get

Default Action: DROP

Enabled: false

Loaded: true

使用以下命令启用它：

[root@node1:~] esxcli network firewall set –e true

[root@node1:~] esxcli network firewall get

Default Action: DROP

Enabled: true

Loaded: true

检查连接规则设置：

它设置为False，会导致问题。

[root@node1:~] esxcli network firewall ruleset list | grep -i scvm

ScvmClientConnectionRule       false

使用以下命令启用它：

[root@node1:~] esxcli network firewall ruleset set –e true –r ScvmClientConnectionRule

[root@node1:~] esxcli network firewall ruleset list | grep -i scvm

ScvmClientConnectionRule true

检查SCVM上的可输入规则

检查并匹配所有SCVM上的规则数。如果不匹配，请提交TAC案例以纠正问题。

root@SpringpathControllerI51U7U6QZX:~# iptables -L | wc -l

48

相关信息

- 技术支持和文档 - Cisco Systems