上周遇到两个case,一个是EMC的VNX5100,前端是ESXi的主机,通过iSCSI和存储连接。存储lun 挂了,经过我们处理,存储恢复到正常状态,但是把主机搬回客户现场以后,虚拟机死活访问不到存储。
还有一个case是DELL的MD3600i,前端也是Vmware的ESXi主机,MD3600i上有三个卷,其中两个是正常的,一个offline了,但是ESXi依然访问不到正常的卷。
这两个case有一个共同点都是ESXi的主机,iSCSI的访问协议,都是存储故障过,然后存储恢复正常以后,存储的物理环境发生过变化,等存储恢复正常后,再次加入到原来的环境,就出现了主机访问不到存储的情况。
这里介绍一下最基本的也就是上手第一件事情要做的就是确认iSCSI的连通性,就是网络是否通,如果网络不通,其他都是瞎扯了。当然导致主机无法访问不到存储的原因非常多,简单罗列可以是下面的内容:
1. 检查iSCSI网络配置
2. iSCSI目标和启动器配置
3. ESXi的路径发现与LUN映射
4. 存储的配置等
5. ESXi上的日志检查
6. Rescan存储设备
我们这里仅仅对第一部分,如何检查iSCSI的网络配置做个说明,有其他问题可以添加我们的vx StorageExpert做进一步的讨论。
检查网络连通性,从下面三个方面进行检查:
- 网络连通性:确保ESXi主机与Dell MD3600i之间的网络是连通的,使用
ping
命令确认ESXi主机能够访问MD3600i的iSCSI端口IP地址。 - MTU设置:如果使用了Jumbo Frame(通常MTU设为9000),需要确认ESXi和存储设备上都已正确配置MTU,并且中间网络设备(如交换机)也支持并启用了Jumbo Frame。
- 防火墙:确保没有防火墙阻挡iSCSI流量。默认情况下,iSCSI使用端口3260,检查ESXi和存储阵列间是否有阻塞。
下面就是具体的检查方法:
在ESXi主机上,通过命令行可以使用vmkping命令来测试网络连通性。ESXi没有传统的ping命令,而是使用vmkping专门来测试VMkernel端口的网络连通性,这是iSCSI等存储流量的关键通信路径。
以下是具体操作步骤:
1. 登录到ESXi主机的命令行
你可以通过SSH或直接通过ESXi主机的控制台访问命令行:
- 如果你还未启用SSH访问,可以通过vSphere Web Client启用:
- 在vSphere Web Client中,选择你的ESXi主机,进入**“配置” (Configure)**。
- 在**“服务” (Services)** 中找到SSH服务,点击“启动” (Start)。
- 使用SSH客户端(如PuTTY)连接到ESXi主机。
2. 使用vmkping命令测试连通性
使用vmkping命令来测试从ESXi主机到Dell MD3600i存储阵列的iSCSI端口的网络连通性。
例如,假设Dell MD3600i的iSCSI端口IP地址是192.168.1.100,你可以执行以下命令:
vmkping 192.168.1.100
如果网络配置正确,你应该看到类似以下输出:
PING 192.168.1.100 (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: icmp_seq=0 ttl=64 time=0.498 ms
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.476 ms
如果网络不连通,可能会看到超时或目标不可达的错误信息:
sendto() failed (No route to host)
3. 检查vmkping的VMkernel网络接口
如果简单的vmkping命令失败,你可能需要指定用于iSCSI的特定VMkernel接口来进行连通性测试。你可以先列出VMkernel接口:
esxcli network ip interface list
找到用于iSCSI的VMkernel接口名称(例如vmk1),然后使用该接口测试:
vmkping -I vmk1 192.168.1.100
这里,-I 指定了VMkernel接口。如果你的iSCSI流量绑定到特定的VMkernel端口,则需要通过这种方式测试。
4. 使用Jumbo Frame的连通性测试(如果启用)
如果你启用了Jumbo Frame(MTU 9000),你需要指定数据包大小来测试Jumbo Frame连通性:
vmkping -s 8972 192.168.1.100
这里的8972表示数据包大小,适用于Jumbo Frame(MTU 9000 = 8972 bytes payload + 28 bytes IP/ICMP header)。
5. 检查虚拟交换机和网络配置
如果ping仍然不通,可能需要检查ESXi的虚拟交换机和物理网卡配置,确保iSCSI网络的正确性。可以使用以下命令来查看:
esxcli network vswitch standard list
通过这些步骤,基本应该能够确认ESXi主机和存储之间的网络是否连通。