一种raid级别变换方法和变换装置的制作方法

文档序号:6580434阅读:144来源:国知局
专利名称:一种raid级别变换方法和变换装置的制作方法
技术领域
本发明实施例涉及磁盘存储领域,尤其涉及一种RAID级别变换方法和变换装置。
背景技术
独立冗余磁盘阵列(RAID,RedundantArrayofIndependentDisks)或廉价冗余磁 盘阵列(RAID,RedundantArray of Independent Disks)本质上是一种在经过一定方式组合
而成的多个物理磁盘上同时存储和读取数据的磁盘体系,其目的是在于减少错误、提高 可靠度和大幅度增加存储系统的数据吞吐量。按照实现方式或功能的不同,RAID具有 不同的级别(level)。例如,若采用数据分割技术(DataStriping)实现同时对多个磁盘进 行读写操作,可以构成级别为O的RAID(RAIDO);再如,若采用磁盘镜像(DiskMirror) 技术以实现将一个磁盘的内容同步备份复制到另一个磁盘里,可以构成级别为1的 RAID (RAID 1);或者,将实现RAID O和RAID 1的技术结合,可以构成级别为10的 RAID (RAID 10 或 RAID 1+0)等等。为了满足用户的不同需求,采用RAID的存储系统应该具有改变RAID级别的功 能,即RAID级别变换;一旦RAID级别发生变换,其中的逻辑单元号(LUN,LogicUnit Number)所占空间可能发生变化。现有技术一种实现RAID级别变换的方法是计算整个 RAID的剩余空间,判断该剩余空间是否足以支持进行本次RAID级别变换时所需空间; 若满足,则从第一个LUN起,顺次判断各单个LUN的剩余空间,若当前某个LUN的剩 余空间满足该LUN进行级别变换时所需空间,则对该LUN实施级别变换;若当前LUN 的剩余空间不满足进行级别变换时所需空间,则累加计算从该当前LUN起N个LUN的 剩余空间得到一个累加值,当该累加值足够该N个LUN进行级别变换时所需空间,则逆 序将该N个LUN依次进行级别变换。发明人在对上述现有技术的长期研究和实践中发现,实现RAID级别变换时受限 于诸多条件,缺乏灵活性;同时,现有技术在数据为空时仍然为其分配空间进行级别变 换,在具体实现时显然耗费了系统的资源和时间较大。

发明内容
本发明实施例提供一种RAID级别变换方法,解决现有技术在进行RAID级别变 换时缺乏灵活性、耗费系统资源和时间的问题。一种RAID级别变换方法,包括判断系统剩余可用空间是否满足当前逻辑单元号进行RAID级别变换时所需的空 间变化量;若满足,则读取当前逻辑单元号的原映射表以及RAID级别变换后的布局表;判断所述原映射表反映的磁盘单元中数据占用为空或非空,若所述磁盘单元中 数据占用为空,则将当前逻辑单元号的RAID级别变换后的新映射表中对应的逻辑单元项设置为规定值;否则,根据RAID级别变换 后的布局表和所述原映射表,判断进行RAID 级别变换后所述磁盘单元中数据所需复制位置与进行RAID级别变换前的位置是否属于同 一物理磁盘,并根据判断结果进行映射表修改或数据搬移。一种RAID级别变换装置,包括判断模块,用于判断系统剩余可用空间是否满足当前逻辑单元号进行RAID级别 变换时所需的空间变化量;表读取模块,用于所述判断模块判断系统剩余可用空间满足当前逻辑单元号进 行RAID级别变换时所需的空间变化量时,读取所述当前逻辑单元号的原映射表和RAID 结构发生变化后的布局表;数据处理模块,用于根据所述表读取模块读取的原映射表反映的磁盘单元中数 据占用为空或非空,在所述磁盘单元中数据占用为空时将当前逻辑单元号的RAID级别变 换后的新映射表中对应的逻辑单元项设置为规定值;否则,根据RAID级别变换后的布 局表和所述原映射表,判断进行RAID级别变换后所述磁盘单元中数据所需复制位置与进 行RAID级别变换前的位置是否属于同一物理磁盘,并根据判断结果进行映射表修改或数 据搬移。本发明实施例通过判断系统剩余可用空间能够满足当前逻辑单元号进行RAID级 别变换时所需的空间变化量后,根据该当前LUN的原映射表和RAID结构发生变化后的 布局表,分别对所述原映射表反映的磁盘单元中数据占用为空或非空进行不同的处理并 以此创建当LUN的新映射表,从而完成RAID级别变换。由于本发明实施例可以针对任 何LUN进行RAID级别变换,增强了 RAID级别变换的灵活性;同时,对处于同一物理 磁盘的相同数据不进行搬移,减少了数据处理量,而且,对数据占用为空的磁盘单元在 RAID级别变换过程中不再进行物理空间的分配也提高了 RAID中磁盘空间的利用率。


图1是本发明实施例提供的RAID级别变换方法基本流程图;图2是本发明实施例提供的将整个物理磁盘空间划分成离散的物理磁盘单元示 意图;图3A是本发明实施例提供的RAID 10的布局表示意图;图3B是本发明实施例提供的RAID 0的布局表示意图;图4是本发明实施例提供的RAID 0的映射表示意图;图5是本发明实施例提供的RAID级别变换前LUN的映射表示意图;图6是本发明实施例提供的RAID级别变换装置基本逻辑结构示意图。
具体实施例方式本发明实施例提供RAID级别变换方法,通过判断系统剩余可用空间能够满足 当前单个LUN进行RAID级别变换时所需的空间变化量后,根据该LUN的原映射表和 RAID结构发生变化后的布局表,分别对所述原映射表反映的磁盘单元中数据占用为空或 非空进行不同的处理并以此创建当前LUN的新映射表,从而完成RAID级别变换。本发 明实施例还提供相应的RAID级别变换装置。以下分别进行详细说明。
请参阅图1,本发明实施例提供的RAID级别变换方法基本流程图,包括步骤S101,判断系统剩余可用空间是否满足当前LUN进行RAID级别变换时所
需的空间变化量。如前所述,RAID的级别发生变化或变换RAID级别时,该RAID中的LUN所占
空间与RAID的级别发生变化前所占空间 相比会发生变化,例如,所占空间增大或所占空 间减小。若增大的空间或减小的空间不在系统剩余可用空间之内,则系统剩余可用空间 不足以支持一次RAID级别变换,即可能导致RAID级别变换失败。因此,有必要在实 施RAID级别变换时判断系统剩余可用空间是否满足当前单个LUN进行RAID级别变换 时所需的空间变化量。在本发明实施例中,判断的方法可以是SlOl 1,查询各个物理磁盘未使用的磁盘单元以得到系统剩余可用空间。各个物理磁盘未使用的磁盘单元可以以队列(queue)的形式存在,因此,实际上 可以通过访问队列获知各个物理磁盘未使用的磁盘单元,这些未使用的磁盘单元的总和 构成了系统剩余可用空间。S1012,计算当前LUN进行RAID级别变换时所需的空间增大或减少量。此为 公知技术,不做赘述。S1013,若LUN所占空间增大或减少量小于上述系统剩余可用空间,则判断系 统剩余可用空间满足当前LUN进行RAID级别变换时所需的空间增大或减少量,从而可 以进行RAID级别变换;否则,判断系统剩余可用空间不满足当前LUN进行RAID级别 变换时所需的空间增大或减少量,RAID级别变换可能失败。此处尚需说明的是,本发明实施例是针对LUN进行RAID进行级别变换(当 针对所有LUN进行RAID级别变换完成后,RAID级别变换随之完成),不必计算整个 RAID级别变换所需空间。因此,本发明实施例并不受限于判断系统剩余可用空间是否满 足整个RAID级别变换所需空间,与现有技术相比,进行RAID级别变换的灵活性显著增强。步骤S102,若系统剩余可用空间满足当前LUN进行RAID级别变换时所需的空 间变化量,则读取当前LUN的原映射表和RAID结构发生变化后的布局表。在本发明提供的实施例中,至少需要维护两类表RAID的布局表和LUN的映 射表,其中,映射表的内容或结构依赖于布局表,即可以根据布局表生成与LUN对应的 映射表。以下分别对该两类表做说明。布局表的结构或内容取决于存储系统中的物理磁盘和逻辑磁盘(或虚拟磁盘), 并且,在存储系统上电或插拔磁盘等等事件发生时,会重新生成RAID级别对应的布局 表。布局表的结构或内容与RAID中的物理磁盘和逻辑磁盘实际上密切关联,以下举例 说明之。在本发明提供的实施例中,可以将整个物理磁盘空间划分成为离散的物理磁盘 单元(DU,Disk Unit)并以此组成缓冲池。每个物理DU以DU号标识,即DU号表示该 DU所属物理磁盘和该DU在所属物理磁盘内的偏移,而物理磁盘以磁盘身份证号表示。 如图2所示,在构成RAID的x+1个物理磁盘中,假设将第2个物理磁盘(磁盘身份证号 为2)划分为m+1个物理DU,则DU号为2:0的DU表示该DU属于磁盘身份证号为2的物理磁盘,其在该物理磁盘内的偏移为O ;再如,DU号为2:5的DU表示该DU属于磁盘身份证号为2的物理磁盘,其在该物理磁盘内的偏移为5等等。用户可以根据需要,将构成RAID的物理磁盘设置为若干个逻辑磁盘,此后,构 成RAID的物理磁盘就以逻辑磁盘呈现给用户,用户可以不必知道实际的物理磁盘。进 一步地,每一个逻辑磁盘具有逻辑磁盘单元,即逻辑DU,并且,某个逻辑DU总是对应 于某个物理DU,这样,逻辑磁盘就与整个物理磁盘空间对应。下面以6个物理磁盘(磁盘身份证号为0、1、…、4、5)和4个逻辑磁盘(LD, Logic Disk)LDO, LDU LD2和LD3为例来说明RAID的布局表。请参阅图3A和图3B,分别示出了级别为10的RAID (RAID 10)的布局表和级别 为0或5的RAID (RAID 0或RAID 5)的布局表。图3A或图3B的布局表中每一列表示 一个逻辑磁盘,每一行表示一个逻辑磁盘条带(LDS,Logic Disk Stripe),而每一格表示 一个逻辑DU,其中的数字表示该逻辑DU所对应的物理DU所属磁盘单元。请继续参阅图4,本发明实施例提供的RAIDO的LUN的映射表。一个LUN的 映射表记录了该LUN中每一个逻辑DU对应的物理DU所属物理磁盘和该物理DU在其所 属物理磁盘内的偏移。例如,对于图4,由逻辑磁盘2(LD2)和逻辑磁盘条带2(LDS2)确 定的逻辑DU,其记录值为DU 4:1,即表示该逻辑DU对应的物理DU属于物理磁盘身份 证号为4的物理磁盘,并处于该物理磁盘内偏移为1的位置。由于在本发明实施例中,采 用写时分配技术(allocate-on-write),即当一个逻辑DU有1\0写请求时,才为该逻辑DU 分配一个物理DU。如此,在LUN的映射表中,当一个逻辑DU尚未分配与之对应的物 理DU时,可以将该逻辑DU的记录值初始化为一个规定值,例如,初始化为Oxffffffff等寸。在本发明提供的实施例中,为了实现RAID级别变换,应该读取当前单个LUN 的原映射表和RAID结构发生变化后的布局表。步骤S103,针对当前LUN的原映射表反映的磁盘单元中数据占用为空或非空, 根据RAID结构发生变化后的布局表和所述原映射表,分别对磁盘单元中数据占用为空或 非空进行不同的处理并以此创建当前LUN的新映射表。在本发明实施例中,应该创建一张当前单个LUN的新映射表。当获取了当前单 个LUN的原映射表和RAID结构发生变化后的布局表时,可以依据两张表中的内容,以 原映射表中的逻辑DU为单位,对新映射表的表项赋记录值,此处又分为两种情况,以下 分别说明其处理方式的不同。情况一若当前单个LUN的原映射表反映的某个磁盘单元中数据占用为空,例如,图4 所示LD2和LDSl确定的逻辑DU,其记录值为Oxffffffff,表明该逻辑DU对应的磁盘单 元中数据占用为空,则在新映射表对应的表项赋记录值为一个规定值,例如,Oxffffffff等寸。情况二若当前单个LUN的原映射表反映的某个磁盘单元中数据占用不为空,例如,图 4所示LDl和LDS2确定的逻辑DU或LDO和LDSl确定的逻辑DU等,则进一步判断进 行RAID级别变换后该逻辑DU对应的物理磁盘单元中数据所需复制位置与进行RAID级别变换前是否属于同一物理磁盘,若是,则不需要搬移其中的数据,只需要直接修改当 前单个LUN的新映射表中的相应位置,赋予一个记录值;若进行RAID级别变换后该逻 辑DU对应的物理磁盘单元中数据所需复制位置与进行RAID级别变换前不属于同一物理 磁盘,则为该数据重新分配物理磁盘单元并进行数据搬移,相应地,还需要修改当前单 个LUN的新映射表中的相应位置,赋予一个记录值。与现有技术无差别地对待数据为空和数据为非空这两种基本情况而在数据为空 时仍然分配空间进行级别变换相比,本发明实施例的方案实际只为数据占用为非空的磁 盘单元分配空间以进行级别变换,因此节约了资源和时间,提高了磁盘空间的利用率。以下结合图3A、图3B和图5所示RAID级别变换前LUN的映射表,举例说明 上述情况二所对应的处理方案。假设本发明实施例中的存储系统由6个物理磁盘(4个逻辑磁盘)构成,需 要将 一个LUN进行从RAID 0到RAIDlO的级别变换。如图5所示,若LDO和LDSO所确定 的逻辑DU(以下简称逻辑DUO)的数据占用为非空,由于是变换到RAID10,则在将进行 RAID级别变换时需要对该逻辑DUO中的数据做备份。也就是说,该逻辑DUO的数据需 要搬移到RAID 10级别的布局表逻辑DUO (由LDO和LDSO确定)和逻辑DUl (由LDl 禾口 LDSO确定)对应的物理DU。由图3A可知,由于RAID 10级别的布局表逻辑DUO对应的物理DU所属物理 磁盘的身份证号为0,而由图5可以获知,RAID级别变换前LUN的映射表中逻辑DUO 对应的物理DU所属物理磁盘的身份证号也为0,即RAID级别变换前LUN的映射表中逻 辑DUO中数据所需复制位置与进行RAID级别变换前属于同一物理磁盘,因此,在进行 级别变换过程中,RAID 10级别的布局表逻辑DUO的数据不需要搬移,只需要修改RAID 10级别布局表的逻辑DUO在新映射表中的相应位置的记录值即可。这里假设RAID级 别变换前LUN的映射表中逻辑DUO对应的物理DU在身份证号为O的物理磁盘中的偏移 为0,则RAID 10级别的布局表的逻辑DUO在新映射表中的相应位置的记录值修改为DU 0:0。但是,RAID 10级别的布局表逻辑DUl对应的物理DU所属物理磁盘的身份证号 为1,而RAID级别变换前LUN的映射表中逻辑DUO对应的物理DU所属物理磁盘的身 份证号为O。显然,RAID级别变换前LUN的映射表中逻辑DUO的数据所需复制位置与 进行RAID级别变换前不属于同一物理磁盘,则在变换到RAIDlO级别时,需要为RAID 级别变换前LUN的映射表中逻辑DUO的数据重新分配一个物理DU并将数据搬移到该物 理DU,同时,修改RAID 10级别的布局表中的逻辑DUO在新映射表中的相应位置的记 录值。这里假设重新分配的物理DU在身份证号为1的物理磁盘中的偏移为0,则RAID 10级别LUN的布局表中的逻辑DUO在新映射表中的相应位置的记录值修改为DU 1:0。对于RAID级别变换前LUN的映射表中LDl和LDSO所确定的逻辑DU(以下简 称逻辑DUl),在RAID的级别变换到RAID 10时,由于RAID 10级别的布局表中LD2、 LDSO所确定的逻辑DU(以下简称逻辑DU2)和LD3、LDSO所确定的逻辑DU(以下简 称逻辑DU3)对应的物理DU所属物理磁盘均不与RAID级别变换前LUN的映射表中逻 辑DUl对应的物理DU所属物理磁盘相同,因此,需要为级别为RAID O的LUN的映射 表中逻辑DUl的数据重新分配两个物理DU (如前所述,一个做数据备份之用)并进行数据搬移,同时,修改RAID 10级别布局表逻辑DU2和逻辑DU3在新映射表中的相应位置 的记录值。这里假设重新分配的两个物理DU在身份证号为2的物理磁盘和身份证号为 3的物理磁盘中的偏移分别为1和2,则RAID 10级别的布局表逻辑DUO在新映射表中的 相应位置的记录值分别修改为DU 2:1和DU 3:2。对于RAID级别变换前LUN的映射表中其他逻辑DU在进行RAID级别变换时 重新分配物理空间、进行数据搬移和/或LUN的新映射表相应位置记录值的修改等等, 与上述RAID 0级别LUN映射表中逻辑DUO和逻辑DUl在进行RAID级别变换时重新分 配物理空间、进行数据搬移和/或RAID 10级别LUN的新映射表相应位置记录值的修改 类似,不再赘述。从上述对于情况二的处理方案可以看出,本发明实施例省去了现有技术中进行 RAID级别变换后的数据所需复制位置与进行RAID级别变换前的数据属于同一物理磁盘 时的数据重复搬移,减少了数据处理量,精简了 RAID级别转换的流程。在本发明实施例中,对于进行数据搬移后释放的资源再次进行管理,例如,将 其归入未使用的磁盘单元队列(queue),以代替传统方式中的磁盘碎片整理。当单个LUN中各个逻辑DU的数据进行不同的处理完毕,则回收当前LUN的原 映射表,例如,释放原映射表所占用的内存资源等等,至此,该LUN的RAID级别变换 完成。请参阅图5,本发明实施例提供的一种RAID级别变换装置基本逻辑结构示意 图。为了便于说明,仅示出了与本发明实施例相关的部分。该装置的功能模块或单元为 硬件单元/模块、软件单元/模块或软硬件相结合单元/模块,以下逐个说明。判断模块601,用于判断系统剩余可用空间是否满足当前单个LUN进行RAID级 别变换时所需的空间变化量,其包括查询单元6011、计算单元6012和比较单元6013。作为本发明的实施例,查询单元6011首先查询各个物理磁盘未使用的磁盘单元 以得到系统剩余可用空间,其中,各个物理磁盘未使用的磁盘单元可以以队列(queue)的 形式管理,因此,查询单元6011实际上可以通过访问队列获知各个物理磁盘未使用的磁 盘单元,这些未使用的磁盘单元的总和构成了系统剩余可用空间。之后,计算单元6012 计算当前单个LUN进行RAID级别变换时所需的空间增大或减少量。此为公知技术,不 做赘述。 比较单元6013比较查询单元6011查询所获系统剩余可用空间与计算单元6012 计算所得当前LUN进行RAID级别变换时所需的空间增大或减少量,若LUN所占空间 增大或减少量小于上述系统剩余可用空间,则判断模块601判断系统剩余可用空间满足 当前LUN进行RAID级别变换时所需的空间变化量,从而可以进行RAID级别变换;否 贝U,判断模块601判断系统剩余可用空间不满足当前LUN进行RAID级别变换时所需的 空间变化量,RAID级别变换可能失败。由于判断模块601在判断系统剩余可用空间满足当前LUN进行RAID级别变换 时所需的空间变化量即可开始对当前LUN进行RAID级别变换,而不是以RAID组为单 位来进行,减少了 RAID级别变换所受的限制,增强了灵活性。表读取模块602,用于在判断模块601判断系统剩余可用空间满足当前LUN进 行RAID级别变换时所需的空间变化量时,读取当前LUN的原映射表和RAID结构发生变化后的布局表。 数据处理模块603,根据表读取模块602读取的当前LUN的原映射表和RAID结 构发生变化后的布局表,在所述磁盘单元中数据占用为空时将当前逻辑单元号的RAID级 别变换后的新映射表中对应的逻辑单元项设置为规定值;否则,根据RAID级别变换后 的布局表和所述原映射表,判断进行RAID级别变换后所述磁盘单元中数据所需复制位置 与进行RAID级别变换前的位置是否属于同一物理磁盘,并根据判断结果进行映射表修改 或数据搬移,其包括映射表处理单元6031、判断单元6032和分配单元6033。映射表处理单元6031,用于磁盘单元中数据占用为空时将当前LUN的新映射表 相应表项置为一规定值或所述磁盘单元中数据占用为非空时修改当前单个LUN的新映射 表相应表项。判断单元6032,用于磁盘单元中数据占用为非空时判断进行RAID级别变换后 所述磁盘单元中数据所需复制位置与进行RAID级别变换前是否属于同一物理磁盘,若 是,则不需要搬移其中的数据,只需要映射表处理单元6031直接修改当前LUN的新映射 表中的相应位置,赋予一个记录值。分配单元6033,用于判断单元6032判断进行RAID级别变换后所述磁盘单元中 数据所需复制位置与进行RAID级别变换前不属于同一物理磁盘,则为该数据重新分配物 理磁盘单元并进行数据搬移,相应地,还需要映射表处理单元6031修改当前LUN的新映 射表中的相应位置,赋予一个记录值。另外,所述RAID级别变换装置还包括磁盘单元归队模块604,用于将所述分配单元6033进行数据搬移所留下的磁盘 单元归入未使用的磁盘单元队列;预处理模块605,用于将物理磁盘空间划分为离散的磁盘单元并形成逻辑磁盘, 根据所述物理磁盘和逻辑磁盘,生成当前逻辑单元号的布局表以及根据所述当前逻辑磁 盘所属RAID的布局表,生成当前逻辑单元号的映射表,所述逻辑磁盘中的逻辑磁盘单元 与所述物理磁盘空间划分成的磁盘单元一一对应。从实施例可以得知,由于数据处理模块603对磁盘单元中数据占用为空或非空 区别对待,即,分配单元6033实际上并没有为数据占用为空的磁盘单元分配空间以进行 级别变换,因此节约了资源和时间,提高了磁盘空间的利用率。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁盘或光盘等。以上对本发明实施例所提供的RAID级别变换方法和相应的RAID级别变换装置 进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上 实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般 技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种RAID级别变换方法,其特征在于,包括判断系统剩余可用空间是否满足当前逻辑单元号进行RAID级别变换时所需的空间变 化量;若满足,则读取当前逻辑单元号的原映射表以及RAID级别变换后的布局表; 判断所述原映射表反映的磁盘单元中数据占用为空或非空,若所述磁盘单元中数据 占用为空,则将当前逻辑单元号的RAID级别变换后的新映射表中对应的逻辑单元项设置 为规定值;否则,根据RAID级别变换后的布局表和所述原映射表,判断进行RAID级别 变换后所述磁盘单元中数据所需复制位置与进行RAID级别变换前的位置是否属于同一物 理磁盘,并根据判断结果进行映射表修改或数据搬移。
2.如权利要求1所述RAID级别变换方法,其特征在于,所述判断系统剩余可用空间 是否满足当前逻辑单元号进行RAID级别变换时所需的空间变化量包括查询物理磁盘未使用的磁盘单元以得到系统剩余可用空间; 计算所述当前逻辑单元号进行RAID级别变换时所需的空间增大或减少量; 若所述空间增大或减少量小于所述系统剩余可用空间,则判断系统剩余可用空间满 足当前逻辑单元号进行RAID级别变换时所需的空间增大或减少量,否则,判断系统剩余 可用空间不满足当前逻辑单元号进行RAID级别变换时所需的空间增大或减少量。
3.如权利要求1或2所述RAID级别变换方法,其特征在于,所述根据判断结果进行 映射表修改或数据搬移包括若判断进行RAID级别变换后所述磁盘单元中数据所需复制位置与进行RAID级别变 换前的位置属于同一物理磁盘,则修改当前逻辑单元号所属RAID的新映射表逻辑单元的 值;否则,为所述数据重新分配物理磁盘单元并进行数据搬移。
4.如权利要求3所述RAID级别变换方法,其特征在于,还包括 将所述进行数据搬移所留下的磁盘单元归入未使用的磁盘单元队列。
5.如权利要求1或2所述RAID级别变换方法,其特征在于,所述判断系统剩余可用 空间是否满足当前逻辑单元号进行RAID级别变换时所需的空间变化量之前还包括将物理磁盘空间划分为离散的磁盘单元并形成逻辑磁盘,所述逻辑磁盘中的逻辑磁 盘单元与所述物理磁盘空间划分成的磁盘单元一一对应;根据所述物理磁盘和逻辑磁盘,生成当前逻辑单元号的布局表;根据所述当前逻辑磁盘所属RAID的布局表,生成当前逻辑单元号的映射表。
6.—种RAID级别变换装置,其特征在于,所述装置包括判断模块,用于判断系统剩余可用空间是否满足当前逻辑单元号进行RAID级别变换 时所需的空间变化量;表读取模块,用于所述判断模块判断系统剩余可用空间满足当前逻辑单元号进行 RAID级别变换时所需的空间变化量时,读取所述当前逻辑单元号的原映射表和RAID结 构发生变化后的布局表;数据处理模块,用于根据所述表读取模块读取的原映射表反映的磁盘单元中数据占 用为空或非空,在所述磁盘单元中数据占用为空时将当前逻辑单元号的RAID级别变换后 的新映射表中对应的逻辑单元项设置为规定值;否则,根据RAID级别变换后的布局表 和所述原映射表,判断进行RAID级别变换后所述磁盘单元中数据所需复制位置与进行RAID级别变换前的位置是否属于同一物理磁盘,并根据判断结果进行映射表修改或数据 搬移。
7.如权利要求6所述RAID级别变换装置,其特征在于,所述数据处理模块包括映射表处理单元,用于所述磁盘单元中数据占用为空时将所述当前逻辑磁盘的新映射表相应表项置为一规定值或所述磁盘单元中数据占用为非空时修改当前逻辑磁盘的新 映射表相应表项;判断单元,用于所述磁盘单元中数据占用为非空时判断进行RAID级别变换后所述磁 盘单元中数据所需复制位置与进行RAID级别变换前是否属于同一物理磁盘;分配单元,用于所述判断单元判断进行RAID级别变换后,所述磁盘单元中数据所需 复制位置与进行RAID级别变换前不属于同一物理磁盘时为所述数据重新分配物理磁盘单 元并进行数据搬移。
8.如权利要求7所述RAID级别变换装置,其特征在于,所述RAID级别变换装置还 包括磁盘单元归队模块,用于将所述分配单元进行数据搬移所留下的磁盘单元归入未使 用的磁盘单元队列。
9.如权利要求6所述RAID级别变换装置,其特征在于,所述判断模块包括查询单元,用于查询物理磁盘未使用的磁盘单元以得到系统剩余可用空间;计算单元,用于计算所述当前逻辑单元号进行RAID级别变换时所需的空间增大或减 少量;比较单元,用于所述计算单元计算所得空间增大或减少量小于所述系统剩余可用空 间,则判断系统剩余可用空间满足当前逻辑单元号进行RAID级别变换时所需的空间增大 或减少量,否则,判断系统剩余可用空间不满足当前逻辑单元号进行RAID级别变换时所 需的空间增大或减少量。
10.如权利要求6所述RAID级别变换装置,其特征在于,所述RAID级别变换装置 还包括预处理模块,用于将物理磁盘空间划分为离散的磁盘单元并形成逻辑磁盘,根据 所述物理磁盘和逻辑磁盘,生成当前逻辑单元号的布局表以及根据所述当前逻辑磁盘所 属RAID的布局表,生成当前逻辑单元号的映射表,所述逻辑磁盘中的逻辑磁盘单元与所 述物理磁盘空间划分成的磁盘单元一一对应。
全文摘要
本发明实施例提供一种RAID级别变换方法,所述方法包括在判断系统剩余可用空间满足当前LUN进行RAID级别变换时所需的空间变化量后,读取当前LUN的原映射表以及RAID级别变换后的布局表,判断所述原映射表反映的磁盘单元中数据占用为空或非空,为空时将当前LUN的RAID级别变换后的新映射表中对应的逻辑单元项设置为规定值;否则,根据RAID级别变换后的布局表和原映射表,判断RAID级别变换后磁盘单元中数据所需复制位置与进行RAID级别变换前的位置是否属于同一物理磁盘,根据判断结果进行映射表修改或数据搬移。本发明增强了RAID级别变换的灵活性,减少了数据处理量和提高了RAID中磁盘空间的利用率。
文档编号G06F3/06GK102023812SQ20091017422
公开日2011年4月20日 申请日期2009年9月23日 优先权日2009年9月23日
发明者林宇, 郭楠 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1