回覆列表
  • 1 # CoreCode

    過去容器和hypervisor經常被放在一起進行對比,但是現在開發人員正在嘗試改變這種現狀,希望找到一種方法將兩種技術的特點相互融合。

    大多數人喜歡將虛擬化技術的兩種主要實現方式——容器和hypervisor——以對比的方式進行討論。這種思路將容器和hypervisor放在對立面上,選擇容器或是在實際環境中,容器和hypervisor不僅僅是競爭關係,不應該簡單地將其拿來對比。事實上,容器和hypervisor能夠共存,甚至相互促進對方發展。

    容器技術的最大意義在於其不需要同時使用多個作業系統,而在hypervisor虛擬化環境當中每臺虛擬機器都需要使用獨立的作業系統。顯而易見,這種方式能夠大幅度降低系統開銷所佔用的記憶體,能夠為應用及其資料預留更多的空間。

    使用容器技術能夠節約大量作業系統所佔用的記憶體空間。通常相比於hypervisor,使用容器能夠在同一臺伺服器當中建立三倍的例項數量。在某些情況當中,比如完全一樣的虛擬桌面,例項數量能夠達到之前的十倍。從另外一個角度來說,特定負載所需的伺服器數量也就大幅降低了。授權部分也會受到影響,企業只需要為每臺伺服器購買一個授權。由於應用成為共享映象的一部分,因此也能夠從中獲益。

    容器提升效能和安全性

    容器技術還能夠帶來其他好處。相比於hypervisor,其啟動速度更快,主要是因為映象不需要從頭進行載入。映象具有更好的可移植性並且更加易於部署,因此能夠在運營過程中為部署和敏捷性帶來很大幫助。此外,測試報告顯示相比於傳統hypervisor,容器在完成某些特定任務方面具有很大的效能優勢,最多隻需要使用原有時間的15%。

    容器技術擁有如此多的優勢,以至於很多人不太理解除了行業內的保守派之外,容器技術為什麼還沒有完全取代原有hypervisor。畢竟,Docker在這個行業當中擁有很強的領導能力,並且容器技術也已經基本成熟。

    容器是一種全新技術,並且正在快速發展。而與之對比的hypervisor則更加成熟,並且已經透過市場的證明。其在安全性方面不斷加固,並且x86 VTx架構為其提供了硬體輔助,因此想要實現跨租戶間的襲擊幾乎是不可能的。相對來說有人質疑容器更加脆弱,攻擊者可能襲擊底層作業系統,進而控制伺服器當中的所有例項。

    由此產生的結果是容器通常被執行在hypervisor之上。每個租戶的容器例項都被隔離在單獨的虛擬機器當中,這樣就能夠實現硬體保護,防止遭遇跨租戶襲擊。這種方式的缺點也十分明顯。不僅更加複雜,而且還會涉及hypervisor程式碼以及作業系統複製等授權問題,並且影響效能,甚至是失去敏捷性——但是至少例項是安全的。

    但是現在容器生態系統已經能夠應付這種局面。一些Thin hypervisor,比如英特爾的Clear Container,就是被設計用來保護容器並且合理利用硬體——不會佔用大量空間或者過度影響系統性能表現。其他一些安全改進——特別是在映象證明和認證方面——意味著容器已經能夠彌補和hypervisor在安全性方面的差距了。

    Hypervisor如何迴應

    Hypervisor開發者也並不清閒。儘管最初他們否認容器會對其帶來威脅,但是最終還是開始應對容器技術所帶來的各種威脅可能性。比如,VMware使用記憶體頁面去重複化技術來降低記憶體使用量,這種技術能夠替換整個記憶體頁面,將所有重複內容都指向同一個記憶體地址。這種方式能夠有效降低負載,但是hypervisor的執行速度依然無法和容器相提並論。在運營過程中還可以透過其他方式來實現平衡。記憶體頁面去重複化技術能夠進一步演變,比如針對已經載入的映象建立索引,針對已經在系統當中的檔案進行檢查。這種方式不會帶來任何額外負載,能夠大幅度提升去重複化速度。我們想要將現在的hypervisor和未來的容器進行對比,表明hypervisor虛擬化並沒有停滯不前。

    除了記憶體和效能問題之外,兩種解決方案的應用領域也各不相同。對於那些需要進行大規模擴充套件、但是幾乎不會相互影響——至少不會直接相互影響——的任務來說,使用容器更加合適。比如,容器技術能夠很好地滿足Web服務以及微服務的需求,如果能夠對容器進行恰當配置,那麼其還能夠在雲中發揮重要作用。

    相比於容器,hypervisor更加適用於那些規模龐大的獨立應用,管理員能夠更好地控制和應用相關的網路和儲存架構,由於這些大型應用通常都被用來執行一些關鍵任務,因此節約資源和啟動時間並不是其主要考慮因素——特別是和潛在的故障時間或者安全隱患相比。

    科學計算,幾年之前剛剛進入虛擬化領域,已經在很大程度上提升了生產力。這些工具通常都會根據當前環境進行調整,因此更加適合於複雜任務。

    至於成本因素,應用和作業系統授權方式還需要進行不斷調整,這樣才能使得所有使用者都能夠負擔的起虛擬化的價格,不論選擇使用哪種虛擬化方式。每個例項每分鐘的收費方式也許將會成為最終標準。

    憑藉現有的強大生態系統以及龐大的使用者群體,hypervisor還將會在IT領域發揮重要作用。在容器和hypervisor的競爭當中,只有當hypervisor設計者不再進行迴應的的時候,容器才有可能成為最終的勝利者,但是這幾乎是不可能的。事實上,未來最有可能的發展方向就是hypervisor和容器技術相互融合,至少在特性和優勢方面。那些現在已經非常依賴於hypervisor基礎架構的IT部門也許希望繼續使用這種方式,比如使用簡化的hypervisor例項或者在hypervisor例項當中使用容器。另一方面,全新安裝的企業最有可能會直接使用Docker或者其他方案。對應用進行分類也是一種可行方案,hypervisor虛擬化更加適用於龐大的單一應用。

  • 中秋節和大豐收的關聯?
  • 千古絕唱《廣陵散》真失傳了嗎?