推動邊緣計算的七項核心技術
計算模型的創新帶來的是技術的升級換代,而邊緣計算的迅速發展也得益于技術的進步。本節總結了推動邊緣計算發展的7項核心技術,它們包括網絡、隔離技術、體系結構、邊緣操作系統、算法執行框架、數據處理平臺以及安全和隱私。
1.網絡
邊緣計算將計算推至靠近數據源的位置,甚至于將整個計算部署于從數據源到云計算中心的傳輸路徑上的節點,這樣的計算部署對現有的網絡結構提出了 3個新的要求:
1)服務發現。在邊緣計算中,由于計算服務請求者的動態性,計算服務請求者如何知道周邊的服務,將是邊緣計算在網絡層面中的一個核心問題.傳統的基于DNS的服務發現機制,主要應對服務靜態或者服務地址變化較慢的場景下.當服務變化時,DNS的服務器通常需要一定的時間以完成域名服務的同步,在此期間會造成一定的網絡抖動,因此并不適合大范圍、動態性的邊緣計算場景。
2)快速配置。在邊緣計算中,由于用戶和計算設備的動態性的增加,如智能網聯車,以及計算設備由于用戶開關造成的動態注冊和撤銷,服務通常也需要跟著進行遷移,而由此將會導致大量的突發網絡流量。與云計算中心不同,廣域網的網絡情況更為復雜,帶寬可能存在一定的限制.因此,如何從設備層支持服務的快速配置,是邊緣計算中的一 個核心問題。
3)負載均衡。邊緣計算中,邊緣設備產生大量的數據,同時邊緣服務器提供了大量的服務.因此,根據邊緣服務器以及網絡狀況,如何動態地對這些數據進行調度至合適的計算服務提供者,將是邊緣計算中的核心問題。
針對以上3個問題,一種最簡單的方法是,在所有的中間節點上均部署所有的計算服務,然而這將導致大量的冗余,同時也對邊緣計算設備提出了較高的要求。因此,我們以“建立一條從邊緣到云的計算路徑”為例來說,首當其沖面對的就是如何尋找服務,以完成計算路徑的建立。命名數據網絡(named data networking,NDN)是一種將數據和服務進行命名和尋址,以P2P和中心化方式相結合進行自組織的一種數據網絡。而計算鏈路的建立,在一定程度上也是數據的關聯建立,即數據應該從源到云的傳輸關系.因此,將NDN引入邊緣計算中,通過其建立計算服務的命名并關聯數據的流動,從而可以很好地解決計算鏈路中服務發現的問題。
而隨著邊緣計算的興起,尤其是用戶移動的情況下,如車載網絡,計算服務的遷移相較于基于云計算的模式更為頻繁,與之同時也會引起大量的數據遷移,從而對網絡層面提供了動態性的需求。軟件定義網絡(software definednetworking,SDN), 于2006年誕生于美國GENI項目資助的斯坦福大學Clean Slate課題,是一種控制面和數據面分離的可編程網絡,以及簡單網絡管理.由于控制面和數據面分離這一特性,網絡管理者可以較為快速地進行路由器、交換器的配置,減少網絡抖動性,以支持快速的流量遷移,因此可以很好地支持計算服務和數據的遷移。同時,結合NDN和SDN,可以較好地對網絡及其上的服務進行組織,并進行管理,從而可以初步實現計算鏈路的建立和管理問題。
2.隔離技術
隔離技術是支撐邊緣計算穩健發展的研究技術,邊緣設備需要通過有效的隔離技術來保證服務的可靠性和服務質量.隔離技術需要考慮2方面:
1)計算資源的隔離,即應用程序間不能相互干擾;
2)數據的隔離,即不同應用程序應具有不同的訪問權限。
在云計算場景下,由于某一應用程序的崩潰可能帶來整個系統的不穩定,造成嚴重的后果,而在邊緣計算下,這一情況變得更加復雜.例如在自動駕駛操作系統中,既需要支持車載娛樂滿足用戶需求, 又需要同時運行自動駕駛任務滿足汽車本身駕駛需求,此時,如果車載娛樂的任務干擾了自動駕駛任務,或者影響了整個操作系統的性能,將會引起嚴重后果,對生命財產安全造成直接損失.隔離技術同時需要考慮第三方程序對用戶隱私數據的訪問權限問題,例如,車載娛樂程序不應該被允許訪問汽車控制總線數據等.目前在云計算場景下主要使用VM虛擬機和Docker容器技術等方式保證資源隔離。邊緣計算可汲取云計算發展的經驗,研究適合邊緣計算場景下的隔離技術。
在云平臺上普遍應用的Docker技術可以實現應用在基于0S級虛擬化的隔離環境中運行,Docker的存儲驅動程序采用容器內分層鏡像的結構,使得應用程序可以作為一個容器快速打包和發布,從而保證了應用程序間的隔離性.Li等人建立 了一個基于Docker遷移的有效服務切換系統,利用Docker的分層文件系統支持,提出了一種適合邊緣計算的高效容器遷移策略,以減少包括文件系統、二進制內存映象、檢查點在內的數據傳輸的開 銷.Ha等人提出了一種VM切換技術,實現虛擬機VM的計算任務遷移,支持快速和透明的資源放置,保證將VM虛擬機封裝在安全性和可管理行要求較高的應用中.這種多功能原語還提供了動態遷移的功能,對邊緣端進行了優化.這種基于VM的隔離技術提高了應用程序的抗干擾性,增加了邊緣計算系統的可用性。
3.體系結構
無論是如高性能計算一類傳統的計算場景,還是如邊緣計算一類的新興計算場景,未來的體系結構應該是通用處理器和異構計算硬件并存的模式。異構硬件犧牲了部分通用計算能力,使用專用加速單元減小了某一類或多類負載的執行時間,并且顯著提高了性能功耗比。邊緣計算平臺通常針對某一類特定的計算場景設計,處理的負載類型較為固定,故目前有很多前沿工作針對特定的計算場景設計邊緣計算平臺的體系結構.
ShiDianNao首次提出了將人工智能處理器放置在靠近圖像傳感器的位置,處理器直接從傳感器讀取數據,避免圖像數據在DRAM中的存取帶來的能耗開銷;同時通過共享卷積神經網絡(convolutional neural networks, CNNs) 權值的方法 ,將模型完整放置在SRAM中,避免權值數據在DRAM 中的存取帶來的能耗開銷;由于計算能效地大幅度提升(60倍),使其可以被應用于移動端設備.EIE:是一個用于稀疏神經網絡的高效推理引擎,其通過稀疏矩陣的并行化以及權值共享的方法加速稀疏神 經網絡在移動設備的執行能效.Phi-Stack則提出了針對邊緣計算的一整套技術桟,其中針對物聯網設備設計的PhiPU,使用異構多核的結構并行處理 深度學習任務和普通的計算任務(實時操作系統). In-Situ AI是一個用于物聯網場景中深度學習應用的自動增量計算框架和架構,其通過數據診斷,選擇最小數據移動的計算模式,將深度學習任務部署 到物聯網計算節點.除了專用計算硬件的設計,還有 一類工作探索FPGA在邊緣計算場景中的應用. ESE[6]通過FPGA提高了稀疏長短時記憶網絡 (long short term memory network,LSTM)在移動設備上的執行能效,用于加速語音識別應用.其通過負載平衡感知的方法對LSTM進行剪枝壓縮,并保證硬件的高利用率,同時在多個硬件計算單元中調度 LSTM 數據流;其使用 Xilinx XCKU060 FPGA 進行硬件設計實現,與CPU和GPU相比,其分別實現了 40倍和11. 5倍的能效提升.Biookaghazadeh 等人通過對比FPGA和GPU在運行特定負載時吞 吐量敏感性、結構適應性和計算能效等指標,表明 FPGA更加適合邊緣計算場景。
針對邊緣計算的計算系統結構設計仍然是一個新興的領域,仍然具有很多挑戰亟待解決,例如如何高效地管理邊緣計算異構硬件、如何對這類的系統結構進行公平及全面的評測等.在第三屆邊緣計算會議(S E C 2 018 )上首次設立了針對邊緣計算體系結構的Workshop:ArchEdge,鼓勵學術界和工業界對此領域進行探討和交流。
4.邊緣操作系統
邊緣計算操作系統向下需要管理異構的計算資源,向上需要處理大量的異構數據以及多用的應用負載,其需要負責將復雜的計算任務在邊緣計算節點上部署 、調度 及遷移從而保證計算任務的可靠性以及資源的最大化利用。與傳統的物聯網設備上的實時操作系統Contikt和FreeRTOS不同,邊緣計算操作系統更傾向于對數據、計算任務和計算資源的管理框架。
機器人操作系統(robot operating system, ROS) 最開始被設計用于異構機器人機群的消息通信管理,現逐漸發展成一套開源的機器人開發及管理工具,提供硬件抽象和驅動、消息通信標準、軟件包管理等 一系列工具,被廣泛應用于工業機器人、自動駕駛車輛即無人機等邊緣計算場景.為解決ROS中的性能 問題,社區在2015年推出ROS2. 0,其核心為引入數據分發服務(data distribution service,DDS), 解決ROS對主節點(master node)性能依賴問題,同時DDS提供共享內存機制提高節點間的通信效率.EdgeOSH則是針對智能家居設計的邊緣操作系統,其部署于家庭的邊緣網關中,通過3層功能抽象連接上層應用和下層智能家居硬件,其提出面向多樣的邊緣計算任務,服務管理層應具有差異性 (differentiation)、可擴展性(extensibility)、隔離性 (isolation)和可靠性(reliability)的需求.Phi-Stack 中提出了面向智能家居設備的邊緣操作系統 PhiOS,其引人輕量級的REST引擎和LUA解釋器,幫助用戶在家庭邊緣設備上部署計算任務. OPenVDAP是針對汽車場景設計的數據分析平臺,其提出了面向網聯車場景的邊緣操作系統 EdgeOSv.該操作系統中提供了任務彈性管理、數據共享以及安全和隱私保護等功能.
根據目前的研究現狀,ROS以及基于ROS實現的操作系統有可能會成為邊緣計算場景的典型操作系統,但其仍然需要經過在各種真實計算場景下部署的評測和檢驗。
5.算法執行框架
隨著人工智能的快速發展,邊緣設備需要執行越來越多的智能算法任務,例如家庭語音助手需要 進行自然語言理解、智能駕駛汽車需要對街道目標檢測和識別、手持翻譯設備需要翻譯實時語音信息等.在這些任務中,機器學習尤其是深度學習算法占有很大的比重,使硬件設備更好地執行以深度學習算法為代表的智能任務是研究的焦點,也是實現邊緣智能的必要條件.而設計面向邊緣計算場景下的高效的算法執行框架是一個重要的方法.目前有許 多針對機器學習算法特性而設計的執行框架,例如谷歌于2016年發布的TensorFloE、依賴開源社區力量發展的Caffe等,但是這些框架更多地運行在云數據中心,它們不能直接應用于邊緣設備.如表2所示,云數據中心和邊緣設備對算法執行框架的需求有較大的區別。在云數據中心,算法執行框架更多地執行模型訓練的任務,它們的輸人是大規模的批量數據集,關注的是訓練時的迭代速度、收斂率和框架的可擴展性等.而邊緣設備更多地執行預測任務,輸人的是實時的小規模數據,由于邊緣設備計算資源和存儲資源的相對受限性,它們更關注算法執行框架預測時的速度、內存占用量和能效。
為了更好地支持邊緣設備執行智能任務,一些專門針對邊緣設備的算法執行框架應運而生.2017年,谷歌發布了用于移動設備和嵌人式設備的輕量級解決方案TensorFlow Lite,它通過優化移動應用程序的內核、預先激活和量化內核等方法來減少執行預測任務時的延遲和內存占有量.Caffe2 是Caffe的更高級版本,它是一個輕量級的執行框架,增加了對移動端的支持.此外,PyTorch和 MXNet等主流的機器學習算法執行框架也都開始提供在邊緣設備上的部署方式。
Zhang 等人對 TensorFlow,Caffe2 ,MXNet, PyTorch和TensorFlow Lite等在不同的邊緣設備 (MacBook Pro,Intel FogNode,NVIDIA Jetson TX2,Raspberry Pi 3 Model B+ ,Huawfi Nexus 6P) 上的性能從延遲、內存占用量和能效等方面進行了對比和分析,最后發現沒有一款框架能夠在所有維度都取得最好的表現,因此執行框架的性能提升空間比較大.開展針對輕量級的、高效的、可擴展性強的邊緣設備算法執行框架的研究十分重要,也是實現邊緣智能的重要步驟。
6.數據處理平臺
邊緣計算場景下,邊緣設備時刻產生海量數據,數據的來源和類型具有多樣化的特征,這些數據包括環境傳感器采集的時間序列數據、攝像頭采集的圖片視頻數據、車載LiDAR的點云數據等,數據大多具有時空屬性。構建一個針對邊緣數據進行管理、分析和共享的平臺十分重要。
以智能網聯車場景為例,車輛逐漸演變成一個移動的計算平臺,越來越多的車載應用也被開發出來,車輛的各類數據也比較多。由.Zhang等人提出的OPenVDAP是一個開放的汽車數據分析平臺,如下圖3所示,Open VDAP分成4部分,分別是異構計算平臺(VCU )、操作系統(EdgeOSv)、駕駛數據收集器(DDI)和應用程序庫(libvdap),汽車可安裝部署該平臺,從而完成車載應用的計算,并且實現車與云、車與車、車與路邊計算單元的通信,從而保證了車載應用服務質量和用戶體驗.因此,在邊緣計算不同的應用場景下,如何有效地管理數據、提供數據分析服務,保證一定的用戶體驗是一個重要的研究問題。
7.安全和隱私
雖然邊緣計算將計算推至靠近用戶的地方,避免了數據上傳到云端,降低了隱私數據泄露的可能性。但是,相較于云計算中心,邊緣計算設備通常處于靠近用戶側,或者傳輸路徑上,具有更高的潛在可能被攻擊者入侵,因此,邊緣計算節點自身的安全性仍然是一個不可忽略的問題.邊緣計算節點的分布式和異構型也決定其難以進行統一的管理,從而導致一系列新的安全問題和隱私泄露等問題.作為信息系統的一種計算模式,邊緣計算也存在信息系統普遍存在的共性安全問題,包括:應用安全、網絡安全、信息安全和系統安全等。
在邊緣計算的環境下,通常仍然可以采用傳統安全方案來進行防護,如通過基于密碼學的方案來進行信息安全的保護、通過訪問控制策略來對越權訪問等進行防護.但是需要注意的是,通常需要對傳統方案進行一定的修改,以適應邊緣計算的環境。同時,近些年也有些新興的安全技術(如硬件協助的可信執行環境)可以使用到邊緣計算中,以增強邊緣計算的安全性。此外,使用機器學習來增強系統的安全防護也是一個較好的方案。
可信執行環境(trusted execution environment, TEE)是指在設備上一個獨立于不可信操作系統而存在的可信的、隔離的、獨立的執行環境,為不可信環境中的隱私數據和敏感計算,提供了安全而機密的空間,而TEE的安全性通常通過硬件相關的機制來保障。常見的TEE包括Intel軟件防護擴展、Intel管理引擎、x86系統管理模式、 AMD內存加密技術、AMD平臺安全處理器和ARM TrustZone技術。通過將應用運行于可信執行環境中,并且將使用到的外部存儲進行加解密,邊緣計算節點的應用,可以在邊緣計算節點被攻破時,仍然可以保證應用及數據的安全性。
評論
查看更多