Linux Container Open Source Container Red Hat RHEL 7 LXC

RHEL 7納入Docker技術 輕量級虛擬化更適雲端

2014-09-16
RHEL 7提供許多新功能,尤其是Docker建構於Linux Container(LXC)基礎之上的容器(Container)技術備受關注。
企業IT環境與日俱進,愈來愈多創新應用以Open Source為技術基礎,也使得開源系統普及程度節節上升。許多調查資料均顯示,Linux作業系統將會愈來愈普及。而根據此一趨勢,Red Hat也不斷強化自身產品,紅帽大中華區總裁張先民表示,「近期發表的企業級Linux 7產品是紅帽相當重要的代表作,透過Red Hat Enterprise Linux 7(RHEL 7),企業將能在實體系統、虛擬機器與開放混合雲之間更敏捷地運用IT基礎架構,並且快速傳遞新的應用服務。」

▲紅帽大中華區總裁張先民表示,虛擬化已經是企業跨入雲端環境中必備的技術與過程,但是過往的虛擬化技術不僅『重』,而且可攜性不佳,這對於雲端架構而言是不利的,在理想的雲端環境中,工作負載必須可以輕鬆移動。
相較於上一個版本,RHEL 7提供許多新功能,包括以XFS格式取代Red Hat Enterprise Linux 6中預設使用的ext4檔案系統,與微軟Active Directory建立跨界信任(Cross-realm Trusts),同時也引進了新的性能監控系統PCP(Performance Co-Pilot)。另外,RHEL 7也納入了Docker建構於LXC基礎之上的容器(Container)技術。

「虛擬化已經是企業跨入雲端環境中必備的技術與過程,但是過往的虛擬化技術不僅『重』,而且可攜性不佳,這對於雲端架構而言是不利的,在理想的雲端環境中,工作負載必須可以輕鬆移動。」張先民解釋,這也是為什麼RHEL 7加入了Docker技術,目的就是為了改善這個問題。

共用底層作業系統 節省資源更輕量

傳統虛擬化技術,無論是採用全虛擬化、半虛擬化,或者Hosted虛擬化、Bare-metal虛擬化,都避免不了在虛擬機器(VM)之上安裝虛擬系統(Guest OS),也因為如此,對於效能展現以及資源的運用相對都吃重許多。而Linux Container的作法可大幅減輕虛擬系統對實體系統(Host OS)所帶來的沈重負擔,原因便在於Linux Container無須透過Hypervisor來模擬所有硬體裝置,而是直接使用實體主機上的軟硬體資源,透過對Host資源進行區隔與控制而做到讓每個應用程式都有獨立的運作環境。

紅帽台灣資深解決方案架構師游政杰解釋,Linux Container(LXC)是一種虛擬化的替代方案,而Docker則是以Linux Container原理為基礎的容器技術,並且加入了AuFS、Base Image概念以及支援多種Isolation工具。概念上是將應用程式以及應用程式所需要的Runtime Library摘出成為Image,並且被封裝成一個標準的Container,由於是共用一個作業系統,因此也更加輕量。 「傳統的虛擬化技術,由於每個在虛擬機器上都要安裝虛擬系統,所有的開機與關機都要循著作業系統的正常管道,但是Container只要封裝好軟體,執行時只需一行指令,立刻就能完成啟動。」

他說明,企業導入虛擬化技術的目的,有時並非為了雲端環境,而是希望應用程式可以藉由虛擬化技術運行更為長久,因此常常聽到虛擬化平台提供了vMotion或是即時移轉(Live Migration)技術,來協助企業確保應用系統永續運行,「但是雲端的概念卻不是如此,Cloud只追求曾經擁有,在有需要的時候,短時間內啟動很多系統,不需要時,則可把多餘的系統關掉以即時因應工作負載,因此不論是在架構面、需求面以及設計面的考量都有很大的不同。」他提到, Docker當初被開發的目的,就是希望把各種應用程式以及所依賴運行的環境封裝成一個個標準的Container,以方便部署到不同的平台上運作。


▲傳統的虛擬化技術,由於每個在虛擬機器上都要安裝虛擬系統,對於效能展現以及資源的運用相對都吃重許多(圖左),而運用Docker的Container技術,不需安裝Hypervisor以及虛擬系統,可大幅提升部署與啟動的速度(圖右)。(資料來源: Red Hat)

關鍵技術成熟 確保容器獨立運作

不同於傳統虛擬化技術是將系統與硬體脫勾,Container想做到的是讓應用程式與作業系統脫勾,而為了給予應用程式一個獨立的運作環境,以確保不同Container之間的應用程式或者Container與Host之間不會交互影響,Linux Container也內建相關功能來因應,包括Control Group以及Namespace都是確保獨立運作環境的關鍵。

游政杰說明,由於Container彼此共享資源,因此過程中必須避免有些應用程式會濫用資源而影響到其他應用程式的運作,而Control Group技術便可以針對CPU、記憶體以及I/O(Disk與Network I/O)預先設定允許的上限值。「另外,Namespace技術則可以賦予每一個Container獨一無二完整的環境,包括File System、Process ID以及Networking stack等等,而這些技術早期都還未臻完善,直到近期才全部到位。」

透過Docker Container技術所建構出來的運行環境,若要加以拆解,實際上是仰賴疊加多個Image而組成。這種作法雖然有助於節省系統資源,但就技術層面來說,缺點之一,就是Container非常要求標準化,如果沒有做到這點,管理與部署的挑戰就會跟著大增,現階段主要著重在開發需求以及Cloud等一次需要大量部署的應用環境中。 「Container另一項缺點,大概就是只能在Linux環境上運行,不過,如果非要在Windows上執行Container也並非沒有辦法,」他指出,作法上可以結合傳統的虛擬化技術,在VM上執行Container,也能運行得很好。

標準化容器架構 Docker備受矚目

Docker容器技術受到不少大型服務供應商(如Google、百度)以及IT原廠的青睞,也使得Docker聲名大噪。事實上,如果單就Linux Container技術來看,LXC早在Linux 2.6 Kernel便已存在,如今隨著Docker技術突破,而有更成熟的功能表現。以現階段來說,討論輕量級虛擬化技術是否能取代傳統虛擬化平台還言之過早,畢竟Container仍有一些問題仍待解決,但不管如何,在雲端世界中,Open Source討論愈見廣泛,樂見的是,將會更多的技術被挖掘,而最終成為企業可運用的有利工具之一。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!