當(dāng)我們想到為全球大型數(shù)據(jù)中心提供動力的云軟件時,很難想象同樣的平臺在邊緣是如何工作的,OpenStack也不例外。OpenInfra Edge Computing Group最近與Chameleon項目會面,了解他們?nèi)绾问褂肙penStack的自適應(yīng)功能為計算機(jī)科學(xué)研究和教育領(lǐng)域的用例提供動力,同時將其基礎(chǔ)設(shè)施從數(shù)據(jù)中心和大學(xué)校園中移出,以管理未來的自動駕駛車輛或小型設(shè)備。
什么是Chameleon計劃?
它是一個NSF資助的試驗臺,支持研究和教育活動,如操作系統(tǒng)、虛擬化解決方案或新網(wǎng)絡(luò)協(xié)議的開發(fā)和創(chuàng)新。試驗臺的硬件位于2個超級計算中心,由OpenStack提供動力,并帶有一些擴(kuò)展,以支持網(wǎng)絡(luò)試驗和可重復(fù)性(這在科學(xué)環(huán)境中至關(guān)重要)。軟件基礎(chǔ)設(shè)施包括OpenStack、擴(kuò)展和修改,以提供支持軟件定義網(wǎng)絡(luò)(SDN)等試驗的功能,以及可供合作伙伴在大學(xué)和其他站點(diǎn)本地安裝的操作工具,稱為CHI-in-a-Box,其中CHI代表變色龍基礎(chǔ)設(shè)施。該項目已經(jīng)運(yùn)行了6年多,迄今已服務(wù)6000多個用戶。
隨著對邊緣計算興趣的增加,Chameleon用戶越來越需要諸如Raspberry Pis或Nvidia nano之類的資源。雖然可以在數(shù)據(jù)中心使用這些設(shè)備進(jìn)行一些有用的試驗,但大多數(shù)用戶對在不同的部署環(huán)境中部署這些設(shè)備感興趣:與自動駕駛汽車、無人機(jī)或浮動車輛相關(guān),或連接到部署在現(xiàn)場的軟件定義無線電(SDR)、攝像頭和智能傳感器。這就是Chameleon團(tuán)隊創(chuàng)建CHI Edge的原因——測試平臺可以擴(kuò)展到部署和運(yùn)行在一系列位置的邊緣和物聯(lián)網(wǎng)設(shè)備:從數(shù)據(jù)中心到用戶所在的任何地方。云測試臺的原始需求集已經(jīng)強(qiáng)調(diào)了深層次的可配置性和適應(yīng)性,通過將基礎(chǔ)設(shè)施從數(shù)據(jù)中心剝離到邊緣,能夠重新配置環(huán)境的需求增加了幾個數(shù)量級。
OpenStack如何滿足這些需求
在設(shè)計邊緣產(chǎn)品時,Chameleon團(tuán)隊希望盡可能依賴OpenStack接口,因為這允許他們保留構(gòu)建在Chameleon前端上的所有功能,例如通過聯(lián)合身份或與Jupyter集成的身份驗證——這些功能受到許多用戶的重視。同時,為邊緣設(shè)備提供裸金屬重新配置被證明具有挑戰(zhàn)性:其中許多設(shè)備不是服務(wù)器級實體,因此不支持所需的功能。為了使重新配置方法保持相對輕量級,并適應(yīng)邊緣資源能力的降低,團(tuán)隊選擇使用容器作為解決方案的一部分——該解決方案可以使用OpenStack Zun項目進(jìn)行管理。該項目的主要挑戰(zhàn)是使Zun適應(yīng)在使用數(shù)據(jù)中心以外的資源時出現(xiàn)的網(wǎng)絡(luò)和安全問題的變化。
為了獲得所有所需的功能,需要填補(bǔ)一些空白:
Doni
Chameleon邊緣平臺的目標(biāo)之一是使研究人員能夠輕松地攜帶自己的設(shè)備,以便使用基于OpenStack的平臺進(jìn)行管理。該團(tuán)隊實施了一項新的Doni服務(wù),通過提供一個用于注冊的單一接入點(diǎn)(封裝,例如請求訪問憑據(jù)、配置Zun、在Blazar中注冊設(shè)備),可以以編程方式注冊和管理設(shè)備的生命周期。這種封裝的一個重要部分是,它提供了一個抽象層,用于向注冊其設(shè)備的用戶隱藏特權(quán)API。
Tunelo+Neutron+Wireguard
Chameleon使用Wireguard創(chuàng)建并維護(hù)保護(hù)設(shè)備到云通信的隧道。一個隧道承載所有控制平面流量(例如MySQL、RabbitMQ和內(nèi)部OpenStack API),而另一個隧道承載從設(shè)備上啟動的容器中生成的所有租戶流量。第二個隧道包裹了一個VxLAN覆蓋網(wǎng)絡(luò),該網(wǎng)絡(luò)通過Neutron和Kuryr提供給容器。
Neutron也在更高層上使用,通過新的ML2插件將Wireguard隧道本身的狀態(tài)保持為Neutron“端口”。這聽起來可能有點(diǎn)奇怪,因為Wireguard在第3層運(yùn)行,但實際上它的工作原理是要求Neutron中的Wireguard端口與子網(wǎng)相關(guān)聯(lián);Neutron的IPAM提供了一種很好的方法來確保兩個這樣的端口永遠(yuǎn)不會使用相同的IP地址。然后,ML2插件創(chuàng)建Wireguard接口并存儲其公鑰以供以后查詢。設(shè)備到云網(wǎng)絡(luò)類似于網(wǎng)狀網(wǎng)絡(luò),但目前遵循的是一種中心輻射模型,設(shè)備在相互尋址時使用hub作為中介,盡管當(dāng)兩個設(shè)備位于相對于云的同一本地網(wǎng)絡(luò)上時,這可以通過靜態(tài)路由解決(基于每個設(shè)備)。
為了簡化在設(shè)備上的部署,ML2插件和代理不在邊緣運(yùn)行;Chameleon提供了一個Edge SDK,設(shè)備所有者可以調(diào)用該SDK來創(chuàng)建Wireguard接口,然后通過提供公鑰從Neuton請求Wireguard端口。然后,Neutron可以確保拓?fù)渲械膆ub端口使用新的對等點(diǎn)列表進(jìn)行更新。
Wireguard端口抽象需要調(diào)用特權(quán)Neutron API操作;為了控制這種訪問,Chameleon團(tuán)隊還創(chuàng)建了一個名為Tunelo的瘦服務(wù),它的主要職責(zé)是將這些特權(quán)調(diào)用打包到Neutron。
Blazar更新
在項目實施的幾年中,Chameleon團(tuán)隊也為OpenStack Blazar的開發(fā)做出了重大貢獻(xiàn),OpenStack Blazar實現(xiàn)了提前預(yù)訂。對于像Chameleon這樣的系統(tǒng),這是一個關(guān)鍵組件,可以確保用戶在需要時提供資源。這在資源匱乏的情況下尤其重要,例如,當(dāng)用戶希望提供由許多節(jié)點(diǎn)組成的集群或需求量很大的任何GPU資源時,或者當(dāng)用戶希望確保資源在論文截止日期之前可用。
該項目的改進(jìn)包括一種稱為“設(shè)備”的新資源類型,它允許保留一個Zun計算節(jié)點(diǎn),并使用該節(jié)點(diǎn)在由OpenStack編排的節(jié)點(diǎn)上運(yùn)行容器。Blazar還能夠?qū)⒖杀A糍Y源的列表限制在指定的項目列表中,從而將平臺轉(zhuǎn)變?yōu)橐环N私有設(shè)置中用戶的管理界面,而不是注冊并與云中的所有人共享他們的所有設(shè)備。
Cyborg-Zun集成
團(tuán)隊必須解決的另一個問題是組織對各種“外圍設(shè)備”的訪問,即物聯(lián)網(wǎng)(IoT)設(shè)備,如相機(jī)、軟件定義的無線電或執(zhí)行器,這些設(shè)備可與邊緣設(shè)備一起使用。為了支持它,團(tuán)隊利用了OpenStack Cyborg項目。Cyborg允許訪問硬件加速器,并通過與Nova的集成幫助將其插入虛擬機(jī)。由于這些加速器設(shè)備和作為外圍設(shè)備的攝像頭接口等特定接口也應(yīng)可用于連接到容器,Chameleon團(tuán)隊向Cyborg添加了一種稱為“外圍設(shè)備”的新設(shè)備類型,以及一種稱為“OCI(開放容器倡議)”的新連接類型“能夠?qū)yborg與Zun集成,并允許容器利用作為邊緣設(shè)備連接的專用硬件。
Edge SDK
這是設(shè)備所有者安裝在設(shè)備上的系統(tǒng),用于將設(shè)備插入基礎(chǔ)設(shè)施,并與中央云共享有關(guān)邊緣設(shè)備的信息。
下一步
該項目仍在開發(fā)中,仍有挑戰(zhàn)需要解決。解決更多的安全場景以支持更多的用例是Chameleon優(yōu)先考慮的領(lǐng)域之一。在這種情況下,中央設(shè)備所有權(quán)模式被打破,因為用戶可以攜帶自己的設(shè)備。有了這一概念,還需要提供對中央云的高級別訪問,以便能夠高效地連接設(shè)備,以執(zhí)行所有期望的任務(wù)——但以減少設(shè)備有權(quán)采取的行動的方式。
Cyborg-Zun集成尚未在上游實施,團(tuán)隊正在考慮與該項目合作。
CHI Edge仍在大力開發(fā)中,在網(wǎng)絡(luò)等多個領(lǐng)域都有考慮,以使設(shè)置更加不可知,從而能夠利用創(chuàng)新的解決方案,如他們目前作為外圍設(shè)備連接的軟件定義無線電。在網(wǎng)絡(luò)領(lǐng)域也有一些正在進(jìn)行的伙伴關(guān)系將利用測試臺,這需要在工具、連接性和安全性方面進(jìn)行改進(jìn)。