存储空间直通:SMB 错误

Ob1*_*lan 6 hyper-v failovercluster storage-spaces windows-server-2016 smbclient

所以我们有了这个4 节点存储空间直通 (S2D) 集群,运行超过 1.5 年没有任何重大问题。操作系统为Windows Server 2016

  • 所有配置文件的防火墙关闭
  • 未安装防病毒软件,Windows Defender 关闭
  • Active Directory 委派不变
  • 没有报告网络基础设施发生变化
  • RDMA 在 1 年前被禁用,因为我们发现 NIC 不完全支持它

两天前,我们注意到集群事件日志中有很多或错误消息,并且集群上托管的所有 Hyper-V 虚拟机的备份作业都失败了(通过 VEEAM 制作)。

调查很快表明SMB 连接存在许多问题

4 台主机中的任何一台:

  • 可以ping通网络中的其他资源
  • 无法连接任何共享文件夹
  • NTP 同步失败net time \\server失败,也是w32tm /monitor

显然,文件共享见证也失败了,并且要报告域服务的一些问题......

我们尝试单独重新启动节点,重新启动后 SMB 连接就好了......几分钟/几小时,然后问题再次出现

对集群的影响以及文件共享见证离线,是我们无法轻松地在节点之间执行VM的实时迁移(随机成功)。不过,快速迁移就像一种魅力。由于无法进行 SMB 连接,我们无法将 VM 移动到另一个集群或独立主机。

我们担心如果节点失控,集群会失控。即使 VM 是稳定的,我们仍然无法执行备份(我们可以执行导出)。

你们中有人听说过 S2D 或 Microsoft 故障转移群集角色的问题吗?它也可能与集群本身无关......

如何找到此问题的根本原因?

以下是在集群角色和SMBCLient事件日志中找到的日志示例

从集群控制台:

群集网络名称资源“群集名称”在启用此节点上的网络名称时遇到错误。失败的原因是:“无法获得登录令牌”。

错误代码是“1311”。

您可以将网络名称资源脱机再联机重试。

ID 为 30803 的事件:

无法建立网络连接。

错误:{设备超时} %hs 上的指定 I/O 操作在超时期限到期之前没有完成。

服务器名称:server.domain.com

服务器地址:xxxx:445 连接类型:Wsk

指导:这表示底层网络或传输有问题,例如 TCP/IP,而不是 SMB。使用 iWARP RDMA 适配器时阻止 TCP 端口 445 或 TCP 端口 5445 的防火墙也可能导致此问题。

另一个,ID 30804 :

网络连接已断开。

服务器名称:\server.domain.com 服务器地址:xxxx:445 连接类型:Wsk

指导意见:这说明客户端与服务器的连接断开了。

使用 RDMA over Converged Ethernet (RoCE) 适配器时频繁、意外断开连接可能表示网络配置错误。RoCE 要求为 RoCE 网络上的每个主机、交换机和路由器配置优先流控制 (PFC)。不正确配置PFC会导致丢包、频繁断线和性能不佳。

Ob1*_*lan 2

我找到了解决方案,这是一件愚蠢的事情。主机有多个 NIC,用于对不同 VLAN 进行网络访问。一些 NIC 映射到虚拟交换机,其中一些与操作系统共享(“允许管理操作系统共享此网络适配器”)。

我注意到 SMB 数据包经常使用错误的接口 (DMZ),当然请求会被拒绝。

我用来识别 SMB 流量使用的错误路由的 Powershell 命令:

Find-NetRoute -RemoteIPAddress x.x.x.x
Run Code Online (Sandbox Code Playgroud)

(其中 xxxx 是网络上的远程资源)

这显示了 DMZ 接口,而不是 LAN 接口。删除DMZ vSwitch 上的“允许管理操作系统共享此网络适配器”为我解决了这个问题。

我仍然不明白这个集群如何在这样的配置下运行 1.5 年。但是现在问题已经解决了,FSW 和所有其他操作都运行良好。

希望这能有所帮助;)