多个硬盘组成的存储系统数据存储方法

文档序号:6384526阅读:783来源:国知局
专利名称:多个硬盘组成的存储系统数据存储方法
技术领域
本发明涉及数据存储领域,具体涉及多个硬盘组成的存储系统数据存储方法。
背景技术
目前,互联网上的媒体文件多采用⑶N(内容分发网络)来实现存储和分发。由中 心内容库来保证媒体文件的完整性和安全性,通过在网络各处设置的节点服务器实现媒体 文件的大并发视频流化功能,各节点服务器的内容都来自于中心服务器。
由于媒体文件的数据量很大,因此要求各节点服务器具有很高的并发能力,并能 够不间断的提供大并发的流化服务。显然,标准文件系统虽然可以在硬盘损坏或者更换的 情况可以提供服务,不过不能满足大并发需要的IO的读写,而且内容的删除时间也长。为 此,节点服务器通常采用 RAIDO 或 RAIDl 规范的 RAID (Redundant Array of Independent Disk,独立冗余磁盘阵列)。
(l)RAIDO,无差错控制的带区组。这种方式,数据是分成数据块保存在不同的硬盘 驱动器上的,所以数据吞吐率大大提高,硬盘驱动器的负载也比较平衡。虽然RAIDO可以提 供很高的并发能力,但是一旦有硬盘损坏或者需要更换,整个系统就不能提供服务,而且其 所有的内容都会丢失,需要所有的内容都要从中心重新分发。
(2)RAID1,镜象结构。这种方式,在一组硬盘驱动器出现问题时,可以使用镜象硬 盘驱动器,从而提高了系统的容错能力。虽然RAIDl方式在有硬盘驱动器损坏或更换的情 况可以正常提供服务,不过由于每个媒体文件在节点服务器都存有两份,而且媒体文件的 数据量很大,从而造成大量的内容冗余,带来存储成本的大幅度攀升。
由此可见,急需对现有节点服务器的存储方式进行优化设计,使其在满足持续不 间断提供服务的前提下,又能够满足大并发的要求,同时降低存储的成本。发明内容
本发明所要解决的技术问题是解决节点服务器为了满足持续不间断的提供服务 和大并发的要求,存储成本较高的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种多个硬盘组成的存 储系统数据存储方法,包括以下步骤
将所述多个硬盘划分为多个分组,并将每个硬盘的盘符、所在分组的分组号以及 分组内的顺序号写入到初始化配置文件中;
存储系统根据所述初始化配置文件进行初始化,根据硬盘的盘符自动获得硬盘的 序列号并生成硬盘所在分组的顺序号,把所述序列号与所在分组的分组号及顺序号的对应 关系写入到分组信息文件中,然后将每个硬盘的存储空间按固定大小分成多个条带,并将 所述条带在硬盘上偏移位置以及状态写入条带化信息文件中;
保存存储文件时,将所述存储文件的内容分配一个唯一的内容编号并分成若干个 内容块,每一个所述内容块分别保存在同一个分组中的不同硬盘的相应条带上,同时将占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态写入内容信息文 件中,同时更新所述条带化信息文件中相应条带的状态,每一个所述内容块的大小等于条 带的大小;所述条带信息包括条带号和条带在硬盘上偏移位置,所述条带状态有未用、已用 和已删除三种;
删除存储文件时,通过所述内容信息文件找到该存储文件的内容所占用的所有条 带,把这些条带的状态设置为未用,然后再把相应的条带号从所述内容信息文件中删除,并 更新所述条带化信息文件中的相应条带的状态。
在上述方法中,所述存储系统再次启动时,从所述分组信息文件中重新生成每块 硬盘的序列号与该硬盘所在分组及在分组中的顺序号的对应关系,并根据所述条带信息文 件生成条带化信息。
在上述方法中,存储系统重新启动后,根据分组信息文件中的硬盘序列号确定定 该硬盘位于哪个分组以及在该分组中的顺序号。
在上述方法中,存储系统重新启动后,根据所述条带化信息文件、分组信息文件和 内容信息文件恢复为原来的状态。
在上述方法中,所述存储文件的最后一个内容块小于条带大小也要占用一个条带。
本发明,既能够满足大并发的要求,又能够保证系统持续不间断的提供服务,最大 化利用存储空间,降低存储的成本。


图1为本发明的流程图2为本发明中多块硬盘初始化后的示意图3为本发明中保存文件F1、F2的示意图4为本发明中再保存文件F3的示意图5为本发明中删除文件Fl的示意图6为本发明中硬盘物理位置更换或更换硬盘时的示意图。
具体实施方式
本发明提供的多个硬盘组成的存储系统数据存储方法,将所述多个硬盘划分为多 个分组,每个硬盘按固定大小分成多个条带,文件在每个分组内根据条带均匀分布,从而既 保证了大并发的硬盘IO功能,同时又避免了因为单个硬盘损坏或更换造成所有内容的丢 失。下面结合说明书附图和具体实施例对本发明作出详细的说明。本具体实施例中,冗余 磁盘阵列由8块硬盘组成,且划分为两个分组,显然,本发明提供的技术方案并不仅限于8 个硬盘,也不仅限于划分为两个分组,本领域技术人员完全可以根据实际需要确定硬盘以 及分组的数量,硬盘和分组的数量至少为两个。
如图1所示,本发明提供的多个硬盘的数据存储方法包括以下步骤
步骤A10、为多个硬盘组成的存储系统的初始化提供配置文件。本实施例中,8个 硬盘分别是
(I)/dev/sdc,序列号是 SERIALNUM1001 ;
(2) /dev/sdd,序列号是 SERIALNUM1002
(3) /dev/sde,序列号是 SERIALNUM1003
(4) /dev/sdf,序列号是 SERIALNUM1004
(5) /dev/sdg,序列号是 SERIALNUM1005
(6) /dev/sdh,序列号是 SERIALNUM1006
(7) /dev/sdi,序列号是 SERIALNUM1007
(8) /dev/sdj,序列号是 SERIALNUM1008。
配置文件将上述8个硬盘分为两个分组,第一分组Gl顺序是/dev/sdcVdev/sdd、 /dev/sde 和 /dev/sdf ;第二分组 G2 顺序是 /dev/sdg、/dev/sdh、/dev/sdi 和 /dev/sdj。
上述多个硬盘不包含系统盘。
步骤A20、存储系统根据配置文件进行初始化,首先根据硬盘的盘符自动获得硬 盘的序列号并生成硬盘所在分组的顺序号,把所述序列号与所在分组的分组号及顺序号 的对应关系写入到分组信息文件Grouplnfo. dat中。例如硬盘/dev/sdc的序列号是 SERIALNUM1001,在分组 Gl 中,位于顺序第一,对应关系为SERIALNUM1001〈-> (Gl, Indexl) 写到 Grouplnfo. dat 中,同理,把其他的对应关系 SERIALNUM1002<-> (Gl, Index2)、 SERIALNUM1003<-> (Gl, Index3)、SER I ALNUM I 004<-> (Gl, Index4)、 SERIALNUM1005〈->(G2, Index I)、SER I ALNUM I 006<-> (G2, Index2)、 SERIALNUM1007<-> (G2, Index3)、SERIALNUM1008<-> (G2, Index4)也写入 Grouplnfo. dat 中,如图2所示。
步骤A30、把每个硬盘的存储空间划分成IMB大小的多个条带,并把所有条带的条 带信息和状态保存在条带化信息文件Stripinglnfo. dat中。条带信息包括条带号和条带 在硬盘上偏移位置,条带状态有未用、已用和已删除三种。
步骤A40、保存存储文件时,将所述存储文件的内容分配一个唯一的内容编号并分 成若干个内容块,每一个所述内容块分别保存在同一个分组中的不同硬盘的相应条带上, 同时将占用的条带的状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容 信息文件Filelnfo. dat中,同时更新所述条带化信息文件Stripinglnfo. dat,每一个所述 内容块的大小等于条带的大小;
例如存入存储文件Fl,假设存储文件Fl的大小为11M,为存储文件Fl分配一个 唯一的内容编号为21,并把存储文件Fl分成11个内容块,为方便描述,存储文件Fl的11个 内容块分别标记为(21-B1) (21-B11),并均匀地保存在第一分组Gl中的多个硬盘上,将 内容块(21-B1) (21-B11)占用的条带的条带状态设置为已用,并把该内容块所占用的条 带信息及状态记录到内容信息文件Filelnfo. dat中,更新条带化信息文件Stripinglnfo. dat中的条带占用状态,如图3所示。
存入存储文件F2,假设存储文件F2的大小为13. 5M,为存储文件F2分配一个唯 一的内容编号为22,把存储文件F2分成14个内容块,为方便描述,存储文件F2的14个内 容块分别标记为(22-B1) (22-B14),并均匀保存在第二分组G2中的多个硬盘上,其中第 (22-B14)内容块虽然不够1MB,也占用一个条带,同样地,将内容块(22-B1) (22-B14)占 用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容信息 文件Filelnfo. dat中,更新条带化信息文件Stripinglnfo. dat中的条带占用状态,如图3所示。
存入存储文件F3,假设存储文件F3的大小为14. 5M,为存储文件F3分配一个唯 一的内容ID为23,把存储文件F3分成15个内容块,为方便描述,存储文件F3的15个内 容块分别标记为(23-B1) (23-B15),并均匀保存在第一分组Gl中的多个硬盘上,其中第 (23-B15)内容块虽然不够1MB,也占用一个条带,同样地,将内容块(23-B1) (23-B15)占 用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容信息 文件Filelnfo. dat中,更新条带化信息文件Stripinglnfo. dat中的条带占用状态,如图3 所示。
步骤A50、删除存储文件时,通过内容信息文件Filelnfo. dat找到该存储文件的 内容所占用的所有条带,把这些条带的状态设置为未用,然后再把相应的条带号从所述内 容信息文件Filelnfo. dat中删除,并更新所述条带化信息文件Stripinglnfo. dat中的条 带占用状态。
例如删除存储文件Fl,只需要更新Stripinglnfo. dat中的条带状态,更新 Filelnfo. dat中信息即可,删除后如图5所示。
步骤A60、当某一个硬盘物理的位置被更换,系统重启后,根据条带化信息文件 Stripinglnfo. dat、分组信息文件Grouplnfo. dat和内容信息文件Filelnfo. dat恢复到正 常状态。
例如硬盘/dev/sdd (序列号SERIALNUM1002)和硬盘/dev/sdg (序列号 SERIALNUM1005)被互换,系统重新启动后,盘符发生了变化,不过系统可以正常工作,如图 6所示。
步骤A70、更换硬盘时,例如把硬盘SERIALNUM1003更换成SERIALNUM1009。由 于硬盘SERIALNUM1003处于第一分组G1,则第一分组Gl内的分组数据信息将丢失,此时, 只需要更新Filelnfo. dat、Grouplnfo. dat和Stripinglnfo. dat即可恢复分组信息。而 第二分组G2可以正常提供服务,如图6所示。新换的硬盘被条带化后,所有信息保存在 Stripinglnfo. dat 中。
本发明提供的方法具有如下优点
( I)系统初始化成功后,不再用初始化配置文件。
(2)系统重新启动后,根据条带化信息文件、分组信息文件和内容信息文件可以恢 复到正确的状态。
(3)即使硬盘的物理位置发生变化,系统可以正常读写内容。
(4)可以并发的从不同的硬盘读写数据,提高并发速度。
(5)单个硬盘的损坏或更换只会造成该组内的内容丢失,其他组可以正常工作。
(6)可以在系统其他组提供正常服务的情况下更换其中一个组的硬盘。
(7)具有很强的容错性。
(8)内容的删除只需要设置占用的条带的状态设置为未用即可,可以快速删除内容。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结 构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。
权利要求
1.多个硬盘组成的存储系统数据存储方法,其特征在于,包括以下步骤 将所述多个硬盘划分为多个分组,并将每个硬盘的盘符、所在分组的分组号以及分组内的顺序号写入到初始化配置文件中; 存储系统根据所述初始化配置文件进行初始化,根据硬盘的盘符自动获得硬盘的序列号并生成硬盘所在分组的顺序号,把所述序列号与所在分组的分组号及顺序号的对应关系写入到分组信息文件中,然后将每个硬盘的存储空间按固定大小分成多个条带,并将所述条带在硬盘上偏移位置以及状态写入条带化信息文件中; 保存存储文件时,将所述存储文件的内容分配ー个唯一的内容编号并分成若干个内容块,每ー个所述内容块分别保存在同一个分组中的不同硬盘的相应条带上,同时将占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态写入内容信息文件中,同时更新所述条带化信息文件中相应条带的状态,每ー个所述内容块的大小等于条带的大小;所述条带信息包括条带号和条带在硬盘上偏移位置,所述条带状态有未用、已用和已删除三种; 删除存储文件时,通过所述内容信息文件找到该存储文件的内容所占用的所有条带,把这些条带的状态设置为未用,然后再把相应的条带号从所述内容信息文件中删除,并更新所述条带化信息文件中的相应条带的状态。
2.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,所述存储系统再次启动时,从所述分组信息文件中重新生成每块硬盘的序列号与该硬盘所在分组及在分组中的顺序号的对应关系,并根据所述条带信息文件生成条带化信息。
3.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,存储系统重新启动后,根据分组信息文件中的硬盘序列号确定定该硬盘位于哪个分组以及在该分组中的顺序号。
4.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,存储系统重新启动后,根据所述条带化信息文件、分组信息文件和内容信息文件恢复为原来的状态。
5.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,所述存储文件的最后ー个内容块小于条带大小也要占用ー个条帯。
全文摘要
本发明公开了一种多个硬盘组成的存储系统数据存储方法,包括以下步骤将多个硬盘划分为多个分组并写入初始化配置文件中;根据初始化配置文件进行初始化,把硬盘序列号与所在分组的分组号及顺序号的对应关系写入到分组信息文件中,将每个硬盘按固定大小分成多个条带,并写入条带化信息文件中;保存存储文件时,将文件的内容分配一个唯一的内容编号并分成若干个内容块,每一个内容块分别保存在同一个分组中的不同硬盘的相应条带上,并把该内容块所占用的条带信息及状态写入内容信息文件中。本发明,既能够满足大并发的要求,又能够保证系统持续不间断的提供服务,最大化利用存储空间,降低存储的成本。
文档编号G06F3/06GK103034457SQ20121054967
公开日2013年4月10日 申请日期2012年12月18日 优先权日2012年12月18日
发明者杜兵 申请人:武汉市烽视威科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1