第 32 卷 正 32 第 9 期 旭9 计算机工程 C om puter E ngineer ing 2006 年 5 月 M ay 2006 · 开发研究与设计技术 · 文 章 ■号t 1 00o _-3428(2006)09_一 o 23o _一 03 文 献 糟 }识 码 。 A 中 啊 分 类 号 。 TP393. 8 一个 L inux 多路径磁盘过滤驱动程序 谭麓安 ,朱立谷 ( 1. 北京理工大学计算机科学与工程系,北京 10008I ;2. 华中科技大学计算机科学学院,武汉 430074) 摘请求转发到磁盘设备 执行,由 路径选择算法将主机的负载均衡地分配到各路径上。当路径发生故障时由驱动程序将失败的I/ O 请求切换 到其它路径 ,屏蔽了路径故障。驱动程序利用多路径改善了主机的1/ 0 性能,提高了系统的町用性。 关■ 词:容错;高可用性:负载均衡;Linux 要:研究 Linux 系统中多路径磁盘过滤驱动程序的设计和实现。驱动程序将物理磁盘的多路径封装为一个虚拟没备。虚拟设备的 I/ O A M ulti-path D isk F ilter D r iv er for L inux T A N Y u ’a n . Z H U L igu ( 1. Dept, of C omputer Science and Engineering, Beijing Institute of Technology, Beijing 100081: 2. School of Com puter S cience, Huazho ng Un iversity o f S cie nce & T echno logy, W uhan 430074) [Abstract] A multi— path disk filter driver f o r Linux is designed and implemented to represent the plurality of data paths to the I/ O device as a single v irtual dev ic e. T he I/ O req uests for the v irtual dev ic e are redirec ted to selec ted d isk dev ices,and th e I/ O load i s distrib uted among mul tiple paths by the path selec tio n algorith m。 If one path fai ls, the inco mplete I/ O req uests are redirected to th e survi val path s SO the path failure is is olated. T he f i lter dri ver increases the data aCCeSS throu ghput and av ailabili ty by using multip le paths . [ K ey words] Fault tolerance; High availability; Load balance; Linux I/ O 路径是主机和 RAID 设备之间的数据传输路径, 只有 条 I/ O 路径时,如果任何一个元素发生故障,主机就不能 访问到存储系统, 应用程序就不能继续运行。 为提高可用性, 需要采用冗余配置,在主机和 RA ID 设备中建立两条或多条 并行的路径。在软件方面,必须在操作系统的存储架构中增 加一个SPD(Storage path driver)设备驱动程序, 完成负载均衡 和故障切换等功能。 该驱动程序将 1 / 0 分配到不同的路径 f=, 在路径故障时将 1 / 0 转移到其它路径。 文献【 1 J介绍了在 Linux 的 SCSI 中间层进行修改扩充的 种实现方法,它和操作系统代码紧密耦合,避免创建冗余 的磁盘没备 , 节约了内核空问。 但它依赖于具体的 Linux 内 核版本,在内核的 I/ O 处理过程中引入了较复杂的数据结构 和路径管理,不便于移植。