本發(fā)明涉及存儲集群技術(shù)領(lǐng)域,特別是涉及一種存儲集群任務管理方法及裝置。
背景技術(shù):
在海量存儲的場景下,存儲器集群規(guī)模越來越大,這勢必造成管理上的困難。隨著被管理節(jié)點的增多,執(zhí)行一條管理命令(即一個管理任務)的時間也會越來越長?,F(xiàn)有技術(shù)中,主流采用的管理框架為,主節(jié)點接收界面下發(fā)的任務,并進行處理,然后將處理結(jié)果推送到各個被管理節(jié)點。然而這種管理框架存在以下弊端,當管理界面下發(fā)大量管理任務時,會消耗管理節(jié)點大量的資源進行這些任務的處理。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種存儲集群任務管理方法及裝置,將下發(fā)任務均衡調(diào)度到集群各個節(jié)點上進行處理,降低管理節(jié)點的壓力。
為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種存儲集群任務管理方法,包括:
存儲集群的主節(jié)點將下發(fā)的任務存放到創(chuàng)建的任務隊列中;
存儲集群的子節(jié)點監(jiān)聽所述任務隊列,從所述任務隊列中獲取分發(fā)給自身的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
所述主節(jié)點對返回的任務處理結(jié)果對應保存。
可選地,創(chuàng)建的任務隊列包括:高優(yōu)先級任務隊列、中優(yōu)先級任務隊列和低優(yōu)先級任務隊列;
其中,所述高優(yōu)先級任務隊列用于存放對cpu占用密集的任務,所述低優(yōu)先級任務隊列用于存放對i/o占用密集的任務,所述中優(yōu)先級任務隊列用于存放對cpu占用情況和對i/o占用情況介于上述兩類之間的任務;
所述子節(jié)點分別監(jiān)聽各優(yōu)先級任務隊列,從各優(yōu)先級任務隊列中分別獲取下發(fā)給自身的任務,并進行處理。
可選地,在所述子節(jié)點中,為處理高優(yōu)先級任務隊列中任務分配的進程數(shù)量,大于為處理低優(yōu)先級任務隊列中任務分配的進程數(shù)量,為處理中優(yōu)先級任務隊列中任務分配的進程數(shù)量介于上述兩者之間。
可選地,在所述主節(jié)點配置有數(shù)據(jù)庫,用于存儲所述任務隊列、所述任務隊列中的任務信息以及保存的任務處理結(jié)果。
可選地,采用所述數(shù)據(jù)庫實現(xiàn)任務的分發(fā)包括:
設(shè)置所述任務隊列的中間件,使該中間件指向所述數(shù)據(jù)庫,將所述任務隊列以及所述任務隊列中的任務信息存儲在所述數(shù)據(jù)庫中;
設(shè)置各所述子節(jié)點指向所述數(shù)據(jù)庫中的任務隊列。
一種存儲集群任務管理裝置,包括:
任務隊列模塊,設(shè)置在存儲集群的主節(jié)點中,用于將下發(fā)的任務存放到創(chuàng)建的任務隊列中;
監(jiān)聽模塊,設(shè)置在存儲集群的子節(jié)點中,用于監(jiān)聽所述任務隊列,從所述任務隊列中獲取分發(fā)給自身的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
保存模塊,用于對返回的任務處理結(jié)果對應保存。
可選地,創(chuàng)建的任務隊列包括:高優(yōu)先級任務隊列、中優(yōu)先級任務隊列和低優(yōu)先級任務隊列;
其中,所述高優(yōu)先級任務隊列用于存放對cpu占用密集的任務,所述低優(yōu)先級任務隊列用于存放對i/o占用密集的任務,所述中優(yōu)先級任務隊列用于存放對cpu占用情況和對i/o占用情況介于上述兩類之間的任務;
所述監(jiān)聽模塊包括第一監(jiān)聽模塊、第二監(jiān)聽模塊和第三監(jiān)聽模塊;
所述第一監(jiān)聽模塊用于監(jiān)聽所述高優(yōu)先級任務隊列,從所述高優(yōu)先級任務隊列中獲取分發(fā)給本子節(jié)點的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
所述第二監(jiān)聽模塊用于監(jiān)聽所述中優(yōu)先級任務隊列,從所述中優(yōu)先級任務隊列中獲取分發(fā)給本子節(jié)點的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
所述第三監(jiān)聽模塊用于監(jiān)聽所述低優(yōu)先級任務隊列,從所述低優(yōu)先級任務隊列中獲取分發(fā)給本子節(jié)點的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點。
可選地,在所述子節(jié)點中,為所述第一監(jiān)聽模塊分配的進程數(shù)量大于為所述第三監(jiān)聽模塊分配的進程數(shù)量,為所述第二監(jiān)聽模塊分配的進程數(shù)量介于上述兩者之間。
可選地,還包括在所述主節(jié)點配置的數(shù)據(jù)庫,所述數(shù)據(jù)庫用于存儲所述任務隊列、所述任務隊列中的任務信息以及保存的任務處理結(jié)果。
由上述技術(shù)方案可知,本發(fā)明所提供的存儲集群任務管理方法及裝置,在存儲集群中,主節(jié)點將下發(fā)的任務存放到創(chuàng)建的任務隊列中,各子節(jié)點監(jiān)聽所述任務隊列,從任務隊列中獲取分發(fā)給自身的任務,進行處理,并在任務處理完成后將任務處理結(jié)果返回到主節(jié)點,主節(jié)點將返回的任務處理結(jié)果對應保存。
本發(fā)明存儲集群任務管理方法及裝置,實現(xiàn)了將下發(fā)的任務負載均衡到存儲集群各個節(jié)點上,與現(xiàn)有方法相比,在下發(fā)大量任務時,可以充分利用存儲集群中各個節(jié)點資源,可避免對主節(jié)點消耗大量的資源,從而降低對主節(jié)點的壓力。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種存儲集群任務管理方法的流程圖;
圖2為本發(fā)明實施例中存儲集群的示意圖;
圖3為本發(fā)明實施例提供的一種存儲集群任務管理裝置的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
請參考圖1,本發(fā)明實施例提供的一種存儲集群任務管理方法,包括步驟:
s10:存儲集群的主節(jié)點將下發(fā)的任務存放到創(chuàng)建的任務隊列中。
需要說明的是,所述的主節(jié)點即指存儲服務器集群中的管理節(jié)點,下文中所述的子節(jié)點即存儲服務器集群中的被管理節(jié)點。
主節(jié)點接收界面下發(fā)的任務,將任務存放到任務隊列中。
在所述主節(jié)點中會預先創(chuàng)建任務隊列。本方法中,創(chuàng)建的任務隊列包括至少兩個優(yōu)先級任務隊列,會根據(jù)任務對cpu的占用情況和對i/o的占用情況,將下發(fā)的任務存放到相應優(yōu)先級的任務隊列中。
更為具體的,可參考圖2,在一種實施方式中,創(chuàng)建的任務隊列包括:高優(yōu)先級任務隊列、中優(yōu)先級任務隊列和低優(yōu)先級任務隊列;
其中,所述高優(yōu)先級任務隊列用于存放對cpu占用密集的任務,所述低優(yōu)先級任務隊列用于存放對i/o占用密集的任務,所述中優(yōu)先級任務隊列用于存放對cpu占用情況和對i/o占用情況介于上述兩類之間的任務。
對cpu占用密集的任務是指任務的執(zhí)行過程較多地需要在cpu中運算,對i/o占用密集的任務是指對數(shù)據(jù)讀取及寫入的過程較多。
s11:存儲集群的子節(jié)點監(jiān)聽所述任務隊列,從所述任務隊列中獲取分發(fā)給自身的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點。
存儲集群中各子節(jié)點監(jiān)聽所述任務隊列,在任務隊列中的任務具有標識信息,標識信息會指示本任務分發(fā)給哪一子節(jié)點處理。
子節(jié)點根據(jù)任務的標識信息,從任務隊列中獲取分發(fā)給自身的任務。
在子節(jié)點中,對任務處理的進程進行守護,防止在處理調(diào)度任務時出現(xiàn)意外宕機,導致任務處理過程中斷。
在創(chuàng)建的任務隊列包括高優(yōu)先級任務隊列、中優(yōu)先級任務隊列和低優(yōu)先級任務隊列的情況下,所述子節(jié)點分別監(jiān)聽各優(yōu)先級任務隊列,分別從各優(yōu)先級任務隊列中獲取下發(fā)給自身的任務,并進行處理。
優(yōu)選的,基于各優(yōu)先級任務隊列中任務對cpu占用情況和對i/o占用情況的不同,分別為處理各優(yōu)先級任務隊列中任務分配不同數(shù)量的進程。這樣有助于提高系統(tǒng)資源的利用率,提高任務處理效率。
更為具體的,在創(chuàng)建的任務隊列包括高優(yōu)先級任務隊列、中優(yōu)先級任務隊列和低優(yōu)先級任務隊列的情況下,相應的,為處理高優(yōu)先級任務隊列中任務分配的進程數(shù)量,大于為處理低優(yōu)先級任務隊列中任務分配的進程數(shù)量,為處理中優(yōu)先級任務隊列中任務分配的進程數(shù)量介于上述兩者之間。
優(yōu)選的,根據(jù)對應各優(yōu)先級任務隊列分配的進程數(shù)量,在處理任務時,為處理任務隊列中任務配置最大并發(fā)進程數(shù)。
本方法中,根據(jù)任務對cpu占用情況和對i/o占用情況將任務劃分到不同優(yōu)先級隊列中,分別進行處理,并分別配置進程數(shù)量,可以提高系統(tǒng)資源的利用率,同時降低了消耗在任務調(diào)度上的時間開銷,提高任務執(zhí)行效率。
s12:所述主節(jié)點對返回的任務處理結(jié)果對應保存。
主節(jié)點將返回的任務處理結(jié)果與任務信息對應保存。用戶通過界面,可以從保存的數(shù)據(jù)中獲取任務處理結(jié)果,查詢?nèi)蝿請?zhí)行情況。
因此,本實施例存儲集群任務管理方法,實現(xiàn)了將下發(fā)的任務負載均衡到存儲集群各個節(jié)點上,與現(xiàn)有方法相比,在下發(fā)大量任務時,可以充分利用存儲集群中各個節(jié)點資源,可避免對主節(jié)點消耗大量的資源,從而降低對主節(jié)點的壓力。另外,不僅可以充分利用存儲集群系統(tǒng)的資源,而且可縮短任務執(zhí)行時間,提高任務執(zhí)行效率,給用戶帶來更優(yōu)體驗。
優(yōu)選的,本實施例存儲集群任務管理方法中,在所述主節(jié)點配置有數(shù)據(jù)庫,所述數(shù)據(jù)庫用于存儲所述任務隊列、所述任務隊列中的任務信息以及保存的任務處理結(jié)果。
具體的,采用所述數(shù)據(jù)庫實現(xiàn)任務的分發(fā)包括步驟:
s20:設(shè)置所述任務隊列的中間件,使該中間件指向所述數(shù)據(jù)庫,將所述任務隊列以及所述任務隊列中的任務信息存儲在所述數(shù)據(jù)庫中;
s21:設(shè)置各所述子節(jié)點指向所述數(shù)據(jù)庫中的任務隊列。
這樣,使各子節(jié)點能夠監(jiān)聽所述任務隊列,從任務隊列中獲取分發(fā)給自身的任務,進行處理;并且,在任務處理完成后將任務處理結(jié)果返回到所述數(shù)據(jù)庫中,用戶通過界面可以從數(shù)據(jù)庫中獲取及查詢?nèi)蝿仗幚斫Y(jié)果。
優(yōu)選的,所述數(shù)據(jù)庫可采用高速內(nèi)存數(shù)據(jù)庫。
相應的,請參考圖3,本發(fā)明實施例還提供一種存儲集群任務管理裝置,包括:
任務隊列模塊30,設(shè)置在存儲集群的主節(jié)點中,用于將下發(fā)的任務存放到創(chuàng)建的任務隊列中;
監(jiān)聽模塊31,設(shè)置在存儲集群的子節(jié)點中,用于監(jiān)聽所述任務隊列,從所述任務隊列中獲取分發(fā)給自身的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
保存模塊32,用于對返回的任務處理結(jié)果對應保存。
本實施例存儲集群任務管理裝置,在存儲集群的主節(jié)點中,任務隊列模塊將下發(fā)的任務存放到創(chuàng)建的任務隊列中,子節(jié)點中的監(jiān)聽模塊監(jiān)聽所述任務隊列,從所述任務隊列中獲取分發(fā)給自身的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點,保存模塊對返回的任務處理結(jié)果對應保存。
本實施例存儲集群任務管理裝置,實現(xiàn)了將下發(fā)的任務負載均衡到存儲集群各個節(jié)點上,與現(xiàn)有方法相比,在下發(fā)大量任務時,可以充分利用存儲集群中各個節(jié)點資源,可避免對主節(jié)點消耗大量的資源,從而降低對主節(jié)點的壓力。
本實施例中,創(chuàng)建的任務隊列包括至少兩個優(yōu)先級任務隊列,會根據(jù)任務對cpu的占用情況和對i/o的占用情況,將下發(fā)的任務存放到相應優(yōu)先級的任務隊列中。
更為具體的,可參考圖2,創(chuàng)建的任務隊列包括:高優(yōu)先級任務隊列、中優(yōu)先級任務隊列和低優(yōu)先級任務隊列;
其中,所述高優(yōu)先級任務隊列用于存放對cpu占用密集的任務,所述低優(yōu)先級任務隊列用于存放對i/o占用密集的任務,所述中優(yōu)先級任務隊列用于存放對cpu占用情況和對i/o占用情況介于上述兩類之間的任務;
所述監(jiān)聽模塊31包括第一監(jiān)聽模塊、第二監(jiān)聽模塊和第三監(jiān)聽模塊;
所述第一監(jiān)聽模塊用于監(jiān)聽所述高優(yōu)先級任務隊列,從所述高優(yōu)先級任務隊列中獲取分發(fā)給本子節(jié)點的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
所述第二監(jiān)聽模塊用于監(jiān)聽所述中優(yōu)先級任務隊列,從所述中優(yōu)先級任務隊列中獲取分發(fā)給本子節(jié)點的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點;
所述第三監(jiān)聽模塊用于監(jiān)聽所述低優(yōu)先級任務隊列,從所述低優(yōu)先級任務隊列中獲取分發(fā)給本子節(jié)點的任務,并進行處理,并在任務處理完成后將任務處理結(jié)果返回到所述主節(jié)點。
進一步的,在所述子節(jié)點中,為所述第一監(jiān)聽模塊分配的進程數(shù)量,大于為所述第三監(jiān)聽模塊分配的進程數(shù)量,為所述第二監(jiān)聽模塊分配的進程數(shù)量介于上述兩者之間。
本實施例存儲集群任務管理裝置,根據(jù)任務對cpu占用情況和對i/o占用情況將任務劃分到不同優(yōu)先級隊列中,分別進行處理,并分別配置進程數(shù)量,可以提高系統(tǒng)資源的利用率,同時降低了消耗在任務調(diào)度上的時間開銷,提高任務執(zhí)行效率。
本實施例裝置,還包括在所述主節(jié)點配置的數(shù)據(jù)庫,所述數(shù)據(jù)庫用于存儲所述任務隊列、所述任務隊列中的任務信息以及保存的任務處理結(jié)果。
其中,采用所述數(shù)據(jù)庫實現(xiàn)任務的分發(fā)包括步驟:
s20:設(shè)置所述任務隊列的中間件,使該中間件指向所述數(shù)據(jù)庫,將所述任務隊列以及所述任務隊列中的任務信息存儲在所述數(shù)據(jù)庫中;
s21:設(shè)置各所述子節(jié)點指向所述數(shù)據(jù)庫中的任務隊列。
以上對本發(fā)明所提供的一種存儲集群任務管理方法及裝置進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。