用于在数据存储系统中实现存储的细粒度、可伸缩分配的方法和装置的制造方法

文档序号:9240010阅读:181来源:国知局
用于在数据存储系统中实现存储的细粒度、可伸缩分配的方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据存储系统,而且更具体地,本发明涉及能够向文件系统进行磁盘空间的细粒度、可伸缩分配的数据存储系统。
【背景技术】
[0002]在今天的信息时代,数据存储系统经常管理不时需要动态扩大磁盘空间的文件系统。经常,文件系统在存储增量方面扩大(在本申请中称为“组块”)。数据存储系统可以允许选择不同的指导组块大小,虽然存储系统可以分配大小偏离指导组块大小的组块。在一个示例性的数据存储系统中,组块大小可以从I千兆字节(GiB)到lOOGiB。在另一示例性数据存储系统中,组块大小可以从0.5GiB到18GiB。
[0003]这样的系统的文件服务器将文件系统空间中磁盘空间的虚拟地址翻译成物理存储器中的磁盘空间的地址,且其可以使用固定大小的表来跟踪向文件系统分配的磁盘空间的组块(例如,在一示例性的数据存储系统中具有1023条目的表,其中例如,每一条目用于存储组块的开始物理地址和与组块的大小相关的信息(例如,组块长度或组块的结束地址)并映射到虚拟文件系统地址的范围)。使用固定大小的表通常限制了文件系统的最大大小,即仅允许向文件系统分配预定的最大数目的组块。可以在硬件中实现固定大小的表,而且在任何情况下,增加表大小以允许支持更大的文件系统可能是行不通的。
[0004]为特定的文件系统选择指导组块大小实质上是用户期望文件系统增长多大和存储空间的利用效率之间的折衷。一般而言,选择较小的指导组块大小提供了高效的存储空间利用率但是限制了文件系统的最大大小,而选择较大的指导组块大小经常导致低效的存储空间利用但是增加了最大的文件系统大小。

【发明内容】

[0005]在某些实施例中,提供了一种用于扩大用于文件系统的存储空间的方法和数据存储系统,该文件系统包括从多个带区集中选择的多个组块,其中文件系统的虚拟地址空间被映射到与组块关联的物理存储地址。该方法包含保持组块数据库以跟踪与文件系统关联的组块,组块数据库包含固定数量的条目,每一条目能够存储与分配给文件系统的一部分存储空间的开始地址和长度相关的信息;接收请求以扩大文件系统;基于组块数据库识别与文件系统关联的最后组块;当至少一个组块可用于向文件系统分配时,从与最后的组块相同的带区集分配该至少一个组块且该至少一个组块与最后的组块连续;以及更新组块数据库中与最后的组块关联的条目以反映由所分配的至少一个组块所表示的连续存储空间的长度的增加。
[0006]在各个可供替换的实施例中,在确定来自与该最后的组块相同的带区集且与该最后的组块连续的至少一个组块可用于向文件系统分配之前,预留来自与该最后的组块相同的带区集且与该最后的组块连续的至少一个组块,以便该至少一个组块保持可用。
[0007]确定来自与最后的组块相同的带区集且与最后的组块连续的至少一个组块是否可用于向文件系统分配可涉及:确定针对文件系统的活动组块串长度以及当活动组块串长度小于组块串偏置以及存在来自与最后的组块相同的带区集且与最后的组块连续的至少一个组块时确定存在可用于向文件系统分配的至少一个组块。在这个方面,分配至少一个组块可涉及:从与最后的组块相同的带区集分配多达N个组块,且这N个组块与最后的组块连续,其中N等于组块串偏置减去活动组块串长度。该方法还可涉及:确定组块串偏置,例如通过基于带区集的数量和文件系统的数量确定组块串偏置。
[0008]该方法还可涉及:当来自与最后的组块相同的带区集且与最后的组块连续的这样的至少一个组块被确定为不可用时,从不同的带区集分配至少一个组块。
[0009]在某些实施例中,可以在硬件中保持组块数据库,且数据存储系统可以包括在基于软件的组块分配器和该硬件之间耦合的接口,并且组块分配器通过该接口访问组块数据库。
[0010]在其它实施例中,提供了一种用于以细粒度、可缩放的方式扩大用于文件系统的存储空间的方法和数据存储系统。该方法包括:由文件服务器确定针对一跨度的组块串偏置,其中该组块串偏置指示了与用于文件系统的地址翻译表中的条目相关联的磁盘空间的多个连续的组块。该方法包括由文件服务器接收对于扩大用于文件系统的磁盘空间的请求。该方法包括由组块分配器至少部分地基于在带区集上的多个未使用的组块的数目和正由文件系统使用的带区集上的组块的数目,对一组带区集中的每一带区集记分。该方法包括由组块分配器分配带区集上的具有最高记分的组块,其中所分配的组块位于预留用于其他文件系统的组块串之外。
[0011]确定针对一跨度的组块串偏置可以包括由文件服务器确定缺省组块串偏置。确定针对一跨度的组块串偏置可以包括由文件服务器基于带区集的数目和文件系统的数目确定组块串偏置。
[0012]对每一带区集的记分可以包括由组块分配器确定文件系统的所分配的最后的组块之后的组块可用;由组块分配器确定针对文件系统的当前带区集的偏置因子,其中当前的带区集包括文件系统的所分配的最后的组块;以及由组块分配器对具有偏置因子的当前的带区集记分。对每一带区集记分可以包括由组块分配器确定在文件系统的所分配的最后的组块之后的组块由另一文件系统使用;以及由组块分配器至少部分地基于带区集上未使用的组块的数目与预留用于其他文件系统的组块的数目之间的差,来对一组带区集中的每一带区集进行记分。对每一带区集记分可以包括由组块分配器至少部分地基于带区集上未使用的组块的数目、跨度权重、正由文件系统使用的带区集上的组块的数目、以及文件系统权重,来对一组带区集中的每一带区集进行记分。
[0013]在具有最高分数的带区集上分配组块可以包括由组块分配器选择文件系统的所分配的最后的组块之后的组块。分配带区集上的具有最高分数的组块可以包括由组块分配器搜索长度至少为组块串偏置的未预留的组块的组块串;以及,由组块分配器选择该组块串中的第一组块。分配带区集上具有最高分数的的组块可以包括由组块分配器搜索其长度至少是组块串偏置的预留组块的组块串;以及由组块分配器选择在该组块串的后半部分中的第一组块。
[0014]在又一实施例中,提供了一种用于扩大用于文件系统的存储空间的方法和数据存储系统,该文件系统包括从多个带区集选择的多个组块,其中文件系统的虚拟地址空间被映射到与组块关联的物理存储地址。该方法涉及:保持组块数据库以跟踪与多个文件系统关联的组块,该组块数据库包含固定数量的条目,每一条目能够存储与向文件系统中的一个文件系统所分配的一部分存储空间的开始地址和长度相关的信息;接收用于扩大多个文件系统中的一文件系统的请求;选择从其处分配存储空间的带区集;利用带区集上的开始地址从组块数据库获取条目,其中该条目与多个文件系统中的不同文件系统的活动组块串相对应;识别带区集上位于N个组块之后的至少一个组块,上述N个组块跟在活动组块串中最后的组块之后且与该最后的组块连续,其中N等于组块串偏置减去活动组块串的活动组块串长度;以及如果该至少一个组块可用,则向文件系统分配至少一个组块。
[0015]在各种可供替换的实施例中,该方法可以进一步涉及:继续利用带区集上的开始地址从组块数据库获取条目以及识别位于N个组块之后的至少一个组块,上述N个组块跟在活动组块串中的最后的组块之后且与该最后的组块连续,直到该至少一个组块可用。识别带区集上的至少一个组块可涉及:识别等于组块串偏置的可用的组块的组块串或识别带区集上可用的组块的最长组块串。
[0016]在又一其它实施例中,提供了一种用于扩大用于文件系统的存储空间的方法和数据存储系统,该文件系统包括从多个带区集中选择的多个组块,其中文件系统的虚拟地址空间被映射到与组块关联的物理存储地址。该方法涉及:保持组块数据库以跟踪与多个文件系统关联的组块,组块数据库包含固定数量的条目,每一条目能够存储与向文件系统中的一个文件系统所分配的一部分存储空间的开始地址和长度相关的信息;接收用于扩大多个文件系统中的一文件系统的请求;确定针对该请求的组块的数目超过组块串偏置中的组块数目乘以跨度上带区集的数目;通过将针对该请求的组块的数目除以带区集的数目来确定从每一带区集分配的组块的数目;在每一带区集上搜索可用的组块的组块串,其等于要从每一带区集分配的组块的数目;从每一带区集分配可用组块的组块串;以及,针对可用组块的每一组块串在组块数据库中创建与可用组块的组块串关联的条目,其中条目包括组块串的长度。
[0017]实施例还可以包括配置成执行上述方法中的任何一个方法的计算机程序。
[0018]实施例还可以包括装置,该装置包含有形的计算机可读介质,在该有形的计算机可读介质中包含配置成执行上述方法中的任何一个方法的计算机程序。
[0019]可以公开和主张保护另外的实施例。
【附图说明】
[0020]通过参考随后的具体描述将更容易理解本发明的前述特征,参考附图,其中:
[0021]图1是表示根据本发明一示例性实施例的文件存储系统的示意性框图;
[0022]图2是表示根据本发明一示例性实施例示出文件系统的通用格式的示意性框图;
[0023]图3是表示在本发明的示例性实施例中示出在存储块与带区集(stripeset)之间的关系的不意图;
[0024]图4是表示文件存储系统的文件服务器的示意性框图;
[0025]图5是表示带区集中组块的示意性表示,其包含已经被使用的一些组块以及可向文件系统分配的一些空闲的组块;
[0026]图6是表示如在示例性的现有技术的实施例中在特定的点适时可以找到的表9025的示意性表示,其中在单独的表条目中存储用于每一新的组块的信息;
[0027]图7是表示如在示例性的实施例中在特定的点适时可以找到的表9025的示意性表示,其中可以在单个表条目中存储针对连续组块的信息,代替在图6中示出的表9025。
[0028]图8是表不根据一不例性实施例不出图7中的表条目9030如何被修改成合并两个另外的连续组块的表9025的示意性表示;
[0029]图9是表示根据一示例性实施例将图4中的文件系统空间扩大相同大小(例如X)的三个组块的示意性表示;
[0030]图10是表示根据一示例性实施例的用于通用组块分配过程的流程图;
[0031]图11是表示选择带区集和要向文件系统分配的带区集上的组块的方法的示例性流程图;
[0032]图12是表示选择带区集的方法的示例性流程图,在当前的带区集包含针对所示出和描述的该文件系统的可扩大的活动组块串时将从该带区集分配组块;
[0033]图13是表示选择带区集的方法的示例性流程图,在当前的带区集不包含针对所示出和描述的该文件系统的可扩大的活动组块串时将从该带区集分配组块;
[0034]图14是表示存储向文件系统分配的组块串的文件系统空间中的开始和结束地址的示例性表;
[0035]图15是表示减小组块串偏置以提高横跨跨度(span)的负载平衡的方法的示例性流程图;
[0036]图16是表示搜索带区集上用于向文件系统分配的非预留的组块的方法的示例性流程图;以及
[0037]图17是表示横跨跨度中的所有带区集分配存储空间的方法的示例性流程图。
[0038]应该注意的是,前述的附图和附图中描述的元件不一定绘制成一致的比例或绘制成任何比例。除非上下文另有说明,否则类似的元件由类似的数字指示。
【具体实施方式】
[0039]定义。如在说明书和所附权利要求书中所使用的,随后的术语应该具有所指示的含义,除非上下文另有需求:
[0040]“存储设备”是用于存储数据的设备或系统。存储设备可以包括一个或多个磁或磁光或光盘驱动器、固态存储设备、或磁带。为了方便起见,存储设备有时被称为“磁盘”或“硬盘”。数据存储系统可以包括具有相同或不同存储容量的相同或不同类型的存储设备。
[0041]“RAID控制器”是将若干存储设备的存储容量组合到存储空间的虚拟块中的设备或系统,该存储空间的虚拟块或者可以被称为“系统驱动器” (“SD”)、“逻辑单元” (“LU”或“LUN”)、或“卷”。典型地,SD大于单个存储设备,从若干存储设备获取空间,且包含冗余信息,以便其能够经得起某些数量的磁盘的故障而没有数据损失。在示例性的实施例中,每一SD与唯一的标识符相关联,该唯一的标识符在下文中被称为“逻辑单元标识符”或“LUID”,且每一 SD将不大于预定的最大尺寸,例如2TB-64TB或更大的。当向SD发送命令时,RAID控制器典型地同时向SD的所有存储设备转发命令。RAID控制器有助于克服典型的存储设备的三个主要限制,即存储设备典型地是存储系统中最慢的组件,其典型地最可能遭受灾难性的故障,且其典型地具有相对较小的存储容量。
[0042]“RAID系统”是包含一个或多个RAID控制器和多个存储设备的设备或系统。典型地,RAID系统将包含两个RAID控制器(以便在另一个故障的情况下,一个能够保持工作,以及还在两个都正常工作时共享负载)和许多存储设备。在示例性的实施例中,RAID系统典型地配置有2个和32个之间的SD,虽然在各个实施例中,示例性的RAID系统可以有更多个SD0当文件服务器需要存储或获取数据时,其向RAID系统的RAID控制器发送命令,其继而负责向前向单个存储设备路由命令并在必要时存储或获取数据。利用一些RAID系统,可以在SD之间建立镜像关系,使得为了冗余的目的,向一个SD (被称为“主SD”)写入的数据由RAID系统自动地向另一 SD(在本申请中被称为“辅助SD”或“镜像SD”)写入。可以由与主SD相同的RAID系统或由不同的本地或远程RAID系统管理辅助SD。镜像SD有效地提供了跨SD的RAID 1+0功能,以提供从一 SD的丢失或损坏中的恢复或在一些情形下可能从甚至多个SD的丢失或损坏中的恢复。
[0043]“文件系统”是在文件存储系统中存储的文件和目录(文件夹)的结构。在一些实施例中,文件系统是在一个或多个带区集的组块上驻留的磁盘空间的虚拟化区域。在文件存储系统中,典型地使用多个虚拟存储结构来管理文件系统,且在示例性实施例中,使用被称为范围、带区集和跨度的虚拟存储结构的层级来管理文件系统。“范围”由主SD独自或应该包含相同的数据并从而将相同的存储容量提供为单个SD的主/辅助SD对组成。“带区集”由一个或多个范围组成。在一些实施例中,带区集可以包含多达三十二(32)个逻辑单元(“LU”)。如果其全部组块都被使用,则该带区集是“满的”。否则,该带区集是“不满的”。“跨度”由一个或多个带区集(例如,多达64个带区集,其中带区集不需要彼此具有相同的容量或包含相同数目的LU)。在一些实施例中,跨度包含多个文件系统(例如,多达128个文件系统)组成。从而,跨度最终由一个或多个SD组成(典型地4到50个SD)。跨度可以被划分成一个或多个文件系统,每一文件系统具有单独的名称和标识符以及潜在不同的特性(例如,一文件系统可以被格式化具有32KB簇而另一个文件系统具有4KB簇,一文件系统可以是蠕虫而另
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1