简介
linux多路径multipath, 允许将客户主机端与后端存储引擎或存储阵列之间的多个物理连接组合成一个虚拟设备, 这样做可以为您的存储提供更具弹性的连接(即断开的路径不会妨碍其他连接),或者聚合存储带宽以提高性能...本文梳理了路径故障时的内核和相关组件处理流程及源码分析, 如下图
多路径故障流程图
图片
fail_path路径故障简介
initiator与tgt创建连接时设置定时器, 连接启动时开启定时器, 参考命令...循环函数检测到该设备离线状态, 通过ioctl通知内核态, 内核态执行fail_path动作, 将路径标记为NULL
IO流程中检查到当前路径为NULL时, 重新选择其他路径下发IO
多路径关键源码分析...,因此 blk 层可以进行适当的初始化,例如启动超时计时器
trace_block_rq_issue(rq) -> 下发io到驱动, Linux下block层的监控工具blktrace, https...时就会选择的新的路径
choose_path_in_pg -> dm mpath:消除 IO 快速路径中自旋锁的使用,此提交的主要动机是提高大型 NUMA 系统上 DM 多路径的可扩展性,其中