磁盘阵列的扩容方法和系统转让专利

申请号 : CN200910205507.X

文献号 : CN102043589B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭楠林宇

申请人 : 成都市华为赛门铁克科技有限公司

摘要 :

本发明实施例公开一种磁盘阵列的扩容方法及系统,该方法包括:检测到新增的物理磁盘时,获取新增之前的第二对应关系,所述第二对应关系包括物理磁盘的磁盘单元与逻辑磁盘的逻辑单元之间的对应关系;将所述新增的物理磁盘划分为磁盘单元;更新新增之后的物理磁盘与逻辑单元相对应的第一对应关系;判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与相应的所述第一对应关系中的物理磁盘是否为同一块物理磁盘,如果不同,则将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中;更新所述第二对应关系。所述方法和系统能够实现磁盘阵列的动态扩容。

权利要求 :

1.一种磁盘阵列的扩容方法,其特征在于,包括:检测到新增的物理磁盘时,获取新增之前的第二对应关系,所述第二对应关系包括物理磁盘的磁盘单元与逻辑磁盘的逻辑单元之间的对应关系;

将所述新增的物理磁盘划分为磁盘单元;

更新新增之后的物理磁盘与逻辑单元相对应的,以把物理磁盘标识均匀的指定给每个逻辑磁盘的逻辑单元为原则的第一对应关系;

判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与相应的所述第一对应关系中的物理磁盘是否为同一块物理磁盘,如果不同,则将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中;

更新所述第二对应关系。

2.根据权利要求1所述的方法,其特征在于,所述将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中包括:将移出数据的磁盘单元设置为非可写状态,将所述数据搬移到新分配的磁盘单元中,回收所述移出数据的磁盘单元,并将所述新分配的磁盘单元设置为可写状态。

3.根据权利要求1或2所述的方法,其特征在于,所述更新新增之后的物理磁盘与逻辑单元相对应的,以把物理磁盘标识均匀的指定给每个逻辑磁盘的逻辑单元为原则的第一对应关系包括:保持原物理磁盘的磁盘标识不变,为新增的物理磁盘分配磁盘标识;

为逻辑磁盘中的逻辑单元确定所对应的物理磁盘标识。

4.根据权利要求3所述的方法,其特征在于,所述为逻辑磁盘中的逻辑单元确定所对应的物理磁盘标识包括:生成各个逻辑磁盘对应的逻辑单元队列,将每个逻辑单元队列作为布局表的一列;

将物理磁盘标识按照预定顺序分配给逻辑单元。

5.一种磁盘阵列的扩容系统,其特征在于,包括:获取单元,用于检测到新增的物理磁盘时,获取新增之前的第二对应关系,所述第二对应关系包括物理磁盘的磁盘单元与逻辑磁盘的逻辑单元之间的对应关系;

划分单元,用于将所述新增的物理磁盘划分为磁盘单元;

第一更新单元,用于更新新增之后的物理磁盘与逻辑单元相对应的,以把物理磁盘标识均匀的指定给每个逻辑磁盘的逻辑单元为原则的第一对应关系;

判断单元,用于判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与相应的所述第一对应关系中的物理磁盘是否为同一块物理磁盘;

搬移单元,用于判断单元的判断结果为不同时,将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中;

第二更新单元,用于更新所述第二对应关系。

6.根据权利要求5所述的系统,其特征在于,所述搬移单元包括:处理子单元,用于当所述判断单元的判断结果为不同时,将移出数据的磁盘单元设置为非可写状态,将所述数据搬移到新分配的磁盘单元中;

回收子单元,用于回收所述移出数据的磁盘单元,并将所述新分配的磁盘单元设置为可写状态。

7.根据权利要求5或6所述的系统,其特征在于,所述第一更新单元包括:标识分配子单元,用于保持原物理磁盘的磁盘标识不变,并为新增的物理磁盘分配磁盘标识;

确定子单元,用于为逻辑磁盘中的逻辑单元确定所对应的物理磁盘标识。

8.根据权利要求7所述的系统,其特征在于,所述确定子单元具体用于:生成各个逻辑磁盘对应的逻辑单元队列,将每个逻辑单元队列作为布局表的一列;将物理磁盘标识按照预定顺序分配给逻辑单元。

说明书 :

磁盘阵列的扩容方法和系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种磁盘阵列的扩容方法和系统。

背景技术

[0002] 随着计算机技术的迅猛发展,各种基于存储技术的业务系统越来越多,相应的数据量也迅速膨胀。当进行数据存储的存储系统容量不能满足用户需求时,就需要对存储系统进行扩容。
[0003] 存储系统中一个很重要的组成部分就是磁盘阵列,它一般由很多物理磁盘组成。在对存储系统扩容时,需要在磁盘阵列中增加物理磁盘,出于安全、平均分配操作压力的考虑,需要在分配增加硬盘之后将原来保存的信息平均分配到新的磁盘阵列中去,现有技术中在进行分配时需要先备份原磁盘阵列中的数据,再重建新的大容量磁盘阵列并恢复数据。
[0004] 这种方法在进行磁盘阵列的扩容时,磁盘阵列无法正常工作,也即:该磁盘阵列扩容方法无法实现在线的动态扩容。

发明内容

[0005] 有鉴于此,本发明要解决的技术问题是,提供一种磁盘阵列的扩容方法及系统,能够实现磁盘阵列的动态扩容。
[0006] 为此,本发明实施例采用如下技术方案:
[0007] 本发明实施例提供一种磁盘阵列的扩容方法,包括:
[0008] 检测到新增的物理磁盘时,获取新增之前的第二对应关系,所述第二对应关系包括物理磁盘的磁盘单元与逻辑磁盘的逻辑单元之间的对应关系;
[0009] 将所述新增的物理磁盘划分为磁盘单元;
[0010] 更新新增之后的物理磁盘与逻辑单元相对应的第一对应关系;
[0011] 判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与相应的所述第一对应关系中的物理磁盘是否为同一块物理磁盘,如果不同,则将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中;
[0012] 更新所述第二对应关系。
[0013] 本发明实施例还提供一种磁盘阵列的扩容系统,包括:
[0014] 获取单元,用于检测到新增的物理磁盘时,获取新增之前的第二对应关系,所述第二对应关系包括物理磁盘的磁盘单元与逻辑磁盘的逻辑单元之间的对应关系;
[0015] 划分单元,用于将所述新增的物理磁盘划分为磁盘单元;
[0016] 第一更新单元,用于更新新增之后的物理磁盘与逻辑单元相对应的第一对应关系;
[0017] 判断单元,用于判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与相应的所述第一对应关系中的物理磁盘是否为同一块物理磁盘;
[0018] 搬移单元,用于判断单元的判断结果为不同时,将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中;
[0019] 第二更新单元,用于更新所述第二对应关系。
[0020] 对于上述技术方案的技术效果分析如下:
[0021] 将物理磁盘划分成离散的磁盘单元,并建立逻辑磁盘,通过获取逻辑磁盘的逻辑单元与物理磁盘的磁盘单元之间的第二对应关系;当进行物理磁盘的扩容时,通过建立逻辑磁盘中逻辑单元与物理磁盘的第一对应关系,并比较逻辑单元在第一对应关系和第二对应关系中所对应的物理磁盘是否相同来进行数据的搬移,实现了动态在线扩容;且进行数据搬移中,无需对数据进行备份,大大提高了磁盘扩容的效率。

附图说明

[0022] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1为本发明实施例一种磁盘阵列的扩容方法流程示意图;
[0024] 图2为本发明实施例另一种磁盘阵列的扩容方法流程示意图;
[0025] 图3a为本发明实施例物理磁盘的磁盘单元划分示意图;
[0026] 图3b为本发明实施例一种布局表的实现结构示意图;
[0027] 图3c为本发明实施例另一种布局表的实现结构示意图;
[0028] 图3d为本发明实施例映射表的实现结构示意图;
[0029] 图4为本发明实施例一种数据存储方法流程示意图;
[0030] 图5为本发明实施例一种磁盘阵列的扩容系统结构示意图;
[0031] 图6为本发明实施例另一种磁盘阵列的扩容系统结构示意图;
[0032] 图7为本发明实施例一种数据存储系统结构示意图。

具体实施方式

[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 以下,结合附图详细说明本发明实施例磁盘阵列的扩容方法及系统的实现。
[0035] 图1为本发明实施例磁盘阵列的扩容方法流程示意图,如图1所示,包括:
[0036] 步骤101:检测到新增的物理磁盘时,获取新增之前的第二对应关系,所述第二对应关系包括物理磁盘的磁盘单元(DU,Disk Unit)与逻辑磁盘(LD,logic Disk)的逻辑单元之间的对应关系。
[0037] 其中,一般当磁盘阵列所对应的逻辑磁盘数量确定后,则磁盘阵列中的物理磁盘数量可以改变,而逻辑磁盘数量一般不可以随便改变。
[0038] 步骤102:将上述新增的物理磁盘划分为磁盘单元。
[0039] 其中,步骤101和步骤102之间的执行顺序不限制。
[0040] 步骤103:更新新增之后的物理磁盘与逻辑单元相对应的第一对应关系。
[0041] 步骤104:判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与相应的所述第一对应关系中的物理磁盘是否为同一块物理磁盘,如果不同,则执行步骤105。
[0042] 步骤105:将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中。
[0043] 步骤106:更新所述第二对应关系。
[0044] 通过以上的更新、保存操作可以方便系统在进行下一次的磁盘扩容时,快捷的获取到所述第二对应关系,从而实现快捷、方便的动态扩容。并且,所述第二对应关系还可以用于支持正常的数据读写。
[0045] 图1所示本发明实施例,将磁盘划分成离散的磁盘单元,并建立逻辑磁盘,获取逻辑磁盘的逻辑单元与物理磁盘的磁盘单元之间的第二对应关系;当进行物理磁盘的扩容时,通过建立逻辑磁盘中逻辑单元与物理磁盘的第一对应关系,并比较逻辑单元所对应第一对应关系和第二对应关系中的物理磁盘是否相同来进行数据的搬移,实现了动态在线扩容;且进行数据搬移中,无需对数据进行备份,大大提高了磁盘扩容的效率。
[0046] 以下,给出图1所示本发明实施例的一种具体实现方法,在该实现方法中,通过布局表记录所述第一对应关系;通过映射表记录所述第二对应关系;如图2所示,包括如下步骤:
[0047] 步骤201:检测到新增物理磁盘时,保持原物理磁盘的磁盘标识不变,并为新增物理磁盘分配磁盘标识,并确定新增物理磁盘与槽位之间的对应关系。
[0048] 其中各个物理磁盘的磁盘标识用于对物理磁盘进行区分,因此,各个物理磁盘的磁盘标识唯一。例如,可以使用整数依次为各个物理磁盘分配磁盘标识等。另外,还可以不为物理磁盘分配其他的标识而直接将磁盘对应的槽位号作为磁盘标识,这里并不限制。
[0049] 这里,确定新增物理磁盘与槽位之间的对应关系仅用于对物理磁盘的管理,为可选步骤。
[0050] 步骤202:将新增物理磁盘分别根据磁盘单元的容量进行划分,得到磁盘单元。
[0051] 其中,每个物理磁盘划分得到的磁盘单元形成一个磁盘单元缓冲池。
[0052] 将每个新增物理磁盘的磁盘空间划分成离散的磁盘单元,组成磁盘单元缓冲池,且,可以给每个磁盘单元分配相应的DU标识,所述DU标识由两部分组成:磁盘标识和磁盘内该磁盘单元的偏移号。如图3a所示,假设存在磁盘0~磁盘x,x为大于等于1的整数,按照给定磁盘单元的尺寸(大小)将每个磁盘进行等分,并为每个磁盘单元分配DU标识,所述标识包括DU所属物理磁盘以及DU在该磁盘上的偏移量,比如图3a中的DU 3:0表示磁盘3的0号DU。另外,所述DU的尺寸必须是磁盘最大可配置分条深度的整数倍,但是具体数值并不限制,一般可以为1MB的倍数。
[0053] 步骤203:根据逻辑磁盘数量以及当前物理磁盘数量确定逻辑磁盘的逻辑单元与物理磁盘之间的第一对应关系,生成布局表。
[0054] 其中,生成布局表的原则是使物理磁盘标识均匀分布在所述布局表中,也即把物理磁盘标识均匀的指定给每个逻辑磁盘的逻辑单元。
[0055] 其中,具体如何生成布局表与磁盘阵列的级别有关。
[0056] 例如,磁盘阵列的级别为RAID10时,需要逻辑磁盘数量为偶数,逻辑磁盘所对应的物理磁盘也为偶数。假设,逻辑磁盘数量为4,标识分别为:LD1、LD2、LD3以及LD4,物理磁盘数量为7,分别为P0、P1...P6,则生成布局表时,只能使用物理磁盘中的6个磁盘与所述逻辑磁盘对应,而不能使用7个。假设,使用P0~P5共6个物理磁盘与逻辑磁盘的逻辑单元生成布局表,具体方法可以为:
[0057] 依照第二预定规则,生成各个逻辑磁盘对应的逻辑单元队列,将每个逻辑单元队列作为布局表的一列;
[0058] 依照物理磁盘标识的顺序,依次循环地将物理磁盘标识在布局表中逐行指定给各个逻辑单元。
[0059] 所述第二预定规则为逻辑磁盘中的逻辑单元排序的规则,这里并不限制。
[0060] 如图3b所示,这里直接将物理磁盘按P0~P5的顺序逐行依次指定给各个逻辑磁盘的逻辑单元,从而每个逻辑磁盘的逻辑单元均对应着一个物理磁盘标识。这里,为了使得逻辑单元与物理磁盘之间的对应关系更为直观,仅将物理磁盘标识的数字部分在表格中示出,从表格中可以看出,物理磁盘的标识在布局表中分布均匀。
[0061] 或者,磁盘阵列的级别为RAID0或RAID5时,逻辑磁盘数量以及物理磁盘的数量可以没有限制。假设,逻辑磁盘数量为4,标识分别为:LD1、LD2、LD3以及LD4,物理磁盘数量为7,分别为P0、P1...P6,则生成布局表的方法可以为:
[0062] 依照第二预定规则,生成各个逻辑磁盘对应的逻辑单元队列,将每个逻辑单元队列作为布局表的一列;
[0063] 将物理磁盘标识按照预定顺序分配给逻辑单元。
[0064] 具体的,可以为:将布局表中每两行逻辑单元作为一组,依照物理磁盘标识的顺序,依次循环地将物理磁盘标识逐行指定给每组的各个逻辑单元,且每组的第一个逻辑单元被指定的物理磁盘标识依照物理磁盘标识的顺序依次增加。
[0065] 如图3c所示,这里将物理磁盘按P0~P6的顺序逐行指定给各个逻辑磁盘的逻辑单元,且每两行为一组,每组第一个逻辑单元被指定的物理磁盘标识依物理磁盘标识的顺序依次增加。从表格中可以看出,物理磁盘的标识在布局表中分布均匀,且,物理磁盘标识P0~P6均出现在布局表中。
[0066] 这里,逻辑单元和物理磁盘之间的对应关系确定方法可以但不限定为图3b和图3c所示的方法。
[0067] 步骤204:获取新增物理磁盘之前记录逻辑磁盘的逻辑单元与物理磁盘的磁盘单元之间第二对应关系的映射表。
[0068] 其中,所述第二对应关系可以使用如图3d所示的映射表进行记录。在图3d中为了更为直观的表现逻辑单元与物理磁盘的磁盘单元之间的对应关系,所述映射表的每列标识逻辑磁盘,每列中的各个表格对应逻辑磁盘的逻辑单元,另外,表格中仅为磁盘单元的标识号,如图3d,逻辑磁盘的第0个逻辑单元所对应的磁盘单元标识号为“0:0”,表示为第0号物理磁盘的第0个磁盘单元,oxffffffff表示逻辑单元为空。具体的,所述磁盘单元标识可以以不同的方式实现,这里并不限定。
[0069] 步骤205:根据所述第一对应关系和第二对应关系,依次判断各个逻辑磁盘中各个非空逻辑单元所对应的物理磁盘是否为同一块磁盘,如果不同,执行步骤206;如果相同,返回判断逻辑磁盘中下一个非空的逻辑单元。
[0070] 本步骤中,所述非空的逻辑单元一般是指第二对应关系中非空的逻辑单元。当所述第一对应关系与第二对应关系分别以布局表和映射表的方式实现时,只需要分别从布局表和映射表中提取每个逻辑单元对应的物理磁盘标识并进行比较即可。
[0071] 步骤206:在第一对应关系中该非空逻辑单元对应的物理磁盘上为该逻辑单元新分配一个空的磁盘单元。
[0072] 步骤207:将第二对应关系中该逻辑单元对应的磁盘单元中数据设置为非可写状态,并将所述数据搬移到新分配的磁盘单元中,回收所述第二对应关系中该逻辑单元对应的磁盘单元,将该逻辑单元对应的磁盘单元中的数据设置为可写状态。
[0073] 这里,可以为各个逻辑单元对应的数据设置可写、不可写状态,并在逻辑单元对应的数据进行搬移时,首先将该数据设置为不可写状态,从而防止用户修改搬移中的数据。
[0074] 而且,在数据搬移的过程中,每次仅有一个磁盘单元中的数据无法修改,而其他磁盘单元中的数据均可正常使用,从而大大减少了现有技术中由于数据大量备份导致的用户等待访问时间。
[0075] 步骤208:根据所述分配结果更新并保存所述记录逻辑磁盘的逻辑单元与物理磁盘的磁盘单元之间第二对应关系的映射表。
[0076] 更新所述映射表。其中,当映射表中各个非空逻辑单元均进行了步骤204的判断并完成了更新后,所获得的映射表中记录的即为新增物理磁盘后逻辑磁盘的逻辑单元与物理磁盘的磁盘单元之间的第二对应关系。将该第二对应关系,也即映射表进行存储,以备下一次新增物理磁盘时使用。
[0077] 一般的,物理磁盘阵列所对应的逻辑磁盘数量一旦确定后,并不会随便更改。
[0078] 步骤209:获取第二对应关系中为空的逻辑单元,并相应将第一对应关系中的所述逻辑单元设置为空,且不为该逻辑单元分配对应的磁盘单元;当前处理流程结束。
[0079] 也即:对逻辑单元和物理磁盘单元的管理采用写时分配技术,只有需要进行数据写入时,才会为相应的逻辑单元分配物理磁盘单元。当逻辑单元为空时,不为该逻辑单元分配磁盘单元。
[0080] 步骤209可以在步骤204之后的任意时刻进行,这里并不限制其与步骤205~步骤208的执行顺序。
[0081] 在以上为物理磁盘建立逻辑磁盘,通过逻辑磁盘管理物理磁盘中的数据的思想下,本发明实施例还提供一种数据存储方法,如图4所示,包括:
[0082] 步骤401:根据磁盘单元的容量将每个物理磁盘划分为磁盘单元(DU,Disk Unit);建立预设数量个逻辑磁盘(LD,logic Disk),将每个逻辑磁盘根据磁盘单元的容量划分为逻辑单元;所述预设数量个逻辑磁盘的总容量与所述物理磁盘的总容量相等。
[0083] 其中,逻辑磁盘的具体数量可以自主设置,例如为4、5、6个等,这里并不限制。
[0084] 磁盘单元的划分参考步骤202以及图3a,这里不再赘述。
[0085] 步骤402:建立逻辑磁盘的逻辑单元与物理磁盘之间的第一对应关系。
[0086] 其中,可以通过生成布局表的形式实现所述第一对应关系的建立。布局表的具体生成方法参考步骤203以及图3b和3c,这里不赘述。
[0087] 步骤403:当进行数据写入时,根据磁盘单元的容量确定待写入数据所需的逻辑单元和磁盘单元的数量M,为待写入数据分配M个空的逻辑单元。
[0088] 其中,可以随机为待写入数据分配空的逻辑单元,或者,依照逻辑单元标识的排列顺序,从靠前的逻辑单元中选择M个空的逻辑单元分配给所述待写入数据。
[0089] 步骤404:根据所述第一对应关系,查找所述M个空的逻辑单元中每个逻辑单元所对应的物理磁盘。
[0090] 步骤405:在所述对应的物理磁盘上为该逻辑单元分配磁盘单元,并将所述待写入数据写入所述分配的磁盘单元中。
[0091] 其中,在步骤405之后,进一步可以包括:
[0092] 步骤406:建立并保存逻辑单元与为该逻辑单元分配的磁盘单元之间的第二对应关系。
[0093] 图1所示为初始进行数据存储时的方法流程示意图,此时,还没有建立逻辑单元与磁盘单元之间的第二对应关系。而当建立了所述第二对应关系后,后续进行数据的写入或者删除等操作时,直接更新第二对应关系即可。一般的,第二对应关系中将根据逻辑磁盘标识以及每个逻辑磁盘中各个逻辑单元的标识排列所述对应关系。如图3d所示,可以使用映射表进行第一对应关系的记录。具体的映射表生成方法参考步骤204,这里不赘述。
[0094] 另外,当建立了第二对应关系时,还可以根据该第二对应关系确定空的逻辑单元(步骤403)。此时,步骤403可以改变为:
[0095] 步骤403’:查找所述第二对应关系(如映射表)中位置靠前的M个空的逻辑单元,将该M个空的逻辑单元分配给待写入数据。
[0096] 步骤406改变为:更新所述第二对应关系(映射表)。
[0097] 另外,当进行数据的删除和改写等时,直接查找到对应的逻辑单元,并根据第二对应关系得到磁盘单元,进行磁盘单元中数据的删除或改写即可,这里不赘述。
[0098] 本发明实施例的数据存储方法中,对逻辑磁盘和物理磁盘分别划分逻辑单元或磁盘单元,并且根据逻辑单元与物理磁盘之间的第一对应关系以及逻辑单元与磁盘单元之间的第二对应关系完成数据处理,从而实现了对数据的存储等处理。
[0099] 图5为本发明实施例一种磁盘阵列的扩容系统,如图5所示,该系统包括:获取单元510、划分单元520、第一更新单元530、判断单元540、搬移单元550以及第二更新单元560;其中,
[0100] 获取单元510,用于检测到新增物理磁盘时,获取新增物理磁盘之前的第二对应关系,所述第二对应关系包括磁盘单元与逻辑单元之间的对应关系;
[0101] 划分单元520,用于将新增的物理磁盘划分为磁盘单元;
[0102] 第一更新单元530,用于更新新增之后的物理磁盘与逻辑单元相对应的第一对应关系;具体的,
[0103] 第一更新单元530可以用于,将新增物理磁盘之后的物理磁盘与逻辑磁盘相对应,建立包含新增物理磁盘之后的物理磁盘与逻辑单元相对应的第一对应关系;
[0104] 判断单元540,用于判断所述第二对应关系中的非空磁盘单元所对应的物理磁盘与所述第一对应关系中的物理磁盘是否为同一块物理磁盘;
[0105] 搬移单元550,用于判断单元540的判断结果为不同时,将磁盘单元的数据按照第一对应关系搬移到对应的物理磁盘中;
[0106] 第二更新单元560,用于更新所述第二对应关系。
[0107] 通过第二更新单元560,以更新、保存所述第二对应关系,从而可以使得系统中的获取单元在下一次的磁盘扩容时,快捷的获取到所述第二对应关系,从而快捷、方便的实现动态扩容;
[0108] 所述搬移单元540具体可以用于:判断单元530的判断结果为不同时,将移出数据的磁盘单元设置为非可写状态,将所述数据搬移到新分配的磁盘单元中,回收所述移出数据的磁盘单元,并将所述新分配的磁盘单元设置为可写状态。
[0109] 图5所示的磁盘阵列的扩容系统中,将磁盘划分成离散的磁盘单元,并建立逻辑磁盘,通过逻辑磁盘的逻辑单元与物理磁盘的磁盘单元之间建立第二对应关系;当进行物理磁盘的扩容时,通过第一更新单元530更新逻辑磁盘中逻辑单元与物理磁盘的第一对应关系,判断单元540比较逻辑单元所对应第一对应关系和第二对应关系中的物理磁盘是否相同后,由搬移单元550进行数据的搬移,实现了动态在线扩容;且进行数据搬移中,无需对数据进行备份,大大提高了磁盘扩容的效率。
[0110] 如图6所示,所述第一更新单元530可以包括:
[0111] 标识分配子单元5301,用于保持原物理磁盘的磁盘标识不变,并为新增物理磁盘分配磁盘标识;
[0112] 确定子单元5302,用于为逻辑磁盘中的逻辑单元确定所对应的物理磁盘标识。
[0113] 具体的,所述确定子单元5302可以用于:生成各个逻辑磁盘对应的逻辑单元队列,将每个逻辑单元队列作为布局表的一列;依照物理磁盘标识的顺序,将物理磁盘标识在布局表中逐行指定给各个逻辑单元。
[0114] 或者,所述确定子单元5302可以用于:生成各个逻辑磁盘对应的逻辑单元队列,将每个逻辑单元队列作为布局表的一列;将物理磁盘标识按照预定顺序分配给逻辑单元。具体的,可以为:将布局表中每两行逻辑单元作为一组,依照物理磁盘标识的顺序将物理磁盘标识逐行指定给每组的各个逻辑单元,且每组的第一个逻辑单元被指定的物理磁盘标识依照物理磁盘标识的顺序依次增加。
[0115] 如图6所示,所述搬移单元550可以包括:
[0116] 处理子单元5501,用于当所述判断单元的判断结果为不同时,将移出数据的磁盘单元设置为非可写状态,将所述数据搬移到新分配的磁盘单元中;
[0117] 回收子单元5502,用于回收所述移出数据的磁盘单元,并将所述新分配的磁盘单元设置为可写状态。
[0118] 图6所示的系统中,给出了第一更新单元以及确定子单元的具体实现方式,以适应不同的应用环境,如适用于不同级别的磁盘阵列。
[0119] 如图7所示为本发明实施例数据存储系统结构示意图,如图7所示,包括:
[0120] 划分处理单元710,用于根据磁盘单元的容量将每个物理磁盘划分为磁盘单元;建立预设数量个逻辑磁盘,将每个逻辑磁盘根据磁盘单元的容量划分为逻辑单元;所述预设数量个逻辑磁盘的总容量与所述物理磁盘的总容量相等;
[0121] 第一关系建立单元720,用于建立逻辑磁盘的逻辑单元与物理磁盘之间的第一对应关系;
[0122] 分配单元730,用于当进行数据写入时,根据磁盘单元的容量确定待写入数据所需的逻辑单元和磁盘单元的数量M,为待写入数据分配M个空的逻辑单元;
[0123] 查找单元740,用于根据所述第一对应关系,查找所述M个空的逻辑单元中每个逻辑单元所对应的物理磁盘;
[0124] 存储单元750,在所述对应的物理磁盘上为该逻辑单元分配磁盘单元,并将所述待写入数据写入所述分配的磁盘单元中。
[0125] 进一步地,该系统还可以包括:
[0126] 第二关系建立单元760,用于建立并保存逻辑单元与为该逻辑单元分配的磁盘单元之间的第二对应关系。
[0127] 优选地,所述分配单元730具体可以用于:当进行数据写入时,根据磁盘单元的容量确定待写入数据所需的逻辑单元的数量M,从所述第二对应关系中查找得到位置靠前的M个空的逻辑单元,将所述空的逻辑单元分配给所述待写入数据。
[0128] 图7所示本发明实施例的数据存储系统中,划分处理单元710对逻辑磁盘和物理磁盘分别划分逻辑单元或磁盘单元,由第一关系建立单元720建立逻辑单元与物理磁盘之间的第一对应关系,当进行数据写入时,分配单元730可以根据逻辑单元与磁盘单元之间的第二对应关系等为待写入数据分配相应数量的空的逻辑单元,并有查找单元740根据第一对应关系查找到空的物理磁盘,进而存储单元750实现对于待写入数据的存储,从而通过对逻辑磁盘中逻辑单元的管理,完成了数据在物理磁盘中的存储。
[0129] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述的方法。
[0130] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0131] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0132] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0133] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。