[发明专利]一种SCST读写优化方法及系统有效
申请号: | 201710025358.3 | 申请日: | 2017-01-13 |
公开(公告)号: | CN106776046B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 刘树亮 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 scst 读写 优化 方法 系统 | ||
本申请公开了一种SCST读写优化方法及系统,该方法包括:在当前数据访问命令的执行过程中,当Target端获取到Initiator端发送的任一IO请求指令,则为该IO请求指令分配相应大小的内存空间,然后利用该内存空间对该IO请求指令进行响应;其中,数据访问命令为SCSI读命令或SCSI写命令。本申请在对数据访问命令执行的过程中,会为每一次IO传输过程分配相应的内存空间,从而在一次数据访问命令的执行过程中,进行了多次的内存空间分配工作,而不是一次性地为该数据访问命令的执行过程中所有的IO传输过程分配内存空间,这样能够有效地避免由于SCST自身限制所导致的内存分配失败情况的出现,由此,进一步提升了SCST读写性能。
技术领域
本发明涉及SCSI技术领域,特别涉及一种SCST读写优化方法及系统。
背景技术
SCSI(即Small Computer System Interface,小型计算机系统接口)是一种适用于计算机和智能设备之间的系统级接口的标准。
在SCSI标准所定义的读过程中,在Target端(即SCST)接收到SCSI的Read Command(即SCSI读命令)的时候会分多次传送IO数据,直到传送完毕所有Initiator端请求的读数据为止。
在SCSI标准所定义的写过程中,在Target端接收到SCSI的Write Command(即SCSI写命令)的时候首先分配一块内存供数据写入,分配完成之后返回XFER_RDY消息给Initiator端告知可以发送数据,返回的XFER_RDY消息中包含此次要求传送的写数据长度,然后Initiator端根据数据长度发送写数据到Target端,重复此过程,直到所有写数据传送完毕。
然而,SCST在执行读写命令的时候,是一次性分配传送所有IO所需要的内存空间,由于SCST本身有IO块大小的限制,所以当Initiator端所发送的SCSI Command要求更大数据块的IO读写时,就会出现内存分配失败的情况,这时Target端将会返回busy的状态,从而造成SCSI命令执行失败。Initiator端在等待一段时间之后会重新发送SCSI Command,直到达到Initiator端的最大重试次数,这时Initiator端会尝试各种方法恢复对逻辑卷LUN的访问,SCSI定义的Task Manager Function,包括ABTS,LUN Reset,Target Reset等,这样会造成性能严重下降。
综上所述可以看出,如何进一步提升SCST读写性能是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种SCST读写优化方法及系统,能够进一步提升SCST读写性能。其具体方案如下:
一种SCST读写优化方法,包括:
在当前数据访问命令的执行过程中,当Target端获取到Initiator端发送的任一IO请求指令,则为该IO请求指令分配相应大小的内存空间,然后利用该内存空间对该IO请求指令进行响应;
其中,所述数据访问命令为SCSI读命令或SCSI写命令。
可选的,所述为该IO请求指令分配相应大小的内存空间的过程,包括:
确定该IO请求指令中所请求的IO块的块大小,得到目标IO块大小;
确定与所述目标IO块大小相适应的内存空间大小,得到目标内存空间大小;
为该IO请求指令分配与所述目标内存空间大小相一致的内存空间。
可选的,所述确定该IO请求指令中所请求的IO块的块大小的过程,包括:
利用scst_alloc_space函数,对该IO请求指令中所请求的IO块的块大小进行确定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710025358.3/2.html,转载请声明来源钻瓜专利网。