当前位置: 首页 > 专利查询>伊姆西公司专利>正文

用于构建可扩展存储设备的方法、装置和扩展的存储设备制造方法及图纸

技术编号:14058671 阅读:68 留言:0更新日期:2016-11-27 11:56
本公开的实施例涉及一种用于构建可扩展的存储设备的方法、装置以及扩展的存储设备。该方法包括通过组合多个模块化的构件块来构建所述可扩展的存储设备;其中每个模块化的构件块包括一个或者多个磁盘封装;并且多个模块化的构件块中的至少一个模块化的构件块包括存储处理器,所述存储处理器包括输入输出处理单元;利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群;以及利用该集群来处理来自主机的输入或输出I/O请求以及元数据服务。本公开的实施例还提供相应的计算机程序产品。

【技术实现步骤摘要】

本公开的实施例涉及存储领域,更具体地涉及用于构建可扩展的存储设备的方法、装置和计算机程序产品,以及根据该方法构建的存储设备。
技术介绍
传统的存储设备,例如存储阵列,通常利用扩展性相对有限的方式来构造,并且因此通常仅针对预定义的最优使用场景而设计。这样的构造方法缺少灵活性。例如,针对不同的使用场景可能需要不同的设计,从而用户可能针对不同的使用场景需要采购不同的产品。这不利于用户重用已有的存储资源,增加了用户的成本。对于制造商来说,针对具体的使用场景来构造特定的存储产品也限制了其产品的使用范围,增加了其研发成本。此外,大部分传统的存储设备基于专有硬件设计,这进一步限制了存储产品构造的灵活性。基于以上所述问题,本公开的实施例提出了用于构建可扩展的存储设备的方法和装置。
技术实现思路
为了解决以上提到的问题中的至少一些问题,本公开的实施例引入一种基于模块化的构建块来构造高度可扩展的存储系统的方法和装置,并且提出了新的IO处理流程来实现扩展的非集中化的和高性能的系统。根据本公开的第一方面,提供了一种用于构建可扩展的存储设备的方法,包括:通过组合多个模块化的构件块来构建所述可扩展
的存储设备;其中该多个模块化的构件块中的每个模块化的构件块包括磁盘封装;并且该多个模块化的构件块中的至少一个模块化的构件块包括存储处理器,所述存储处理器包括输入输出处理单元;利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群;以及利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务。在一个实施例中,所述多个模块化的构件块中仅第一模块化的构件块包括所述存储处理器;并且其中通过组合多个模块化的构件块来构造所述可扩展的存储设备包括:通过将所述第一模块化的构件块与所述多个模块化的构件块中的每一个其它模块化的构件块连接来构建所述可扩展的存储设备。在另一实施例中,所述多个模块化的构件块中每一个模块化的构件块均包括所述存储处理器;并且其中通过组合多个模块化的构件块来构造所述可扩展的存储设备包括:通过将所述多个模块化的构件块中的每一个模块化的构件块互相连接来构建所述可扩展的存储设备。在又一实施例中,所述多个模块化的构件块包括第一组模块化的构件块和第二组模块化的构件块,并且仅所述第一组模块化的构件块包括所述存储处理器;并且其中通过组合多个模块化的构件块来构造所述可扩展的存储设备包括:通过将所述第一组模块化的构件块中的每一个模块化的构件块互相连接,并且将所述第一组模块化的构件块中的每一个模块化的构件块与所述第二组模块化的构件块中的一个或者多个模块化的构件块连接,来构建所述可扩展的存储设备。在一个实施例中,利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群可以进一步包括:选取所述集群中的一个输入输出处理单元作为所述集群的头;其中所述集群的头服务于所述元数据更新请求;并且所述集群中的每个输入输出处理单元有能力提供所述元数据服务和数据服务。在另一实施例中,利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群可以进一步包括:在所述集群的头失效时,选取所述集群中的另一个输入输出处理单元作为所述集群的新的头。在又一实施例中,利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务可以进一步包括:在一个输入输出处理单元启动时,通过所述元数据服务向其它输入输出处理单元通知所述一个输入输出处理单元上所附接的本地磁盘。在进一步的实施例中,利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务还可以包括:按照一致的哈希算法确定数据的存储位置,使得数据能够跨所有的所述存储处理器均匀地分布。在一个实施例中,其中按照一致的哈希算法确定数据的存储位置包括:基于输入或输出I/O请求中的卷标识符和偏移值来计算哈希值;确定与所述哈希值对应的硬盘驱动器的列表;查询元数据服务,以确定直接附接到所述列表中的硬盘驱动器的输入输出处理单元,并且获得所确定的所述输入输出处理单元中每个输入输出处理单元的输入输出负载状况;以及基于所述查询的结果,从所确定的直接附接到所述列表中的硬盘驱动器的输入输出处理单元中选择用于处理所述I/O请求的输入输出处理单元。在另一实施例中,所述列表中包括的硬盘驱动器的数量大于一个,并且所述数量能够被终端用户定义。在又一实施例中,利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务可以进一步包括:向所选择的用于处理所述I/O请求的输入输出处理单元发送所述I/O请求。根据本公开的第二方面,提供了一种用于构建可扩展的存储设备的装置,该装置包括:组合单元,被配置为通过组合所述多个模块化的构件块来构建所述可扩展的存储设备;其中所述多个模块化的构件块中的每个模块化的构件块包括磁盘封装;并且所述多个模
块化的构件块中的至少一个模块化的构件块包括存储处理器,所述存储处理器包括输入输出处理单元;集群形成单元,被配置为利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群;以及集群处理单元,被配置为利用该集群来处理来自主机的输入或输出I/O请求以及元数据服务。在一个实施例中,所述多个模块化的构件块中只有第一模块化的构件块包括所述存储处理器;并且其中所述组合单元被配置为通过将所述第一模块化的构件块与所述多个模块化的构件块中的每一个其它模块化的构件块连接来构建所述可扩展的存储设备。在另一实施例中,所述多个模块化的构件块中每一个模块化的构件块均包括所述存储处理器;并且其中所述组合单元被配置为通过将所述多个模块化的构件块中的每一个模块化的构件块互相连接来构建所述可扩展的存储设备。在又一实施例中,所述多个模块化的构件块包括第一组模块化的构件块和第二组模块化的构件块,并且仅所述第一组模块化的构件块包括所述存储处理器;并且其中所述组合单元被配置为:通过将所述第一组模块化的构件块中的每一个模块化的构件块互相连接,并且将所述第一组模块化的构件块中的每一个模块化的构件块与所述第二组模块化的构件块中的一个或者多个模块化的构件块连接,来构建所述可扩展的存储设备。在一个实施例中,集群形成单元可以进一步被配置为:选取所述集群中的一个输入输出处理单元作为所述集群的头;其中所述集群的头服务于所述元数据更新请求;并且其中所述集群中的每个输入输出处理单元能够提供所述元数据服务和数据服务。在另一实施例中,集群形成单元可以进一步被配置为在所述集群的头失效时,选取所述集群中的另一个输入输出处理单元作为所述集群的新的头。在一个实施例中,集群处理单元可以进一步被配置为在一个输入输出处理单元启动时,通过所述元数据服务向其它输入输出处理
单元通知所述一个输入输出处理单元上所附接的本地磁盘。在另一实施例中,集群处理单元可以进一步被配置为按照一致的哈希算法确定数据的存储位置,使得数据能够跨所有的所述存储处理器均匀地分布。在又一实施例中,集群处理单元可以进一步被配置为:基于输入或输出I/O请求中的卷标识符和偏移值来计算哈希值;确定与所述哈希值对应的硬盘驱动器的列表;查询元数据服务,以确定直接附接到所述列表中的硬盘驱动器的输入输出处理单元,并且获得所确定的所述输入输出处理单元中每个输入输出处理单元的输入输出负载状况;以本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201510184340.html" title="用于构建可扩展存储设备的方法、装置和扩展的存储设备原文来自X技术">用于构建可扩展存储设备的方法、装置和扩展的存储设备</a>

【技术保护点】
一种构建可扩展的存储设备的方法,包括:通过组合多个模块化的构件块来构建所述可扩展的存储设备;其中每个模块化的构件块包括磁盘封装;并且所述多个模块化的构件块中的至少一个模块化的构件块包括存储处理器,所述存储处理器包括输入输出处理单元;利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群;以及利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务。

【技术特征摘要】
1.一种构建可扩展的存储设备的方法,包括:通过组合多个模块化的构件块来构建所述可扩展的存储设备;其中每个模块化的构件块包括磁盘封装;并且所述多个模块化的构件块中的至少一个模块化的构件块包括存储处理器,所述存储处理器包括输入输出处理单元;利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群;以及利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务。2.根据权利要求1所述的方法,其中所述多个模块化的构件块中仅第一模块化的构件块包括所述存储处理器;并且其中通过组合多个模块化的构件块来构建所述可扩展的存储设备包括:通过将所述第一模块化的构件块与所述多个模块化的构件块中的每一个其它模块化的构件块连接来构建所述可扩展的存储设备。3.根据权利要求1所述的方法,其中所述多个模块化的构件块中每一个模块化的构件块均包括所述存储处理器;并且其中通过组合多个模块化的构件块来构建所述可扩展的存储设备包括:通过将所述多个模块化的构件块中的每一个模块化的构件块互相连接来构建所述可扩展的存储设备。4.根据权利要求1所述的方法,其中所述多个模块化的构件块包括第一组模块化的构件块和第二组模块化的构建块,并且仅所述第一组模块化的构件块包括所述存储处理器,并且其中通过组合多个模块化的构件块来构建所述可扩展的存储设备包括:通过将所述第一组模块化的构件块中的每一个模块化的构件块
\t互相连接,并且将所述第一组模块化的构件块中的每一个模块化的构件块与所述第二组模块化的构件块中的一个或者多个模块化的构件块连接,来构建所述可扩展的存储设备。5.根据权利要求1所述的方法,其中利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群进一步包括:选取所述集群中的一个输入输出处理单元作为所述集群的头;其中所述集群的头服务于所述元数据更新请求;并且所述集群中的每个输入输出处理单元能够提供所述元数据服务和数据服务。6.根据权利要求5所述的方法,利用所述至少一个模块化的构件块中的所述输入输出处理单元形成集群进一步包括:在所述集群的头失效时,选取所述集群中的另一个输入输出处理单元作为所述集群的新的头。7.根据权利要求1-6中任一权利要求所述的方法,其中利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务包括:在一个输入输出处理单元启动时,通过所述元数据服务向所述集群中的其它输入输出处理单元通知所述一个输入输出处理单元上所附接的本地磁盘。8.根据权利要求1-6中任一权利要求所述的方法,其中利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务包括:按照一致的哈希算法确定数据的存储位置,使得数据能够跨所述多个模块化的构建块均匀地分布。9.根据权利要求8所述的方法,其中按照一致的哈希算法确定数据的存储位置包括:基于所述输入或输出I/O请求中的卷标识符和偏移值来计算哈希值;确定与所述哈希值对应的硬盘驱动器的列表;查询元数据服务,以确定直接附接到所述列表中的硬盘驱动器的输入输出处理单元,并且获得所确定的所述输入输出处理单元中每个输入输出处理单元的输入输出负载状况;以及基于所述查询的结果,从所确定的直接附接到所述列表中的硬盘驱动器的输入输出处理单元中选择用于处理所述I/O请求的输入输出处理单元。10.根据权利要求9所述的方法,其中所述列表中包括的硬盘驱动器的数量大于一个,并且所述数量能够被终端用户定义。11.根据权利要求9所述的方法,其中利用所述集群来处理来自主机的输入或输出I/O请求以及元数据服务包括:向所选择的用于处理所述I/O请求的输入输出处理单元发送所述I/O请求。12.一种构建可扩展的存储设备的装置,包括:组合单元,被配置为通过组合多个模块化的构件块来构建所述可扩展的存储设备;其中每个模块化的构件块包括磁盘封装;并且所述多个模块化的构件块中的至少一个模块化的构件块包括存储处理器,所述存储处理器包括输入输出处理单元;集群形成单元...

【专利技术属性】
技术研发人员:刘辉曹逾高雯雯郭小燕狄杰明
申请(专利权)人:伊姆西公司
类型:发明
国别省市:美国;US

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

1