一文掌握虛擬機

責編:中文妹 | 來源:本文系 SDNLAB 編譯自 NetworkWorld

大家好,我是中文妹。

今天的許多前沿技術,如雲計算、邊緣計算和微服務,都源於虛擬機的概念——將操作系統和軟件實例從底層物理計算機中分離出來。

什麼是虛擬機?

虛擬機指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。在虛擬機中,一臺或多臺客戶機可以運行在一臺主機上。

虛擬機的起源可以追溯到 20 世紀 60 年代早期。每個虛擬機都有自己的操作系統,獨立於其他虛擬機,即使它們位於同一物理主機上。虛擬機通常運行在服務器上,但也可以運行在桌面系統上,甚至是嵌入式平臺上。多個虛擬機可以共享一個物理主機的資源,包括 CPU 週期、網絡帶寬和內存。

虛擬機在過去的 20 年裏獲得了很大的發展,企業通過服務器虛擬化可以更有效地利用其物理服務器的計算能力,減少物理服務器的數量並節省數據中心的空間。 

虛擬機如何工作?

一般來說,有兩種類型的虛擬機:程序虛擬機(將單個程序分開)和系統虛擬機(將操作系統和應用程序與物理計算機完全分離)。程序虛擬機的例子包括 Java 虛擬機、.NET Framework 和 Parrot 虛擬機。

系統虛擬機依賴管理程序(hypervisor)作爲中間人,提供軟件對硬件資源的訪問。hypervisor 模擬計算機的 CPU、內存、硬盤、網絡和其他硬件資源,創建一個資源池,可以根據各個虛擬機的特定需求將資源分配給它們。Hypervisor 可以支持多個相互隔離的虛擬硬件平臺,使虛擬機能夠在同一物理主機上運行 Linux 和 Windows Server 操作系統。另外,搜索公衆號編程技術圈後臺回覆 “大禮包”,獲取一份驚喜禮包。

該領域的知名企業包括 VMware (ESX/ESXi)、Intel/Linux Foundation (Xen)、Oracle(適用於 SPARC 的 MV 服務器和適用於 x86 的 Oracle VM 服務器)和微軟(Hyper-V)。

臺式計算機系統也可以使用虛擬機。例如 Mac 用戶在自己的 Mac 上運行虛擬 Windows 系統。

管理程序有哪兩種類型?

管理程序負責管理資源,並將資源分配給虛擬機使用。它還可以根據管理程序和虛擬機的配置方式來調度和調整資源的分配方式,並且可以根據需求波動重新分配資源。大多數虛擬機管理程序可分爲以下兩類:

Type1: 裸機管理程序直接在物理主機上運行,並且可以直接訪問硬件。這類管理程序通常在服務器上運行,通常比 2 類管理程序更高效、性能更好,非常適合服務器、桌面和應用程序虛擬化。這類管理程序包括 Microsoft Hyper-V 和 VMware ESXi。

Type2: 有時稱爲託管管理程序,這類管理程序安裝在主機操作系統上,負責管理對硬件資源的調用,通常部署在最終用戶系統上。這類管理程序包括 VMware Workstation 和 Oracle VirtualBox。

虛擬機有什麼優勢?

由於軟件與物理主機分離,用戶可以在單個硬件上運行多個操作系統,從而節省企業的時間、管理成本和物理空間。虛擬機還可以支持舊版應用程序,從而減少或消除將舊應用遷移到更新或不同操作系統的需求和成本。

此外,開發人員可以使用虛擬機在安全的沙盒環境中測試應用程序。開發人員想知道他們的應用程序是否能在新的操作系統上運行,可以利用虛擬機來測試他們的軟件,而不必提前購買新的硬件和操作系統。這也有助於隔離惡意軟件,由於虛擬機內的軟件無法篡改主機,惡意軟件無法傳播。

虛擬機的缺點是什麼?

虛擬機同樣也存在一些缺點。在一臺物理主機上運行多個虛擬機可能會導致性能不穩定,尤其是在不滿足特定應用程序的基礎架構要求的情況下。這也使它們在很多情況下比物理計算機效率低。

此外,如果物理服務器崩潰,在其上運行的所有應用程序都會崩潰。

還有哪些其他形式的虛擬化?

虛擬機在服務器虛擬化方面的成功促使虛擬化應用到了很多其他領域,包括存儲、網絡和桌面。

在網絡虛擬化方面的探索包括 NaaS(網絡即服務)和 NFV(網絡功能虛擬化),通過商用服務器代替專用網絡設備,以實現更靈活和可擴展的服務。這與 SDN(軟件定義網絡)略有不同,SDN 是將網絡控制平面與轉發平面分開,以實現更自動化的網絡資源分配和基於策略的網絡資源管理。VNF(虛擬網絡功能)是可以在 NFV 環境中運行的基於軟件的服務,包括路由、防火牆、負載平衡、廣域網加速和加密等。

虛擬機和容器

虛擬機的增長促進了容器等技術的進一步發展,使這一概念又向前邁進了一步。容器可以對單個應用程序及其依賴項進行虛擬化。與虛擬機相比,容器的開銷要少得多,只包含二進制文件、庫和應用程序。

雖然有些人認爲容器的開發可能會扼殺虛擬機,但虛擬機有足夠的能力和優勢來推動技術向前發展。例如,在同時運行多個應用程序或在舊操作系統上運行傳統應用程序時,虛擬機仍然發揮很大作用。

此外,還有人認爲容器不如虛擬機管理程序安全,因爲容器只有一個應用程序共享的操作系統,而虛擬機可以隔離應用程序和操作系統。

IDC 軟件定義計算部門的研究經理 Gary Chen 在 IDC 的《2019-2022 年全球虛擬機軟件預測》中寫道:“虛擬機軟件市場非常有彈性,並將在未來五年繼續積極增長,儘管該市場已經非常成熟並接近飽和。”

虛擬機、5G 和邊緣計算

虛擬機被視爲 5G 和邊緣計算等新技術的一部分。例如,微軟、VMware 和 Citrix 等虛擬桌面基礎架構 (VDI) 供應商正在尋找將其 VDI 系統擴展到居家辦公的方式,作爲疫情後混合辦公方式的補充。

卡內基梅隆大學的計算機科學教授 Mahadev Satyanarayanan 說:“使用 VDI,你需要極低的延遲,因爲你基本上是把你的鍵盤敲擊和鼠標移動發送到遠程桌面。”2009 年,Satyanarayanan 寫了一篇文章,介紹瞭如何利用基於虛擬機的云爲互聯網邊緣的移動設備提供更好的處理能力,這促進了邊緣計算的發展。

在 5G 無線領域,網絡切片過程使用 SDN 和 NFV 技術來幫助將網絡功能安裝到虛擬服務器上的虛擬機上,以提供曾經只能在專有硬件上運行的服務。

就像今天使用的許多其他技術一樣,如果沒有幾十年前引入的原始虛擬機的概念,這些新興的創新就不會得到發展。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/i4AQW7QEUh8CuSMtVlLeQw