CN103034457A - 多个硬盘组成的存储系统数据存储方法 - Google Patents
多个硬盘组成的存储系统数据存储方法 Download PDFInfo
- Publication number
- CN103034457A CN103034457A CN2012105496748A CN201210549674A CN103034457A CN 103034457 A CN103034457 A CN 103034457A CN 2012105496748 A CN2012105496748 A CN 2012105496748A CN 201210549674 A CN201210549674 A CN 201210549674A CN 103034457 A CN103034457 A CN 103034457A
- Authority
- CN
- China
- Prior art keywords
- file
- hard disk
- content
- grouping
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多个硬盘组成的存储系统数据存储方法,包括以下步骤:将多个硬盘划分为多个分组并写入初始化配置文件中;根据初始化配置文件进行初始化,把硬盘序列号与所在分组的分组号及顺序号的对应关系写入到分组信息文件中,将每个硬盘按固定大小分成多个条带,并写入条带化信息文件中;保存存储文件时,将文件的内容分配一个唯一的内容编号并分成若干个内容块,每一个内容块分别保存在同一个分组中的不同硬盘的相应条带上,并把该内容块所占用的条带信息及状态写入内容信息文件中。本发明,既能够满足大并发的要求,又能够保证系统持续不间断的提供服务,最大化利用存储空间,降低存储的成本。
Description
技术领域
本发明涉及数据存储领域,具体涉及多个硬盘组成的存储系统数据存储方法。
背景技术
目前,互联网上的媒体文件多采用CDN(内容分发网络)来实现存储和分发。由中心内容库来保证媒体文件的完整性和安全性,通过在网络各处设置的节点服务器实现媒体文件的大并发视频流化功能,各节点服务器的内容都来自于中心服务器。
由于媒体文件的数据量很大,因此要求各节点服务器具有很高的并发能力,并能够不间断的提供大并发的流化服务。显然,标准文件系统虽然可以在硬盘损坏或者更换的情况可以提供服务,不过不能满足大并发需要的IO的读写,而且内容的删除时间也长。为此,节点服务器通常采用RAID0或RAID1规范的RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)。
(1)RAID0,无差错控制的带区组。这种方式,数据是分成数据块保存在不同的硬盘驱动器上的,所以数据吞吐率大大提高,硬盘驱动器的负载也比较平衡。虽然RAID0可以提供很高的并发能力,但是一旦有硬盘损坏或者需要更换,整个系统就不能提供服务,而且其所有的内容都会丢失,需要所有的内容都要从中心重新分发。
(2)RAID1,镜象结构。这种方式,在一组硬盘驱动器出现问题时,可以使用镜象硬盘驱动器,从而提高了系统的容错能力。虽然RAID1方式在有硬盘驱动器损坏或更换的情况可以正常提供服务,不过由于每个媒体文件在节点服务器都存有两份,而且媒体文件的数据量很大,从而造成大量的内容冗余,带来存储成本的大幅度攀升。
由此可见,急需对现有节点服务器的存储方式进行优化设计,使其在满足持续不间断提供服务的前提下,又能够满足大并发的要求,同时降低存储的成本。
发明内容
本发明所要解决的技术问题是解决节点服务器为了满足持续不间断的提供服务和大并发的要求,存储成本较高的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种多个硬盘组成的存储系统数据存储方法,包括以下步骤:
将所述多个硬盘划分为多个分组,并将每个硬盘的盘符、所在分组的分组号以及分组内的顺序号写入到初始化配置文件中;
存储系统根据所述初始化配置文件进行初始化,根据硬盘的盘符自动获得硬盘的序列号并生成硬盘所在分组的顺序号,把所述序列号与所在分组的分组号及顺序号的对应关系写入到分组信息文件中,然后将每个硬盘的存储空间按固定大小分成多个条带,并将所述条带在硬盘上偏移位置以及状态写入条带化信息文件中;
保存存储文件时,将所述存储文件的内容分配一个唯一的内容编号并分成若干个内容块,每一个所述内容块分别保存在同一个分组中的不同硬盘的相应条带上,同时将占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态写入内容信息文件中,同时更新所述条带化信息文件中相应条带的状态,每一个所述内容块的大小等于条带的大小;所述条带信息包括条带号和条带在硬盘上偏移位置,所述条带状态有未用、已用和已删除三种;
删除存储文件时,通过所述内容信息文件找到该存储文件的内容所占用的所有条带,把这些条带的状态设置为未用,然后再把相应的条带号从所述内容信息文件中删除,并更新所述条带化信息文件中的相应条带的状态。
在上述方法中,所述存储系统再次启动时,从所述分组信息文件中重新生成每块硬盘的序列号与该硬盘所在分组及在分组中的顺序号的对应关系,并根据所述条带信息文件生成条带化信息。
在上述方法中,存储系统重新启动后,根据分组信息文件中的硬盘序列号确定定该硬盘位于哪个分组以及在该分组中的顺序号。
在上述方法中,存储系统重新启动后,根据所述条带化信息文件、分组信息文件和内容信息文件恢复为原来的状态。
在上述方法中,所述存储文件的最后一个内容块小于条带大小也要占用一个条带。
本发明,既能够满足大并发的要求,又能够保证系统持续不间断的提供服务,最大化利用存储空间,降低存储的成本。
附图说明
图1为本发明的流程图;
图2为本发明中多块硬盘初始化后的示意图;
图3为本发明中保存文件F1、F2的示意图;
图4为本发明中再保存文件F3的示意图;
图5为本发明中删除文件F1的示意图;
图6为本发明中硬盘物理位置更换或更换硬盘时的示意图。
具体实施方式
本发明提供的多个硬盘组成的存储系统数据存储方法,将所述多个硬盘划分为多个分组,每个硬盘按固定大小分成多个条带,文件在每个分组内根据条带均匀分布,从而既保证了大并发的硬盘IO功能,同时又避免了因为单个硬盘损坏或更换造成所有内容的丢失。下面结合说明书附图和具体实施例对本发明作出详细的说明。本具体实施例中,冗余磁盘阵列由8块硬盘组成,且划分为两个分组,显然,本发明提供的技术方案并不仅限于8个硬盘,也不仅限于划分为两个分组,本领域技术人员完全可以根据实际需要确定硬盘以及分组的数量,硬盘和分组的数量至少为两个。
如图1所示,本发明提供的多个硬盘的数据存储方法包括以下步骤:
步骤A10、为多个硬盘组成的存储系统的初始化提供配置文件。本实施例中,8个硬盘分别是:
(1)/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个硬盘分为两个分组,第一分组G1顺序是/dev/sdc、/dev/sdd、/dev/sde和/dev/sdf;第二分组G2顺序是/dev/sdg、/dev/sdh、/dev/sdi和/dev/sdj。
上述多个硬盘不包含系统盘。
步骤A20、存储系统根据配置文件进行初始化,首先根据硬盘的盘符自动获得硬盘的序列号并生成硬盘所在分组的顺序号,把所述序列号与所在分组的分组号及顺序号的对应关系写入到分组信息文件GroupInfo.dat中。例如:硬盘/dev/sdc的序列号是SERIALNUM1001,在分组G1中,位于顺序第一,对应关系为:SERIALNUM1001<->(G1,Index1)写到GroupInfo.dat中,同理,把其他的对应关系SERIALNUM1002<->(G1,Index2)、SERIALNUM1003<->(G1,Index3)、SERIALNUM1004<->(G1,Index4)、SERIALNUM1005<->(G2,Index1)、SERIALNUM1006<->(G2,Index2)、SERIALNUM1007<->(G2,Index3)、SERIALNUM1008<->(G2,Index4)也写入GroupInfo.dat中,如图2所示。
步骤A30、把每个硬盘的存储空间划分成1MB大小的多个条带,并把所有条带的条带信息和状态保存在条带化信息文件StripingInfo.dat中。条带信息包括条带号和条带在硬盘上偏移位置,条带状态有未用、已用和已删除三种。
步骤A40、保存存储文件时,将所述存储文件的内容分配一个唯一的内容编号并分成若干个内容块,每一个所述内容块分别保存在同一个分组中的不同硬盘的相应条带上,同时将占用的条带的状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容信息文件FileInfo.dat中,同时更新所述条带化信息文件StripingInfo.dat,每一个所述内容块的大小等于条带的大小;
例如:存入存储文件F1,假设存储文件F1的大小为11M,为存储文件F1分配一个唯一的内容编号为21,并把存储文件F1分成11个内容块,为方便描述,存储文件F1的11个内容块分别标记为(21-B1)~(21-B11),并均匀地保存在第一分组G1中的多个硬盘上,将内容块(21-B1)~(21-B11)占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容信息文件FileInfo.dat中,更新条带化信息文件StripingInfo.dat中的条带占用状态,如图3所示。
存入存储文件F2,假设存储文件F2的大小为13.5M,为存储文件F2分配一个唯一的内容编号为22,把存储文件F2分成14个内容块,为方便描述,存储文件F2的14个内容块分别标记为(22-B1)~(22-B14),并均匀保存在第二分组G2中的多个硬盘上,其中第(22-B14)内容块虽然不够1MB,也占用一个条带,同样地,将内容块(22-B1)~(22-B14)占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容信息文件FileInfo.dat中,更新条带化信息文件StripingInfo.dat中的条带占用状态,如图3所示。
存入存储文件F3,假设存储文件F3的大小为14.5M,为存储文件F3分配一个唯一的内容ID为23,把存储文件F3分成15个内容块,为方便描述,存储文件F3的15个内容块分别标记为(23-B1)~(23-B15),并均匀保存在第一分组G1中的多个硬盘上,其中第(23-B15)内容块虽然不够1MB,也占用一个条带,同样地,将内容块(23-B1)~(23-B15)占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态记录到内容信息文件FileInfo.dat中,更新条带化信息文件StripingInfo.dat中的条带占用状态,如图3所示。
步骤A50、删除存储文件时,通过内容信息文件FileInfo.dat找到该存储文件的内容所占用的所有条带,把这些条带的状态设置为未用,然后再把相应的条带号从所述内容信息文件FileInfo.dat中删除,并更新所述条带化信息文件StripingInfo.dat中的条带占用状态。
例如删除存储文件F1,只需要更新StripingInfo.dat中的条带状态,更新FileInfo.dat中信息即可,删除后如图5所示。
步骤A60、当某一个硬盘物理的位置被更换,系统重启后,根据条带化信息文件StripingInfo.dat、分组信息文件GroupInfo.dat和内容信息文件FileInfo.dat恢复到正常状态。
例如:硬盘/dev/sdd(序列号SERIALNUM1002)和硬盘/dev/sdg(序列号SERIALNUM1005)被互换,系统重新启动后,盘符发生了变化,不过系统可以正常工作,如图6所示。
步骤A70、更换硬盘时,例如把硬盘SERIALNUM1003更换成SERIALNUM1009。由于硬盘SERIALNUM1003处于第一分组G1,则第一分组G1内的分组数据信息将丢失,此时,只需要更新FileInfo.dat、GroupInfo.dat和StripingInfo.dat即可恢复分组信息。而第二分组G2可以正常提供服务,如图6所示。新换的硬盘被条带化后,所有信息保存在StripingInfo.dat中。
本发明提供的方法具有如下优点:
(1)系统初始化成功后,不再用初始化配置文件。
(2)系统重新启动后,根据条带化信息文件、分组信息文件和内容信息文件可以恢复到正确的状态。
(3)即使硬盘的物理位置发生变化,系统可以正常读写内容。
(4)可以并发的从不同的硬盘读写数据,提高并发速度。
(5)单个硬盘的损坏或更换只会造成该组内的内容丢失,其他组可以正常工作。
(6)可以在系统其他组提供正常服务的情况下更换其中一个组的硬盘。
(7)具有很强的容错性。
(8)内容的删除只需要设置占用的条带的状态设置为未用即可,可以快速删除内容。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。
Claims (5)
1.多个硬盘组成的存储系统数据存储方法,其特征在于,包括以下步骤:
将所述多个硬盘划分为多个分组,并将每个硬盘的盘符、所在分组的分组号以及分组内的顺序号写入到初始化配置文件中;
存储系统根据所述初始化配置文件进行初始化,根据硬盘的盘符自动获得硬盘的序列号并生成硬盘所在分组的顺序号,把所述序列号与所在分组的分组号及顺序号的对应关系写入到分组信息文件中,然后将每个硬盘的存储空间按固定大小分成多个条带,并将所述条带在硬盘上偏移位置以及状态写入条带化信息文件中;
保存存储文件时,将所述存储文件的内容分配一个唯一的内容编号并分成若干个内容块,每一个所述内容块分别保存在同一个分组中的不同硬盘的相应条带上,同时将占用的条带的条带状态设置为已用,并把该内容块所占用的条带信息及状态写入内容信息文件中,同时更新所述条带化信息文件中相应条带的状态,每一个所述内容块的大小等于条带的大小;所述条带信息包括条带号和条带在硬盘上偏移位置,所述条带状态有未用、已用和已删除三种;
删除存储文件时,通过所述内容信息文件找到该存储文件的内容所占用的所有条带,把这些条带的状态设置为未用,然后再把相应的条带号从所述内容信息文件中删除,并更新所述条带化信息文件中的相应条带的状态。
2.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,所述存储系统再次启动时,从所述分组信息文件中重新生成每块硬盘的序列号与该硬盘所在分组及在分组中的顺序号的对应关系,并根据所述条带信息文件生成条带化信息。
3.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,存储系统重新启动后,根据分组信息文件中的硬盘序列号确定定该硬盘位于哪个分组以及在该分组中的顺序号。
4.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,存储系统重新启动后,根据所述条带化信息文件、分组信息文件和内容信息文件恢复为原来的状态。
5.如权利要求1所述的多个硬盘组成的存储系统数据存储方法,其特征在于,所述存储文件的最后一个内容块小于条带大小也要占用一个条带。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549674.8A CN103034457B (zh) | 2012-12-18 | 2012-12-18 | 多个硬盘组成的存储系统数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549674.8A CN103034457B (zh) | 2012-12-18 | 2012-12-18 | 多个硬盘组成的存储系统数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034457A true CN103034457A (zh) | 2013-04-10 |
CN103034457B CN103034457B (zh) | 2015-05-13 |
Family
ID=48021392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210549674.8A Active CN103034457B (zh) | 2012-12-18 | 2012-12-18 | 多个硬盘组成的存储系统数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034457B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777903A (zh) * | 2014-01-23 | 2014-05-07 | 武汉市烽视威科技有限公司 | 一种适用于流媒体服务的数据存储方法 |
CN105988873A (zh) * | 2015-02-04 | 2016-10-05 | 北京神州云科数据技术有限公司 | 一种优化处理资源的方法及装置 |
CN108241538A (zh) * | 2017-12-28 | 2018-07-03 | 深圳忆联信息系统有限公司 | 一种固态硬盘中raid资源的管理方法及固态硬盘 |
WO2019141248A1 (zh) * | 2018-01-18 | 2019-07-25 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
CN112241238A (zh) * | 2019-07-18 | 2021-01-19 | 深圳市茁壮网络股份有限公司 | 一种数据异常处理方法、装置、存储介质和计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123193A1 (en) * | 2002-12-13 | 2006-06-08 | Hitachi, Ltd. | Control method for distributed storage system |
US7895161B2 (en) * | 2007-05-29 | 2011-02-22 | Hitachi, Ltd. | Storage system and method of managing data using same |
CN102541475A (zh) * | 2012-03-12 | 2012-07-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和数据存储装置 |
-
2012
- 2012-12-18 CN CN201210549674.8A patent/CN103034457B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123193A1 (en) * | 2002-12-13 | 2006-06-08 | Hitachi, Ltd. | Control method for distributed storage system |
US7895161B2 (en) * | 2007-05-29 | 2011-02-22 | Hitachi, Ltd. | Storage system and method of managing data using same |
CN102541475A (zh) * | 2012-03-12 | 2012-07-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和数据存储装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777903A (zh) * | 2014-01-23 | 2014-05-07 | 武汉市烽视威科技有限公司 | 一种适用于流媒体服务的数据存储方法 |
CN105988873A (zh) * | 2015-02-04 | 2016-10-05 | 北京神州云科数据技术有限公司 | 一种优化处理资源的方法及装置 |
CN105988873B (zh) * | 2015-02-04 | 2019-10-08 | 深圳神州数码云科数据技术有限公司 | 一种优化处理资源的方法及装置 |
CN108241538A (zh) * | 2017-12-28 | 2018-07-03 | 深圳忆联信息系统有限公司 | 一种固态硬盘中raid资源的管理方法及固态硬盘 |
WO2019141248A1 (zh) * | 2018-01-18 | 2019-07-25 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
CN110058784A (zh) * | 2018-01-18 | 2019-07-26 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
CN110058784B (zh) * | 2018-01-18 | 2020-08-04 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
US11372567B2 (en) | 2018-01-18 | 2022-06-28 | Hangzhou Hikvision System Technology Co., Ltd. | Method and apparatus for storing data |
CN112241238A (zh) * | 2019-07-18 | 2021-01-19 | 深圳市茁壮网络股份有限公司 | 一种数据异常处理方法、装置、存储介质和计算机设备 |
CN112241238B (zh) * | 2019-07-18 | 2023-12-05 | 深圳市茁壮网络股份有限公司 | 一种数据异常处理方法、装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103034457B (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034457B (zh) | 多个硬盘组成的存储系统数据存储方法 | |
CN103136074B (zh) | 多个磁盘阵列系统的数据储存方法及数据储存系统 | |
CN102024044B (zh) | 分布式文件系统 | |
CN102033786B (zh) | 一种对象存储系统中修复副本一致性的方法 | |
US20100306466A1 (en) | Method for improving disk availability and disk array controller | |
CA2546242A1 (en) | Semi-static distribution technique | |
CN103970487A (zh) | 一种独立磁盘冗余阵列及实现方法 | |
US20030041283A1 (en) | Storage disk failover and replacement system | |
US11144396B1 (en) | Raid reliability with a provisional spare disk | |
US8560884B2 (en) | Application recovery in a file system | |
CN106227471A (zh) | 固态硬盘和应用于固态硬盘的数据存取方法 | |
CN102004769A (zh) | 文件管理方法、设备及存储系统 | |
CN103823728A (zh) | 一种独立冗余磁盘阵列智能重建的方法 | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
CN103713973B (zh) | 一种基于hdd和ssd的混合存储备份方法及系统 | |
CN103034458A (zh) | 固态硬盘中实现独立磁盘冗余阵列的方法及装置 | |
CN102622185A (zh) | 在多个存储单元中存储文件的方法以及存储分配方法 | |
CN102177496A (zh) | 用于针对当前数据和回放数据在不同raid数据存储类型之间转移数据的系统和方法 | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN102117297A (zh) | 流媒体文件处理方法、装置和系统 | |
CN102591746B (zh) | 数据重构方法和存储设备 | |
CN107239233A (zh) | 一种磁盘阵列及基于其的数据重构方法和存储设备 | |
CN101364163B (zh) | 一种逻辑卷创建系统及其方法 | |
CN102750196A (zh) | 一种用于数据存储和备份系统及方法 | |
CN102200935A (zh) | 一种流媒体系统数据存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |