C114通信網(wǎng)  |  通信人家園

技術
2019/11/6 09:54

OpenStack硬件管理加速利器:Cyborg

C114通信網(wǎng)  鮑昱蒙

隨著5G商用的漸近,通信行業(yè)也迎來了5G的機遇與挑戰(zhàn)。大規(guī)模機器類通信、超可靠、低延遲通信需求場景(智能家居、智慧城市、增強現(xiàn)實、工業(yè)自動化、自動駕駛等)的興起,對未來網(wǎng)絡的計算和流量轉發(fā)能力提出了更高的要求。通用CPU設備已經(jīng)無法滿足處理海量數(shù)據(jù)、圖片、流量的需求。

根據(jù)不同業(yè)務場景和自身優(yōu)勢,通訊廠商引入GPU、FPGA等進行加速,推出了各種加速硬件方案。對于異構加速硬件,要運行在各種CloudOS上,再被上層廠家的VNF調用,假如沒有一個統(tǒng)一的標準來管理這些加速卡,沒有統(tǒng)一的接口來讓上層網(wǎng)元調用,將會造成比較嚴重的問題。

為了實現(xiàn)NFV異構加速硬件的統(tǒng)一管理, ETSI制定了NFV加速硬件統(tǒng)一管理軟件框架標準。此后,該標準被拓展至更多場景,并在OpenStack孵化出了Cyborg項目。

Cyborg,目前唯一的開源硬件加速管理軟件項目

Cyborg的主要功能包括硬件資源的發(fā)現(xiàn)、上報、掛載\卸載等資源管理。用戶可以通過Cyborg列出計算節(jié)點上已經(jīng)被發(fā)現(xiàn)和上報的加速器、并創(chuàng)建帶加速器的實例。對于一些特殊硬件的特殊功能或配置(如:FPGA的編程),也將在cyborg實現(xiàn)。

Cyborg采用經(jīng)典架構,由cyborg-api、cyborg-conductor、cyborg-agent、 cyborg-db幾個模塊組成。其中Cyborg-agent位于計算節(jié)點,用于監(jiān)控加速器;cyborg-conductor位于控制節(jié)點,管理整個系統(tǒng)和操作數(shù)據(jù)庫。cyborg-api和cyborg-db分別為接口和數(shù)據(jù)庫,均位于控制節(jié)點。

下面通過Cyborg的兩個流程來介紹其主要功能:資源發(fā)現(xiàn)和上報流程、創(chuàng)建帶加速硬件的實例流程。

加速資源發(fā)現(xiàn)和上報流程:

1. 各設備的driver為加速設備構造Cyborg中用于描述設備的數(shù)據(jù)結構,等待cyborg-agent輪詢取走設備數(shù)據(jù);

2. cyborg-agent周期性掃描計算節(jié)點enabled的driver;

3. cyborg-agent獲取到driver上報來的數(shù)據(jù)信息后,通過cyborg-conductor將資源信息寫入placement(更新Resource Provider(RP), Resource Class(RC),traits)和cyborg-db(更新devices, deployables, attach_handles, attributes, controlpath_ids)

創(chuàng)建帶加速硬件的實例流程:

1. User在cyborg創(chuàng)建一個加速資源模板device_profile(類似于nova flavor);

2. User創(chuàng)建flavor,并在extra-spec屬性中設置device_profile的name;

3. User 使用已創(chuàng)建的flavor 發(fā)送boot虛機請求;

4. Nova-api接受到請求以后, 向cyborg發(fā)起請求獲取device_profile信息,并將device_profile信息合入request_spec,用于調度;

5. 調度過程中nova-scheduler向placement請求獲取符合request_spec中要求的硬件加速資源,placement返回滿足要求的主機列表,之后主機列表再通過nova-scheduler其他Filter的過濾,排序后選定某個主機;

6. Nova-compute在選定的主機上部署實例,并向cyborg請求加速資源的掛載操作:

Nova-compute根據(jù)device_profile向cyborg請求創(chuàng)建加速器請求(Accelerator Request, ARQ),并為每個ARQ匹配硬件資源Resource Provider(RP)。 需要說明的是:ARQ包含instance_uuid、 resource_provider_id、host_name、 device_profile_id等字段信息。一個ARQ對應一個device_profile_group, 一個device_profile_group對應request spec中的一個request group。

Nova-compute向cyborg發(fā)送綁定設備(bind_ARQ)的請求。Cyborg根據(jù)ARQ信息綁定instance、host、device,綁定結束后更新ARQ的狀態(tài),并通知nova當前ARQ綁定操作是否成功;

Nova-compute接到ARQ綁定操作結束的通知后,從ARQ獲取設備信息,并將設備BDF信息寫入instance的XML文件。

中興通訊持續(xù)社區(qū)貢獻

社區(qū)T版本的主要工作在于實現(xiàn)S版本重新定義的加速硬件數(shù)據(jù)結構、基本發(fā)現(xiàn)、上報、掛載流程,目前社區(qū)已實現(xiàn)基本的管理功能,與placement交互基本完成,與nova組件的交互尚在推進中,有待成熟。另一方面社區(qū)在提升Cyborg代碼規(guī)范、及產(chǎn)品可用性方面也投入了大量精力:T版本引入集成測試、并全面引入flak8測試提升源代碼的規(guī)范、python3支持。Driver的支持方面,cyborg社區(qū)T版本新增了AICHIP ASCEND Driver。

我司從Queens版本開始投入Cyborg,歷經(jīng)四個版本,見證了Cyborg功能的逐步實現(xiàn)和完善?傮w來說,中興通訊的貢獻主要在三方面: 第一、Cyborg與Nova交互的集成測試以促進Cyborg的商用進程 (包括了加速硬件需求的接口測試,?設備調度和掛載測試,設備上報數(shù)據(jù)庫,Tempest CI及測試);第二、對現(xiàn)有Driver 的維護、支持更多的Driver (eg. ZTE自研高精度時鐘卡Driver);第三、提升源代碼規(guī)范和質量(全面改善flake8測試)、完善接口文檔。

在OpenStack Train Release中,中興通訊在項目的commits和reviews均排名第二。中興通訊在項目擁有兩位Core Reviewer。在未來,中興通訊將持續(xù)投入在Cyborg中,為Cyborg項目的發(fā)展做出貢獻。

給作者點贊
0 VS 0
寫得不太好

免責聲明:本文僅代表作者個人觀點,與C114通信網(wǎng)無關。其原創(chuàng)性以及文中陳述文字和內容未經(jīng)本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。

熱門文章
    最新視頻
    為您推薦

      C114簡介 | 聯(lián)系我們 | 網(wǎng)站地圖 | 手機版

      Copyright©1999-2024 c114 All Rights Reserved | 滬ICP備12002291號

      C114 通信網(wǎng) 版權所有 舉報電話:021-54451141