基于fc-san存储设备的scsi命令优化方法

文档序号:7880391阅读:563来源:国知局
专利名称:基于fc-san存储设备的scsi命令优化方法
技术领域
基于FC-SAN存储设备的SCSI命令优化方法属于FC-SAN即光纤通道——存储区域网络技术领域。
背景技术
由于光纤通道的高传输速率、支持多种传输协议、基于块I/O存取的低开销、远距离存取等特点,基于光纤通道的存储区域网络(SAN)存储系统已经成为网络存储系统的主流。特别是多用户并行存取、设备共享、数据共享等特点,光纤通道SAN(FC-SAN)存储系统需要实现高可扩展性、高性能等特征,并保证多用户的I/O请求响应时间等存取性能需求。
在多用户并行环境下,用户可以共享任意的FC-SAN存储设备,以及其中的各种数据。不仅存在由于客户端的增加导致工作负载流增加的问题,而且可能存在多个用户在一段时间内集中存取同一个磁盘或同一块数据等而出现的磁盘热点现象。
因此如何保证FC-SAN存储系统的I/O存取性能是多用户并行环境下的重要问题。根据我们的性能测试结果,目前的FC-SAN存储系统的性能瓶径主要存在于SAN存储设备。但还未见基于FC-SAN存储设备的在并行用户环境下根据SCSI命令流特征的细粒度优化方法,我们提出的方法充分考虑了并行环境下的SCSI命令流特征,有效地改进了系统的I/O性能。

发明内容
本发明的目的在于提供一种着眼于解决存储设备一侧的小型计算机系统接口即SCSI命令处理复杂低效问题的基于FC-SAN存储设备的SCSI命令优化方法。
本发明的特征在于它是由存储于光纤通道——存储区域设备即FC-SAN中的存储节点控制机中的小型计算机系统接口即SCSI目标模拟器针对专用IO处理机来执行的。它依次含有如下步骤(1)设定队列命令的数据结构,它依次含有操作命令int Top操作设备int Tlun操作地址int Taddr等待时间int Ttime执行状态int Tcmdstatus
后继命令指针struct TSCThread Node*next其中,TCT是发送器起始码,Node是数据结构接口函数优化条件判断函数,重复命令判断和处理函数,超时判断和处理函数,近邻命令判断和处理函数,(2)依次按如下步骤执行(2.1)用含有队列命令参数的优化条件判断函数判断是否可以优化,若可以优化,依次按以下步骤执行,(2.2)用重复命令判断函数判断是否存在多个由不同用户发送的或者同一个用户发送的重复的SCSI命令,若存在,则处理线程只调度该SCSI命令用相应的合并函数处理一次,而把其它重复的命令删除;否则,转入下一步骤。
(2.3)用超时判断函数判断是否在队列命令参数中的等待时间是否大于处理时间要求的情况,若存在,则处理线程根据它的开始地址和偏移用超时处理函数把这些命令放到该SCSI命令的后面延迟处理,否则,转入下一步骤。
(2.4)用临近命令判断函数判断每个SCSI命令队列中的SCSI命令在存取地址上是否存在相关性,即访问同一设备地址临近,若存在,处理线程用相应的处理函数将多个地址相关性的SCSI命令合并成一个使用连续地址的SCSI命令,其他命令删除。
若以优化前的吞吐量数据为标准进行比较,无论对于视频点拨系统还是中长期天气预报处理系统,其优化后的吞吐量均有显著增长。


图1光纤存储网络的拓扑2存储节点控制机THMSNSc102在存储设备中的位置3SAN存储系统的完整I/O路径图4SCSI目标模拟器结构示意5本发明所述的优化方法的程序流程6SCSI命令的队列结构示意图具体实施方式
图1~图4是专用I/O处理机THMSNSc102在FC-SAN存储区域网络中的位置。
本方法实现在专用I/O处理机THMSNSc102即在存储节点控制机上。其硬件环境和操作系统如下

SCSI命令的队列结构如图6所示本方法使用如下操作和函数(参数用图6结构中定义示意)优化条件判断函数int scsi_target_cmd_switch(TSCThreadQueue*ttg,TSCThreadLength tl),重复命令判断函数Tcompare(ttg->Top,ttg->Tlun,ttg->Taddr,i),重复命令合并函数scsi_target_cmd_combin(ttg,i)超时判断ttg->Ttime>Tmaxtime Tmaxtime为程序设定的最大处理时间超时处理函数scsi_target_cmd_timelg(ttg,i)近邻命令判断函数Tnearby(ttg->Top,ttg->Tlun)近邻命令处理函数scsi_target_cmd_nearby(ttg,i)SCSI目标模拟器是一个集中的I/O请求控制和处理位置,通过SCSI命令队列中的每个SCSI命令,可以清楚地识别所有发送SCSI命令的客户端、存取的数据块的位置和块大小等详细信息。它按图5所示的程序流程去执行本发明所述的方法。
基于FC-SAN存储设备的SCSI命令优化方法的主要优点如下1、考虑到多个用户端存取相邻数据块的特点,该方法进行存取地址合并处理,将多个SCSI命令合并为一个SCSI命令,有效地减少了磁盘寻道等物理处理时间,提高了I/O处理性能。
2、该方法考虑了SCSI命令的I/O存取性能和公平性原则,使所有的SCSI命令能够有效的处理。
3、该方法充分考虑了FC-SAN存储设备缓存CACHE的特点,一方面有效地利用CACHE机制,一方面又有效地解决了大数据块的读写问题。
4、该方法能够识别同一命令队列中来自不同客户端的相同特征的SCSI命令,并进行一次性处理,减少了N-1次操作。
5、该方法考虑了磁盘存取的特征,尽可能地减少了磁盘寻道等物理操作次数。同时还采用延迟方法解决了HOT SPOT问题,有效地改进了I/O存取性能。
在相同的测试环境下,采用基于FC-SAN存储设备的SCSI命令优化方法的专用IO处理机THMSNSc102,能够有效地提高10-20%左右的FC-SAN存储系统的性能,而且和客户端用户数和工作负载存在较大的关系1)如果在大规模的存储系统的环境下,该方法能够更加有效的提高系统的I/O存取性能;2)如果用户端的工作负载存在较大的相关性,则系统性能改进更加明显。该方法另一个显著的特点是和体系结构及具体实现无关,能够应用在不同的SCSI目标模拟器体系结构中。
本发明(专用IO处理机THMSNSc102)已经在由清华大学自行研究开发的千亿次并行计算机上通过测试,并在此基础上进行视频点播系统、中长期天气预报数据处理系统等应用,采用上述方法后性能均有明显提高。
以优化前的吞吐量数据为标准值100%进行比较

权利要求
1基于FC-SAN存储设备的SCSI命令优化方法,其特征在于它是由存储于光纤通道——存储区域设备即FC-SAN中的存储节点控制机中的小型计算机系统接口即SCSI目标模拟器针对专用IO处理机来执行的。它依次含有如下步骤(1)设定队列命令的数据结构,它依次含有操作命令int Top操作设备int Tlun操作地址int Taddr等待时间int Ttime执行状态int Tcmdstatus后继命令指针struct TSCThread Node*next其中,TCT是发送器起始码,Node是数据结构接口函数优化条件判断函数,重复命令判断和处理函数,超时判断和处理函数,近邻命令判断和处理函数,(2)依次按如下步骤执行(2.1)用含有队列命令参数的优化条件判断函数判断是否可以优化,若可以优化,依次按以下步骤执行,(2.2)用重复命令判断函数判断是否存在多个由不同用户发送的或者同一个用户发送的重复的SCSI命令,若存在,则处理线程只调度该SCSI命令用相应的合并函数处理一次,而把其它重复的命令删除;否则,转入下一步骤;(2.3)用超时判断函数判断是否在队列命令参数中的等待时间是否大于处理时间要求的情况,若存在,则处理线程根据它的开始地址和偏移用超时处理函数把这些命令放到该SCSI命令的后面延迟处理,否则,转入下一步骤;(2.4)用临近命令判断函数判断每个SCSI命令队列中的SCSI命令在存取地址上是否存在相关性,即访问同一设备地址临近,若存在,处理线程用相应的处理函数将多个地址相关性的SCSI命令合并成一个使用连续地址的SCSI命令,其他命令删除。
全文摘要
基于FC-SAN存储设备的SCSI命令优化方法属于FC-SAN即光纤通道——存储区域网络技术领域,其特征在于它是针对专用I/O处理机的,它针对队列中的操作设备、操作命令、操作地址和等待时间,对每一个SCSI队列命令中的SCSI命令进行判断是否存在由不同用户发送的或者同一用户发送的重复命令、是否存在SCSI命令的等待时间大于程序规定的最大时间、是否存在这些SCSI命令发往同一设备且地址又近邻的情况,分别进行重复命令删除处理、超时命令延迟处理近邻命令合并处理的操作,以解决处理SCSI命令时的延缓繁杂问题。经过优化后,吞吐量可以得到明显增长。
文档编号H04B10/08GK1543092SQ20031010319
公开日2004年11月3日 申请日期2003年11月7日 优先权日2003年11月7日
发明者舒继武, 郑纬民, 付长冬, 徐渐 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1