初探Container
第一次接觸到Container並不是Docker,而是 MiCloud(http://micloud.tw) 的這份工作開始的時候,MiCloud的平台來自於美國的一個公有雲 Joyent ... Joyent使用SmartOS作為整個雲端運算的平台。
從Solaris決定由Oracle所購買之後,整個Solaris支系的發展有些改變,illumos的分支跟SmartOS從此而生。
SmartOS
illumous的技術主軸為ZFS與Dtrace,熟悉Solaris Unix系統的朋友應該對這兩個名詞不陌生,透過ZFS對Filesystem優化,,而Dtrace可以作為系統狀態tracking的最佳工具!
SmartOS則是以雲端虛擬化平台為主軸,透過Zone的技術,讓SmartOS具備BareMetal的虛擬化能力,同時SmartOS也具備ZFS與Dtrace的能力,而且在Joyent的優化下,發展出運作於host os與guest os之間的整合監控工具,也進一步提供了Joyent雲平台服務的基礎。
SmartOS的Zone技術,也就是Linix的Container... 在Container的支持之下,一般提供了快速生長Guest OS的能力,也提供相較於其他Virtualize技術更佳的效能體驗。 今年(2014)收到Joyent將SDC 7開放的消息,SDC(SmartDatacenter)是集成SmartOS及Joyent平台虛擬化工具,SDC 7的開放,也意味著Docker多了個強力的的競爭者。
LXC - Linux Container
LXC即是Linux Container,這個技術也是來自於Zone的概念,通常執行這樣Container技術的平台,都具備幾個特性:
- Container會透過filesystem的方式來管理每個Container的可用空間。因此,每個空間原則上實體隔離,不會因為某個Container使用的空間過多而影響另一個空間的使用。而在一些比較高階的Filesystem系統,應該還可以提供每個Filesystem的監控與複製備份能力。
- Container主機的運作一般不會將整個OS完全複製,在Linux的系統運作過程中,有許多元件是可以在Container之間共用的,因此一般Container系統,會有幾個Filesystem會抽離到底層的Hypervisor層,達到Thin Provision的能力。
- Container的能力通常優於其他虛擬化技術,通常可以逼近直接使用Hypervisor來運算的效能,因此,控管Container之間運作是否互相影響,通常是Container的一個重要課題。
從認識Container之後,希望對之後使用Docker有所幫助。