?

基于Docker的舊機房虛擬化改造探討

2017-02-21 19:43強焜
科技創新與應用 2016年35期
關鍵詞:虛擬化容器

強焜

摘 要:Docker是一個開源的應用容器引擎,讓開發者可以打包它們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。由于Docker和VNC的客戶端軟件都是開源的產品,這樣就節省了初期購買虛擬化軟件的費用。在一臺服務器上搭建好Docker的環境,其余電腦通過VNC客戶端來訪問服務器上的虛擬化應用。

關鍵詞:Docker;虛擬化;容器

近年來,隨著計算機硬件配置的提升和虛擬化技術的普及,越來越多的院校在新建計算機房時都考慮使用虛擬化云桌面技術,在新機房部署云桌面有諸多優點:定制桌面軟件環境方便;簡化服務器的部署、管理和維護工作,降低管理費用;提高服務器資源的利用率;提高服務器計算能力;在不中斷用戶工作的情況下進行系統更新;支持快速轉移和復制虛擬服務器,提供一種簡單便捷的災難恢復解決方案等。但對于現有舊機房的改造來說,完全廢棄舊有電腦全部更新為瘦客戶機云桌面模式或采用在舊電腦上運行虛擬化的桌面都有一些的不足。

不論采用哪種方式,桌面虛擬化的初始成本較高。降低成本是很多人對桌面虛擬化所帶來好處的第一反應,不過這成本需要具體的分析。桌面虛擬化并不是免費的,初始成本并不低,要進行基礎架構的改造,要額外的付出桌面虛擬化的相關軟件和許可費用,而操作系統的授權還一個不能少,應用軟件也是根據虛擬桌面數量來授權的,這方面與物理桌面沒有什么區別。對一間配置較低的舊電腦機房進行桌面虛擬化改造,其軟件成本并不比新建一間機房低多少,對于一些只跑一些輕量化應用的機房來說,這種改造顯得成本較高。

1 Docker技術

Docker是一個高級容器引擎,Docker的核心是LXC,它在LXC之上做了進一步封裝,重點提高了標準化和可移植性,基于go語言開發,并且遵循了Apache2.0協議開源規范。LXC技術是一種輕量級的虛擬化技術,它可以在單個宿主機操作系統上同時運行多個Linux系統,在隔離方面,使用cgroups技術來實現處理器、硬盤、內存、網絡等設備的隔離。

2 Docker與傳統虛擬化技術的區別

Docker是一個開源的應用容器引擎,讓開發者可以打包它們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。通俗地說,一個做好的應用容器長得就好像一個裝好了一組特定應用的虛擬機一樣。例如當你需要使用MySQL環境時,只需裝好MySQL的容器,運行起來,就可以使用 MySQL了。容器是完全使用沙箱機制,相互之間不會有任何接口,幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。通常Docker容器的啟動速度都能達到在1秒內啟動,而VM往往需要較久的啟動時間;Docker占用的資源很少,1臺普通性能的服務器能夠跑成百上千個容器,這也是VM較難達到的。

3 通過Docker構建輕量化應用機房

某院校電子閱覽室電腦已使用近5年,平時主要用于學生上網訪問數字資源使用,隨著瀏覽器等軟件的硬件資源占用加大,目前的電腦配置運行起來比較緩慢,已無法滿足使用需求。由于應用的需求比較單一,如果采用虛擬化云桌面的方案進行升級改造,需要購置服務器及VM軟件等,前期投入較大,對于輕量化應用來說性價比不高。嘗試使用Dcoker容器封裝瀏覽器等應用鏡像,配合VNC遠程訪問應用。

目前Linux上比較主流的圖形界面服務是X11,而X11服務的圖形顯示方式實際上是一種C/S模式,在服務端和客戶端之間,X11通過(DISPLAY)環境變量來指定將圖形顯示到何處?;谶@個原理,將Docker中的GUI程序顯示到外面,就是通過某種方式把X11的客戶端的內容從容器里面傳遞出來。X11服務默認只允許來自本地的用戶啟動的圖形程序將圖形顯示在當前屏幕上,需要進行修改允許所有用戶訪問X11服務。

VNC (Virtual Network Console)是虛擬網絡控制臺的縮寫。由著名的AT&T的歐洲研究實驗室開發。VNC是在基于UNIX和Linux操作系統的免費的開源軟件,遠程控制性能強大,高效實用,其性能能與Windows和MAC遠程控制軟件媲美。

由于Docker和VNC的客戶端軟件都是開源的產品,這樣就節省了初期購買虛擬化軟件的費用。在一臺服務器上搭建好Docker的環境,其余電腦通過VNC客戶端來訪問服務器上的虛擬化應用。

實驗中以ubuntu系統容器化作為測試,在服務器上搭建ubuntu的Docker,讓10臺舊的配置不高的電腦訪問。首先構建ubuntu鏡像容器,往容器里面安裝用戶自己的應用軟件。鏡像中的程序可以是從代碼編譯的、從網上下載的、或者直接通過apt-get安裝的。安裝好后,只需要要將需要運行的GUI軟件啟動命令設置到“APP_START”變量中就可以了。Docker鏡像的創建有兩種,一是使用docker commit命令,二是使用dockerfile文件和docker build命令來創建。以chrome瀏覽器為例,構建chrome鏡像后,加上標簽,然后啟動一個容器實例,并將它映射到外部的端口,客戶機電腦通過VNC軟件連接這個地址端口,就可以訪問chrome瀏覽器了,不同的客戶機通過連接不同的端口來訪問不同的容器,互不干擾。

由于所有配置的操作都在服務器電腦上完成,就省去了部分在客戶機上安裝軟件等的維護工作,便于管理員管理。同時,由于Docker有啟動速度快的優勢,在配置較低的客戶機上通過VNC連接容器,啟動chrome的速度比在本機上直接運行chrome程序更快,緩解了客戶機電腦配置不足的壓力。在內存占用上,由于容器的輕量化,對服務器的內存需求很低,在服務器上可以運行更多的容器,節約了在服務器硬件配置上的投入。在安全性上,Docker中部分目錄下的資源是與宿主機共用的,而且多個容器與宿主機共用同一個內核,所以Docker的隔離程度不如VM等虛擬化方式;Docker通過內核的namespace,包括進程、網絡、進程間通信信號、文件系統、用戶等,不同的Docker使用不同的namespace,在安全性上面已經得到很大的提升。綜上所述,基于Docker構建的虛擬化能滿足一些輕量化應用機房的需求。

4 結束語

經過測試,作為一種新的虛擬化技術,Docker以其極小的性能損耗、快速的啟動速度和優秀的可移植性在很多場合顯現出了相對傳統虛擬機技術的優勢。當然,其還存在較多局限性,如只能虛擬linux下的應用,對Windows下的應用支持不好,可用的應用較少等,相信隨著Docker技術的不斷發展,在應用本身越來越成為市場核心的將來,Docker的應用將越發廣泛。

猜你喜歡
虛擬化容器
難以置信的事情
怎樣量出4升水
從容器的形狀看壓強
液體對容器底及容器對桌面的壓力和壓強
取米
淺談虛擬化工作原理
用戶怎樣選擇虛擬化解決方案
別再誤會客戶端虛擬化了
虛擬化整合之勢凸顯
虛擬化技術:綠色IT的希望
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合