AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 821275
Accepted
Prashant Lakhera
Prashant Lakhera
Asked: 2016-12-17 21:13:15 +0800 CST2016-12-17 21:13:15 +0800 CST 2016-12-17 21:13:15 +0800 CST

光纤多路径失败:结果:hostbyte=DID_ERROR driverbyte=DRIVER_OK

  • 772

我正在尝试在后端同一数据中心的两台服务器之间复制(使用 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.
hardware storage centos6 multipath
  • 4 4 个回答
  • 9529 Views

4 个回答

  • Voted
  1. ewwhite
    2017-01-06T06:01:49+08:002017-01-06T06:01:49+08:00

    这是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 月的最新包。

    固件 6.07.02 BIOS 3.21

    DID_ERROR 通常表示驱动程序软件通过从 HBA 返回的数据中的异常检测到某种类型的硬件错误。

    存储子系统中存在硬件或基于 san 的问题,因此接收到的光纤通道响应帧包含驱动程序无法使用或协调的无效或冲突信息。

    请检查系统硬件、切换错误计数器等,看看是否有任何迹象表明问题可能出在哪里。最有可能的候选者是 HBA 本身。

    • 4
  2. Dre
    2017-01-06T15:20:35+08:002017-01-06T15:20:35+08:00

    在我看来,这就像您的一个 SFP 发生了软故障......在您进行大型复制时,查看您的存储交换机端口上的错误。

    我最近遇到了类似的问题,一切看起来都很棒。服务器供应商签署了他们的东西,存储供应商说他们的东西看起来不错,发誓 SFP 都很好...... SFP 仍然显示为正常运行,直到通过 MPIO 接口发送大量数据并且在存储交换机端口将开始记录。

    我不得不用新的光缆替换所有的光缆,然后用我手头的备件切换 SFP,以向供应商证明 SFP 是坏的,即使它看起来还不错。

    • 4
  3. Net Runner
    2017-01-06T03:50:33+08:002017-01-06T03:50:33+08:00

    我知道,如果您将更改/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

    • 2
  4. Best Answer
    Prashant Lakhera
    2017-01-17T13:11:15+08:002017-01-17T13:11:15+08:00

    终于问题解决了

    错误:技术预览:可能不完全支持 DIF/DIX 支持。

    在发布期间,我经常在 dmesg 中看到此消息,并继续忽略此消息

    在进一步调试中,我发现内核处于污染状态

     cat /proc/sys/kernel/tainted **So it's a combination of  TAINT_TECH_PREVIEW and TAINT_WARN**
     536871424
    
     lsmod |egrep -i "dif|dix" 
     crc_t10dif              1209  1 sd_mod
    
     modinfo crc_t10dif
     filename:       /lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/lib/crc-t10dif.ko
     softdep:        pre: crct10dif
     license:        GPL
     description:    T10 DIF CRC calculation
     srcversion:     52BC47DEA6DD58B87A2D9C1
     depends:        
     vermagic:       2.6.32-642.6.2.el6.x86_64 SMP mod_unload modversions
    

    根据红帽

    DIF 是最近添加到 SCSI 标准中的一项新功能。它将常用的 512 字节磁盘块的大小从 512 字节增加到 520 字节。额外的字节包括数据完整性字段 (DIF)。基本思想是 HBA 将在写入时为数据块计算校验和值,并将其存储在 DIF 中。存储设备将在接收时确认校验和,并存储数据和校验和。读取时,存储设备和接收 HBA 将检查校验和。

    数据完整性扩展 (DIX) 允许此检查向上移动堆栈:应用程序计算校验和并将其传递给 HBA,以附加到 512 字节数据块。这提供了完整的端到端数据完整性检查

    一些供应商采用名称保护信息 (PI) 来指代 DIF/DIX 功能。Linux 上的 DIF/DIX 存在一个困难 - 内存管理系统可能会在数据缓冲区排队等待写入时更改它。如果它这样做了,那么内存管理系统必须记住在 I/O 成功后将该页面标记为脏。如果内存管理系统在计算完校验和之后改变了缓冲区中的数据,但在写入完成之前,那么校验和测试将失败,写入将失败,文件系统将变为只读,或者类似的失败发生。

    因此,Red Hat Enterprise Linux 6 的用户应该注意以下几点: DIF/DIX 硬件校验和功能只能用于专门发出 O_DIRECT I/O 的应用程序。这些应用程序可能使用原始块设备或 O_DIRECT 模式的 XFS 文件系统。(XFS 是唯一在执行某些分配操作时不回退到缓冲 IO 的文件系统)。只有设计用于 O_DIRECT I/O 和 DIF/DIX 硬件的应用程序才能启用此功能。

    DIF/DIX 是 RHEL 6.0 中的技术预览。目前只有两种驱动程序/hba 组合具有此支持:Emulex lpfc 和 LSI mpt2sas。只有少数存储供应商支持它:Netapp Engenio FC RAID 阵列和某些 Hitachi SAS 磁盘。我们预计未来会有更多的存储供应商支持此功能。

    当我们使用 EMC 时,我们决定禁用此功能并成功了

       cat /etc/modprobe.d/qla2xxx.conf
       options qla2xxx ql2xenabledif=0 ql2xenablehba_err_chk=0
       Back up existing initramfs:  cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
       Rebuild initramfs:  dracut -f -v
       Verify that /etc/modprobe.d/qla2xxx.conf is the same as the one in initramfs (time and size should be the same):     lsinitrd | grep qla2xxx.conf; ls -al /etc/modprobe.d/qla2xxx.conf
    
    • 1

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 总大小(磁盘)与总大小(媒体)

  • 如何监控系统在哪里写/读磁盘?[关闭]

  • IP-KVM(在我的例子中是 ADDER Ipeps):轻松防火墙穿越

  • 非品牌笔记本电池?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve