磁盘阵列的读方法及装置制造方法及图纸

技术编号:15057368 阅读:78 留言:0更新日期:2017-04-06 03:24
本发明专利技术公开了一种磁盘阵列的读方法及装置,属于存储技术领域。所述方法包括:接收第一读请求,第一读请求包括需读取的逻辑块的标识;当第一Cache不存在需读取的逻辑块存储的数据时,向第一硬盘的控制器发送第一命令;第一Cache为控制装置的Cache,第一硬盘为包含有需读取的逻辑块的硬盘,第一命令用于指示第一硬盘的控制器返回需读取的逻辑块存储的数据;输出第一硬盘的控制器返回的数据,并在第一Cache存储返回的数据;删除第一Cache存储的返回的数据,或者,控制删除第二Cache存储的返回的数据;第二Cache为控制器的Cache,第二Cache存储的返回的数据是第一硬盘的控制器根据第一命令从需读取的逻辑块读取数据后存储的、或者是第一硬盘的控制器在接收第一命令之前存储的。

【技术实现步骤摘要】

本专利技术涉及存储
,特别涉及一种磁盘阵列的读方法及装置
技术介绍
磁盘阵列(RedundantArraysofIndependentDisks,简称RAID)(磁盘阵列的全称为,独立磁盘构成的具有冗余能力的阵列)用于为主机提供存储空间,负责主机的输入输出(Input-Output,简称IO)业务。RAID包括控制装置和多个价格较为便宜的硬盘,控制装置将多个硬盘的存储空间整合成统一空间,并提供空间管理。下面介绍一下现有的与RAID读操作相关的方法流程。RAID的控制装置在收到主机发送的读请求后,先在控制装置的快速缓冲贮存区(Cache)查询是否存在需要读取的数据。如果控制装置的Cache中存在需要读取的数据,则直接从控制装置的Cache获取并输出需要读取的数据。如果控制装置的Cache中不存在需要读取的数据,则确定存储有需要读取的数据的硬盘,并控制确定的硬盘返回需读取的数据。确定的硬盘先在硬盘的Cache查询是否存在需要读取的数据。如果硬盘的Cache中存在需要读取的数据,则直接从硬盘的Cache获取需要读取的数据。如果硬盘的Cache中不存在需要读取的数据,则从硬盘盘片读取相应的数据。在读取后,先在硬盘的Cache存放一份读取的数据,再将读取的数据返回控制装置。控制装置收到读取的数据后,也先在控制装置的Cache存放一份相同内容的数据,然后再输出读取的数据。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:上述流程中,在控制装置的Cache和硬盘的Cache都不存在需要读取的数据时,将从硬盘读取数据。而从硬盘读取数据后,首先会在硬盘的Cache中存放一份数据,同时数据返回控制装置后,还要在控制装置的Cache存放一份相同内容的数据,这造成了存储空间的浪费。
技术实现思路
为了解决RAID的存储空间的浪费的问题,本专利技术实施例提供了一种磁盘阵列的读方法及装置。所述技术方案如下:第一方面,提供了一种磁盘阵列的读方法,所述方法包括:接收第一读请求,所述第一读请求包括需读取的逻辑块的标识;当第一快速缓冲贮存区Cache不存在所述需读取的逻辑块存储的数据时,向第一硬盘的控制器发送第一命令;所述第一Cache为磁盘阵列RAID的控制装置的Cache,所述第一硬盘为包含有所述需读取的逻辑块的硬盘,所述第一命令用于指示所述第一硬盘的控制器返回所述需读取的逻辑块存储的数据;输出所述第一硬盘的控制器返回的数据,并在所述第一Cache存储返回的数据;删除所述第一Cache存储的返回的数据,或者,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据;所述第二Cache为所述第一硬盘的控制器的Cache,所述第二Cache存储的返回的数据是所述第一硬盘的控制器根据所述第一命令从所述需读取的逻辑块读取数据后存储的、或者是所述第一硬盘的控制器在接收所述第一命令之前存储的。在第一方面的第一实施方式中,删除所述第一Cache存储的返回的数据,或者,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据,包括:当满足预定条件时,删除所述第一Cache存储的返回的数据;当不满足所述预定条件时,控制所述第一硬盘的控制器删除所述第二Cache存储的返回的数据;其中,所述预定条件包括如下情况中任何一种:所述第一Cache的剩余存储容量低于预设存储容量;所述返回的数据为指定类型的数据。在第一方面的第二实施方式中,当控制所述第一硬盘的控制器删除第二Cache存储的返回的数据时,所述第一命令还用于指示所述第一硬盘的控制器在返回所述需读取的逻辑块存储的数据后,删除所述第二Cache存储的返回的数据。在第一方面的第三实施方式中,所述第一命令为小型计算机系统接口SCSI协议的Read10命令,所述第一命令携带逻辑块的第一地址信息、第一标识和第二标识,所述第一标识用于表示返回与所述第一地址信息对应的数据;所述第二标识用于表示在返回与所述第一地址信息对应的数据后,删除所述第二Cache存储的返回的数据。在第一方面的第四实施方式中,所述控制所述第一硬盘的控制器删除第二Cache存储的返回的数据,包括:向所述第一硬盘的控制器发送第二命令,所述第二命令用于指示所述第一硬盘的控制器删除所述第二Cache存储的返回的数据。在第一方面的第五实施方式中,所述第二命令为SCSI协议命令,所述第二命令携带逻辑块的第二地址信息和第三标识,所述第三标识用于表示将所述第二Cache存储的数据中与所述第二地址信息对应的数据删除。在第一方面的第六实施方式中,所述方法还包括:根据所述需读取的逻辑块的标识,确定所述第一硬盘中预读取的逻辑块的标识;向所述第一硬盘的控制器发送第三命令,所述第三命令用于指示所述第一硬盘的控制器获取所述预读取的逻辑块存储的数据,并将获取的数据存储到所述第二Cache。在第一方面的第七实施方式中,向所述第一硬盘的控制器发送第三命令之前,还包括:接收第二读请求;所述第一硬盘包含有所述第二读请求对应的逻辑块,所述第一Cache不存在所述第二读请求对应的逻辑块存储的数据,所述第三命令还用于指示所述第一硬盘的控制器返回所述第二读请求对应的逻辑块存储的数据。在第一方面的第八实施方式中,所述第三命令为SCSI协议命令,所述第三命令携带逻辑块的第三地址信息、逻辑块的第四地址信息、第四标识和第五标识;所述第四标识用于表示获取与所述第三地址信息对应的数据,并将获取的数据存储到所述第二Cache中;所述第五标识用于表示返回与所述第四地址信息对应的数据。第二方面,提供了一种磁盘阵列的读装置,所述装置包括:接收模块,用于接收第一读请求,所述第一读请求包括需读取的逻辑块的标识;发送模块,用于当第一快速缓冲贮存区Cache不存在所述需读取的逻辑块存储的数据时,向第一硬盘的控制器发送第一命令;所述第一Cache为所述装置的Cache,所述第一硬盘为包含有所述需读取的逻辑块的硬盘,所述第一命令用于指示所述第一硬盘的控制器返回所述需读取的逻辑块存储的数据;输出模块,用于输出所述第一硬盘的控制器返回的数据,并在所述第一Cache存储返回的数据;删除模块,用于删除所述第一Cache存储的返回的数据,或者,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据;所述第二Cache为所述第一硬盘的控制器的Cache,所述第二Cache存储的返回的数据是所述第一硬盘的控制器根据所述第一命令从所述需读取的逻辑块读取数据后存储的、或者是所述第一硬盘的控制器在接收所述第一命令之前存储的。在第二方面的第一实施方式中,所述删除模块用于,当满足预定条件时,删除所述第一Cache存储的返回的数据;当不满足所述预定条件时,控制所述第一硬盘的控制器删除所述第二Cache存储的返回的数据;其中,所述预定条件包括如下情况中任何一种:所述第一Cache的剩余存储容量低于预设存储容量;所述返回的数据为指定类型的数据。在第二方面的第二实施方式中,当所述删除模块控制所述第一硬盘的控制器删除第二Cache存储的返回的数据时,所述发送模块发送的第一命令还用于指示所述第一硬盘的控制器在返回所述需读取的逻辑块存储的数据后,删除所述第二Cache存储的返回的数据。在本文档来自技高网
...

【技术保护点】
一种磁盘阵列的读方法,其特征在于,所述方法包括:接收第一读请求,所述第一读请求包括需读取的逻辑块的标识;当第一快速缓冲贮存区Cache不存在所述需读取的逻辑块存储的数据时,向第一硬盘的控制器发送第一命令;所述第一Cache为磁盘阵列RAID的控制装置的Cache,所述第一硬盘为包含有所述需读取的逻辑块的硬盘,所述第一命令用于指示所述第一硬盘的控制器返回所述需读取的逻辑块存储的数据;输出所述第一硬盘的控制器返回的数据,并在所述第一Cache存储返回的数据;删除所述第一Cache存储的返回的数据,或者,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据;所述第二Cache为所述第一硬盘的控制器的Cache,所述第二Cache存储的返回的数据是所述第一硬盘的控制器根据所述第一命令从所述需读取的逻辑块读取数据后存储的、或者是所述第一硬盘的控制器在接收所述第一命令之前存储的。

【技术特征摘要】
1.一种磁盘阵列的读方法,其特征在于,所述方法包括:接收第一读请求,所述第一读请求包括需读取的逻辑块的标识;当第一快速缓冲贮存区Cache不存在所述需读取的逻辑块存储的数据时,向第一硬盘的控制器发送第一命令;所述第一Cache为磁盘阵列RAID的控制装置的Cache,所述第一硬盘为包含有所述需读取的逻辑块的硬盘,所述第一命令用于指示所述第一硬盘的控制器返回所述需读取的逻辑块存储的数据;输出所述第一硬盘的控制器返回的数据,并在所述第一Cache存储返回的数据;删除所述第一Cache存储的返回的数据,或者,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据;所述第二Cache为所述第一硬盘的控制器的Cache,所述第二Cache存储的返回的数据是所述第一硬盘的控制器根据所述第一命令从所述需读取的逻辑块读取数据后存储的、或者是所述第一硬盘的控制器在接收所述第一命令之前存储的。2.根据权利要求1所述的方法,其特征在于,删除所述第一Cache存储的返回的数据,或者,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据,包括:当满足预定条件时,删除所述第一Cache存储的返回的数据;当不满足所述预定条件时,控制所述第一硬盘的控制器删除所述第二Cache存储的返回的数据;其中,所述预定条件包括如下情况中任何一种:所述第一Cache的剩余存储容量低于预设存储容量;所述返回的数据为指定类型的数据。3.根据权利要求1所述的方法,其特征在于,当控制所述第一硬盘的控制器删除第二Cache存储的返回的数据时,所述第一命令还用于指示所述第一硬盘的控制器在返回所述需读取的逻辑块存储的数据后,删除所述第二Cache存储的返回的数据。4.根据权利要求3所述的方法,其特征在于,所述第一命令为小型计算机系统接口SCSI协议的Read10命令,所述第一命令携带逻辑块的第一地址信息、第一标识和第二标识,所述第一标识用于表示返回与所述第一地址信息对应的数据;所述第二标识用于表示在返回与所述第一地址信息对应的数据后,删除所述第二Cache存储的返回的数据。5.根据权利要求1所述的方法,其特征在于,控制所述第一硬盘的控制器删除第二Cache存储的返回的数据,包括:向所述第一硬盘的控制器发送第二命令,所述第二命令用于指示所述第一硬盘的控制器删除所述第二Cache存储的返回的数据。6.根据权利要求5所述的方法,其特征在于,所述第二命令为SCSI协议命令,所述第二命令携带逻辑块的第二地址信息和第三标识,所述第三标识用于表示将所述第二Cache存储的数据中与所述第二地址信息对应的数据删除。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:根据所述需读取的逻辑块的标识,确定所述第一硬盘中预读取的逻辑块的标识;向所述第一硬盘的控制器发送第三命令,所述第三命令用于指示所述第一硬盘的控制器获取所述预读取的逻辑块存储的数据,并将获取的数据存储到所述第二Cache。8.根据权利要求7所述的方法,其特征在于,向所述第一硬盘的控制器发送第三命令之前,还包括:接收第二读请求;所述第一硬盘包含有所述第二读请求对应的逻辑块,所述第一Cache不存在所述第二读请求对应的逻辑块存储的数据,所述第三命令还用于指示所述第一硬盘的控制器返回所述第二读请求对应的逻辑块存储的数据。9.根据权利要求8所述的方法,其特征在于,所述第三命令为SCSI协议命令,所述第三命令携带逻辑块的第三地址信息、逻辑块的第四地址信息、第四标识和第五标识;所述第四标识用于表示获取与所述第三地址信息对应的数据,并将获取的数据存储到所述第二Cache中;所述第五标识用于表示返回与所述第四地址信息对应的数据。1...

【专利技术属性】
技术研发人员:张箭张翔吴黎明
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:四川;51

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

1