System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种存储系统及其写入方法,具体涉及一种存储系统及其快速写入、高可靠冗余写入、文件读取方法。
技术介绍
1、当前的存储行业中,通常采用备份冗余存储方法或循环冗余存储方法来实现冗余存储;其中,备份冗余实质是将数据存储两份,在丢失其中任意一份时,均可从另一份找回;循环冗余实质是将数据的校验值,循环放置在各个存储元上,在丢失其中任意两个以下存储元的情况下,均可通过计算方式从其余存储元中计算出丢失的存储元所存储的数据。
2、然而,现有存储方式存在以下缺点:
3、1、备份冗余存储方法所需的存储空间较大;
4、2、循环冗余存储方法在丢失两个或两个以上存储元时,无法恢复丢失的数据。
技术实现思路
1、本专利技术的目的是解决现有冗余存储方法所需的存储空间较大,或在丢失两个或两个以上存储元时,无法恢复丢失数据的技术问题,而提供一种存储系统及其快速写入、高可靠冗余写入、文件读取方法。
2、为实现上述目的,本专利技术所采用的技术方案为:
3、一种存储系统的快速写入方法,其特殊之处在于,包括以下步骤:
4、步骤1、客户端向文件服务端提出存储需求,并发出期望的冗余存储率;
5、所述冗余存储率为1/(n+1),n≥1;
6、步骤2、文件服务端根据当前各个存储元的状态,向客户端返回可用的存储元列表,存储元列表包括n+1个存储元,分别为存储元1、存储元2、…、储存元n和存储元n+1;
7、步骤3
8、步骤4、客户端依次向存储元1、存储元2、…、存储元n发送对应的一个分割文件;
9、步骤5、存储元1将接收到的分割文件1存储,并转发给存储元2;
10、存储元2将接收到的分割文件2存储,并将分割文件1和分割文件2按位异或运算,并将运算结果12转发给存储元3;
11、存储元3将接收到的分割文件3存储,并将分割文件3和运算结果12按位异或运算,并将运算结果123转发给存储元n;
12、依次类推,存储元n将接收到的分割文件n存储,并将分割文件和n个运算结果12…(n-1)按位异或运算,并将运算结果12…n转发给存储元n+1;
13、步骤6、存储元n+1将接收到的运算结果12…n存储,并向文件服务端报告文件传输及写入完成,文件服务端向客户端返回写入成功并刷新存储元列表。
14、同时,本专利技术还提供了一种存储系统的高可靠冗余写入方法,其特殊之处在于,包括以下步骤:
15、步骤1、客户端向文件服务端提出存储请求,并发出期望的冗余存储率;
16、所述冗余存储率为n/(2n+1),n≥2;
17、步骤2、文件服务端根据当前各个存储元的状态,向客户端返回可用的存储元列表,存储元列表包括2n+1个存储元,分别为存储元1、存储元1a、存储元2、存储元2a、…、储存元n、存储元na和存储元n+1;
18、步骤3、客户端根据可用的存储元列表和冗余存储率,将待存储文件分割为n份,分别为分割文件1、分割文件2、…、分割文件n;
19、步骤4、客户端依次向存储元1、存储元2、…、存储元n发送一个对应的分割文件;
20、步骤5、存储元1将收到的分割文件1存储,并转发给存储元1a及存储元2;存储元2将收到的分割文件2存储,转发给存储元2a,并将分割文件1和分割文件2按位异或运算,再将运算结果12转发给存储元3和存储元3a;存储元3将收到的分割文件3存储,并将分割文件3和运算结果12按位异或运算,再将运算结果123转发给存储元4和存储元4a;依次类推,存储元n将收到的分割文件n存储,转发给(n-1)a,并将分割文件n和运算结果123…(n-1)按位异或运算,将运算结果123…n转发给存储元n+1;
21、步骤6、存储元n+1将收到的运算结果123…n存储,再将运算结果123…n转发给存储元1a和2a,并向文件服务端报告文件传输及写入完成,文件服务端向客户端返回写入成功并刷新存储元列表;
22、步骤7、存储元1a将分割文件1和运算结果123…n按位异或运算,并将运算结果23…n存储;存储元2a将分割文件2和运算结果123…n按位异或运算,并将运算结果13…n存储;存储元3a将分割文件4和运算结果12按位异或运算,并将运算结果124存储;依次类推,存储元na,将运算结果123存储;
23、步骤8、当全部存储元在周期通讯中均向文件服务端报告各自存储的对象成功时,文件服务端向客户端反馈冗余备份成功,完成高可靠冗余写入。
24、本专利技术还提供了一种存储系统的文件读取方法,其特殊之处在于,包括以下步骤:
25、步骤1、客户端向文件服务端提出文件读取请求,并告知文件id;
26、步骤2、文件服务端根据文件id,将实际存储分割文件的存储元返回给客户端;
27、步骤3、客户端按照文件服务端返回的存储元列表和预存于文件服务端内的分割文件关系,向对应存储元读取分割文件;
28、步骤4、客户端收到分割文件后,重新组合出原始文件,并向文件服务端报告读取成功。
29、进一步地,步骤5、根据从文件服务端获取的运算结果确认分割文件是否正确,并向文件服务端报告校检成功或失败,完成读取文件的校检。
30、同时,本专利技术还提供了一种存储系统,用于实现前述的存储系统的快速写入方法、前述的存储系统的高可靠冗余写入方法以及前述的存储系统的文件读取方法,其特征在于:
31、包括多个存储元,以及文件服务单元和客户端;
32、所述存储元用于存储数据、定时向文件服务端上报自身状态;
33、所述文件服务单元用于根据多个存储元定时上报的自身状态,确定可用存储元数量、当前支持的最大冗余量、当前实际可读取的存储元列表、维护存储元,以及将未及时上报自身状态的存储元置为异常存储元,并将其剔除;
34、所述客户端用于根据自身的存储需求,向文件服务端申请对应的存储服务,并将待存储文件进行分割。
35、进一步地,所述文件服务单元包括主文件服务端和从文件服务端;
36、所述主文件服务端和从文件服务端通过串口连接。
37、与现有技术相比,本专利技术的有益效果是:
38、1、本专利技术提供的快速写入方法,相比于现有备份冗余存储方式,所占用的存储空间较小,同时,可在丢失任一存储元时,可以从其余存储元中找回,具有兼备存储所需存储空间小和一定可靠性的优点。
39、2、本专利技术提供的高可靠冗余写入方法,可以在丢失四个及以下存储元时,通过计算的方式,从其余存储元中获取丢失存储元中的数据,从而提升了存储的可靠性。
40、3、本专利技术通过设置两个文件服务端,可以增强存储系统的鲁棒性。<本文档来自技高网...
【技术保护点】
1.一种存储系统的快速写入方法,其特征在于,包括以下步骤:
2.一种存储系统的高可靠冗余写入方法,其特征在于,包括以下步骤:
3.一种存储系统的文件读取方法,其特征在于,包括以下步骤:
4.根据权利要求3所述的存储系统的文件读取方法,其特征在于,还包括以下步骤:
5.一种存储系统,用于实现权利要求1所述的存储系统的快速写入方法、权利要求2所述的存储系统的高可靠冗余写入方法以及权利要求3或4所述的存储系统的文件读取方法,其特征在于:
6.根据权利要求5所述的存储系统,其特征在于:
【技术特征摘要】
1.一种存储系统的快速写入方法,其特征在于,包括以下步骤:
2.一种存储系统的高可靠冗余写入方法,其特征在于,包括以下步骤:
3.一种存储系统的文件读取方法,其特征在于,包括以下步骤:
4.根据权利要求3所述的存储系统的文件读取方法,其...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。