国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種可動態(tài)異步調(diào)整raid級別的存儲方法及存儲系統(tǒng)的制作方法

      文檔序號:6630945閱讀:143來源:國知局
      一種可動態(tài)異步調(diào)整raid級別的存儲方法及存儲系統(tǒng)的制作方法
      【專利摘要】本發(fā)明提供一種可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng),首先通過在線模式生成初始虛擬磁盤,再在IO空閑時,采用后臺模式增加或降低冗余度,由于增加或降低冗余度操作在后臺進行,不需要占用在線模式時的IO資源,因此,為一種異步模式;另外,本發(fā)明中,每個塊條帶的RAID級別可均不相同,并可進行動態(tài)調(diào)整,從而提高了存儲系統(tǒng)冗余級別調(diào)整的靈活性,更能滿足用戶存儲需求。因此,本發(fā)明提供的可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng),在不影響數(shù)據(jù)存取速度的前提下,充分利用空閑IO和空閑空間,從而提升安全級別,更適用于應(yīng)用于云存儲和集中化存儲的大規(guī)模應(yīng)用場合。
      【專利說明】一種可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng)

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于數(shù)據(jù)存儲【技術(shù)領(lǐng)域】,具體涉及一種可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng)。

      【背景技術(shù)】
      [0002]RAID (Redundant Arrays of Independent Disks,獨立磁盤冗余陣列)技術(shù)已廣泛應(yīng)用于數(shù)據(jù)存儲的各種場合,RAID技術(shù)分為幾種不同的級別,可以分別提供不同的速度、安全性和性價比。根據(jù)實際情況選擇適當(dāng)?shù)腞AID級別可以滿足用戶對存儲系統(tǒng)可用性、性能和容量的要求。
      [0003]常用的RAID級別包括以下幾種:RAIDO、RAID4和RAID5等。
      [0004]其中,RAID O采用條帶技術(shù),對于由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊;然后,將不同物理磁盤的磁盤塊組成一個條帶;在數(shù)據(jù)存儲過程中,首先將連續(xù)的數(shù)據(jù)按磁盤陣列中的物理磁盤的數(shù)量進行分段,得到相同大小的數(shù)據(jù)塊,再以條帶為單位,將各個數(shù)據(jù)塊并行同時寫入到陣列中的不同條帶的不同磁盤塊上,由于可以對數(shù)據(jù)進行并行讀/寫,具有數(shù)據(jù)訪問速度快的優(yōu)點;但是,由于RAID O不具有冗余能力,至少需要兩個物理磁盤,只要其中一個物理磁盤出現(xiàn)損壞,則會導(dǎo)致整個磁盤陣列所保存的所有數(shù)據(jù)均不可用。
      [0005]RAID 4也同樣采用條帶技術(shù),其選取一塊物理磁盤專門用于存儲校驗數(shù)據(jù),稱為校驗盤;數(shù)據(jù)則分段存儲在其他物理磁盤中。同一條帶上,其他數(shù)據(jù)的改變均要修改校驗數(shù)據(jù)。因此,當(dāng)某一塊物理磁盤出現(xiàn)損壞時,只需要將損壞物理磁盤更換為新的物理磁盤,然后再根據(jù)校驗盤的校驗數(shù)據(jù),在新物理磁盤中重建損壞盤上的數(shù)據(jù)即可。利用單獨的校驗盤保護數(shù)據(jù),提高了數(shù)據(jù)冗余存儲能力,從而提高了數(shù)據(jù)存儲的安全性。
      [0006]RAID 5與RAID4區(qū)別在于,RAID 5不是以單獨的物理磁盤作為校驗盤,而是將校驗數(shù)據(jù)交互存儲于各個物理磁盤上。因此,1性能更加均衡,吞吐量及磁盤壽命均可最佳配置。相同之處在于,任何一個物理磁盤損壞,均不影響有效數(shù)據(jù),缺失的數(shù)據(jù)可通過同一條帶上的其他數(shù)據(jù)塊生成出來。
      [0007]對于RAID 4、RAID 5等具有校驗位的存儲系統(tǒng),主要采用存儲數(shù)據(jù)和校驗數(shù)據(jù)同步存儲結(jié)構(gòu),即:對于一個條帶,只有將校驗數(shù)據(jù)寫完,才能認為這個條帶被寫完,該種存儲結(jié)構(gòu)的優(yōu)點為:在突發(fā)性斷電等災(zāi)難發(fā)生時,可以保證數(shù)據(jù)的穩(wěn)定性,同時控制器設(shè)計較為簡單。但隨著云存儲和集中化存儲的大規(guī)模應(yīng)用,由若干組單一 RAID組成的存儲結(jié)構(gòu)常常會因為一組RAID故障導(dǎo)致大面積應(yīng)用癱瘓,放大了數(shù)據(jù)風(fēng)險,這時,簡單地增加冗余磁盤的數(shù)量,或者性能急劇下降,或者空間浪費驚人。所以,需要在空間利用率和存取性能上找到最佳點,如何在不影響數(shù)據(jù)存取速度的前提下,利用好存儲的空閑1和空閑空間,從而提升安全級別,是當(dāng)下存儲產(chǎn)品需要解決的關(guān)鍵問題。


      【發(fā)明內(nèi)容】

      [0008]針對現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng),可有效解決上述問題。
      [0009]本發(fā)明采用的技術(shù)方案如下:
      [0010]本發(fā)明還提供一種可動態(tài)異步調(diào)整RAID級別的存儲方法,包括以下步驟:
      [0011]SI,對于由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊;
      [0012]對每一個所述磁盤塊進行編號,該編號由物理磁盤號PN和磁盤塊號BN聯(lián)合組成,記為PNiBN ;
      [0013]然后,定義存儲池,所述存儲池具有磁盤塊分配表和塊條帶冗余度標識表;其中,所述塊條帶冗余度標識表用于記錄每個塊條帶的冗余度;
      [0014]將所有的已編號后的磁盤塊存入已定義的所述存儲池中;
      [0015]S2,在所述存儲池中定義SnRm列個磁盤塊組成的虛擬磁盤,每一行的所有磁盤塊形成一個磁盤塊條帶,簡稱為塊條帶;并約定所述塊條帶符合如下2個條件:
      [0016]條件1、每個塊條帶中,具有相同物理磁盤號PN的磁盤塊僅允許出現(xiàn)一次;
      [0017]條件2、每個塊條帶具有的磁盤塊數(shù)量需滿足在創(chuàng)建所述虛擬磁盤時所設(shè)定的最少磁盤塊數(shù)量;
      [0018]另外,在創(chuàng)建所述虛擬磁盤時,定義或默認定義所述虛擬磁盤的數(shù)據(jù)冗余級別,該數(shù)據(jù)冗余級別由如下4個參數(shù)決定:
      [0019]a、每個塊條帶中的存儲真正數(shù)據(jù)的磁盤塊數(shù)量:m_h ;其中,將存儲真正數(shù)據(jù)的磁盤塊簡稱為數(shù)據(jù)塊;
      [0020]b、每個塊條帶中的存儲校驗值的磁盤塊數(shù)量:h ;其中,將存儲校驗值的磁盤塊簡稱為校驗塊;
      [0021]C、每個塊條帶中允許增強的校驗塊數(shù)量:M ;
      [0022]d、虛擬磁盤安全級別:Vs ;
      [0023]S3,設(shè)按自上而下順序共有η個原始塊條帶,分別記為:原始塊條帶1、原始塊條帶2…原始塊條帶η ;
      [0024]設(shè)任意一個原始塊條帶i均由m個磁盤塊組成,按自左向右的順序,分別記為:磁盤塊i_l、磁盤塊i_2..,磁盤塊1-m ;并且,所述原始塊條帶的m個磁盤塊均為在線磁盤塊;每一個所述原始塊條帶具有的m個磁盤塊中,配置h個用于存儲校驗值的校驗塊,其他m-h個磁盤塊為用于存儲真正數(shù)據(jù)的數(shù)據(jù)塊;其中,O < h < m,h為自然數(shù);
      [0025]S4,當(dāng)進行寫操作時,RAID控制器接收待寫入虛擬磁盤的數(shù)據(jù),根據(jù)數(shù)據(jù)在虛擬磁盤中的偏移地址和數(shù)據(jù)的容量大小,通過虛擬磁盤的結(jié)構(gòu)定義,將所述數(shù)據(jù)分段,再計算分段后的數(shù)據(jù)需要寫入的數(shù)據(jù)塊的塊地址以及校驗塊的塊地址;然后,向計算后得到的數(shù)據(jù)塊地址寫入分段后的數(shù)據(jù),向計算后得到的校驗塊地址寫入校驗數(shù)據(jù),返回寫成功;
      [0026]當(dāng)進行讀操作時,將所述虛擬磁盤的空間地址和大小轉(zhuǎn)換后,由并行線程進行讀取、匯總,即可讀出數(shù)據(jù);
      [0027]S4,具體包括:
      [0028]S4.1,RAID控制器監(jiān)控1模塊的空閑狀態(tài),當(dāng)監(jiān)控到1模塊空閑時,執(zhí)行S4.2 ;
      [0029]S4.2,所述虛擬磁盤增加塊條帶冗余度的操作:
      [0030]如果同時滿足以下條件:
      [0031]當(dāng)前所述存儲池的空閑磁盤塊數(shù)量超過設(shè)定值;并且,存在校驗塊數(shù)量小于最大數(shù)量M的第一塊條帶集;
      [0032]則:所述虛擬磁盤基于優(yōu)先級冗余策略,按優(yōu)先級從高到低順序分別對所述第一塊條帶集中的各個塊條帶增加一個級別的冗余處理,即:為所獲取的塊條帶增加一個校驗塊,并基于預(yù)設(shè)校驗算法,向所增加的校驗塊中寫入校驗數(shù)據(jù);更新所述塊條帶冗余度標識表中的塊條帶冗余度;重復(fù)本步驟,不斷對各個塊條帶增加冗余度,改變各個塊條帶的RAID級別;
      [0033]所述虛擬磁盤降低塊條帶冗余度的操作:
      [0034]如果當(dāng)前所述存儲池的空閑磁盤塊數(shù)量低于設(shè)定值,則按優(yōu)先級從低到高順序分別對各個塊條帶回收一個校驗塊,降低塊條帶的冗余級別;更新所述塊條帶冗余度標識表中的塊條帶冗余度標識;然后,在存儲池的所述磁盤塊分配表標識所回收的所述校驗塊為自由狀態(tài),使其可作為數(shù)據(jù)塊使用。
      [0035]優(yōu)選的,S2中,h為整數(shù),且h> = O且h〈 = 5。
      [0036]優(yōu)選的,S2中,M為整數(shù)且0〈 = M〈 = 5。
      [0037]優(yōu)選的,所述優(yōu)先級冗余策略包括:
      [0038]基于預(yù)定義的虛擬磁盤安全級別Vs,虛擬磁盤安全級別越高,則表明虛擬磁盤的重要度越高,則其優(yōu)先級別越高;
      [0039]各個塊條帶所存儲的具體數(shù)據(jù)的重要度,即:所存儲的具體數(shù)據(jù)越重要,其優(yōu)先級別越聞;
      [0040]各個塊條帶最后執(zhí)行存儲操作的時間,即:最后執(zhí)行存儲操作的時間離當(dāng)前時間的時間間隔越小,其優(yōu)先級別越高。
      [0041]優(yōu)選的,S4.2中,所述預(yù)設(shè)校驗算法為基于Reed-solomon算法設(shè)計的多元一次方程組原理,即:在該方程組的解為唯一的情況下,即可增加多級校驗。
      [0042]本發(fā)明還提供一種可動態(tài)異步調(diào)整RAID級別的存儲系統(tǒng),包括:
      [0043]分割模塊,用于對由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊;
      [0044]編號模塊,用于對每一個所述磁盤塊進行編號,該編號由物理磁盤號PN和磁盤塊號BN聯(lián)合組成,記為PN: BN;
      [0045]存儲池定義模塊,用于定義存儲池,所述存儲池具有磁盤塊分配表和塊條帶冗余度標識表;其中,所述塊條帶冗余度標識表用于記錄每個塊條帶的冗余度;
      [0046]虛擬磁盤定義模塊,用于在所述存儲池中定義由η行m列個磁盤塊組成的虛擬磁盤,每一行的所有磁盤塊形成一個磁盤塊條帶,簡稱為塊條帶;并約定所述塊條帶符合如下2個條件:
      [0047]條件1、每個塊條帶中,具有相同物理磁盤號PN的磁盤塊僅允許出現(xiàn)一次;
      [0048]條件2、每個塊條帶具有的磁盤塊數(shù)量需滿足在創(chuàng)建所述虛擬磁盤時所設(shè)定的最少磁盤塊數(shù)量;
      [0049]還定義或默認定義所述虛擬磁盤的數(shù)據(jù)冗余級別,該數(shù)據(jù)冗余級別由如下4個參數(shù)決定:
      [0050]a、每個塊條帶中的存儲真正數(shù)據(jù)的磁盤塊數(shù)量:m-h ;其中,將存儲真正數(shù)據(jù)的磁盤塊簡稱為數(shù)據(jù)塊;
      [0051]b、每個塊條帶中的存儲校驗值的磁盤塊數(shù)量:h ;其中,將存儲校驗值的磁盤塊簡稱為校驗塊;
      [0052]C、每個塊條帶中允許增強的校驗塊數(shù)量:M ;
      [0053]d、虛擬磁盤安全級別:Vs ;
      [0054]數(shù)據(jù)塊數(shù)量初始值以校驗塊數(shù)量初始值設(shè)置模塊,對于任意一個原始塊條帶i均由m個磁盤塊組成,按自左向右的順序,分別記為:磁盤塊1-Ι、磁盤塊i_2..,磁盤塊1-m ;并且,所述原始塊條帶的m個磁盤塊均為在線磁盤塊;每一個所述原始塊條帶具有的m個磁盤塊中,配置h個用于存儲校驗值的校驗塊,其他m-h個磁盤塊為用于存儲真正數(shù)據(jù)的數(shù)據(jù)塊;其中,O彡h < m,h為自然數(shù);
      [0055]1監(jiān)控模塊,用于監(jiān)控1模塊的空閑狀態(tài);
      [0056]塊條帶冗余度增加模塊,用于當(dāng)所述1監(jiān)控模塊監(jiān)控到1模塊空閑時,且滿足以下條件:當(dāng)前所述存儲池的空閑磁盤塊數(shù)量超過設(shè)定值;并且,存在校驗塊數(shù)量小于最大數(shù)量M的第一塊條帶集;
      [0057]則:基于優(yōu)先級冗余策略,按優(yōu)先級從高到低順序分別對所述第一塊條帶集中的各個塊條帶增加一個級別的冗余處理,即:為所獲取的塊條帶增加一個校驗塊,并基于預(yù)設(shè)校驗算法,向所增加的校驗塊中寫入校驗數(shù)據(jù);更新所述塊條帶冗余度標識表中的塊條帶冗余度;重復(fù)本步驟,不斷對各個塊條帶增加冗余度,改變各個塊條帶的RAID級別;
      [0058]塊條帶冗余度降低模塊,用于當(dāng)所述1監(jiān)控模塊監(jiān)控到1模塊空閑時,且當(dāng)前所述存儲池的空閑磁盤塊數(shù)量低于設(shè)定值,則按優(yōu)先級從低到高順序分別對各個塊條帶回收一個校驗塊,降低塊條帶的冗余級別;更新所述塊條帶冗余度標識表中的塊條帶冗余度標識;然后,在存儲池的所述磁盤塊分配表標識所回收的所述校驗塊為自由狀態(tài),使其可作為數(shù)據(jù)塊使用。
      [0059]本發(fā)明的有益效果如下:
      [0060]本發(fā)明提供的可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng),采用后臺模式增加或降低各個塊條帶的冗余度,有不影響在線數(shù)據(jù)存儲速度的前提下,還利用空閑1和空閑空間,從而提升安全級別,更適用于應(yīng)用于云存儲和集中化存儲的大規(guī)模應(yīng)用場合。另夕卜,本發(fā)明中,每個塊條帶的RAID級別可進行動態(tài)調(diào)整,并且,各個塊條帶的RAID級別可不相同,提高了存儲系統(tǒng)冗余級別調(diào)整的靈活性,更能滿足用戶存儲需求。

      【專利附圖】

      【附圖說明】
      [0061]圖1為本發(fā)明提供的可動態(tài)異步調(diào)整RAID級別的存儲方法的原理示意圖;
      [0062]圖2為本發(fā)明提供的可動態(tài)異步調(diào)整RAID級別的存儲系統(tǒng)的結(jié)構(gòu)示意圖。

      【具體實施方式】
      [0063]以下結(jié)合附圖對本發(fā)明進行詳細說明:
      [0064]本發(fā)明提供一種可動態(tài)異步調(diào)整RAID級別的存儲方法,如圖1所示,為用于說明本發(fā)明存儲方法的原理示意圖,包括以下步驟:
      [0065]SI,對于由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊;
      [0066]對每一個所述磁盤塊進行編號,該編號由物理磁盤號PN和磁盤塊號BN聯(lián)合組成,記為PNiBN ;
      [0067]參考圖1,共有6個物理磁盤,每一個物理磁盤均被分割為4個磁盤塊,因此,對于第I個物理磁盤,物理磁盤號PN為PD_A,磁盤塊號BN分別為O、1、2和3,因此,磁盤塊編號分別為:PD_A0、PD_A1、PD_A2和PD_A3 ;同樣,對于第2個物理磁盤,物理磁盤號PN為Η)_B,磁盤塊號BN分別為0、1、2和3,因此,磁盤塊編號分別為:PD_B0、PD_B1、PD_B2和PD_B3 ;對于第3-6個物理磁盤,物理磁盤號PN分別為PD_C、PD_D.PD_E.PD_F,每一個磁盤塊號BN均為0、1、2和3,具體的磁盤塊編號不再贅述。
      [0068]然后,定義存儲池,所述存儲池具有磁盤塊分配表和塊條帶冗余度標識表;其中,所述塊條帶冗余度標識表用于記錄每個塊條帶的冗余度;
      [0069]將所有的已編號后的磁盤塊存入已定義的所述存儲池中;
      [0070]S2,在所述存儲池中定義SnRm列個磁盤塊組成的虛擬磁盤,每一行的所有磁盤塊形成一個磁盤塊條帶,簡稱為塊條帶;并約定所述塊條帶符合如下2個條件:
      [0071]條件1、每個塊條帶中,具有相同物理磁盤號PN的磁盤塊僅允許出現(xiàn)一次;
      [0072]也就是說,每個塊條帶中所有的磁盤塊編號(PN:BN)的集合中,不同的PN僅允許出現(xiàn)一次,即每個塊條帶中不允許有相同的物理磁盤的不同磁盤塊出現(xiàn)。例如,如圖1,在塊條帶I中,共有5個磁盤塊,其編號分別為:PD_A2、PD_B0、PD_C3、PD_D2和PD_E3,分別來自于5個不同的物理磁盤;再例如,對于PD_A0、PD_A1、PD_A2和PD_A3這4個磁盤塊,均來自于物理磁盤PD_A,因此,這4個磁盤塊中,當(dāng)任意一個磁盤塊出現(xiàn)在條帶I時,其他3個磁盤塊均不允許出現(xiàn)在條帶I中。
      [0073]條件2、每個塊條帶具有的磁盤塊數(shù)量需滿足在創(chuàng)建所述虛擬磁盤時所設(shè)定的最少磁盤塊數(shù)量;
      [0074]另外,在創(chuàng)建所述虛擬磁盤時,定義或默認定義所述虛擬磁盤的數(shù)據(jù)冗余級別,該數(shù)據(jù)冗余級別由如下4個參數(shù)決定:
      [0075]a、每個塊條帶中的存儲真正數(shù)據(jù)的磁盤塊數(shù)量:m-h ;其中,將存儲真正數(shù)據(jù)的磁盤塊簡稱為數(shù)據(jù)塊;
      [0076]b、每個塊條帶中的存儲校驗值的磁盤塊數(shù)量:h ;其中,將存儲校驗值的磁盤塊簡稱為校驗塊;
      [0077]C、每個塊條帶中允許增強的校驗塊數(shù)量:M ;
      [0078]d、虛擬磁盤安全級別:Vs ;
      [0079]實際應(yīng)用中,h為整數(shù),且h> = O且h〈 = 5,即h = 0、1、2、3、4或5。現(xiàn)有技術(shù)中的RAID級別,每個塊條帶包括的校驗塊數(shù)量的最大值為3,本發(fā)明中,每個塊條帶包括的校驗塊數(shù)量的最大值為5,比現(xiàn)有技術(shù)增加一個冗余度。M為整數(shù)且0〈 = M〈 = 5,即M = O、1、2、3、4或5,也就是說,根據(jù)實際需要,每個塊條帶既可不包含校驗塊數(shù)量,即為RAIDO級另O,也可以最多支持5個校驗塊,也就是說,每個塊條帶的冗余度變化范圍非常大。
      [0080]S3,設(shè)按自上而下順序共有η個原始塊條帶,分別記為:原始塊條帶1、原始塊條帶2…原始塊條帶η ;
      [0081]設(shè)任意一個原始塊條帶i均由m個磁盤塊組成,按自左向右的順序,分別記為:磁盤塊i_l、磁盤塊i_2..,磁盤塊1-m ;并且,所述原始塊條帶的m個磁盤塊均為在線磁盤塊;每一個所述原始塊條帶具有的m個磁盤塊中,配置h個用于存儲校驗值的校驗塊,其他m-h個磁盤塊為用于存儲真正數(shù)據(jù)的數(shù)據(jù)塊;其中,O < h < m,h為自然數(shù);
      [0082]參考圖1,初始化時,共生成4個原始塊條帶,分別為原始塊條帶1、原始塊條帶2、原始塊條帶3和原始塊條帶4 ;并且,在初始時,每個原始塊條帶所包含的數(shù)據(jù)塊數(shù)量均相等,例如,每個原始塊條帶均包括4個數(shù)據(jù)塊;然后,每個原始塊條帶可均不包括校驗塊,即為4+0在線數(shù)據(jù)模式;也可以均包括I個校驗塊,為4+1在線數(shù)據(jù)模式,類推的,也可以設(shè)計為4+2在線數(shù)據(jù)模式或4+3在線數(shù)據(jù)模式。初始時,每個原始塊條帶所包含的磁盤塊均為在線磁盤塊,另外,每個原始塊條帶的冗余度(即包含的校驗塊數(shù)量)根據(jù)實際需求設(shè)置,所設(shè)置的校驗塊數(shù)量越少,冗余度越低,但空間利用率越高;相反,所設(shè)置的校驗塊數(shù)量越多,冗余度越多,但空間利用率越低。因此,根據(jù)需求,在空間利用率和冗余度之間找到最佳的設(shè)置校驗塊的數(shù)量即可。
      [0083]S4,當(dāng)進行寫操作時,RAID控制器接收待寫入虛擬磁盤的數(shù)據(jù),根據(jù)數(shù)據(jù)在虛擬磁盤中的偏移地址和數(shù)據(jù)的容量大小,通過虛擬磁盤的結(jié)構(gòu)定義,將所述數(shù)據(jù)分段,再計算分段后的數(shù)據(jù)需要寫入的數(shù)據(jù)塊的塊地址以及校驗塊的塊地址;然后,向計算后得到的數(shù)據(jù)塊地址寫入分段后的數(shù)據(jù),向計算后得到的校驗塊地址寫入校驗數(shù)據(jù),返回寫成功;
      [0084]當(dāng)進行讀操作時,將所述虛擬磁盤的空間地址和大小轉(zhuǎn)換后,由并行線程進行讀取、匯總,即可讀出數(shù)據(jù);
      [0085]S4,具體包括:
      [0086]S4.1,RAID控制器監(jiān)控1模塊的空閑狀態(tài),當(dāng)監(jiān)控到1模塊空閑時,執(zhí)行S4.2 ;
      [0087]S4.2,所述虛擬磁盤增加塊條帶冗余度的操作:
      [0088]如果同時滿足以下條件:
      [0089]當(dāng)前所述存儲池的空閑磁盤塊數(shù)量超過設(shè)定值;并且,存在校驗塊數(shù)量小于最大數(shù)量M的第一塊條帶集;
      [0090]則:所述虛擬磁盤基于優(yōu)先級冗余策略,按優(yōu)先級從高到低順序分別對所述第一塊條帶集中的各個塊條帶增加一個級別的冗余處理,即:為所獲取的塊條帶增加一個校驗塊,并基于預(yù)設(shè)校驗算法,向所增加的校驗塊中寫入校驗數(shù)據(jù);更新所述塊條帶冗余度標識表中的塊條帶冗余度;重復(fù)本步驟,不斷對各個塊條帶增加冗余度,改變各個塊條帶的RAID級別;通過本步驟,由于按優(yōu)先級先后順序增加各個塊條帶的冗余度,因此,在某一時刻,各個塊條帶的冗余度是不相同的,由此實現(xiàn)動態(tài)改變各個塊條帶冗余級別的效果。
      [0091]其中,優(yōu)先級冗余策略包括但不限于以下幾種策略:(1)基于預(yù)定義的虛擬磁盤安全級別Vs,虛擬磁盤安全級別越高,則表明虛擬磁盤的重要度越高,則其優(yōu)先級別越高;
      (2)各個塊條帶所存儲的具體數(shù)據(jù)的重要度,即:所存儲的具體數(shù)據(jù)越重要,其優(yōu)先級別越高;(3)各個塊條帶最后執(zhí)行存儲操作的時間,即:最后執(zhí)行存儲操作的時間離當(dāng)前時間的時間間隔越小,其優(yōu)先級別越高。
      [0092]其中,預(yù)設(shè)校驗算法可以為基于Reed-solomon算法設(shè)計的多元一次方程組原理,即:在該方程組的解為唯一的情況下,即可增加多級校驗。
      [0093]所述虛擬磁盤降低塊條帶冗余度的操作:
      [0094]如果當(dāng)前所述存儲池的空閑磁盤塊數(shù)量低于設(shè)定值,則按優(yōu)先級從低到高順序分別對各個塊條帶回收一個校驗塊,降低塊條帶的冗余級別;更新所述塊條帶冗余度標識表中的塊條帶冗余度標識;然后,在存儲池的所述磁盤塊分配表標識所回收的所述校驗塊為自由狀態(tài),使其可作為數(shù)據(jù)塊使用。
      [0095]通過本步驟,由于按優(yōu)先級先后順序降低各個塊條帶的冗余度,因此,在某一時刻,各個塊條帶的冗余度是不相同的,由此實現(xiàn)動態(tài)改變各個塊條帶冗余級別的效果。
      [0096]例如,在初始時,生成4+1在線數(shù)據(jù)模式,即,初始生成的每一個塊條帶均為RAIDl級別,包括4個數(shù)據(jù)塊和I個校驗塊,通過低級別的RAID進行實時在線保護,保證了數(shù)據(jù)讀取速度;然后,當(dāng)1空閑且有空閑空間時,對每個塊條帶動態(tài)增加I個冗余度,即增加I個校驗塊,從而增加存儲系統(tǒng)的安全級別;如果存儲空間允許,再不斷增加校驗塊,每擴增一個校驗塊,即增加了存儲系統(tǒng)的一個安全級別,并且,不同條帶支持的冗余級別不同;當(dāng)1空閑且空閑空間不夠時,對每個塊條帶動態(tài)降低冗余度,從而釋放可用空間。
      [0097]由此可見,本發(fā)明中,首先通過在線模式生成初始虛擬磁盤,然后,在1空閑時,采用后臺模式增加或降低冗余度,由于增加或降低冗余度的操作是在后臺進行的,不需要占用在線模式時的1資源,因此,為一種異步模式;另外,本發(fā)明中,每個塊條帶的RAID級別可均不相同,并可進行動態(tài)調(diào)整,允許用戶根據(jù)實際需要,優(yōu)先將某個特定的塊條帶增加冗余度,從而提高了存儲系統(tǒng)冗余級別調(diào)整的靈活性,更能滿足用戶存儲需求。因此,本發(fā)明提供的可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng),在不影響數(shù)據(jù)存取速度的前提下,充分利用空閑1和空閑空間,從而提升安全級別,更適用于應(yīng)用于云存儲和集中化存儲的大規(guī)模應(yīng)用場合。
      [0098]如圖2所示,本發(fā)明還提供一種可動態(tài)異步調(diào)整RAID級別的存儲系統(tǒng),包括:
      [0099]分割模塊,用于對由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊;
      [0100]編號模塊,用于對每一個所述磁盤塊進行編號,該編號由物理磁盤號PN和磁盤塊號BN聯(lián)合組成,記為PN: BN;
      [0101]存儲池定義模塊,用于定義存儲池,所述存儲池具有磁盤塊分配表和塊條帶冗余度標識表;其中,所述塊條帶冗余度標識表用于記錄每個塊條帶的冗余度;
      [0102]虛擬磁盤定義模塊,用于在所述存儲池中定義由η行m列個磁盤塊組成的虛擬磁盤,每一行的所有磁盤塊形成一個磁盤塊條帶,簡稱為塊條帶;并約定所述塊條帶符合如下2個條件:
      [0103]條件1、每個塊條帶中,具有相同物理磁盤號PN的磁盤塊僅允許出現(xiàn)一次;
      [0104]條件2、每個塊條帶具有的磁盤塊數(shù)量需滿足在創(chuàng)建所述虛擬磁盤時所設(shè)定的最少磁盤塊數(shù)量;
      [0105]還定義或默認定義所述虛擬磁盤的數(shù)據(jù)冗余級別,該數(shù)據(jù)冗余級別由如下4個參數(shù)決定:
      [0106]a、每個塊條帶中的存儲真正數(shù)據(jù)的磁盤塊數(shù)量:m_h ;其中,將存儲真正數(shù)據(jù)的磁盤塊簡稱為數(shù)據(jù)塊;
      [0107]b、每個塊條帶中的存儲校驗值的磁盤塊數(shù)量:h ;其中,將存儲校驗值的磁盤塊簡稱為校驗塊;
      [0108]C、每個塊條帶中允許增強的校驗塊數(shù)量:M ;
      [0109]d、虛擬磁盤安全級別:Vs ;
      [0110]數(shù)據(jù)塊數(shù)量初始值以校驗塊數(shù)量初始值設(shè)置模塊,對于任意一個原始塊條帶i均由m個磁盤塊組成,按自左向右的順序,分別記為:磁盤塊1-Ι、磁盤塊i_2..,磁盤塊1-m ;并且,所述原始塊條帶的m個磁盤塊均為在線磁盤塊;每一個所述原始塊條帶具有的m個磁盤塊中,配置h個用于存儲校驗值的校驗塊,其他m-h個磁盤塊為用于存儲真正數(shù)據(jù)的數(shù)據(jù)塊;其中,O彡h < m,h為自然數(shù);
      [0111]1監(jiān)控模塊,用于監(jiān)控1模塊的空閑狀態(tài);
      [0112]塊條帶冗余度增加模塊,用于當(dāng)所述1監(jiān)控模塊監(jiān)控到1模塊空閑時,且滿足以下條件:當(dāng)前所述存儲池的空閑磁盤塊數(shù)量超過設(shè)定值;并且,存在校驗塊數(shù)量小于最大數(shù)量M的第一塊條帶集;
      [0113]則:基于優(yōu)先級冗余策略,按優(yōu)先級從高到低順序分別對所述第一塊條帶集中的各個塊條帶增加一個級別的冗余處理,即:為所獲取的塊條帶增加一個校驗塊,并基于預(yù)設(shè)校驗算法,向所增加的校驗塊中寫入校驗數(shù)據(jù);更新所述塊條帶冗余度標識表中的塊條帶冗余度;重復(fù)本步驟,不斷對各個塊條帶增加冗余度,改變各個塊條帶的RAID級別;
      [0114]塊條帶冗余度降低模塊,用于當(dāng)所述1監(jiān)控模塊監(jiān)控到1模塊空閑時,且當(dāng)前所述存儲池的空閑磁盤塊數(shù)量低于設(shè)定值,則按優(yōu)先級從低到高順序分別對各個塊條帶回收一個校驗塊,降低塊條帶的冗余級別;更新所述塊條帶冗余度標識表中的塊條帶冗余度標識;然后,在存儲池的所述磁盤塊分配表標識所回收的所述校驗塊為自由狀態(tài),使其可作為數(shù)據(jù)塊使用。
      [0115]綜上所述,本發(fā)明提供的可動態(tài)異步調(diào)整RAID級別的存儲方法及存儲系統(tǒng),在空間利用率和存取性能上找到最佳點,在不影響數(shù)據(jù)存取速度的前提下,充分利用好存儲的空閑1和空閑空間,從而提升安全級別。
      [0116]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視本發(fā)明的保護范圍。
      【權(quán)利要求】
      1.一種可動態(tài)異步調(diào)整RAID級別的存儲方法,其特征在于,包括以下步驟: SI,對于由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊; 對每一個所述磁盤塊進行編號,該編號由物理磁盤號PN和磁盤塊號BN聯(lián)合組成,記為PN:BN ; 然后,定義存儲池,所述存儲池具有磁盤塊分配表和塊條帶冗余度標識表;其中,所述塊條帶冗余度標識表用于記錄每個塊條帶的冗余度; 將所有的已編號后的磁盤塊存入已定義的所述存儲池中; S2,在所述存儲池中定義SnRm列個磁盤塊組成的虛擬磁盤,每一行的所有磁盤塊形成一個磁盤塊條帶,簡稱為塊條帶;并約定所述塊條帶符合如下2個條件: 條件1、每個塊條帶中,具有相同物理磁盤號PN的磁盤塊僅允許出現(xiàn)一次; 條件2、每個塊條帶具有的磁盤塊數(shù)量需滿足在創(chuàng)建所述虛擬磁盤時所設(shè)定的最少磁盤塊數(shù)量; 另外,在創(chuàng)建所述虛擬磁盤時,定義或默認定義所述虛擬磁盤的數(shù)據(jù)冗余級別,該數(shù)據(jù)冗余級別由如下4個參數(shù)決定: a、每個塊條帶中的存儲真正數(shù)據(jù)的磁盤塊數(shù)量:m-h;其中,將存儲真正數(shù)據(jù)的磁盤塊簡稱為數(shù)據(jù)塊; b、每個塊條帶中的存儲校驗值的磁盤塊數(shù)量:h;其中,將存儲校驗值的磁盤塊簡稱為校驗塊; C、每個塊條帶中允許增強的校驗塊數(shù)量:M ; d、虛擬磁盤安全級別:Vs ; S3,設(shè)按自上而下順序共有η個原始塊條帶,分別記為:原始塊條帶1、原始塊條帶2...原始塊條帶η ; 設(shè)任意一個原始塊條帶i均由m個磁盤塊組成,按自左向右的順序,分別記為:磁盤塊1-Ι、磁盤塊i_2..,磁盤塊1-m ;并且,所述原始塊條帶的m個磁盤塊均為在線磁盤塊;每一個所述原始塊條帶具有的m個磁盤塊中,配置h個用于存儲校驗值的校驗塊,其他m-h個磁盤塊為用于存儲真正數(shù)據(jù)的數(shù)據(jù)塊;其中,O < h < m,h為自然數(shù); S4,當(dāng)進行寫操作時,RAID控制器接收待寫入虛擬磁盤的數(shù)據(jù),根據(jù)數(shù)據(jù)在虛擬磁盤中的偏移地址和數(shù)據(jù)的容量大小,通過虛擬磁盤的結(jié)構(gòu)定義,將所述數(shù)據(jù)分段,再計算分段后的數(shù)據(jù)需要寫入的數(shù)據(jù)塊的塊地址以及校驗塊的塊地址;然后,向計算后得到的數(shù)據(jù)塊地址寫入分段后的數(shù)據(jù),向計算后得到的校驗塊地址寫入校驗數(shù)據(jù),返回寫成功; 當(dāng)進行讀操作時,將所述虛擬磁盤的空間地址和大小轉(zhuǎn)換后,由并行線程進行讀取、匯總,即可讀出數(shù)據(jù); S4,具體包括: S4.1,RAID控制器監(jiān)控1模塊的空閑狀態(tài),當(dāng)監(jiān)控到1模塊空閑時,執(zhí)行S4.2 ; S4.2,所述虛擬磁盤增加塊條帶冗余度的操作: 如果同時滿足以下條件: 當(dāng)前所述存儲池的空閑磁盤塊數(shù)量超過設(shè)定值;并且,存在校驗塊數(shù)量小于最大數(shù)量M的第一塊條帶集; 則:所述虛擬磁盤基于優(yōu)先級冗余策略,按優(yōu)先級從高到低順序分別對所述第一塊條帶集中的各個塊條帶增加一個級別的冗余處理,即:為所獲取的塊條帶增加一個校驗塊,并基于預(yù)設(shè)校驗算法,向所增加的校驗塊中寫入校驗數(shù)據(jù);更新所述塊條帶冗余度標識表中的塊條帶冗余度;重復(fù)本步驟,不斷對各個塊條帶增加冗余度,改變各個塊條帶的RAID級別; 所述虛擬磁盤降低塊條帶冗余度的操作: 如果當(dāng)前所述存儲池的空閑磁盤塊數(shù)量低于設(shè)定值,則按優(yōu)先級從低到高順序分別對各個塊條帶回收一個校驗塊,降低塊條帶的冗余級別;更新所述塊條帶冗余度標識表中的塊條帶冗余度標識;然后,在存儲池的所述磁盤塊分配表標識所回收的所述校驗塊為自由狀態(tài),使其可作為數(shù)據(jù)塊使用。
      2.根據(jù)權(quán)利要求1所述的可動態(tài)異步調(diào)整RAID級別的存儲方法,其特征在于,S2中,h為整數(shù),且h> = O且h〈 = 5。
      3.根據(jù)權(quán)利要求1所述的可動態(tài)異步調(diào)整RAID級別的存儲方法,其特征在于,S2中,M為整數(shù)且0〈 = M〈 = 5。
      4.根據(jù)權(quán)利要求1所述的可動態(tài)異步調(diào)整RAID級別的存儲方法,其特征在于,所述優(yōu)先級冗余策略包括: 基于預(yù)定義的虛擬磁盤安全級別Vs,虛擬磁盤安全級別越高,則表明虛擬磁盤的重要度越高,則其優(yōu)先級別越高; 各個塊條帶所存儲的具體數(shù)據(jù)的重要度,即:所存儲的具體數(shù)據(jù)越重要,其優(yōu)先級別越聞; 各個塊條帶最后執(zhí)行存儲操作的時間,即:最后執(zhí)行存儲操作的時間離當(dāng)前時間的時間間隔越小,其優(yōu)先級別越高。
      5.根據(jù)權(quán)利要求1所述的可動態(tài)異步調(diào)整RAID級別的存儲方法,其特征在于,S4.2中,所述預(yù)設(shè)校驗算法為基于Reed-solomon算法設(shè)計的多元一次方程組原理,即:在該方程組的解為唯一的情況下,即可增加多級校驗。
      6.一種可動態(tài)異步調(diào)整RAID級別的存儲系統(tǒng),其特征在于,包括: 分割模塊,用于對由多個物理磁盤組成的磁盤陣列,將每一個物理磁盤進行分割處理,由此得到多個磁盤塊; 編號模塊,用于對每一個所述磁盤塊進行編號,該編號由物理磁盤號PN和磁盤塊號BN聯(lián)合組成,記為PN: BN; 存儲池定義模塊,用于定義存儲池,所述存儲池具有磁盤塊分配表和塊條帶冗余度標識表;其中,所述塊條帶冗余度標識表用于記錄每個塊條帶的冗余度; 虛擬磁盤定義模塊,用于在所述存儲池中定義由η行m列個磁盤塊組成的虛擬磁盤,每一行的所有磁盤塊形成一個磁盤塊條帶,簡稱為塊條帶;并約定所述塊條帶符合如下2個條件: 條件1、每個塊條帶中,具有相同物理磁盤號PN的磁盤塊僅允許出現(xiàn)一次; 條件2、每個塊條帶具有的磁盤塊數(shù)量需滿足在創(chuàng)建所述虛擬磁盤時所設(shè)定的最少磁盤塊數(shù)量; 還定義或默認定義所述虛擬磁盤的數(shù)據(jù)冗余級別,該數(shù)據(jù)冗余級別由如下4個參數(shù)決定: a、每個塊條帶中的存儲真正數(shù)據(jù)的磁盤塊數(shù)量:m-h;其中,將存儲真正數(shù)據(jù)的磁盤塊簡稱為數(shù)據(jù)塊; b、每個塊條帶中的存儲校驗值的磁盤塊數(shù)量:h;其中,將存儲校驗值的磁盤塊簡稱為校驗塊; C、每個塊條帶中允許增強的校驗塊數(shù)量:M ; d、虛擬磁盤安全級別:Vs ; 數(shù)據(jù)塊數(shù)量初始值以校驗塊數(shù)量初始值設(shè)置模塊,對于任意一個原始塊條帶i均由m個磁盤塊組成,按自左向右的順序,分別記為:磁盤塊i_l、磁盤塊i_2..,磁盤塊1-m;并且,所述原始塊條帶的m個磁盤塊均為在線磁盤塊;每一個所述原始塊條帶具有的m個磁盤塊中,配置h個用于存儲校驗值的校驗塊,其他m-h個磁盤塊為用于存儲真正數(shù)據(jù)的數(shù)據(jù)塊;其中,O彡h < m,h為自然數(shù); 1監(jiān)控模塊,用于監(jiān)控1模塊的空閑狀態(tài); 塊條帶冗余度增加模塊,用于當(dāng)所述1監(jiān)控模塊監(jiān)控到1模塊空閑時,且滿足以下條件:當(dāng)前所述存儲池的空閑磁盤塊數(shù)量超過設(shè)定值;并且,存在校驗塊數(shù)量小于最大數(shù)量M的第一塊條帶集; 則:基于優(yōu)先級冗余策略,按優(yōu)先級從高到低順序分別對所述第一塊條帶集中的各個塊條帶增加一個級別的冗余處理,即:為所獲取的塊條帶增加一個校驗塊,并基于預(yù)設(shè)校驗算法,向所增加的校驗塊中寫入校驗數(shù)據(jù);更新所述塊條帶冗余度標識表中的塊條帶冗余度;重復(fù)本步驟,不斷對各個塊條帶增加冗余度,改變各個塊條帶的RAID級別; 塊條帶冗余度降低模塊,用于當(dāng)所述1監(jiān)控模塊監(jiān)控到1模塊空閑時,且當(dāng)前所述存儲池的空閑磁盤塊數(shù)量低于設(shè)定值,則按優(yōu)先級從低到高順序分別對各個塊條帶回收一個校驗塊,降低塊條帶的冗余級別;更新所述塊條帶冗余度標識表中的塊條帶冗余度標識;然后,在存儲池的所述磁盤塊分配表標識所回收的所述校驗塊為自由狀態(tài),使其可作為數(shù)據(jù)塊使用。
      【文檔編號】G06F3/06GK104267913SQ201410559584
      【公開日】2015年1月7日 申請日期:2014年10月20日 優(yōu)先權(quán)日:2014年10月20日
      【發(fā)明者】張宇 申請人:北京北亞時代科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1