世俱杯规则-虎牙直播-比利亚vs西班牙人-德国杯|www.cnyhmy.com

氣象大數據算力資源管理系統的設計與實現

時間:2023-07-16 18:40:04 來源:網友投稿

楊代才,王華,王俊超,喬木,王娟娟,賴安偉

(1.湖北省氣象信息與技術保障中心,武漢430074;
2.中國氣象局武漢暴雨研究所暴雨監測預警湖北省重點實驗室,武漢430205)

隨著大氣監測和預報預警服務需求的提升,各類探測設備(劉思瑤等,2021;
余蓉等,2021)和數值模式預報系統(夏軍等,2019)的時間、空間分辨率不斷提高,所產生的數據量不斷增大。中國氣象局武漢暴雨研究所建立的基于雙偏振雷達、X波段雷達、邊界層風廓線雷達等多種探測裝備的暴雨監測外場試驗基地初具規模,依托該基地以及多個國家自然基金重點項目開展聯合觀測試驗,獲得了大量的觀測資料和試驗數據(傅云飛,2019);
依據多途徑探測資料的融合分析系統已經全年業務運行,可提供每3 h間隔10 km分辨率的中尺度分析場;
華中區域中尺度數值天氣預報模式可提供各種高分辨率的預報產品;
武漢RUC快速更新循環預報系統更是達到了1.5 km 水平分辨率、15 min 分析更新頻率、1 h 預報更新頻率、0~12 h 預報時效的快速循環分析系統(賴安偉等,2021);
華中區域環境氣象數值預報業務系統能夠提供華中區域9 km 分辨率、0~78 h 內逐小時6 種污染物濃度及能見度數值預報產品(劉琳等,2018)。

大量氣象及氣象敏感行業所產生的各類結構化和非結構化數據,使氣象數據具有了大數據的海量性、多樣性與高速更新的特征,可以說真正進入了氣象大數據時代(沈文海,2019;
劉媛媛等,2021)。氣象數據價值隨時間往往呈斷崖式下跌,必須第一時間融合相關應用技術,深度挖掘氣象數據所存在的價值。因此,氣象大數據業務處理平臺往往要求數據實時在線,并且可以隨時被調用與計算(邱晨輝,2021)。氣象大數據主要分為行業大數據和互聯網大數據兩種(沈文海,2016)。行業大數據包括:與氣象部門內部業務工作息息相關、由專業設備采集的內部氣象數據;
與水利、環保、生態等其他行業部門進行數據共享、交換獲得的數據(殷志遠等,2020);
由原始氣象數據經過處理加工產生的氣象服務類產品數據;
以及各個業務系統的運行日志數據等。互聯網大數據包括互聯網上所有與氣象有關的數據,可以是歷史氣象信息,或者搜索引擎對氣象相關的分析數據,以及所有可供氣象部門業務工作應用的數據等(徐亮亮,2021)。截止2021 年12 月,湖北省存有的各類氣象數據總量約7 PB,且近年來氣象及相關數據增長明顯加速,2020 年以來各類數據增加超過109 TB,其日增量由2015年的約200 GB提高到2021年的約400 GB。

氣象發達國家的大數據進程啟示我們,要推動以大數據為基礎的創造性服務,就必須大力發展基于行業數據平臺的專業服務、基于統計數據挖掘的分析服務、基于大數據的民生服務、管理服務以及基于行業或價值模塊細分的服務,通過對自然災害歷史信息和實時天氣信息的挖掘,提高對自然災害的安全防范意識和應急處理能力。以美國國家海洋大氣局(NOAA)發起的大數據項目(BDP,Big Data Project)為例,通過與互聯網云商(亞馬遜、微軟、谷歌和IBM等公司)合作,來提升資源存儲、數據分析和高性能計算能力,構建數據聯盟(Data Alliances),面向公眾開放海量大氣海洋數據,通過數據的利用來促進氣象技術和社會經濟發展。

針對國內氣象業務現狀和未來發展趨勢,2017年12 月,國家氣象信息中心提出構建“天擎”系統。“天擎”系統是一種以“云+端”為設計思路,實現“數算一體”的氣象綜合業務支撐平臺,這一平臺改變了過去傳統煙囪式信息系統架構方式,各業務系統的輸入輸出數據均在“天擎”中進行統一集約化管理,使包括機器學習、人工智能在內的多類數據加工算法可以更為高效的應用于氣象大數據中(夏正龍等,2021;
徐亮亮,2021)。隨著信息技術的快速發展,以往以虛擬機為最小單位的算力資源分配模式,現在來看,存在資源利用率低、軟件環境不一致和應用部署、運維效率低等問題,已無法滿足氣象大數據云平臺計算業務場景需求,一種新的技術應運而生,那就是容器技術。不同于虛擬機技術,容器技術通過打包應用程序的所有依賴,實現應用程序的快速部署和運行,開發、測試和生產環境完全一致,用戶再也不用去定位因環境差異導致的各種異常問題,大大提高了生產效率。此外,容器技術還有跨平臺、可移植的特性,對于開發者和系統管理員來說簡單易用,容器技術直接解決的問題,就是目前云計算架構遇到的問題。

容器具有更小顆粒度的算力分配、更輕量和快捷的部署方式、靈活的任務調度等特點,近年來,以Docker 為代表的容器技術被愈來愈廣泛的應用在云計算中。Docker 在應用程序的開發、發布和部署上具有十分明顯的優勢,由于其簡單、便捷、實用的特點,國內外知名的公司已經開始大規模的使用這一技術(徐蘊琪等,2021;
Amit et al.,2022;
Ren,2022)。但是,由于Docker 本身只具備基本的容器管理功能,如:鏡像的制作、下載和上傳、容器生命周期的管理等(武志學,2017),在大規模的容器技術運用中,需要一種容器集群管理系統來統一管理分布在集群中的各個容器,從而實現容器的編排、自動化部署、任務調度、資源分配和服務發現等功能。因此,業界產生了大量針對容器的管理系統,例如Google 的Kubernetes、Docker 的Swarm 和Mesos 發布的Marathon 等(徐珉,2017)。以Docker 容器技術為核心的第三方容器云平臺正在日益廣泛的被業界所應用,Kubernetes(也稱為k8s)是基于Docker 容器技術的一種容器集群管理系統,其為用戶提供了一個容器化應用的整體解決方案,具備強大的容器編排能力,遵循微服務架構理論,并且開放開源(杜軍,2016)。正因為Kubernetes 具有這些特征,其從出現之初便受到業界的廣泛關注,現今Kubernetes已成為Docker 生態圈最流行的開源容器集群調度系統(肖斐,2010;
孫大為等,2014;
齊磊等,2017)。

Docker容器技術是氣象大數據云平臺實現“數算一體”功能所采用的關鍵技術之一,隨著業務化進程的不斷推進,越來越多的算法將實現容器化部署,如何高效、便捷的管理這些容器,使之穩定、高效的發揮業務支撐作用,已成為新的難題。為了解決這一難題,湖北省氣象局基于Kubernetes開源框架,結合氣象大數據云平臺業務實際需求,設計并構建了一套面向容器的算力資源優化管理系統,該系統從多個方面促進了容器技術在氣象大數據云平臺中的應用。

算力資源優化管理系統包括一種容器平臺調度子系統,該子系統以“天擎”SOD為原始輸入數據源和返回產品存儲、共享中心,通過賬戶創建、資源授權、鏡像制作、算法注冊、算法加載、任務定義、任務啟動、任務日志查看等多項功能,實現容器的串聯與調度。此外,該系統還設計并構建了一種基于Kubernetes 的容器管理子系統,能夠對跨服務器的多容器進行管理,實現負載均衡、存儲編排、自動部署和回滾等功能。

1.1 設計思路與架構

算力資源優化管理系統框架圖如圖1 所示,主要由加工容器調度子系統(以下簡稱調度子系統)和容器平臺管理子系統(以下簡稱管理子系統)兩部分組成,兩者相輔相成,缺一不可。一方面,調度子系統以“天擎”SOD作為數據源輸入,通過服務接口與“天擎”SOD進行數據交換,獲取計算所需原始數據,并將加工計算后的產品輸出給“天擎”接口實現產品共享;
另一方面,調度子系統在用戶和容器之間搭建了橋梁,用戶通過調度子系統提供的賬戶創建、資源授權、鏡像制作、算法注冊、算法加載、任務定義、任務啟動、任務日志查看等功能,可以輕松的完成目標算法的部署和計算結果的獲得,而不必關心容器實現的具體細節。

圖1 算力資源管理系統框架圖Fig.1 Computing resource management system framework

從邏輯層面看,相比于調度子系統,管理子系統處于較底層位置。管理子系統基于Kubernetes容器編排引擎,一方面,針對計算節點群,開展節點資源監控,根據節點狀態和用戶對容器的需求,完成容器化應用自動化部署、擴縮和管理;
另一方面,接收調度子系統算法加載和運行請求,通過節點預選、節點優選打分、算法倉庫創建等功能,實現容器的快速調度和調度結果反饋。

1.2 系統軟件實現

基于B/S(Browser/Server,即瀏覽器/服務器)架構實現的算力資源優化管理系統主要包括數據縱覽、環境資源、鏡像倉儲、應用服務和用戶中心等功能模塊,每個功能模塊又包含若干子功能模塊。數據縱覽直觀反映應用、應用CPU 和內存使用量、實例、系統狀態、鏡像、系統日志等基本概況;
環境資源包括環境管理、主機管理、容器管理和存儲卷,分別用于實現Kubernetes環境、容器宿主主機、容器和存儲的管理;
鏡像倉庫實現倉庫和鏡像的導入、創建和編輯等功能;
應用服務針對各類應用實現應用實例的新增與編輯、編排和基礎信息配置管理;
用戶中心實現用戶角色、權限的統一管理。算力資源優化管理系統針對容器提供了一站式的系統維護與可視化工具,大大方便了用戶對容器的使用和技術管理人員對算法調度與容器平臺的運維。

2.1 調度子系統

調度子系統包括賬戶創建、資源授權、鏡像制作、算法注冊、算法加載、任務定義、任務啟動、任務日志收集等功能。主要業務邏輯如下:

調度子系統授權從“天擎”系統接入的用戶,并將用戶相關信息同步至容器平臺;
算法管理員通過調度子系統向用戶授權計算資源和存儲資源;
用戶在得到授權后,可以上傳算法鏡像并填寫相應的元數據信息;
調度子系統在審核鏡像的安全性與完整性后,將鏡像上傳至容器平臺并授權用戶相應的數據訪問權限。

用戶通過調度子系統的鏡像倉庫,選取鏡像并填寫算法執行目錄,選擇存儲掛載目錄,將鏡像加載至計算節點,完成在調度平臺上的算法注冊與加載;
此后,用戶可以在調度平臺上通過任務參數的設定實現任務的觸發。一般的任務觸發方式分為四種:DI 觸發、順序觸發、定時觸發與人工觸發。

任務被觸發后,調度子系統將在容器平臺中創建容器,執行任務并實時監控任務執行期間的容器使用情況,若執行超時或資源不足,任務將被加入執行隊列中;
任務執行成功后,將發送MQ消息通知管理子系統將容器銷毀。這一步中,容器平臺將調用Kubernetes 的api 接口(即應用程序接口)清除已執行完成的算法容器,并反饋刪除結果。

2.2 管理子系統

管理子系統基于Kubernetes 容器編排引擎,其調度器的執行流程如圖2 所示。某個算法觸發調度后,系統將算法配置的CPU、內存與可調度節點上可分配資源進行對比,若資源充足,則進行算法資源配置文件拼裝、資源部署腳本下發、節點預選、節點優選等一系列調度動作,最終獲取算法運行結果;
反之,由于可調度節點上可分配的資源無法滿足配置的算法資源需求,調度無法成功,則調度結束,后期可以通過增加資源或縮減算法資源配置等方式達到成功調度的目的。

圖2 Kubernetes的調度執行流程Fig.2 Scheduling execution process of Kubernetes

在管理子系統中,將創建和管理的最小的可部署的計算單元稱為Pod。這些Pod 是一個或多個容器,這些容器共享存儲、網絡、以及怎樣運行這些容器的聲明。Pod 中的內容總是并置的并且一同調度,在共享的上下文中運行。圖2 中,管理子系統給一個Pod做調度選擇,主要包含兩個步驟:預選與優選。

預選階段,調度器使用節點預選策略將所有滿足Pod 調度需求的節點選出來。例如,使用某種節點預選策略檢查候選節點的可用資源,包括CPU、內存等能否滿足Pod的資源請求,得出節點列表,節點列表包含了所有可調度節點;
通常情況下,節點列表包含不止一個節點。若節點列表為空,則代表該Pod 不可調度。常用的節點預選策略包括基礎調度、volume 相關、宿主機相關、Pod相關等策略。

優選階段,調度器使用節點優選策略為Pod 從預選階段得到的節點列表中選取一個最合適的節點,并將Pod 調度到該節點上。根據啟用的節點優選策略打分規則,調度器會給每一個可調度節點進行打分,得分最高的節點成為最合適節點。若存在多個得分最高的節點,調度器將從中隨機選取一個。節點的優選策略包括:選擇空閑資源最多的宿主機、選擇資源分配最均衡的節點和偏向具有最多請求資源的節點等。

2.3 硬件部署

算力資源優化管理系統的硬件部署示意圖如圖3所示。其中,系統部署在console 服務器上,與“天擎”系統中的Xugu集群(即虛谷數據庫集群)對接,并對其它節點進行管理。Xugu 集群是“天擎”系統向用戶提供的定制化、高性能、高可靠、易用便捷的存儲體系,用于存儲應用系統的元數據信息和應用中間結果。

圖3 硬件部署示意圖Fig.3 Hardware deployment diagram

為保障系統的正常運行,并實現系統的故障檢測與定位,設計了鏡像倉庫。鏡像倉庫的高可用實現方案如圖4 所示。鏡像倉庫使用NAS(即網絡附屬存儲)作為共享存儲,多個鏡像倉庫指向同一個NAS 目錄,通過負載均衡實現高可用。倉庫中的鏡像文件每天定時自動全量備份,接口網關做加權輪詢負載均衡。

圖4 鏡像倉庫的高可用實現方案Fig.4 Scheme of high availability implementation of mirror repository

系統中的核心組件均進行了高可用設計,表1 給出了核心組件的高可用模式和實現方式。Xugu 數據庫采用集群模式實現數據高可用;
鏡像倉庫存儲在NAS(NAS 數據高可用),鏡像倉庫01 和鏡像倉庫02 指向同一個NAS目錄,接口網關做IP_hash負載均衡,實現鏡像倉庫的高可用;
Master Node采用了Leader Election(即主從選舉)方式實現高可用;
容器云平臺控制臺和后臺分別部署兩個Paas-web、Paas-server,接口網關做輪詢負載均衡實現服務的高可用。

表1 核心組件的高可用模式和實現方式Table 1 High availability mode and implementation of core components.

算力資源優化管理系統通過多節點均衡調度、算法資源精細化匹配、容器運行資源隔離、算法鏡像存儲故障恢復、容器指標和算法運行故障監控等關鍵技術,支撐用戶在氣象大數據算法業務上的需求。

3.1 多節點均衡調度

當算法調度計算節點為多節點,在調度過程中,由于一些原因,會出現調度不均衡的問題。例如:節點故障、新節點被加到集群中、節點資源利用不足等,這些問題會導致Pod 在調度過程中分配不均,例如會造成節點負載過高,引發Pod觸發OOM(Out of memory,即內存不足)等操作,影響服務的正常使用。為應對這些情況,本系統采用多節點均衡調度方法,在部分計算節點故障時,容器算法可自動檢測節點狀態,仍可正常進行調度,保障算法調度的可靠性。另外,如2.2節所述,系統還采用節點負載均衡調度策略,進一步使計算節點資源得到均衡使用。

3.2 算法資源精細化匹配

在Kubernetes 與Docker 默認的設置中,容器內單個算法執行將會占用容器設置的所有資源,造成資源與算力的冗余。為解決這一問題,管理子系統會根據用戶設置的資源進行容器創建,并進行資源限制以精確匹配算法運行時所需資源。資源限制是通過Pod中容器屬性的resources 字段進行設置的,它是Kubernetes 提供的Resource Requirements 類型的api 對象。管理子系統采用resources 字段下的requests 和limits兩種限制類型對資源進行控制。所謂requests,即資源需求,代表了資源下限,例如,運行Pod 的節點必須滿足運行Pod的最基本需求才能運行Pod;
所謂limits,即資源限額,代表了資源的上限,例如,運行Pod期間,可能內存使用量會增加,那最多能使用多少內存,這就是資源限額。當集群資源不足時,Kubernetes 會根據Pod標記的QoS(Quality of Service,即服務質量保證)類別做剔除決策,騰出空閑資源。QoS 優先級從低到高分為最大努力型(Best-Effort)、突發流量型(Burstable)和保證型(Guaranteed)三種。在系統臨近內存耗盡情況下,最大努力型Pods 會最先被結束掉;
當沒有最大努力型Pods可以被結束掉時,突發流量型Pods會被結束掉;
當沒有最大努力型和突發流量型Pods 可以被kill時,保證型Pods才會被結束掉。因此,為更好的提高資源利用率,重要業務服務設置為保證型,其它服務根據重要程度設置為最大努力型或突發流量型。

3.3 容器運行資源隔離

在原始Kubernetes 與Docker 中,容器內有多個算法同時運行時,算法間會相互影響。例如,當某個算法運行消耗資源較大時,會導致其他算法運行資源不足,影響算法執行結果。為解決這一問題,管理子系統采用了一種“隨調隨起”的管理策略,即:在每次執行都會新建一個獨立的容器,容器與容器之間運行環境及資源隔離,從而提升算法運行的穩定性。

3.4 算法鏡像存儲故障恢復

為保障用戶的信息和算法存儲安全,調度子系統為鏡像倉庫配置了高可用及備份機制。鏡像倉庫的高可用通過部署多節點負載均衡實現,當某一節點鏡像倉庫服務故障時,會自動切換至正常鏡像倉庫,不影響服務正常使用;
鏡像倉庫使用全量周備份、增量日備份的備份機制,并定時清理30 d以上的“僵尸”鏡像數據。鏡像倉庫的高可用和備份機制,可以保證鏡像倉庫及算法鏡像文件存儲故障或誤操作時,可以及時進行恢復,挽回用戶的損失。

3.5 容器指標和算法運行故障監控

為解決監控容器運行狀況,引入了Prometheus 容器監控技術,它是一套開源的新一代云原生監控告警框架。系統采用了兩個Prometheus server 監控同時一目標的高可用實現方案,通過Prometheus 監控端點采集容器性能指標數據,并將監控端點通過Http服務的形式暴露給Prometheus 主機,Prometheus 主機通過訪問監控端點,便可獲取采集到的數據。在算法運行故障監控方面,本系統新增算法輸出日志下載能力,提供容器化算法及服務的資源監視能力,通過容器平臺監控組件可查詢容器資源使用情況,包含CPU、內存、網絡等,算法故障錯誤日志查詢功能,算法在容器內執行過程出現錯誤的日志進行查詢,快速定位問題,并解決故障。此外,系統實現了容器、算法故障監控與氣象綜合業務實時監控系統“天鏡.湖北”的對接,進一步提升了容器、算法故障的及時發現與快速處理能力。

本文從氣象大數據算力資源優化管理系統的建設需求、總體架構以及實現方式等問題出發,探討了該系統設計的思路和若干關鍵技術,得出以下結論:

(1)基于B/S 架構,設計并實現了一套面向容器平臺的氣象大數據算力資源優化管理系統,該系統包括加工容器調度和容器平臺管理兩個子系統。系統以氣象大數據云平臺“天擎”為數據中臺,基于Kubernetes的容器編排引擎,通過兩個子系統的合理調度和配置,搭建了用戶使用容器的橋梁,使容器高效、便捷地為各類氣象大數據的算法產品加工與挖掘分析計算服務。

(2)調度子系統包括賬戶創建、資源授權、鏡像制作、算法注冊、算法加載、任務定義、任務啟動、任務日志收集等功能。用戶可以在調度平臺上通過任務參數的設定實現任務的觸發,其觸發方式靈活機動。任務被觸發后,調度子系統在容器平臺中創建容器、執行任務并實時監控任務執行期間容器的使用情況;
管理子系統將算法配置的CPU、內存與可調度節點上可分配資源進行對比,并完成配置文件拼裝、資源部署腳本下發、節點預選優選,最終獲取算法運行結果。

(3)綜合運用多節點均衡調度、算法資源精細化匹配、容器運行資源隔離、算法鏡像存儲故障恢復、容器指標和算法運行故障監控等關鍵技術,有效提升了容器算力資源的調度能力、可靠性和利用率。自動負載調度方式,支持多節點負載均衡調度,使服務器資源充分利用,保證算法調度高可用性;
算法容器可進行CPU、內存限制,保證宿主機上的容器資源相互隔離,服務器資源合理使用,保障服務器穩定可靠運行;
算法任務運行完成后,相應的容器會進行回收,容器占用的資源也會進行釋放,大大提升資源利用率。

該系統于2022 年1 月開始業務運行,截止目前,累計實現多個類別、近百個算法的部署與調度的統一管理,為“天擎”系統的“云+端”業務發展規劃提供了一定的實踐基礎和有效助力。近年來,運用大數據推動經濟發展、完善社會治理、提升政府服務和監管能力正成為趨勢,大數據也成為氣象部門重塑競爭優勢的新機遇。基于“天擎”系統進行氣象大數據挖掘,將人工智能、知識圖譜與數字孿生等前沿業界技術與氣象大數據相結合,將會是氣象領域研究者進一步的研究方向之一。后續將不斷改進和完善面向容器平臺的氣象大數據算力資源優化管理系統,持續促進氣象大數據和研究型業務的發展。

猜你喜歡算力鏡像子系統算力盜用:一種新型財產侵害*政法論叢(2022年3期)2023-01-08算力網絡中基于算力標識的算力服務需求匹配數據與計算發展前沿(2022年6期)2022-12-22不對中轉子系統耦合動力學特性研究艦船科學技術(2022年21期)2022-12-12中國電信董事長柯瑞文:算力成為數字經濟的主要生產力現代經濟信息(2022年22期)2022-11-13“東數西算”背景下算力服務對算力經濟發展影響分析數據與計算發展前沿(2022年6期)2022-03-14鏡像當代黨員(2020年20期)2020-11-06GSM-R基站子系統同步方案研究鐵道通信信號(2020年3期)2020-09-21駝峰測長設備在線監測子系統的設計與應用鐵道通信信號(2018年8期)2018-11-10鏡像小康(2018年23期)2018-08-23鏡像小康(2015年4期)2015-03-31

推薦訪問:管理系統 氣象 數據

最新推薦
猜你喜歡