Container在Linux中,有控制群組(Control Group)的技術,可以針對CPU、記憶體、硬體I/O、網路I/O等進行資源分配。另外,還有名稱空間(NameSpace),可以賦予每個Container獨一無二的環境,每個Container可以有自己的檔案系統(File System)、網路Port、Process ID等。

紅帽(Red Hat)日前在臺正式發表企業級Linux作業系統Red Hat Enterprise Linux 7(簡稱RHEL 7)正式版,紅帽大中華區總裁張先民表示,RHEL 7可做軟體貨櫃(Container)技術成熟化的起點。另外,紅帽也表示,臺灣還無企業採用7.0版,僅有某交易所和壽險業計畫測試。

而RHEL 7正式版仍然強調輕量級虛擬化Linux Container(LXC)技術,並能支援LXC快速部署平臺Docker。紅帽臺灣資深解決方案架構師游政杰表示,雖然在RHEL 6的發展中可以發現Docker-io的蹤跡,不過,紅帽直到RHEL 7才正式支援Docker。

他認為,LXC技術太新,若是企業要在正式環境(Production)下使用LXC技術,還是建議企業使用RHEL 7,才能提供較好的LXC支援。

Docker的重點是分隔資源,以確保貨櫃間的獨立

Container的架構是專為Linux打造的輕量級虛擬化技術,將應用程式和相關的Runtime Library從Linux中摘出來,然後將這些資料打包封裝成映像檔,使用者就可以將映像檔帶著走,在各個Linux中都可以順利執行。

就技術層面而言,LXC是OS層級的虛擬化,在整個作業系統的概念裡並不是個新的技術,像是Solaris裡也有Container,另外,還有Linux中傳統的改變群組(Change Group)等,這些技術都是著重在OS層中做分隔(Partition),但這些分隔機制在早期Linux版本中還是有些限制。

不過隨著Linux技術的發展,在現在的Linux環境中,LXC透過核心安全機制來確保Container之間是完全獨立的。且在Linux中,有控制群組(Control Group)的技術,可以針對CPU、記憶體、硬體I/O、網路I/O等進行資源分配,但每個程式或Contianer只能使用到設定的最大值,以確保某一支程式不會濫用資源,而影響其他程式的運作。

另一個LXC關鍵的技術則是名稱空間(NameSpace),可以賦予每個Container獨一無二的環境,每個Container可以有自己的檔案系統(File System)、網路Port、Process ID等,所以使用者可以在Container 1執行一個80 Port的服務,同時在Container 2也可以執行80 Port的服務。

最後,游政杰表示,Container要能達到最大效能,企業的應用系統最好要先標準化,否則Container會因為系統有很多不同的映像檔(Image)而無法達到最大的效能。另外,Windows作業系統無法執行Container,如果應用程式在Windows上開發,也沒辦法使用,需要再建立一個Linux環境的VM才可使用。


Advertisement

更多 iThome相關內容