一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种存储系统及其建立方法与流程

2021-11-20 00:54:00 来源:中国专利 TAG:


1.本技术涉及计算机应用技术领域,更具体地说,涉及一种存储系统及其建立方法。


背景技术:

2.随着大数据时代的到来,数据存储和读取成为大数据应用和分析的基础。
3.目前实现高容量的存储系统的方式大多是组成利用多台服务器建立分布式存储服务器来实现这一目的。但是开发分布式存储服务器的成本和时间周期很多,一般需要耗时40个人月(即一个开发人员需要耗时40个月,两个开发人员需要耗时20个月
……
)。
4.并且在分布式存储服务器的应用过程中,系统中的服务器总会由于断电、重启或网络不通的情况,当程序出现漏洞时死机或重启情况下,如何保证系统中存储数据的访问的高可用性,不至于出现“访问风暴”将某台服务器访问能力溢出而发生异常回应也是本领域技术人员所关注的焦点之一。


技术实现要素:

5.为解决上述技术问题,本技术提供了一种存储系统及其建立方法,以实现保证存储系统的高存储容量和数据访问的高可用性的目的。
6.为实现上述技术目的,本技术实施例提供了如下技术方案:
7.一种存储系统,包括:
8.多个服务器,每个所述服务器包括多个存储单元;
9.所有所述服务器的所有存储单元根据预设规则和数据备份规则划分为多组存储组合;每个所述存储组合包括m个存储模块、1个校验模块和n个备用存储单元;其中,m为大于或等于2的正整数,n为大于或等于0的整数;所述存储模块为用于存储数据的存储单元,所述校验模块为用于存储校验数据的存储单元;
10.所述预设规则包括:
11.规则1:所述存储模块中的存储单元分布于所有的服务器上;
12.规则2:同一个存储模块中的存储单元优先从剩余磁盘最多的服务器中选择;
13.所述数据备份规则包括x备份,x为大于或等于1的正整数。
14.可选的,所述存储单元包括单个固态硬盘或由多个固态硬盘构成的磁盘组。
15.可选的,当满足规则1和规则2的分组方案为多个时,所述预设规则还包括:
16.规则3:当多个服务器中的一半服务器损坏时,数据访问命中率在所有分组方案中最高。
17.可选的,所述校验模块用于存储校验数据,所述校验数据用于校验预设数据;
18.所述预设数据包括:存储于所述校验模块所在服务器之外的其他服务器中的数据。
19.可选的,还包括:访问请求定位模块;
20.所述访问请求定位模块,用于获取访问请求,根据所述访问请求确定待访问存储
组合,并访问所述待访问存储组合中的与所述访问请求对应的目标数据;和用于在当所述待访问存储组合中的任一服务器不包括所述目标数据时,将所述目标数据同步到所述存储系统中。
21.可选的,所述访问请求定位模块,根据所述访问请求确定待访问存储组合具体用于,对所述访问请求包含的统一资源定位符进行哈希计算,以得到哈希数值,将所述哈希数值对所述存储组合的数量进行求模运算以得到所述待访问存储组合的标识。
22.一种存储系统的建立方法,包括:
23.提供多个服务器,每个所述服务器包括多个存储单元;
24.根据预设规则和数据备份规则对所有所述服务器的所有存储单元进行分组,以获得多组存储组合;每个所述存储组合包括m个存储模块、1个校验模块和n个备用存储单元;其中,m为大于或等于2的正整数,n为大于或等于0的整数;所述存储模块为用于存储数据的存储单元,所述校验模块为用于存储校验数据的存储单元;
25.所述预设规则包括:
26.规则1:所述存储模块中的存储单元分布于所有的服务器上;
27.规则2:同一个存储模块中的存储单元优先从剩余磁盘最多的服务器中选择;
28.所述数据备份规则包括x备份,x为大于或等于1的正整数。
29.可选的,所述存储单元包括单个固态硬盘或由多个固态硬盘构成的磁盘组。
30.可选的,当满足规则1和规则2的分组方案为多个时,所述预设规则还包括:
31.规则3:当多个服务器中的一半服务器损坏时,数据访问命中率在所有分组方案中最高。
32.可选的,还包括:
33.在所述校验模块中存储校验数据,所述校验数据用于校验预设数据;
34.所述预设数据包括:存储于所述校验模块所在服务器之外的其他服务器中的数据。
35.从上述技术方案可以看出,本技术实施例提供了一种存储系统及其建立方法,其中,所述存储系统由多个服务器构成,每个服务器均包括多个存储单元,所有所述服务器的所有存储单元根据预设规则和数据备份规则划分为多组存储组合,所述预设规则包括:规则1:所述存储模块中的存储单元分布于所有的服务器上;规则2:同一个存储模块中的存储单元优先从剩余磁盘最多的服务器中选择。这样每组存储组合中的存储模块中的存储单元尽量平均地分布在所有的服务器中,且每组存储组合中的存储模块均至少包括一个备份,大大降低了某一个或多个服务器损坏或无法使用时对于存储系统的可访问性的影响,保证了访问系统的高可用性。
36.另外,所述存储系统在每个服务器中设置了多个存储单元,有利于保证存储系统的高存储容量。
附图说明
37.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
38.图1为本技术的一个实施例提供的一种存储系统的结构示意图;
39.图2为本技术的一个实施例提供的一种raid5的架构示意图;
40.图3为本技术的另一个实施例提供的一种存储系统的结构示意图;
41.图4为本技术的一个实施例提供的一种存储系统的建立方法的流程示意图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.本技术实施例提供了一种存储系统,如图1所示,包括:
44.多个服务器20,每个所述服务器20包括多个存储单元10;
45.所有所述服务器20的所有存储单元10根据预设规则和数据备份规则划分为多组存储组合;每个所述存储组合包括m个存储模块、1个校验模块和n个备用存储单元10;其中,m为大于或等于2的正整数,n为大于或等于0的整数;所述存储模块为用于存储数据的存储单元10,所述校验模块为用于存储校验数据的存储单元10;
46.所述预设规则包括:
47.规则1:所述存储模块中的存储单元10分布于所有的服务器20上;
48.规则2:同一个存储模块中的存储单元10优先从剩余磁盘最多的服务器20中选择;
49.所述数据备份规则包括x备份,x为大于或等于1的正整数。
50.在本实施例中,如图2所示,每个所述存储组合中的存储模块和校验模块可以构成一个raid5(分布式奇偶校验的独立磁盘结构)阵列,例如当一个存储组合包括3个存储单元10时,其中两个存储单元10用作存储模块,剩余的一个存储单元10用作校验模块,此时存储组合中的备用存储单元10的数量为0。还例如当一个存储组合包括8个存储单元10时,可以将其中六个存储单元10用作存储模块,一个存储单元10用作校验模块,最后一个存储单元10用作备用存储单元10,所述备用存储单元10可以在当某一个存储单元10损坏或失效时,根据校验模块中存储的校验数据和存储组合中的其他存储单元10存储的数据进行数据恢复,实现损坏的存储单元10的替换,从而保持存储组合的高可靠性。同时raid5也可以提升数据的读写性能。附图2中,disk 0、disk 1、disk 2和disk 3分别表示不同的存储单元10,a1、b1、c1表示存储单元10disk 0中的存储数据,a2、b2、d1表示存储单元10disk 1中的存储数据,a3、c2、d2表示disk 2中的存储数据,b3、c3和d3表示disk 3中的存储数据,dp表示disk 0中的校验数据,cp表示disk 1中的校验数据,bp表示disk 2中的校验数据,ap表示disk 3中的校验数据。
51.仍然参考图2,在每个存储组合中,所述校验模块用于存储校验数据,所述校验数据用于校验预设数据;
52.所述预设数据包括:存储于所述校验模块所在服务器20之外的其他服务器20中的数据。
53.所述校验数据可以包括奇偶校验信息,当存储组合中某一个存储单元10损坏后,
可用备用存储单元10进行替换,当损坏的存储单元10被替换后,则可以利用同一个存储组合中其他存储单元10中剩下的奇偶校验信息去重建被替换的存储单元10上的数据,来保持存储组合的高可靠性。
54.一般情况下,每个服务器20中可以挂载的存储单元10的数量是有限地,以单个固态硬盘为例,每个所述服务器20可以挂载24块固态硬盘。
55.可选的,为了提高读写速度效率,所述存储单元10可包括单个固态硬盘或包括由多个固态硬盘构成的磁盘组。固态硬盘目前的读取速度可达500mb/s,可在启动、加载和传输速度上大幅提升系统的响应速度;写入速度可达450mb/s,可从源站下载媒资时并写入到存储系统时不成为性能瓶颈,将与网络下载速度与写入速度达到更好的匹配。
56.假设一块固态硬盘的存储容量为960gb,假设单个服务器20的盘卡上插了24块固态硬盘,当不采用raid5的方式对其进行分组时,则每块固态硬盘的空间就是其内存容量,即960gb,当采用raid5阵列,且m=6时,则可利用的硬盘空间是:6
×
960gb=5760gb,即存储组合的容量为5759gb大小。
57.另外,在分组获得多个所述存储组合时,可以从1开始作为id对所述存储组合进行标记。例如当存储组合的数量为6个时,这6个存储组合的id可以分别为1、2、3、4、5、6。
58.在上述实施例的基础上,在本技术的一个实施例中,当满足规则1和规则2的分组方案为多个时,所述预设规则还包括:
59.规则3:当多个服务器20中的一半服务器20损坏时,数据访问命中率在所有分组方案中最高。
60.所述数据访问命中率是指可命中的存储组合占总的存储组合的数目的比例,除不尽时一般保留一位小数。
61.当总服务器20的数量为偶数时,则最大坏掉的服务器20数目不超过总服务器20数量的一半,即50%;当总服务器20的数量为奇数时,则最大坏掉的服务器20数目不超过总服务器20的一半加1。
62.即最大服务器20坏率计算公式为:
63.总服务器20数/2 ((总服务器20数%2)==0?0:1);
64.其中,%表示求余运算;(总服务器20数%2)==0?0:1表示总服务器20数对2求余后的结果是否等于0,如果是则((总服务器20数%2)==0?0:1)取值为0,如果否则((总服务器20数%2)==0?0:1)取值为1。
65.下面对具体的分组规则进行距离说明:
66.假设有3个服务器20,每个服务器20有4块固态硬盘,且采用的备份规则为3备份,即每组存储组合中的存储模块存储的数据均具有3个备份,以4块固态硬盘为一组,那么总共有3个服务器20、12个固态硬盘、分组数目为4个、备用存储单元10为0个。
67.那么在分组时可能的分组情况可能如下:
68.服务器20名称
---------------------
磁盘分组
--------------------
69.[cdnvss1]
ꢀꢀꢀꢀ
[1][1][2][2]
[0070]
[cdnvss2]
ꢀꢀꢀꢀ
[1][2][3][3]
[0071]
[cdnvss3]
ꢀꢀꢀꢀ
[1][2][3][3]
[0072]
其中,cdnvss1、cdnvss2、cdnvss3分别表示3个服务器20的名称,磁盘分组中[x]表
示该服务器20的该固态硬盘被分在id为x的存储组合中,此处x表示分组号,值从1开始,例如[1]表示该固态硬盘被分在id为1的存储组合中。
[0073]
在该分组方案中,当一个服务器20坏掉时,访问数据命中率为100.0%,当两个服务器20坏掉时,访问数据命中率(简称命中率)则为66.7%。
[0074]
在该分组方案中,任意一块盘在另外一台服务器20都有备份,但是分组[3]号在[cdnvss1]服务器20没有任何备份,即不满足规则2。所以需要同时满足分配时优先从剩余盘多的服务器20中选取。如果分组[2]号最后一个时,优先选择[cdnvss1]或[cdnvss2]时,那么分配将无问题。
[0075]
根据调整,最终的动态分配结果如下:
[0076]
服务器20名称
---------------------
磁盘分组
--------------------
[0077]
[cdnvss1]
ꢀꢀꢀꢀ
[1][1][2][3]
[0078]
[cdnvss2]
ꢀꢀꢀꢀ
[1][2][2][3]
[0079]
[cdnvss3]
ꢀꢀꢀꢀ
[1][2][3][3]
[0080]
此时,坏掉1台服务器20时,命中率:100.0%
[0081]
坏掉2台服务器20时,命中率仍为:100.0%
[0082]
此时最好的体现是坏掉50%的服务器20数即2个时,其命中率仍为100%.
[0083]
还例如,假设有4个服务器20,每个服务器20有3块固态硬盘,且采用的备份规则为1备份,即每组存储组合中的存储模块存储的数据均具有1个备份,以2块固态硬盘为一组,那么总共有3个服务器20、12个固态硬盘、分组数目为4个、备用存储单元10为0个。
[0084]
此时可行的分组方案包括:
[0085]
方案(1):
[0086]
服务器20名称
---------------------
磁盘分组
--------------------
[0087]
[cdnvss1]
ꢀꢀꢀꢀ
[1][4][5]
[0088]
[cdnvss2]
ꢀꢀꢀꢀ
[1][2][5]
[0089]
[cdnvss3]
ꢀꢀꢀꢀ
[2][3][6]
[0090]
[cdnvss4]
ꢀꢀꢀꢀ
[3][4][6]
[0091]
在该方案中,坏掉一个服务器20时,命中率为100.0%;
[0092]
坏掉两个服务器20时,命中率为66.7%。
[0093]
方案(1)同时满足规则1和规则2,但同时还有其他的分组方案,此时需要考虑规则3。
[0094]
方案(2):
[0095]
服务器20名称
---------------------
磁盘分组
--------------------
[0096]
[cdnvss1]
ꢀꢀꢀꢀ
[1][2][3]
[0097]
[cdnvss2]
ꢀꢀꢀꢀ
[1][4][5]
[0098]
[cdnvss3]
ꢀꢀꢀꢀ
[2][4][6]
[0099]
[cdnvss4]
ꢀꢀꢀꢀ
[3][5][6]
[0100]
在该方案中,坏掉一个服务器20时,命中率为100.0%;
[0101]
坏掉两个服务器20时,命中率为100%。
[0102]
则根据规则3,方案(2)更好,则可作为最终的分组方案。
[0103]
在上述实施例的基础上,在本技术的另一个实施例中,如图3所示,所述存储系统还包括:
[0104]
访问请求定位模块30;
[0105]
所述访问请求定位模块30,用于获取访问请求,根据所述访问请求确定待访问存储组合,并访问所述待访问存储组合中的与所述访问请求对应的目标数据;和用于在当所述待访问存储组合中的任一服务器20不包括所述目标数据时,将所述目标数据同步到所述存储系统中。
[0106]
具体地,所述访问请求定位模块30,根据所述访问请求确定待访问存储组合具体用于,对所述访问请求包含的统一资源定位符进行哈希计算,以得到哈希数值,将所述哈希数值对所述存储组合的数量进行求模运算以得到所述待访问存储组合的标识。
[0107]
在本实施例中,对具体地访问请求定位进行了限定,具体地,仍然以raid5阵列为例,将24块固态硬盘分为3组,每组存储组合中有8块固态硬盘,采用6 1的raid5阵列,将剩余的3块固态硬盘作为备份存储单元使用。当缓存数据时以三组存储组合划分成相同的存储空间大小、对选取的6 1块固态硬盘做raid5阵列。按照每块固态硬盘960gb容量,则一组存储组合的容量空间时6
×
960gb=4.8tb,则三组存储组合可提供3
×
4.8t=14.4tb的总容量空间。对于已经做过阵列的一组固态硬盘,将直接以一块固态硬盘命名,不再复述。
[0108]
当将四个服务器构建为一个存储系统(集群)时,以raid5(6 1)阵列组合成一个容量巨大的磁盘组时,那么按照当单个服务器提供3组磁盘组,则4个服务器则提供12组,以双备份来计算则可以分成6组,每两组都提供相同的存储数据,从而实现更好的访问均衡性、高可用性。
[0109]
每台服务器上vss服务程序与cdnvss下沉服务程序部署在同一台服务器上,为了减少内部流量的交互,不允许从服务器a的cdnvss下沉服务程序输出流量而从服务器b或c的vss程序输出流量给客户端。最终vss程序与cdnvss下沉服务两者在同一台服务器上的内部网卡上交互数据并输出,即编号vss-x和cdnvss-x下沉服务程序,x编号相同的值部署在同一台服务器上。
[0110]
当客户端的vss发起请求时、cdn集群的某台服务器收到请求url时,首先对url进行哈希计算得到其哈希数值,然后根据求模运算得到余数值。以4个服务器,每个服务器带有3块固态硬盘,双备份时的分组数目是3
×
4/2=6组,即group_id值范围[1

6]。
[0111]
计算公式:
[0112]
hash(url)%n=group_id(其中n值等于最大的存储组合的id值,即6)
[0113]
当请求程序到a服务器上的vss-1上程序时,当通过查看数据库发现此目标数据不存在,则此时需要通过cdnvss-1下沉服务程序将目标数据同步到所述存储系统中。
[0114]
在本实施例中,只需要知道当目标数据不在此集群时则需要回源,将源站的目标数据同步到所述存储系统中即可。
[0115]
发起请求到vss-1程序,当媒资不存在根据一一对应关系也将请求发到cdnvss-1下沉服务程序,此时计算其url的哈希值,得到hash(url)=9275293、并根据计算公式得到分组定位:9275293mod 6=1.vss-1程序通过哈希计算并求模定位到a服务器(cdnvss-1下沉服务程序),此时根据分组信息可得待访问存储组合的标识group_id=1的落在此服务器可以接收请求服务,此时根据磁盘的根路径 访问路径读取相应的目标数据并输出。
[0116]
当请求程序到d服务器上的vss-4上程序时,当通过查看数据库发现此媒资不存在。请求发到当前服务器上的cdnvss-4下沉服务程序时,根据计算公司得到hash(url)=9275293,并根据计算公式得到分组定位:9275293mod6=1.即需要查找group_id=1的存储组合。根据上面的分组信息无法获取到对应存储组合id值,通过查询得到group_id=1的存储组合在服务器a和b都存在,此时选用最简单的轮询策略或随机策略,此时选择服务器b,将通过302将信息通知给vss-2服务程序。d服务器上的vss-4服务程序将请求打到b服务器上的vss-2服务程序。再根据同样的计算公式定位到具体的磁盘的根路径 访问路径读取相应的目标数据并输出。
[0117]
下面对本技术实施例提供的存储系统的建立方法进行描述,下文描述的存储系统的建立方法可与上文描述的存储系统相互对应参照。
[0118]
相应的,本技术实施例提供了一种存储系统的建立方法,参考图4,所述存储系统的建立方法包括:
[0119]
s101:提供多个服务器,每个所述服务器包括多个存储单元;
[0120]
s102:根据预设规则和数据备份规则对所有所述服务器的所有存储单元进行分组,以获得多组存储组合;每个所述存储组合包括m个存储模块、1个校验模块和n个备用存储单元;其中,m为大于或等于2的正整数,n为大于或等于0的整数;所述存储模块为用于存储数据的存储单元,所述校验模块为用于存储校验数据的存储单元;
[0121]
所述预设规则包括:
[0122]
规则1:所述存储模块中的存储单元分布于所有的服务器上;
[0123]
规则2:同一个存储模块中的存储单元优先从剩余磁盘最多的服务器中选择;
[0124]
所述数据备份规则包括x备份,x为大于或等于1的正整数。
[0125]
可选的,所述存储单元包括单个固态硬盘或由多个固态硬盘构成的磁盘组。
[0126]
可选的,当满足规则1和规则2的分组方案为多个时,所述预设规则还包括:
[0127]
规则3:当多个服务器中的一半服务器损坏时,数据访问命中率在所有分组方案中最高。
[0128]
可选的,还包括:
[0129]
在所述校验模块中存储校验数据,所述校验数据用于校验预设数据;
[0130]
所述预设数据包括:存储于所述校验模块所在服务器之外的其他服务器中的数据。
[0131]
综上所述,本技术实施例提供了一种存储系统及其建立方法,其中,所述存储系统由多个服务器构成,每个服务器均包括多个存储单元,所有所述服务器的所有存储单元根据预设规则和数据备份规则划分为多组存储组合,所述预设规则包括:规则1:所述存储模块中的存储单元分布于所有的服务器上;规则2:同一个存储模块中的存储单元优先从剩余磁盘最多的服务器中选择。这样每组存储组合中的存储模块中的存储单元尽量平均地分布在所有的服务器中,且每组存储组合中的存储模块均至少包括一个备份,大大降低了某一个或多个服务器损坏或无法使用时对于存储系统的可访问性的影响,保证了访问系统的高可用性。
[0132]
另外,所述存储系统在每个服务器中设置了多个存储单元,有利于保证存储系统的高存储容量。
[0133]
本说明书中各实施例中记载的特征可以相互替换或者组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0134]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献