一种分布式存储的多路径i/o传输方法

文档序号:9727095阅读:497来源:国知局
一种分布式存储的多路径i/o传输方法
【技术领域】
[0001 ]本发明属于数据存储技术领域,涉及一种数据传输方法,具体涉及一种分布式存储的多路径I /0传输方法。
【背景技术】
[0002]I/O路径技术是指位于主机和存储设备之间用于传输数据的技术。在I/O子系统中,单路径I/O传输错误是导致系统单点失效的根源,它难以满足新的I/O路径技术和现代存储对系统可用性和可靠的新要求;同时,在单条I/o路径中,数据只能在一条I/O通道中传输,成为性能的瓶颈。

【发明内容】

[0003]发明目的:本发明的目的是为了解决现有技术中单路径I/O传输错误而导致数据传输错误,提供了一种安全、可靠的分布式存储的多路径I/o传输方法。
[0004]技术方案:本发明所述的分布式存储的多路径I/O传输方法,其目的是这样实现的,
[0005]—种分布式存储的多路径I/O传输方法,其特征在于,包括以下步骤:
[0006]SO1:在分布式存储集群的每个节点上部署Target服务,把分布式存储集群上划分出的虚拟硬盘映射到客户端,在任一服务器上通过Initiator连接每个节点上的Target服务端口;
[0007]S02:在SCSI总线扫描时,当一个SCSI设备的UUID被检查出来后,所有已经被扫描过的SCSI设备就会搜索一个匹配的UUID,每扫到一个新的UUID,就加载到SCSI设备中;
[0008]S03:在SCSI中间层多路径中,块设备I/O请求的处理,首先被插入I/O请求队列中,然后进行路径选择,路径选择策略通过全局变量scsi_path_policy来控制,其控制方法为:当 scsi_payh_policy 为 SCSI_PATH_P0LICY_R0UND_R0BN 时,每个 SCSI 设备的 I/O 路径将会被分配到所有的可用的I/O请求的路径上;
[0009]S04: SCSI命令通过queuecommand()函数来处理,处理过的I/O其请求将按照完成的状态分为以下几类:
[0010]SUCCESS:1/O请求完成,没发送错误,I/O请求到达了磁盘;Scsi_f inish_command0函数完成最终的SCSI命令的I/O请求处理,并且向SCSI子系统的Upper-Level返回,
[0011]ADD_T0_MLQUEUE:表示I/O请求是以SCSIQUEUEFULL的状态完成的,这种情况下,SCSI命令将会通过scs i_queque_intert()函数来进行重试,直至出现SUCCESS状态。
[0012]有益效果:本发明所述的分布式存储的多路径I/O传输方法,与单路径I/O传输相比,具有以下优点:
[0013]1、单路径I/O传输错误是导致系统单点消息的根源,它难以满足新的I/O路径技术和现代存储对系统可用性和可靠的新要求;而启用互连多路径的I/O存储方式,能够增强存储系统的可用性和可靠性,减少由于单路径数据传输错误而出现的单点失效。
[0014]2、利用多路径I/O的存储方式还能很好的平衡系统的I/O负载,提高系统的吞吐率,提供比单路径传输更好的性能
[0015]多路径I/O技术旨在增强存储系统的可用性和可靠性,减少由于单路径数据传输错误而出现的单点失效;同时,能够更好的平衡系统的I/o负载,提高系统的吞吐率,提供比单路径更好的性能。
【具体实施方式】
[0016]为了加深对本发明的理解,下面将结合实施例对本发明作进一步详述,该实施例仅用于解释本发明,并不构成对本发明保护范围的限定。
[0017]—种分布式存储的多路径I/O传输方法,包括以下步骤:
[0018]SO1:在分布式存储集群的每个节点上部署Target服务,把分布式存储集群上划分出的虚拟硬盘映射到客户端,在任一服务器上通过Initiator连接每个节点上的Target服务端口;
[0019]S02:在SCSI总线扫描时,当一个SCSI设备的UUID被检查出来后,所有已经被扫描过的SCSI设备就会搜索一个匹配的UUID,每扫到一个新的UUID,就加载到SCSI设备中;
[0020]S03:在SCSI中间层多路径中,块设备I/O请求的处理,首先被插入I/O请求队列中,然后进行路径选择,路径选择策略通过全局变量scsi_path_policy来控制,其控制方法为:当 scsi_payh_policy 为 SCSI_PATH_P0LICY_R0UND_R0BN 时,每个 SCSI 设备的 I/O 路径将会被分配到所有的可用的I/O请求的路径上;
[0021 ] S04:SCSI命令通过queuecommand()函数来处理,处理过的I/O其请求将按照完成的状态分为以下几类:
[0022]SUCCESS:1/O请求完成,没发送错误,I/O请求到达了磁盘;Scsi_f inish_command0函数完成最终的SCSI命令的I/O请求处理,并且向SCSI子系统的Upper-Level返回,
[0023]ADD_T0_MLQUEUE:表示1/0请求是以SCSIQUEUEFULL的状态完成的,这种情况下,SCSI命令将会通过scs i_queque_intert()函数来进行重试,直至出现SUCCESS状态。
[0024]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种分布式存储的多路径I/O传输方法,其特征在于,包括以下步骤: SO1:在分布式存储集群的每个节点上部署Target服务,把分布式存储集群上划分出的虚拟硬盘映射到客户端,在任一服务器上通过Initiator连接每个节点上的Target服务端P; S02:扫描SCSI总线,当一个SCSI设备的UUID被检查出来后,所有已经被扫描过的SCSI设备就会搜索一个匹配的UUID,每扫到一个新的UUID,就加载到SCSI设备中; 503:在SCSI中间层多路径中,块设备I/O请求的处理,首先被插入I/O请求队列中,然后进行路径选择,路径选择策略通过全局变量scsi_path_policy来控制,其控制方法为:当scsi_payh_policy 为 SCSI_PATH_POLICY_ROUND_ROBN 时,每个 SCSI 设备的 I/O 路径将分配到所有的可用的I/O请求的路径上; 504: SCSI命令通过queuecommand()函数来处理,处理过的I/O其请求将按照完成的状态分为: SUCCESS: I/O请求完成,没发送错误,I/O请求到达了磁盘;Scsi_f inish_command()函数完成最终的SCSI命令的I/O请求处理,并且向SCSI子系统的Upper-Level返回, ADD_TO_MLQUEUE:表示I/O请求是以SCSIQUEUEFULL的状态完成的,这种情况下,SCSI命令将会通过scs i_queque_intert ()函数来进行重试,直至出现SUCCESS状态。
【专利摘要】本发明属于数据存储技术领域,公开了一种分布式存储的多路径I/O传输方法,在分布式存储集群的每个节点上部署Target服务,把分布式存储集群上划分出的虚拟硬盘映射到客户端,在任一服务器上通过Initiator连接每个节点上的Target服务端口。多路径I/O技术旨在增强存储系统的可用性和可靠性,减少由于单路径数据传输错误而出现的单点失效;同时,能够更好的平衡系统的I/O负载,提高系统的吞吐率,提供比单路径更好的性能。
【IPC分类】G06F3/06
【公开号】CN105487813
【申请号】CN201510689437
【发明人】柏广宇, 谢宾铭, 李东辉, 陈艳, 俞俊, 吴小志, 朱广新, 郑磊, 程聪
【申请人】国家电网公司, 南京南瑞集团公司, 国网上海市电力公司, 南京南瑞集团公司信息系统集成分公司
【公开日】2016年4月13日
【申请日】2015年10月21日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1