數(shù)據(jù)重建的方法及裝置的制造方法
【專利摘要】本申請公開一種數(shù)據(jù)重建的方法及裝置,所述方法包括:確定熱備VD的個數(shù)T,所述熱備VD是所述正常磁盤上未參與VDG重建的熱備VD;從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S;所述T和S均為大于0的自然數(shù),且S小于T;由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將所述擴容磁盤上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D;由所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。應(yīng)用上述方法可以使得新加入的擴容磁盤可以更多地參與到重建過程,從而提高數(shù)據(jù)重建的效率,同時還可以縮短重建后的均衡時間。
【專利說明】
數(shù)據(jù)重建的方法及裝置
技術(shù)領(lǐng)域
[0001 ]本申請設(shè)及數(shù)據(jù)存儲技術(shù)領(lǐng)域,尤其設(shè)及數(shù)據(jù)重建的方法及裝置。
【背景技術(shù)】
[0002] 隨著科學(xué)技術(shù)的飛速發(fā)展和計算機技術(shù)的普遍應(yīng)用,人們對存儲設(shè)備的性能要求 越來越高。作為一項成熟的技術(shù),RAID(Redundant Arrays of Ind邱endent Disks,獨立磁 盤冗余陣列)技術(shù)已經(jīng)被廣泛應(yīng)用于數(shù)據(jù)存儲的各種場合。RAID技術(shù)是用多個PD(Physical Disk,物理磁盤)構(gòu)建一個存儲池,每個PD劃分成多塊VD(Virtual Disk,虛擬磁盤),由多塊 VD按照相應(yīng)的RAID策略組建成VDG(Vbtual Disk Group,虛擬磁盤組),向上層客戶端提供 邏輯資源進行讀寫。
[0003] 在存儲池塊虛擬化結(jié)構(gòu)下,當(dāng)某個PD失效時,為了防止其他PD也失效而導(dǎo)致上層 業(yè)務(wù)受到影響,W及防止因為PD失效而導(dǎo)致存儲容量變小,通常需要及時加入新的PD進行 擴容。而在擴容后,將進行VDG重建。
[0004] 現(xiàn)有技術(shù)中,在VDG重建過程中,若在原有PD上可W申請到足夠的熱備VD,那么擴 容進去的新的P明尋較少的參與到重建過程,允許同時重建的VDG的數(shù)量較少,從而導(dǎo)致重建 過程所耗費的時間較長,另外,在重建完成后,才可W對所有PD(包括原有PD和擴容進去的 新的PD)的利用率進行均衡,由于新的PD在重建過程中基本未參加任何讀寫操作,重建后新 的PD與原有PD的利用率差別較大,從而導(dǎo)致均衡時間也較長。
【發(fā)明內(nèi)容】
[0005] 為克服相關(guān)技術(shù)中存在的問題,本申請?zhí)峁┝藬?shù)據(jù)重建的方法及裝置,W實現(xiàn)新 加入的擴容磁盤可W更多地參與到重建過程,從而提高數(shù)據(jù)重建的效率,同時還可W縮短 重建后的均衡時間。
[0006] 根據(jù)本申請的第一方面,提供一種數(shù)據(jù)重建的方法,所述方法應(yīng)用于當(dāng)存儲池中 的原有磁盤中出現(xiàn)故障磁盤時,在存儲池中加入擴容磁盤,進行數(shù)據(jù)重建;其中,原有磁盤 中的正常磁盤上所包括的熱備VD的數(shù)量不低于所述故障磁盤上已存儲數(shù)據(jù)的VD的數(shù)量,所 述方法包括:
[0007] 確定熱備VD的個數(shù)T,所述熱備VD是所述正常磁盤上未參與VDG重建的熱備VD;
[000引從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S;所述T和S均為大于0 的自然數(shù),且S小于T;
[0009] 由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將所述擴容磁盤上的S個空 閑VD轉(zhuǎn)變?yōu)闊醾銿D;
[0010] 由所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。
[0011] 作為改進,所述從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S,包 括:
[0012] 確定所述正常磁盤與所述擴容磁盤的總數(shù)量;
[0013] 根據(jù)所述總數(shù)量確定單位磁盤VD數(shù)量,所述單位磁盤VD數(shù)量是所述Τ個熱備VD在 所述正常磁盤和擴容磁盤上平均分配時,每個磁盤上熱備VD的數(shù)量;
[0014] 根據(jù)所述單位磁盤VD數(shù)量與所述擴容磁盤的數(shù)量,得到待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD 的個數(shù)S。
[0015] 作為改進,所述由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,包括:
[0016] 若所述S能被N整除,且商為K,則從每個所述正常磁盤上選擇K個熱備VD轉(zhuǎn)變?yōu)榭?閑VD,所述N為所述正常磁盤的數(shù)量;
[0017] 若所述S不能被N整除,且商為K,則從(S-K*N)個所述正常磁盤上分別選擇K+1個熱 備VD轉(zhuǎn)變?yōu)榭臻eVD,從剩余的所述正常磁盤上分別選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0018] 作為改進,當(dāng)從所述正常磁盤上選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD時,從所述 正常磁盤上隨機選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0019] 作為改進,當(dāng)所述擴容磁盤的數(shù)量大于1個時,所述將擴容磁盤上的S個空閑VD轉(zhuǎn) 變?yōu)闊醾銿D,包括:
[0020] 按照預(yù)先設(shè)定的擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾?VD,若將每個擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D后,擴容磁盤上熱備VD的總數(shù)量仍小 于S,則繼續(xù)按照所述擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,直 至總共將S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D。
[0021] 根據(jù)本申請的第二方面,提供一種數(shù)據(jù)重建的裝置,所述裝置應(yīng)用于當(dāng)存儲池中 的原有磁盤中出現(xiàn)故障磁盤時,在存儲池中加入擴容磁盤,進行數(shù)據(jù)重建;其中,原有磁盤 中的正常磁盤上所包括的熱備VD的數(shù)量不低于所述故障磁盤上已存儲數(shù)據(jù)的VD的數(shù)量,所 述裝置包括:
[0022] 第一確定模塊,用于確定熱備VD的個數(shù)T,所述熱備VD是所述正常磁盤上未參與 VDG重建的熱備VD;
[0023] 第二確定模塊,用于從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S; 所述T和S均為大于0的自然數(shù),且S小于T;
[0024] 處理模塊,用于由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將所述擴容 磁盤上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D;
[0025] 重建模塊,用于由所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。
[00%]作為改進,所述第二確定單元,包括:
[0027] 第一確定子模塊,用于確定所述正常磁盤與所述擴容磁盤的總數(shù)量;
[0028] 第二確定子模塊,用于根據(jù)所述總數(shù)量確定單位磁盤VD數(shù)量,所述單位磁盤VD數(shù) 量是所述T個熱備VD在所述正常磁盤和擴容磁盤上平均分配時,每個磁盤上熱備VD的數(shù)量;
[0029] 第Ξ確定子模塊,用于根據(jù)所述單位磁盤VD數(shù)量與所述擴容磁盤的數(shù)量,得到待 轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S。
[0030] 作為改進,所述處理模塊,用于:
[0031] 若所述S能被N整除,且商為K,則從每個所述正常磁盤上選擇K個熱備VD轉(zhuǎn)變?yōu)榭?閑VD,所述N為所述正常磁盤的數(shù)量;
[0032] 若所述S不能被N整除,且商為K,則從(S-K*N)個所述正常磁盤上分別選擇K+1個熱 備VD轉(zhuǎn)變?yōu)榭臻eVD,從剩余的所述正常磁盤上分別選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0033] 作為改進,當(dāng)從所述正常磁盤上選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD時,從所述 正常磁盤上隨機選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0034] 作為改進,當(dāng)所述擴容磁盤的數(shù)量大于1個時,所述處理模塊,用于:
[0035] 按照預(yù)先設(shè)定的擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾?VD,若將每個擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D后,擴容磁盤上熱備VD的總數(shù)量仍小 于S,則繼續(xù)按照所述擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,直 至總共將S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D。
[0036] 由上述方法可見,在數(shù)據(jù)重建時,通過將在正常磁盤上所申請的熱備VD中,部分熱 備VD轉(zhuǎn)變?yōu)榭臻eVD,將擴容磁盤上同樣數(shù)量的空閑VD轉(zhuǎn)變?yōu)闊醾銿D,使得新加入的擴容磁 盤可W參與重建過程,從而可W增加多個VDG同時重建的幾率,從而提高了數(shù)據(jù)重建的效 率;并且,由于新加入的擴容磁盤參與重建過程,在重建中,新加入的擴容磁盤中也可W有 數(shù)據(jù)的讀寫,從而,在重建完成后,新加入的擴容磁盤的利用率與原有的正常磁盤的利用率 的差值較現(xiàn)有技術(shù)中較小,從而也縮短了后續(xù)的均衡時間。
【附圖說明】
[0037] 此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本申請的實施 例,并與說明書一起用于解釋本申請的原理。
[0038] 圖1示例了相關(guān)技術(shù)中磁盤陣列的示意圖;
[0039] 圖2A示例了本申請數(shù)據(jù)重建的方法的一個實施例流程圖;
[0040] 圖2B示例了按照本申請數(shù)據(jù)重建的方法所形成的磁盤陣列的示意圖;
[0041 ]圖3示例了確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD個數(shù)的一個實施例流程圖;
[0042] 圖4是本申請實施例中數(shù)據(jù)重建的裝置所在網(wǎng)絡(luò)設(shè)備的一種硬件結(jié)構(gòu)框圖;
[0043] 圖5示例了本申請數(shù)據(jù)重建的裝置的一個實施例框圖;
[0044] 圖6示例了本申請數(shù)據(jù)重建的裝置的另一個實施例框圖。
【具體實施方式】
[0045] 運里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述設(shè)及 附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。W下示例性實施例 中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附 權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
[0046] 請參見圖1,示例了相關(guān)技術(shù)中磁盤陣列的示意圖。其中,存儲池 Pool中包括原有 磁盤?01、?02、?03、?04、?05、?06、?07,^及擴容磁盤?08。已將?01至?07按照指定大小進行 切分,形成多個VD(如圖1中所示的□即表示一個VD),并且,PD1至PD7中的部分VD已根據(jù) RAID策略,組成了多個VDG(如圖1中所示,假設(shè)每個VDG由3個VD組成,編號相同的VD屬于同 一 VDG,例如,編號為3的VD屬于VDG3),該多個VDG向上層客戶端提供邏輯資源進行讀寫。假 設(shè)PD7出現(xiàn)故障,為了保障數(shù)據(jù)安全性及完整性,可W對部分VDG進行重建,W實現(xiàn)數(shù)據(jù)重 建;且為了防止因 PD7故障,導(dǎo)致存儲池化〇1的容量變小,影響上層業(yè)務(wù),可W加入擴容磁盤 PD8,由PD1至PD6,W及PD8重新組成磁盤陣列。
[0047] 通常情況下,當(dāng)原有磁盤中出現(xiàn)故障磁盤時,例如PD7出現(xiàn)故障時,即可W在其它 正常磁盤,例如PD 1至PD6上,申請熱備VD (如圖1中所示的,即表示一個熱備VD)用于VDG重 建?,F(xiàn)有技術(shù)中,當(dāng)可W在原有磁盤的正常磁盤上申請到足夠的熱備VD時,即所述正常磁盤 上所包括的熱備VD的數(shù)量不低于故障磁盤PD7上已存儲數(shù)據(jù)的VD的數(shù)量,則在正常磁盤上 申請所需要的熱備VD,只有當(dāng)在原有磁盤的正常磁盤上申請不到足夠的熱備VD時,才在擴 容磁盤上繼續(xù)申請熱備VD。如下僅描述可W在原有磁盤的正常磁盤上申請到足夠的熱備VD 的情況:
[0048] 當(dāng)申請到數(shù)據(jù)重建所需要的熱備VD,進行VDG重建時,重建順序可W是自下而上 的,例如,先對VDG3進行重建,再對VDG4進行重建,并且當(dāng)待重建的相鄰的VDG所設(shè)及到的磁 盤都不相同時,可W對該相鄰的VDG同時進行重建。例如,假設(shè)所申請的熱備VD中,分配給 VDG3的熱備VD位于PD6上,分配給VDG4的熱備VD位于PD4上,那么,重建VDG3時,將設(shè)及到 PD1、PD2、PD6,重建VDG4時,將設(shè)及到PD3、PD4、PD6,由此可見,重建VDG3和VDG4時,都將設(shè)及 到同一磁盤PD6,則該種情況下不能同時對VDG3和VDG4進行重建,只能先重建VDG3,重建完 成后,再繼續(xù)重建VDG4。
[0049] 由此可見,通常情況下,存儲池 Pool中參與VDG重建的磁盤數(shù)量越多,從而熱備VD 被分配在多個磁盤上,相鄰VDG重建時設(shè)及同一磁盤的概率相對較低些,那么可W同時重建 多個VDG的比例,相對磁盤數(shù)量較少時可W更高些。因此,新加入的擴容磁盤參與VDG重建 時,可在一定程度上增加同時重建多個VDG的比例,從而提高數(shù)據(jù)重建時的效率;而且,在現(xiàn) 有技術(shù)中,新加入的擴容磁盤幾乎未參與重建過程,因此新加入的擴容磁盤幾乎不設(shè)及到 任何的數(shù)據(jù)讀寫操作,那么,當(dāng)VDG重建完成后,進行均衡時,將由于新加入的擴容磁盤的利 用率與原有磁盤的利用率差值較大,導(dǎo)致均衡的時間也較長。基于此,為了提高數(shù)據(jù)重建的 效率,本申請?zhí)峁┮环N數(shù)據(jù)重建的方法及裝置,旨在使得新加入的擴容磁盤可W更多地參 與到重建過程中,提高數(shù)據(jù)重建的效率,同時,還可W減少重建后的均衡時間。
[0050] 如下的圖2A,示例了本申請數(shù)據(jù)重建的方法的一個實施例流程圖,圖2B示例了按 照本申請數(shù)據(jù)重建的方法所形成的磁盤陣列的示意圖,圖2A所示的方法可W包括W下步 驟:
[0051 ] 步驟S201:確定熱備VD的個數(shù)T,所述熱備VD是所述正常磁盤上未參與VDG重建的 熱備VD。
[0052] 通過上述描述,當(dāng)原有磁盤中有故障磁盤時,即在其它正常磁盤上申請重建VDG所 需要的熱備VD,并在申請到足夠的熱備VD后,即開始進行VDG重建。為了避免在已重建的熱 備VD上重新寫入數(shù)據(jù),耗費性能,本申請中,在統(tǒng)計可重新分配的熱備VD的個數(shù)T時,可W不 再將已參與VDG重建的熱備VD的數(shù)量計入。假設(shè)熱備VD的總個數(shù)為101個,其中有1個熱備VD 已參與VDG重建,那么,所確定得出的未參與VDG重建的熱備VD的個數(shù)T為100。
[0053] 步驟S202:從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S;所述T和S 均為大于0的自然數(shù),且S小于T。
[0054] 本申請中,為了使得擴容磁盤較多地參與到重建過程中,可W將原有磁盤上的熱 備VD移動到擴容磁盤上,并且,為了避免移動到擴容磁盤上的熱備VD的數(shù)量較多,導(dǎo)致擴容 磁盤參與重建時,承受較大的壓力,W及在擴容磁盤故障時,需要重建的VDG數(shù)量較多,本申 請中,可W將原有磁盤上的S個熱備VD移動到擴容磁盤上,其中S小于T,使得擴容磁盤與原 有磁盤上熱備VD的數(shù)量較為均衡。上述"將原有磁盤上的熱備VD移動到擴容磁盤上"的具體 含義可W為將原有磁盤上的熱備VD轉(zhuǎn)變?yōu)榭臻eVD,將擴容磁盤上的空閑VD轉(zhuǎn)變?yōu)闊醾銿D。 另外,具體本步驟中是如何確定該指定數(shù)量S的,可W參見下述實施例中的相關(guān)描述,在此 先不作詳述。
[0055] 步驟S203:由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將所述擴容磁盤 上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D。
[0056] 當(dāng)執(zhí)行完步驟S202,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S后,則在本步驟中,可 W在所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將擴容磁盤上的S個空閑VD轉(zhuǎn)變?yōu)?熱備VD,從而實現(xiàn)上述步驟S202中所描述的將原有磁盤上的熱備VD移動到擴容磁盤上。
[0057] 在一個可選的實現(xiàn)方式中,在由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD 時,可W按照如下描述的過程進行選擇:
[005引假設(shè)原有磁盤中正常磁盤的數(shù)量為N,若S能被N整除,且商為K,則從每個所述正常 磁盤上選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD;若S不能被N整除,且商為K,則從(S-K*N)個所述正常 磁盤上分別選擇K+1個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,從剩余的所述正常磁盤上分別選擇K個熱備VD 轉(zhuǎn)變?yōu)榭臻eVD,從而可W使得每個正常磁盤上熱備VD的數(shù)量較為均衡。
[0059] 此外,在上述過程中,當(dāng)從正常磁盤上選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD時,可 W采取隨機選擇的方式,即從正常磁盤上隨機選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0060] 在一個例子中假設(shè)正常磁盤的數(shù)量為10個,新加入的擴容磁盤的數(shù)量為1個,待轉(zhuǎn) 移的熱備VD的數(shù)量為9個,按照上述過程,9不能被10整除,且商為0,則可W從9個正常磁盤 上各隨機選擇一個熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0061 ] 此外,本申請中,當(dāng)新加入的擴容磁盤的數(shù)量大于1個時,為了保證每個擴容磁盤 所分配到的熱備VD的數(shù)量基本一致,在將擴容磁盤上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D時,可W按 照預(yù)先設(shè)定的擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,若將每個 擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D后,擴容磁盤上熱備VD的總數(shù)量仍小于S,則繼續(xù)按 照所述擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,直至總共將S個空 閑VD轉(zhuǎn)變?yōu)闊醾銿D。
[0062] 例如,假設(shè)待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)為11個,擴容磁盤的個數(shù)為3個,分別 為口08、?09、?010,則在將該3個擴容磁盤上的11個空閑¥0轉(zhuǎn)變?yōu)闊醾洌?時,可^先將?08上 的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,再依次將PD9和PD10上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,如此執(zhí)行 一輪后,再繼續(xù)執(zhí)行兩輪上述過程,此時,已累計將9個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,而待轉(zhuǎn)移的熱 備VD的個數(shù)為11個,則繼續(xù)按照該3個擴容磁盤的順序,依次將PD8、PD9上的一個空閑VD轉(zhuǎn) 變?yōu)闊醾銿D,至此,完成了將11個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,通過該過程,每個擴容磁盤上熱備 VD的個數(shù)基本均衡。
[0063] 步驟S204:所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。
[0064] 熱備VD參與VDG重建的過程可W參見現(xiàn)有技術(shù)中的相關(guān)描述,本申請對此不再做 詳細寶述。
[0065] 需要說明的是,在現(xiàn)有技術(shù)中,根據(jù)上述舉例,VDG3和VDG4在重建時,都將設(shè)及到 PD6,從而導(dǎo)致VDG3和VDG4無法同時進行重建。但在本申請中,通過執(zhí)行步驟S201-S203,對 待參與重建的熱備VD進行了重新分配,假設(shè),如圖2B中所示的磁盤陣列的示意圖,將PD6中 編號為3的熱備VD轉(zhuǎn)變?yōu)榭臻eVD,而在擴容磁盤PD8上將一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,并由 VDG3占用該熱備VD,那么,VDG3重建時將設(shè)及到PDl、PD2、PD8,由此可見,按照本申請?zhí)峁┑?方法,對熱備VD重新分配后,VDG3與VDG4進行重建時,將不設(shè)及到同一磁盤,從而使得VDG3 和VDG4可W同時進行重建,提高了重建的效率。
[0066] 由上述實施例可見,在數(shù)據(jù)重建時,通過將在正常磁盤上所申請的熱備VD中,部分 熱備VD轉(zhuǎn)變?yōu)榭臻eVD,將擴容磁盤上同樣數(shù)量的空閑VD轉(zhuǎn)變?yōu)闊醾銿D,使得新加入的擴容 磁盤可W參與重建過程,從而可W增加多個VDG同時重建的幾率,從而提高了數(shù)據(jù)重建的效 率;并且,由于新加入的擴容磁盤參與重建過程,在重建中,新加入的擴容磁盤中也可W有 數(shù)據(jù)的讀寫,從而,在重建完成后,新加入的擴容磁盤的利用率與原有的正常磁盤的利用率 的差值較現(xiàn)有技術(shù)中較小,從而也縮短了后續(xù)的均衡時間。
[0067] 如下的圖3,示例了確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD個數(shù)的一個實施例流程圖,圖3 所示的流程詳細描述了在上述圖2A所示實施例中,如何從T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻e VD的熱備VD的個數(shù)S,可W包括W下步驟:
[0068] 步驟S301:確定所述正常磁盤與所述擴容磁盤的總數(shù)量。
[0069] 步驟S302:根據(jù)所述總數(shù)量確定單位磁盤VD數(shù)量,所述單位磁盤VD數(shù)量是所述T個 熱備VD在所述正常的原有磁盤和擴容磁盤上平均分配時,每個磁盤上熱備VD的數(shù)量。
[0070] 步驟S303:根據(jù)所述單位磁盤VD數(shù)量與所述擴容磁盤的數(shù)量,得到待轉(zhuǎn)變?yōu)榭臻e VD的熱備VD的個數(shù)S。
[0071] 在上述步驟S301至步驟S303中,假設(shè)原有磁盤中的正常磁盤的數(shù)量為N,新加入的 擴容磁盤的數(shù)量為M,則可W根據(jù)如下公式計算得出S:
[007。 M+N
[0073] 在如上公式中,將未參與VDG重建的熱備VD的總數(shù)量T,除W正常磁盤和擴容磁盤 的總數(shù)量(M+N),所得到的商進行向下取整,可W計算得出單位磁盤VD數(shù)量,即平均分配在 每個磁盤上熱備VD的數(shù)量;繼而通過該單位磁盤VD數(shù)量與擴容磁盤的數(shù)量做乘,即可得出 待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的數(shù)量S,即分配在擴容磁盤上熱備VD的數(shù)量。
[0074] 在一個例子中,假設(shè)正常磁盤的數(shù)量為10個,擴容磁盤的數(shù)量為1個,該10個正常 磁盤上未參與VDG重建的熱備VD的個數(shù)為100個。
[0075] 那么,可W將該100個熱備VD在10個正常磁盤W及1個擴容磁盤上進行平均分配, 通過計算100/(10+1),并向下取整,可W得出可分配在每個磁盤上的熱備VD的數(shù)量大約為9 個。那么,擴容磁盤上所分配到的熱備VD的數(shù)量即為9個(9*1=9),從而,可W得出待轉(zhuǎn)變?yōu)?空閑VD的熱備VD的數(shù)量S為9。
[0076] 需要說明的是,本申請在確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S時,所用到的計算 公式不限于上述公式,與上述公式基于相同思想的其他變形公式也在本申請的保護范圍之 內(nèi)。
[0077] 由上述實施例可見,通過正常磁盤上未參與VDG重建的熱備VD的總數(shù)量T,W及正 常磁盤和擴容磁盤的總數(shù)量,可W得出所述T個熱備VD在所述正常的原有磁盤和擴容磁盤 上平均分配時,每個磁盤上熱備VD的數(shù)量,繼而可W根據(jù)該每個磁盤上熱備VD的數(shù)量與擴 容磁盤的數(shù)量,計算得出原有磁盤上待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的數(shù)量,即擴容磁盤上待轉(zhuǎn) 變?yōu)闊醾銿D的空閑VD的數(shù)量,從而可W保證擴容磁盤與正常磁盤上所分配到的熱備VD的數(shù) 量基本均衡。
[0078] 基于與上述方法同一的發(fā)明構(gòu)思,本申請實施例還提供了數(shù)據(jù)重建的裝置的實施 例,該裝置可W用于網(wǎng)絡(luò)設(shè)備,例如存儲設(shè)備上。其中,該裝置可W通過軟件實現(xiàn),也可W通 過硬件或者軟硬件結(jié)合的方式實現(xiàn)。W軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過 其所在網(wǎng)絡(luò)設(shè)備的處理器,將非易失性存儲器中對應(yīng)的計算機程序指令讀取到內(nèi)存中運行 形成的。從硬件層面而言,如圖4所示,是本申請實施例中數(shù)據(jù)重建的裝置所在網(wǎng)絡(luò)設(shè)備的 一種硬件結(jié)構(gòu)框圖,除了圖4所示的處理器41、內(nèi)存42、網(wǎng)絡(luò)接口43W及非易失性存儲器44 夕h還可W包括其他硬件,如攝像裝置、負責(zé)處理報文的轉(zhuǎn)發(fā)忍片等。
[0079] 如下的圖5,示例了本申請數(shù)據(jù)重建的裝置的一個實施例框圖,該裝置可W包括: 第一確定模塊51、第二確定模塊52、處理模塊53、重建模塊54。
[0080] 其中,該第一確定模塊51,可W用于確定熱備VD的個數(shù)T,所述熱備VD是所述正常 磁盤上未參與VDG重建的熱備VD;
[0081] 該第二確定模塊52,可W用于從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD 的個數(shù)S;所述T和S均為大于0的自然數(shù),且S小于T;
[0082] 該處理模塊53,可W用于由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將 所述擴容磁盤上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D;
[0083] 該重建模塊54,可W用于由所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。
[0084] 在一個實施例中,該處理模塊53,可W用于:
[0085] 若所述S能被N整除,且商為K,則從每個所述正常磁盤上選擇K個熱備VD轉(zhuǎn)變?yōu)榭?閑VD,所述N為所述正常磁盤的數(shù)量;
[0086] 若所述S不能被N整除,且商為K,則從(S-K*N)個所述正常磁盤上分別選擇K+1個熱 備VD轉(zhuǎn)變?yōu)榭臻eVD,從剩余的所述正常磁盤上分別選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0087] 在另一個實施例中,當(dāng)從所述正常磁盤上選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD 時,從所述正常磁盤上隨機選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD。
[0088] 在又一個實施例中,當(dāng)所述擴容磁盤的數(shù)量大于1個時,該處理模塊53,可W用于:
[0089] 按照預(yù)先設(shè)定的擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾?VD,若將每個擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D后,擴容磁盤上熱備VD的總數(shù)量仍小 于S,則繼續(xù)按照所述擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,直 至總共將S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D。
[0090] 如下的圖6,示例了本申請數(shù)據(jù)重建的裝置的另一個實施例框圖,該裝置在上述圖 5所示裝置的基礎(chǔ)上,其中,所述第二確定模塊52,可W包括:第一確定子模塊521、第二確定 子模塊522、第Ξ確定子模塊523。
[0091] 其中,該第一確定子模塊521,可W用于確定所述正常磁盤與所述擴容磁盤的總數(shù) 量;
[0092] 該第二確定子模塊522,可W用于根據(jù)所述總數(shù)量確定單位磁盤VD數(shù)量,所述單位 磁盤VD數(shù)量是所述T個熱備VD在所述正常磁盤和擴容磁盤上平均分配時,每個磁盤上熱備 VD的數(shù)量;
[0093] 該第Ξ確定子模塊523,可W用于根據(jù)所述單位磁盤VD數(shù)量與所述擴容磁盤的數(shù) 量,得到待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S。
[0094] 本領(lǐng)域技術(shù)人員在考慮說明書及實踐運里申請的發(fā)明后,將容易想到本申請的其 它實施方案。本申請旨在涵蓋本申請的任何變型、用途或者適應(yīng)性變化,運些變型、用途或 者適應(yīng)性變化遵循本申請的一般性原理并包括本申請未申請的本技術(shù)領(lǐng)域中的公知常識 或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本申請的真正范圍和精神由下面的 權(quán)利要求指出。
[0095] 應(yīng)當(dāng)理解的是,本申請并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并 且可W在不脫離其范圍進行各種修改和改變。本申請的范圍僅由所附的權(quán)利要求來限制。
[0096] W上所述僅為本申請的較佳實施例而已,并不用W限制本申請,凡在本申請的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。
【主權(quán)項】
1. 一種數(shù)據(jù)重建的方法,其特征在于,所述方法應(yīng)用于當(dāng)存儲池中的原有磁盤中出現(xiàn) 故障磁盤時,在存儲池中加入擴容磁盤,進行數(shù)據(jù)重建;其中,原有磁盤中的正常磁盤上所 包括的熱備虛擬磁盤VD的數(shù)量不低于所述故障磁盤上已存儲數(shù)據(jù)的VD的數(shù)量,所述方法包 括: 確定熱備VD的個數(shù)T,所述熱備VD是所述正常磁盤上未參與虛擬磁盤組VDG重建的熱備 VD; 從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S;所述T和S均為大于0的自 然數(shù),且S小于T; 由所述T個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將所述擴容磁盤上的S個空閑VD 轉(zhuǎn)變?yōu)闊醾銿D; 由所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭?閑VD的熱備VD的個數(shù)S,包括: 確定所述正常磁盤與所述擴容磁盤的總數(shù)量; 根據(jù)所述總數(shù)量確定單位磁盤VD數(shù)量,所述單位磁盤VD數(shù)量是所述T個熱備VD在所述 正常磁盤和擴容磁盤上平均分配時,每個磁盤上熱備VD的數(shù)量; 根據(jù)所述單位磁盤VD數(shù)量與所述擴容磁盤的數(shù)量,得到待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個 數(shù)S。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述由所述T個熱備VD中,選擇S個熱備VD 轉(zhuǎn)變?yōu)榭臻eVD,包括: 若所述S能被N整除,且商為K,則從每個所述正常磁盤上選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD, 所述N為所述正常磁盤的數(shù)量; 若所述S不能被N整除,且商為K,則從(S-K*N)個所述正常磁盤上分別選擇K+1個熱備VD 轉(zhuǎn)變?yōu)榭臻eVD,從剩余的所述正常磁盤上分別選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)從所述正常磁盤上選擇指定數(shù)量的熱備 VD轉(zhuǎn)變?yōu)榭臻eVD時,從所述正常磁盤上隨機選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD。5. 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述擴容磁盤的數(shù)量大于1個時,所述將 擴容磁盤上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,包括: 按照預(yù)先設(shè)定的擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,若 將每個擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D后,擴容磁盤上熱備VD的總數(shù)量仍小于S,則 繼續(xù)按照所述擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,直至總共 將S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D。6. -種數(shù)據(jù)重建的裝置,其特征在于,所述裝置應(yīng)用于當(dāng)存儲池中的原有磁盤中出現(xiàn) 故障磁盤時,在存儲池中加入擴容磁盤,進行數(shù)據(jù)重建;其中,原有磁盤中的正常磁盤上所 包括的熱備虛擬磁盤VD的數(shù)量不低于所述故障磁盤上已存儲數(shù)據(jù)的VD的數(shù)量,所述裝置包 括: 第一確定模塊,用于確定熱備VD的個數(shù)T,所述熱備VD是所述正常磁盤上未參與VDG重 建的熱備VD; 第二確定模塊,用于從所述T個熱備VD中,確定待轉(zhuǎn)變?yōu)榭臻eVD的熱備VD的個數(shù)S;所述 T和S均為大于0的自然數(shù),且S小于τ; 處理模塊,用于由所述Τ個熱備VD中,選擇S個熱備VD轉(zhuǎn)變?yōu)榭臻eVD,并將所述擴容磁盤 上的S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D; 重建模塊,用于由所述正常磁盤與擴容磁盤上的熱備VD參與VDG重建。7. 根據(jù)權(quán)利要求6所述裝置,其特征在于,所述第二確定單元,包括: 第一確定子模塊,用于確定所述正常磁盤與所述擴容磁盤的總數(shù)量; 第二確定子模塊,用于根據(jù)所述總數(shù)量確定單位磁盤VD數(shù)量,所述單位磁盤VD數(shù)量是 所述Τ個熱備VD在所述正常磁盤和擴容磁盤上平均分配時,每個磁盤上熱備VD的數(shù)量; 第三確定子模塊,用于根據(jù)所述單位磁盤VD數(shù)量與所述擴容磁盤的數(shù)量,得到待轉(zhuǎn)變 為空閑VD的熱備VD的個數(shù)S。8. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述處理模塊,用于: 若所述S能被Ν整除,且商為Κ,則從每個所述正常磁盤上選擇Κ個熱備VD轉(zhuǎn)變?yōu)榭臻eVD, 所述Ν為所述正常磁盤的數(shù)量; 若所述S不能被Ν整除,且商為Κ,則從(S-K*N)個所述正常磁盤上分別選擇Κ+1個熱備VD 轉(zhuǎn)變?yōu)榭臻eVD,從剩余的所述正常磁盤上分別選擇K個熱備VD轉(zhuǎn)變?yōu)榭臻eVD。9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)從所述正常磁盤上選擇指定數(shù)量的熱備 VD轉(zhuǎn)變?yōu)榭臻eVD時,從所述正常磁盤上隨機選擇指定數(shù)量的熱備VD轉(zhuǎn)變?yōu)榭臻eVD。10. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述擴容磁盤的數(shù)量大于1個時,所述 處理模塊,用于: 按照預(yù)先設(shè)定的擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,若 將每個擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D后,擴容磁盤上熱備VD的總數(shù)量仍小于S,則 繼續(xù)按照所述擴容磁盤的順序,逐個將擴容磁盤上的一個空閑VD轉(zhuǎn)變?yōu)闊醾銿D,直至總共 將S個空閑VD轉(zhuǎn)變?yōu)闊醾銿D。
【文檔編號】G06F3/06GK105843562SQ201610347944
【公開日】2016年8月10日
【申請日】2016年5月24日
【發(fā)明人】堯婷娟
【申請人】浙江宇視科技有限公司