为良好分格的对象提供高扩展性网络存储的方法和设备的制作方法

文档序号:6361109阅读:156来源:国知局
专利名称:为良好分格的对象提供高扩展性网络存储的方法和设备的制作方法
技术领域
本发明涉及通信技术,确切地说,涉及为良好分格的对象提供高扩展性网络存储的一种方法和一种设备。
发明背景
云存储是网络在线存储的一种模式,数据存储在多个虚拟服务器中,这些数据通常由第三方托管,而不是由专用服务器托管。需要数据托管服务的客户,可以从操作大型数据中心的云存储服务托管提供商那里购买或租借存储容量。数据中心的操作员,根据客户的需求在后台提供资源,这被称为虚拟资源,并且操作员们公开这些资源作为存储池,这样客户就可用以存储文件或数据对象。这样的资源可能分布在多个服务器之间。通常,云存储服务可以通过网络服务的应用编程接口(API)或者基于网络的用户界面来访问。在某些云存储系统内,服务提供商向客户或用户,提供基于区块的存储服务。由于服务提供商通常拥有存储服务的基础设施,这更有利于服务提供商,为了向客户提供存储服务,而去追求更加高效和高扩展性的设计与实施方案。因此,对服务提供商来说,一个重要的设计与实施方案目的就是,最大化吞吐量与可扩展性,例如在系统相对较大的情况下。发明内容
在一项实施例中,本发明包括一种设备,所述设备包括多个存储节点,所述存储节点包括多个相应存储磁盘,用于在定位信息的基础上,并且对分布数据不做任何索引,以能够实现类似独立磁盘冗余阵列-O (RAIDO)性能的分布的方式,将数据存储在多个存储磁盘当中。
在另一项实施例中,本发明包括一种网络部件,所述网络部件包括用于为不同用户数据维护多个物理文件的存储磁盘,所述不同用户数据映射到不同卷上,其中这些不同卷在类似RAIDO的数据分布方案基础上,不做任何索引地被分布在存储磁盘以及辅助存储磁盘当中。
在第三方面,本发明包括一种方法,所述方法包括接收向存储系统中写数据的请求,其中所述请求包括定位信息;将所述定位信息映射到数据卷、数据区块和数据扇区的组合中;散列所述数据卷、数据区块和数据扇区的组合,基于所述散列将数据的第一条带安置在所述存储系统中的一个位置上;以及在所述存储系统的一个或一个以上随后的位置上分布数据的一个或一个以上第二条带,所述随后的位置与所述位置分隔一个偏移量。
结合附图
和所附权利要求书,通过以下详细描述能更清楚地了解本发明的这些和其他特征。
附图简述
为了更完整地了解本发明,现参考以下结合附图和具体实施方式
进行的简要描述,其中相同参考标号表不相同部分。
图I是存储系统拓扑的一项实施例的不意图。
图2是数据分布方案的一项实施例的示意图。
图3是文件布局的一项实施例的示意图。
图4是数据分布方法的一项实施例的流程图。
图5是通用计算机系统的一项实施例的示意图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所揭示的系统和/或方法可使用许多种技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文本所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
本文本揭示一种系统和方法,其提供了与其他云存储系统相比,具有更高效率与扩展性的基于区块的存储系统。所述基于区块的存储系统的设计与实施方案,可能适合用于处理在多个存储单元上维护的文件系统,并因此可比其他基于本地硬盘驱动器(HDD)的系统,提供更高的效率与扩展性。所述基于区块的存储系统,可通过在增加用户需求的同时,不需要在不同的服务或存储节点中重新分配大量数据卷,从而高效地扩展存储服务,例如在某个网络当中。管理所述基于区块的存储系统的运营要求相对较少,因此与其他存储系统相比,其运营成本(OPEX)也较少。所述系统的可扩展性,可通过使用基于自我管理分布式散列表(DHT)的方法,得到提高,其可能利用存储系统物理基础设施的拓扑或层级以及目标存储布局的特性。所述系统吞吐量的效率也可以通过使用数据分布机制得以提高,其可以按照一种相对较高的分布与扩展形式来实现类似RAIDO的性能。此外,所述文件布局可用于提闻HDD或存储单兀的读与效率。
图I所示是存储系统拓扑100的一个实施例,其可用于向多个客户或用户提供存储服务。所述存储系统拓扑100可对应“大量磁盘”(SoD)拓扑,所述拓扑由华为核心网络业务部门(BU)提出且适用于为云计算目的提供数据存储。所述存储系统拓扑100可包括多个盒110,每个所述盒可包括多个磁盘120。所述磁盘120可包括多个ATOM、ARM及/或其他基于处理器类型的计算机。如下文所述,每个计算机也可包括其他部件,例如,中央处理单元(CPU)、随机存取存储器(RAM)、闪存/固态驱动器(SSD)、HDD、一吉比特每秒(IG)以太网卡或其组合。
如图I所示,每个盒110可包括多个磁盘120。例如,盒110可对应于包括一叠磁盘120的架柜。所述磁盘120和所述盒110对应于存储系统拓扑100的两个分级级别,所述存储系统拓扑100可包括提供分级存储节点集群结构的其他级别(未图示)。例如,多个盒110可能是一个单元的一部分,例如,多个架柜的单元,并且多个单元可能是容器的一部分。多个容器也可能是数据中心的一部分。例如,在一个网络中,存储系统拓扑100的不同存储级别可对应多个存储节点或可由多个存储节点访问及维护。例如,每个盒110可对应一个存储节点。或者,多个盒110,或少于盒110中所有的磁盘120,可对应单个存储节点。
存储系统拓扑100提供的存储服务可包括虚拟区块服务(VBS),所述虚拟区块服务是基于区块的存储服务。就良好分格的对象结构来说,例如,在存储系统拓扑100中,VBS 可支持API或API功能,类似于
放置(start_position_key〈address_bits>, data<bytes>),以及
获取(start_position_key〈address_bits>, number_of_items〈int>)。
由于所述良好分格的对象结构,上文所述获取方法可被支持,例如,在所述结构中,数据对象可在多个存储节点当中按比例散布。在所述放置方法中,数据大小可用于限定或指示数据对象。
当用户或客户请求读及/或写一些文件时,存储系统拓扑100支持的文件系统可使用以太网先进技术附件(ATA) (AoE)向VBS重发这个请求,例如,通过以太网访问存储系统装置。在VBS中,使用AoE协议访问存储系统装置是可选择的,并且可使用其他协议或方案代替。
在VBS系统中,存储系统装置可使用定位信息访问,例如〈Volume, Block, Sector) (〈卷,区块,扇区 >)。区块数据及扇区数据大小可以是固定的,卷大小可根据用户的要求扩大。在用户一侧,本地文件系统可管理用户可见定位文件信息,例如〈file path, offset〉,向适当的〈Volume, Block, Sector〉寻址信息的映射,从而在VBS系统中安置文件数据。特别的是,用户本地文件系统可用于管理将映射文件至数据卷中的多个位置上的操作,此数据卷例如是在存储目标节点或磁盘中,所述数据卷可在有已知及固定大小的区块中划分成一栅格区块和扇区。
为了处理存储系统的扩展性问题,自我管理DHT方案可用来利用或很好地使用系统的物理基础设施拓扑,例如,存储系统拓扑100,以及可能与目标存储布局相关的其他特殊的特性。例如,就存储系统拓扑100来说,在没有很大地投资所述系统的交换及布线基础设施的情况下,通过每对磁盘120实现非分块输入/输出(1/0)可能很困难。为了避免这样的费用,可使用两层状DHT,其可处理盒间级别(例如,在磁盘120之间)以及盒内级别(例如,在盒110之间)。所述两层状DHT可包括用于处理盒间级别的第一 DHT,其可以自我管理或由与每个盒110相关联的存储目标或节点维护。所述两层状DHT也可包括用于管理盒内级别的第二 DHT,其可在对应于不同盒110的多个存储节点之间分布。
所述DHT可以是分散分布系统(在不同存储节点之间),所述系统提供类似于散列表的查找服务。所述DHT可包括多个(键,值)对,其可由存储节点用来检索与给定键相关的值。在DHT中,从键到值的映射可在存储节点之间分布,其中所述组存储节点的改变不会相当大地改变DHT条目。这样,DHT可扩展到实质上较大数量的存储节点,并且处理存储节点的到达、离开及/或故障。
为了致力于解决吞吐量效率问题,可使用适当的数据分配器。所述数据分配器可用于以分布的形式(在存储节点之间)实现类似RAIDO的性能性能。所述数据分配器也可用于确定如何将一个卷的数据分割及分布到许多存储节点中,从而实现相对较高的吞吐量。通常现有的DHT方案可使用散列函数,例如,安全散列算法(SHA) -I,从而使数据分布随机化。在这种情况下,例如,根据区块数量及/或扇区数量,在执行函数hash (〈Volume, Block, Sector〉)后输出键结果可均匀分布,并且不为数据区块及/或扇区排序。在不为区块及/或扇区排序而执行此分布方案时,数据安置及检索操作可消耗大量的网络带宽且弓I起对每个存储节点的许多随机访问。
数据分布的一种替代方案是使用卡桑德拉()的“保留次序划分”方法。然而,在相对较大规模的数据中心,此方法可导致将一个特定的卷存储至一个或两个存储节点上,这可能导致用户尝试随机读/写访问时性能很低。这种方法可能会消极地影响多个应用程序或包括多个线程的单个应用程序对卷的访问(例如,不均匀卷分布)。对卷访问的消极影响可随并行操作和卷级别的升高而增加。
图2所示为数据分布方案200的一项实施例,其可用于改进存储系统中的随机数据分布和卷访问。数据分布方案200可与上述DHT方案一同使用,例如,基于存储系统拓扑100。数据分布方案200也可支持次序保留划分(0ΡΡ),例如,包括在卡桑德拉O. 6版应用程序中的0ΡΡ。数据分布方案200可使用卷标识符(ID),或者如果所述卷绑定到用户,则使用用户ID作为散列函数F的输入参数。数据分布器200也可使用确定散列函数F范围的函数——Range (F)。函数Range (F)可确定循环值的“环”,所述环始于最小值——Min(Range (F)),止于最大值-Max (Range (F))。散列函数F和范围函数Range (F)可以是数据分布方案200中使用的已知数量。
散列函数F可用来产生随机数,其指示DHT ID空间中的随机位置。DHT可以是循环的或具有代数循环性质(重复值),其中ID值可属于一个循环或重复值的范围(一个环)。 数据分布方案200可包括对应于DHT ID空间的DHT集群。DHT集群可包括多个节点210 (例如,存储或主机节点),所述节点可在环配置中有逻辑地排列,所述环配置在本文中也称为集群节点配置(NC)。节点210可对应DHT ID空间中的ID值。
图2所示为一个案例,其中用户可指定一个卷V,使用所述卷的ID-V_id,例如,来读/写或访问所述卷V。因此,函数F (V_id)可用于为DHT ID空间中的卷V产生随机位置。当计算函数F (V_id)后,可确SV_id (或卷V)的位置。特别的是,可指定节点210 来存储卷V的第一条带——Strip-Ο,所述节点210有关于F (V_id)的最小最大值(least Iargestvalue )(例如,等于或最接近较高值)。
“条带安置函数”——Node,可用于向主机节点映射一个卷的一个条带,如下
Node (G (V_id, F,d, strip_number) , NC),
其中G是“神奇阶跃函数”,strip_number (s)是block_id和适合一个条带的区块数量(或block_id加上sector_id以及适合一个条带的扇区数量)的函数,NC是节点配置,且Node是条带安置函数。条带安置函数Node可提供所述卷的一个条带的目标或主机节点。“神奇阶跃函数”可始于F (V_id),并且围绕节点210的环产生步长d,例如
G (V_id, F, d, s) =F (V_id) + (d*s)/Range (F)。
Node可以是节点配置(NC)的函数、选择卷(例如,卷V) “起始”位置的散列函数 (F)、步长(d)以及 strip_number (s)函数。
数据分布方案可引进系统并行度参数N,200所述参数N模拟RAIDO系统中的磁盘数量,在所述RAIDO系统中一个卷可分布且存储在N个磁盘中。这样,数据分布方案200可将一个卷的多个条带存储至N个节点中。每个条带的strip_number可依据block_id和N, 其中多个区块可适合一个条带。strip_number、block_id以及之间的关系可描述为
strip_number= (block_id/s)/N。
卷的第一条带的strip_number可设置为O (Strip-Ο),卷的第二条带的strip_ number可设置为I (Strip-1),且随后条带的strip_number可用类似方法设置。如上文所述,可使用Node函数将每个strip_number映射到一个节点。例如,Strip-I的托管节点可表示为
Node (G (V_id,F,d,I),NC)。为了简短起见,“神奇阶跃函数”G可从上述表达式中删掉,因而目标或主机节点可表示为
Node (V_id, F,d, strip_number, NC)。
一个卷的主机节点N的数量N、步长或偏移量d以及每个条带中的区块数量可用不同的方式定义。这些参数可为一个卷定义为第一条带Strip-Ο的固定头部。或者,这些参数可动态地分配为在节点210上的卷的配置文件,其中可例如使用Node (V_id,F,d, O, NC) 预期第一条带。由于第二种方法可将卷条带元数据从卷的实际数据中分离,第二种方法可能更加有吸引力。用于获得第一条带的函数Node (¥_丨(^,(1,0,从)可独立于(1,其可在计算主机节点时使用,所述主机节点来自节点210,除了为第一条带(Strip-Ο)指定的第一节点 210。
在一个条带安置算法中,可为卷的不同条带指定的节点N的数量可以是固定的。 例如,在图2中N等于4。偏移量d也可以是固定的,例如,d= (Range (F))/N),其中N和 Range (F)是固定的。条带安置算法也可使用循环模式,例如,使用上述条带安置函数,将一个卷中的区块分布至主机节点上的适当目标条带中。这样,多个条带可映射到一个或一个以上节点210上。例如,第一节点(标记为0)可存储Strip-O和Strip-4,偏移量为d的第二节点(标记为2)可存储Strip-I和Strip-5,第三节点(标记为4)可存储Strip-2和 Strip-6,且第四节点(标记为6)可存储Strip-3和Strip-7。
在另一条带安置算法中,偏移量d的值可变化且Range (F)可以为d整除或不整除。因此,N可以因不同数据卷变化,从而在每个条带托管节点上维持接近相等的存储消耗或数据分布。其他算法或上述两个算法的组合或他们的一些特征也可用于在节点210上安置卷条带。
如以上所述,数据分布方案200可以使用相对简单的计算,为请求的数据的 〈Volume, Block, Sector)组合确定主机节点。这样,如果并行提取方案中需要,用户可在不同节点中提取多个条带,在所述并行提取方案中,条带可在大约相同的时间从不同的节点 210获得。用户环境中的本地文件系统可例如为包括多个文件的卷执行并行提取方案,所述文件可通过多线程应用程序访问。通过利用将卷表示为一组大小固定且良好分格的区块和扇区,不使用数据安置的索引,数据分布方案200就可安置或访问在主机节点上分布的数据。
分布方案200和匹配存储系统拓扑100的DHT方案可应用于任何良好分格的对象,例如,就VBS来说,其中对象可被当作分布的数据的卷。在良好分格的对象结构中,上述方案可不加索引而允许数据分布,这可改进对象安置和检索并且避免不必要的索引计算和操作。不同于其他使用索引的基于DHT的VBS存储系统或基于目标存储对象的存储系统, DHT以及上述数据分布方案可通过实施上述基于对象及其他参数的散列函数,使用逻辑索引,从而充分提高存储系统性能。数据分布方案200可与当前可用的不同DHT方案一同使用。例如,可添加其他函数或插件至一些现有的DHT方案中,从而执行上述DHT和数据分布方案。
图3所示为文件布局300的一项实施例,其可用于在存储系统中改进随机数据分布和卷访问,例如,根据存储系统拓扑100。所述文件布局300可与上文描述的DHT以及数据分布方案一同使用,从而提高存储系统读-写或吞吐量效率。文件布局300可对应数据分布方案200中的N=2。这样,文件布局300可包括大约两个节点存储条带310 (标记为NI 和N2)。每个节点存储条带310可包括大约两个物理文件320 (标记为FI、F2、F3和F4), 每个物理文件320可包括大约两个数据区块330 (标记为BI至B8)。每个数据区块330也可包括大约两个数据扇区340。
每个物理文件320的大小可以是固定的,例如,等于大约10兆字节(MB)。物理文件320 (例如,数据文件)的大小可根据物理文件320中的数据区块330的数量确定,所述物理文件320中的物理区块330的数量可对应于数据卷strip_number或s中的条带数量。 固定数据文件大小可在节点存储条带310 (例如,HDD)中简化操作并且提高顺序访问效率。 区块330可根据每个物理文件320内相应的区块ID顺序安置。区块ID可通过循环策略在节点存储条带310中分布。扇区340也可在每个区块330内以顺序方式有逻辑地安置且可由相应的扇区ID排序。在文件布局300中顺序安置区块和扇区可产生类似RAIDO的性能并且可呈线性地提高存储系统吞吐量。此外,物理文件320可根据懒惰创建(Lazy Creation) 方案创建,在所述懒惰创建方案中,直到例如通过用户对所述扇区的写操作而访问了物理文件320的一个扇区340,才可创建所述物理文件320。
图4所示为数据分布方法400的一项实施例,其可用于在存储系统中分布数据。数据分布方法400可在数据分布方案200中由存储系统实施,并且可基于存储系统拓扑100 和文件布局300支持DHT方案。数据分布方法400可用于将用户请求的数据安置在目标存储节点上或从目标存储节点提取用户请求的数据。方法400可在区块410开始,在区块410 中可接收向存储系统写或读数据的请求,包括定位信息。所述请求可能是VBS支持的获取或放置API函数,其可由用户的本地文件系统发送。在区块420,所述定位信息可映射至数据卷、数据区块和数据扇区的组合中。所述用户的本地文件系统可将用户请求从用户可见的定位文件信息,例如〈file path, offset〉,转换至适当的〈Volume, Block, Sector〉寻址信息,从而在VBS系统中安置数据或文件。
在区块430,可散列所述数据卷、数据区块和数据扇区的组合。在区块440,数据的第一条带可基于散列在存储系统中的一个位置上安置或提取。例如,数据卷、数据区块和数据扇区信息可使用在数据分布方案200中描述的散列函数和参数散列,从而获得开始存储数据的位置。数据卷、数据区块和数据扇区以及散列值(例如,位置)可在DHT的条目中分别保存为一个值键对,所述值键对可本地存储在与所述位置相关联的存储节点中。在区块 450,数据的一个或一个以上第二条带可在存储系统中的一个或一个以上随后的位置上存储或检索,所述随后的位置分隔一个偏移量。如以上所述,数据条带可在存储节点之间以循环方式分布。如定位信息所指示的,数据可在多个条带中的不同节点中分布,所述条带包括连续顺序的区块和扇区。因此,数据或文件可按节点中相应的条带、区块和扇区指示的顺序访问或检索。随后,方法400可结束。
上述网络部件可在任何通用网络部件上实施,例如计算机或网络部件,其具有足够的处理能力、存储资源和网络吞吐能力能处理其上的必要工作负荷。图5所示是典型的通用网络部件500,其适用于实施本文本所揭示的部件的一项或多项实施例。网络部件500 包括处理器502 (可称为中央处理器单元或CPU),所述处理器与包括以下项的存储装置通信辅助存储器504、只读存储器(ROM) 506,RAM 508、输入/输出(I/O)装置510,以及网络连接装置512。处理器502可作为一个或一个以上CPU芯片实施,或者可为一个或一个以上专用集成电路(ASIC)的一部分。
辅助存储器504通常包括一个或一个以上磁盘驱动器或磁带驱动器,且用于对数据进行非易失性存储,且如果RAM 508的容量不足以存储所有工作数据,则辅助存储器504 用作溢流数据存储装置。辅助存储器504可用以在选择执行载入到RAM 508中的程序时存储此类程序。ROM 506用于存储在执行程序期间读取的指令可能还有数据。ROM 506为非易失性存储装置,其存储容量相对于辅助存储器504的较大存储容量而言通常较小。RAM 508 用于存储易失性数据,还可能用于存储指令。访问ROM 506和RAM 508通常比访问辅助存储器504要快。
本发明揭示了至少一项实施例,而且所属领域的一般技术人员对实施例和/或实施例的特征做出的变化、组合和/或修改均在本发明的范围内。通过组合、合并和/或忽略实施例的特征而得到的替代性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,应将此类表达范围或限制理解成包括属于明确说明的范围或限制内的类似量值的迭代范围或限制(例如,从约I到约10包括2、3、4等;大于O. 10包括O. 11,0. 12,0. 13等)。 例如,只要揭示具有下限R1和上限Ru的数字范围,便明确揭示了此范围内的任何数字。具体而目,在所述范围内的以下数字是明确揭不的=R=R1+!^* (Ru-R1),其中k为从1%到100%范围内以 1% 递增的变量,即,k 为 1%、2%、3%、4%、7%、......、70%、71%、72%、......、95%、96%、97%、98%、99%或100%。此外,由上文中定义的两个数字R定义的任何数字范围也是具体揭示的。相对于权利要求书的任一元素使用术语“选择性地”即意味着所述元素是需要的,或者所述元素是不需要的,这两种替代方案均在所述权利要求书的范围内。应将使用诸如“包括”、“包含”和“具有”等范围较大的术语理解成提供对诸如“由……组成”、“基本上由…… 组成”以及“大体上由……组成”等范围较小的术语的支持。因此,保护范围不受上文所述说明书的限制,而是由所附权利要求书界定,所述范围包括所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。揭示内容中对参考的论述并非承认其为现有技术,尤其是
公开日期在本申请案的优先权日期后的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容以引入的方式并入本文本中,以提供补充本发明的示例性、程序性或其他细节。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所揭示的系统和方法可以许多其它具体形式来实施。本发明的实例应视为说明性的而非限制性的,且本发明不限于本文本所给出的细节。例如,各元件或部件可在另一系统中组合或合并,或某些特征可省略或不实施。
另外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可与其他系统、模块、技术或方法进行组合或合并。所示或所述的彼此耦接、直接耦接或通信的其他项可以电气方式、机械方式或其他方式经由某个接口、 装置或中间部件而间接耦接或通信。改变、替换和更改的其他实例可由所属领域的技术人员确定,且在不脱离本文本中所揭示的精神和范围的情况下实施。
权利要求
1.一种设备,包括 多个存储节点,所述存储节点包括多个相应存储磁盘,并用于在定位信息的基础上,并且对分布数据不做任何索引,从而以能够实现类似独立磁盘冗余阵列-O (RAIDO)性能的分布的方式,将数据存储在多个存储磁盘当中。
2.根据权利要求I所述的设备,其中所述定位信息包括(键,值)对,所述(键,值)对存储在分布式散列表(DHT)中并且用于检索与键相关联的值,并且其中所述DHT在所述存储节点上分布且由个别节点自我管理。
3.根据权利要求2所述的设备,其中所述存储磁盘是一个或一个以上盒的一部分,并且其中每个所述存储节点与一个或一个以上存储磁盘或一个或一个以上盒相关联。
4.根据权利要求3所述的设备,其中所述DHT包括盒内DHT,其管理在同一盒中的不同磁盘之间分布的数据,以及盒间DHT,其管理在不同盒间分布的数据。
5.根据权利要求3所述的设备,其中所述盒是一个或一个以上单元的一部分,并且其中所述单元是一个或一个以上容器的一部分,并且其中所述容器是数据中心的一部分。
6.根据权利要求3所述的设备,其中所述存储磁盘包括多个基于ATOM或ARM的计算机,并且其中所述计算机包括中央处理单元(CPU)、随机存取存储器(RAM)、闪存/固态驱动器(SSD)、硬盘驱动器(HDD)、一吉比特每秒(IG)以太网卡,或其组合。
7.一种网络部件,包括 存储磁盘,其用于为不同用户数据维持多个物理文件,所述用户数据映射至不同的卷, 其中所述卷基于类似独立磁盘冗余阵列-O (RAIDO)的数据分布方案,不做任何索引,分布于所述存储磁盘和第二存储磁盘之间。
8.根据权利要求7所述的网络部件,其中每个所述卷包括多个区块,所述区块包括多个扇区,并且其中所述存储磁盘的所述物理文件包括不同区块,所述区块包括不同扇区。
9.根据权利要求8所述的网络部件,其中所述物理文件有固定的大小,其确定在每个所述物理文件中的区块和扇区的数量。
10.根据权利要求9所述的网络部件,其中所述物理文件的大小等于约10兆字节(MB)0
11.根据权利要求8所述的网络部件,其中根据相应的区块标识符(ID)和扇区ID,所述区块以及,类似地,所述扇区分别在所述存储磁盘的所述物理文件以及所述第二存储磁盘的多个第二存储文件中顺序分布,并且其中使用循环策略将所述区块ID和所述扇区ID分配给所述物理文件和所述第二物理文件。
12.根据权利要求8所述的网络部件,其中所述物理文件是根据懒惰创建方案创建的,其中物理文件直到用户访问了一个所述扇区才创建。
13.一种方法,其包括 接收向存储系统写数据的请求,其中所述请求包括定位信息; 映射所述定位信息至数据卷、数据区块和数据扇区的组合中; 散列所述数据卷、数据区块和数据扇区的组合; 基于所述散列,在所述存储系统中的一个位置上安置数据的第一条带;以及 在所述存储系统中的一个或一个以上随后的位置上分布数据的一个或一个以上第二条带,所述随后的位置与所述位置分隔一个偏移量。
14.根据权利要求13所述的方法,进一步包括 接收向存储系统读数据的第二请求,其中所述第二请求包括定位信息; 映射所述定位信息至所述数据卷、数据区块和数据扇区的组合中; 散列所述数据卷、数据区块和数据扇区的组合; 基于所述散列,在所述存储系统中的所述位置上提取所述数据的所述第一条带;以及在所述存储系统中的所述一个或一个以上随后的位置上提取所述数据的一个或一个以上第二条带。
15.根据权利要求14所述的方法,其中所述请求是一个获取请求,其包括获取(start_position_key〈address_bits>, number_of_items<int>), 或一个获取请求,其包括 放置(start_position_key〈address_bits>,数据 <bytes>)。
16.根据权利要求13所述的方法,其中所述数据卷、数据区块和数据扇区的组合使用散列函数F散列,所述函数有固定的范围Range (F),并且其中Range (F)确定一个值的环或循环范围,其始于最小值Min (Range (F)),且止于最大值Max (Range (F))。
17.根据权利要求16所述的方法,其中F用来基于卷标识符(ID),根据V(V_id)=Strip-O的位置,为对应于所述第一条带的所述数据卷产生随机位置, 其中V_id是所述卷ID并且Strip-O表示所述第一条带。
18.根据权利要求17所述的方法,其中所述数据根据Node(G (V_id, F, d, strip_number) , NC)使用条带安置函数Node分布, 其中G是神奇阶跃函数,Strip_nUmber是所述数据区块的区块标识符(ID)以及适合所述第一条带或第二条带的多个区块ID的函数,并且NC是在所述存储系统中的集群节点配置。
19.根据权利要求18所述的方法,其中所述神奇阶跃函数G根据G(V_id,F,d,s)=F(V_id) + (d*s)/Range (F),为一个所述第二条带提供一个所述随后位置, 其中d是每个所述第一条带和第二条带之间的偏移量,并且对应于在所述第一条带和第二条带的位置之间的多个不用的位置,并且s是所述strip_number。
20.根据权利要求18所述的方法,其中所述strip_number和所述blockID之间的关系确定为strip_number= (block_id/s) /N, 其中block_id是所述区块ID并且N是所述第一条带和第二条带的位置的数量。
全文摘要
一种设备包括多个存储节点,所述存储节点包括多个相应存储磁盘,并用于在定位信息的基础上,并且对分布数据不做任何索引,从而以能够实现类似独立磁盘冗余阵列-0(RAID0)性能的分布的方式,将数据存储在多个存储磁盘当中。一种网络部件包括用于为不同用户数据维护多个物理文件的存储磁盘,所述不同用户数据映射到不同卷上,其中这些不同卷在类似RAID0的数据分布方案基础上,不做任何索引地被分布在存储磁盘以及辅助存储磁盘当中。
文档编号G06F12/00GK102985909SQ201180033192
公开日2013年3月20日 申请日期2011年5月6日 优先权日2010年7月2日
发明者施广宇, 马苏德·莫塔扎维, 陈坚, 维纳·哥帕拉饶·柯萨 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1