亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Docker虛擬化技術(shù)在嵌入式平臺的應(yīng)用實踐研究

        2019-12-25 06:31:00葉連杰
        制造業(yè)自動化 2019年12期
        關(guān)鍵詞:宿主機鏡像虛擬化

        葉連杰

        (西安西電電氣研究院有限責(zé)任公司,西安 710077)

        0 引言

        虛擬化是對計算機各種硬件實體資源的綜合管理技術(shù),將計算機的計算資源、網(wǎng)絡(luò)、存儲等資源進行抽象、轉(zhuǎn)換后進行呈現(xiàn)。利用虛擬化技術(shù)可以打破傳統(tǒng)的硬件不可分割成塊的障礙,根據(jù)使用場景隨意組合,可以更加高效、合理的利用硬件資源。虛擬化后的計算資源不受硬件地域或物理組態(tài)方式的限制,能夠更加靈活的配置組網(wǎng)。虛擬化技術(shù)的引入,避免了大量服務(wù)器硬件資源的堆砌,簡化組網(wǎng)復(fù)雜度和管理難度,降低采購和運維成本。

        1 虛擬化技術(shù)

        虛擬化技術(shù)可以分為半虛擬化、完全虛擬化和準(zhǔn)虛擬化。隨著虛擬化的發(fā)展,逐步形成了幾類主流的技術(shù)或產(chǎn)品:

        Xen-由劍橋大學(xué)開發(fā)的,一款開源的虛擬機監(jiān)視器,它采用ICA協(xié)議,屬于半虛擬化技術(shù),所以其性能損失非常?。?/p>

        KVM-KVM是一個全虛擬化的解決方案,但需要CPU支持虛擬化功能;

        LXC-即:Linux Container,Linux容器,是一種輕量級的虛擬化的手段。它可以提供輕量級的虛擬化,以隔離進程和資源,而且不需要提供指令解釋機制以及全虛擬化的其他復(fù)雜性;

        Hyper-V-是微軟件推出的一種虛擬化技術(shù),可以采用半虛擬化或全虛擬的方式創(chuàng)建虛擬機,但其本身只能運行在Windows系統(tǒng)下。

        Oracle VM-Oracle推出的服務(wù)器虛擬化軟件,基于開源的Xen技術(shù),包括Oracle VM Server和Oracle VM Manager兩部分。

        VMware Workstation-是一款桌面虛擬機軟件,可以在一臺實體機器上模擬完整的網(wǎng)絡(luò)環(huán)境,并可運行多個Windows、DOS、Linux或Mac系統(tǒng)。VMware Workstation是一款完全虛擬化產(chǎn)品,可借助硬件輔助在不修改用戶操作系統(tǒng)的情況下完整虛擬化操作系統(tǒng)。同時,針對更高級的資源管理和控制功能,還有VMware ESX Server可供選擇。

        2 嵌入式虛擬化

        虛擬化技術(shù)日趨成熟,已經(jīng)征服了桌面系統(tǒng),隨著芯片處理能力的提高,虛擬化技術(shù)逐步向嵌入式領(lǐng)域拓展。在嵌入式平臺上進行虛擬化,同樣可以獲得靈活的系統(tǒng)管理和應(yīng)用布局。

        2.1 研究現(xiàn)狀

        Xen是可以移植到嵌入式平臺的虛擬化典型產(chǎn)品,而且Xen具備一個優(yōu)異的特點是可以直接在底層硬件上運行。它可以將主機操作系統(tǒng)按照區(qū)域進行劃分,利用特殊的管理程序進行控制,而這個管理程序中最常見的便是Linux。若想使用Xen管理程序,目前比較理想的設(shè)計平臺是基于ARMv8處理器的賽靈思ZynqUltraScale+MPSoC,其對Xen的支持較好。

        VirtualLogix公司的VirtualLogix VLX是比較典型的嵌入式虛擬化技術(shù),它將底層硬件與應(yīng)用軟件之間進行了隔離,形成了抽象的虛擬化層,并對此層進行了分區(qū),之后分配給各嵌入式系統(tǒng),由此各系統(tǒng)獨立運行。

        Docker是虛擬化的一種,它將底層系統(tǒng)、依賴環(huán)境、應(yīng)用程序等進行統(tǒng)一打包,形成一個整體的鏡像文件,成為一個獨立的容器,部署在其他的平臺或宿主機上。與其他虛擬化技術(shù)不同的是,Docker是直接運行在宿主機的操作系統(tǒng)之上的容器,類似獨立的沙箱,容器之間完全隔離,每個容器可以獨立管理、配置。

        2.2 Docker

        Docker是利用LXC實現(xiàn)了VM類似的功能,得到的效果便是以最小的硬件開銷達到更高的計算能力,因此Docker的虛擬化技術(shù)屬于操作系統(tǒng)級虛擬化方法。

        2.2.1 Docker的架構(gòu)

        Docker使用服務(wù)器-客戶端(C/S)架構(gòu)模式。Docker服務(wù)器運行后,會在宿主機上形成一個守護進程,Docker服務(wù)器或守護進程會接受來自客戶端的創(chuàng)建、運行、停止、刪除等請求,處理完成后返回相應(yīng)結(jié)果。Docker的架構(gòu)如圖1所示。

        圖1 Docker架構(gòu)圖

        2.2.2 Docker的核心組件

        Docker主要由鏡像、倉庫、容器等幾部分組成。其中鏡像是構(gòu)建Docker容器的基礎(chǔ),是一種層式結(jié)構(gòu)的增量文件系統(tǒng),更加輕量化,可以在鏡像倉庫中下載后直接運行使用;容器是鏡像創(chuàng)建后的運行實例,相互之間獨立、隔離,數(shù)據(jù)信息通過開放的端口進行交互。在這里需要注意的是,Docker基于Linux內(nèi)核進行運行,且只能運行在64位主機中,無法在32位的Linux環(huán)境下運行。

        3 Docker應(yīng)用實踐

        本文選擇Raspberry Pi 3開發(fā)板為硬件基礎(chǔ)平臺。此開發(fā)板的CPU為ARM Cortex-A53 1.2GHz四核,輔以1GB的RAM。同時配備了4個USB接口、RJ45接口、內(nèi)置WIFI等豐富接口。本文將在此開發(fā)板上部署Docker,同時部署Redis數(shù)據(jù)庫和自編寫的C/C++應(yīng)用程序,實現(xiàn)數(shù)據(jù)的采集與存儲。

        3.1 Docker環(huán)境搭建

        我們的首要任務(wù)是在板卡上安裝Docker的服務(wù)。Docker的安裝有多種方式,可以利用官方的yum源安裝,也可以獲取安裝腳本自動下載安裝,在此我們選擇后者。由于樹莓派3B的CPU是64位架構(gòu),操作系統(tǒng)為Debian,因此可以通過Docker官方指導(dǎo)文檔掌握其對應(yīng)的安裝方式。為簡化操作流程,我們可以通過“curl-fsSL get.docker.com -o get-docker.sh”和“sh get-docker.sh”2條命令自動完成Docker服務(wù)的安裝。

        圖2 Docker環(huán)境安裝驗證

        3.2 部署Redis

        啟動Docker服務(wù)需要對應(yīng)的鏡像,可以在Docker的鏡像倉庫中下載安裝,docker同樣提供了豐富的命令可供使用。

        本文中使用的Redis鏡像版本為latest,執(zhí)行命令docker pull redis:latest。Redis的版本盡量選擇最新版本,軟件的穩(wěn)定性和功能支持比較優(yōu)良。Docker鏡像下載后會自動安裝,安裝完成后可以利用docker images命令進行查看,確認安裝是否順利完成。

        執(zhí)行以下命令可以運行Redis數(shù)據(jù)庫,docker run-p 6379:6379-d redis:latest redis-server,啟動時可以通過不同的命令實現(xiàn)Redis的后臺運行。

        圖3 運行redis:latest鏡像

        利用docker attach“容器ID”命令或者docker exec-it“容器ID”/bin/bash命令可以進入運行中的Docker容器,查看其運行狀態(tài)以及進行其他操作。

        3.3 自定義Docker鏡像制作

        本文所選取的自定義應(yīng)用為SIEMENS的PLC數(shù)據(jù)采集協(xié)議S7,使用C/C++語言開發(fā)完成,此程序在其他平臺進行了測試,程序正確性和穩(wěn)定性方面無問題。

        參照前文所述,選取一個基礎(chǔ)鏡像。由于需要制作含有自定義應(yīng)用的Docker鏡像,因此選取的鏡像需要完整,包含Linux系統(tǒng)提供應(yīng)用的運行環(huán)境支持,本文選取的是gcc:latest版本作為運行基礎(chǔ)。從鏡像倉庫下載下來安裝完成后,將自定義應(yīng)用源代碼在當(dāng)前嵌入式環(huán)境下利用gcc進行編譯,生成可執(zhí)行文件。

        本文采用Dockerfile的方式將自定義應(yīng)用可執(zhí)行文件和運行所需的配置文件融合進gcc鏡像,形成自己的鏡像,此鏡像的啟動可以實現(xiàn)自定義應(yīng)用的自動運行。

        圖4 創(chuàng)建自定義應(yīng)用鏡像

        圖5 Docker鏡像匯總查看

        3.4 容器并行測試驗證

        應(yīng)用Docker,必然需要啟動多個容器,運行多種應(yīng)用才能實現(xiàn)它的價值。

        本文利用兩款SIEMENS的PLC和一款A(yù)B的PLC,連同搭載Docker虛擬化技術(shù)的嵌入式網(wǎng)關(guān)形成一套驗證環(huán)境。驗證思路為針對不同的采集協(xié)議制作多個Docker鏡像并先后啟動運行,分別利用S7通訊協(xié)議和ModbusRTU協(xié)議完成數(shù)據(jù)的采集。Docker下的多個容器采用沙箱機制,互相獨立,互不影響。

        圖6 Docker容器并行測試驗證環(huán)境

        驗證前期需要分別將S7采集程序和ModbusRTU協(xié)議程序源代碼在嵌入式環(huán)境下進行編譯,并利用前述方法生成另一個Docker鏡像。

        本文所述的S7數(shù)據(jù)采集協(xié)議為TCP/IP協(xié)議族的一種,因此在對應(yīng)的容器運行時,需要對容器的網(wǎng)絡(luò)參數(shù)進行配置。Docker提供了多種網(wǎng)絡(luò)配置方式,有host、container、none和bridge模式。某些應(yīng)用需要利用宿主機的網(wǎng)絡(luò)IP與同網(wǎng)段網(wǎng)絡(luò)設(shè)備通訊,可配置為host模式,此時利用如下命令docker run-it--rm--net=host“image名稱”:“image版本”bash啟動容器,之后可以進入容器內(nèi)查看其IP是否與宿主機IP一致,實現(xiàn)容器與外部設(shè)備的數(shù)據(jù)交換。

        圖7 宿主機網(wǎng)絡(luò)配置信息

        圖8 自定義鏡像容器IP配置

        依據(jù)上述配置,依次啟動含有S 7 協(xié)議程序和ModbusRTU協(xié)議程序的鏡像。

        圖9 啟動各鏡像

        圖10 鏡像運行狀態(tài)匯總

        搭載不同采集協(xié)議程序的鏡像獨立運行,分別完成各自所負責(zé)PLC的數(shù)據(jù)采集,并將采集數(shù)據(jù)寫入Redis數(shù)據(jù)庫,通過RedisDesktopManager連接Redis查看數(shù)據(jù),實現(xiàn)了數(shù)據(jù)的匯總存儲。

        圖11 采集數(shù)據(jù)查看

        3.5 Docker應(yīng)用實踐結(jié)果

        利用Docker容器技術(shù),我們可以實現(xiàn)運行于不同環(huán)境下的程序的共存,Docker將底層設(shè)備與上層應(yīng)用進行了隔離,統(tǒng)一了運行環(huán)境,可以極大的降低應(yīng)用開發(fā)過程中依據(jù)嵌入式系統(tǒng)環(huán)境進行移植的大量工作,同時Docker的核心組件為自定義應(yīng)用的組合、容器的制作提供了便捷可行的方法,不僅能夠降低應(yīng)用調(diào)度程序的開發(fā)成本,也能更加靈活的對應(yīng)用進行拓展和組網(wǎng)。

        4 結(jié)語

        嵌入式系統(tǒng)由于其架構(gòu)的特殊性,虛擬化的工作不像桌面端容易部署,而隨著大數(shù)據(jù)和云計算技術(shù)的快速發(fā)展,業(yè)務(wù)需求不斷增加,數(shù)據(jù)量驟增,數(shù)據(jù)處理節(jié)點已經(jīng)向終端下沉,虛擬化技術(shù)的實現(xiàn)為終端邊緣計算提供了無限可能。

        眾多虛擬化方案中,Docker的優(yōu)勢明顯。Docker以占用最小的存儲空間提供完整一致的運行環(huán)境,安裝部署簡單,啟動快速,遷移方便,這些特性都優(yōu)于傳統(tǒng)虛擬機技術(shù),也可以降低開發(fā)人員的程序開發(fā)難度,因此Docker在嵌入式環(huán)境中具有廣闊的應(yīng)用平臺。本文也通過樹莓派硬件平臺對Docker在嵌入式領(lǐng)域的應(yīng)用進行了驗證,可以充分挖掘Docker在嵌入式領(lǐng)域的巨大應(yīng)用潛能,將云計算的架構(gòu)體系、服務(wù)能力進一步下沉,提升終端側(cè)的邊緣計算能力和服務(wù)在線升級能力,改變傳統(tǒng)嵌入式設(shè)備服務(wù)更新困難以及升級后重啟的弊端。

        猜你喜歡
        宿主機鏡像虛擬化
        鏡像
        基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺的設(shè)計與實現(xiàn)
        電子制作(2019年10期)2019-06-17 11:45:10
        鏡像
        小康(2018年23期)2018-08-23 06:18:52
        對基于Docker的虛擬化技術(shù)的幾點探討
        電子制作(2018年14期)2018-08-21 01:38:20
        虛擬網(wǎng)絡(luò)實驗室在農(nóng)村職校計算機網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
        虛擬化技術(shù)在計算機技術(shù)創(chuàng)造中的應(yīng)用
        電子測試(2017年11期)2017-12-15 08:57:56
        嵌入式計算機軟件測試關(guān)鍵技術(shù)的思考
        存儲虛擬化還有優(yōu)勢嗎?
        嵌入式計算機軟件測試關(guān)鍵技術(shù)研究
        鏡像
        小康(2015年4期)2015-03-31 14:57:40
        国产亚洲亚洲精品视频| 亚洲一本到无码av中文字幕| 在线看亚洲十八禁网站 | 国产精品_国产精品_k频道w| 国产jk在线观看| 成在线人免费视频播放| 一区二区三区日本伦理| 亚洲精品成人片在线观看精品字幕| 国产精品免费久久久久影院| 日韩精人妻无码一区二区三区| 日韩精品人妻视频一区二区三区 | 麻豆精品国产免费av影片| 激情综合色综合啪啪开心| 免费99精品国产自在在线| 亚洲永久精品ww47永久入口| 国产大学生自拍三级视频 | 中文字幕亚洲精品无码| 国产又色又爽又刺激在线播放| 同性男男黄g片免费网站| 久久久久久久久高潮无码| 精品久久一品二品三品| 亚洲人成欧美中文字幕| 中文字幕无码不卡免费视频| 在线观看av片永久免费| 国产白色视频在线观看| 国产ww久久久久久久久久| 黄色资源在线观看| 精品一区二区三区不老少妇| 亚洲综合日韩精品一区二区| 五月综合激情婷婷六月色窝| 国产女人精品视频国产灰线| 亚洲女同人妻在线播放| 人妻丰满熟妇av无码区app| 中文字幕乱码人妻一区二区三区 | 99热久久这里只精品国产www| 丰满熟妇人妻av无码区 | 五十路一区二区中文字幕| 一区二区和激情视频| 亚洲欧洲精品成人久久曰影片| 中文无码免费在线| 成人久久久精品乱码一区二区三区 |