一种对存储阵列系统的性能进行仿真的方法及装置制造方法及图纸

技术编号:9718889 阅读:126 留言:0更新日期:2014-02-27 05:42
本发明专利技术公开了一种对存储阵列系统的性能进行仿真的方法及装置,属于计算机领域。所述方法包括:接收IO请求消息,所述IO请求消息中至少携带所述IO请求消息访问的逻辑地址;根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块;根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,以实现对所述存储阵列系统的性能进行仿真。所述装置包括:接收模块、查找模块和读取或写入模块。本发明专利技术对该控制器和存储介质阵列都进行仿真,提高了对该存储阵列系统进行仿真的仿真度。

【技术实现步骤摘要】
一种对存储阵列系统的性能进行仿真的方法及装置
本专利技术涉及计算机领域,特别涉及一种对存储阵列系统的性能进行仿真的方法及装置。
技术介绍
随着海量数据存储的时代到来,存储数据的存储阵列系统会越来越复杂,当对该存储阵列系统的参数进行调整或者对该存储阵列系统重新部署时都要进行测试,而测试的周期较长,规模较大,成本较高,所以对存储阵列系统的性能进行仿真的方法受到了广泛的关注。其中,存储阵列系统包括控制器阵列和存储介质阵列,存储介质阵列包括硬盘,现有技术对该硬盘进行仿真,例如,卡梅隆大学的disksim软件是一个高效、准确和高度可配置的磁盘系统模拟器。由于控制器阵列是影响存储阵列系统性能的最大因素,而现有技术只是简单地对该存储介质阵列包括的硬盘进行仿真,并没有对该存储阵列系统包括的控制器阵列进行仿真,所以现有技术对该存储阵列系统的性能进行仿真的仿真度较低。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种对存储阵列系统的性能进行仿真的方法及装置。所述技术方案如下:第一方面,提供了一种对存储阵列系统的性能进行仿真的方法,所述方法包括:接收输入输出IO请求消息,所述IO请求消息中至少携带所述IO请求消息访问的逻辑地址;根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块;根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,以实现对所述存储阵列系统的性能进行仿真。结合第一方面,在上述第一方面的第一种可能的实现方式中,所述根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块,包括:将接收所述IO请求消息的系统性能模块确定为当前系统性能模块;判断所述当前系统性能模块是否为所述控制器阵列包括的缓存模块;如果是,则将所述当前系统性能模块确定为查找的缓存模块;如果否,则根据预设的消息路径和所述当前系统性能模块的路由规则,将所述IO请求消息转发到所述消息路径包括的下一个系统性能模块,返回判断所述当前系统性能模块是否为所述控制器阵列包括的缓存模块。结合第一方面,在上述第一方面的第二种可能的实现方式中,如果所述IO请求消息为写请求消息,则所述IO请求消息中还携带待写入的数据,相应地,所述根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,包括:如果所述IO请求消息为读请求消息,则根据所述逻辑地址从所述缓存模块中读取对应的数据,并返回IO读响应消息,所述IO读响应消息包括所述逻辑地址和读取的数据;如果所述IO请求消息为写请求消息且采用回写方式写数据,则将所述待写入的数据插入所述缓存模块包括的写数据列表,并返回IO写响应消息。结合第一方面的第二种可能的实现方式,在上述第一方面的第三种可能的实现方式中,所述根据所述逻辑地址从所述缓存模块中读取对应的数据,并返回IO读响应消息,包括:根据所述逻辑地址从所述缓存模块包括的读数据列表中读取对应的数据;如果读取到所述逻辑地址对应的所有数据,则产生IO读响应消息,返回所述IO读响应消息,并将所述读取的数据移动至所述读数据列表的表尾;如果没有读取到数据或者读取到所述逻辑地址对应的部分数据,则向存储介质阵列发送预读请求,所述预读请求中携带读取数据失败的逻辑地址;当从所述存储介质阵列中获取到数据时,接收预读响应消息,将所述获取的数据存储在所述读数据列表中;根据所述IO请求消息需要读取的数据的原数据长度和所述读数据列表中所述IO请求消息对应的数据的当前数据长度,产生IO读响应消息,并返回所述IO读响应消息。结合第一方面的第三种可能的实现方式,在上述第一方面的第四种可能的实现方式中,所述将所述获取的数据存储在所述读数据列表中,包括:如果所述读数据列表已满或者所述读数据列表未满且所述读数据列表剩余的空间小于所述获取的数据占用的空间,则从所述读数据列表的表头开始删除数据,以使所述获取的数据存储到所述读数据列表中;如果所述读数据列表未满且所述读数据列表剩余的空间大于或等于所述获取的数据占用的空间,则将所述获取的数据直接插入所述读数据列表中。结合第一方面的第三种可能的实现方式,在上述第一方面的第五种可能的实现方式中,所述根据所述逻辑地址从所述缓存模块包括的读数据列表中读取对应的数据之前,还包括:将所述IO请求消息存储在所述缓存模块包括的请求消息列表中;相应地,所述根据所述IO请求消息需要读取的数据的原数据长度和所述读数据列表中所述IO请求消息对应的数据的当前数据长度,产生IO读响应消息,并返回所述IO读响应消息,包括:将所述IO请求消息需要读取的数据的原数据长度与所述读数据列表中所述IO请求消息对应的数据的当前数据长度进行比较;如果所述原数据长度等于所述当前数据长度,则根据所述预读响应消息从所述请求消息列表中删除所述IO请求消息,并产生IO读响应消息,返回所述IO读响应消息;如果所述原数据长度大于所述当前数据长度,则销毁所述预读响应消息,继续等待,直至所述原数据长度等于当前数据长度,返回IO读响应消息。结合第一方面的第二种可能的实现方式,在上述第一方面的第六种可能的实现方式中,所述返回IO写响应消息之后,还包括:接收定时消息,获取所述写数据列表中的脏数据个数,所述脏数据为所述写数据列表中没有写入存储介质阵列的数据;如果所述脏数据个数大于第一阈值且小于第二阈值,则从所述写数据列表中删除一个脏数据;如果所述脏数据个数小于或等于所述第一阈值且系统空闲,则从所述写数据列表中删除一个脏数据;如果所述脏数据个数大于或等于所述第二阈值且系统繁忙,则从所述写数据列表中删除一个脏数据;如果所述脏数据个数大于或等于所述第二阈值且系统空闲,则从所述写数据列表中删除脏数据,直至所述写数据列表中脏数据个数小于所述第二阈值。结合第一方面,在上述第一方面的第七种可能的实现方式中,所述接收输入输出IO请求消息之前,还包括:确定存储介质阵列系统处理IO消息的系统性能模块,并根据所述系统性能模块建立消息路径;建立所述消息路径包括的每个系统性能模块处理IO消息的路由规则。第二方面,提供了一种对存储阵列系统的性能进行仿真的装置,所述装置包括:接收模块,用于接收输入输出IO请求消息,所述IO请求消息中至少携带所述IO请求消息访问的逻辑地址;查找模块,用于根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块;读取或写入模块,用于根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,以实现对所述存储阵列系统的性能进行仿真。结合第二方面,在上述第二方面的第一种可能的实现方式中,所述查找模块包括:第一确定单元,用于将接收所述IO请求消息的系统性能模块确定为当前系统性能模块;判断单元,用于判断所述当前系统性能模块是否为所述控制器阵列包括的缓存模块;第二确定单元,用于如果是,则将所述当前系统性能模块确定为查找的缓存模块;转发单元,用于如果否,则根据预设的消息路径和所述当前系统性能模块的路由规则,将所述IO请求消息转发到所述消息路径包括的下一个系统性能模块,返回判断所述当前系统性能模块是否为所述本文档来自技高网...
一种对存储阵列系统的性能进行仿真的方法及装置

【技术保护点】
一种对存储阵列系统的性能进行仿真的方法,其特征在于,所述方法包括:接收输入输出IO请求消息,所述IO请求消息中至少携带所述IO请求消息访问的逻辑地址;根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块;根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,以实现对所述存储阵列系统的性能进行仿真。

【技术特征摘要】
1.一种对存储阵列系统的性能进行仿真的方法,其特征在于,所述方法包括:接收输入输出IO请求消息,所述IO请求消息中至少携带所述IO请求消息访问的逻辑地址;根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块;根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,以实现对所述存储阵列系统的性能进行仿真;其中,所述根据预设的消息路径和所述消息路径包括的每个系统性能模块的路由规则,从存储阵列系统包括的控制器阵列中查找缓存模块,包括:将接收所述IO请求消息的系统性能模块确定为当前系统性能模块;判断所述当前系统性能模块是否为所述控制器阵列包括的缓存模块;如果是,则将所述当前系统性能模块确定为查找的缓存模块;如果否,则根据预设的消息路径和所述当前系统性能模块的路由规则,将所述IO请求消息转发到所述消息路径包括的下一个系统性能模块,返回判断所述当前系统性能模块是否为所述控制器阵列包括的缓存模块。2.如权利要求1所述的方法,其特征在于,如果所述IO请求消息为写请求消息,则所述IO请求消息中还携带待写入的数据,相应地,所述根据所述IO请求消息访问的逻辑地址,在所述查找的缓存模块中读取或写入数据,包括:如果所述IO请求消息为读请求消息,则根据所述逻辑地址从所述缓存模块中读取对应的数据,并返回IO读响应消息,所述IO读响应消息包括所述逻辑地址和读取的数据;如果所述IO请求消息为写请求消息且采用回写方式写数据,则将所述待写入的数据插入所述缓存模块包括的写数据列表,并返回IO写响应消息。3.如权利要求2所述的方法,其特征在于,所述根据所述逻辑地址从所述缓存模块中读取对应的数据,并返回IO读响应消息,包括:根据所述逻辑地址从所述缓存模块包括的读数据列表中读取对应的数据;如果读取到所述逻辑地址对应的所有数据,则产生IO读响应消息,返回所述IO读响应消息,并将所述读取的数据移动至所述读数据列表的表尾;如果没有读取到数据或者读取到所述逻辑地址对应的部分数据,则向存储介质阵列发送预读请求,所述预读请求中携带读取数据失败的逻辑地址;当从所述存储介质阵列中获取到数据时,接收预读响应消息,将所述获取的数据存储在所述读数据列表中;根据所述IO请求消息需要读取的数据的原数据长度和所述读数据列表中所述IO请求消息对应的数据的当前数据长度,产生IO读响应消息,并返回所述IO读响应消息。4.如权利要求3所述的方法,其特征在于,所述将所述获取的数据存储在所述读数据列表中,包括:如果所述读数据列表已满或者所述读数据列表未满且所述读数据列表剩余的空间小于所述获取的数据占用的空间,则从所述读数据列表的表头开始删除数据,以使所述获取的数据存储到所述读数据列表中;如果所述读数据列表未满且所述读数据列表剩余的空间大于或等于所述获取的数据占用的空间,则将所述获取的数据直接插入所述读数据列表中。5.如权利要求3所述的方法,其特征在于,所述根据所述逻辑地址从所述缓存模块包括的读数据列表中读取对应的数据之前,还包括:将所述IO请求消息存储在所述缓存模块包括的请求消息列表中;相应地,所述根据所述IO请求消息需要读取的数据的原数据长度和所述读数据列表中所述IO请求消息对应的数据的当前数据长度,产生IO读响应消息,并返回所述IO读响应消息,包括:将所述IO请求消息需要读取的数据的原数据长度与所述读数据列表中所述IO请求消息对应的数据的当前数据长度进行比较;如果所述原数据长度等于所述当前数据长度,则根据所述预读响应消息从所述请求消息列表中删除所述IO请求消息,并产生IO读响应消息,返回所述IO读响应消息;如果所述原数据长度大于所述当前数据长度,则销毁所述预读响应消息,继续等待,直至所述原数据长度等于当前数据长度,返回IO读响应消息。6.如权利要求2所述的方法,其特征在于,所述返回IO写响应消息之后,还包括:接收定时消息,获取所述写数据列表中的脏数据个数,所述脏数据为所述写数据列表中没有写入存储介质阵列的数据;如果所述脏数据个数大于第一阈值且小于第二阈值,则从所述写数据列表中删除一个脏数据;如果所述脏数据个数小于或等于所述第一阈值且系统空闲,则从所述写数据列表中删除一个脏数据;如果所述脏数据个数大于或等于所述第二阈值且系统繁忙,则从所述写数据列表中删除一个脏数据;如果所述脏数据个数大于或等于所述第二阈值且系统空闲,则从所述写数据列表中删除脏数据,直至所述写数据列表中脏数据个数小于所述第二阈值。7.如权利要求1所述的方法,其特征在于,所述接收输入输出IO请求消息之前,还包括:确定存储阵列系统处理IO消息的系统性能模块,并根据所述系统性能模块建立消息路径;建立所述消息路径包括的每个系统性能模块处理IO消息的路由规则。8.一种对存储阵列系统的性能进行仿...

【专利技术属性】
技术研发人员:陈刚
申请(专利权)人:华为数字技术苏州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1