Virtual Machine vs Container 比較

Virtual Machine 簡介 (以下簡稱VM):

以往在一個硬體資源下,安裝了一個 Guest OS 之後

這個硬體的就被限制在一個 Guset OS 裏面

並且在大多數時候,這個硬體的資源是不會被利用完的

為了解決硬體資源過剩以及功能單一化的問題

VM 的概念就出現了,讓硬體資源適當分配給每一個 VM

並且可以同時執行多種 OS,也有各自獨立的運作環境

依照類型去分類:

Type-1 有 VMware ESXi、Microsoft Hyper-V、XenServer…等等

Type-2 有 VMware workstation、 VirtualBox、KVM、bhyve…等等

差異在於本身是否會多一層 OS 或是虛擬化硬體的差異性

一般來說,Server 類推薦使用 Type-1,Client 使用 Type-2

因為你的 Client Host OS 可能會有本身用途

而 Type-1 在效能與資源上處理較佳,適合 Server 使用

Container 簡介:

Container 技術的概念出現的非常早,像是 FreeBSD 的 Jail 相似

將 APP 運行環境完整包裝隔離,不會被其他的 APP 影響

並且用最少的資源去執行一個 APP,每個 Container 可以在各種的 OS 執行

無論是資源需求、啟動速度、轉移特性都是大於 VM

但這並不代表 Container 比 VM 好,而是解決方案對象本身就不同

VM 與 Container 比較:

下圖是 VM 與 實體機 運作概念的比較:

physicalvsVM.jpg

下圖是 VM 與 Container 運作概念的比較:

VMvsContainer.jpg

可以明顯看出,最大的差異在於每一個 VM 每次最小單位代表著一個 Guest OS

而 Container 最小單位就是 APP,這樣的差異在佈署大型環境時

差異將會非常顯著,假設 Guest OS 的需求資源為空間 5GB,RAM 2GB

當使用 10 個的時候,就會有 50GB 的空間與 20GB 的RAM,浪費在相同的事物上面

而且管理上,你很難去保證每個 Guest OS 設定值都完全相同

但必須說,兩者的技術應該會是互惠而不會是競爭的

例如透過 VM 使用 Container 執行應用程式

這樣將 VM 本身優點結合 Container 本身優點一起使用

比較需要的是熟悉虛擬化技術以及容器技術的應用原理,而非限於工具的使用

如此,才能利用兩者的優勢建立合理的架構

廣告

對「Virtual Machine vs Container 比較」的一則回應

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s