中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190
中國科學(xué)院超級(jí)計(jì)算環(huán)境是由總中心、9 家分中心、19 家所級(jí)中心組成的三層架構(gòu)網(wǎng)格計(jì)算環(huán)境,同時(shí)還連接了院內(nèi) 11 家單位的 GPU 計(jì)算集群,聚合通用計(jì)算能力近 1300 萬億次,GPU 計(jì)算能力近 3000萬億次。中國科學(xué)院超級(jí)計(jì)算環(huán)境主要為用戶提供計(jì)算服務(wù),同時(shí)對(duì)用戶提出的問題及時(shí)響應(yīng)并提供技術(shù)支持。衡量一個(gè)超級(jí)計(jì)算環(huán)境主要關(guān)注環(huán)境的資源信息、使用情況和用戶數(shù)目等。管理員及時(shí)有效地獲取環(huán)境的運(yùn)行情況,了解環(huán)境的資源使用信息可更好地調(diào)度用戶作業(yè),為用戶提供更好的服務(wù)。
基于 Nagios 搭建的中國科學(xué)院超級(jí)計(jì)算環(huán)境監(jiān)控平臺(tái)[1]中,針對(duì)集群主要考慮系統(tǒng)利用率 (CPU 占用率) 和節(jié)點(diǎn)占用率兩個(gè)指標(biāo)。為獲取這兩項(xiàng)數(shù)據(jù)按照 Nagios 已有插件的實(shí)現(xiàn)方式,編寫了獲取集群CPU 和節(jié)點(diǎn)占用率的插件。在獲取這兩項(xiàng)數(shù)據(jù)的同時(shí)一并抓取了集群的其它運(yùn)行數(shù)據(jù),包括集群計(jì)算節(jié)點(diǎn)數(shù)、CPU 核數(shù)、賬號(hào)數(shù)、作業(yè)數(shù)等。在之前的監(jiān)控平臺(tái)中處于當(dāng)時(shí)的需求只考慮了系統(tǒng)利用率這一指標(biāo),集群的其它運(yùn)行數(shù)據(jù)并沒有展示。為了更加詳細(xì)準(zhǔn)確地反映集群的運(yùn)行,優(yōu)化改進(jìn)已有的監(jiān)控平臺(tái),根據(jù)實(shí)際的運(yùn)行需求對(duì)獲取的運(yùn)行數(shù)據(jù)加工處理,設(shè)計(jì)成更準(zhǔn)確直觀反映集群的數(shù)據(jù)結(jié)構(gòu)。有了這些數(shù)據(jù)后,為使外部能方便快捷地獲取利用這些監(jiān)控?cái)?shù)據(jù),把數(shù)據(jù)設(shè)計(jì)成通用接口的形式對(duì)外提供。外部人員可直接調(diào)用接口快捷地獲取數(shù)據(jù)并根據(jù)自己的需求從各種維度對(duì)數(shù)據(jù)進(jìn)行展示。本文中用于展示中科院超級(jí)計(jì)算環(huán)境的 Show 平臺(tái)即基于監(jiān)控?cái)?shù)據(jù)接口開發(fā)并實(shí)現(xiàn)的。Show 平臺(tái)主要展示超級(jí)計(jì)算環(huán)境的運(yùn)維數(shù)據(jù)、集群的使用信息以及集群利用率等。普通用戶或系統(tǒng)管理員登錄后可根據(jù)自己不同的權(quán)限查看相應(yīng)內(nèi)容。
中科院超級(jí)計(jì)算環(huán)境監(jiān)控整體結(jié)構(gòu)如圖 1 所示,底層是已搭建好的環(huán)境監(jiān)控平臺(tái),其中涉及獲取集群和服務(wù)器信息的插件。在監(jiān)控平臺(tái)中主要獲取服務(wù)器的磁盤、進(jìn)程、負(fù)載、用戶、數(shù)據(jù)庫,通過這幾項(xiàng)來保證服務(wù)器能與集群正常連接并存儲(chǔ)數(shù)據(jù)。針對(duì)集群主要獲取集群的磁盤和運(yùn)行信息,包括集群當(dāng)前的利用率、作業(yè)數(shù)等;中間層是監(jiān)控?cái)?shù)據(jù)接口,利用底層環(huán)境監(jiān)控獲取的監(jiān)控?cái)?shù)據(jù)以接口的形式對(duì)外提供數(shù)據(jù)。設(shè)計(jì)的接口包括獲取實(shí)時(shí)數(shù)據(jù) (利用率、計(jì)算節(jié)點(diǎn)、賬號(hào)、CPU 核、作業(yè)) 和統(tǒng)計(jì)數(shù)據(jù) (系統(tǒng)利用率) 兩類;上層是應(yīng)用層,開發(fā)人員利用監(jiān)控?cái)?shù)據(jù)接口開發(fā)的應(yīng)用程序。本文設(shè)計(jì)的展示超級(jí)計(jì)算環(huán)境的 Show平臺(tái)即其中的一個(gè)應(yīng)用,利用監(jiān)控?cái)?shù)據(jù)接口提供的接口對(duì)數(shù)據(jù)組合并展示。
超級(jí)計(jì)算環(huán)境以三層架構(gòu)超級(jí)計(jì)算網(wǎng)格中間件SCE[2]作為核心支撐軟件,根據(jù)部署和管理的要求,設(shè)計(jì)有登錄客戶端 Client、中央服務(wù)器 CS (center server) 以及前端服務(wù)器 FS (front server) 三大模塊。其中 FS 負(fù)責(zé)中央服務(wù)器 CS 與超級(jí)計(jì)算機(jī) HPC 之間的連接,對(duì)到 HPC 的連接進(jìn)行訪問控制,以保證訪問的安全性和合法性。考慮到中國科學(xué)院超級(jí)計(jì)算環(huán)境的三層架構(gòu)特點(diǎn),F(xiàn)S 分布在各個(gè)分中心或所級(jí)中心,采用 Nagios 的分布式監(jiān)控方式部署監(jiān)控平臺(tái)。FS 收集網(wǎng)格服務(wù)器和相連接的集群的信息,通過NSCA 將數(shù)據(jù)發(fā)送給部署在總中心的監(jiān)控主服務(wù),具體部署結(jié)構(gòu)圖如圖 2 所示。
服務(wù)器的具體含義如表 1 所示。監(jiān)控主服務(wù)是部署在中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心的一臺(tái)服務(wù)器,收集所有信息并集中顯示;監(jiān)控中轉(zhuǎn)服務(wù)器是指與HPC 相連的前端 FS 服務(wù)器。由于安全等因素,主服務(wù)無法直接獲取 HPC 的相應(yīng)信息,只能通過 FS 中轉(zhuǎn)服務(wù)器獲取。FS 以及相連的 HPC 的監(jiān)控信息通過匯報(bào)的形式發(fā)送給主服務(wù),這樣可做到只要 FS 是正常工作的即可把監(jiān)控信息發(fā)送給主服務(wù)。主服務(wù)主動(dòng)連接 FS 獲取監(jiān)控信息會(huì)造成主服務(wù)自身負(fù)載過高或因連接問題獲取不到數(shù)據(jù),采用分布式的監(jiān)控方式部署可避免以上問題。
圖1 監(jiān)控整體結(jié)構(gòu)圖Fig. 1 Monitor structure
圖2 監(jiān)控平臺(tái)部署結(jié)構(gòu)圖Fig. 2 Monitor platform structure
表1 服務(wù)器描述Table 1 Description of servers
中國科學(xué)院超級(jí)計(jì)算環(huán)境現(xiàn)有 HPC 的作業(yè)系統(tǒng)主要包括 LSF、Torque、Pbspro 和 Slurm 四種,所以需要根據(jù)各自的使用方式編寫插件獲取集群信息。獲取的集群信息包括利用率、計(jì)算節(jié)點(diǎn)、賬號(hào)、作業(yè)以及 CPU 核。其中利用率的定義如下:
系統(tǒng)利用率 (CPU 占有率) = (運(yùn)行作業(yè)占用的CPU 核數(shù)/開機(jī)總 CPU 核數(shù))
節(jié)點(diǎn)占有率= (運(yùn)行作業(yè)占用的節(jié)點(diǎn)數(shù)/開機(jī)總節(jié)點(diǎn)數(shù))
開機(jī)率= (開機(jī)總節(jié)點(diǎn)數(shù)/總節(jié)點(diǎn)數(shù))
計(jì)算節(jié)點(diǎn)數(shù)據(jù)包括總節(jié)點(diǎn)數(shù)、離線節(jié)點(diǎn)數(shù)、管理員關(guān)閉的節(jié)點(diǎn)數(shù)、運(yùn)行作業(yè)占用的節(jié)點(diǎn)數(shù)、預(yù)留節(jié)點(diǎn)數(shù)、空閑節(jié)點(diǎn)數(shù);賬號(hào)數(shù)據(jù)包括總數(shù)、有作業(yè)運(yùn)行的賬號(hào)、有作業(yè)排隊(duì)的賬號(hào);作業(yè)數(shù)據(jù)包括總作業(yè)數(shù)、運(yùn)行作業(yè)數(shù);CPU 核數(shù)包括可用總核數(shù)、運(yùn)行作業(yè)占用的核數(shù)、排隊(duì)作業(yè)核數(shù)。
集群實(shí)現(xiàn)這些插件后,在監(jiān)控中轉(zhuǎn)服務(wù)中定義對(duì)集群以及自身服務(wù)器的監(jiān)控內(nèi)容,驗(yàn)證配置后啟動(dòng) Nagios 進(jìn)程,監(jiān)控中轉(zhuǎn)服務(wù)即可獲取集群的監(jiān)控信息。另外,監(jiān)控中轉(zhuǎn)服務(wù)需要設(shè)置 NSCA 的一項(xiàng)配置,通過該命令將監(jiān)控內(nèi)容發(fā)送給監(jiān)控主服務(wù)。在監(jiān)控主服務(wù)中同樣需要定義監(jiān)控中轉(zhuǎn)服務(wù)和集群的監(jiān)控內(nèi)容,與監(jiān)控中轉(zhuǎn)服務(wù)定義的內(nèi)容不同的是不需要定義獲取監(jiān)控內(nèi)容的命令。中轉(zhuǎn)服務(wù)將監(jiān)控信息發(fā)送到主服務(wù)后,主服務(wù)能自動(dòng)匹配獲取相應(yīng)內(nèi)容。在中國科學(xué)院超級(jí)計(jì)算環(huán)境監(jiān)控平臺(tái)中,前端服務(wù)器 (監(jiān)控平臺(tái)中的監(jiān)控中轉(zhuǎn)服務(wù)) 以五分鐘一次的頻率采集集群數(shù)據(jù)并匯報(bào)給監(jiān)控主服務(wù)的服務(wù)器。部署監(jiān)控主服務(wù)的服務(wù)器存放有所有集群的信息,可對(duì)這些信息進(jìn)行分析處理或配置一個(gè) Web 服務(wù)器展示監(jiān)控信息。在監(jiān)控平臺(tái)中,服務(wù)器或集群出現(xiàn)故障時(shí),平臺(tái)可根據(jù)定義的故障處理方式通知管理員,包括郵件、短信等。一旦出現(xiàn)問題管理員會(huì)收到郵件通知,有利于及時(shí)解決出現(xiàn)的故障問題,為用戶提供更好的服務(wù)。
在監(jiān)控平臺(tái)中,總中心部署監(jiān)控主服務(wù)的服務(wù)器收集到的監(jiān)控?cái)?shù)據(jù)借助 RRDTool(Round Robin Database tool)[3]將數(shù)據(jù)存儲(chǔ)在對(duì)應(yīng)的 RRD 文件中?!癛ound Robin”指使用固定大小的空間來存儲(chǔ)數(shù)據(jù),并有一個(gè)指針指向最新的數(shù)據(jù)的位置。一段時(shí)間后,當(dāng)所有的空間都存滿了數(shù)據(jù),又從頭開始存放。整個(gè)存儲(chǔ)空間的大小是一個(gè)固定的數(shù)值,RRDTool 就是使用類似的方式來存放數(shù)據(jù)的工具,該工具存儲(chǔ)數(shù)據(jù)的一個(gè)缺點(diǎn)是存儲(chǔ)空間大小固定,當(dāng)所有空間都存滿時(shí)會(huì)覆蓋原有的數(shù)據(jù)。
在保存的數(shù)據(jù)中,如集群的利用率信息,很多情況下希望可以保留幾個(gè)周期,以便于進(jìn)行對(duì)比分析。借助 RRDTool 存儲(chǔ)數(shù)據(jù)只能保留一段時(shí)間,所以在監(jiān)控平臺(tái)中引入 NDOUTILES[4]將 Nagios 監(jiān)控?cái)?shù)據(jù)存入 MySQL 數(shù)據(jù)庫。利用 MySQL 數(shù)據(jù)庫中集群的原始數(shù)據(jù),根據(jù)需求設(shè)計(jì)不同的表存儲(chǔ)不同時(shí)間間隔的數(shù)據(jù)以便統(tǒng)計(jì)數(shù)據(jù)時(shí)使用。表 2 是針對(duì)中科院超級(jí)計(jì)算環(huán)境設(shè)計(jì)的數(shù)據(jù)表,其中 scgrid 表存儲(chǔ)每個(gè)集群的原始數(shù)據(jù),每五分鐘增加一個(gè)數(shù)據(jù)項(xiàng);scgridhalf、scgridtwo 是通過 scgrid 數(shù)據(jù)表生成,主要用于提供集群最近半月或一月的數(shù)據(jù)。scgridhalf 中集群的每個(gè)數(shù)據(jù)項(xiàng)間隔為 30 分鐘,scgridtwo 每 2 小時(shí)增加一個(gè)數(shù)據(jù)項(xiàng);Dayinfo 存儲(chǔ)集群每天的系統(tǒng)利用率數(shù)據(jù),通過 scgrid 數(shù)據(jù)累計(jì)求和取均值獲得,用于計(jì)算每月的系統(tǒng)利用率數(shù)據(jù)。
為保證數(shù)據(jù)訪問的方便快捷,利用 Flask[5]框架 python 語言開發(fā)了一個(gè) Web 服務(wù)來獲取監(jiān)控?cái)?shù)據(jù)??紤]到監(jiān)控?cái)?shù)據(jù)存儲(chǔ)在 MySQL 數(shù)據(jù)庫中,外部直接訪問數(shù)據(jù)庫獲取數(shù)據(jù)會(huì)造成數(shù)據(jù)的不安全性。SCEAPI-REST[6]是訪問 SCE 環(huán)境的跨平臺(tái)和語言的通用接口。在 SCEAPI-REST 中,通過調(diào)用獲取監(jiān)控信息的 Web 服務(wù)實(shí)現(xiàn)獲取監(jiān)控?cái)?shù)據(jù)的接口。
獲取的監(jiān)控?cái)?shù)據(jù)主要包括集群利用率、計(jì)算節(jié)點(diǎn)數(shù)、賬號(hào)數(shù)、作業(yè)數(shù)和 CPU 核數(shù)等信息。針對(duì)這些數(shù)據(jù)主要從計(jì)算節(jié)點(diǎn)、賬戶、作業(yè)、CPU 核不同維度設(shè)計(jì)接口;除了考慮實(shí)時(shí)數(shù)據(jù)外,還設(shè)計(jì)了系統(tǒng)利用率的統(tǒng)計(jì)數(shù)據(jù)接口。針對(duì)一個(gè)超級(jí)計(jì)算環(huán)境,一般用戶會(huì)想要了解環(huán)境的整體信息,包括總計(jì)算能力、用戶數(shù)、作業(yè)數(shù)等,系統(tǒng)管理者除關(guān)注環(huán)境整體信息外,對(duì)其中各個(gè)集群的信息也需要清楚。針對(duì)前面的實(shí)時(shí)數(shù)據(jù),分別針對(duì)環(huán)境整體和集群設(shè)置了兩個(gè)接口(當(dāng)前實(shí)時(shí)數(shù)據(jù)和指定時(shí)間段內(nèi)數(shù)據(jù))。對(duì)系統(tǒng)利用率的統(tǒng)計(jì)數(shù)據(jù)同樣設(shè)置了兩個(gè)接口 (指定時(shí)間段內(nèi)單個(gè)集群的系統(tǒng)利用率和指定月份所有集群的系統(tǒng)利用率)。具體接口定義如表 3 所示:
其中,表 3 給出了定義的接口相對(duì)路徑,調(diào)用API 時(shí) URI 路徑還需要拼接 HTTP 協(xié)議、域名和版本信息,如 http://域名/版本//show/scgrid/tdata 表示獲取環(huán)境整體實(shí)時(shí)數(shù)據(jù)全路徑。表 3 中定義的各個(gè)接口都設(shè)計(jì)有自己的參數(shù),如 /show/scgrid/envInfo 參數(shù)包括 type、start、end 三個(gè),其中 type 表示需要獲取的數(shù)據(jù)類型 (計(jì)算節(jié)點(diǎn)、賬號(hào)、作業(yè)、CPU 核);start 和end 分別用于指定獲取數(shù)據(jù)的開始時(shí)間和結(jié)束時(shí)間。
如圖 3 部署圖所示:SCEAPI-REST 以 web 形式訪問監(jiān)控的 Web 服務(wù);Web 服務(wù)接受請(qǐng)求后查詢存儲(chǔ) Nagios 信息的 MySQL 數(shù)據(jù)庫并進(jìn)行計(jì)算,以JSON 格式返回?cái)?shù)據(jù)。SCEAPI-REST 相當(dāng)于對(duì) Web服務(wù)各個(gè)接口進(jìn)行封裝處理,只要保證 Web 服務(wù)提供的接口不變,即使 Web 服務(wù)內(nèi)部的實(shí)現(xiàn)根據(jù)實(shí)際運(yùn)行做出調(diào)整并不影響 API 端接口的使用。Web 服務(wù)采用 Flask 框架 python 語言開發(fā)實(shí)現(xiàn)。Flask 是一輕量級(jí)的 web 應(yīng)用框架,具有一個(gè)包含基本服務(wù)的強(qiáng)健核心,其他功能可通過擴(kuò)展實(shí)現(xiàn)。Flask 主要依賴于兩個(gè)外部庫 Jinja2 模板引擎和 Werkzeug WSGI 工具集,開發(fā)簡單方便。在 Web 服務(wù)中,為獲取所需的環(huán)境整體數(shù)據(jù)和集群數(shù)據(jù),從數(shù)據(jù)庫獲取數(shù)據(jù)后需要進(jìn)一步對(duì)數(shù)據(jù)簡單計(jì)算處理。比如環(huán)境整體數(shù)據(jù)需累加各個(gè)集群的對(duì)應(yīng)數(shù)據(jù),每個(gè)集群雖然都五分鐘一條數(shù)據(jù),但由于獲取時(shí)間并不完全相同,對(duì)時(shí)間進(jìn)行取整操作保證每個(gè)時(shí)間都存有各個(gè)集群的一條數(shù)據(jù)。獲取到數(shù)據(jù)結(jié)果后,為方便外部使用將數(shù)據(jù)結(jié)果統(tǒng)一為現(xiàn)在比較流行的 JSON 格式輸出。
表2 數(shù)據(jù)表描述Table 2 Description of data tables
表3 接口定義描述Table 3 Description of interfaces
開發(fā)者可通過 Web 社區(qū)、移動(dòng)應(yīng)用、桌面程序、腳本等不同形式的終端訪問 SCEAPI-REST,獲取相應(yīng)數(shù)據(jù)。SCEAPI-REST 提供相應(yīng)的使用手冊(cè),開發(fā)者只要根據(jù)手冊(cè)可方便地利用提供的各個(gè)接口獲取 SCE 環(huán)境的各項(xiàng)數(shù)據(jù),從而根據(jù)自己的需求開發(fā)設(shè)計(jì)相應(yīng)的應(yīng)用。
中科院超級(jí)計(jì)算環(huán)境中用戶和集群管理員大都使用科技網(wǎng)通行證,為了方便瀏覽器端的開發(fā),支持科技網(wǎng)通行證,SCEAPI-REST 針對(duì)獲取監(jiān)控?cái)?shù)據(jù)設(shè)計(jì)和實(shí)現(xiàn)了 javascipt 開發(fā)接口。開發(fā)人員可以直接在瀏覽器端使用,不再需要處理同源和跨域問題,該接口支持請(qǐng)求的并發(fā)訪問。具體流程如圖 4 所示,通過科技網(wǎng)通行證的腳本驗(yàn)證用戶是否已經(jīng)登錄通行證,若已經(jīng)成功登錄,“通行證登錄”模塊負(fù)責(zé)根據(jù) code從科技網(wǎng)通行證服務(wù)器獲取用戶信息,并提供公開查詢的權(quán)限,然后使用 js 腳本連接訪問公開數(shù)據(jù),若未登錄給出出錯(cuò)信息并提示需要登錄。如果設(shè)計(jì)的WEB 應(yīng)用是采用科技網(wǎng)通行證驗(yàn)證登錄,可直接采用加載瀏覽器的 javascript 腳本方式獲取 JSON 格式數(shù)據(jù),進(jìn)而對(duì)數(shù)據(jù)進(jìn)行展示處理。
圖3 監(jiān)控?cái)?shù)據(jù)部署圖Fig. 3 Monitor data structure
圖4 監(jiān)控?cái)?shù)據(jù)登錄流程示意圖Fig. 4 Login process of monitoring data
基于 SCEAPI-REST,結(jié)合運(yùn)維的實(shí)際需求,我們?cè)O(shè)計(jì)開發(fā)了 Show 平臺(tái)對(duì)其中的監(jiān)控?cái)?shù)據(jù)從不同維度進(jìn)行展示。平臺(tái)接入了中國科技網(wǎng)通行證平臺(tái),采用科技網(wǎng)通行證統(tǒng)一登錄,直接調(diào)用 SCEAPIREST 提供的 javascipt 開發(fā)接口獲取監(jiān)控?cái)?shù)據(jù)。調(diào)用javascript 開發(fā)接口的好處是簡單方便,只需要加載相應(yīng)的 js 代碼,但必須使用科技網(wǎng)通行證先登錄,否則無法獲取接口返回?cái)?shù)據(jù),提示錯(cuò)誤信息。
關(guān)注超級(jí)計(jì)算環(huán)境的一般為使用資源的用戶或者集群管理員,針對(duì)不同的用戶設(shè)置了三類角色,包括超級(jí)管理員、集群管理員和普通用戶。在平臺(tái)中賦予每一類角色不同的權(quán)限用于查看不同的頁面內(nèi)容。圖5是權(quán)限控制的流程圖,當(dāng)用戶發(fā)出訪問請(qǐng)求時(shí),根據(jù)用戶提供的憑證 (用戶名、密碼) 驗(yàn)證用戶的合法性,若憑證無誤,平臺(tái)通過角色檢查得到用戶的權(quán)限,根據(jù)權(quán)限顯示對(duì)應(yīng)的網(wǎng)站內(nèi)容。通過權(quán)限控制可實(shí)現(xiàn)系統(tǒng)的分級(jí),提高系統(tǒng)安全性,同時(shí)更加方便用戶查看自己關(guān)注的內(nèi)容。
針對(duì)前面設(shè)置的三類角色,平臺(tái)分別設(shè)計(jì)了首頁、集群展示和集群月報(bào)利用率三個(gè)頁面。首頁展示環(huán)境的整體信息,所有用戶只要登錄該平臺(tái)即可查看。集群展示和集群月報(bào)利用率頁面展示集群的相應(yīng)數(shù)據(jù),其中集群管理員可查看自己集群的利用信息和利用率數(shù)據(jù);超級(jí)管理員可查看所有集群的信息。
圖5 權(quán)限控制圖Fig. 5 Access Control
圖6 首頁示意圖Fig. 6 Home page
圖6 是首頁展示信息,左側(cè)為中科院超級(jí)計(jì)算環(huán)境的整體運(yùn)維數(shù)據(jù),包括總節(jié)點(diǎn)數(shù)、開機(jī)節(jié)點(diǎn)數(shù)和可用核數(shù);累計(jì)開通賬號(hào)數(shù);作業(yè)運(yùn)行和排隊(duì)信息。右側(cè)為環(huán)境整體計(jì)算節(jié)點(diǎn)、核數(shù)、作業(yè)數(shù)和賬號(hào)信息展示圖,通過點(diǎn)擊右側(cè)的最近一天、最近一周和最近一月按鈕可分別查看對(duì)應(yīng)時(shí)間段的數(shù)據(jù)。右側(cè)顯示的每個(gè)圖都是采用 Highcharts[7]所畫的時(shí)間軸函數(shù)圖,可通過拖拽橫軸查看不同時(shí)間段的數(shù)據(jù),點(diǎn)擊下側(cè)的各個(gè)數(shù)據(jù)項(xiàng),可控制對(duì)應(yīng)的數(shù)據(jù)顯示與否。每個(gè)圖都可通過一個(gè)單獨(dú)的鏈接來訪問,如果特別關(guān)注某一信息可通過鏈接來訪問并查看相關(guān)數(shù)據(jù)。
集群展示頁面與首頁相比可直接查看集群利用率和節(jié)點(diǎn)開機(jī)率兩個(gè)維度數(shù)據(jù)。圖 7 為截取的集群利用信息,包括集群利用率和節(jié)點(diǎn)開機(jī)率,這兩項(xiàng)數(shù)據(jù)是集群管理員最為關(guān)注的數(shù)據(jù)。在計(jì)算集群利用率時(shí)時(shí)只考慮了可用的 CPU 核和節(jié)點(diǎn),結(jié)合節(jié)點(diǎn)開機(jī)率信息可反映集群運(yùn)行的是否比較慢,空閑資源是否很多。與前面的圖類似,也是時(shí)間軸函數(shù)圖,通過拖拽橫軸可查看不同時(shí)間段的數(shù)據(jù)。集群每月的系統(tǒng)率可通過集群月報(bào)利用率頁面查看,這里顯示集群最近半年的數(shù)據(jù)。
圖7 集群利用信息示意圖Fig. 7 Cluster Utilization
基于 Nagios 開發(fā)了中國科學(xué)院超級(jí)計(jì)算環(huán)境監(jiān)控平臺(tái),通過監(jiān)控平臺(tái)可獲取集群的運(yùn)維數(shù)據(jù)。為方便外部使用,對(duì)其中的運(yùn)維數(shù)據(jù)加工處理并設(shè)計(jì)成接口的形式對(duì)外提供。開發(fā)者可利用提供接口獲取運(yùn)維數(shù)據(jù)并設(shè)計(jì)自己的應(yīng)用展示相關(guān)數(shù)據(jù)。本文利用監(jiān)控?cái)?shù)據(jù)接口搭建了中科院超級(jí)計(jì)算環(huán)境展示平臺(tái)用于展示整個(gè)超級(jí)計(jì)算環(huán)境以及集群的運(yùn)行情況。各集群管理員可通過此平臺(tái)查看自己集群的運(yùn)行情況 (計(jì)算節(jié)點(diǎn)、作業(yè)、賬號(hào)、CPU 核、利用率);普通用戶可通過平臺(tái)了解超級(jí)計(jì)算環(huán)境的整體資源信息;超級(jí)管理員可查看整個(gè)環(huán)境以及集群的數(shù)據(jù),清楚地了解環(huán)境運(yùn)行信息。平臺(tái)提供了時(shí)間軸函數(shù)圖來展示各項(xiàng)數(shù)據(jù),用戶也可通過調(diào)用監(jiān)控?cái)?shù)據(jù)接口獲取監(jiān)控?cái)?shù)據(jù),以更方便自己查看使用的形式來展示這些數(shù)據(jù)。
[1] 和榮,肖海力. 基于Nagios的監(jiān)控平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].科研信息化技術(shù)與應(yīng)用,2014,5(5): 77-85.
[2] 戴志輝. 三層架構(gòu)超級(jí)計(jì)算環(huán)境優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)研究[D].北京,中國科學(xué)院研究生院,2011.
[3] RRDTool [S]. http://oss.oetiker.ch/rrdtool/,2014.
[4] Nagios項(xiàng)目組. Nagios-3應(yīng)用指南[S]. http://www.nagios.org,2008.
[5] Flask[S]. http:// flask.pocoo.org/,2010.
[6] 曹榮強(qiáng),肖海力,盧莎莎. 基于REST風(fēng)格的科學(xué)計(jì)算環(huán)境信息Web服務(wù)[J].科研信息化技術(shù)與應(yīng)用,2012,3(5):76-82.
[7] Highcharts[S]. http://www.highcharts.com/products/highcharts/,2016.