ESXi主机iscsi访问不到存储故障排查

ops/2024/10/24 5:45:25/

上周遇到两个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主机和存储之间的网络是否连通。


http://www.ppmy.cn/ops/128022.html

相关文章

perl统一修改文件前缀并排序

perl统一修改文件前缀并排序 如题,perl统一修改文件前缀并排序。 举例说明,修改*.txt文件,并排序。 当前目录下,有如下文件 a.txt b.txt fsjkd.txt ffsjk_tst.txt运行rename_prefix脚本后,输入的第一个参数为txt&…

九、pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover(悬停) 定义:发起交互的对象停留在可交互对象的交互区域。例如,当手触摸到物品表面(可交互区域)时,视为触发了Hover。 Grab(抓取) 概念&#xff…

室内定位论文整理-20241016

VINS-Mono: 一种稳健且灵活的单目视觉惯性状态估计器 研究问题 如何设计一个稳健且灵活的单目视觉惯性状态估计器,以解决机器人在动态环境中导航和定位的问题? 方法 VINS-Mono 使用单一相机与惯性测量单元(IMU)的数据进行联合处理。该方法结合了来自视觉输入的姿态信息…

【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目

背景及意义 车牌识别系统(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)进行处理的技术。车牌识别是现代智能交通系统中的重要组成部分之一&…

代码工艺:SQL 优化的细节

1. 巧用 limit 当出现深分页的时候,例如: select id, name, status, detail from product limit 100000, 30; 那么MySQL的执行方式为:一共需要查100030条数据,然后丢弃前面的100000条,只返回后面的30条数据&#xf…

【达梦数据库】两台或多台服务器之间免密登录设置-【dmdba用户】

目录 背景1、服务器A免密登录本机1.1、生成私钥(id_rsa)和公钥(id_rsa.pub)1.2、追加公钥到服务器A的密码登录权限管理文件1.3、结果验证 2、服务器A免密登录服务器B2.1、确认服务器B有目的文件夹2.2、服务器A的公钥复制到服务器B…

Python基础08

目录 1.Object-Oriented Programming 2.类 2.1类的定义 2.2实例化对象(构造函数) 2.3self 2.4cls 2.5实例变量(也叫属性) 2.6类属性 2.5初始化方法 2.7类方法 2.8静态方法 3.继承 3.1单继承 3.2多继承 3.3覆盖(Override) 1.Object-Oriented Programming 一切皆…

力扣每日一题3175. 找到连续赢 K 场比赛的第一位玩家

看到数据范围n是1e5, k是1e9就可以知道,这题目暴力模拟肯定会超时。 但我们看,在k比n大情况下,一轮循环下来肯定是没有赢家的,需要多轮。当然,我们肯定不可能去一轮一轮模拟,那我们怎么判断谁是赢家呢&…