本發(fā)明涉及計算機數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于選舉的節(jié)點服務(wù)器管理方法、裝置及系統(tǒng)。
背景技術(shù):
隨著大數(shù)據(jù)時代的來臨,分布式存儲系統(tǒng)的應(yīng)用越來越廣泛,隨之而來的是高效利用存儲數(shù)據(jù)的計算需求,同時,為了提高實時性和強可用性,需要借助專門的節(jié)點服務(wù)器來主導(dǎo)生成和管理計算作業(yè),該專門的節(jié)點服務(wù)器稱之為管理(LEADER)節(jié)點服務(wù)器。
采用集群文件鎖的方式來管理集群作業(yè),雖然能夠避免相同的計算作業(yè)被多次執(zhí)行所造成的資源浪費,但是集群文件鎖在使用上非常復(fù)雜并且難以管理。同時計算作業(yè)的生成需要通過LEADER節(jié)點服務(wù)器來進行管理,然而當(dāng)前很多集群的LEADER節(jié)點服務(wù)器選擇方法也主要以集群文件鎖的方式來實現(xiàn)。
另外,在分布式存儲系統(tǒng)下,當(dāng)前的LEADER節(jié)點服務(wù)器選擇方法過于隨機化,各個節(jié)點服務(wù)器的地位通常是區(qū)域平等的。但是,在各種需要LEADER節(jié)點服務(wù)器的場景下,需要更優(yōu)質(zhì)的節(jié)點服務(wù)器作為LEADER節(jié)點服務(wù)器,絕不是任意的節(jié)點服務(wù)器都能夠作為LEADER節(jié)點服務(wù)器。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種基于選舉的節(jié)點服務(wù)器管理方法、裝置及系統(tǒng)。所述技術(shù)方案如下:
一方面,提供了一種基于選舉的節(jié)點服務(wù)器管理方法,包括如下步驟:
在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含節(jié)點服務(wù)器評估分值;
周期性的統(tǒng)計所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新;
根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合選舉策略,選舉出管理節(jié)點服務(wù)器;
所述管理節(jié)點服務(wù)器根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合任務(wù)分配策略,進行任務(wù)分配。
進一步的,所述在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含節(jié)點服務(wù)器評估分值的步驟具體包括:
每一個節(jié)點服務(wù)器分別在存儲系統(tǒng)中注冊各自的節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含該節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值;
或者在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含所有節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值。
進一步的,所述節(jié)點服務(wù)器評估分值由起始節(jié)點服務(wù)器評估分值減去損耗值得到,其中,所述起始節(jié)點服務(wù)器評估分值設(shè)置為固定值,所述損耗值根據(jù)損耗規(guī)則計算得出,所述損耗規(guī)則包括以下至少之一:
當(dāng)節(jié)點服務(wù)器的總CPU使用率超過預(yù)設(shè)比例時,所述總CPU使用率乘以比例系數(shù)計算得到分值并加入損耗值;
當(dāng)節(jié)點服務(wù)器的內(nèi)存使用率超過預(yù)設(shè)比例時,所述內(nèi)存使用率乘以比例系數(shù)計算得到分值并加入損耗值;
節(jié)點服務(wù)器的IOWAIT值和LOAD值直接加入損耗值。
進一步的,所述周期性的統(tǒng)計所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新的步驟具體包括:
每隔固定周期同時統(tǒng)計所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新;
或者每隔固定時間統(tǒng)計單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,當(dāng)對所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值統(tǒng)計完成后,對單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值進行下一周期的統(tǒng)計。
進一步的,所述選舉策略包括以下至少之一:
最先完成信息注冊的節(jié)點服務(wù)器,首先成為管理節(jié)點服務(wù)器;
當(dāng)舊管理節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值低于固定比例的有效節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值時,節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器當(dāng)選為新管理節(jié)點服務(wù)器;
當(dāng)舊管理節(jié)點服務(wù)器變?yōu)闊o效節(jié)點服務(wù)器時,節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器當(dāng)選為新管理節(jié)點服務(wù)器。
進一步的,所述有效節(jié)點服務(wù)器為能夠周期性更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器;所述無效節(jié)點服務(wù)器為不能夠周期性更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器。
進一步的,所述分配策略包括以下至少之一:
所述管理節(jié)點服務(wù)器根據(jù)所述有效節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值與當(dāng)前未完成任務(wù)數(shù),按照所述節(jié)點服務(wù)器評估分值越高分配任務(wù)越多的原則,進行任務(wù)分配;
當(dāng)所述有效節(jié)點服務(wù)器變?yōu)樗鰺o效節(jié)點服務(wù)器時,所述管理節(jié)點服務(wù)器將所述失效節(jié)點服務(wù)器承擔(dān)的任務(wù)進行重新分配。
另一方面,提供了一種基于選舉的節(jié)點服務(wù)器管理裝置,包括:
注冊模塊,用于在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含節(jié)點服務(wù)器評估分值;
統(tǒng)計模塊,用于周期性的統(tǒng)計所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新;
選舉模塊,用于根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合選舉策略,得出選舉結(jié)果;
任務(wù)分配模塊,用于在得出所述選舉結(jié)果后,根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合任務(wù)分配策略,進行任務(wù)分配。
進一步的,所述注冊模塊還用于:
分別為每一個節(jié)點服務(wù)器在存儲系統(tǒng)中注冊各自的節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含該節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值;
或者在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含所有節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值。
進一步的,所述統(tǒng)計模塊還用于計算所述節(jié)點服務(wù)器評估分值,所述統(tǒng)計模塊將起始節(jié)點服務(wù)器評估分值減去損耗值得到所述節(jié)點服務(wù)器評估分值,其中,所述起始節(jié)點服務(wù)器評估分值設(shè)置為固定值;
進一步的,所述統(tǒng)計模塊還用于計算損耗值:
當(dāng)節(jié)點服務(wù)器的總CPU使用率超過預(yù)設(shè)比例時,所述統(tǒng)計模塊將所述總CPU使用率乘以比例系數(shù)計算得到分值并加入損耗值;
或者當(dāng)節(jié)點服務(wù)器的內(nèi)存使用率超過預(yù)設(shè)比例時,所述統(tǒng)計模塊將所述內(nèi)存使用率乘以比例系數(shù)計算得到分值并加入損耗值;
或者所述統(tǒng)計模塊將節(jié)點服務(wù)器的IOWAIT值和LOAD值直接加入損耗值。
進一步的,所述統(tǒng)計模塊還用于:
每隔固定周期同時統(tǒng)計所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新;
或者每隔固定時間統(tǒng)計單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,當(dāng)對所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值統(tǒng)計完成后,對單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值進行下一周期的統(tǒng)計。
進一步的,所述選舉模塊還用于:
將最先完成信息注冊的節(jié)點服務(wù)器,選舉為管理節(jié)點服務(wù)器;
或者當(dāng)舊管理節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值低于固定比例的有效節(jié)點服務(wù)器時,將節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器選舉為新管理節(jié)點服務(wù)器;
或者當(dāng)舊管理節(jié)點服務(wù)器變?yōu)闊o效節(jié)點服務(wù)器時,將節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器選舉為新管理節(jié)點服務(wù)器。
進一步的,所述有效節(jié)點服務(wù)器為在指定時間內(nèi)能夠更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器;所述無效節(jié)點服務(wù)器為在指定時間內(nèi)未能夠更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器。
進一步的,所述任務(wù)分配模塊還用于:
根據(jù)所述有效節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值與當(dāng)前未完成任務(wù)數(shù),按照所述節(jié)點服務(wù)器評估分值越高分配任務(wù)越多的原則,進行任務(wù)分配;
或者當(dāng)所述有效節(jié)點服務(wù)器變?yōu)樗鰺o效節(jié)點服務(wù)器時,將所述失效節(jié)點服務(wù)器承擔(dān)的任務(wù)進行重新分配。
再一方面,提供了一種存儲系統(tǒng),包括所述的基于選舉的節(jié)點服務(wù)器管理裝置。
本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
1)本發(fā)明提供的基于節(jié)點服務(wù)器評估分值的選舉策略,克服了管理節(jié)點服務(wù)器選舉的隨機性,保證了性能最優(yōu)的節(jié)點服務(wù)器成為LEADER節(jié)點服務(wù)器。
2)本發(fā)明提供的基于節(jié)點服務(wù)器評估分值的任務(wù)分配策略,按照節(jié)點服務(wù)器評估分值越高分配任務(wù)越多的原則,進行任務(wù)分配,更好地對有效節(jié)點服務(wù)器進行計算作業(yè)的分配與管理,避免了集群文件鎖的復(fù)雜機制,實現(xiàn)了控制同一作業(yè)只在單一節(jié)點服務(wù)器上處理的效果。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例一提供的基于選舉的節(jié)點服務(wù)器管理方法的流程示意圖;
圖2是本發(fā)明實施例二提供的基于選舉的節(jié)點服務(wù)器管理裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細(xì)描述。
實施例一
本發(fā)明實施例提供了一種基于選舉的節(jié)點服務(wù)器管理方法,參見圖1,包括如下步驟:
S101:在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含節(jié)點服務(wù)器評估分值。
本步驟具體包括:每一個節(jié)點服務(wù)器分別在存儲系統(tǒng)中注冊各自的節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含該節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值;或者在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含所有節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值。
本步驟的優(yōu)選實施方式為,每一個節(jié)點服務(wù)器分別在存儲系統(tǒng)中注冊各自的節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含該節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值,具體為所述的節(jié)點服務(wù)器信息文件與存儲系統(tǒng)中的節(jié)點服務(wù)器是一一對應(yīng)的,即每一個節(jié)點服務(wù)器對應(yīng)一個節(jié)點服務(wù)器信息文件,在節(jié)點服務(wù)器信息文件中包含有本節(jié)點服務(wù)器的信息,例如節(jié)點服務(wù)器標(biāo)識、節(jié)點服務(wù)器評估分值。其中,為了確保節(jié)點服務(wù)器信息文件與存儲系統(tǒng)中的節(jié)點服務(wù)器一一對應(yīng),節(jié)點服務(wù)器標(biāo)識需要在該存儲系統(tǒng)中具有唯一性,例如選用IP標(biāo)識,或者其他具有唯一性的標(biāo)識。
在上述節(jié)點服務(wù)器信息文件與存儲系統(tǒng)中的節(jié)點服務(wù)器一一對應(yīng)的情況下,注冊過程可以由本存儲系統(tǒng)中的每一個節(jié)點服務(wù)器自主完成,具體來說,每一個節(jié)點服務(wù)器都能夠訪問存儲系統(tǒng)中的服務(wù)器資源,因而,通過在指定的存儲系統(tǒng)目錄下各個節(jié)點服務(wù)器注冊各自的節(jié)點服務(wù)器信息文件來實現(xiàn)這一注冊過程。
上述注冊過程還可以通過專門的部件進行注冊,例如將注冊功能集中給某個節(jié)點服務(wù)器完成,該節(jié)點服務(wù)器將采集系統(tǒng)中各個節(jié)點服務(wù)器的信息,為每一個節(jié)點服務(wù)器建立節(jié)點服務(wù)器信息文件。
本步驟中的另一實施方式為,在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含所有節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值,具體為該節(jié)點服務(wù)器信息文件包括所有節(jié)點服務(wù)器的信息,例如節(jié)點服務(wù)器標(biāo)識、節(jié)點服務(wù)器評估分值,其中,為了確保節(jié)點服務(wù)器信息文件與存儲系統(tǒng)中的節(jié)點服務(wù)器一一對應(yīng),節(jié)點服務(wù)器標(biāo)識需要在該存儲系統(tǒng)中具有唯一性,例如選用IP標(biāo)識,或者其他具有唯一性的標(biāo)識。在此前提下,該節(jié)點服務(wù)器信息文件的注冊過程由存儲系統(tǒng)完成,存儲系統(tǒng)采集本系統(tǒng)中各個節(jié)點服務(wù)器的信息,并將這些節(jié)點服務(wù)器的信息在該節(jié)點服務(wù)器信息文件中進行整理。
本步驟中,所述節(jié)點服務(wù)器評估分值由起始節(jié)點服務(wù)器評估分值減去損耗值得到,其中,所述起始節(jié)點服務(wù)器評估分值設(shè)置為固定值,所述損耗值根據(jù)損耗規(guī)則計算得出,所述損耗規(guī)則包括以下至少之一:
1)當(dāng)節(jié)點服務(wù)器的總CPU使用率超過預(yù)設(shè)比例時,所述總CPU使用率乘以比例系數(shù)計算得到分值并加入損耗值。例如總CPU使用率的預(yù)設(shè)比例為80%,比例系數(shù)為10,則損耗值增加8。
2)當(dāng)節(jié)點服務(wù)器的內(nèi)存使用率超過預(yù)設(shè)比例時,所述內(nèi)存使用率乘以比例系數(shù)計算得到分值并加入損耗值。例如內(nèi)存使用率的預(yù)設(shè)比例為80%,比例系數(shù)為10,則損耗值增加8。
3)節(jié)點服務(wù)器的IOWAIT值和LOAD值直接加入損耗值。例如IOWAIT值為2.5,則損耗值增加2.5,如果LOAD值為2,則損耗值增加2。
具體地,如果采取百分制,則上述起始節(jié)點服務(wù)器評估分值設(shè)置為100,如果采取十分制,則上述起始節(jié)點服務(wù)器評估分值設(shè)置為10。當(dāng)然,起始節(jié)點服務(wù)器評估分值還可以設(shè)置為其他固定值,技術(shù)人員可以根據(jù)實際操作的便利程度進行設(shè)置。
需要注意的是,損耗值的計算不僅僅局限于上述損耗規(guī)則,技術(shù)人員可以根據(jù)實際應(yīng)用來刪除上述損耗規(guī)則,或者新增損耗規(guī)則。
S102:周期性的統(tǒng)計所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新。
由于各個節(jié)點服務(wù)器的CPU資源消耗、內(nèi)存占用及系統(tǒng)性能情況總是在動態(tài)變化,各個節(jié)點服務(wù)器的性能不是一成不變的,因而需要周期性的對每個節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值進行重新統(tǒng)計,并且將重新統(tǒng)計后的節(jié)點服務(wù)器評估分值在節(jié)點服務(wù)器信息文件中進行更新,進而為下一步驟提供可靠的數(shù)據(jù)基礎(chǔ)。
本步驟具體包括:每隔固定周期同時統(tǒng)計所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新;或者每隔固定時間統(tǒng)計單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,當(dāng)對所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值統(tǒng)計完成后,對單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值進行下一周期的統(tǒng)計。
本步驟的優(yōu)選實施方式為,每隔固定周期同時統(tǒng)計所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,具體為每隔固定周期,例如每隔兩個機器周期,對所有節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值同時統(tǒng)計,并將節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,這樣能夠?qū)崟r反映當(dāng)下所有節(jié)點服務(wù)器的性能情況,為下一步驟提供可靠的數(shù)據(jù)基礎(chǔ)。
需要注意的是,上述周期的選定是可變的,并且該周期與最終選舉出來的管理節(jié)點服務(wù)器密切相關(guān)。例如,當(dāng)選定的周期過長,會延長每一任管理節(jié)點服務(wù)器的管理期限,假設(shè)當(dāng)前的管理節(jié)點服務(wù)器已不再適合作為管理節(jié)點服務(wù)器,因上述周期過長,會推遲管理節(jié)點服務(wù)器的更換,進而影響整個存儲系統(tǒng)的處理任務(wù)的性能。當(dāng)選定的周期過短,頻繁的統(tǒng)計又會增加統(tǒng)計各個節(jié)點服務(wù)器信息的代價,進而占用較多資源,影響整個存儲系統(tǒng)處理任務(wù)的性能。因而,系統(tǒng)資源豐富并且對性能要求高的系統(tǒng),可以選定一個較短的周期;系統(tǒng)資源緊張對性能要求不高的系統(tǒng),可以選定一個較長的周期。
本步驟中的另一實施方式為,每隔固定時間統(tǒng)計單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,當(dāng)對所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值統(tǒng)計完成后,對單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值進行下一周期的統(tǒng)計,本實施方式與上述優(yōu)選實施方式的區(qū)別在于,本實施方式不是對所有節(jié)點服務(wù)器同時進行統(tǒng)計。采用不同時統(tǒng)計的實施方式,能夠節(jié)省系統(tǒng)資源,但降低了統(tǒng)計的可靠性,因為各個節(jié)點服務(wù)器的性能是動態(tài)變化的,可以通過縮小統(tǒng)計的間隔時間來提高本實施方式的可靠性。
S103:根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合選舉策略,選舉出管理節(jié)點服務(wù)器。
在本步驟中,總的選舉原則是,選舉性能最優(yōu)異的節(jié)點服務(wù)器,即節(jié)點服務(wù)器評估分值最高的節(jié)點服務(wù)器,作為管理節(jié)點服務(wù)器??紤]到具體情況,較佳為同時結(jié)合選舉策略,進行管理節(jié)點服務(wù)器的選舉。
所述選舉策略包括以下至少之一:
1)最先完成信息注冊的節(jié)點服務(wù)器,首先成為管理節(jié)點服務(wù)器。在集群搭建初期,整個存儲系統(tǒng)的節(jié)點服務(wù)器較少,第一個加入的節(jié)點服務(wù)器,也就是最先完成信息注冊的節(jié)點服務(wù)器自動成為管理節(jié)點服務(wù)器,接管任務(wù)列表,進行任務(wù)分配。隨著集群規(guī)模擴大,當(dāng)有性能更優(yōu)異的節(jié)點服務(wù)器大量出現(xiàn)時,會觸發(fā)選舉,例如超過一半的節(jié)點服務(wù)器比最先完成信息注冊的節(jié)點服務(wù)器性能更優(yōu)異,選舉觸發(fā),進而選舉出新的管理節(jié)點服務(wù)器。
2)當(dāng)舊管理節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值低于固定比例的有效節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值時,節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器當(dāng)選為新管理節(jié)點服務(wù)器??紤]到管理節(jié)點服務(wù)器的頻繁變動不利于整個存儲系統(tǒng)性能的發(fā)揮,進而需要對選舉的觸發(fā)進行限定。例如該固定比例設(shè)置為為50%,當(dāng)舊管理節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值低于50%的有效節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值時,表明舊管理節(jié)點服務(wù)器的性能低于50%的有效節(jié)點服務(wù)器,此時,舊管理節(jié)點服務(wù)器已不適合繼續(xù)作為管理節(jié)點服務(wù)器,自然需要重新選舉新管理節(jié)點服務(wù)器。當(dāng)舊管理節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值高于50%的有效節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值時,表明舊管理節(jié)點服務(wù)器的性能處于平均水平之上,仍然可以作為管理節(jié)點服務(wù)器。
需要注意的是,上述固定比例可以根據(jù)系統(tǒng)性能的具體要求進行設(shè)置,如果系統(tǒng)性能要求較高,可以設(shè)置成30%,進而保證管理節(jié)點服務(wù)器維持在較高的性能。
3)當(dāng)舊管理節(jié)點服務(wù)器變?yōu)闊o效節(jié)點服務(wù)器時,節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器當(dāng)選為新管理節(jié)點服務(wù)器。在這種情況下,必須進行管理節(jié)點服務(wù)器的選舉,因為當(dāng)舊管理節(jié)點服務(wù)器變?yōu)闊o效節(jié)點服務(wù)器時,舊管理節(jié)點服務(wù)器自然無法承擔(dān)起管理職責(zé),需要馬上選舉出新管理節(jié)點服務(wù)器。
上述選舉策略,克服了管理節(jié)點服務(wù)器選舉的隨機性,能夠保證符合預(yù)期的優(yōu)質(zhì)節(jié)點服務(wù)器,即節(jié)點服務(wù)器評估分值最高的節(jié)點服務(wù)器,成為管理節(jié)點服務(wù)器。同時,當(dāng)所選舉出的管理節(jié)點服務(wù)器即使仍然存活,但如果不能達(dá)到預(yù)期效果,影響到對計算作業(yè)生成與管理任務(wù)的處理效率,也能夠及時選舉出性能更優(yōu)異的管理節(jié)點服務(wù)器。
在本步驟中,所述有效節(jié)點服務(wù)器為能夠周期性更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器;所述無效節(jié)點服務(wù)器為不能夠周期性更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器。假設(shè)節(jié)點服務(wù)器不能夠周期性更新節(jié)點服務(wù)器信息文件,意味著該節(jié)點服務(wù)器脫落,與存儲系統(tǒng)失去聯(lián)系,也就成為了無效節(jié)點服務(wù)器。
S104:所述管理節(jié)點服務(wù)器根據(jù)節(jié)點服務(wù)器評估分值并結(jié)合任務(wù)分配策略,進行任務(wù)分配。
選舉出的管理節(jié)點服務(wù)器將自動承接計算作業(yè)生成與分配的任務(wù),當(dāng)舊管理節(jié)點服務(wù)器失效后,由新管理節(jié)點服務(wù)器接替舊管理節(jié)點服務(wù)器未完成的任務(wù)。
本步驟中,所述分配策略包括以下至少之一:
1)所述管理節(jié)點服務(wù)器根據(jù)所述有效節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值與當(dāng)前未完成任務(wù)數(shù),按照所述節(jié)點服務(wù)器評估分值越高分配任務(wù)越多的原則,進行任務(wù)分配。
2)當(dāng)所述有效節(jié)點服務(wù)器變?yōu)樗鰺o效節(jié)點服務(wù)器時,所述管理節(jié)點服務(wù)器將所述失效節(jié)點服務(wù)器承擔(dān)的任務(wù)進行重新分配。管理節(jié)點服務(wù)器隨時關(guān)注有效節(jié)點服務(wù)器的變化,當(dāng)發(fā)現(xiàn)有效節(jié)點服務(wù)器變?yōu)樗鰺o效節(jié)點服務(wù)器時,及時為失效節(jié)點服務(wù)器的任務(wù)列表進行重新分配安排,并且還能夠為新增的有效節(jié)點服務(wù)器進行任務(wù)分配。
上述任務(wù)分配策略,能夠使所有生成的計算作業(yè)按照預(yù)期被處理完成,更好地對有效節(jié)點服務(wù)器進行計算作業(yè)的分配與管理,避免集群文件鎖的復(fù)雜機制就能夠?qū)崿F(xiàn)控制同一作業(yè)只在單一節(jié)點服務(wù)器上處理的效果。
實施例二
參見圖2,本發(fā)明實施例提供了一種基于選舉的節(jié)點服務(wù)器管理裝置,可以執(zhí)行實施例一中提供的一種基于選舉的節(jié)點服務(wù)器管理方法,包括:
注冊模塊211,用于在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含節(jié)點服務(wù)器評估分值。
統(tǒng)計模塊212,用于周期性的統(tǒng)計所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新。
選舉模塊213,用于根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合選舉策略,得出選舉結(jié)果。
任務(wù)分配模塊214,用于在得出所述選舉結(jié)果后,根據(jù)所述節(jié)點服務(wù)器評估分值并結(jié)合任務(wù)分配策略,進行任務(wù)分配。
在本實施例中,所述注冊模塊211還用于:
分別為每一個節(jié)點服務(wù)器在存儲系統(tǒng)中注冊各自的節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含該節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值。
或者在存儲系統(tǒng)中注冊節(jié)點服務(wù)器信息文件,所述節(jié)點服務(wù)器信息文件包含所有節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值。
在本實施例中,所述統(tǒng)計模塊212還用于計算所述節(jié)點服務(wù)器評估分值,所述統(tǒng)計模塊212將起始節(jié)點服務(wù)器評估分值減去損耗值得到所述節(jié)點服務(wù)器評估分值,其中,所述起始節(jié)點服務(wù)器評估分值設(shè)置為固定值。
所述統(tǒng)計模塊212還用于計算損耗值:
當(dāng)節(jié)點服務(wù)器的總CPU使用率超過預(yù)設(shè)比例時,所述統(tǒng)計模塊212將所述總CPU使用率乘以比例系數(shù)計算得到分值并加入損耗值。
或者當(dāng)節(jié)點服務(wù)器的內(nèi)存使用率超過預(yù)設(shè)比例時,所述統(tǒng)計模塊212將所述內(nèi)存使用率乘以比例系數(shù)計算得到分值并加入損耗值。
或者所述統(tǒng)計模塊212將節(jié)點服務(wù)器的IOWAIT值和LOAD值直接加入損耗值。
在本實施例中,所述統(tǒng)計模塊212還用于:
每隔固定周期同時統(tǒng)計所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新。
或者每隔固定時間統(tǒng)計單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值,并將所述節(jié)點服務(wù)器評估分值在所述節(jié)點服務(wù)器信息文件中進行更新,當(dāng)對所有節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值統(tǒng)計完成后,對單個節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值進行下一周期的統(tǒng)計。
在本實施例中,所述選舉模塊213還用于:
將最先完成信息注冊的節(jié)點服務(wù)器,選舉為管理節(jié)點服務(wù)器。
或者當(dāng)舊管理節(jié)點服務(wù)器的節(jié)點服務(wù)器評估分值低于固定比例的有效節(jié)點服務(wù)器時,將節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器選舉為新管理節(jié)點服務(wù)器。
或者當(dāng)舊管理節(jié)點服務(wù)器變?yōu)闊o效節(jié)點服務(wù)器時,將節(jié)點服務(wù)器評估分值最高的有效節(jié)點服務(wù)器選舉為新管理節(jié)點服務(wù)器。
在本實施例中,所述有效節(jié)點服務(wù)器為在指定時間內(nèi)能夠更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器;所述無效節(jié)點服務(wù)器為在指定時間內(nèi)未能夠更新節(jié)點服務(wù)器信息文件的節(jié)點服務(wù)器。
在本實施例中,所述任務(wù)分配模塊214還用于:
根據(jù)所述有效節(jié)點服務(wù)器的所述節(jié)點服務(wù)器評估分值與當(dāng)前未完成任務(wù)數(shù),按照所述節(jié)點服務(wù)器評估分值越高分配任務(wù)越多的原則,進行任務(wù)分配。
或者當(dāng)所述有效節(jié)點服務(wù)器變?yōu)樗鰺o效節(jié)點服務(wù)器時,將所述失效節(jié)點服務(wù)器承擔(dān)的任務(wù)進行重新分配。
實施例三
本發(fā)明實施例還提供了一種存儲系統(tǒng),包括實施例二中所述的基于選舉的節(jié)點服務(wù)器管理裝置。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。