国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Linux 大規(guī)模集群應(yīng)用管理模型的研究及實現(xiàn)

2022-05-24 11:43陳旭輝許竹霞
電子設(shè)計工程 2022年10期
關(guān)鍵詞:管理軟件進程集群

陳旭輝,劉 洋,張 鴻,高 鵬,許竹霞

(甘肅省氣象信息與技術(shù)裝備保障中心,甘肅 蘭州 730020)

集群技術(shù)[1-3]是大型互聯(lián)網(wǎng)業(yè)務(wù)、人工智能、大數(shù) 據(jù)等領(lǐng)域廣泛使用的技術(shù),可以提高應(yīng)用系統(tǒng)的可靠性等性能。大型數(shù)據(jù)中心運行的一個業(yè)務(wù)系統(tǒng)一般由多個集群組成,每個集群都有自己的管理系統(tǒng),互不兼容,運維人員在維護中不得不在多個集群、主機之間來回切換,這種方式效率低、容易出錯。ansible、puppet、saltstack[4-6]等運維工具可以對集群多臺主機實施批量操作,但管理功能簡單、缺乏監(jiān)控功能。在HPC 領(lǐng)域[7-9],使用的Torque、slurm、LSF、LICO等管理軟件主要用于并行計算集群,不適合一般的集群。Veritas InfoScale Availability 是一個通用的集群應(yīng)用管理軟件[10],但是該軟件存在以下問題:①應(yīng)用監(jiān)控不能真實反映主機在集群中的狀態(tài);②無法管理單點啟動、資源池等特殊的集群;③不支持分層管理;④采用代理模式,使用不便。AIOps(Artificial Intelligence for IT Operations)將人工智能與運維結(jié)合,通過機器學(xué)習(xí)方法提升運維效率[11-12],但技術(shù)門檻高,只在大型互聯(lián)網(wǎng)企業(yè)應(yīng)用。針對上述問題,文中提出一種通用的無代理集群應(yīng)用管理模型,該模型可以集中管理集群環(huán)境下的各種應(yīng)用。

1 集群應(yīng)用管理模型

根據(jù)大型集群環(huán)境應(yīng)用管理的需求,提出無代理分級管理模型,模型在功能方面具備監(jiān)控和控制雙重功能,在通用性方面支持管理所有的集群應(yīng)用。

1.1 無代理

應(yīng)用管理采用無代理模式,被管理計算機不用安裝管理軟件,所有管理命令由管理節(jié)點通過SSH在被管理節(jié)點上遠程執(zhí)行。

1.2 分級管理

模型將集群分為應(yīng)用集群、管理集群、超級管理集群3 種。應(yīng)用集群指應(yīng)用系統(tǒng)建立的集群,用于運行特定的集群應(yīng)用;應(yīng)用管理集群由多個應(yīng)用集群組成;超級管理集群由管理集群中的管理節(jié)點組成。3 種集群的關(guān)系圖如圖1 所示。

圖1 3種集群關(guān)系圖

模型采用兩級管理模式,超級應(yīng)用管理系統(tǒng)是最高級的管理系統(tǒng),負責(zé)管理超級管理集群中的應(yīng)用管理系統(tǒng)。應(yīng)用管理系統(tǒng)運行在應(yīng)用管理集群上,負責(zé)管理轄區(qū)內(nèi)所有的集群應(yīng)用。

1.3 管理功能

管理模型定義了系統(tǒng)監(jiān)控、應(yīng)用監(jiān)控、應(yīng)用控制、遠程運維4 個管理功能。

1)系統(tǒng)監(jiān)控:對主機CPU、內(nèi)存、磁盤空間、磁盤IONODE 空間等使用情況監(jiān)控,可以設(shè)置監(jiān)控告警閾值,共享存儲可以指定由一臺主機監(jiān)控。

2)應(yīng)用監(jiān)控:對主機、應(yīng)用、應(yīng)用組運行是否正常進行實時監(jiān)測。

3)應(yīng)用控制:集群環(huán)境下的應(yīng)用控制操作主要包含啟動、停止、強制停止、重啟、主備切換、守護、監(jiān)控、負載均衡等。

4)遠程運維:具有遠程查看進程、遠程執(zhí)行命令、應(yīng)用備份、應(yīng)用克隆等功能。

管理對象為應(yīng)用、應(yīng)用組、應(yīng)用系統(tǒng)3 種。應(yīng)用是應(yīng)用集群中實現(xiàn)某一功能的一個或一組程序;多個應(yīng)用按順序組成應(yīng)用組;多個應(yīng)用組按順序組成應(yīng)用系統(tǒng)。

1.4 通用性

通用性要求模型支持各種集群應(yīng)用的狀態(tài)監(jiān)控和維護。在監(jiān)控方面,模型支持主備應(yīng)用集群、并行應(yīng)用集群、資源池應(yīng)用集群、互斥集群4 種集群。在啟動、停止等維護方面,支持多節(jié)點并行啟動、均衡方式啟動、單節(jié)點啟動、互斥啟動4 種集群啟動方式。應(yīng)用集群的分類標(biāo)準(zhǔn)如下:

主備應(yīng)用集群指一個應(yīng)用只能在集群中一臺主機上運行,其他主機作為冷備。并行應(yīng)用集群指應(yīng)用在集群中所有主機上運行。資源池應(yīng)用集群指應(yīng)用在集群中任意幾個主機上運行,且運行應(yīng)用的主機數(shù)量小于集群節(jié)點數(shù)量。當(dāng)兩個集群以互斥方式運行時為互斥集群。

多節(jié)點并行啟動指應(yīng)用在集群中所有主機上同時啟動。均衡方式啟動指應(yīng)用在集群中部分主機上同時啟動,啟動主機按CPU 負載自動選取。單節(jié)點啟動指應(yīng)用在集群中的一個主機上啟動。互斥啟動指一個集群啟動前,必須停止另一個集群。

1.5 輸入輸出

輸入是用戶在執(zhí)行管理命令時使用的參數(shù),模型的輸入?yún)?shù)有3個,第一個為命令,第二個為管理對象,第三為主機,格式為:<action><any|應(yīng)用系統(tǒng)|應(yīng)用組|應(yīng)用><any|-H host>,其中第二個和第三個參數(shù)可以為多個,可以用any 表示全部應(yīng)用或全部主機。

應(yīng)用監(jiān)控輸出按應(yīng)用分組顯示,對異常的組或主機以紅色顯示。輸出格式有短格式、長格式、監(jiān)控格式3 種。短格式顯示應(yīng)用狀態(tài)和每個主機的狀態(tài);長格式在每一行信息前增加“系統(tǒng).應(yīng)用組.應(yīng)用”;監(jiān)控格式只顯示異常的信息。輸出格式根據(jù)第一個參數(shù)自動判斷。

2 應(yīng)用管理模型在bash下的實現(xiàn)

利用提出的管理模型,采用bash 腳本語言設(shè)計了一套應(yīng)用管理軟件,設(shè)計原則及架構(gòu)如下。

2.1 設(shè)計原則

1)無依賴:采用bash shell 腳本語言開發(fā),不依賴任何第三方模塊或中間件,可以直接在Linux 機器上運行。

2)無代理:采用無代理模式,軟件只需部署在一臺管理機器上,被管理機器上不需安裝任何軟件。

3)低開銷:監(jiān)控行為要盡量減少對被監(jiān)控機器的干擾,降低給被管理機器帶來的額外開銷。

2.2 管理軟件架構(gòu)

軟件采用分級管理模式,由超級應(yīng)用管理軟件和應(yīng)用管理軟件兩部分組成。超級應(yīng)用管理軟件管理多個應(yīng)用管理軟件。應(yīng)用管理軟件由應(yīng)用控制、應(yīng)用監(jiān)控、系統(tǒng)監(jiān)控、維護工具、日志收集、結(jié)果展示等模塊組成。系統(tǒng)架構(gòu)如圖2 所示。

圖2 應(yīng)用管理軟件架構(gòu)

2.3 關(guān)鍵技術(shù)及算法

2.3.1 應(yīng)用狀態(tài)評估技術(shù)

該軟件對主機及應(yīng)用狀態(tài)評估采用運行模式、進程、進程數(shù)量3 個維度結(jié)合的評估方法,相比于文獻[13-15]中使用的方法,能夠更加全面、準(zhǔn)確地反映每臺主機、每個應(yīng)用在整個集群中的狀態(tài)。

2.3.1.1 監(jiān)控項

監(jiān)控項是用來監(jiān)控應(yīng)用狀態(tài)的參數(shù),由進程關(guān)鍵字和進程數(shù)量兩項組成。進程關(guān)鍵字用能夠唯一識別一個進程的字符串表示,可以使用復(fù)合關(guān)鍵字。進程數(shù)量是正常狀態(tài)時該進程的數(shù)量,用一個整數(shù)或范圍表示。一個應(yīng)用可以配置多個進程監(jiān)控項。

2.3.1.2 主機狀態(tài)評估

主機狀態(tài)采用兩次評估法,首先根據(jù)監(jiān)控項獲取每個主機上進程的啟動情況,然后依據(jù)該應(yīng)用中所有進程的狀態(tài),將每臺主機狀態(tài)預(yù)評估為正常、部分異常、未啟動、SSH 異常4 種。其次在預(yù)評估基礎(chǔ)上,結(jié)合應(yīng)用運行模式將主機狀態(tài)修正為正常、部分異常、未啟動異常、SSH異常、違反運行模式、空閑6種狀態(tài)。

2.3.1.3 應(yīng)用狀態(tài)評估

利用主機狀態(tài),根據(jù)應(yīng)用運行模式對應(yīng)用狀態(tài)進行評估,評估規(guī)則如下。

主備模式:只有一臺主機狀態(tài)正常,其他未啟動,則應(yīng)用為正常;主機狀態(tài)全部為異常,則應(yīng)用為異常;兩臺以上主機正?;虼嬖诓糠之惓5闹鳈C,則應(yīng)用為部分異常。

并行模式:所有主機狀態(tài)正常,則該應(yīng)用狀態(tài)為正常;若所有主機狀態(tài)異常,則應(yīng)用狀態(tài)為異常;至少有一臺主機異常,則應(yīng)用狀態(tài)為部分異常。

資源池模式:集群內(nèi)正常的主機數(shù)量在設(shè)定的范圍內(nèi),且無異?;虿糠之惓V鳈C,則應(yīng)用狀態(tài)為正常;主機全部異常,則應(yīng)用狀態(tài)為異常;若正常的主機數(shù)量超過設(shè)定范圍或存在異常的主機,則應(yīng)用狀態(tài)為部分異常。

互斥模式:互斥應(yīng)用需要根據(jù)兩個應(yīng)用的狀態(tài)進行再次評估,如果一個應(yīng)用正常,另一個異常,則將異常的應(yīng)用狀態(tài)修正為正常,如果兩個應(yīng)用都正常,則將它們都修正為異常,其他情況不用修正。

2.3.2 并行化

在軟件執(zhí)行的不同階段,采用了應(yīng)用系統(tǒng)間并行、應(yīng)用組間并行、應(yīng)用組內(nèi)并行、應(yīng)用內(nèi)多主機并行、主機內(nèi)監(jiān)控命令并行5 種并行技術(shù),將可以同時執(zhí)行的命令全部并行化。在編程中,使用了bash 的進程并行、函數(shù)并行、代碼塊并行3 種并行技術(shù)。

2.3.3 緩存加速技術(shù)

該軟件采用了應(yīng)用配置緩存、SSH 命令輸出緩存兩種緩存技術(shù)。1)應(yīng)用配置緩存:在首次執(zhí)行應(yīng)用管理命令時,將解析后的應(yīng)用配置文件緩存到內(nèi)存,后期直接從內(nèi)存讀入配置。2)SSH 命令輸出緩存:對一臺主機首次執(zhí)行SSH 命令時,執(zhí)行合并后的監(jiān)控命令,獲取該主機上所有應(yīng)用的狀態(tài)并緩存,其他并行執(zhí)行的進程需要該主機上應(yīng)用的狀態(tài)時,直接從緩存中讀取,不需執(zhí)行SSH。

2.3.4 多叉樹剪枝分層算法

在對應(yīng)用組進行啟動、重啟操作時,必須依照應(yīng)用組之間的依賴關(guān)系按順序執(zhí)行,軟件有先啟動依賴、后重啟依賴兩種依賴關(guān)系。依賴關(guān)系一般由依賴圖或依賴樹描述[16],文中使用可以體現(xiàn)層次關(guān)系的依賴樹來表示多個應(yīng)用組之間的依賴關(guān)系,并采用多叉樹剪枝分層算法對依賴樹進行剪枝,生成一顆無重復(fù)的多叉樹。該算法首先使用前序遍歷法搜索每個節(jié)點,并裁剪、移動重復(fù)的節(jié)點,最終生成帶有分層信息的無重復(fù)多叉樹。

重復(fù)節(jié)點裁剪規(guī)則:不同層重復(fù)的節(jié)點將低層的子樹剪枝后接到高層,同層重復(fù)的節(jié)點保留右節(jié)點刪除左側(cè)節(jié)點,其下子節(jié)點合并到右側(cè)節(jié)點的子節(jié)點中。

圖3(a)是根據(jù)應(yīng)用組A 的依賴關(guān)系生成的初始啟動樹,共5 層,其中應(yīng)用組E、F 組有重復(fù),經(jīng)過裁剪后生成圖3(b)所示的無重復(fù)6 層多叉樹。

圖3 初始啟動樹和裁剪后啟動樹

2.3.5 資源池負載均衡調(diào)度算法

資源池負載均衡調(diào)度負責(zé)將一個應(yīng)用按照主機CPU 負載合理地加載或遷移到適合的主機上。調(diào)度策略如下:初次啟動時,應(yīng)用自動加載到CPU 負載最輕的主機上。后期負載均衡調(diào)度時,應(yīng)用遷移到可用主機中CPU 負載最輕的主機上,且每次調(diào)度只能遷移運行該應(yīng)用的主機中一半的主機。

3 軟件與Veritas InfoScale對比

Veritas InfoScale 是功能比較全面的集群應(yīng)用管理軟件,為應(yīng)用提供了高可用方案,可以實現(xiàn)對集群中應(yīng)用的啟動、停止、監(jiān)控、故障恢復(fù)等操作。文中的應(yīng)用管理軟件可以實現(xiàn)InfoScale 的應(yīng)用管理功能,同時還增加了一些其不具備的功能,可以管理任意集群應(yīng)用,二者功能比較如表1 所示,表中的“是”表示支持或有,“否”表示不支持或沒有。

表1 應(yīng)用管理系統(tǒng)與Veritas InfoScale的功能比較

4 在氣象大數(shù)據(jù)云平臺中的應(yīng)用

4.1 運行環(huán)境

甘肅省氣象局大數(shù)據(jù)云平臺有Linux主機147臺,按照功能劃分為12 個相對獨立的應(yīng)用系統(tǒng),共有105 個應(yīng)用組、367 個應(yīng)用,一個應(yīng)用表示一個應(yīng)用集群。每個應(yīng)用系統(tǒng)建立一個管理集群,在每個管理集群中選2 臺主機作為管理節(jié)點,部署應(yīng)用管理軟件,然后將24 臺管理節(jié)點組成超級管理集群,選擇其中任意一臺作為超級管理節(jié)點,部署應(yīng)用超級管理軟件。系統(tǒng)劃分如表2 所示。

表2 甘肅氣象大數(shù)據(jù)云平臺應(yīng)用系統(tǒng)

4.2 運行分析

1)通用性方面,軟件支持大數(shù)據(jù)平臺中所有的應(yīng)用集群,管理的應(yīng)用集群達到360 多個[17-18]。如spark 集群的應(yīng)用組包含兩個應(yīng)用,master 應(yīng)用以主備模式運行,可以運行在集群中任意一臺主機上,有浮動IP。slave 是資源池模式應(yīng)用,運行在除master節(jié)點之外的任意2 臺主機上。

2)監(jiān)控方面,軟件可以真實反映集群應(yīng)用的運行情況,可以快速定位故障節(jié)點及故障原因,并可以通過微信向管理人員發(fā)送告警信息。圖4 是spark 應(yīng)用組正常運行時監(jiān)控命令輸出結(jié)果,其中第3 列表示正在運行的進程數(shù)量,第4 列表示配置的進程數(shù)量,雖然部分主機上進程沒有啟動,但符合集群運行模式要求,主機及應(yīng)用狀態(tài)均為正常。

圖4 spark應(yīng)用組正常時監(jiān)控輸出

3)監(jiān)控性能方面,采用并行技術(shù)可以明顯提高監(jiān)控的效率。圖5 是不同并行方案所需的時間。在未使用并行技術(shù)時,對147 臺主機的應(yīng)用狀態(tài)監(jiān)控需執(zhí)行600 多次SSH,用時2 min 以上;在使用5 種并行及緩存技術(shù)后,只需執(zhí)行147次SSH,用時不到5 s。而且增加主機數(shù)量對監(jiān)控性能影響不大,5 種并行技術(shù)中,應(yīng)用內(nèi)多主機并行效果最明顯,其次為應(yīng)用組內(nèi)并行。

圖5 不同并行方案比較

5 結(jié)束語

文中提出的Linux 集群應(yīng)用無代理分級管理模型支持各種類型的集群,具有監(jiān)控和管理功能,管理效率高,可以用于設(shè)計大型復(fù)雜業(yè)務(wù)的統(tǒng)一監(jiān)控管理平臺。

利用bash 設(shè)計的Linux 集群應(yīng)用管理軟件實現(xiàn)了甘肅省氣象大數(shù)據(jù)平臺所有應(yīng)用的集中統(tǒng)一管理,降低了應(yīng)用管理的難度,減少了運維工作中的失誤,提高了運維的效率,提升了應(yīng)用系統(tǒng)的可用性。

猜你喜歡
管理軟件進程集群
倉儲管理軟件在物流自動化解決方案中的應(yīng)用與發(fā)展
債券市場對外開放的進程與展望
海上小型無人機集群的反制裝備需求與應(yīng)對之策研究
改革開放進程中的國際收支統(tǒng)計
培育世界級汽車產(chǎn)業(yè)集群
一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
勤快又呆萌的集群機器人
社會進程中的新聞學(xué)探尋
俄羅斯現(xiàn)代化進程的阻礙
2007年中國管理軟件評選-獲獎名單
泰州市| 隆安县| 嘉峪关市| 涿鹿县| 丽水市| 奉节县| 靖宇县| 武胜县| 莎车县| 涿鹿县| 乾安县| 桦南县| 诸暨市| 那坡县| 岚皋县| 叶城县| 尼勒克县| 河北省| 察哈| 会宁县| 凤山市| 永仁县| 鄄城县| 太原市| 洛扎县| 三亚市| 广饶县| 昌吉市| 双牌县| 门源| 永定县| 上思县| 楚雄市| 白城市| 芜湖市| 绵竹市| 崇文区| 滦南县| 临泽县| 江孜县| 黎平县|