PowerFlex SDS 在无网络问题的情况下关闭套接字
摘要: SDS 报告套接字关闭,没有任何网络事件或网络问题的证据。
症状
场景
SDS 报告具有由远程进程(SDC、SDS、MDM)关闭的套接字,并且未观察到 NIC 关闭事件、丢帧或数据包丢失。
症状
事件日志报告 SDS 连接丢失(分离或重新连接):
2017-11-11 16:52:12.101 SDS_RECONNECTED INFO SDS: xyz_d35 (ID 67211111110089) reconnected 2017-11-11 16:52:13.690 MDM_DATA_FAILED CRITICAL The system is now in DATA FAILURE state. Some data is unavailable. 2017-11-11 16:52:15.791 MDM_DATA_DEGRADED ERROR The system is now in DEGRADED state.
在此之前,我们在 SDS 跟踪中看到如下错误。
SDS 尝试发送,并且花了 >1 秒响应:
11/11 16:52:04.527408 0x7ff0b19eaeb0:contNet_OscillationNotif:01720: Con 672cb111110099 - Oscillation of type 5 (RPC_LINGERED_1SEC) reported
由于未收到我们发送的较低级别 keepalive,与对等节点的插槽已从另一端关闭:
11/11 16:52:06.241105 0x7ff0b19e1eb0:contNet_OscillationNotif:01720: Con a71d2b5d00000078 - Oscillation of type 1 (SOCKET_DOWN) reported
另一个实例如下所示:
11/11 16:52:06.241224 0x7ff0b19e1eb0:contNet_OscillationNotif:01720: Con a71d2b3c00000057 - Oscillation of type 2 (IO_ERROR) reported
其他指标:
迭代
次数 ScaleIO 的较低级别网络 keepalive 计时器以迭代为单位,时长为 100 毫秒。
MDM-SDS> 超时是 20 次迭代或 2 秒,而 MDM-MDM keepalive 超时是 3 次迭代或 300 毫秒。
超过 20 次迭代:
11/11 16:52:11.685281 0x7ff752d1beb0:netPath_IsKaNeeded:01858: :: Connected Live CLIENT path 0x7ff6e2192a00 of portal 0x7ff6e2192900 net 0x7ff7480e1110 socket 210 inflights 0 didn't receive message for 20 iterations from 10.124.162.109:7072. Marking as down
插槽关闭这些跟踪打印指示插槽何时关闭:
11/11 16:52:09.787793 0x7ff752cf7eb0:tgtMgr_TgtOscCB:07696: Con 672cba7400000089 Network address 10.124.130.109 - Oscillation of type SOCKET_DOWN reported 11/11 16:52:11.685290 0x7ff752d1beb0:tgtMgr_TgtOscCB:07696: Con 672cba7400000089 Network address 10.124.162.109 - Oscillation of type RCV_KA_DISCONNECT reported 11/11 16:52:11.685308 0x7ff752cf7eb0:tgtMgr_TgtOscCB:07696: Con 672cba7400000089 Network address 10.124.162.109 - Oscillation of type SOCKET_DOWN reported
此打印表示 SDS 的最后一个插槽已关闭,此时 SDS 被视为已断开连接:
11/11 16:52:11.685319 0x7ff752cf7eb0:tgtMgr_TgtDisconnectCB:07818: Tgt: 672cba7400000089 ConId: 672cba7400000089
MDM 将发出 addmdm 命令以使 SDS 重新连接。
IO 故障被阻止我们知道
,当 SDS 因无法访问 MDM 而拒绝 IO 时,会发生IO_FAULT_BLOCKED,但此信息不完整。
SDS 每秒向 MDM 发送一次 keepalive,如果 MDM 在 5 秒内未收到此消息,则 SDS 被视为超时并标记为分离。
MDM 每秒向 SDS 发送一条“继续工作”消息。当 SDS 在 5 秒内未收到此消息时,它会拒绝 IO,并显示IO_FAULT_BLOCKED:
11/11 16:52:12.007045 0x7ff0b0cdfeb0:ioh_NewRequest:05490: Write to comb f778038007f - Done rc is IO_FAULT_BLOCKED (Lba 6721528 8), volume 6e1a2f4a0000075d (dit) 11/11 16:52:12.008825 0x7ff0b0ec5eb0:ioh_NewRequest:05490: Write to comb f78803903fc - Done rc is IO_FAULT_BLOCKED (Lba 5031040 6), volume 6e1a2f4c0000075f (dit) 11/11 16:52:12.017262 0x7ff0b26daeb0:ioh_NewRequest:05490: Write to comb f768037003e - Done rc is IO_FAULT_BLOCKED (Lba 15106144 16), volume 6e1a2f490000075c (dit)
影响
SDS 连接丢失
在data_degraded状态或即时维护模式下,这可能会导致 DU。
原因
在此示例情况下,IO失败的原因是(5 s) SDS租约尚未到期,但(2)较低级别的网络超时已到期。
根本原因是以下一个或多个原因:
1- TCP/网络问题
A- 这可能表现为 TCP 重新传输,这表明存在硬件/配置问题。(线缆、NIC、交换机问题等)如
sar -n ETCP 1
其输出为:
Linux 3.10.0-693.5.2.el7.x86_64 (SIO-DCOE-96O-3) 12/13/2017 _x86_64_ (48 CPU) 04:33:44 PM atmptf/s estres/s retrans/s isegerr/s orsts/s 04:33:45 PM 0.00 0.00 50.00 0.00 0.00 04:33:46 PM 2.00 0.00 75.00 0.00 0.00 04:33:47 PM 0.00 0.00 223.00 0.00 0.00 04:33:48 PM 0.00 0.00 106.00 0.00 0.00 04:33:49 PM 2.00 0.00 58.00 0.00 0.00 04:33:50 PM 0.00 0.00 5.00 0.00 0.00 04:33:51 PM 0.00 0.00 7.00 0.00 0.00 04:33:52 PM 2.00 0.00 2.00 0.00 0.00 04:33:53 PM 0.00 0.00 1.00 0.00 0.00 ^C 04:33:53 PM 0.00 0.00 0.00 0.00 0.00 Average: 0.65 0.00 99.00 0.00 0.00
请参阅:
- 绿色 = 个位数/秒
- 黄色 = 高两位数,高达 50/s
- 红色 = >50/s
B-对于较旧的 Linux 发行版,例如 SVM 上的 SusE 11 SP3,可以使用以下命令监视网络重新传输:
watch -d -n 2 "netstat -s |grep retrans"
输出如下,突出显示在上一个间隔内更新的字符:
Every 2.0s: netstat -s |grep retrans Wed Dec 13 09:55:10 2017
1244070 segments retransmited
2- CPU 问题,进程不足。
这表现为每个 SIO 组件的跟踪同时暂停,在恢复时,许多套接字作为跟踪中的第一行关闭。
LIA、SDS、MDM/TB、SDC/messages 文件显示了差距。
例如,LIA 跟踪显示 LIA→SDS 套接字在 3 秒(30 次迭代 x 100 毫秒)超时后关闭:
11/11 16:52:11.597227 0x7f44c41c6eb0:netPath_IsKaNeeded:01858: :: Connected Live SERVER path 0x7f44c4195690 of portal 0x7f44c4192bb0 net 0x83b040 socket 8 inflights 0 didn't receive message for 30 iterations from 127.0.0.1:43228. Marking as down 11/11 16:52:12.031195 0x7f44c419eeb0:liaNet_DisconnectedNotif:01553: Con aed disconnected 11/11 16:52:12.158383 0x7f44c419eeb0:liaNet_ConnectedNotif:01483: Con aed connected
3-也许我们在SIO的某个地方有一个错误。可能是非网络线程占用了 CPU,并且不允许其他内容运行,等等。
解决方案
解决方法
无常规解决方法
受影响的版本
全部
已修复问题的版本
N/A