我正在尝试在后端同一数据中心的两台服务器之间复制(使用 rsync 约 7TB 的数据),它使用 EMC VMAX3
复制约 30-40GB 的数据后,多路径开始失败
Dec 15 01:57:53 test.example.com multipathd: 360000970000196801239533037303434: Recovered to normal mode
Dec 15 01:57:53 test.example.com multipathd: 360000970000196801239533037303434: remaining active paths: 1
Dec 15 01:57:53 test.example.com kernel: sd 1:0:2:20: [sdeu] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[root@test log]# multipath -ll |grep -i fail
|- 1:0:0:15 sdq 65:0 failed ready running
- 3:0:0:15 sdai 66:32 failed ready running
我们使用默认的 multipath.conf
HBA driver version 8.07.00.26.06.8-k
HBA model QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter
OS: CentOS 64-bit/2.6.32-642.6.2.el6.x86_64
Hardware:Intel/HP ProLiant DL380 Gen9
已验证此解决方案并与 EMC 检查一切看起来都不错https://access.redhat.com/solutions/438403
更多信息
- 网络侧没有丢弃/错误数据包。
- 使用 noatime、nodiratime 挂载文件系统
- 文件系统 ext4(已经尝试过 xfs 但同样的错误)
- LVM 处于条带模式(以线性选项开始,然后转换为条带)
已禁用 THP
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
- 每当多路径启动失败进程进入 D 状态
- 系统固件升级
- 尝试使用最新版本的 qlogic 驱动程序
- 尝试使用不同的调度程序(noop、deadline、cfq)
- 尝试使用不同的调整配置文件(企业存储)
发行期间收集的 Vmcore
我可以在发布期间收集 vmcore
KERNEL: /usr/lib/debug/lib/modules/2.6.32-642.6.2.el6.x86_64/vmlinux
DUMPFILE: vmcore [PARTIAL DUMP]
CPUS: 36
DATE: Fri Dec 16 00:11:26 2016
UPTIME: 01:48:57
LOAD AVERAGE: 0.41, 0.49, 0.60
TASKS: 1238
NODENAME: test.example.com
RELEASE: 2.6.32-642.6.2.el6.x86_64
VERSION: #1 SMP Wed Oct 26 06:52:09 UTC 2016
MACHINE: x86_64 (2297 Mhz)
MEMORY: 511.9 GB
PANIC: "BUG: unable to handle kernel NULL pointer dereference at 0000000000000018"
PID: 15840
COMMAND: "kjournald"
TASK: ffff884023446ab0 [THREAD_INFO: ffff88103def4000]
CPU: 2
STATE: TASK_RUNNING (PANIC)
在 qlogic sid 上启用调试模式后
qla2xxx [0000:0b:00.0]-3822:5: FCP command status: 0x2-0x0 (0x70000) nexus=5:1:0 portid=1f0160 oxid=0x800 cdb=2a200996238000038000 len=0x70000 rsp_info=0x0 resid=0x0 fw_resid=0x0 sp=ffff882189d42580 cp=ffff88276d249480.
qla2xxx [0000:84:00.0]-3822:7: FCP command status: 0x2-0x0 (0x70000) nexus=7:0:3 portid=450000 oxid=0x4de cdb=2a20098a5b0000010000 len=0x20000 rsp_info=0x0 resid=0x0 fw_resid=0x0 sp=ffff882189d421c0 cp=ffff8880237e0880.
这是HP ProLiant DL380 Gen9服务器。相当标准的企业级服务器。
你能给我有关服务器固件版本的信息吗?
是否实际安装了 EMC PowerPath?如果是这样,请查看此处。
您是否安装了 HP Management Agents?如果是这样,您是否有能力发布
hplog -v
.您在 ILO4 日志中看到了什么吗?国际劳工组织是无障碍的吗?
您能描述一下系统插槽中安装的所有 PCIe 卡吗?
对于特定于 RHEL6 的调优,我强烈推荐 XFS,运行
tuned-adm profile enterprise-storage
并确保您的文件系统已挂载nobarrier
(调优的配置文件应该可以处理)。对于卷,请确保您使用的是
dm
(多路径)设备而不是/dev/sdX
. 见:https ://access.redhat.com/solutions/1212233查看您目前提供的内容以及Redhat 支持站点上列出的检查(以及此处的描述),我不能排除 HBA 故障或 PCIe 转接卡问题的可能性。此外,VMAX 端存在问题的可能性很小。
你能换个PCIe插槽再试一次吗?可以换卡再试试吗?
HBA 上的固件是最新的吗?这是2016 年 12 月的最新包。
在我看来,这就像您的一个 SFP 发生了软故障......在您进行大型复制时,查看您的存储交换机端口上的错误。
我最近遇到了类似的问题,一切看起来都很棒。服务器供应商签署了他们的东西,存储供应商说他们的东西看起来不错,发誓 SFP 都很好...... SFP 仍然显示为正常运行,直到通过 MPIO 接口发送大量数据并且在存储交换机端口将开始记录。
我不得不用新的光缆替换所有的光缆,然后用我手头的备件切换 SFP,以向供应商证明 SFP 是坏的,即使它看起来还不错。
我知道,如果您将更改/etc/sysconfig/mkinitrd/multipath MULTIPATH= NO on MULTIPATH= YES和文件 /etc/multipath.conf - 接下来评论:
黑名单 {devnode "*"}
开启自动加载:
chkconfig 多路径开启
开启模块下载:
modprobe dm-多路径
modprobe dm-round-robin
在 autocfg 上:
多路径-v2
重新加载服务器,厚脸皮:
lsmod | grep dm_
观看多路径:
多路径 -ll
终于问题解决了
错误:技术预览:可能不完全支持 DIF/DIX 支持。
在发布期间,我经常在 dmesg 中看到此消息,并继续忽略此消息
在进一步调试中,我发现内核处于污染状态
根据红帽
当我们使用 EMC 时,我们决定禁用此功能并成功了