提高磁盘阵列性能的方法及装置制造方法

文档序号:6503579阅读:170来源:国知局
提高磁盘阵列性能的方法及装置制造方法
【专利摘要】本发明实施例公开了一种提高磁盘阵列性能句方法及装置,所述方法包括:接收存储请求;确g存储请求中要存储的数据的数据类型;当确定没据类型为元数据时,将元数据存储在所述第一建型的VLUN中,其中第一类型的VLUN中的条带容I小于第一预设值;当确定数据类型为文件内容女据时,将文件内容数据存储在所述第二类型的WN中,其中第二类型的VLUN中的条带容量大于_二预设值,所述第二预设值大于所述第一预设复。本发明适用于磁盘阵列的性能优化。
【专利说明】提高磁盘阵列性能的方法及装置

【技术领域】
[0001] 本发明涉及存储管理【技术领域】,特别涉及一种提高磁盘阵列性能的方法及装置。

【背景技术】
[0002] RAID (Redundant Arrays of Inexpensive Disks,独立磁盘冗余阵列)是通过磁 盘阵列与数据条块化方法相结合,以提高数据可用率的一种结构。目前的RAID可以分为 RAIDO、RAID1、RAID2、RAID3、RAID4、RAID5 和 RAID6 这几个级别,每个 RAID 级别在存储数 据上都有各自的优势和不足。RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决 方案。RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成 RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。这样, 当RAID5的一个磁盘数据发生损坏后,可以利用其它磁盘的相对应的数据和相应的奇偶校 验信息去恢复被损坏的数据。
[0003] 由于RAID5中存在奇偶校验信息,导致了 RAID5存在写损失。即在磁盘中修改一 个数据各需要两次读写操作,分别读取旧数据和旧校验信息,以及分别写入新数据和新校 验信息,这个过程降低了磁盘的使用性能。RAID5的磁盘阵列空间是按照条带(stripe)进 行管理的,每个条带占用多个磁盘,如果在修改一个条带内的数据时能够将该数据所在的 条带的多个磁盘的数据都进行数据修改,那么只需要对这个条带内每个磁盘的数据进行覆 盖,即一次写操作即可,校验信息所在的磁盘可以根据条带内其他磁盘写入的新数据进行 计算获得新的校验息。
[0004] 为了降低写损失,提高存储设备的性能,现有技术中通过使用多个存储设备,在不 同的存储设备上使用不同大小的条带,将文件的元数据等小数据保存在小条带的存储设备 上,将文件的内容数据等大数据保存在大条带的存储设备上。一方面能够在修改元数据时, 降低由读写校验值带来的写损失;另一方面将内容数据保存在大条带上,能够确保内容数 据尽量分布在一个条带内,避免读取内容数据时涉及多个条带的情况,提高磁盘性能。
[0005] 然而现有技术中至少存在如下问题:多个存储设备的成本较高,并且文件的内容 数据和元数据被存放到不同的存储设备中,单个存储设备无法提供完整的文件数据,不便 于维护。


【发明内容】

[0006] 提供一种提高磁盘阵列性能方法及装置,能够解决因磁盘阵列中存在写损失带来 的磁盘性能降低的问题,以较低的设备成本提升磁盘阵列的性能。
[0007] 第一方面,提供一种提高磁盘阵列性能的方法,包括:
[0008] 接收存储请求;
[0009] 确定所述存储请求中要存储的数据的数据类型;
[0010] 当确定所述数据类型为元数据时,将所述元数据存储在第一类型的VLUN中,其中 所述第一类型的VLUN中的条带容量小于第一预设值; toon] 当确定所述数据类型为文件内容数据时,将所述文件内容数据存储在第二类型的 VLUN中,其中所述第二类型的VLUN中的条带容量大于第二预设值,所述第二预设值大于所 述第一预设值。
[0012] 在第一种可能的实现方式中,在所述接收存储请求之前,所述方法还包括:根据用 户业务需求,配置磁盘阵列配置参数;根据所述磁盘阵列配置参数,将逻辑单元号LUN划分 成至少一个第一类型的VLUN和至少一个第二类型的VLUN。
[0013] 可选的,当所述第一类型的VLUN的数量为两个或两个以上时,所述将所述元数据 存储在所述第一类型的VLUN中包括 :
[0014] 根据所述第一类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算 法,将所述存储请求对应的元数据存储到相应的第一类型的VLUN中;或者,根据所述第一 类型的VLUN的序号顺序,将所述元数据存储在第一个第一类型的VLUN中;当所述第一个第 一类型的VLUN的存储区域被写满时,将所述元数据存储在下一个第一类型的VLUN中。
[0015] 可选的,当所述第二类型的VLUN的数量为两个或两个以上时,所述将所述文件内 容数据存储在所述第二类型的VLUN中包括 :
[0016] 根据所述第二类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算 法,将所述存储请求对应的文件内容数据存储到相应的第二类型的VLUN中;或者,根据所 述第二类型的VLUN的序号顺序,将所述文件内容数据存储在第一个第二类型的VLUN中;当 所述第一个第二类型的VLUN的存储区域被写满时,将所述文件内容数据存储在下一个第 二类型的VLUN中。
[0017] 进一步的,所述方法还包括:
[0018] 接收读取请求,所述读取请求包含了文件名;根据所述文件名,向存储设备下发输 入输出10调度请求,在磁盘上获取所述文件名对应的元数据所处的第一类型的VLUN的序 号;根据所述文件名和所述第一类型的VLUN的序号,获取所述文件名对应的元数据在所述 第一类型的VLUN中的访问地址;根据所述文件名对应的元数据在所述第一类型的VLUN中 的访问地址,获取所述文件名对应的元数据;解析所述文件名对应的元数据,获取所述文件 名对应的文件内容数据的访问地址;根据所述文件名对应的文件内容数据的访问地址,获 取所述文件名对应的文件内容数据。
[0019] 其中,所述存储请求具体为系统请求;可选的,所述方法还包括:根据所述系统请 求,当所述数据类型为元数据时,将所述元数据存储在第三类型的VLUN中,其中所述第三 类型的VLUN中的写损失小于损失阈值。
[0020] 结合第一种可能的实现方式,在第二种可能的实现方式中,所述磁盘阵列配置参 数包括:第一类型的VLUN的容量、第二类型的VLUN的容量、第一类型的VLUN的起始位置、 第二类型的VLUN的起始位置、第一类型的VLUN使用的RAID类型、第二类型的VLUN使用的 RAID类型、第一类型的VLUN中的条带容量和第二类型的VLUN中的条带容量;所述根据所 述磁盘阵列配置参数,将LUN划分成至少一个第一类型的VLUN和至少一个第二类型的VLUN 包括:
[0021] 根据所述第一类型的VLUN的起始位置和所述第二类型的VLUN的起始位置,在所 述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储区域的起始位置和所述第二类 型的VLUN对应的存储区域的起始位置;
[0022] 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对 应的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型 的VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起 点,划分与第二类型的VLUN的容量等同的存储区域;
[0023] 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID 类型,在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型;
[0024] 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的 条带;根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的条 带。
[0025] 第二方面,提供一种提高磁盘阵列性能的装置,包括:
[0026] 接收单元,用于接收存储请求;
[0027] 确定单元,用于确定所述接收单元接收的所述存储请求中要存储的数据的数据类 型;
[0028] 第一存储单元,用于当所述确定单元确定所述数据类型为元数据时,将所述元数 据存储在第一类型的VLUN中,其中所述第一类型的VLUN中的条带容量小于第一预设值;
[0029] 第二存储单元,用于当所述确定单元确定所述数据类型为文件内容数据时,将所 述文件内容数据存储在第二类型的VLUN中,其中所述第二类型的VLUN中的条带容量大于 第二预设值,所述第二预设值大于所述第一预设值。
[0030] 在第一种可能的实现方式中,所述装置还包括:
[0031] 参数配置单元,用于根据用户业务需求,配置磁盘阵列配置参数;
[0032] 划分单元,用于根据所述参数配置单元配置的所述磁盘阵列配置参数,将逻辑单 元号LUN划分成至少一个第一类型的VLUN和至少一个第二类型的VLUN。
[0033] 可选的,当所述第一类型的VLUN的数量为两个或两个以上时,所述第一存储单元 还用于:
[0034] 根据所述第一类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算 法,将所述存储请求对应的元数据存储到相应的第一类型的VLUN中;或者,
[0035] 根据所述第一类型的VLUN的序号顺序,将所述元数据存储在第一个第一类型的 VLUN中;当所述第一个第一类型的VLUN的存储区域被写满时,将所述元数据存储在下一个 第一类型的VLUN中。
[0036] 可选的,当所述第二类型的VLUN的数量为两个或两个以上时,所述第二存储单元 还用于:
[0037] 根据所述第二类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算 法,将所述存储请求对应的文件内容数据存储到相应的第二类型的VLUN中;或者,
[0038] 根据所述第二类型的VLUN的序号顺序,将所述文件内容数据存储在第一个第二 类型的VLUN中;当所述第一个第二类型的VLUN的存储区域被写满时,将所述文件内容数据 存储在下一个第二类型的VLUN中。
[0039] 进一步的,所述接收单元还用于接收读取请求,所述读取请求包含了文件名;则所 述装置还包括:
[0040] 调度单元,用于根据所述文件名,向存储设备下发输入输出10调度请求,在磁盘 上获取所述文件名对应的元数据所处的第一类型的VLUN的序号;
[0041] 地址获取单元,用于根据所述文件名和所述第一类型的VLUN的序号,获取所述文 件名对应的元数据在所述第一类型的VLUN中的访问地址;
[0042] 读取单元,用于根据所述文件名对应的元数据在所述第一类型的VLUN中的访问 地址,获取所述文件名对应的元数据;
[0043] 解析单元,用于解析所述文件名对应的元数据,获取所述文件名对应的文件内容 数据的访问地址;
[0044] 所述读取单元还用于根据所述文件名对应的文件内容数据的访问地址,获取所述 文件名对应的文件内容数据。
[0045] 其中,所述接收单元接收的所述存储请求具体为系统请求;则所述第一存储单元 还用于根据所述系统请求,当所述数据类型为元数据时,将所述元数据存储在第三类型的 VLUN中,其中所述第三类型的VLUN中的写损失小于损失阈值。
[0046] 结合第一种可能的实现方式,在第二种可能的实现方式中,所述磁盘阵列配置参 数包括:第一类型的VLUN的容量、第二类型的VLUN的容量、第一类型的VLUN的起始位置、 第二类型的VLUN的起始位置、第一类型的VLUN使用的RAID类型、第二类型的VLUN使用的 RAID类型、第一类型的VLUN中的条带容量和第二类型的VLUN中的条带容量;
[0047] 所述划分单元具体用于:根据所述第一类型的VLUN的起始位置和所述第二类型 的VLUN的起始位置,在所述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储区域 的起始位置和所述第二类型的VLUN对应的存储区域的起始位置;
[0048] 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对 应的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型 的VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起 点,划分与第二类型的VLUN的容量等同的存储区域;
[0049] 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID 类型,在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型;
[0050] 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的 条带;根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的条 带。
[0051] 与现有技术相比,本发明实施例首先接收存储请求;确定存储请求中要存储的数 据的数据类型;将元数据存储在第一类型的VLUN中,其中第一类型的VLUN中的条带容量小 于第一预设值;将文件内容数据存储在所述第二类型的VLUN中,第二类型的VLUN中的条带 容量大于第二预设值,所述第二预设值大于所述第一预设值。通过将LUN分为两种类型的 VLUN,并对VLUN的条带容量和所使用的RAID类型进行配置,尽量将文件内容数据等大数据 分配在条带容量较大的VLUN对应的存储区域内,将元数据等小数据分配在条带容量较小 的VLUN对应的存储区域内,以降低写损失。解决了因磁盘阵列中存在写损失带来的磁盘性 能降低的问题。既可以提升磁盘中大数据的输入输出性能,同时也能极大的降低小数据所 带来的写损失。

【专利附图】

【附图说明】
[0052] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些 实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附 图获得其它的附图。
[0053] 图1为本发明实施例一提供的方法流程图;
[0054] 图2为本发明实施例二提供的方法流程图;
[0055] 图3为本发明实施例三提供的装置结构示意图;
[0056] 图4为本发明实施例三提供的另一个装置结构示意图;
[0057] 图5为本发明实施例四提供的装置结构示意图。

【具体实施方式】
[0058] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它 实施例,都属于本发明保护的范围。
[0059] 为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说 明。
[0060] 实施例一
[0061] 本实施例提供一种提高磁盘阵列性能的方法,如图1所示,所述方法包括:
[0062] 101、接收存储请求。
[0063] 102、确定存储请求中要存储的数据的数据类型。
[0064] 其中磁盘的存储过程中主要包括两类数据:元数据和文件内容数据,其中,元数据 用于管理文件系统和磁盘,文件内容数据是用户真正存储的数据。元数据占用的存储空间 很小,而文件内容数据占用的存储空间较大。
[0065] 103、当确定数据类型为元数据时,将元数据存储在第一类型的VLUN (Virtual Logic Unit Number,虚拟逻辑单元号)中,其中第一类型的VLUN中的条带容量小于第一预 设值。
[0066] 其中,第一预设值根据业务需求设定。
[0067] 104、当确定数据类型为文件内容数据时,将文件内容数据存储在第二类型的VLUN 中,其中第二类型的VLUN中的条带容量大于第二预设值。
[0068] 其中,所述第二预设值大于所述第一预设值,第二预设值根据业务需求设定。在第 一类型的VLUN和第二类型的VLUN中,条带容量不存在介于第一预设值和第二预设值之间 的情况。
[0069] 需要说明的是,本实施例中LUN (Logic Unit Number,逻辑单元号)所使用的RAID (Redundant Array Of Independent Disks,独立磁盘冗余阵列)类型主要为RAID5,由于 RAID5自身结构的限制,在RAID5类型的LUN中会存在写损失,但是如果能够使存储的数据 尽量填满整个条带,那么就能避免写损失。例如,一个较小的条带内包括4个磁盘,其中磁 盘1、磁盘2和磁盘3存储文件数据,磁盘4存储校验数据。4个磁盘存储容量智能容纳一 个字节的数据,磁盘1存储"1",磁盘2存储"2",磁盘3存储"3",那么磁盘4存储的校验信 息为其他3个磁盘在逻辑上的总和"6"。当用户要将磁盘2的数据"2"修改为"4"时,如果 仅修改磁盘2上的数据,那么需要先读出数据"2"和校验值"6",再将新数据"4"和新检验 值"8"写入磁盘,这个过程涉及4次读写,导致了写损失;如果此时恰好磁盘1和磁盘3上 也有数据需要修改,比如向磁盘1写入"2",向磁盘3写入"5",那么就不需要再读取校验值 信息了,因为磁盘1、磁盘2和磁盘3的数据都被写满,可以直接根据磁盘1、磁盘2和磁盘 3中写满的新数据更新校验值。这样在用户将磁盘2的数据"2"修改为"4"的过程中相当 于只对磁盘2进行了一次写操作。
[0070] 因此条带越小,那么其条带内磁盘被写满的可能性越大,在更新数据时所进行的 读写操作越少,即写损失越小。基于这个理由,我们可以将元数据这类小数据分配在小的条 带,减少写损失,而对于文件内容数据这类大数据,如果仅仅考虑写损失问题而将其也分配 到小条带,那么仍然会对磁盘性能造成影响,因为如果将大数据分配到条带较小的第一类 型的VLUN,会占用多个小条带,那么在修改大数据时就涉及对多个条带的操作,这样反而会 降低系统效率。
[0071] 除此之外,还需要考虑VLUN中使用的RAID类型,如果第一类型的VLUN使用的不 是RAID5而是RAID1,那么要优先将元数据等小数据分配至使用RAID1的VLUN对应的存储 区域,因为RAID1中是不存在写损失的。
[0072] 综上所述,如果两种类型的VLUN中使用的都是RAID5,那么第一类型的VLUN中的 条带容量需要小于一个预设值X,第二类型的VLUN中的条带容量需要大于一个预设值y ;如 果第一类型的VLUN中使用RAID1,第二类型的VLUN中使用RAID5,那么将元数据等小数据 分配至第一类型的VLUN中,将文件内容数据分配至第二类型的VLUN中,第二类型的VLUN 中的条带容量需要大于预设值y。
[0073] 进一步的,在执行步骤101之前,该方法还包括:
[0074] 根据用户业务需求,配置磁盘阵列配置参数;
[0075] 其中,所述磁盘阵列配置参数至少包括:第一类型的VLUN的容量、第二类型的 VLUN的容量、第一类型的VLUN的起始位置、第二类型的VLUN的起始位置、第一类型的VLUN 使用的RAID类型、第二类型的VLUN使用的RAID类型、第一类型的VLUN中的条带容量和第 二类型的VLUN中的条带容量。
[0076] 根据所述磁盘阵列配置参数,将LUN划分成至少一个第一类型的VLUN和至少一个 第二类型的VLUN。
[0077] 例如,根据所述第一类型的VLUN的起始位置和所述第二类型的VLUN的起始位置, 在所述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储区域的起始位置和所述第 二类型的VLUN对应的存储区域的起始位置;
[0078] 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对 应的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型 的VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起 点,划分与第二类型的VLUN的容量等同的存储区域;
[0079] 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID 类型,在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型;
[0080] 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的 条带;
[0081] 根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的 条带。
[0082] 可选的,当所述第一类型的VLUN的数量为两个或两个以上时,所述将所述元数据 存储在所述第一类型的VLUN中包括:根据所述第一类型的VLUN的序号顺序和所述存储 请求的先后顺序,按照轮询算法,将所述存储请求对应的元数据存储到相应的第一类型的 VLUN中;或者,根据所述第一类型的VLUN的序号顺序,将所述元数据存储在第一个第一类 型的VLUN中;当所述第一个第一类型的VLUN的存储区域被写满时,将所述元数据存储在下 一个第一类型的VLUN中。
[0083] 可选的,当所述第二类型的VLUN的数量为两个或两个以上时,所述将所述文件内 容数据存储在所述第二类型的VLUN中包括:根据所述第二类型的VLUN的序号顺序和所述 存储请求的先后顺序,按照轮询算法,将所述存储请求对应的文件内容数据存储到相应的 第二类型的VLUN中;或者,根据所述第二类型的VLUN的序号顺序,将所述文件内容数据存 储在第一个第二类型的VLUN中;当所述第一个第二类型的VLUN的存储区域被写满时,将所 述文件内容数据存储在下一个第二类型的VLUN中。
[0084] 其中,举例说明上述轮询算法的操作流程:假设存在三个同一类型的VLUN, VLUNa、VLUNb和VLUNc,当第一个存储请求到来时,将第一个存储请求对应的数据存储在 VLUNa中,后续依次将第二个存储请求对应的数据存储在VLUNb中,将第三个存储请求对应 的数据存储在VLUNc中,当第四个存储请求到来时,将第四个存储请求对应的数据再次存 储在VLUNa中,以此类推。
[0085] 进一步的,所述方法还包括:
[0086] 接收读取请求,所述读取请求包含了文件名;根据所述文件名,向存储设备下发输 入输出10调度请求,在磁盘上获取所述文件名对应的元数据所处的第一类型的VLUN的序 号;根据所述文件名和所述第一类型的VLUN的序号,获取所述文件名对应的元数据在所述 第一类型的VLUN中的访问地址;根据所述文件名对应的元数据在所述第一类型的VLUN中 的访问地址,获取所述文件名对应的元数据;解析所述文件名对应的元数据,获取所述文件 名对应的文件内容数据的访问地址;根据所述文件名对应的文件内容数据的访问地址,获 取所述文件名对应的文件内容数据。
[0087] 其中,所述存储请求具体为系统请求;
[0088] 可选的,所述方法还包括:根据所述系统请求,当所述数据类型为元数据时,将所 述元数据存储在第三类型的VLUN中,其中所述第三类型的VLUN中的写损失小于损失阈值, 第三类型的VLUN中配置的RAID类型可以为RAID1或其他写损失较小的RAID类型。
[0089] 需要说明的是,在对LUN划分VLUN后,划分成的VLUN只包括两种类型,这两种类 型的VLUN包括但不限于以下组合:第一类型的VLUN和第二类型的VLUN,或者是第三类型 的VLUN和第二类型的VLUN。
[0090] 可选的,当确定所述数据类型为文件内容数据时,在将所述文件内容数据存储在 所述第二类型的VLUN中之前,所述方法还包括:
[0091] 接收用户指示;根据所述用户指示将所述文件内容数据存储在所述第一类型的 VLUN中或者所述第二类型的VLUN中。
[0092] 与现有技术相比,本发明实施例首先接收存储请求;确定存储请求中要存储的数 据的数据类型;将元数据存储在第一类型的VLUN中,其中第一类型的VLUN中的条带容量小 于第一预设值;将文件内容数据存储在所述第二类型的VLUN中,第二类型的VLUN中的条带 容量大于第二预设值,所述第二预设值大于所述第一预设值。通过将LUN分为两种类型的 VLUN,并对VLUN的条带容量和所使用的RAID类型进行配置,尽量将文件内容数据等大数据 分配在条带容量较大的VLUN对应的存储区域内,将元数据等小数据分配在条带容量较小 的VLUN对应的存储区域内,以降低写损失。解决了因磁盘阵列中存在写损失带来的磁盘性 能降低的问题。这样既可以提升磁盘中大数据的输入输出性能,同时也能极大的降低小数 据所带来的写损失。
[0093] 实施例二
[0094] 本实施例提供一种提高磁盘阵列性能的方法,将LUN划分为两个不同类型的 VLUN,分别标识为VLUN1和VLUN2, VLUN1和VLUN2内部的划分的条带容量不同,VLUN1和 VLUN2使用的RAID类型可能不同,VLUN1中存储元数据,VLUN2中存储文件内容数据,如图 2所示,所述方法包括:
[0095] 201、系统启动前,根据用户业务使用情况配置磁盘阵列配置参数。
[0096] 进一步的,在配置完磁盘阵列配置参数后,系统需要进行两方面的配置,一方面是 进行文件系统的配置,以对数据进行10控制,具体参照步骤202-204 ;另一方面是磁盘内部 的配置,对磁盘进行分区,具体参照步骤205-207。这两方面的配置是同时进行的。
[0097] 202、文件系统进行初始化,对系统配置进行检查。
[0098] 203、读取磁盘阵列配置参数。
[0099] 204、建立文件系统,根据磁盘阵列配置参数建立文件操作策略。
[0100] 例如,根据参数中VLUN的条带大小、VLUN使用的RAID类型,VLUN的访问地址等, 执行如下的文件操作策略:将元数据等小数据分配至具有写损失较小的VLUN对应的存储 区域,其中,写损失较小可以包括两种情况:一是该VLUN使用没有写损失的RAID类型,例 如,RAID1 ;二是该VLUN内的条带容量小于一个预设值X ;将文件内容数据等大数据分配至 具有较大条带容量的VLUN对应的存储区域。其中,元数据用于管理文件系统和磁盘,文件 内容数据是用户真正存储的数据。元数据占用的存储空间很小,而文件内容数据占用的存 储空间较大。
[0101] 上述文件操作策略主要基于以下原因进行考虑:当使用的RAID类型为RAID5时, 由于RAID5自身结构的限制,在RAID5类型的LUN中会存在写损失,但是如果能够使存储的 数据尽量填满整个条带,那么就能避免写损失。例如,一个较小的条带内包括4个磁盘,其 中磁盘1、磁盘2和磁盘3存储文件数据,磁盘4存储校验数据。4个磁盘存储容量智能容 纳一个字节的数据,磁盘1存储" 1",磁盘2存储"2",磁盘3存储"3",那么磁盘4存储的校 验信息为其他3个磁盘在逻辑上的总和"6"。当用户要将磁盘2的数据"2"修改为"4"时, 如果仅修改磁盘2上的数据,那么需要先读出数据"2"和校验值"6",再将新数据"4"和新 检验值"8"写入磁盘,这个过程涉及4次读写,导致了写损失;如果此时恰好磁盘1和磁盘 3上也有数据需要修改,比如向磁盘1写入"2",向磁盘3写入"5",那么就不需要再读取校 验值信息了,因为磁盘1、磁盘2和磁盘3的数据都被写满,可以直接根据磁盘1、磁盘2和 磁盘3中写满的新数据更新校验值。这样在用户将磁盘2的数据"2"修改为"4"的过程中 相当于只对磁盘2进行了一次写操作。
[0102] 因此条带越小,那么其条带内磁盘被写满的可能性越大,在更新数据时所进行的 读写操作越少,即写损失越小。基于这个理由,我们可以将元数据这类小数据分配在小的条 带,减少写损失,而对于文件内容数据这类大数据,如果仅仅考虑写损失问题而将其也分配 到小条带,那么仍然会对磁盘性能造成影响,因为如果将大数据分配到条带较小的VLUN,会 占用多个小条带,那么在修改大数据时就涉及对多个条带的操作,这样反而会降低系统效 率。
[0103] 综上所述,将LUN划分为VLUN1和VLUN2时包括以下两种方案:一、划分的VLUN1和 VLUN2的条带容量大小不同,例如VLUN1中的条带容量小于预设值X,VLUN2中的条带容量 大于预设值y,限定y大于X,并且VLUN1和VLUN2中的条带容量不会介于X和y之间;二、 VLUN1中使用RAID1,RAID1中不存在写损失,VLUN2中使用RAID5,且VLUN2中的条带容量 大于预设值y。经过上述划分,在存储数据时,将元数据存储在VLUN1中,将文件内容数据存 储在VLUN2中。
[0104] 可选的,在存储数据时也可以直接根据用户的指示将数据存储在用户指定的VLUN 中,例如,用户想将文件内容数据存储在VLUN1中,那么向系统下发10请求,系统根据10请 求将文件内容数据存储在VLUN1中。
[0105] 进一步的,上述的文件操作策略可以将全部元数据都统一分配至一个VLUN里面, 这样能够汇聚元数据的10操作,提升10性能。因为磁盘数据读写先在cache中进行,一般 只有当cache中的数据大于条带大小时,才会将数据写入磁盘中。由于元数据较小,通过将 元数据集中存储,当元数据的量累积到一定程度时,即数据量大于条带大小时,一起写入磁 盘,从而提升10性能。
[0106] 205、存储设备进行初始化,对系统配置进行检查。
[0107] 206、读取磁盘阵列配置参数。
[0108] 207、建立VLUN1和VLUN2,根据磁盘阵列配置参数建立磁盘的管理数据。
[0109] 其中,磁盘的管理数据包括:两种类型的VLUN的容量、两种类型的VLUN的起始位 置、两种类型的VLUN内部的条带大小,以及两种类型的VLUN所使用的RAID类型。
[0110] 具体的划分步骤可以为:
[0111] 根据所述第一类型的VLUN的起始位置和所述第二类型的VLUN的起始位置,在所 述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储区域的起始位置和所述第二类 型的VLUN对应的存储区域的起始位置;根据所述第一类型的VLUN的容量和所述第二类型 的VLUN的容量,在所述LUN对应的磁盘中,以所述第一类型的VLUN对应的存储区域的起始 位置为起点,划分与第一类型的VLUN的容量等同的存储区域,以所述第二类型的VLUN对应 的存储区域的起始位置为起点,划分与第二类型的VLUN的容量等同的存储区域;根据所述 第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID类型,在所述第一 类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型;根据所述第一类型的VLUN 中的条带容量,在所述第一类型的VLUN中划分对应的条带;根据所述第二类型的VLUN中的 条带容量,在所述第二类型的VLUN中划分对应的条带。
[0112] 上述步骤配置完成后,以应用程序写入文件为例,通过步骤208-步骤216详细描 述数据分配过程。首先步骤208-步骤210是打开文件的过程,此过程中只是建立新文件, 主要是写入元数据。
[0113] 208、调用文件系统接口,打开一个文件,在该文件中创建新的文件,为新创建的文 件分配元数据空间,并分配文件内容数据空间。
[0114] 其中,分配的元数据空间即是VLUN1对应的存储区域,分配的文件内容数据空间 即是VLUN2对应的存储区域。
[0115] 可选的,在分配数据空间时,可以进行动态分配。
[0116] 209、通过10模块进行10调度,将元数据和文件内容数据对应的操作转换为存储 设备的10操作请求,并下发至存储设备。
[0117] 其中,该10操作请求中并不区分文件内容数据和元数据,仅仅有数据对应的访问 地址、存储内容以及内容大小等,元数据和文件内容数据具有不同的访问地址。
[0118] 210、存储设备根据10操作请求中的访问地址匹配到VLUN,对元数据和文件内容 数据进行存储。
[0119] 例如,基于步骤208中的存储分配,将元数据存储在VLUN1对应的存储区域,将文 件内容数据存储在VLUN2对应的存储区域。
[0120] 在执行完步骤208-210后,要将文件内容数据写入到建立好的新文件中,执行步 骤211-步骤213。
[0121] 211、调用文件系统接口,更新元数据,将文件内容数据写入分配好的数据空间。
[0122] 其中,元数据的更新主要包括文件的长度以及文件所占用的磁盘空间。
[0123] 212、通过10模块进行10调度,将元数据和文件内容数据对应的操作转换为存储 设备的10操作请求,并下发至存储设备。
[0124] 其中,该10操作请求中并不区分文件内容数据和元数据,仅仅有数据对应的访问 地址、存储内容以及内容大小等,元数据和文件内容数据具有不同的访问地址。
[0125] 213、存储设备根据10操作请求中的访问地址匹配到VLUN,对元数据和文件内容 数据进行存储。
[0126] 在执行完步骤211-213后,关闭写好的文件,执行步骤214-步骤216。
[0127] 214、调用文件系统接口,更新元数据,关闭文件。
[0128] 其中,更新的元数据主要包括:文件修改的时间点。
[0129] 215、通过10模块进行10调度,将元数据对应的操作转换为存储设备的10操作请 求,并下发至存储设备。
[0130] 216、存储设备根据10操作请求中的访问地址匹配到VLUN,对元数据进行存储。
[0131] 需要说明的是,本实施例是以将LUN划分为两个VLUN为例进行说明,在实际操作 过程中可以根据用户需求按照本方法的策略将VLUN划分成两个以上的VLUN,但不论将LUN 划分为几个VLUN,这些VLUN中只包括两种类型的VLUN,即每种VLUN类型可以包括多个 VLUN,本实施例并不对VLUN的划分数目进行限定,此处不再做过多赘述。
[0132] 可选的,当划分的每个类型的VLUN数量大于等于2时,以VLUN1的类型为例,划分 了三个与VLUN1同类型的VLUN,分别定义为VLUNla、VLUNlb和VLUNlc,在存储元数据时,可 以参照如下流程:根据多个VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法, 将所述存储请求对应的元数据存储到相应的VLUN中。具体的,通过下述例子说明轮询算 法,例如,第一个10请求对应的元数据存储在VLUNla中,第二个10请求对应的元数据存储 在VLUNlb中,第三个10请求对应的元数据存储在VLUNlc中,第四个10请求对应的元数据 再回头存储在VLUNla中,依此类推。
[0133] 或者,按照VLUN的序号顺序依次进行存储,例如,将所有10请求对应的元数据都 优先存储在VLUNla中,当VLUNla被写满后,新的10请求对应的元数据存储在VLUNlb中, 当VLUNlb被写满后,新的10请求对应的元数据存储在VLUNlc中,依此类推。
[0134] 进一步的,当存储数据完毕后,用户读取数据的过程如下:
[0135] 接收读取请求,所述读取请求包含了文件名;根据所述文件名,向存储设备下发输 入输出10调度请求,在磁盘上获取所述文件名对应的元数据所处的第一类型的VLUN的序 号;根据所述文件名和所述第一类型的VLUN的序号,获取所述文件名对应的元数据在所述 第一类型的VLUN中的访问地址;根据所述文件名对应的元数据在所述第一类型的VLUN中 的访问地址,获取所述文件名对应的元数据;解析所述文件名对应的元数据,获取所述文件 名对应的文件内容数据的访问地址;根据所述文件名对应的文件内容数据的访问地址,获 取所述文件名对应的文件内容数据。
[0136] 与现有技术相比,本发明实施例根据用户业务配置磁盘阵列配置参数;根据所述 磁盘阵列配置参数将逻辑单元号LUN划分成VLUN1和VLUN2, VLUN1和VLUN2为不同类型的 VLUN,VLUN1中写损失较小,VLUN2中具有大容量的条带;将文件内容数据存储在VLUN2中, 将元数据存储在VLUN1中。通过将LUN分为两种类型的VLUN,并对VLUN的条带容量和所使 用的RAID类型进行配置,降低存储元数据造成的写损失,解决了因写损失带来的磁盘性能 降低的问题。既可以提升磁盘中大数据的输入输出性能,同时也能极大的降低小数据所带 来的写损失。
[0137] 实施例三
[0138] 本实施例提供一种提高磁盘阵列性能的装置30,如图3所示,所述装置30包括:
[0139] 接收单元31,用于接收存储请求;
[0140] 确定单元32,用于确定所述接收单元31接收的所述存储请求中要存储的数据的 数据类型;
[0141] 第一存储单元33,用于当所述确定单元32确定所述数据类型为元数据时,将所述 元数据存储在第一类型的VLUN中,其中所述第一类型的VLUN中的条带容量小于第一预设 值;
[0142] 第二存储单元34,用于当所述确定单元32确定所述数据类型为文件内容数据时, 将所述文件内容数据存储在第二类型的VLUN中,其中所述第二类型的VLUN中的条带容量 大于第二预设值,所述第二预设值大于所述第一预设值。
[0143] 进一步的,如图4所示,所述装置30还包括:
[0144] 参数配置单元35,用于根据用户业务需求,配置磁盘阵列配置参数;
[0145] 划分单元36,用于根据所述参数配置单元35配置的所述磁盘阵列配置参数,将逻 辑单元号LUN划分成至少一个第一类型的VLUN和至少一个第二类型的VLUN。
[0146] 其中,参数配置单元35配置的所述磁盘阵列配置参数包括:第一类型的VLUN的容 量、第二类型的VLUN的容量、第一类型的VLUN的起始位置、第二类型的VLUN的起始位置、 第一类型的VLUN使用的RAID类型、第二类型的VLUN使用的RAID类型、第一类型的VLUN 中的条带容量和第二类型的VLUN中的条带容量;
[0147] 则所述划分单元36具体用于:根据所述第一类型的VLUN的起始位置和所述第二 类型的VLUN的起始位置,在所述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储 区域的起始位置和所述第二类型的VLUN对应的存储区域的起始位置;
[0148] 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对 应的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型 的VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起 点,划分与第二类型的VLUN的容量等同的存储区域;
[0149] 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID 类型,在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型;
[0150] 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的 条带;根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的条 带。
[0151] 可选的,当所述第一类型的VLUN的数量为两个或两个以上时,所述第一存储单元 33还用于:
[0152] 根据所述第一类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算 法,将所述存储请求对应的元数据存储到相应的第一类型的VLUN中;或者,
[0153] 根据所述第一类型的VLUN的序号顺序,将所述元数据存储在第一个第一类型的 VLUN中;当所述第一个第一类型的VLUN的存储区域被写满时,将所述元数据存储在下一个 第一类型的VLUN中。
[0154] 可选的,当所述第二类型的VLUN的数量为两个或两个以上时,所述第二存储单元 34还用于:
[0155] 根据所述第二类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算 法,将所述存储请求对应的文件内容数据存储到相应的第二类型的VLUN中;或者,
[0156] 根据所述第二类型的VLUN的序号顺序,将所述文件内容数据存储在第一个第二 类型的VLUN中;当所述第一个第二类型的VLUN的存储区域被写满时,将所述文件内容数据 存储在下一个第二类型的VLUN中。
[0157] 进一步的,所述接收单元31还用于接收读取请求,所述读取请求包含了文件名; 进一步的,如图4所示,所述装置30还包括 :
[0158] 调度单元37,用于根据所述文件名向存储设备下发输入输出10调度请求,在磁盘 上获取所述文件名对应的元数据所处的第一类型的VLUN的序号;
[0159] 地址获取单元38,用于根据所述文件名和所述第一类型的VLUN的序号,获取所述 文件名对应的元数据在所述第一类型的VLUN中的访问地址;
[0160] 读取单元39,用于根据所述文件名对应的元数据在所述第一类型的VLUN中的访 问地址,获取所述文件名对应的元数据;
[0161] 解析单元310,用于解析所述文件名对应的元数据,获取所述文件名对应的文件内 容数据的访问地址;
[0162] 所述读取单元39还用于根据所述文件名对应的文件内容数据的访问地址,获取 所述文件名对应的文件内容数据。
[0163] 进一步的,所述接收单元31接收的所述存储请求具体为系统请求;
[0164] 则所述第一存储单元33还用于根据所述系统请求,当所述数据类型为元数据时, 将所述元数据存储在第三类型的VLUN中,其中所述第三类型的VLUN中的写损失小于损失 阈值。
[0165] 与现有技术相比,本发明实施例首先接收存储请求;确定存储请求中要存储的数 据的数据类型;将元数据存储在第一类型的VLUN中,其中第一类型的VLUN中的条带容量小 于第一预设值;将文件内容数据存储在所述第二类型的VLUN中,第二类型的VLUN中的条带 容量大于第二预设值,所述第二预设值大于所述第一预设值。通过将LUN分为两种类型的 VLUN,并对VLUN的条带容量和所使用的RAID类型进行配置,尽量将文件内容数据等大数据 分配在条带容量较大的VLUN对应的存储区域内,将元数据等小数据分配在条带容量较小 的VLUN对应的存储区域内,以降低写损失。解决了因磁盘阵列中存在写损失带来的磁盘性 能降低的问题。这样既可以提升磁盘中大数据的输入输出性能,同时也能极大的降低小数 据所带来的写损失。
[0166] 实施例四
[0167] 本实施例提供一种提高磁盘阵列性能的装置40,如图5所示,所述装置40包括:
[0168] 接收器41,用于接收存储请求;
[0169] 处理器42,用于确定所述接收器41接收的所述存储请求中要存储的数据的数据 类型;
[0170] 存储器43,用于当所述处理器42确定所述数据类型为元数据时,将所述元数据存 储在所述第一类型的VLUN中,其中所述第一类型的VLUN中的条带容量小于第一预设值;以 及,用于当所述处理器42确定所述数据类型为文件内容数据时,将所述文件内容数据存储 在所述第二类型的VLUN中,其中所述第二类型的VLUN中的条带容量大于第二预设值,所述 第二预设值大于所述第一预设值。
[0171] 进一步的,所述处理器42还用于:根据用户业务需求,配置磁盘阵列配置参数;以 及,用于根据所述参数配置单元配置的所述磁盘阵列配置参数,将逻辑单元号LUN划分成 至少一个第一类型的VLUN和至少一个第二类型的VLUN。
[0172] 其中,所述磁盘阵列配置参数包括:第一类型的VLUN的容量、第二类型的VLUN的 容量、第一类型的VLUN的起始位置、第二类型的VLUN的起始位置、第一类型的VLUN使用的 RAID类型、第二类型的VLUN使用的RAID类型、第一类型的VLUN中的条带容量和第二类型 的VLUN中的条带容量;
[0173] 则所述处理器42具体用于:根据所述第一类型的VLUN的起始位置和所述第二类 型的VLUN的起始位置,在所述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储区 域的起始位置和所述第二类型的VLUN对应的存储区域的起始位置;
[0174] 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对 应的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型 的VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起 点,划分与第二类型的VLUN的容量等同的存储区域;
[0175] 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID 类型,在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型;
[0176] 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的 条带;根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的条 带。
[0177] 可选的,当所述第一类型的VLUN的数量为两个或两个以上时,所述存储器43还用 于:根据所述第一类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法,将 所述存储请求对应的元数据存储到相应的第一类型的VLUN中;或者,根据所述第一类型的 VLUN的序号顺序,将所述元数据存储在第一个第一类型的VLUN中;当所述第一个第一类型 的VLUN的存储区域被写满时,将所述元数据存储在下一个第一类型的VLUN中。
[0178] 可选的,当所述第二类型的VLUN的数量为两个或两个以上时,所述存储器43还用 于:根据所述第二类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法,将 所述存储请求对应的文件内容数据存储到相应的第二类型的VLUN中;或者,根据所述第二 类型的VLUN的序号顺序,将所述文件内容数据存储在第一个第二类型的VLUN中;当所述第 一个第二类型的VLUN的存储区域被写满时,将所述文件内容数据存储在下一个第二类型 的VLUN中。
[0179] 进一步的,所述接收器41还用于接收读取请求,所述读取请求包含了文件名;则 所述处理器42还用于根据所述文件名向存储设备下发输入输出10调度请求,在磁盘上获 取所述文件名对应的元数据所处的第一类型的VLUN的序号;以及,用于根据所述文件名和 所述第一类型的VLUN的序号,获取所述文件名对应的元数据在所述第一类型的VLUN中的 访问地址;以及,用于根据所述文件名对应的元数据在所述第一类型的VLUN中的访问地 址,获取所述文件名对应的元数据;以及,用于解析所述文件名对应的元数据,获取所述文 件名对应的文件内容数据的访问地址;以及,用于根据所述文件名对应的文件内容数据的 访问地址,获取所述文件名对应的文件内容数据。
[0180] 进一步的,所述接收器41接收的所述存储请求具体为系统请求;则所述存储器43 还用于根据所述系统请求,当所述数据类型为元数据时,将所述元数据存储在第三类型的 VLUN中,其中所述第三类型的VLUN中的写损失小于损失阈值。
[0181] 与现有技术相比,本发明实施例首先接收存储请求;确定存储请求中要存储的数 据的数据类型;将元数据存储在第一类型的VLUN中,其中第一类型的VLUN中的条带容量小 于第一预设值;将文件内容数据存储在所述第二类型的VLUN中,第二类型的VLUN中的条带 容量大于第二预设值,所述第二预设值大于所述第一预设值。通过将LUN分为两种类型的 VLUN,并对VLUN的条带容量和所使用的RAID类型进行配置,尽量将文件内容数据等大数据 分配在条带容量较大的VLUN对应的存储区域内,将元数据等小数据分配在条带容量较小 的VLUN对应的存储区域内,以降低写损失。解决了因磁盘阵列中存在写损失带来的磁盘性 能降低的问题。这样既可以提升磁盘中大数据的输入输出性能,同时也能极大的降低小数 据所带来的写损失。
[0182] 本发明实施例提供的提高磁盘阵列性能的装置可以实现上述提供的方法实施例, 具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的提高磁盘 阵列性能的方法及装置可以适用于磁盘阵列的性能优化,但不仅限于此。
[0183] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0184] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应 涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【权利要求】
1. 一种提高磁盘阵列性能的方法,其特征在于,包括: 接收存储请求; 确定所述存储请求中要存储的数据的数据类型; 当确定所述数据类型为元数据时,将所述元数据存储在第一类型的虚拟逻辑单元号 VLUN中,其中所述第一类型的VLUN中的条带容量小于第一预设值; 当确定所述数据类型为文件内容数据时,将所述文件内容数据存储在第二类型的VLUN 中,其中所述第二类型的VLUN中的条带容量大于第二预设值,所述第二预设值大于所述第 一预设值。
2. 根据权利要求1所述的方法,其特征在于,在所述接收存储请求之前,所述方法还包括: 根据用户业务需求,配置磁盘阵列配置参数; 根据所述磁盘阵列配置参数,将逻辑单元号LUN划分成至少一个第一类型的VLUN和至 少一个第二类型的VLUN。
3. 根据权利要求2所述的方法,其特征在于,所述磁盘阵列配置参数包括:第一类型的 VLUN的容量、第二类型的VLUN的容量、第一类型的VLUN的起始位置、第二类型的VLUN的起 始位置、第一类型的VLUN使用的RAID类型、第二类型的VLUN使用的RAID类型、第一类型 的VLUN中的条带容量和第二类型的VLUN中的条带容量; 所述根据所述磁盘阵列配置参数,将LUN划分成至少一个第一类型的VLUN和至少一个 第二类型的VLUN包括: 根据所述第一类型的VLUN的起始位置和所述第二类型的VLUN的起始位置,在所述LUN 对应的磁盘中确定所述第一类型的VLUN对应的存储区域的起始位置和所述第二类型的 VLUN对应的存储区域的起始位置; 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对应 的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型的 VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起点, 划分与第二类型的VLUN的容量等同的存储区域; 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID类型, 在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型; 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的条 带; 根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的条带。
4. 根据权利要求1所述的方法,其特征在于,当所述第一类型的VLUN的数量为两个或 两个以上时,所述将所述元数据存储在所述第一类型的VLUN中包括 : 根据所述第一类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法,将 所述存储请求对应的元数据存储到相应的第一类型的VLUN中;或者, 根据所述第一类型的VLUN的序号顺序,将所述元数据存储在第一个第一类型的VLUN 中;当所述第一个第一类型的VLUN的存储区域被写满时,将所述元数据存储在下一个第一 类型的VLUN中。
5. 根据权利要求1所述的方法,其特征在于,当所述第二类型的VLUN的数量为两个或 两个以上时,所述将所述文件内容数据存储在所述第二类型的VLUN中包括 : 根据所述第二类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法,将 所述存储请求对应的文件内容数据存储到相应的第二类型的VLUN中;或者, 根据所述第二类型的VLUN的序号顺序,将所述文件内容数据存储在第一个第二类型 的VLUN中;当所述第一个第二类型的VLUN的存储区域被写满时,将所述文件内容数据存储 在下一个第二类型的VLUN中。
6. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收读取请求,所述读取请求包含了文件名; 根据所述文件名,向存储设备下发输入输出10调度请求,在磁盘上获取所述文件名对 应的元数据所处的第一类型的VLUN的序号; 根据所述文件名和所述第一类型的VLUN的序号,获取所述文件名对应的元数据在所 述第一类型的VLUN中的访问地址; 根据所述文件名对应的元数据在所述第一类型的VLUN中的访问地址,获取所述文件 名对应的元数据; 解析所述文件名对应的元数据,获取所述文件名对应的文件内容数据的访问地址; 根据所述文件名对应的文件内容数据的访问地址,获取所述文件名对应的文件内容数 据。
7. 根据权利要求1所述的方法,其特征在于,所述存储请求具体为系统请求;所述方法 还包括:根据所述系统请求,当所述数据类型为元数据时,将所述元数据存储在第三类型的 VLUN中,其中所述第三类型的VLUN中的写损失小于损失阈值。
8. -种提高磁盘阵列性能的装置,其特征在于,包括: 接收单元,用于接收存储请求; 确定单元,用于确定所述接收单元接收的所述存储请求中要存储的数据的数据类型; 第一存储单元,用于当所述确定单元确定所述数据类型为元数据时,将所述元数据存 储在第一类型的虚拟逻辑单元号VLUN中,其中所述第一类型的VLUN中的条带容量小于第 一预设值; 第二存储单元,用于当所述确定单元确定所述数据类型为文件内容数据时,将所述文 件内容数据存储在第二类型的VLUN中,其中所述第二类型的VLUN中的条带容量大于第二 预设值,所述第二预设值大于所述第一预设值。
9. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 参数配置单元,用于根据用户业务需求,配置磁盘阵列配置参数; 划分单元,用于根据所述参数配置单元配置的所述磁盘阵列配置参数,将逻辑单元号 LUN划分成至少一个第一类型的VLUN和至少一个第二类型的VLUN。
10. 根据权利要求9所述的装置,其特征在于,所述磁盘阵列配置参数包括:第一类型 的VLUN的容量、第二类型的VLUN的容量、第一类型的VLUN的起始位置、第二类型的VLUN 的起始位置、第一类型的VLUN使用的RAID类型、第二类型的VLUN使用的RAID类型、第一 类型的VLUN中的条带容量和第二类型的VLUN中的条带容量; 所述划分单元具体用于:根据所述第一类型的VLUN的起始位置和所述第二类型的 VLUN的起始位置,在所述LUN对应的磁盘中确定所述第一类型的VLUN对应的存储区域的起 始位置和所述第二类型的VLUN对应的存储区域的起始位置; 根据所述第一类型的VLUN的容量和所述第二类型的VLUN的容量,在所述LUN对应 的磁盘中,以所述第一类型的VLUN对应的存储区域的起始位置为起点,划分与第一类型的 VLUN的容量等同的存储区域,以所述第二类型的VLUN对应的存储区域的起始位置为起点, 划分与第二类型的VLUN的容量等同的存储区域; 根据所述第一类型的VLUN使用的RAID类型和所述第二类型的VLUN使用的RAID类型, 在所述第一类型的VLUN和所述第二类型的VLUN中配置对应的RAID类型; 根据所述第一类型的VLUN中的条带容量,在所述第一类型的VLUN中划分对应的条 带; 根据所述第二类型的VLUN中的条带容量,在所述第二类型的VLUN中划分对应的条带。
11. 根据权利要求8所述的装置,其特征在于,当所述第一类型的VLUN的数量为两个或 两个以上时,所述第一存储单元还用于: 根据所述第一类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法,将 所述存储请求对应的元数据存储到相应的第一类型的VLUN中;或者, 根据所述第一类型的VLUN的序号顺序,将所述元数据存储在第一个第一类型的VLUN 中;当所述第一个第一类型的VLUN的存储区域被写满时,将所述元数据存储在下一个第一 类型的VLUN中。
12. 根据权利要求8所述的装置,其特征在于,当所述第二类型的VLUN的数量为两个或 两个以上时,所述第二存储单元还用于: 根据所述第二类型的VLUN的序号顺序和所述存储请求的先后顺序,按照轮询算法,将 所述存储请求对应的文件内容数据存储到相应的第二类型的VLUN中;或者, 根据所述第二类型的VLUN的序号顺序,将所述文件内容数据存储在第一个第二类型 的VLUN中;当所述第一个第二类型的VLUN的存储区域被写满时,将所述文件内容数据存储 在下一个第二类型的VLUN中。
13. 根据权利要求8所述的装置,其特征在于,所述接收单元还用于接收读取请求,所 述读取请求包含了文件名;则所述装置还包括: 调度单元,用于根据所述文件名,向存储设备下发输入输出10调度请求,在磁盘上获 取所述文件名对应的元数据所处的第一类型的VLUN的序号; 地址获取单元,用于根据所述文件名和所述第一类型的VLUN的序号,获取所述文件名 对应的元数据在所述第一类型的VLUN中的访问地址; 读取单元,用于根据所述文件名对应的元数据在所述第一类型的VLUN中的访问地址, 获取所述文件名对应的元数据; 解析单元,用于解析所述文件名对应的元数据,获取所述文件名对应的文件内容数据 的访问地址; 所述读取单元还用于根据所述文件名对应的文件内容数据的访问地址,获取所述文件 名对应的文件内容数据。
14. 根据权利要求8所述的装置,其特征在于,所述接收单元接收的所述存储请求具体 为系统请求;则所述第一存储单元还用于根据所述系统请求,当所述数据类型为元数据时, 将所述元数据存储在第三类型的VLUN中,其中所述第三类型的VLUN中的写损失小于损失 阈值。
【文档编号】G06F3/06GK104216660SQ201310213470
【公开日】2014年12月17日 申请日期:2013年5月30日 优先权日:2013年5月30日
【发明者】沈剑刚, 李耀辉 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1