?

基于容器的物聯網云虛擬化技術

2023-12-18 18:13劉勇趙亦輝
計算機時代 2023年11期
關鍵詞:云計算虛擬化物聯網

劉勇 趙亦輝

關鍵詞:云計算;物聯網;虛擬化;容器

中圖分類號:TP311.5 文獻標識碼:A 文章編號:1006-8228(2023)11-104-04

0 引言

云計算和物聯網(IoT)技術的結合為IT 運營商增加了新的業務發展方向。物聯網的發展正在推動私云、公云和混合云提供商將其系統與嵌入式設備(包括傳感器和執行器)集成,以便與傳統的基礎設施、平臺和軟件即服務(IaaS、PaaS、SaaS)一起提供一種新型的服務,即物聯網服務(IoTaaS)。因此,將云計算解決方案與物聯網相結合的新型服務提供商正在崛起。我們談論IoTCloud 是指一種新型的分布式系統,由一組物聯網設備組成,這些設備通過互聯網與遠程云基礎設施、平臺或軟件互連,能夠提供IoTaaS[1]。

資源虛擬化是云計算的關鍵概念之一。如今,有幾種虛擬化技術可用。最流行的技術之一是虛擬機虛擬化,它需要在主機操作系統上安裝一個虛擬機監視器(VMM)軟件模塊,以提供虛擬機(VM)的完整抽象。最近,管理程序的輕量級替代方案是基于容器的虛擬化,也稱為操作系統(OS)級虛擬化。這種虛擬化劃分物理機器資源,創建多個隔離的用戶空間實例。我們認為,這樣的技術可以徹底改變未來的物聯網云系統,在資源管理方面帶來管理程序虛擬化給傳統云系統帶來的相同優勢。事實上,容器虛擬化可以讓物聯網云運營商實例化、重新部署和優化虛擬物聯網功能,以更靈活的方式控制IoTaaS。

1 相關工作

該研究領域的眾多活動證明了研究界對物聯網基于云的解決方案的興趣。如今,基于容器的虛擬化為云中的虛擬機提供了一種有趣的替代方案[2]。盡管容器(如名稱空間)的基本概念非常成熟,但直到最近,容器才在主流操作系統中被采用和標準化,這導致了使用容器來提供隔離和資源控制的復興。Linux是云計算的首選操作系統,因為它具有零價格、大生態系統、良好的硬件支持、良好的性能和可靠性。

在Linux 中實現容器所需的內核名稱空間功能,自2006 年首次討論以來,最近幾年才變得成熟[3]。有關的研究如Docker[4]是基于Linux 容器(LXC)的輕量級虛擬化,可以將應用程序及其依賴關系完全封裝在虛擬容器中。在文獻[5]中,作者討論了基于Docker 的云系統的設計和實現,特別是針對PaaS 平臺。正如文獻[6]中所述,Docker 已部署在利用先進云服務的生物信息學計算的應用程序中。T.Bui 通過考慮兩個主要領域來研究Docker 的安全級別:①Docker 的內部安全性;②Docker如何與Linux內核的安全功能(如SELinux和AppArmor)交互,以加強主機系統。這些研究表明,即使是使用默認配置,Docker 也為其使用命名空間、cgroups 和copyon-write 文件系統的容器提供了高級別的隔離和資源限制。它還支持幾個內核安全功能,這些功能有助于增強主機的安全性[7]。

2 容器虛擬化

資源虛擬化是云計算的關鍵概念之一,包括但不限于虛擬計算機硬件平臺、操作系統(OS)、存儲設備或計算機網絡資源??紤]到這些場景,虛擬化利用系統頂部的中間軟件層來提供多個虛擬資源的抽象。這樣的虛擬資源是被稱為虛擬機(VM)的軟件組件,它們可以被視為獨立的執行上下文。

如今,有幾種虛擬化技術可用。其中最流行的是基于虛擬機管理程序的虛擬化,它需要一個運行主機操作系統ontop 的虛擬機監視器(VMM)來提供VM 的完整抽象。在這種情況下,每個虛擬機都有自己的操作系統,其執行與其他操作系統完全隔離。這使我們能夠在單個實際主機上執行多個不同的操作系統。Hypervisor 虛擬化(HVV)工具的示例包括Xen、KVM、Virtual Box、Virtual PC 和WM Ware。

最近,管理程序的一種輕量級替代方案是基于容器的虛擬化,也稱為操作系統級虛擬化。這種虛擬化劃分物理機器資源,創建多個隔離的用戶空間實例。

LCV 是一種輕量級的虛擬化技術,允許在Linux操作系統中創建容器,不同的應用程序可以在其中運行。此外,由于有版本管理系統,LCV 允許以靈活的方式解決軟件依賴性問題。LCV 是操作系統級別的虛擬化范例,它在用戶空間啟用同一操作系統的多個實例,同時共享主機操作系統的內核。容器有兩種通用型號:①應用程序容器:單個應用程序在容器中運行。②系統容器:用戶空間的一個實例在一個容器中啟動。這允許用戶空間的多個獨立實例同時運行,每個實例都有自己的Init 進程、進程空間、文件系統和網絡堆棧。LCV 允許提供商實現更靈活的設置、配置、優化和管理傳感和驅動能力。流行的容器引擎解決方案包括Docker、LXC、lmctfy、OpenVZ。接下來,我們將分析不同的感興趣的標準,以評估虛擬化技術在嵌入式設備中的適用性,并將傳統的HVV 方法與LCV 方法進行了比較。

⑴ 啟動時間 該容器比可比較的HVV VM 更輕,因此在大多數情況下,LCV 在初始啟動時間和應用程序啟動時間方面獲勝。

⑵ 動態運行時控制 由于概念的性質,LCV 與主機系統的集成更加緊密,例如,允許直接從主機啟動或終止容器中的應用程序,而在HVV 場景中,這必須通過信號量或虛擬網絡/串行連接來完成。

⑶ 速度 與從LCV 容器通過主機系統上運行的同一驅動程序訪問HVV VM 中的設備相比,直接訪問HVV 虛擬機中的設備可能意味著顯著的加速。只有針對特定場景的測試才能顯示通信開銷(LCV)與虛擬化開銷(HVV)對延遲和吞吐量的影響程度。

⑷ 隔離 一方面,LCV 根本不能在系統級提供有效的隔離;另一方面,HVV 需要引導自己的內核和用戶空間,因此允許在系統和用戶級別上進行有效隔離。系統管理程序中的故障仍然可能使整個系統崩潰,但虛擬機中運行的代碼將無法運行,例如,允許主機分析崩潰并重新啟動虛擬機。

⑸ 內存消耗 這一點很明顯。LCV 允許共享操作系統內核和開發人員選擇共享的用戶空間的任何部分,而HVV 要求單獨存儲VM 映像,不允許共享。因此,LCV 在這方面絕對勝出。

⑹ 虛擬環境和物理環境之間的通信信道 這兩個概念都允許通過虛擬串行或網絡接口或可用于放置信號量或消息的共享文件系統進行通信。

⑺ 動態資源分配或分離 動態資源分配功能在負載管理和故障切換場景中非常重要。例如,它允許將額外的CPU 分配給負載嚴重的虛擬機,或從空閑的虛擬機或容器中刪除CPU。Bothsolutions 同樣適用于執行故障轉移場景。

⑻ 直接硬件訪問 雖然HVV 允許通過virtio 或vfio等系統從虛擬機直接訪問硬件外圍設備,但這不能從LCV 容器中完成,因為LCV 容器只能訪問用戶空間,因此需要在(主機)內核中有相應的驅動程序。

物聯網設備上的容器不僅僅是一個理論概念。事實上,越來越多的制造商正在研究容器工程,以簡化物聯網設備中復雜應用程序的包裝、分發、安裝和執行。

3 物聯網云中的虛擬資源管理

我們假設物聯網云提供商安排IoTaaSex 部署HVV 和LCV 概念。物聯網設備與遠程云系統交互,該系統負責收集來自于異構物聯網設備的統一傳感數據。通常,物聯網設備運行使用特定編程語言或開發框架(例如,C、C++、Phyton、Nodejs 等)開發的定制軟件。在物聯網設備中可以執行最小的處理和存儲任務,但大規模的數據存儲和處理任務(數據挖掘和大數據分析)是在云系統中執行的,該系統利用虛擬化技術來持久地擴大/縮小存儲和處理能力。物聯網云的一個典型的例子,一方面管理存儲和處理功能,另一方面管理傳感和執行功能。存儲和處理能力通過HVV 進行管理,而傳感和驅動能力則通過直接安裝在物聯網設備操作系統上的定制軟件進行管理。

上述方法是目前采用最多的方法,但考慮到通常需要根據環境的變化特征和用戶的要求來定制傳感和驅動服務,因此不那么靈活。最近,一些舉措已經開始考慮通過容器部署在物聯網設備中的應用程序。因此,可以同時利用HVV 和LCV 的優點。在物聯網云在物聯網設備中情況下,物聯網云系統負責IoTaaSG 的實例化、優化和管理,以確??煽啃?、可擴展性、服務質量(QoS)和安全性。由于LCV 應用于物聯網設備,可以以更靈活的方式在多個分布式容器中部署分布式基礎設施、平臺和應用程序(以IoTaaS 的形式)。物聯網設備與遠程云系統交互,遠程云系統負責收集和統一傳感數據并觸發致動器。所有的虛擬化技術都能夠隱藏底層物理資產,在物理基礎設施和服務之間引入邏輯層。為了利用這兩種虛擬化技術,我們假設LCV 和HVV 都在Clouddatacenter 中使用,但只有LCV 在物聯網設備中使用。PrivateIoT 云擁有自己的虛擬化基礎架構,其中托管了幾個虛擬機和容器,為其客戶端提供服務。在靈活的場景中,每個物聯網云運營商都可以動態安排、優化和重新部署自己的虛擬化資源,包括存儲、處理、傳感和執行功能。因此,物聯網云運營商將能夠以靈活的方式滿足其客戶的任何服務分配請求。

以下我們提供了一些示例:

⑴ 分布式IoTaaS 的部署 可以安排分布式IoTaaS,將部署在屬于物聯網云運營商控制的不同傳感器的幾個物聯網設備上的服務相結合;

⑵ IoTaaS 搬遷和優化 實施負載平衡策略,管理不同傳感器/執行器網絡的物聯網云可以將部署在容器中的服務和應用程序遷移到不同的物聯網設備;

⑶ IoTaaS整合 IoTaaS 是結合安裝在不同物聯網設備中的容器構建的,延伸到不同的物聯網云傳感器/執行器網絡,可以通過軟件整合策略應用位置感知服務。事實上,在某些情況下,根據特定的應用程序邏輯移動服務是有用的。

通過考慮可以安裝在物聯網設備中的通用Linux系統來支持容器虛擬化所需的軟件。Linux 主機操作系統通常部署在硬件系統之上,其內核需要與合適的虛擬化層協同工作。這樣,操作系統級虛擬化就不需要額外的管理程序層,因為虛擬化功能是主機操作系統的一部分。這種技術使我們能夠在主機操作系統本身的基礎上虛擬化服務器。因此,消除了通過虛擬機監控程序中介產生的開銷,從而實現了更高的本機性能。此外,主機內核提供進程隔離,并執行資源管理。這意味著即使所有容器都在同一內核下運行,每個容器都是一個虛擬環境,有自己的文件系統、進程、內存、設備等。Linux 內核頂部有一些主機應用程序:我們將注意力集中在容器引擎組件上,該組件將任何應用程序的部署自動化為一個輕量級、可移植、自給自足的容器,幾乎可以在任何地方運行。

我們將Docker 平臺視為容器引擎,它是一個開放平臺,供開發人員和系統管理員構建、交付和運行分布式應用程序。Docker Engineer 提供了一種便攜式、輕量級的運行時和打包工具。此外,由于Docker Hub可以被視為共享應用程序和自動化工作流的云服務,Docker 使應用程序能夠從組件中快速組裝,并消除了開發和生產環境之間的摩擦。因此,物聯網云運營商可以更快地在不同的物聯網設備上提供和運行相同的服務或應用程序。Docker 也是部署引擎的開源實現,它為dotCloud 提供了動力,dotCloud 是一種流行的平臺即服務(PaaS),它直接受益于幾年來獲得的大規模運營經驗和對數十萬應用程序和數據庫的支持。

4 結束語

基于容器的虛擬化是智能對象上可以采用的基于管理程序的方法的輕量級替代方案,用于增強物聯網云服務供應??紤]到不同的物聯網應用場景,基于容器的虛化允許物聯網云提供商在智能對象上以靈活的方式部署和定制軟件。在本文中,我們從IoTCloud場景的角度研究了智能對象上基于容器的虛擬化,特別關注運行Docker 容器引擎的Raspberry 設備。從我們的實驗來看,容器虛擬化引入的開銷在實際場景中是可以接受的。在未來的工作中,我們計劃研究在物聯網設備上運行的多個容器上部署的分布式服務的并行處理。

猜你喜歡
云計算虛擬化物聯網
基于OpenStack虛擬化網絡管理平臺的設計與實現
對基于Docker的虛擬化技術的幾點探討
虛擬化技術在計算機技術創造中的應用
基于高職院校物聯網技術應用人才培養的思考分析
基于云計算的移動學習平臺的設計
實驗云:理論教學與實驗教學深度融合的助推器
云計算中的存儲虛擬化技術應用
中國或成“物聯網”領軍者
存儲虛擬化還有優勢嗎?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合