• / 14
  • 下載費用:30 金幣  

一種資源創建的方法和裝置.pdf

摘要
申請專利號:

CN201510683785.1

申請日:

2015.10.20

公開號:

CN105243032A

公開日:

2016.01.13

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/109申請日:20151020|||公開
IPC分類號: G06F12/109(2016.01)I 主分類號: G06F12/109
申請人: 浙江宇視科技有限公司
發明人: 郭永強; 王麗紅; 郭鵬洲; 盧洪棚; 謝菲
地址: 310051浙江省杭州市濱江區西興街道江陵路88號10幢南座1-11層
優先權:
專利代理機構: 北京博思佳知識產權代理有限公司11415 代理人: 林祥
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510683785.1

授權公告號:

||||||

法律狀態公告日:

2019.01.15|||2016.03.09|||2016.01.13

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明提供一種資源創建的方法和裝置,存儲池內包括擴容前的K個PD和擴容后的M個PD,該方法包括:在資源創建過程中,從K個PD和M個PD中,選擇用于創建資源的VD;其中,選擇的VD均勻分布在K個PD和M個PD中;在資源創建完成后,對K個PD和M個PD中的VD進行均衡處理,以使K個PD和M個PD的利用率保持在平均利用率的有效范圍之內。通過本發明的技術方案,當存儲池中的任意一個PD發生故障時,會觸發重構過程,此時基于所有PD的數據恢復故障PD的數據,參與到重構過程的PD數量較多,大大提高重構速度,而且擴容不會導致重構效率的降低,減輕擴容后的M個PD的重構壓力,減少對業務的影響。

權利要求書

權利要求書
1.  一種資源創建的方法,存儲池內包括擴容前的K個物理磁盤PD和擴容后的M個PD,K為正整數,M為正整數,其特征在于,所述方法包括:
在資源創建過程中,從所述K個PD和M個PD中,選擇用于創建資源的虛擬磁盤VD;其中,選擇的VD均勻分布在所述K個PD和M個PD中;
在資源創建完成后,對所述K個PD和M個PD中的VD進行均衡處理,以使所述K個PD和M個PD的利用率保持在平均利用率的有效范圍之內。

2.  根據權利要求1所述的方法,其特征在于,所述從所述K個PD和M個PD中,選擇用于創建資源的虛擬磁盤VD的過程,具體包括:
按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從所述K個PD和所述M個PD中選擇用于創建資源的VD,其中,選擇的用于組建同一個虛擬磁盤組VDG的多個VD不能位于同一個PD上。

3.  根據權利要求1或2所述的方法,其特征在于,所述方法進一步包括:
在資源創建之前,則設置創建標記;在資源創建完成之后,則清除所述創建標記;其中,如果當前存在所述創建標記,則不允許執行對所述K個PD和M個PD中的VD進行均衡處理的過程;如果當前不存在所述創建標記,則執行對所述K個PD和M個PD中的VD進行均衡處理的過程。

4.  根據權利要求1所述的方法,其特征在于,所述對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內的過程,具體包括:
將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內;其中,在將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上時,針對所述K個PD中的位于同一個VDG的多個VD,所述多個VD中遷移部分VD的數據到所述M個PD中對應個數的VD上。

5.  根據權利要求1或4所述的方法,其特征在于,所述平均利用率的有效 范圍具體包括:[N*(1-x%),N*(1+x%)],所述N為平均利用率,x為預設閾值;所述平均利用率N=((a%+b%)*K+b%*M)/(K+M);其中,a%為在資源創建過程之前,所述K個PD中的每個PD的利用率,b%為在資源創建過程中,所述K個PD和所述M個PD中的每個PD的利用率。

6.  一種資源創建的裝置,存儲池內包括擴容前的K個物理磁盤PD和擴容后的M個PD,K為正整數,M為正整數,其特征在于,所述裝置包括:
選擇模塊,用于在資源創建過程中,從K個PD和M個PD中選擇用于創建資源的虛擬磁盤VD;選擇的VD均勻分布在K個PD和M個PD中;
處理模塊,用于在資源創建完成之后,對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內。

7.  根據權利要求6所述的裝置,其特征在于,
所述選擇模塊,具體用于在從所述K個PD和所述M個PD中,選擇用于創建資源的虛擬磁盤VD的過程中,按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從所述K個PD和所述M個PD中選擇用于創建資源的VD,且選擇的用于組建同一個虛擬磁盤組VDG的多個VD不能位于同一個PD上。

8.  根據權利要求6或7所述的裝置,其特征在于,
所述處理模塊,還用于在資源創建之前,則設置創建標記;在資源創建完成之后,則清除所述創建標記;其中,如果當前存在所述創建標記,則不允許所述處理模塊執行對所述K個PD和M個PD中的VD進行均衡處理的過程;如果當前不存在所述創建標記,則允許所述處理模塊執行對所述K個PD和M個PD中的VD進行均衡處理的過程。

9.  根據權利要求6所述的裝置,其特征在于,
所述處理模塊,具體用于在對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內的過程中,將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上,以使所述K個PD和所述M個PD的利用率保持在平均利用率的 有效范圍之內;在將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上時,針對所述K個PD中的位于同一個VDG的多個VD,所述多個VD中遷移部分VD的數據到所述M個PD中對應個數的VD上。

10.  根據權利要求6或9所述的裝置,其特征在于,所述平均利用率的有效范圍具體包括:[N*(1-x%),N*(1+x%)],所述N為平均利用率,x為預設閾值;所述平均利用率N=((a%+b%)*K+b%*M)/(K+M);其中,a%為在資源創建過程之前,所述K個PD中的每個PD的利用率,b%為在資源創建過程中,所述K個PD和所述M個PD中的每個PD的利用率。

說明書

說明書一種資源創建的方法和裝置
技術領域
本發明涉及存儲技術領域,尤其涉及一種資源創建的方法和裝置。
背景技術
為了解決重構時間較長的問題,傳統的陣列構建方式逐漸演變到塊虛擬化方式,如圖1所示,為塊虛擬化的架構示意圖,通過塊虛擬化方式,由存儲池向上層提供資源。塊虛擬化方式的基本思想是:將指定數量的PD(PhysicalDisk,物理磁盤)加入到存儲池中,并按照指定大小將PD切割成多個VD(VirtualDisk,虛擬磁盤,即分塊),多個VD按照相應的RAID(RedundantArraysofIndependentDisks,獨立冗余磁盤陣列)策略組建VDG(VirtualDiskGroup,虛擬磁盤組),并向上層提供資源。其中,VD是組成VDG的虛擬磁盤單元,VDG由多個位于不同PD上的VD組成。
在圖1中,將PD1、PD2、PD3、PD4、PD5加入到存儲池中,并按照指定大小將各PD均切割成9個VD。進一步的,VDG1由VD11、VD21、VD31、VD41組成,VDG2由VD12、VD22、VD32、VD51組成,VDG3由VD13、VD23、VD42、VD52組成,VDG4由VD14、VD33、VD43、VD53組成,VDG5由VD24、VD34、VD44、VD54組成,VDG6由VD15、VD25、VD35、VD45組成,以此類推。進一步的,第一個RAID由VDG1、VDG2和VDG3組成,第二個RAID由VDG4、VDG5和VDG6組成,以此類推。
當存儲池中的資源(即VD資源)不足以滿足上層業務的需求時,可以對存儲池進行擴容,即在存儲池中添加新PD,并按照指定大小將新PD切割成多個VD,新PD所切割成的多個VD用于繼續向上層提供資源,以滿足上層業務 的需求。例如,重新將PD6、PD7、PD8、PD9加入到存儲池中,并按照指定大小分別將PD6、PD7、PD8、PD9均切割成9個VD。
在將新PD(PD6、PD7、PD8、PD9)添加到存儲池之后,新PD的利用率為0,而原有PD(PD1、PD2、PD3、PD4、PD5)的利用率遠大于新PD的利用率,此時需要對存儲池進行均衡處理,以使所有PD的利用率保持在平均利用率的有效范圍之內。基于此,在選取VD創建RAID時,會先從新PD中選取VD來創建VDG,例如,VDG7由VD61、VD71、VD81、VD91組成,VDG8由VD62、VD72、VD82、VD92組成,VDG9由VD63、VD73、VD83、VD93組成,VDG10由VD64、VD74、VD84、VD94組成,以此類推。進一步的,第三個RAID由VDG7、VDG8和VDG9組成,以此類推。
當新PD(PD6、PD7、PD8、PD9)中有任意一個PD(如PD6)發生故障時,會觸發重構過程,此時基于PD7、PD8、PD9中的數據恢復PD6中的數據,而原有PD(PD1、PD2、PD3、PD4、PD5)并不會參與到重構過程中。
基于上述方式,參與到重構過程中的PD數量較少,導致重構速度大大降低,PD7、PD8、PD9的重構壓力比較大,從而造成對業務的影響。
發明內容
本發明提供一種資源創建的方法,存儲池內包括擴容前的K個物理磁盤PD和擴容后的M個PD,K為正整數,M為正整數,所述方法包括:
在資源創建過程中,從所述K個PD和M個PD中,選擇用于創建資源的虛擬磁盤VD;其中,選擇的VD均勻分布在所述K個PD和M個PD中;
在資源創建完成后,對所述K個PD和M個PD中的VD進行均衡處理,以使所述K個PD和M個PD的利用率保持在平均利用率的有效范圍之內。
所述從所述K個PD和M個PD中,選擇用于創建資源的VD的過程,具體包括:按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從所述K個PD和所述M個PD中選擇用于創建資源的VD,其中,選擇的用于組建同一個虛擬磁盤組VDG的多個VD不能位于同一個PD上。
所述方法進一步包括:
在資源創建之前,則設置創建標記;在資源創建完成之后,則清除所述創建標記;其中,如果當前存在所述創建標記,則不允許執行對所述K個PD和M個PD中的VD進行均衡處理的過程;如果當前不存在所述創建標記,則執行對所述K個PD和M個PD中的VD進行均衡處理的過程。
所述對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內的過程,具體包括:將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內;其中,在將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上時,針對所述K個PD中的位于同一個VDG的多個VD,所述多個VD中遷移部分VD的數據到所述M個PD中對應個數的VD上。
所述平均利用率的有效范圍具體包括:[N*(1-x%),N*(1+x%)],所述N為平均利用率,x為預設閾值;所述平均利用率N=((a%+b%)*K+b%*M)/(K+M);其中,a%為在資源創建過程之前,所述K個PD中的每個PD的利用率,b%為在資源創建過程中,所述K個PD和所述M個PD中的每個PD的利用率。
本發明提供一種資源創建的裝置,存儲池內包括擴容前的K個物理磁盤PD和擴容后的M個PD,K為正整數,M為正整數,所述裝置包括:
選擇模塊,用于在資源創建過程中,從K個PD和M個PD中選擇用于創建資源的虛擬磁盤VD;選擇的VD均勻分布在K個PD和M個PD中;
處理模塊,用于在資源創建完成之后,對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內。
所述選擇模塊,具體用于在從所述K個PD和所述M個PD中,選擇用于創建資源的虛擬磁盤VD的過程中,按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從所述K個PD和所述M個PD中選擇用于創建資源的VD, 且選擇的用于組建同一個虛擬磁盤組VDG的多個VD不能位于同一個PD上。
所述處理模塊,還用于在資源創建之前,則設置創建標記;在資源創建完成之后,則清除所述創建標記;其中,如果當前存在所述創建標記,則不允許所述處理模塊執行對所述K個PD和M個PD中的VD進行均衡處理的過程;如果當前不存在所述創建標記,則允許所述處理模塊執行對所述K個PD和M個PD中的VD進行均衡處理的過程。
所述處理模塊,具體用于在對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內的過程中,將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內;在將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上時,針對所述K個PD中的位于同一個VDG的多個VD,所述多個VD中遷移部分VD的數據到所述M個PD中對應個數的VD上。
所述平均利用率的有效范圍具體包括:[N*(1-x%),N*(1+x%)],所述N為平均利用率,x為預設閾值;所述平均利用率N=((a%+b%)*K+b%*M)/(K+M);其中,a%為在資源創建過程之前,所述K個PD中的每個PD的利用率,b%為在資源創建過程中,所述K個PD和所述M個PD中的每個PD的利用率。
基于上述技術方案,本發明實施例中,在對存儲池進行擴容之后,即使擴容前的K個PD的利用率遠大于擴容后的M個PD的利用率,在資源創建過程中,是從所有PD(擴容前的K個PD和擴容后的M個PD)中選擇用于創建資源的VD,如從所有PD中選取VD來創建VDG,而不是從擴容后的M個PD中選擇用于創建資源的VD。基于此,當存儲池中的任意一個PD發生故障時,會觸發重構過程,此時基于所有PD的數據恢復故障PD的數據,即存儲池中的所有PD都會參與重構過程,參與到重構過程中的PD數量較多,大大提高重構速度,而且保證擴容不會導致重構效率的降低,減輕擴容后的M個PD的重構壓力,同時減少對業務的影響。
附圖說明
圖1是塊虛擬化的架構示意圖;
圖2是本發明一種實施方式中的資源創建的方法的流程圖;
圖3是本發明一種實施方式中的擴容后的均衡示意圖;
圖4是本發明一種實施方式中的存儲設備的硬件結構圖;
圖5是本發明一種實施方式中的資源創建的裝置的結構圖。
具體實施方式
針對現有技術中存在的問題,本發明實施例中提出一種資源創建的方法,該方法可以應用在塊虛擬化的組網架構中。在塊虛擬化的組網架構中,由存儲池向上層提供資源,在存儲池中包括多個PD,且按照指定大小將每個PD切割成多個VD,多個VD按照相應的RAID策略組建VDG,并向上層提供資源。進一步的,當存儲池中的資源(即VD資源)不足以滿足上層業務的需求時,可以對存儲池進行擴容,即在存儲池中添加新PD,并按照指定大小將新PD切割成多個VD,新PD所切割成的多個VD用于繼續向上層提供資源,以滿足上層業務的需求。在此基礎上,本發明實施例中,存儲池內包括擴容前的K個PD和擴容后的M個PD,其中,K為正整數,M為正整數。
例如,將PD1、PD2、PD3、PD4、PD5加入到存儲池中,并按照指定大小將各個PD均切割成9個VD。VDG1由VD11、VD21、VD31、VD41組成,VDG2由VD12、VD22、VD32、VD51組成,VDG3由VD13、VD23、VD42、VD52組成,VDG4由VD14、VD33、VD43、VD53組成,VDG5由VD24、VD34、VD44、VD54組成,VDG6由VD15、VD25、VD35、VD45組成。第一個RAID由VDG1、VDG2和VDG3組成,第二個RAID由VDG4、VDG5和VDG6組成。之后,為了滿足上層業務的需求,將PD6、PD7、PD8、PD9加入到存儲池中,并按照指定大小分別將PD6、PD7、PD8、PD9均切割成9個VD。在此基礎上,存儲池內包括了擴容前的5個PD(PD1、PD2、PD3、PD4、PD5)以及 擴容后的4個PD(PD6、PD7、PD8、PD9)。
在上述應用場景下,如圖2所示,該資源創建的方法可以包括以下步驟:
步驟201,在資源創建過程中,從K個PD和M個PD中,選擇用于創建資源的VD;其中,選擇的VD均勻分布在K個PD和M個PD中。
本發明實施例中,從K個PD和M個PD中,選擇用于創建資源的VD的過程,具體可以包括但不限于如下方式:按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從K個PD和M個PD中選擇用于創建資源的VD,以使選擇的VD均勻分布在K個PD和M個PD中,且選擇的用于組建同一個VDG的多個VD不能位于同一個PD上。
其中,當需要創建資源時,首先確定資源所需的VDG數量,之后確定每個VDG中的VD數量,確定VD總數量(VDG數量*VD數量),按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從K個PD和M個PD中選擇用于創建資源的VD總數量個VD,選擇的VD均勻分布在K個PD和M個PD中。
其中,偽隨機算法是指任意選擇一個隨機值,然后將選擇的隨機值轉換成特定區間內的數值。例如,當K個PD和M個PD的總數量為12時,則特定區間可以為1-12,任意選擇一個隨機值100,按照特定算法(比如取余算法)可以將隨機值100轉換成特定區間(1-12)內的數值8。
其中,本次資源創建時PD上占用的VD均衡算法是指:針對本次資源創建時需要選擇的所有VD,在K個PD和M個PD上進行均衡,使K個PD和M個PD中的各PD的利用率保持在平均利用率的有效范圍之內,如平均利用率為N,平均利用率上下浮動范圍為x%,則K個PD和M個PD中的各PD的利用率最終需要保持在[N*(1-x%),N*(1+x%)]的范圍之內,從而達到均衡的效果。
需要注意的是,此處的平均利用率是指本次資源創建時的平均利用率,與K個PD上已經選擇的VD沒有任何關系。例如,本次資源創建時需要選擇的所有VD為24,K個PD和M個PD的總數量為12時,則平均利用率N為24/12個PD上的VD總數量。
本發明實施例中,在對存儲池進行擴容之后,即使擴容前的K個PD的利 用率遠大于擴容后的M個PD的利用率,在資源創建過程中,是從所有PD(擴容前的K個PD和擴容后的M個PD)中選擇用于創建資源的VD(如從所有PD中選取VD來創建VDG),即按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從K個PD和M個PD中選擇用于創建資源的VD,而不是從擴容后的M個PD中選擇用于創建資源的VD。其中,在按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從K個PD和M個PD中選擇用于創建資源的VD時,針對當前選擇的VD,在K個PD和M個PD中進行均衡,將所選擇的VD均勻分布在存儲池中的所有PD(即K個PD和M個PD)上,且選擇的用于組建同一個VDG的多個VD不能位于同一個PD上。
例如,在對存儲池進行擴容之后,即使擴容前的K個PD(PD1、PD2、PD3、PD4、PD5)的利用率遠大于擴容后的M個PD(PD6、PD7、PD8、PD9)的利用率,在資源創建過程中,在選取VD創建RAID時,也是從所有PD(PD1、PD2、PD3、PD4、PD5、PD6、PD7、PD8、PD9)中選取VD來創建VDG,而不是從擴容后的M個PD(PD6、PD7、PD8、PD9)中選取VD來創建VDG。例如,如圖1所示,在對存儲池進行擴容之前,VDG1由VD11、VD21、VD31、VD41組成,VDG2由VD12、VD22、VD32、VD51組成,VDG3由VD13、VD23、VD42、VD52組成,VDG4由VD14、VD33、VD43、VD53組成,VDG5由VD24、VD34、VD44、VD54組成,VDG6由VD15、VD25、VD35、VD45組成。基于此,如圖3所示,在對存儲池進行擴容之后,VDG7由VD16、VD26、VD36、VD46組成,VDG8由VD55、VD61、VD71、VD81組成,VDG9由VD91、VD17、VD27、VD37組成,VDG10由VD47、VD56、VD62、VD72組成,VDG11由VD82、VD92、VD18、VD28組成,VDG12由VD38、VD48、VD57、VD63組成,VDG13由VD73、VD83、VD93、VD19組成,以此類推。進一步的,第一個RAID由VDG1、VDG2和VDG3組成,第二個RAID由VDG4、VDG5和VDG6組成,第三個RAID由VDG7、VDG8和VDG9組成,第四個RAID由VDG10、VDG11和VDG12組成,以此類推。
步驟202,在資源創建完成后,對K個PD和M個PD中的VD進行均衡處 理,以使K個PD和M個PD的利用率保持在平均利用率的有效范圍內。
本發明實施例中,對K個PD和M個PD中的VD進行均衡處理,以使K個PD和M個PD的利用率保持在平均利用率的有效范圍之內的過程,具體可以包括但不限于如下方式:將K個PD中的部分VD的數據遷移到M個PD中的VD上,以使K個PD和M個PD的利用率(或者空閑率)保持在平均利用率的有效范圍之內。其中,在將K個PD中的部分VD的數據遷移到M個PD中的VD上時,針對K個PD中的位于同一個VDG的多個VD,該多個VD中可以遷移部分VD(如一個VD)的數據到M個PD中對應個數的VD上。
其中,PD的利用率是指:PD上被使用的VD利用率,如當PD上存在10個VD,且這10個VD中有3個VD存儲數據時,則PD的利用率為30%。
其中,在從K個PD和M個PD中,選擇用于創建資源的VD后,各PD的利用率并不相同,擴容前的K個PD的利用率遠大于擴容后的M個PD的利用率。因此,在資源創建完成后,對K個PD和M個PD中的VD進行均衡處理,即通過均衡算法,將K個PD中的部分VD的數據(即擴容前創建的資源所對應的數據)遷移到M個PD中的VD上,使得擴容前創建的資源能夠盡量均衡分布到存儲池的所有PD上,從而使K個PD和M個PD中的每個PD的利用率保持在平均利用率的有效范圍之內,從而達到均衡的效果。
其中,在將K個PD中的部分VD的數據遷移到M個PD中的VD上時,針對K個PD中的位于同一個VDG的多個VD,該多個VD中可以遷移部分VD的數據到M個PD中對應個數的VD上。例如,將PD1的VD11的數據遷移到PD6的VD64上,此時,VD11處于空閑狀態,可以繼續被其它VDG使用,VDG1由VD64、VD21、VD31、VD41組成。將PD2的VD22的數據遷移到PD7的VD74上,此時,VD22處于空閑狀態,可以繼續被其它VDG使用,VDG2由VD12、VD74、VD32、VD51組成。將PD3的VD33的數據遷移到PD8的VD84上,此時,VD33處于空閑狀態,可以繼續被其它VDG使用,VDG4由VD14、VD84、VD43、VD53組成。將PD4的VD42的數據遷移到PD9的VD94上,此時,VD42處于空閑狀態,可以繼續被其它VDG使用,VDG3由VD13、VD23、 VD94、VD52組成。以此類推。
其中,在對K個PD和M個PD中的VD進行均衡處理的過程中,判斷PD的利用率是否在平均利用率的有效范圍之內。如果該PD的利用率在平均利用率的有效范圍之內,則不對該PD中的VD進行均衡處理。如果該PD的利用率大于平均利用率的有效范圍,則將該PD的部分VD的數據遷移到利用率小于平均利用率的有效范圍的PD的VD上,以使該PD的利用率在平均利用率的有效范圍之內。如果該PD的利用率小于平均利用率的有效范圍,則將利用率大于平均利用率的有效范圍的PD的部分VD的數據遷移到該PD的VD上,以使該PD的利用率在平均利用率的有效范圍之內。基于上述方式,保證K個PD和M個PD的利用率均在平均利用率的有效范圍之內。
本發明實施例中,平均利用率的有效范圍具體可以包括:[N*(1-x%),N*(1+x%)],N為平均利用率,x為預設閾值,x可以根據實際經驗進行設置。進一步的,平均利用率N=((a%+b%)*K+b%*M)/(K+M)。其中,a%為在資源創建過程之前,K個PD中的每個PD的利用率,且每個PD的利用率均為a%。b%為在資源創建過程中,K個PD和M個PD中的每個PD的利用率,即此次資源創建過程中,每個PD上被使用的VD利用率,且每個PD的利用率均為b%。基于此,在資源創建完成之后,K個PD中的每個PD的利用率為a%+b%,M個PD中的每個PD的利用率為b%。
本發明實施例中,在資源創建之前,還可以設置創建標記;在資源創建完成之后,還可以清除該創建標記。其中,如果當前存在創建標記,則不允許執行對K個PD和M個PD中的VD進行均衡處理的過程;如果當前不存在創建標記,則執行對K個PD和M個PD中的VD進行均衡處理的過程。
例如,在對存儲池進行擴容之后,如果需要創建資源,則在資源創建之前,可以設置創建標記,在按照步驟201的方式創建資源之后,在資源創建完成時,則清除該創建標記,并按照步驟202的方式執行對K個PD和M個PD中的VD進行均衡處理的過程。假設在執行對K個PD和M個PD中的VD進行均衡處理的過程中,又需要創建資源,則在資源創建之前,還可以設置創建標記,且 不再執行對K個PD和M個PD中的VD進行均衡處理的過程,而是按照步驟201的方式創建資源,以此類推,如果有創建資源的需求,則執行步驟201,只有在沒有創建資源的需求時,才會執行步驟202,一直到K個PD和M個PD的利用率保持在平均利用率的有效范圍之內。
基于上述技術方案,本發明實施例中,在對存儲池進行擴容之后,即使擴容前的K個PD的利用率遠大于擴容后的M個PD的利用率,在資源創建過程中,是從所有PD(擴容前的K個PD和擴容后的M個PD)中選擇用于創建資源的VD,如從所有PD中選取VD來創建VDG,而不是從擴容后的M個PD中選擇用于創建資源的VD。基于此,當存儲池中的任意一個PD發生故障時,會觸發重構過程,此時基于所有PD的數據恢復故障PD的數據,即存儲池中的所有PD都會參與重構過程,參與到重構過程中的PD數量較多,大大提高重構速度,而且保證擴容不會導致重構效率的降低,減輕擴容后的M個PD的重構壓力,同時減輕對業務的影響。進一步的,由于存儲池中有任意一個PD發生故障時,存儲池中的所有PD(擴容前的K個PD和擴容后的M個PD)都會參與重構過程,從而消除對單個PD的依賴;當存儲池中的每個PD的IO(InputOutput,輸入輸出)壓力相當時,對業務IO的影響就會降低,從而減輕對業務的影響。
例如,當存儲池中的任意一個PD(如PD6)發生故障時,會觸發重構過程,此時基于所有PD(PD1、PD2、PD3、PD4、PD5、PD7、PD8、PD9)中的數據恢復PD6中的數據,即存儲池中的所有PD都會參與重構過程,參與到重構過程中的PD數量較多,大大提高重構速度,保證擴容不會導致重構效率的降低,減輕擴容后的PD(PD7、PD8、PD9)的重構壓力,同時減輕對業務的影響。
基于與上述方法同樣的發明構思,本發明實施例中還提供了一種資源創建的裝置,該資源創建的裝置可以應用在存儲設備中。其中,該資源創建的裝置可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,資源創建的裝置是通過其所在的存儲設備的處理器,將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖4所示,為本發明提出的資源創建的裝置所在的存 儲設備的一種硬件結構圖,除了圖4所示的處理器、網絡接口、內存以及非易失性存儲器外,存儲設備還可以包括其他硬件,如負責處理報文的轉發芯片等;從硬件結構上來講,該存儲設備還可能是分布式設備,可能包括多個接口卡,以便在硬件層面進行報文處理的擴展。
如圖5所示,為本發明提出的資源創建的裝置的結構圖,在存儲池內包括擴容前的K個PD和擴容后的M個PD,其中,所述K為正整數,所述M為正整數,且所述資源創建的裝置具體包括:選擇模塊11,用于在資源創建過程中,從K個PD和M個PD中選擇用于創建資源的VD;其中,選擇的VD均勻分布在K個PD和M個PD中;處理模塊12,用于在資源創建完成之后,對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內。
本發明實施例中,所述選擇模塊11,具體用于在從所述K個PD和所述M個PD中,選擇用于創建資源的虛擬磁盤VD的過程中,按照偽隨機算法和本次資源創建時PD上占用的VD均衡算法,從所述K個PD和所述M個PD中選擇用于創建資源的VD,且選擇的用于組建同一個VDG的多個VD不能位于同一個PD上。
所述處理模塊12,還用于在資源創建之前,則設置創建標記;在資源創建完成之后,則清除所述創建標記;其中,如果當前存在所述創建標記,則不允許所述處理模塊12執行對所述K個PD和M個PD中的VD進行均衡處理的過程;如果當前不存在所述創建標記,則允許所述處理模塊12執行對所述K個PD和M個PD中的VD進行均衡處理的過程。
所述處理模塊12,具體用于在對所述K個PD和所述M個PD中的VD進行均衡處理,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內的過程中,將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD上,以使所述K個PD和所述M個PD的利用率保持在平均利用率的有效范圍之內;在將所述K個PD中的部分VD的數據遷移到所述M個PD中的VD時,針對所述K個PD中的位于同一個VDG的多個VD,所述多個VD 中遷移部分VD的數據到所述M個PD中對應個數的VD上。
本發明實施例中,所述平均利用率的有效范圍具體包括:[N*(1-x%),N*(1+x%)],所述N為平均利用率,x為預設閾值;所述平均利用率N=((a%+b%)*K+b%*M)/(K+M);其中,a%為在資源創建過程之前,所述K個PD中的每個PD的利用率,b%為在資源創建過程中,所述K個PD和所述M個PD中的每個PD的利用率。
其中,本發明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。本領域技術人員可以理解附圖只是一個優選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發明所必須的。
本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可進一步拆分成多個子模塊。上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
以上公開的僅為本發明的幾個具體實施例,但是,本發明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發明的保護范圍。

關 鍵 詞:
一種 資源 創建 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種資源創建的方法和裝置.pdf
鏈接地址:http://www.rgyfuv.icu/p-6409460.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图