本發明涉及分布式存儲系統技術領域,更具體地說,涉及一種CEPH系統的資源優化方法及裝置。
背景技術:
CEPH致力于提供高擴展性、高可靠性、高性能的分布式存儲系統,CEPH的底層實現是Rados(Reliable Autonomic Distributed Object Storage),Rados是CEPH的基石,包含了OSD(對象存儲設備)設備、MON(監視器)服務等重要的組件。其中,OSD設備提供存儲資源,可以是一塊Disk、分區等,MON服務維護整個CEPH系統的全局狀態,包含各種MAP信息。
而對于CEPH系統的部署,通常采用官方提供的CEPH Deploy工具實現。具體來說,管理員通過預先規劃的MON服務和OSD設備的信息,借助于Deploy工具進行MON服務及OSD設備的部署,進而實現CEPH系統的部署。然而,由于MON服務及OSD設備的部署規劃是由管理員來實現的,因此可能由于管理員的各種主觀因素而無法確保每次的部署都是合理的。而不合理的部署會降低系統的穩定性,同時也會造成資源的浪費和加大后期維護成本,尤其會對正在運行的業務帶來不可預估的影響。
綜上所述,如何提供一種能夠實現CEPH系統的合理部署方案,是目前本領域技術人員亟待解決的問題。
技術實現要素:
本發明的目的是提供一種CEPH系統的資源優化方法及裝置,以實現CEPH系統的合理部署。
為了實現上述目的,本發明提供如下技術方案:
一種CEPH系統的資源優化方法,包括:
確定CEPH系統的主機集合中每個主機的OSD設備數量為該主機的OSD資源分數;
基于主機集合中每個主機的OSD設備的總容量及RAM設備的總容量計算該主機的RAM資源分數;
基于所述OSD資源分數及所述RAM資源分數計算每個主機的主機資源分數;
確定所述主機資源分數越高的主機被分配MON服務的優先級越高,并基于每個主機的優先級部署MON服務。
優選的,還包括:
當需要移除目標OSD設備時,如果該目標OSD設備所在主機部署有MON服務且該目標OSD設備是其所在主機上唯一的OSD設備,則基于主機集合中每個主機的OSD設備數量計算該主機的OSD資源分數;
對應的,基于每個主機的優先級部署MON服務,包括:
為優先級最高的主機部署MON服務,并在部署完成后將所述目標OSD設備所在主機的MON服務移除。
優選的,還包括:
如果所述目標OSD設備所在主機未部署有MON服務或者所述目標OSD設備不是其所在主機上唯一的OSD設備,則將所述目標OSD設備移除。
優選的,基于主機集合中每個主機的OSD設備數量、每個OSD設備容量及RAM設備的容量計算該主機的RAM資源分數,包括:
按照下列公式計算RAM資源分數:
ram_score(host)=1-[N(TB)*GB+1GB]/Total_ram
其中,ram_score(host)表示任一主機的RAM資源分數,Total_ram表示該主機中RAM設備的總容量,N(TB)表示該主機中OSD設備的總容量,以TB為單位。
優選的,基于所述OSD資源分數及所述RAM資源分數計算每個主機的主機資源分數,包括:
確定所述OSD資源分數及所述RAM資源分數的乘積結果為對應主機的主機資源分數。
一種CEPH系統的資源優化裝置,包括:
第一分數計算模塊,用于確定CEPH系統的主機集合中每個主機的OSD設備數量為該主機的OSD資源分數;
第二分數計算模塊,用于基于主機集合中每個主機的OSD設備的總容量及RAM設備的總容量計算該主機的RAM資源分數;
第三分數計算模塊,用于基于所述OSD資源分數及所述RAM資源分數計算每個主機的主機資源分數;
部署方案確定模塊,用于確定所述主機資源分數越高的主機被分配MON服務的優先級越高,并基于每個主機的優先級部署MON服務。
優選的,還包括:
預判控制模塊,用于當需要移除目標OSD設備時,如果該目標OSD設備所在主機部署有MON服務且該目標OSD設備是其所在主機上唯一的OSD設備,則控制第一分數計算模塊基于主機集合中每個主機的OSD設備數量計算該主機的OSD資源分數;
對應的,部署方案確定模塊包括:
部署單元,用于為優先級最高的主機部署MON服務,并在部署完成后將所述目標OSD設備所在主機的MON服務移除。
優選的,預判控制模塊還包括:
移除單元,用于如果所述目標OSD設備所在主機未部署有MON服務或者所述目標OSD設備不是其所在主機上唯一的OSD設備,則將所述目標OSD設備移除。
優選的,第二分數計算模塊包括:
第二分數計算單元,用于按照下列公式計算RAM資源分數:
ram_score(host)=1-[N(TB)*GB+1GB]/Total_ram
其中,ram_score(host)表示任一主機的RAM資源分數,Total_ram表示該主機中RAM設備的總容量,N(TB)表示該主機中OSD設備的總容量,以TB為單位。
優選的,第三分數計算模塊包括:
第三分數計算單元,用于確定所述OSD資源分數及所述RAM資源分數的乘積結果為對應主機的主機資源分數。
本發明提供了一種CEPH系統的資源優化方法及裝置,其中,該方法包括:確定CEPH系統的主機集合中每個主機的OSD設備數量為該主機的OSD資源分數;基于主機集合中每個主機的OSD設備的總容量及RAM設備的總容量計算該主機的RAM資源分數;基于所述OSD資源分數及所述RAM資源分數計算每個主機的主機資源分數;確定所述主機資源分數越高的主機被分配MON服務的優先級越高,并基于每個主機的優先級部署MON服務。本申請公開的上述技術方案,通過對主機OSD設備及RAM設備的相關計算,確定出主機資源分數,并最終確定主機資源分數越高的主機被部署MON服務的優先級越高,由此,管理員只需關注OSD設備的部署,而本申請會根據OSD設備的部署得到最優的MON服務部署方案,從而在一定程度上避免了由于管理員的主觀因素造成的MON服務部署的不合理,進而保證了CEPH系統的部署合理性。同時,由于管理員只需關系OSD設備的部署,即MON服務的部署對管理員是透明的,從而降低了部署的學習成本。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明實施例提供的一種CEPH系統的資源優化方法的流程圖;
圖2為本發明實施例提供的一種CEPH系統的資源優化方法中具體實施場景的設備布局圖;
圖3為本發明實施例提供的一種CEPH系統的資源優化裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參閱圖1,其示出了本發明實施例提供的一種CEPH系統的資源優化方法的流程圖,可以包括以下步驟:
S11:確定CEPH系統的主機集合中每個主機的OSD設備數量為該主機的OSD資源分數。
其中,確定主機集合可以是根據CEPH系統提供主機信息獲取的,主機集合可以是指CEPH系統中包含的全部主機,或者是指待被部署MON服務的備選主機,具體可以根據實際需要進行確定。每個主機所包含的OSD設備數量可能相同也可能不同,本申請中利用每個主機所包含的OSD設備的數量為該主機的OSD資源打分。這種方案是從避免不必要的MON服務遷移和減少主機資源占用率方面考慮從而實現的,也就是說,OSD資源分數越高的主機被部署的MON服務越不容易被遷移,同時能夠減少主機資源占用率。
S12:基于主機集合中每個主機的OSD設備的總容量及RAM設備的總容量計算該主機的RAM資源分數。
通過OSD設備的總容量以及RAM設備的總容量計算對應主機的RAM資源分數,從而能夠在計算主機資源分數時充分考慮到該主機的OSD設備資源及RAM設備資源,為MON服務的部署提供依據。具體來說,該步驟是考慮到各主機的RAM設備、MON服務及OSD設備對應進程造成的內存消耗進而實現的,由此,能夠使得上述設備或服務對應的進程造成的內存消耗最低。
S13:基于OSD資源分數及RAM資源分數計算每個主機的主機資源分數。
S14:確定主機資源分數越高的主機被分配MON服務的優先級越高,并基于每個主機的優先級部署MON服務。
其中,主機資源分數越高的主機被分配MON服務的優先級越高,在部署MON服務時優先給主機資源分數越高的主機部署,而如果存在主機資源分數相同的多個主機,則可以按照實際需要或者隨機為其排序,以保證MON服務合理部署的實現。根據上述考慮可知,最后得出的主機資源分數越高,代表該主機被主動和被動回收的概率越小,主機資源利用率越高,因此,優先為優先級高的主機部署MON服務,不僅能夠減少MON服務的遷移,還能夠保證較高的主機利用率。
本申請公開的上述技術方案,通過對主機OSD設備及RAM設備的相關計算,確定出主機資源分數,并最終確定主機資源分數越高的主機被部署MON服務的優先級越高,由此,管理員只需關注OSD設備的部署,而本申請會根據OSD設備的部署得到最優的MON服務部署方案,從而在一定程度上避免了由于管理員的主觀因素造成的MON服務部署的不合理,進而保證了CEPH系統的部署合理性。同時,由于管理員只需關系OSD設備的部署,即MON服務的部署對管理員是透明的,從而降低了部署的學習成本。
需要說明的是,本發明實施例提供的上述技術方案可以用于部署CEPH系統時,還可以用于當需要回收主機并移除其上的OSD設備時,具體來說,本發明實施例提供的一種CEPH系統的資源優化方法,還可以包括:
當需要移除目標OSD設備時,如果該目標OSD設備所在主機部署有MON服務且該目標OSD設備是其所在主機上唯一的OSD設備,則基于主機集合中每個主機的OSD設備數量計算該主機的OSD資源分數。
對應的,基于每個主機的優先級部署MON服務,包括:
為優先級最高的主機部署MON服務,并在部署完成后將目標OSD設備所在主機的MON服務移除;
而如果目標OSD設備所在主機未部署有MON服務或者目標OSD設備不是其所在主機上唯一的OSD設備,則將目標OSD設備移除。
CEPH系統運行過程中,OSD設備的增加和刪除是經常發生的,如何利用最少主機資源提供可靠穩定的CEPH存儲服務,需要考慮在移除OSD設備過程中MON服務的自動遷移。本發明公開的上述技術方案中,在需要移除目標OSD設備時,首先判斷該目標OSD所在主機是否部署MON服務,若未部署,則正常移除目標OSD設備;若已經部署MON服務,則需要判斷目標OSD設備對于當前主機是否唯一,若不唯一,則正常移除目標OSD設備,若唯一,則需要考慮將該MON服務遷移至其他主機,釋放該主機,實現主機資源回收。本申請中通過上述步驟S11至步驟S14的技術方案實現主機的優先級確定,對應的,只需選擇主機資源分數最高的主機,即被部署MON服務優先級最高的主機部署MON服務,并在部署完成后將目標OSD設備所在主機的MON服務移除,即可實現MON服務的自動遷移;由此,避免了MON服務單獨占用主機資源的場景,保證CEPH系統占用最少的主機資源提供穩定可靠的服務,同時先遷移MON服務后移除OSD設備的操作也避免了移除OSD設備帶來的數據遷移壓力。另外,此時需要參與上述評分的主機可以為未部署MON服務的主機。
本發明實施例提供的一種CEPH系統的資源優化方法,基于主機集合中每個主機的OSD設備數量、每個OSD設備容量及RAM設備的容量計算該主機的RAM資源分數,可以包括:
按照下列公式計算RAM資源分數:
ram_score(host)=1-[N(TB)*GB+1GB]/Total_ram
其中,ram_score(host)表示任一主機的RAM資源分數,Total_ram表示該主機中RAM設備的總容量,N(TB)表示該主機中OSD設備的總容量,以TB為單位。具體來說,任一主機中OSD設備的總容量即為該主機中全部OSD設備的容量之和,對應的,任一主機中RAM設備的總容量即為該主機中全部RAM設備的容量之和。
按照上述公式計算RAM資源分數,能夠充分考慮到各主機的RAM設備、MON服務及OSD設備對應進程造成的內存消耗進而實現的,由此,能夠使得上述設備或服務對應的進程造成的內存消耗最低。
本發明實施例提供的一種CEPH系統的資源優化方法,基于OSD資源分數及RAM資源分數計算每個主機的主機資源分數,可以包括:
確定OSD資源分數及RAM資源分數的乘積結果為對應主機的主機資源分數。
OSD資源分數越高,對應主機被部署的MON服務越不容易被遷移,同時能夠減少主機資源占用率。而RAM資源分數越高,越能夠降低內存消耗,因此,可以選取上述兩者乘積結果最高的主機為優先級最高的主機;當然還可以根據實際需要按照其他原則設置主機資源分數的計算方式,如OSD資源分數及RAM資源分數相加等,均在本發明的保護范圍之內。
本申請公開的上述技術方案,充分考慮主機集合中各主機的OSD設備、MON服務及RAM設備的內存消耗情況,同時考慮主機資源利用率和后期管理員對CEPH系統維護成本,通過本發明獲取最優的MON服務部署方案,利用最少的主機資源提供可靠穩定的CEPH存儲服務;同時根據管理員預定的OSD設備的部署信息得到最優的MON服務部署方案,從而避免不合理的部署帶來的風險,極大的降低了部署的學習成本。
請參照附圖2,以下對本發明中所公開的上述技術方案進行詳細說明。
如圖2所示,假設主機集合為HOSTS={host0,host1,host2,host3,host4},當需要部署CEPH系統時,首先確定每個主機的OSD資源分數,即:osd_score(host0)=3,osd_score(host1)=1,osd_score(host2)=2,osd_score(host3)=3,osd_score(host4)=0;然后確定每個主機的RAM資源分數,即:ram_score(host0)=0.7500,ram_score(host1)=0.9375,ram_score(host2)=0.8750,ram_score(host3)=0.8333,ram_score(host4)=0.9375;最后確定每個主機的主機資源分數:score(host0)=2.2500,score(host1)=0.9375,score(host2)=1.7500,score(host3)=2.5000,score(host4)=0;本例中需要部署三個MON服務;因此,根據本發明選出的MON服務部署主機依次為:host3,host0和host2;顯然,當管理員回收主機資源時,host1是首先被考慮的,因為該主機上僅部署了一個OSD設備,移除該OSD設備對CEPH系統服務沒有影響,并且具有較大的內存,因而本發明給出的MON服務的部署方案是合理的;
當需要移除OSD4時,首先判斷host2上是否還存在其他OSD設備,此時判斷出還存在OSD5,因而直接將OSD4移除;接著,管理員繼續移除OSD5,并且判斷出OSD5是host2上唯一的OSD設備,則需要考慮MON服務的自動遷移;具體來說,首先,獲取未部署MON服務的主機集合,即HOSTS_WITHOUT_MON={host1,host4};分別確定其主機OSD資源分數,即:osd_score(host1)=1,osd_score(host4)=0和每個主機的RAM資源分數,即:ram_score(host1)=0.9375,ram_score(host4)=0.9375;最終計算得到個每個主機的主機資源分數,即:score(host1)=0.9375,score(host4)=0;因而將MON服務先遷移到host1,即先在host1上部署MON服務,然后將host2上的MON服務移除,完成MON服務的遷移,最后再移除OSD5。顯然,此時,host2上不再存在CEPH資源,主機資源可以被重新回收利用,使得CEPH占用的主機資源從4個{host0,host1,host2,host3}減少為3個{host0,host1,host3}。同時,遷移MON服務對管理員是透明的,不會影響到CEPH系統的業務;并且,先遷移MON服務后移除OSD設備避免了CEPH系統后臺數據負載均衡時帶來的數據遷移對MON遷移的影響。
與上述方法相對應,本發明實施例還提供了一種CEPH系統的資源優化裝置,如圖3所示,包括:
第一分數計算模塊11,用于確定CEPH系統的主機集合中每個主機的OSD設備數量為該主機的OSD資源分數;
第二分數計算模塊12,用于基于主機集合中每個主機的OSD設備的總容量及RAM設備的總容量計算該主機的RAM資源分數;
第三分數計算模塊13,用于基于OSD資源分數及RAM資源分數計算每個主機的主機資源分數;
部署方案確定模塊14,用于確定主機資源分數越高的主機被分配MON服務的優先級越高,并基于每個主機的優先級部署MON服務。
本發明實施例提供的一種CEPH系統的資源優化裝置,還可以包括:
預判控制模塊,用于當需要移除目標OSD設備時,如果該目標OSD設備所在主機部署有MON服務且該目標OSD設備是其所在主機上唯一的OSD設備,則控制第一分數計算模塊基于主機集合中每個主機的OSD設備數量計算該主機的OSD資源分數;
對應的,部署方案確定模塊可以包括:
部署單元,用于為優先級最高的主機部署MON服務,并在部署完成后將目標OSD設備所在主機的MON服務移除。
本發明實施例提供的一種CEPH系統的資源優化裝置,預判控制模塊還可以包括:
移除單元,用于如果目標OSD設備所在主機未部署有MON服務或者目標OSD設備不是其所在主機上唯一的OSD設備,則將目標OSD設備移除。
本發明實施例提供的一種CEPH系統的資源優化裝置,第二分數計算模塊可以包括:
第二分數計算單元,用于按照下列公式計算RAM資源分數:
ram_score(host)=1-[N(TB)*GB+1GB]/Total_ram
其中,ram_score(host)表示任一主機的RAM資源分數,Total_ram表示該主機中RAM設備的總容量,N(TB)表示該主機中OSD設備的總容量,以TB為單位。
本發明實施例提供的一種CEPH系統的資源優化裝置,第三分數計算模塊可以包括:
第三分數計算單元,用于確定OSD資源分數及RAM資源分數的乘積結果為對應主機的主機資源分數。
本發明實施例提供的一種CEPH系統的資源優化裝置中相關部分的說明請參見本發明實施例提供的一種CEPH系統的資源優化方法中對應部分的詳細說明,在此不再贅述。
對所公開的實施例的上述說明,使本領域技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。