999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2019-12-25 06:31:00葉連杰
制造業(yè)自動化 2019年12期
關(guān)鍵詞:嵌入式利用環(huán)境

葉連杰

(西安西電電氣研究院有限責任公司,西安 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ù)可以分為半虛擬化、完全虛擬化和準虛擬化。隨著虛擬化的發(fā)展,逐步形成了幾類主流的技術(shù)或產(chǎn)品:

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

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)用源代碼在當前嵌入式環(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é)議程序的鏡像獨立運行,分別完成各自所負責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ù)更新困難以及升級后重啟的弊端。

猜你喜歡
嵌入式利用環(huán)境
利用min{a,b}的積分表示解決一類絕對值不等式
長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
利用一半進行移多補少
孕期遠離容易致畸的環(huán)境
環(huán)境
利用數(shù)的分解來思考
Roommate is necessary when far away from home
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 日本高清有码人妻| 国产精品永久免费嫩草研究院| 中文字幕在线看| 67194成是人免费无码| 无码国产伊人| 国产欧美日韩综合一区在线播放| 欧美三級片黃色三級片黃色1| 国产成人亚洲综合A∨在线播放| 国产成人精品免费av| 婷婷六月色| 色婷婷天天综合在线| 国产欧美自拍视频| 亚洲精品片911| 亚洲综合二区| 日韩欧美综合在线制服| 97成人在线视频| 国产成人综合亚洲欧洲色就色| 波多野结衣一区二区三视频 | 欧美三级视频在线播放| 国产欧美又粗又猛又爽老| 亚洲无线观看| 99久久精品免费观看国产| 亚洲无线观看| 波多野结衣视频网站| 国产在线拍偷自揄拍精品| 色偷偷男人的天堂亚洲av| 成年A级毛片| 福利视频99| 国产老女人精品免费视频| 爱色欧美亚洲综合图区| 伊人成人在线视频| 成人福利在线看| 欧洲精品视频在线观看| 丝袜亚洲综合| 色老头综合网| 免费一级毛片不卡在线播放| 精品国产91爱| 77777亚洲午夜久久多人| 欧美日韩资源| 精品第一国产综合精品Aⅴ| 免费在线国产一区二区三区精品| 六月婷婷精品视频在线观看 | 手机在线免费不卡一区二| 伊人天堂网| 四虎影视永久在线精品| 潮喷在线无码白浆| 一级在线毛片| 欧美中文字幕无线码视频| 99久久性生片| 欧美国产成人在线| 国产理论一区| 国产精品lululu在线观看| 国产成人一区| 狠狠v日韩v欧美v| 国产精品免费入口视频| 欧美精品另类| 中文成人在线视频| 在线亚洲精品自拍| 91尤物国产尤物福利在线| 老司机精品一区在线视频 | 91午夜福利在线观看| 亚洲欧美天堂网| 国产欧美日韩91| 日韩亚洲综合在线| 免费欧美一级| 国产午夜一级毛片| 亚洲精品爱草草视频在线| 国产麻豆精品手机在线观看| 77777亚洲午夜久久多人| 在线观看免费国产| 久久久久久高潮白浆| 国产精品无码AV中文| 亚洲免费人成影院| 成人福利在线视频| 亚洲天堂免费在线视频| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲小视频网站| 色婷婷国产精品视频| 日本黄网在线观看| 午夜国产不卡在线观看视频| 四虎精品免费久久| 色婷婷在线播放|