CN116501537A - 磁盘阵列切换方法、系统、电子设备及存储介质 - Google Patents
磁盘阵列切换方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116501537A CN116501537A CN202310755366.9A CN202310755366A CN116501537A CN 116501537 A CN116501537 A CN 116501537A CN 202310755366 A CN202310755366 A CN 202310755366A CN 116501537 A CN116501537 A CN 116501537A
- Authority
- CN
- China
- Prior art keywords
- disk array
- mode
- check code
- target
- raid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 118
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 230000006872 improvement Effects 0.000 claims abstract description 10
- 238000005192 partition Methods 0.000 claims description 245
- 238000006731 degradation reaction Methods 0.000 claims description 35
- 230000015556 catabolic process Effects 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 31
- 238000003491 array Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000000593 degrading effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种磁盘阵列切换方法、系统、电子设备及存储介质,涉及磁盘阵列技术领域,该方法包括:确定目标磁盘阵列的初始RAID模式;根据目标磁盘阵列的初始RAID模式,以及,目标磁盘阵列的校验码或磁盘数据块,将目标磁盘阵列的RAID模式切换为目标RAID模式;其中,第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,第二磁盘阵列模式为RAID6,第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,第四磁盘阵列模式是基于校验码落盘方式改进后的TP‑RAID构建得到的。本发明优化了RAID模式切换过程。
Description
技术领域
本发明涉及磁盘阵列技术领域,尤其涉及一种磁盘阵列切换方法、系统、电子设备及存储介质。
背景技术
具有冗余能力的磁盘阵列(Redundant Arrays of Independent Disks,简称RAID)作为高性能和高可靠的存储技术,目前已经在人们的生产和生活中得到了极其广泛的应用。
按照不同的策略和架构,RAID可以被分为不同的等级,如RAID0,RAID1,RAID 5,RAID 6和RAID 10等。在实际应用中,用户根据不同的数据应用需求,对当前已构建好的RAID的模式进行切换,例如,将RAID5升级为RAID6,或者,将RAID6降级为RAID5。
然而,现有在对RAID进行模式切换时,无论是升级过程还是降级过程,都需要读取全部的数据块,再重新执行数据排布、编码以及落盘等操作,导致运算量较大,影响RAID升降级性能。因此,现在亟需一种磁盘阵列切换方法、系统、电子设备及存储介质来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种磁盘阵列切换方法、系统、电子设备及存储介质。
本发明提供一种磁盘阵列切换方法,包括:
确定目标磁盘阵列的初始RAID模式;
根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;
其中,所述初始RAID模式和所述目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;
所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
根据本发明提供一种的磁盘阵列切换方法,所述第一磁盘阵列模式通过以下步骤构建得到:
在确定采用RAID5模式的磁盘阵列中至少已接入一个第一新增磁盘时,将初始RAID5条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述初始RAID5条带对应的第一数据块分区和第二数据块分区,其中,所述初始RAID5条带为所述RAID5模式中磁盘阵列的条带;
通过所述第一数据块分区中的数据块,编码得到第一条带的第一分区校验码,其中,所述第一条带为所述第一磁盘阵列模式的磁盘阵列的条带;
通过所述第二数据块分区中的数据块,编码得到所述第一条带的第二分区校验码;
基于负载均衡算法,将所述第一分区校验码和所述第二分区校验码排布至所述RAID5模式的磁盘阵列中各个磁盘以及所述第一新增磁盘中,得到所述第一磁盘阵列模式。
根据本发明提供的一种磁盘阵列切换方法,所述第一分区校验码和所述第二分区校验码是通过以下编码公式得到:
;
其中,为所述第一数据块分区,/>为所述第二数据块分区,/>为所述第一条带中的/>个数据块,/>为所述第一分区校验码,/>为所述第二分区校验码。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
基于RAID6编码方式,根据所述第一条带的数据块,对所述第一条带对应的所述第一分区校验码和所述第二分区校验码进行重新编码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,所述第三磁盘阵列模式通过以下步骤构建得到:
在确定采用所述第二磁盘阵列模式的磁盘阵列中至少已接入一个第二新增磁盘时,将第二条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第二条带对应的第三数据块分区和第四数据块分区,其中,所述第二条带为所述第二磁盘阵列模式的磁盘阵列的条带;
通过所述第三数据块分区中的数据块,编码得到第三条带的第三分区校验码,其中,所述第三条带为所述第三磁盘阵列模式的磁盘阵列的条带;
通过所述第四数据块分区中的数据块,编码得到所述第三条带的第四分区校验码;
通过所述第三分区校验码,对所述第二磁盘阵列模式的磁盘阵列的条带中对应的第一校验码进行更新,并将所述第四分区校验码落盘至所述第二新增磁盘中对应的条带,得到所述第三磁盘阵列模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第三磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第一磁盘阵列模式的磁盘阵列中至少已接入一个第三新增磁盘时,通过所述第一数据块分区中的数据块,编码得到所述第三分区校验码;
通过所述第二数据块分区中的数据块,编码得到所述第四分区校验码;
基于RAID6的编码方式,通过所述第一条带中的数据块,编码得到所述第三条带的第二校验码;
通过所述第三分区校验码,对所述第一分区校验码进行更新,将所述第四分区校验码落盘至所述第三新增磁盘中;通过所述第三条带的第二校验码,对所述第二分区校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,所述第四磁盘阵列模式通过以下步骤构建得到:
确定所述第四磁盘阵列模式中的第一目标磁盘,其中,所述第一目标磁盘为所述第四磁盘阵列模式中磁盘顺序排序最后的磁盘;
确定第四条带的校验码落盘位置,其中,所述第四条带为所述第四磁盘阵列模式的磁盘阵列的条带,所述第四条带的第一校验码和第二校验码的待落盘位置为各个第二目标磁盘,各个所述第二目标磁盘为所述第四磁盘阵列模式的磁盘阵列中除所述第一目标磁盘以外的其它磁盘;所述第四条带的第三校验码的待落盘位置为所述第一目标磁盘;
基于TP-RAID编码方式,通过所述第四条带的数据块进行校验码编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
基于负载均衡算法,将所述第四条带的第一校验码和第二校验码,排布在各个所述第二目标磁盘中;
将所述第四条带的第三校验码落盘至所述第一目标磁盘,构建得到所述第四磁盘阵列模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过所述第三条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
通过所述第四条带的第一校验码、第二校验码和第三校验码,对所述第三条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第二磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第二磁盘阵列模式的磁盘阵列中至少已接入一个第四新增磁盘时,基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过第二条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码,其中,所述第二条带为所述第二磁盘阵列模式中对应的条带;
通过所述第四条带的第一校验码和第二校验码,对所述第二条带中对应的第一校验码和第二校验码进行更新,并将所述第四条带的第三校验码落盘至所述第四新增磁盘,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第一磁盘阵列模式的磁盘阵列中至少已接入一个第五新增磁盘时,基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过所述第一条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
通过所述第四条带的第一校验码和第二校验码,对所述第一分区校验码和所述第二分区校验码进行更新,并将所述第四条带的第三校验码落盘至所述第五新增磁盘,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第二磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
根据所述第三数据块分区中的数据块,编码得到所述第一条带的第一分区校验码;
根据所述第二条带的第一校验码和第二校验码,以及所述第一条带的第一分区校验码进行异或运算,得到所述第一条带的第二分区校验码;
通过所述第一条带的第一分区校验码和第二分区校验码,对所述第二条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第三磁盘阵列模式的磁盘阵列中已移除所述第二新增磁盘时,根据所述第三条带的第三分区校验码和第四分区校验码进行异或运算,得到所述第二条带的第一校验码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第三磁盘阵列模式的磁盘阵列中已移除所述第二新增磁盘时,根据所述第三分区校验码对应的数据块,编码得到所述第一条带的第一分区校验码;
根据所述第三分区校验码和对应的所述第四分区校验码进行异或运算,得到所述第三条带的第一校验码;
根据所述第三条带的第一校验码和第二校验码,以及所述第一条带的第一分区校验码进行异或运算,得到所述第一条带的第二分区校验码;
通过所述第一条带的第一分区校验码和第二校验码,对所述第三条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第三磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
将所述第四条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第四条带对应的第五数据块分区和第六数据块分区;
通过所述第五数据块分区中的数据块,编码得到所述第三分区校验码;
通过所述第六数据块分区中的数据块,编码得到所述第四分区校验码;
基于RAID6编码方式,根据所述第四条带的数据块,编码得到所述第三条带的第二校验码;
通过所述第三条带的第二校验码,对所述第四条带中对应的第二校验码进行更新;通过所述第三分区校验码,对所述第四条带中对应的第一校验码进行更新;通过所述第四分区校验码,对所述第四条带中对应的第三校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第四磁盘阵列模式的磁盘阵列中已移除所述第一目标磁盘时,根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
根据本发明提供的一种磁盘阵列切换方法,所述根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,包括:
基于校验码降级转换公式,根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,所述校验码降级转换公式为:
;
其中,表示所述第四条带中第一校验码的落盘位置信息,/>表示所述第四条带中第二校验码的落盘位置信息,/>表示所述第四条带中第三校验码的落盘位置信息,/>表示所述第四条带中的第一校验码,/>表示所述第四条带中的第二校验码,/>表示所述第四条带中的第三校验码,/>表示所述第二条带中的第一校验码,/>表示所述第二条带中的第二校验码。
根据本发明提供的一种磁盘阵列切换方法,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第四磁盘阵列模式的磁盘阵列中已移除所述第一目标磁盘时,将所述第四条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第四条带对应的第五数据块分区和第六数据块分区;
通过所述第五数据块分区中的数据块,编码得到所述第一分区校验码;
通过所述第六数据块分区中的数据块,编码得到所述第二分区校验码;
通过所述第一分区校验码,对所述第四条带中对应的第一校验码进行更新;通过所述第二分区校验码,对所述第四条带中对应的第二校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
本发明还提供一种磁盘阵列切换系统,包括:
模式确认模块,用于确定目标磁盘阵列的初始RAID模式;
模式切换模块,用于根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;
其中,所述初始RAID模式和目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;
所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述磁盘阵列切换方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述磁盘阵列切换方法。
本发明提供的磁盘阵列切换方法、系统、电子设备及存储介质,通过对现有的RAID5、RAID6和TP-RAID的校验码计算方式以及落盘方式进行改进,同时对改进后的RAID5、RAID6和TP-RAID之间的升降级方式进行优化,使得升降级过程中的数据读取量和计算量减少,提高了RAID的模式切换效率,优化了RAID模式切换过程。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的磁盘阵列切换方法的流程示意图;
图2为本发明提供的磁盘阵列切换系统的结构示意图;
图3为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
面对庞大的数据存储规模,存储系统中数据的可靠性和存储系统中包含的组件数量成反比关系,即存储系统的组件数量越多,那么存储系统中数据的可靠性就越低。RAID存储技术通过将多个独立磁盘组合一起,从而得到一个容量巨大的磁盘组,可大幅提高存储容量以及系统输入输出的请求处理能力,并且通过数据的分布式存储技术,并行访问手段和信息冗余技术,提高了数据的可靠性。
通过数据条带技术、数据校验技术和镜像技术,使得RAID具有较强的性能、更高的可靠性、较好的容错能力和较强的扩展性。根据不同的数据应用需求,基于上述三种技术的策略和架构,RAID可以被分为不同的等级。
其中,RAID0作为最早出现的RAID模式,为磁盘阵列中最简单的一种形式,将N块同样的硬盘用硬件的形式,通过智能磁盘控制器或操作系统中的磁盘驱动程序以软件的方式串联在一起,从而创建一个大的卷集,使得数据依次写入到各块硬盘中,可以整倍的提高硬盘的容量。例如,使用三块80GB的硬盘组建成RAID0模式,那么磁盘容量就会是240GB。RAID0虽然没有提供冗余或错误修复能力,但实现成本低,可提高整个磁盘的性能和吞吐量。
RAID1称为磁盘镜像,将一个磁盘的数据镜像到另一个磁盘上,即数据在写入一块磁盘的同时,也会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,当系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时,系统都可以正常运行,具备很好的磁盘冗余能力。因此,RAID1多用于存储关键性的重要数据的场合。
RAID5(分布式奇偶校验的独立磁盘结构),该RAID模式下的奇偶校验码存在于所有磁盘上,例如,代表第0条带区的奇偶校验值。RAID5具有较高的读出效率,但写入效率一般,这是因为奇偶校验码排布在不同的磁盘上,所以提高了可靠性,但是,RAID5对数据传输的并行性处理较差,而且控制器的设计也相当困难。在RAID5中存在有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中,两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID6是一种具有两种分布存储的奇偶校验码独立磁盘结构,作为RAID5的扩展,主要是用于要求数据绝对不能出错的场合。由于RAID6中引入了第二种奇偶校验值,所以需要N+2个磁盘,同时,对控制器的设计变得十分复杂,进一步提升了磁盘阵列的数据可靠性。需要更多的空间来存储校验值,同时在写操作中具有更高的性能损失。
随着技术的发展,磁盘的寿命增长,组建的服务器存储的数据量更大,现有RAID技术已经逐渐无法满足当前的存储需求,因此提出了一种新的RAID模式,即三重奇偶校验RAID(Triple Parity RAID,简称TP-RAID),相比于RAID5和RAID6,TP-RAID顾名思义就是能够同时支持三个磁盘错误的RAID算法。
现有RAID运算基于负载均衡的算法排布需求,针对不同的RAID模式,对所有涉及的数据进行排布,然后进行编码。本发明以左旋不对齐的负载均衡方式进行说明,其中,表1为现有基于左旋不对齐方式的RAID5落盘表,其中,在落盘表(包括RAID5、RAID6以及TP-RAID等)中,每一行包括有每个条带对应的数据块和校验块,每一列包括有各个磁盘对应的数据库和检验块。
表1
表2为现有基于左旋不对齐方式的RAID6落盘表,如表2所示:
表2
以RAID6与RAID5之间的升降级为例,当RAID发生升降级时,会基于负载均衡的算法的排布需求,满足左旋不对齐的排布方式,对所有涉及的数据进行排布,重新进行编码。具体地,可参考表2所示,每一个条带中包括个数据块、第一校验块/>和第二校验块/>,从而形成/>种排布方式。当需要将RAID6降级为RAID5时,假设固定移除表2最右边一列的磁盘(即RAID中磁盘顺序排序最后的磁盘),表3为现有基于左旋不对齐方式的RAID6降级为RAID5的落盘表,可参考表3:
表3
在表3中,RAID6降级为RAID5满足相同负载均衡左旋不对齐的落盘方式,即同一个系统架构下,为了减少编解码参数的出错几率,以及防止数据盘数据出错,要求负载均衡算法保持不变。当默认空出的磁盘为最右侧磁盘时,为了满足左旋不对齐的负载均衡,顺序迁移时,从而达成迁移。在表2中,实现RAID6编码的校验块为和/>,在/>个数据盘和2个校验盘的前提下,RAID6的左旋不对齐排布方式一共有/>种条带场景(即校验码落盘位置不一样的场景)。可参考表3所示,降级为RAID5中对应的校验块标注为/>,左旋不对齐一共有种条带场景。因此,当按照表3的落盘方式直接映射的移动会导致表2最后一个条带无法映射。当从RAID5升级为RAID6时,从表2到表1,简单的数据块移动已经无法实现,需要将数据全部取出、重新排布和编码计算之后,再进行落盘。综上所述,为了保证RAID升降级的结果依然满足左旋不对齐,通过简单的移动数据块的方式很难实现,需要读取全部的数据块,并重新排布和编码再落盘操作,其中的数据移动量、带宽消耗等都降低了升降级的性能。需要说明的是,在存储系统中,为了减少运算复杂度,并保证数据不会溢出,采用的编解码运算都是在伽罗华域中实现的。表现在硬件的实现中,加减法会通过异或运算来实现,而乘除法会用针对不同伽罗华域多项式的伽罗华乘除法实现,此处不做赘述。
针对现有RAID升降级过程中存在的问题,本发明对现有的RAID5、RAID6和TP-RAID的校验码计算方式以及落盘方式进行改进,同时,对改进后的RAID5、RAID6和TP-RAID之间的升降级方式也进行了改进,使得升降级过程中的数据读取量和计算量减少,提高了RAID的模式切换效率,优化了RAID模式切换过程。
图1为本发明提供的磁盘阵列切换方法的流程示意图,如图1所示,本发明提供了一种磁盘阵列切换方法,包括:
步骤101,确定目标磁盘阵列的初始RAID模式。
在本发明中,首先确定磁盘阵列的当前RAID模式,进而根据相应的模式切换输入操作,获取将要切换的目标RAID模式,其中,所述初始RAID模式和所述目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种。本发明提供了四种RAID模式,即第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式,进而实现这四种RAID模式之间的升降级切换过程。
进一步地,本发明对现有RAID5和RAID6的校验码编码方式和落盘方式进行了改进,分别形成对应的第一磁盘阵列模式和第三磁盘阵列模式,其中,改进的RAID5(即第一磁盘阵列模式)相比现有RAID5多占用了一块磁盘,并将校验块中的校验码拆分为两个,当恢复任意一个错误块时,其所需读取的磁盘数是现有RAID5的一半,且可对部分两个错误块的情况进行恢复。
对于第三磁盘阵列模式(即改进的RAID6),本发明在原RAID6模式的基础上多占用一块磁盘,并且,将其中的第一校验块中的校验码进行拆分,并将拆分得到的同一类型的校验码(例如,拆分得到的校验码分别为/>和/>,将每个条带中的校验码/>进行落盘)落盘至最后一个磁盘上(即多占用的一块磁盘上)。
同时,本发明对现有TP-RAID的落盘方式进行了改进,将TP-RAID的第三个校验块固定的落盘在最后一个磁盘上(即磁盘顺序排序最后的磁盘),并且该校验块不参与左旋不对齐的落盘方式,即在改进的TP-RAID中,基于负载均衡算法,将/>个数据块、第一校验块和第二校验块/>在除最后一个磁盘以外的其它所有磁盘上,以左旋不对齐的方式进行排布,而第三个校验块/>均落盘至每个条带中最后一个磁盘上。
步骤102,根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;其中,所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
在本发明中,根据当前RAID模式(即初始RAID模式)和目标RAID模式,确定相应的升降级过程,从而完成模式之间的切换。在一实施例中,将第一磁盘阵列模式切换为第二磁盘阵列模式,需要基于RAID6编码方式,根据第一磁盘阵列模式中条带的数据块进行校验码重新编码,进而通过重新编码得到校验码(即第二磁盘阵列模式中对应的第一校验码和第二校验码)对第一磁盘阵列模式中相应的校验块进行更新,从而将第一磁盘阵列模式切换为第二磁盘阵列模式。另外,当第二磁盘阵列模式降级为第一磁盘阵列模式时,无需移动数据块,且在校验码重新编码时,数据块的读取量减少一半,进一步优化了降级过程的性能。
在另一实施例中,当第四磁盘阵列模式与第一磁盘阵列模式之间进行升降级操作时,不再需要移动数据块,只需要在确定插入(或拔下)一块磁盘,根据当前磁盘阵列模式中的数据块对校验码进行重新编码,即可完成模式之间的切换过程,相比现有升降级操作大大减少了磁盘的读取量,降低了升降级操作时所造成的带宽消耗,提高了升降级的性能。
在又一实施例中,当第四磁盘阵列模式降级为第二磁盘阵列RAID6降级时,无需移动数据块且无需读取数据块,只需要根据原始校验块(即第四磁盘阵列模式中的校验块)及其落盘位置信息,即可得到降级之后的校验块对应的校验码。
本发明提供的磁盘阵列切换方法,通过对现有的RAID5、RAID6和TP-RAID的校验码计算方式以及落盘方式进行改进,同时对改进后的RAID5、RAID6和TP-RAID之间的升降级方式进行优化,使得升降级过程中的数据读取量和计算量减少,提高了RAID的模式切换效率,优化了RAID模式切换过程。
在上述实施例的基础上,所述第一磁盘阵列模式通过以下步骤构建得到:
在确定采用RAID5模式的磁盘阵列中至少已接入一个第一新增磁盘时,将初始RAID5条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述初始RAID5条带对应的第一数据块分区和第二数据块分区,其中,所述初始RAID5条带为所述RAID5模式中磁盘阵列的条带;
通过所述第一数据块分区中的数据块,编码得到第一条带的第一分区校验码,其中,所述第一条带为所述第一磁盘阵列模式的磁盘阵列的条带;
通过所述第二数据块分区中的数据块,编码得到所述第一条带的第二分区校验码;
基于负载均衡算法,将所述第一分区校验码和所述第二分区校验码排布至所述RAID5模式的磁盘阵列中各个磁盘以及所述第一新增磁盘中,得到所述第一磁盘阵列模式。
现有基于里德所罗门码(Reed-Solomon Code,简称RS)的RAID5的编码计算公式为:
;公式(1)
其中,为任一条带中的/>个数据块,/>为该条带中的第一校验块,/>为异或运算。/>
在本发明中,在现有RAID5编码方式的基础上对其进行改进,相比现有RAID5,改进后的RAID5(即第一磁盘阵列模式)多占用一个磁盘(即第一新增磁盘),第一磁盘阵列模式的落盘方式可参考表4所示:
表4
在本发明中,需要将现有RAID5的校验块进行拆分,通过将数据块分为两部分(即第一数据块分区和第二数据块分区),并利用各个部分的数据块分别编码,得到两个部分各自对应的校验码,从而将拆分后得到的两个校验码分别落盘至对应的校验块中,具体地,在第一磁盘阵列模式中,所述第一分区校验码和所述第二分区校验码是通过以下编码公式得到:
;公式(2)
其中,为所述第一数据块分区的数据块,/>为所述第二数据块分区的数据块,/>为所述第一条带中的/>个数据块,/>为所述第一分区校验码,/>为所述第二分区校验码。
可参考表4所示,第一磁盘阵列模式将每个条带中的数据块拆分为以及/>两部分,得到第一数据块分区和第二数据块分区,通过公式(2),计算得到第一数据块分区和第二数据块分区各自对的分区校验码,从而完成对第一磁盘阵列模式的校验码编码。可参考表4所示,当第一磁盘阵列模式中任意一个数据块发生错误时,若发生错误的一个数据块在第一数据块分区/>时,只需要读取第一数据块分区中剩余的/>个数据块以及第一数据块分区对应的分区校验码进行异或运算即可恢复;同理,若发生错误的一个数据块在第二数据块分区时,只需要读取第二数据块分区中剩余的/>个数据块以及第二数据块分区对应的分区校验码进行异或运算即可恢复。
当两个数据块发生错误时,若两个发生错误的数据块都在第一数据块分区,或者都在第二数据块分区/>时,此时,错误的数据块无法恢复。若一个发生错误的数据块在第一数据块分区/>中,另一个发生错误的数据块在第二数据块分区中/>时,此时,可通过公式(2)对发生错误的数据块进行恢复。
本发明提供的第一磁盘阵列模式,即基于校验码拆分后的RAID5,相比现有RAID多占用一块磁盘,并对条带中的数据块拆分为两部分,各个部分分别编码对应的分区校验码,可针对任意一个发生错误的数据块进行恢复,且在恢复任意一个错误的数据块时,其所需读取的磁盘数量是现有RAID5的一半;并且,针对同一条带中发生两个错误的数据块的部分情况也可以进行恢复,其可恢复两个错误块的比例为。
在上述实施例的基础上,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
基于RAID6编码方式,根据所述第一条带的数据块,对所述第一条带对应的所述第一分区校验码和所述第二分区校验码进行重新编码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表2和表4所示,将第一磁盘阵列模式向第二磁盘阵列模式进行升级操作时,共有种条带场景,在升级过程中,无需移动原磁盘阵列模式中的数据块,只需要基于RAID6编码方式进行校验码编码,得到第二磁盘阵列模式中条带对应的两个校验码,公式为:/>
;公式(3)
其中,为条带中的第一校验块,/>为条带中的第二校验块,/>为条带中的数据块对应的落盘位置,如/>在第4个磁盘,则/>;/>为校验块对应的落盘位置。
通过公式(3),根据第一磁盘阵列模式的条带(即第一条带)中数据块进行重新编码,即可得到第二磁盘阵列模式中各个条带的校验码,并对第一磁盘阵列模式中相应的校验块进行更新,从而完成第一磁盘阵列模式至第二磁盘阵列模式的升级过程,相比现有RAID5向RAID6的升级过程,提高了升级效率。
在上述实施例的基础上,所述第三磁盘阵列模式通过以下步骤构建得到:
在确定采用所述第二磁盘阵列模式的磁盘阵列中至少已接入一个第二新增磁盘时,将第二条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第二条带对应的第三数据块分区和第四数据块分区,其中,所述第二条带为所述第二磁盘阵列模式的磁盘阵列的条带;
通过所述第三数据块分区中的数据块,编码得到第三条带的第三分区校验码,其中,所述第三条带为所述第三磁盘阵列模式的磁盘阵列的条带;
通过所述第四数据块分区中的数据块,编码得到所述第三条带的第四分区校验码;
通过所述第三分区校验码,对所述第二磁盘阵列模式的磁盘阵列的条带中对应的第一校验码进行更新,并将所述第四分区校验码落盘至所述第二新增磁盘中对应的条带,得到所述第三磁盘阵列模式。
在本发明中,在现有RAID6编码方式的基础上对其进行改进,相比现有RAID6,改进后的RAID6(即第三磁盘阵列模式)多占用一个磁盘(即第二新增磁盘),第三磁盘阵列模式的落盘方式可参考表5所示:
表5
根据公式(3)可知,现有RAID6中的校验块和/>,满足以下公式:
;公式(4)
在本发明中,需要将现有RAID6的校验块拆分两部分,具体地,通过将现有RAID6的条带中的数据块按照磁盘顺序分为第三数据块分区和第四数据块分区,并利用各个分区的数据块分别进行编码,得到两个分区各自对应的校验码,从而将拆分后得到的两个校验码落盘至对应的校验块中。在第三磁盘阵列模式中,对应的两个校验码/>和/>的编码公式为:
;公式(5)
可参考表5所示,第三磁盘阵列模式将现有RAID6中每个条带中的数据块拆分为以及/>两部分,得到第三数据块分区和第四数据块分区,进而根据公式(5),计算得到第三数据块分区和第四数据块分区各自对的分区校验码。可参考表5所示,当第三磁盘阵列模式中任意一个数据块发生错误时,若发生错误的一个数据块在第三数据块分区/>时,只需要读取第三数据块分区中剩余的个数据块以及第三数据块分区对应的校验码进行异或运算即可恢复;同理,若发生错误的一个数据块在第四数据块分区/>时,只需要读取第四数据块分区中剩余的/>个数据块以及第四数据块分区对应的校验码进行异或运算即可恢复,相比现有RAID6,仅需读取一半的磁盘量即可恢复错误数据块。
进一步地,根据公式(4)和公式(5)可知,,当第三磁盘阵列模式中任意两个数据块发生错误,或者,第三磁盘阵列模式中发生错误的数据块为三个,且三个数据块不同时在同一数据块分区中(如一个错误数据块在第三数据块分区,另外两个错误数据块在第四数据块分区)时,可通过公式(3)、公式(5)以及 />,对发生错误的数据块进行恢复。
在上述实施例的基础上,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第三磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第一磁盘阵列模式的磁盘阵列中至少已接入一个第三新增磁盘时,通过所述第一数据块分区中的数据块,编码得到所述第三分区校验码;
通过所述第二数据块分区中的数据块,编码得到所述第四分区校验码;
基于RAID6的编码方式,通过所述第一条带中的数据块,编码得到所述第三条带的第二校验码;
通过所述第三分区校验码,对所述第一分区校验码进行更新,将所述第四分区校验码落盘至所述第三新增磁盘中;通过所述第三条带的第二校验码,对所述第二分区校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考4表和表5,将第一磁盘阵列模式向第三磁盘阵列模式进行升级操作时,共有种条带场景,在升级过程中,首先在第一磁盘阵列模式中新增一个磁盘(即第三新增磁盘),然后,在不移动数据块的情况下,基于公式(5),根据第一数据块分区和第二数据库分区各自对应的数据块,分别编码得到第三分区校验码和第四分区校验码;同时,基于RAID6的编码方式,通过第一条带中的数据块,编码得到第三条带的第二校验码。进一步地,根据第三磁盘阵列模式中校验块的落盘方式,通过第三分区校验码、第四分区校验码落盘以及第三条带的第二校验码,对第一磁盘阵列模式的条带中相应的校验块进行更新,从而在不移动数据块的前提下,完成第一磁盘阵列模式至第三磁盘阵列模式的升级过程,相比现有RAID5升级成现有RAID6的过程,提高了RAID升级效率。
在上述实施例的基础上,所述第四磁盘阵列模式通过以下步骤构建得到:
确定所述第四磁盘阵列模式中的第一目标磁盘,其中,所述第一目标磁盘为所述第四磁盘阵列模式中磁盘顺序排序最后的磁盘;
确定第四条带的校验码落盘位置,其中,所述第四条带为所述第四磁盘阵列模式的磁盘阵列的条带,所述第四条带的第一校验码和第二校验码的待落盘位置为各个第二目标磁盘,各个所述第二目标磁盘为所述第四磁盘阵列模式的磁盘阵列中除所述第一目标磁盘以外的其它磁盘;所述第四条带的第三校验码的待落盘位置为所述第一目标磁盘;
基于TP-RAID编码方式,通过所述第四条带的数据块进行校验码编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
基于负载均衡算法,将所述第四条带的第一校验码和第二校验码,排布在各个所述第二目标磁盘中;
将所述第四条带的第三校验码落盘至所述第一目标磁盘,构建得到所述第四磁盘阵列模式。
现有TP-RAID的编码计算公式为:
;公式(6)
其中,为任一条带中的/>个数据块,/>为条带中的第一校验块,/>为条带中的第二校验块,/>为条带中的第三校验块,/>为条带中的数据块对应的落盘位置,/>为校验块对应的落盘位置,/>为异或运算。
表6为现有基于左旋不对齐方式的TP-RAID落盘表,可参考表6所示:
表6
如表6、表1和表2所示,当现有TP-RAID在现有RAID5以及现有RAID6之间进行升降级操作时,需要将数据全部进行读取,并重新排布、编码计算后进行落盘,对升降级过程性能造成影响。本发明对现有TP-RAID的落盘方式进行改进,改进后的TP-RAID(即第四磁盘阵列模式)的落盘方式可参考表7所示:
表7
在本发明中,将现有TP-RAID的第三个校验块(即第三校验码所对应的校验块)固定的设置在磁盘排序最后一个磁盘(即第一目标磁盘)上,且不参与左旋不对齐的落盘方式,而另外两个校验块还是基于左旋不对齐的落盘方式在条带其它磁盘(即第二目标磁盘)中进行落盘,共有/>种条带场景,通过TP-RAID编码方式完成编码后,按照上述方式完成落盘,从而形成表7对应的落盘方式。
本发明对现有TP-RAID进行改进,使得改进后的TP-RAID在与RAID6或改进后的RAID5之间进行升降级操作时,不需要移动原磁盘阵列中的数据块,只需要在插入(或拔下)一块磁盘后重新编码即可,具体可参考表7和表2,或,表7和表4。
在上述实施例的基础上,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过所述第三条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
通过所述第四条带的第一校验码、第二校验码和第三校验码,对所述第三条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表5和表7所示,当第三磁盘阵列模式切换为第四磁盘阵列模式时,无需对第三磁盘阵列模式中的数据块进行移动,仅通过读取条带中的数据块,基于第四磁盘阵列模式的校验码落盘位置,利用公式(6)进行重新编码,并将重新编码得到的三个校验码落盘至对应的校验块中,从而快速完成模式切换,提高了RAID升级性能。
在上述实施例的基础上,若所述初始RAID模式为所述第二磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第二磁盘阵列模式的磁盘阵列中至少已接入一个第四新增磁盘时,基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过第二条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码,其中,所述第二条带为所述第二磁盘阵列模式中对应的条带;
通过所述第四条带的第一校验码和第二校验码,对所述第二条带中对应的第一校验码和第二校验码进行更新,并将所述第四条带的第三校验码落盘至所述第四新增磁盘,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表2和表7所示,当第二磁盘阵列模式切换为第四磁盘阵列模式时,首先在第二磁盘阵列模式中新增一个磁盘(即第四新增磁盘),同样地,无需对第二磁盘阵列模式中的数据块进行移动,仅通过读取第二磁盘阵列条带中的数据块,基于第四磁盘阵列模式的校验码落盘位置,利用公式(6)进行重新编码,并将重新编码得到的三个校验码落盘至对应的校验块中,从而快速完成模式切换,相比现有RAID6升级为TP-RAID的过程,其升级效率更高。
在上述实施例的基础上,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第一磁盘阵列模式的磁盘阵列中至少已接入一个第五新增磁盘时,基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过所述第一条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
通过所述第四条带的第一校验码和第二校验码,对所述第一分区校验码和所述第二分区校验码进行更新,并将所述第四条带的第三校验码落盘至所述第五新增磁盘,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表4和表7所示,当第一磁盘阵列模式切换为第四磁盘阵列模式时,首先在第一磁盘阵列模式中新增一个磁盘(即第五新增磁盘),同样地,无需对第一磁盘阵列模式中的数据块进行移动,仅通过读取第一磁盘阵列条带中的数据块,基于第四磁盘阵列模式的校验码落盘位置,利用公式(6)进行重新编码,并将重新编码得到的三个校验码落盘至对应的校验块中,从而快速完成模式切换,相比现有RAID5升级为TP-RAID的过程,其升级效率更高。
在上述实施例的基础上,若所述初始RAID模式为所述第二磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
根据所述第三数据块分区中的数据块,编码得到所述第一条带的第一分区校验码;
根据所述第二条带的第一校验码和第二校验码,以及所述第一条带的第一分区校验码进行异或运算,得到所述第一条带的第二分区校验码;
通过所述第一条带的第一分区校验码和第二分区校验码,对所述第二条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表2和表4所示,当第二磁盘阵列模式(即现有RAID6)降级为第一磁盘阵列模式时,假设RAID6中的两个校验块分别为和/>,第一磁盘阵列模式中的分区校验块分别为/>和/>。首先,对于RAID6中的条带1(即表2中第一行对应的条带),其对应的RAID6编码公式为:
;公式(7)
将第二磁盘阵列模式降级后,得到的第一磁盘阵列模式的编码公式为:
;公式(8)
通过公式(7)和公式(8),构建以下公式:
;公式(9)
相应地,对于表2中的条带2、条带3,……,条带,也可基于上述公式(7)、公式(8)和公式(9),确定第二磁盘阵列模式中任意一个条带的校验块与第一磁盘阵列中对应条带的校验块之间的关系:/>
;公式(10)
基于公式(10),可以先读取第三数据块分区(可参考上述实施例)的数据块编码得到/>,得到第一条带的第一分区校验码;然后,基于公式(10),根据第二条带的第一校验码和第二校验码,以及第一条带的第一分区校验码进行异或运算,即可得到第一条带的第二分区校验码/>,与现有降级过程相比,无需对第二磁盘阵列模式中的数据块进行移动,且数据块的读取量减少一半,进一步优化了降级的性能。
在上述实施例的基础上,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第三磁盘阵列模式的磁盘阵列中已移除所述第二新增磁盘时,根据所述第三条带的第三分区校验码和第四分区校验码进行异或运算,得到所述第二条带的第一校验码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表5和表2所示,当第三磁盘阵列模式降级为第二磁盘阵列模式时,根据公式(4)和公式(5),得到 ,进一步地,当第三磁盘阵列模式中磁盘顺序最后的磁盘(即第二新增磁盘)被移除时,通过将第三磁盘阵列模式中的第三分区校验码和第四分区校验码进行异或运算,从而得到第二磁盘阵列模式中条带对应的第一校验码,并利用该第一校验码对第三分区校验码进行更新,完成降级过程。
在上述实施例的基础上,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第三磁盘阵列模式的磁盘阵列中已移除所述第二新增磁盘时,根据所述第三分区校验码对应的数据块,编码得到所述第一条带的第一分区校验码;
根据所述第三分区校验码和对应的所述第四分区校验码进行异或运算,得到所述第三条带的第一校验码;
根据所述第三条带的第一校验码和第二校验码,以及所述第一条带的第一分区校验码进行异或运算,得到所述第一条带的第二分区校验码;
通过所述第一条带的第一分区校验码和第二校验码,对所述第三条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表5和表4所示,当第三磁盘阵列模式降级为第一磁盘阵列模式时,假设第三磁盘阵列模式中的两个分区校验块(对应第三分区校验码和第四分区校验码)分别为和/>,第二校验块为/>;第一磁盘阵列模式中的分区校验块分别为/>和/>,通过公式(4)和(5)可知,/>,且 />。
由于在第三磁盘阵列模式中,独立在一个磁盘上,因此,首先读取第三磁盘阵列模式中的数据块/> ,通过公式(2)编码得到/>;然后,通过/>,即可得到/>,之后将第三磁盘阵列模式中存放/>的磁盘拔掉即可。与现有RAID6降级为RAID5的过程相比,无需移动数据块,且数据块的读取量减少一半,进一步优化了降级的性能。
在上述实施例的基础上,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第三磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
将所述第四条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第四条带对应的第五数据块分区和第六数据块分区;
通过所述第五数据块分区中的数据块,编码得到所述第三分区校验码;
通过所述第六数据块分区中的数据块,编码得到所述第四分区校验码;
基于RAID6编码方式,根据所述第四条带的数据块,编码得到所述第三条带的第二校验码;
通过所述第三条带的第二校验码,对所述第四条带中对应的第二校验码进行更新;通过所述第三分区校验码,对所述第四条带中对应的第一校验码进行更新;通过所述第四分区校验码,对所述第四条带中对应的第三校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表7和表5所示,根据第四磁盘阵列模式中的数据块,结合公式(4)和公式(5),直接重新编码得到第三磁盘阵列模式中相应的校验码,无需移动数据块,从而将第四磁盘阵列模式降级为第三磁盘阵列模式,优化了TP-RAID至RAID6的降级过程。
在上述实施例的基础上,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第四磁盘阵列模式的磁盘阵列中已移除所述第一目标磁盘时,根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表7和表2所示,当第四磁盘阵列模式降级为第二磁盘阵列模式时,假设第四磁盘阵列模式中的三个校验块分别为、/>和/>,第二磁盘阵列模式中的校验块分别为/>和/>。首先,对于第四磁盘阵列模式中的条带1(即表7中第一行对应的条带),其对应的编码公式为:
;公式(11)
将第四磁盘阵列模式降级后,得到的第二磁盘阵列模式中条带1的编码公式为:
;公式(12)
通过公式(11)和公式(12),构建以下公式:
;公式(13)
进而对公式(13)进行求解,得到:
;公式(14)
进一步地,对于第四磁盘阵列模式中的条带2(即表7中第二行对应的条带),其对应的编码公式为:
;公式(15)
将第四磁盘阵列模式降级后,得到的第二磁盘阵列模式中条带2对应的编码公式为:
;公式(16)
通过公式(15)和公式(16),构建以下公式:
;公式(17)
进而对公式(17)进行求解,得到:
;公式(18)
相应地,对于表7中的条带3、条带4,……,条带,也可基于上述公式,确定第四磁盘阵列模式中任意一个条带的校验块与第二磁盘阵列中对应条带的校验块之间的关系,从而构建得到校验码降级转换公式。
在上述实施例的基础上,所述根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,包括:
通过校验码降级转换公式,根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,所述校验码降级转换公式为:
;公式(19)
其中,表示所述第四条带中第一校验码的落盘位置信息,/>表示所述第四条带中第二校验码的落盘位置信息,/>表示所述第四条带中第三校验码的落盘位置信息,/>表示所述第四条带中的第一校验码,/>表示所述第四条带中的第二校验码,/>表示所述第四条带中的第三校验码,/>表示所述第二条带中的第一校验码,/>表示所述第二条带中的第二校验码。
在本发明中,根据公式(19)可知,当第四磁盘阵列模式向第二磁盘阵列模式进行降级时,无需移动第四磁盘阵列模式中的数据块,且无需读取数据块,基于本发明提供的校验码降级转换公式,根据第四磁盘阵列模式中的校验块及其对应的落盘位置信息,即可计算得到降级之后的校验块,进一步优化了降级的性能。
在上述实施例的基础上,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第四磁盘阵列模式的磁盘阵列中已移除所述第一目标磁盘时,将所述第四条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第四条带对应的第五数据块分区和第六数据块分区;
通过所述第五数据块分区中的数据块,编码得到所述第一分区校验码;
通过所述第六数据块分区中的数据块,编码得到所述第二分区校验码;
通过所述第一分区校验码,对所述第四条带中对应的第一校验码进行更新;通过所述第二分区校验码,对所述第四条带中对应的第二校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
在本发明中,可参考表7和表4所示,当第四磁盘阵列模式降级为第一磁盘阵列模式时,无需对第四磁盘阵列模式中的数据块进行移动,仅通过读取第四磁盘阵列模式的条带中的数据块,参考上述实施例中第一磁盘阵列模式中的数据块分区的划分过程,将第四磁盘阵列模式中各条带的数据块也划分为两个数据块;然后,利用公式(2)进行重新编码,并将重新编码得到的二个分区校验码落盘至对应的校验块中,并移除第四磁盘阵列模式中磁盘顺序最后的磁盘(即第一目标磁盘),从而快速完成模式切换,相比现有TP-RAID降级为RAID5的过程,其降级效率更高。
下面对本发明提供的磁盘阵列切换系统进行描述,下文描述的磁盘阵列切换系统与上文描述的磁盘阵列切换方法可相互对应参照。
图2为本发明提供的磁盘阵列切换系统的结构示意图,如图2所示,本发明提供了一种磁盘阵列切换系统,包括模式确认模块201和模式切换模块202,模式确认模块201用于确定目标磁盘阵列的初始RAID模式;模式切换模块202用于根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;其中,所述初始RAID模式和目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
在本发明中,通过模式确认模块201确定磁盘阵列的当前RAID模式,进一步地,模式确认模块201根据相应的模式切换输入操作,获取将要切换的目标RAID模式。本发明提供了四种RAID模式,即第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式,进而实现这四种RAID模式之间的升降级切换过程。
进一步地,本发明对现有RAID5和RAID6的校验码编码方式和落盘方式进行了改进,分别形成对应的第一磁盘阵列模式和第三磁盘阵列模式,其中,改进的RAID5(即第一磁盘阵列模式)相比现有RAID5多占用了一块磁盘,并将校验块中的校验码拆分为两个,当恢复任意一个错误块时,其所需读取的磁盘数是现有RAID5的一半,且可对部分两个错误块的情况进行恢复。
对于第三磁盘阵列模式(即改进的RAID6),本发明在原RAID6模式的基础上多占用一块磁盘,并且,将其中的第一校验块中的校验码进行拆分,并将拆分得到的同一类型的校验码(例如,拆分得到的校验码分别为/>和/>,将每个条带中的校验码/>进行落盘)落盘至最后一个磁盘上(即多占用的一块磁盘上)。
同时,本发明对现有TP-RAID的落盘方式进行了改进,将TP-RAID的第三个校验块固定的落盘在最后一个磁盘上(即磁盘顺序排序最后的磁盘),并且该校验块不参与左旋不对齐的落盘方式,即在改进的TP-RAID中,基于负载均衡算法,将/>个数据块、第一校验块/>和第二校验块/>在除最后一个磁盘以外的其它所有磁盘上,以左旋不对齐的方式进行排布,而第三个校验块/>均落盘至每个条带中最后一个磁盘上。
在确定了RAID的当前模式和将要升降级的模式之后,模式切换模块202根据当前RAID模式和目标RAID模式,执行相应的升降级过程,从而完成模式之间的切换。在一实施例中,模式切换模块202将第一磁盘阵列模式切换为第二磁盘阵列模式是,需要基于RAID6编码方式,根据第一磁盘阵列模式中条带的数据块进行校验码重新编码,进而通过重新编码得到校验码(即第二磁盘阵列模式中对应的第一校验码和第二校验码)对第一磁盘阵列模式中相应的校验块进行更新,从而将第一磁盘阵列模式切换为第二磁盘阵列模式。另外,当模式切换模块202将第二磁盘阵列模式降级为第一磁盘阵列模式时,无需移动数据块,且在校验码重新编码时,数据块的读取量减少一半,进一步优化了降级过程的性能。
在另一实施例中,模式切换模块202将第四磁盘阵列模式与第一磁盘阵列模式之间进行升降级操作时,不再需要移动数据块,只需要在确定插入(或拔下)一块磁盘,根据当前磁盘阵列模式中的数据块对校验码进行重新编码,即可完成模式之间的切换过程,相比现有升降级操作大大减少了磁盘的读取量,降低了升降级操作时所造成的带宽消耗,提高了升降级的性能。
在又一实施例中,模式切换模块202将第四磁盘阵列模式降级为第二磁盘阵列RAID6降级时,无需移动数据块且无需读取数据块,只需要根据原始校验块(即第四磁盘阵列模式中的校验块)及其落盘位置信息,即可得到降级之后的校验块对应的校验码。
本发明提供的磁盘阵列切换系统,通过对现有的RAID5、RAID6和TP-RAID的校验码计算方式以及落盘方式进行改进,同时对改进后的RAID5、RAID6和TP-RAID之间的升降级方式进行优化,使得升降级过程中的数据读取量和计算量减少,提高了RAID的模式切换效率,优化了RAID模式切换过程。
本发明还提供一种服务器,包括磁盘阵列柜和上述各实施例所述的磁盘阵列切换系统。
在本发明中,磁盘阵列柜中设置有多个磁盘,多个磁盘构成的阵列模式可通过磁盘阵列切换系统进行相应的升降级操作。在本发明中,磁盘阵列切换系统提供了四种RAID模式,即第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式,进而实现这四种RAID模式之间的升降级切换过程。
其中,第一磁盘阵列模式为改进的RAID5,可参考表4所示,相比现有RAID5多占用了一块磁盘,并将校验块中的校验码拆分为两个,当恢复任意一个错误块时,其所需读取的磁盘数是现有RAID5的一半,且可对部分两个错误块的情况进行恢复。
本发明在原RAID6模式的基础上多占用一块磁盘,以构建第三磁盘阵列模式,并且,将原RAID6的第一校验块中的校验码进行拆分,并将拆分得到的同一类型的校验码(例如,拆分得到的校验码分别为/>和/>,将每个条带中的校验码/>进行落盘)落盘至最后一个磁盘上(即多占用的一块磁盘上)。
同时,本发明将TP-RAID的第三个校验块固定的落盘在最后一个磁盘上(即磁盘顺序排序最后的磁盘),并且该校验块不参与左旋不对齐的落盘方式,从而对现有TP-RAID的落盘方式进行了改进,基于负载均衡算法,将/>个数据块、第一校验块/>和第二校验块/>在除最后一个磁盘以外的其它所有磁盘上,以左旋不对齐的方式进行排布,而第三个校验块/>均落盘至每个条带中最后一个磁盘上。当磁盘阵列切换系统在上述四种磁盘阵列模式之间进行升降级时,无需移动数据块,并对部分升降级过程进行改进,使得磁盘读取量大幅减少,优化了RAID模式的升降级性能。
本发明提供的服务器,包括有磁盘阵列切换系统,该磁盘阵列切换系统通过对现有的RAID5、RAID6和TP-RAID的校验码计算方式以及落盘方式进行改进,同时对改进后的RAID5、RAID6和TP-RAID之间的升降级方式进行优化,使得升降级过程中的数据读取量和计算量减少,提高了RAID的模式切换效率,优化了RAID模式切换过程。
本发明提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图3为本发明提供的电子设备的结构示意图,如图3所示,该电子设备可以包括:处理器(Processor)301、通信接口(Communications Interface)302、存储器(Memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行磁盘阵列切换方法,该方法包括:确定目标磁盘阵列的初始RAID模式;根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;其中,所述初始RAID模式和所述目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的磁盘阵列切换方法,该方法包括:确定目标磁盘阵列的初始RAID模式;根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;其中,所述初始RAID模式和所述目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的磁盘阵列切换方法,该方法包括:确定目标磁盘阵列的初始RAID模式;根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;其中,所述初始RAID模式和所述目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种磁盘阵列切换方法,其特征在于,包括:
确定目标磁盘阵列的初始RAID模式;
根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;
其中,所述初始RAID模式和所述目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;
所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分处理后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
2.根据权利要求1所述的磁盘阵列切换方法,其特征在于,所述第一磁盘阵列模式通过以下步骤构建得到:
在确定采用RAID5模式的磁盘阵列中至少已接入一个第一新增磁盘时,将初始RAID5条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述初始RAID5条带对应的第一数据块分区和第二数据块分区,其中,所述初始RAID5条带为所述RAID5模式中磁盘阵列的条带;
通过所述第一数据块分区中的数据块,编码得到第一条带的第一分区校验码,其中,所述第一条带为所述第一磁盘阵列模式的磁盘阵列的条带;
通过所述第二数据块分区中的数据块,编码得到所述第一条带的第二分区校验码;
基于负载均衡算法,将所述第一分区校验码和所述第二分区校验码排布至所述RAID5模式的磁盘阵列中各个磁盘以及所述第一新增磁盘中,得到所述第一磁盘阵列模式。
3.根据权利要求2所述的磁盘阵列切换方法,其特征在于,所述第一分区校验码和所述第二分区校验码是通过以下编码公式得到:
;
其中,为所述第一数据块分区的数据块,/>为所述第二数据块分区的数据块,/>为所述第一条带中的/>个数据块,/>为所述第一分区校验码,/>为所述第二分区校验码。
4.根据权利要求2所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
基于RAID6编码方式,根据所述第一条带的数据块,对所述第一条带对应的所述第一分区校验码和所述第二分区校验码进行重新编码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
5.根据权利要求2所述的磁盘阵列切换方法,其特征在于,所述第三磁盘阵列模式通过以下步骤构建得到:
在确定采用所述第二磁盘阵列模式的磁盘阵列中至少已接入一个第二新增磁盘时,将第二条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第二条带对应的第三数据块分区和第四数据块分区,其中,所述第二条带为所述第二磁盘阵列模式的磁盘阵列的条带;
通过所述第三数据块分区中的数据块,编码得到第三条带的第三分区校验码,其中,所述第三条带为所述第三磁盘阵列模式的磁盘阵列的条带;
通过所述第四数据块分区中的数据块,编码得到所述第三条带的第四分区校验码;
通过所述第三分区校验码,对所述第二磁盘阵列模式的磁盘阵列的条带中对应的第一校验码进行更新,并将所述第四分区校验码落盘至所述第二新增磁盘中对应的条带,得到所述第三磁盘阵列模式。
6.根据权利要求5所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第三磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第一磁盘阵列模式的磁盘阵列中至少已接入一个第三新增磁盘时,通过所述第一数据块分区中的数据块,编码得到所述第三分区校验码;
通过所述第二数据块分区中的数据块,编码得到所述第四分区校验码;
基于RAID6的编码方式,通过所述第一条带中的数据块,编码得到所述第三条带的第二校验码;
通过所述第三分区校验码,对所述第一分区校验码进行更新,将所述第四分区校验码落盘至所述第三新增磁盘中;通过所述第三条带的第二校验码,对所述第二分区校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
7.根据权利要求5所述的磁盘阵列切换方法,其特征在于,所述第四磁盘阵列模式通过以下步骤构建得到:
确定所述第四磁盘阵列模式中的第一目标磁盘,其中,所述第一目标磁盘为所述第四磁盘阵列模式中磁盘顺序排序最后的磁盘;
确定第四条带的校验码落盘位置,其中,所述第四条带为所述第四磁盘阵列模式的磁盘阵列的条带,所述第四条带的第一校验码和第二校验码的待落盘位置为各个第二目标磁盘,各个所述第二目标磁盘为所述第四磁盘阵列模式的磁盘阵列中除所述第一目标磁盘以外的其它磁盘;所述第四条带的第三校验码的待落盘位置为所述第一目标磁盘;
基于TP-RAID编码方式,通过所述第四条带的数据块进行校验码编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
基于负载均衡算法,将所述第四条带的第一校验码和第二校验码,排布在各个所述第二目标磁盘中;
将所述第四条带的第三校验码落盘至所述第一目标磁盘,构建得到所述第四磁盘阵列模式。
8.根据权利要求7所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过所述第三条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
通过所述第四条带的第一校验码、第二校验码和第三校验码,对所述第三条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
9.根据权利要求7所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第二磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第二磁盘阵列模式的磁盘阵列中至少已接入一个第四新增磁盘时,基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过第二条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码,其中,所述第二条带为所述第二磁盘阵列模式中对应的条带;
通过所述第四条带的第一校验码和第二校验码,对所述第二条带中对应的第一校验码和第二校验码进行更新,并将所述第四条带的第三校验码落盘至所述第四新增磁盘,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
10.根据权利要求7所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第一磁盘阵列模式,且所述目标RAID模式为所述第四磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第一磁盘阵列模式的磁盘阵列中至少已接入一个第五新增磁盘时,基于所述第四条带的校验码落盘位置以及TP-RAID编码方式,通过所述第一条带的数据块进行校验码重新编码,得到所述第四条带的第一校验码、第二校验码和第三校验码;
通过所述第四条带的第一校验码和第二校验码,对所述第一分区校验码和所述第二分区校验码进行更新,并将所述第四条带的第三校验码落盘至所述第五新增磁盘,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
11.根据权利要求5所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第二磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
根据所述第三数据块分区中的数据块,编码得到所述第一条带的第一分区校验码;
根据所述第二条带的第一校验码和第二校验码,以及所述第一条带的第一分区校验码进行异或运算,得到所述第一条带的第二分区校验码;
通过所述第一条带的第一分区校验码和第二分区校验码,对所述第二条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
12.根据权利要求5所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第三磁盘阵列模式的磁盘阵列中已移除所述第二新增磁盘时,根据所述第三条带的第三分区校验码和第四分区校验码进行异或运算,得到所述第二条带的第一校验码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
13.根据权利要求6所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第三磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第三磁盘阵列模式的磁盘阵列中已移除所述第二新增磁盘时,根据所述第三分区校验码对应的数据块,编码得到所述第一条带的第一分区校验码;
根据所述第三分区校验码和对应的所述第四分区校验码进行异或运算,得到所述第三条带的第一校验码;
根据所述第三条带的第一校验码和第二校验码,以及所述第一条带的第一分区校验码进行异或运算,得到所述第一条带的第二分区校验码;
通过所述第一条带的第一分区校验码和第二校验码,对所述第三条带中对应的校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
14.根据权利要求8所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第三磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
将所述第四条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第四条带对应的第五数据块分区和第六数据块分区;
通过所述第五数据块分区中的数据块,编码得到所述第三分区校验码;
通过所述第六数据块分区中的数据块,编码得到所述第四分区校验码;
基于RAID6编码方式,根据所述第四条带的数据块,编码得到所述第三条带的第二校验码;
通过所述第三条带的第二校验码,对所述第四条带中对应的第二校验码进行更新;通过所述第三分区校验码,对所述第四条带中对应的第一校验码进行更新;通过所述第四分区校验码,对所述第四条带中对应的第三校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
15.根据权利要求9所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第二磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第四磁盘阵列模式的磁盘阵列中已移除所述第一目标磁盘时,根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
16.根据权利要求15所述的磁盘阵列切换方法,其特征在于,所述根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,包括:
基于校验码降级转换公式,根据所述第四条带的校验码以及所述第四条带中校验码的落盘位置信息,得到所述第二条带的第一校验码和第二校验码,所述校验码降级转换公式为:
;
其中,表示所述第四条带中第一校验码的落盘位置信息,/>表示所述第四条带中第二校验码的落盘位置信息,/>表示所述第四条带中第三校验码的落盘位置信息,/>表示所述第四条带中的第一校验码,/>表示所述第四条带中的第二校验码,/>表示所述第四条带中的第三校验码,/>表示所述第二条带中的第一校验码,/>表示所述第二条带中的第二校验码。
17.根据权利要求10所述的磁盘阵列切换方法,其特征在于,若所述初始RAID模式为所述第四磁盘阵列模式,且所述目标RAID模式为所述第一磁盘阵列模式,所述根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式,包括:
在确定采用所述第四磁盘阵列模式的磁盘阵列中已移除所述第一目标磁盘时,将所述第四条带中所有的数据块按照磁盘顺序拆分为两部分,得到所述第四条带对应的第五数据块分区和第六数据块分区;
通过所述第五数据块分区中的数据块,编码得到所述第一分区校验码;
通过所述第六数据块分区中的数据块,编码得到所述第二分区校验码;
通过所述第一分区校验码,对所述第四条带中对应的第一校验码进行更新;通过所述第二分区校验码,对所述第四条带中对应的第二校验码进行更新,以将所述目标磁盘阵列的RAID模式切换为所述目标RAID模式。
18.一种磁盘阵列切换系统,其特征在于,包括:
模式确认模块,用于确定目标磁盘阵列的初始RAID模式;
模式切换模块,用于根据所述目标磁盘阵列的初始RAID模式,以及,所述目标磁盘阵列的校验码或磁盘数据块,将所述目标磁盘阵列的RAID模式切换为目标RAID模式;
其中,所述初始RAID模式和目标RAID模式为第一磁盘阵列模式、第二磁盘阵列模式、第三磁盘阵列模式和第四磁盘阵列模式中的任意两种;
所述第一磁盘阵列模式是基于校验码拆分处理后的RAID5构建得到的,所述第二磁盘阵列模式为RAID6,所述第三磁盘阵列模式是基于校验码拆分后的RAID6构建得到的,所述第四磁盘阵列模式是基于校验码落盘方式改进后的TP-RAID构建得到的。
19.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至17任一项所述磁盘阵列切换方法。
20.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述磁盘阵列切换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310755366.9A CN116501537B (zh) | 2023-06-26 | 2023-06-26 | 磁盘阵列切换方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310755366.9A CN116501537B (zh) | 2023-06-26 | 2023-06-26 | 磁盘阵列切换方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116501537A true CN116501537A (zh) | 2023-07-28 |
CN116501537B CN116501537B (zh) | 2023-09-19 |
Family
ID=87328659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310755366.9A Active CN116501537B (zh) | 2023-06-26 | 2023-06-26 | 磁盘阵列切换方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501537B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193672A (zh) * | 2023-11-07 | 2023-12-08 | 苏州元脑智能科技有限公司 | 存储设备的数据处理方法及装置、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491613A (zh) * | 2018-11-13 | 2019-03-19 | 深圳龙岗智能视听研究院 | 一种持续数据保护存储系统及其使用该系统的存储方法 |
EP3499889A1 (en) * | 2017-12-14 | 2019-06-19 | Thomson Licensing | Method and apparatus for encoding a picture block |
CN110024397A (zh) * | 2016-10-07 | 2019-07-16 | 交互数字Vc控股公司 | 用于编码视频的方法和装置 |
CN114546272A (zh) * | 2022-02-18 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
CN114610244A (zh) * | 2022-03-25 | 2022-06-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种独立冗余磁盘阵列降级方法、系统及设备 |
CN115080303A (zh) * | 2022-07-26 | 2022-09-20 | 苏州浪潮智能科技有限公司 | Raid6磁盘阵列的编码方法、解码方法、装置及介质 |
-
2023
- 2023-06-26 CN CN202310755366.9A patent/CN116501537B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110024397A (zh) * | 2016-10-07 | 2019-07-16 | 交互数字Vc控股公司 | 用于编码视频的方法和装置 |
EP3499889A1 (en) * | 2017-12-14 | 2019-06-19 | Thomson Licensing | Method and apparatus for encoding a picture block |
CN109491613A (zh) * | 2018-11-13 | 2019-03-19 | 深圳龙岗智能视听研究院 | 一种持续数据保护存储系统及其使用该系统的存储方法 |
CN114546272A (zh) * | 2022-02-18 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
CN114610244A (zh) * | 2022-03-25 | 2022-06-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种独立冗余磁盘阵列降级方法、系统及设备 |
CN115080303A (zh) * | 2022-07-26 | 2022-09-20 | 苏州浪潮智能科技有限公司 | Raid6磁盘阵列的编码方法、解码方法、装置及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193672A (zh) * | 2023-11-07 | 2023-12-08 | 苏州元脑智能科技有限公司 | 存储设备的数据处理方法及装置、存储介质及电子设备 |
CN117193672B (zh) * | 2023-11-07 | 2024-02-09 | 苏州元脑智能科技有限公司 | 存储设备的数据处理方法及装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116501537B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582363B2 (en) | Failure domain based storage system data stripe layout | |
US9128846B2 (en) | Disk array device, control device and data write method | |
CN116501537B (zh) | 磁盘阵列切换方法、系统、电子设备及存储介质 | |
US20210271557A1 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
US20140344629A1 (en) | Arranging data handling in a computer-implemented system in accordance with reliability ratings based on reverse predictive failure analysis in response to changes | |
US20150269023A1 (en) | Method of, and apparatus for, improved data recovery in a storage system | |
CN104850504B (zh) | 一种加速基于xor的raid‑6编解码过程的方程并行计算方法 | |
US11327674B2 (en) | Storage vault tiering and data migration in a distributed storage network | |
CN115080303B (zh) | Raid6磁盘阵列的编码方法、解码方法、装置及介质 | |
CN112799605B (zh) | 平方部分重复码构造方法、节点修复方法及容量计算方法 | |
CN112799604B (zh) | 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法 | |
CN114610244A (zh) | 一种独立冗余磁盘阵列降级方法、系统及设备 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN114546272A (zh) | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 | |
CN115167787B (zh) | 一种数据转存方法、系统、设备及计算机可读存储介质 | |
CN116450048A (zh) | Raid6磁盘阵列降级为raid5磁盘阵列的方法 | |
CN111679793B (zh) | 一种基于star码的单盘故障快速恢复方法 | |
WO2022007225A1 (zh) | 数据存储方法、存储系统、存储设备及存储介质 | |
CN107463462B (zh) | 数据修复方法及数据修复装置 | |
Yang et al. | Xhr-code: An efficient wide stripe erasure code to reduce cross-rack overhead in cloud storage systems | |
CN114756175A (zh) | 一种用于磁盘阵列的解码方法、系统、设备及介质 | |
CN110532128B (zh) | 一种降低数据更新代价的纠删码编码及数据重构方法 | |
CN113157715B (zh) | 纠删码数据中心机架协同更新方法 | |
CN109426432A (zh) | 独立磁盘冗余阵列的创建方法、装置及设备 | |
Li et al. | Exploiting decoding computational locality to improve the I/O performance of an XOR-coded storage cluster under concurrent failures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |