国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      集群資源處理方法和系統(tǒng)、資源處理集群與流程

      文檔序號:12063470閱讀:763來源:國知局
      集群資源處理方法和系統(tǒng)、資源處理集群與流程

      本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別是涉及一種集群資源處理方法和系統(tǒng)、資源處理集群。



      背景技術(shù):

      集群是一組相互獨(dú)立的、通過高速網(wǎng)絡(luò)互聯(lián)的計算機(jī),它們構(gòu)成了一個組,并以單一系統(tǒng)的模式加以管理。集群中的服務(wù)器協(xié)同工作,向用戶提供網(wǎng)絡(luò)應(yīng)用服務(wù),對于用戶來說集群就像是一個單一系統(tǒng)。如企業(yè)采購或租用專用的計算機(jī),使用linux類操作系統(tǒng),為用戶群提供訪問服務(wù)。

      傳統(tǒng)的集群資源處理方法,對容器資源進(jìn)行管理時,往往需要更新內(nèi)核或申請操作系統(tǒng)的管理員權(quán)限,更新內(nèi)核會影響企業(yè)現(xiàn)有部署的服務(wù),或者需要向運(yùn)維人員申請管理員權(quán)限,不利于添加服務(wù)器節(jié)點(diǎn)進(jìn)行相關(guān)部署,導(dǎo)致集群服務(wù)器不能靈活部署,且平均利用率不高。



      技術(shù)實現(xiàn)要素:

      基于此,有必要針對上述技術(shù)問題,提供一種集群資源處理方法和系統(tǒng)、資源處理集群,提高集群利用率,提高集群內(nèi)作業(yè)的吞吐量。

      一種集群資源處理方法,所述方法包括:

      監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)所述節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源;

      接收攜帶資源配置信息的作業(yè)請求,所述資源配置信息包括節(jié)點(diǎn)標(biāo)簽;

      根據(jù)所述節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的節(jié)點(diǎn)隊列,根據(jù)所述資源配置信息在所述節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為所述作業(yè)分配目標(biāo)計算資源;

      在所述目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      一種集群資源處理系統(tǒng),所述系統(tǒng)包括:

      計算資源監(jiān)控管理模塊,用于監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)所述節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源;

      計算資源分配模塊,用于接收攜帶資源配置信息的作業(yè)請求,所述資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)所述節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的節(jié)點(diǎn)隊列,根據(jù)所述資源配置信息在所述節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為所述作業(yè)分配目標(biāo)計算資源;

      作業(yè)執(zhí)行模塊,用于在所述目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      上述集群資源處理方法和系統(tǒng),通過監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)所述節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源,接收攜帶資源配置信息的作業(yè)請求,資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的節(jié)點(diǎn)隊列,根據(jù)資源配置信息在節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為作業(yè)分配目標(biāo)計算資源,在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè),根據(jù)實時監(jiān)控得到的節(jié)點(diǎn)計算資源信息獲取實時變化的空閑計算資源,使得資源的分配靈活高效,且通過UML資源隔離容器在用戶空間執(zhí)行作業(yè),在保證良好隔離的前提下,不需要管理員權(quán)限,能靈活部署集群節(jié)點(diǎn),將作業(yè)分配至有空閑計算資源的節(jié)點(diǎn),通過引入零散的服務(wù)節(jié)點(diǎn),相當(dāng)于在現(xiàn)有的機(jī)器上部署了一個新的計算集群,能提高服務(wù)器資源的利用率,從而提高集群內(nèi)作業(yè)的吞吐量。

      一種資源處理集群,所述集群包括:

      計算節(jié)點(diǎn),所述計算節(jié)點(diǎn)為空閑計算資源滿足預(yù)設(shè)條件的節(jié)點(diǎn),所述計算節(jié)點(diǎn)的數(shù)量根據(jù)所述集群中的節(jié)點(diǎn)的外部負(fù)載占用計算資源量更新;

      資源管理服務(wù)器,用于監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)所述節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源,接收攜帶資源配置信息的作業(yè)請求,所述資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)所述節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的計算節(jié)點(diǎn)隊列,根據(jù)所述資源配置信息在所述計算節(jié)點(diǎn)隊列中的目標(biāo)計算節(jié)點(diǎn)的當(dāng)前空閑計算資源中為所述作業(yè)分配目標(biāo)計算資源;

      所述目標(biāo)計算節(jié)點(diǎn)用于啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      上述資源處理集群,根據(jù)節(jié)點(diǎn)的外部負(fù)載占用計算資源量更新集群中計算節(jié)點(diǎn)的數(shù)量,根據(jù)實時監(jiān)控得到的節(jié)點(diǎn)計算資源信息獲取實時變化的空閑計算資源,使得資源的分配靈活高效;且通過UML資源隔離容器在用戶空間執(zhí)行作業(yè),在保證良好隔離的前提下,不需要管理員權(quán)限,能靈活部署集群節(jié)點(diǎn),將作業(yè)分配至有空閑計算資源的節(jié)點(diǎn),通過引入零散的服務(wù)節(jié)點(diǎn)組成集群,相當(dāng)于在現(xiàn)有的機(jī)器上部署了一個新的計算集群,能提高服務(wù)器資源的利用率,從而提高集群內(nèi)作業(yè)的吞吐量。

      附圖說明

      圖1為一個實施例中集群資源處理方法運(yùn)行的應(yīng)用環(huán)境圖;

      圖2為一個實施例中集群資源處理方法的流程圖;

      圖3為一個實施例中集群一周內(nèi)cpu占用率示意圖;

      圖4為一個具體的實施例中集群資源處理方法的流程圖;

      圖5為一個實施例中資源處理集群的結(jié)構(gòu)框圖;

      圖6為另一個實施例中資源處理集群的結(jié)構(gòu)框圖;

      圖7為一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖;

      圖8為另一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖;

      圖9為再一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖;

      圖10為又一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖;

      圖11為再一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖;

      圖12為一個實施例中作業(yè)執(zhí)行模塊的結(jié)構(gòu)框圖;

      圖13為又一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖;

      圖14為另一個實施例中集群資源處理系統(tǒng)的結(jié)構(gòu)框圖。

      具體實施方式

      圖1為一個實施例中集群資源處理方法運(yùn)行的應(yīng)用環(huán)境圖。如圖1所示,該應(yīng)用環(huán)境包括作業(yè)提交端110、資源管理服務(wù)器120、計算節(jié)點(diǎn)130和專用節(jié)點(diǎn)140,其中計算節(jié)點(diǎn)130包括多個節(jié)點(diǎn),包括節(jié)點(diǎn)131、……節(jié)點(diǎn)13n、專用節(jié)點(diǎn)140可為一個或多個,其中作業(yè)提交端110、資源管理服務(wù)器120、計算節(jié)點(diǎn)130和專用節(jié)點(diǎn)140組成集群,可以通過網(wǎng)絡(luò)進(jìn)行通信,可為Hadoop集群或Spark集群。

      作業(yè)提交端110可為筆記本電腦、臺式計算機(jī)等,但并不局限于此。計算節(jié)點(diǎn)130的數(shù)量根據(jù)節(jié)點(diǎn)的外部負(fù)載占用計算資源更新,每個集群節(jié)點(diǎn)都具備監(jiān)控模塊,用于實時監(jiān)控節(jié)點(diǎn)計算資源信息,得到集群當(dāng)前空閑計算資源,資源管理服務(wù)器120根據(jù)作業(yè)請求中攜帶的資源配置信息為作業(yè)分配目標(biāo)節(jié)點(diǎn),并在目標(biāo)節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。專用節(jié)點(diǎn)140上可部署作業(yè)管理器,監(jiān)測作業(yè)的進(jìn)度。

      在一個實施例中,如圖2所示,提供了一種集群資源處理方法,以應(yīng)用于上述應(yīng)用環(huán)境中來舉例說明,包括如下步驟:

      步驟S210,監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源。

      具體的,計算資源信息包括cpu占用率、可用內(nèi)存、磁盤剩余空間等用于計算的資源相關(guān)信息,其中根據(jù)cpu占用率可進(jìn)行轉(zhuǎn)換得到占用cpu核數(shù),進(jìn)而得到可用cpu核數(shù),如當(dāng)前cpu占用率60%,cpu總核數(shù)為8,可用cpu核數(shù)為8*(1-0.6),約為3??臻e的可用內(nèi)存是通過節(jié)點(diǎn)的總內(nèi)存Memtotal減去外部服務(wù)占用的內(nèi)存Memexternal得到的,即Memtotal-Memexternal。每個節(jié)點(diǎn)的當(dāng)前空閑計算資源的具體計算方法可自定義,如當(dāng)磁盤剩余空間小于預(yù)設(shè)閾值時,將節(jié)點(diǎn)加入黑名單。每個部署節(jié)點(diǎn)通過節(jié)點(diǎn)管理器對本節(jié)點(diǎn)的空閑計算資源進(jìn)行定時監(jiān)控收集,匯集到資源管理器,得到整個集群的總體可用資源量,保證所有作業(yè)的資源請求都是從空閑計算資源中劃分出去。其中節(jié)點(diǎn)管理器是運(yùn)行在計算節(jié)點(diǎn)的一個服務(wù)進(jìn)程,管理、分配、上報、回收該計算節(jié)點(diǎn)的計算資源。資源管理器是運(yùn)行在資源管理服務(wù)器的一個服務(wù)進(jìn)程,管理、分配、回收所有計算節(jié)點(diǎn)的計算資源。

      在一個實施例中,節(jié)點(diǎn)的當(dāng)前空閑計算資源為剩余磁盤空間大于磁盤空間預(yù)設(shè)閾值的節(jié)點(diǎn)的可用cpu核數(shù)、可用內(nèi)存的總和。

      具體的,如果節(jié)點(diǎn)的剩余磁盤空間小于磁盤空間預(yù)設(shè)閾值,則此節(jié)點(diǎn)不執(zhí)行計算任務(wù),可保證計算任務(wù)和外部服務(wù)的數(shù)據(jù)存儲。

      在一個實施例中,采用平臺監(jiān)控軟件如ganglia,部署監(jiān)控整個集群的負(fù)載狀態(tài),以便調(diào)查節(jié)點(diǎn)故障原因。根據(jù)平臺特性,在資源管理層增加了ganglia的測量數(shù)據(jù)上報邏輯,將空閑計算資源的利用情況可視化。如圖3是集群一周內(nèi)cpu占用率示意圖,240是外部服務(wù)的資源占用比例,250是作業(yè)實際占用的空閑資源比例,260是作業(yè)剩余可用的空閑計算資源比例。

      步驟S220,接收攜帶資源配置信息的作業(yè)請求,資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的節(jié)點(diǎn)隊列,根據(jù)資源配置信息在節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為作業(yè)分配目標(biāo)計算資源。

      具體的,資源配置信息用于表征作業(yè)執(zhí)行所需的資源配置,如作業(yè)在提交時可以指定申請容器的內(nèi)存大小和節(jié)點(diǎn)標(biāo)簽。節(jié)點(diǎn)標(biāo)簽用于表征節(jié)點(diǎn)的類型,通過節(jié)點(diǎn)標(biāo)簽可區(qū)分不同計算能力的節(jié)點(diǎn)。節(jié)點(diǎn)標(biāo)簽的設(shè)置可根據(jù)需要自定義,如設(shè)置不同的級別標(biāo)簽等。

      在一個實施例中,步驟S220之前,還包括:通過節(jié)點(diǎn)的物理屬性信息和負(fù)載狀態(tài)信息,為節(jié)點(diǎn)設(shè)置標(biāo)簽。

      具體的,物理屬性信息是節(jié)點(diǎn)的物理屬性,是固有屬性,如內(nèi)存大的計算節(jié)點(diǎn)分配high_mem標(biāo)識。負(fù)載狀態(tài)信息是一定時期內(nèi)穩(wěn)定的負(fù)載狀態(tài),如通過統(tǒng)計預(yù)設(shè)時間段內(nèi)節(jié)點(diǎn)的外部進(jìn)程的資源占用,跟預(yù)設(shè)閾值比較,將外部資源占用大于預(yù)設(shè)閾值的外部負(fù)載高的節(jié)點(diǎn)用high_load標(biāo)識。一個節(jié)點(diǎn)可設(shè)置一個或多個節(jié)點(diǎn)標(biāo)簽。

      作業(yè)在提交時通過資源配置信息可以指定申請容器的內(nèi)存大小和節(jié)點(diǎn)標(biāo)簽,通過節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的目標(biāo)標(biāo)簽節(jié)點(diǎn)隊列,僅在目標(biāo)標(biāo)簽節(jié)點(diǎn)隊列中挑選合適的節(jié)點(diǎn)來執(zhí)行計算任務(wù)??梢岳斫獾氖牵绻Y源配置信息中沒有指定節(jié)點(diǎn)標(biāo)簽,則可使用默認(rèn)的節(jié)點(diǎn)標(biāo)簽。作業(yè)一般是分布式處理大批數(shù)據(jù),輸入數(shù)據(jù)被切分成小的數(shù)據(jù)塊,交給子任務(wù)處理,為各個子任務(wù)分配合適的目標(biāo)計算資源,將各個子任務(wù)分配到滿足計算資源條件的各個節(jié)點(diǎn)中。通過節(jié)點(diǎn)標(biāo)簽,可在計算節(jié)點(diǎn)中篩選滿足條件的目標(biāo)節(jié)點(diǎn),以滿足不同作業(yè)需要的計算資源粒度和降低作業(yè)失敗率。

      步驟S230,在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      具體的,用戶模式Linux UML(user mode linux)資源隔離容器可以由普通用戶創(chuàng)建啟動,更具通用性,user mode linux使用mmap方式擴(kuò)展內(nèi)存地址空間,故幾乎不影響外部服務(wù)使用的物理內(nèi)存,實質(zhì)上是讓數(shù)據(jù)經(jīng)由cpu進(jìn)行了轉(zhuǎn)換操作,有獨(dú)立的進(jìn)程空間,保證容器內(nèi)部進(jìn)程無法訪問物理機(jī)外部服務(wù)進(jìn)程,保證外部服務(wù)的進(jìn)程不被破壞。在一個實施例中,作業(yè)執(zhí)行結(jié)束,釋放作業(yè)執(zhí)行時占用的計算資源,保證空閑資源的回歸。

      在一個實施例中,步驟S230中在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器的步驟包括:在執(zhí)行腳本設(shè)置作業(yè)依賴的環(huán)境變量,并將作業(yè)需要的文件資源掛載至容器中,以普通用戶身份創(chuàng)建啟動UML資源隔離容器。

      還可以新建專用文件目錄映射為容器內(nèi)的根目錄,保證受限的文件訪問,避免未授權(quán)的非法訪問、修改文件,同時能存儲計算結(jié)果,從而達(dá)到資源隔離的要求。可通過修改user mode linux的網(wǎng)絡(luò)模塊代碼,實現(xiàn)UML資源隔離容器不需要管理員權(quán)限就可與外部網(wǎng)絡(luò)通信,進(jìn)行數(shù)據(jù)傳輸,在用戶空間執(zhí)行作業(yè)。不需要申請管理員權(quán)限,就可以執(zhí)行作業(yè),完成通信,提高了各個計算節(jié)點(diǎn)部署的靈活性,可隨意的增加或減少計算節(jié)點(diǎn),而不需要額外的申請權(quán)限。

      本實施例中,通過監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)所述節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源,接收攜帶資源配置信息的作業(yè)請求,資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的節(jié)點(diǎn)隊列,根據(jù)資源配置信息在節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為作業(yè)分配目標(biāo)計算資源,在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè),根據(jù)實時監(jiān)控得到的節(jié)點(diǎn)計算資源信息獲取實時變化的空閑計算資源,使得資源的分配靈活高效,且通過UML資源隔離容器在用戶空間執(zhí)行作業(yè),在保證良好隔離的前提下,不需要管理員權(quán)限,能靈活部署集群節(jié)點(diǎn),將作業(yè)分配至有空閑計算資源的節(jié)點(diǎn),通過引入零散的服務(wù)節(jié)點(diǎn),相當(dāng)于在現(xiàn)有的機(jī)器上部署了一個新的計算集群,能提高服務(wù)器資源的利用率,從而提高集群內(nèi)作業(yè)的吞吐量。

      在一個實施例中,步驟S230中,在用戶空間執(zhí)行作業(yè)時,通過采用用戶模式網(wǎng)絡(luò)slirp網(wǎng)絡(luò)模擬器以普通用戶身份啟動虛擬網(wǎng)絡(luò)設(shè)備與物理網(wǎng)卡橋接,實現(xiàn)網(wǎng)絡(luò)通信。

      具體的,作業(yè)執(zhí)行過程中通過tcp/ip遠(yuǎn)程傳輸輸入數(shù)據(jù),容器內(nèi)部的虛擬網(wǎng)絡(luò)和數(shù)據(jù)節(jié)點(diǎn)的物理網(wǎng)絡(luò)需要建立連接收發(fā)數(shù)據(jù)包進(jìn)行通信。user mode linux一般是通過啟動虛擬網(wǎng)絡(luò)設(shè)備,如tun設(shè)備與物理網(wǎng)卡橋接起來,實現(xiàn)與外部網(wǎng)絡(luò)的通信,但是啟動tun設(shè)備需要root權(quán)限,本實施例中,修改了user mode linux的網(wǎng)絡(luò)模塊代碼,采用slirp網(wǎng)絡(luò)模擬器方案,以普通用戶身份啟動虛擬網(wǎng)絡(luò)設(shè)備與物理網(wǎng)卡橋接,保證輸入輸出數(shù)據(jù)的傳輸及UML資源隔離容器之間的高效方便通信。

      在一個實施例中,步驟S230中在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器的步驟包括:新建文件目錄,如果新建成功,則獲取鎖,啟動第一用戶模式Linux UML資源隔離容器,為第一UML資源隔離容器分配IP地址,第一UML資源隔離容器啟動成功,則刪除文件目錄,釋放鎖。

      具體的,每個子任務(wù)執(zhí)行都需要啟動一個UML資源隔離容器,計算過程可能需要遠(yuǎn)程訪問輸入數(shù)據(jù),就需要為每個UML資源隔離容器分配一個唯一內(nèi)部ip,需保證與物理節(jié)點(diǎn)的網(wǎng)段不沖突,通過新建文件目錄的方式獲取鎖,只有獲取了鎖才能啟動UML資源隔離容器并分配IP地址,保證單個節(jié)點(diǎn)內(nèi)容器啟動是串行的,從而保證每個IP地址唯一且不同。

      在一個實施例中,步驟S230之后,還包括:如果外部負(fù)載增長占用的資源超過第一預(yù)設(shè)閾值或作業(yè)子任務(wù)占用的資源超過第二預(yù)設(shè)閾值,則清理UML資源隔離容器并轉(zhuǎn)移子任務(wù)至節(jié)點(diǎn)隊列中的其它節(jié)點(diǎn)。

      具體的,單個節(jié)點(diǎn)內(nèi)通過容器進(jìn)程樹收集作業(yè)子任務(wù)占用的計算資源,當(dāng)子任務(wù)占用的計算資源超過第二預(yù)設(shè)閾值,則清理UML資源隔離容器并轉(zhuǎn)移計算任務(wù)至節(jié)點(diǎn)隊列中的其它節(jié)點(diǎn)。外部負(fù)載增長占用的資源超過第一預(yù)設(shè)閾值,使得節(jié)點(diǎn)內(nèi)剩余的計算資源少于第一預(yù)設(shè)閾值時,則清理UML資源隔離容器并轉(zhuǎn)移子任務(wù)至節(jié)點(diǎn)隊列中的其它節(jié)點(diǎn),從而在一定程度上保證計算資源有緩沖空間。

      在一個實施例中,為了保證任務(wù)的有效轉(zhuǎn)移和作業(yè)最終能順利完成,針對由于作業(yè)子任務(wù)占用的資源超過第二預(yù)設(shè)閾值導(dǎo)致的任務(wù)失敗,不歸入失敗重試次數(shù),從而使得作業(yè)子任務(wù)會分配到外部服務(wù)負(fù)載較低的節(jié)點(diǎn)執(zhí)行計算。

      在一個實施例中,獲取關(guān)鍵服務(wù)節(jié)點(diǎn),判斷當(dāng)前時間是否在預(yù)設(shè)時間段,如果是,則設(shè)置所述關(guān)鍵服務(wù)節(jié)點(diǎn)的當(dāng)前空閑計算資源為0,如果當(dāng)前時間不在預(yù)設(shè)時間段,則所述關(guān)鍵服務(wù)節(jié)點(diǎn)的當(dāng)前空閑計算資源為實際監(jiān)控得到的節(jié)點(diǎn)計算資源。

      具體的,關(guān)鍵服務(wù)節(jié)點(diǎn)是為外部提供重要服務(wù)的節(jié)點(diǎn),這種類型的節(jié)點(diǎn)一般工作時間段服務(wù)請求量相對集中,負(fù)載較高,為了不影響服務(wù),在進(jìn)行計算資源收集時,添加了時間段限制,預(yù)設(shè)時間段的范圍可根據(jù)需要自定義,如可以通過配置文件設(shè)置在一天內(nèi)白天時間段關(guān)鍵服務(wù)節(jié)點(diǎn)的可用空閑資源為0,則不會分配計算任務(wù),到了夜晚或凌晨,負(fù)載占用資源下降,節(jié)點(diǎn)重新上報實際空閑資源量。

      在一個實施例中,如果第一節(jié)點(diǎn)的當(dāng)前空閑計算資源小于資源預(yù)設(shè)閾值,則將第一節(jié)點(diǎn)暫時脫離集群。

      具體的,如果第一節(jié)點(diǎn)的當(dāng)前空閑計算資源小于資源預(yù)設(shè)閾值,則將第一節(jié)點(diǎn)暫時脫離集群,因為外部服務(wù)的負(fù)載是不可預(yù)測的,在外部負(fù)載上升,當(dāng)前空閑計算資源過小時,通過將第一節(jié)點(diǎn)暫時脫離集群,暫時不再分配作業(yè)任務(wù),保證第一節(jié)點(diǎn)能為外部服務(wù)提供緩沖空間,同時避免節(jié)點(diǎn)因負(fù)載過高而不可控,保證了計算資源的限制。當(dāng)?shù)谝还?jié)點(diǎn)的當(dāng)前空閑計算資源恢復(fù)大于資源預(yù)設(shè)閾值時,可恢復(fù)加入集群。

      在一個實施例中,方法還包括:為負(fù)載狀態(tài)滿足穩(wěn)定節(jié)點(diǎn)條件的節(jié)點(diǎn)設(shè)置靜態(tài)static標(biāo)簽,在static標(biāo)簽的節(jié)點(diǎn)啟動作業(yè)管理器,所述static標(biāo)簽的節(jié)點(diǎn)為專有節(jié)點(diǎn),保持集群狀態(tài)。

      具體的,穩(wěn)定節(jié)點(diǎn)條件的具體參數(shù)可根據(jù)需要自定義,如負(fù)載較低、計算資源充足,可視為滿足穩(wěn)定節(jié)點(diǎn)條件的節(jié)點(diǎn),給這種節(jié)點(diǎn)設(shè)置靜態(tài)static標(biāo)簽,在static標(biāo)簽的節(jié)點(diǎn)啟動作業(yè)管理器,這種類型的節(jié)點(diǎn)可為集群專有節(jié)點(diǎn),保持集群狀態(tài),一直提供服務(wù),可避免作業(yè)管理器因計算資源不足而被清理掉,避免丟失作業(yè)進(jìn)度信息。

      在一個實施例中,方法還包括:獲取作業(yè)對應(yīng)的節(jié)點(diǎn)黑名單,如果節(jié)點(diǎn)黑名單中第一標(biāo)簽對應(yīng)的節(jié)點(diǎn)個數(shù)與集群中第一標(biāo)簽對應(yīng)的所有節(jié)點(diǎn)個數(shù)的比例超過標(biāo)簽閾值,則將節(jié)點(diǎn)黑名單中第一標(biāo)簽對應(yīng)的節(jié)點(diǎn)移除節(jié)點(diǎn)黑名單。

      具體的,資源管理器會為作業(yè)設(shè)置一份臨時的黑名單,僅對該作業(yè)有效,當(dāng)某節(jié)點(diǎn)的任務(wù)失敗次數(shù)過多時,將節(jié)點(diǎn)加入黑名單中,當(dāng)黑名單中的節(jié)點(diǎn)個數(shù)超過集群中的節(jié)點(diǎn)數(shù)的比例閾值p,則黑名單失效。如果節(jié)點(diǎn)標(biāo)簽X的節(jié)點(diǎn)個數(shù)在整個集群中的比例不超過p,故黑名單不會失效,在節(jié)點(diǎn)標(biāo)簽X對應(yīng)的節(jié)點(diǎn)負(fù)載波動大的惡劣條件下,可能存在節(jié)點(diǎn)標(biāo)簽X的每個節(jié)點(diǎn)都因任務(wù)失敗次數(shù)過多而被列入黑名單,除非有新的X標(biāo)簽節(jié)點(diǎn)加入集群,否則黑名單不會失效,作業(yè)將無限等待,為了避免這種情況發(fā)生,本實施例中,如果節(jié)點(diǎn)黑名單中第一標(biāo)簽對應(yīng)的節(jié)點(diǎn)個數(shù)與集群中第一標(biāo)簽對應(yīng)的所有節(jié)點(diǎn)個數(shù)的比例超過標(biāo)簽閾值,則將節(jié)點(diǎn)黑名單中第一標(biāo)簽對應(yīng)的節(jié)點(diǎn)移除節(jié)點(diǎn)黑名單,計算比例系數(shù)時,采用的不是整個集群中的節(jié)點(diǎn),而是集群中第一標(biāo)簽對應(yīng)的所有節(jié)點(diǎn),避免了作業(yè)無限等待的情況,更合理,容錯性能好。

      如圖4所示,為一個具體的實施例中集群資源處理方法的流程圖,具體過程如下:

      步驟S310,監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源。

      步驟S320,接收攜帶節(jié)點(diǎn)標(biāo)簽的資源配置信息的作業(yè)請求,根據(jù)資源配置信息在節(jié)點(diǎn)標(biāo)簽對應(yīng)的節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為作業(yè)分配目標(biāo)計算資源。

      步驟S330,在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      步驟S340,當(dāng)外部負(fù)載增長占用的資源超過第一預(yù)設(shè)閾值或作業(yè)子任務(wù)占用的資源超過第二預(yù)設(shè)閾值時,清理UML資源隔離容器并轉(zhuǎn)移作業(yè)子任務(wù)至節(jié)點(diǎn)隊列中的其它節(jié)點(diǎn)。

      步驟S350,作業(yè)執(zhí)行結(jié)束,釋放作業(yè)執(zhí)行時占用的計算資源。

      在一個實施例中,如圖5所示,提供了一種資源處理集群,包括:

      計算節(jié)點(diǎn)420,計算節(jié)點(diǎn)420為空閑計算資源滿足預(yù)設(shè)條件的節(jié)點(diǎn),計算節(jié)點(diǎn)420的數(shù)量根據(jù)資源處理集群中的節(jié)點(diǎn)的外部負(fù)載占用計算資源量更新。

      具體的,預(yù)設(shè)條件可根據(jù)需要自定義,空閑計算資源滿足預(yù)設(shè)條件的節(jié)點(diǎn)可隨時成為計算節(jié)點(diǎn),空閑計算資源不滿足預(yù)設(shè)條件的節(jié)點(diǎn)可隨時暫時脫離集群,計算節(jié)點(diǎn)的數(shù)量根據(jù)資源處理集群中的節(jié)點(diǎn)的外部負(fù)載占用計算資源量更新,保證資源的有效利用。

      在一個實施例中,資源管理服務(wù)器還用于如果第一計算節(jié)點(diǎn)的當(dāng)前空閑計算資源小于資源預(yù)設(shè)閾值,則將第一計算節(jié)點(diǎn)暫時脫離集群。

      具體的,如果第一計算節(jié)點(diǎn)的當(dāng)前空閑計算資源小于資源預(yù)設(shè)閾值,則將第一計算節(jié)點(diǎn)暫時脫離集群,因為外部服務(wù)的負(fù)載是不可預(yù)測的,在外部負(fù)載上升,當(dāng)前空閑計算資源過小時,通過將第一計算節(jié)點(diǎn)暫時脫離集群,不再分配作業(yè)任務(wù),保證第一節(jié)點(diǎn)能為外部服務(wù)提供緩沖空間,同時避免節(jié)點(diǎn)因負(fù)載過高而不可控,保證了計算資源的限制。

      資源管理服務(wù)器410,用于監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)節(jié)點(diǎn)計算資源信息得到第一集群當(dāng)前空閑計算資源,接收攜帶資源配置信息的作業(yè)請求,資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的計算節(jié)點(diǎn)隊列,根據(jù)資源配置信息在計算節(jié)點(diǎn)隊列中的目標(biāo)計算節(jié)點(diǎn)421的當(dāng)前空閑計算資源中為作業(yè)分配目標(biāo)計算資源。

      目標(biāo)計算節(jié)點(diǎn)421用于啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      在一個實施例中,資源處理集群包括關(guān)鍵服務(wù)節(jié)點(diǎn),關(guān)鍵服務(wù)節(jié)點(diǎn)用于判斷當(dāng)前時間是否在預(yù)設(shè)時間段,如果是,則設(shè)置關(guān)鍵服務(wù)節(jié)點(diǎn)的當(dāng)前空閑計算資源為0,如果當(dāng)前時間不在預(yù)設(shè)時間段,則關(guān)鍵服務(wù)節(jié)點(diǎn)的當(dāng)前空閑計算資源為實際監(jiān)控得到的節(jié)點(diǎn)計算資源。。

      具體的,關(guān)鍵服務(wù)節(jié)點(diǎn)是為外部提供重要服務(wù)的節(jié)點(diǎn),這種類型的節(jié)點(diǎn)一般工作時間段服務(wù)請求量相對集中,負(fù)載較高,為了不影響服務(wù),在進(jìn)行計算資源收集時,添加了時間段限制,預(yù)設(shè)時間段的范圍可根據(jù)需要自定義,如可以通過配置文件設(shè)置在一天內(nèi)白天時間段關(guān)鍵服務(wù)節(jié)點(diǎn)的可用空閑資源為0,則不會分配計算任務(wù),到了夜晚或凌晨,負(fù)載占用資源下降,節(jié)點(diǎn)重新上報實際空閑資源量,可重新為其分配作業(yè)對應(yīng)的計算任務(wù)。

      在一個實施例中,目標(biāo)計算節(jié)點(diǎn)421還用于在用戶空間執(zhí)行作業(yè)時,通過采用用戶模式網(wǎng)絡(luò)slirp網(wǎng)絡(luò)模擬器以普通用戶身份啟動虛擬網(wǎng)絡(luò)設(shè)備與物理網(wǎng)卡橋接,實現(xiàn)網(wǎng)絡(luò)通信。

      具體的,目標(biāo)計算節(jié)點(diǎn)421在作業(yè)執(zhí)行過程中通過tcp/ip遠(yuǎn)程傳輸輸入數(shù)據(jù),容器內(nèi)部的虛擬網(wǎng)絡(luò)和數(shù)據(jù)節(jié)點(diǎn)的物理網(wǎng)絡(luò)需要建立連接收發(fā)數(shù)據(jù)包進(jìn)行通信。user mode linux一般是通過啟動tun設(shè)備與物理網(wǎng)卡橋接起來,實現(xiàn)與外部網(wǎng)絡(luò)的通信,但是啟動tun設(shè)備需要root權(quán)限,本實施例中,修改了user mode linux的網(wǎng)絡(luò)模塊代碼,采用slirp網(wǎng)絡(luò)模擬器方案,以普通用戶身份啟動虛擬網(wǎng)絡(luò)設(shè)備與物理網(wǎng)卡橋接,保證輸入輸出數(shù)據(jù)的傳輸及UML資源隔離容器之間的高效方便通信。

      在一個實施例中,如圖6所示,集群還包括:

      專用節(jié)點(diǎn)430,專用節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)簽為static標(biāo)簽,保持集群狀態(tài),用于啟動作業(yè)管理器。

      具體的,專用節(jié)點(diǎn)是指為集群提供專用服務(wù)的節(jié)點(diǎn),不提供外部服務(wù),這種類型的節(jié)點(diǎn)保持提供穩(wěn)定的服務(wù),不輕易脫離集群。在static標(biāo)簽的節(jié)點(diǎn)啟動作業(yè)管理器,保持集群狀態(tài),可一直提供服務(wù),可避免作業(yè)管理器因計算資源不足而被清理掉,避免丟失作業(yè)進(jìn)度信息。

      在一個實施例中,如圖7所示,提供了一種集群資源處理系統(tǒng),包括:

      計算資源監(jiān)控管理模塊510,用于監(jiān)控節(jié)點(diǎn)計算資源信息,根據(jù)節(jié)點(diǎn)計算資源信息得到集群當(dāng)前空閑計算資源。

      計算資源分配模塊520,用于接收攜帶資源配置信息的作業(yè)請求,資源配置信息包括節(jié)點(diǎn)標(biāo)簽,根據(jù)節(jié)點(diǎn)標(biāo)簽獲取對應(yīng)的節(jié)點(diǎn)隊列,根據(jù)資源配置信息在節(jié)點(diǎn)隊列中的節(jié)點(diǎn)的當(dāng)前空閑計算資源中為作業(yè)分配目標(biāo)計算資源。

      作業(yè)執(zhí)行模塊530,用于在目標(biāo)計算資源對應(yīng)的節(jié)點(diǎn)啟動用戶模式Linux UML資源隔離容器,在用戶空間執(zhí)行作業(yè)。

      在一個實施例中,如圖8所示,系統(tǒng)還包括:

      第一資源限制模塊540,用于如果外部負(fù)載增長占用的資源超過第一預(yù)設(shè)閾值或作業(yè)子任務(wù)占用的資源超過第二預(yù)設(shè)閾值,則清理UML資源隔離容器并轉(zhuǎn)移作業(yè)子任務(wù)至節(jié)點(diǎn)隊列中的其它節(jié)點(diǎn)。

      在一個實施例中,如圖8所示,系統(tǒng)還包括:

      第二資源限制模塊550,用于獲取關(guān)鍵服務(wù)節(jié)點(diǎn),判斷當(dāng)前時間是否在預(yù)設(shè)時間段,如果是,則設(shè)置關(guān)鍵服務(wù)節(jié)點(diǎn)的當(dāng)前空閑計算資源為0,如果當(dāng)前時間不在預(yù)設(shè)時間段,則關(guān)鍵服務(wù)節(jié)點(diǎn)的當(dāng)前空閑計算資源為實際監(jiān)控得到的節(jié)點(diǎn)計算資源??梢岳斫獾氖?,系統(tǒng)可包括第一資源限制模塊540和第二資源限制模塊550其中的任一個模塊。

      可以理解的是,雖然圖8中包括了第一資源限制模塊540和第二資源限制模塊550,實施例中可包括其中的至少一種模塊。

      在一個實施例中,如圖9所示,系統(tǒng)還包括:

      集群資源管理模塊560,用于如果第一節(jié)點(diǎn)的當(dāng)前空閑計算資源小于資源預(yù)設(shè)閾值,則將第一節(jié)點(diǎn)暫時脫離集群。

      在一個實施例中,如圖10所示,系統(tǒng)還包括:

      標(biāo)簽設(shè)置模塊570,用于根據(jù)節(jié)點(diǎn)的物理屬性信息與負(fù)載狀態(tài)信息,為節(jié)點(diǎn)設(shè)置標(biāo)簽。

      在一個實施例中,如圖11所示,系統(tǒng)還包括:

      作業(yè)管理模塊580,用于為負(fù)載狀態(tài)滿足穩(wěn)定節(jié)點(diǎn)條件的節(jié)點(diǎn)設(shè)置靜態(tài)static標(biāo)簽,在static標(biāo)簽的節(jié)點(diǎn)啟動作業(yè)管理器,static標(biāo)簽的節(jié)點(diǎn)為專有節(jié)點(diǎn),保持集群狀態(tài)。

      在一個實施例中,作業(yè)執(zhí)行模塊530還用于在執(zhí)行腳本設(shè)置所述作業(yè)依賴的環(huán)境變量,并將作業(yè)需要的文件資源掛載至容器中,以普通用戶身份創(chuàng)建啟動UML資源隔離容器。

      在一個實施例中,如圖12所示,作業(yè)執(zhí)行模塊530包括:

      鎖獲取模塊531,用于新建文件目錄,如果新建成功,則獲取鎖。

      作業(yè)啟動模塊532,用于啟動第一用戶模式Linux UML資源隔離容器,為第一UML資源隔離容器分配IP地址。

      鎖釋放模塊533,用于第一UML資源隔離容器啟動成功,則刪除文件目錄,釋放鎖。

      在一個實施例中,如圖13所示,系統(tǒng)還包括:

      UML網(wǎng)絡(luò)通訊模塊590,用于在用戶空間執(zhí)行作業(yè)時,通過采用用戶模式網(wǎng)絡(luò)slirp網(wǎng)絡(luò)模擬器以普通用戶身份啟動虛擬網(wǎng)絡(luò)設(shè)備與物理網(wǎng)卡橋接,實現(xiàn)網(wǎng)絡(luò)通信。

      在一個實施例中,如圖14所示,系統(tǒng)還包括:

      容錯模塊600,用于獲取作業(yè)對應(yīng)的節(jié)點(diǎn)黑名單,如果節(jié)點(diǎn)黑名單中第一標(biāo)簽對應(yīng)的節(jié)點(diǎn)個數(shù)與集群中第一標(biāo)簽對應(yīng)的所有節(jié)點(diǎn)個數(shù)的比例超過標(biāo)簽閾值,則將節(jié)點(diǎn)黑名單中第一標(biāo)簽對應(yīng)的節(jié)點(diǎn)移除節(jié)點(diǎn)黑名單。

      本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,如本發(fā)明實施例中,該程序可存儲于計算機(jī)系統(tǒng)的存儲介質(zhì)中,并被該計算機(jī)系統(tǒng)中的至少一個處理器執(zhí)行,以實現(xiàn)包括如上述各方法的實施例的流程。其中,所述存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。

      以上所述實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。

      以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1