什麼是虛擬機? (為什麼以及何時使用它)

如果您在軟件行業或周圍工作,您可能聽說過虛擬機。 如果沒有,您可能想知道它們是什麼以及它們的用途。

作為一名軟件工程師,我每天都使用虛擬機。 它們是軟件開發中的有力工具,但它們也有其他用途。 也稱為 VM,許多企業使用它們是因為它們的靈活性、可靠性和成本效益; 它們還可以防止因軟件測試失控而造成的災難。

讓我們來看看虛擬機是什麼以及為什麼要使用它們。

什麼是虛擬機?

虛擬機是在計算機的主操作系統中運行的操作系統 (OS) 的實例,例如 Windows、Mac OS 或 Linux。

通常,它在您桌面上的應用程序窗口中運行。 虛擬機具有完整的功能,就像一台單獨的計算機或機器。 本質上,虛擬機是在另一台稱為主機的計算機中運行的虛擬計算機。

虛擬機 1
圖 1:在筆記本電腦上運行的虛擬機。

虛擬機沒有硬件(內存、硬盤驅動器、鍵盤或顯示器)。 它使用來自主機的模擬硬件。 因此,多個虛擬機(也稱為“來賓”)可以在單個主機上運行。

虛擬機 2
圖 2:運行多個虛擬機的主機。

該主機還可以運行多個具有不同操作系統的 VM,包括 Linux、Mac OS 和 Windows。 此功能取決於稱為管理程序的軟件(參見上圖 1)。 管理程序在主機上運行,允許您創建、配置、運行和管理虛擬機。

管理程序分配磁盤空間、安排處理時間並管理每個 VM 的內存使用情況。 這就是像 Oracle 這樣的應用程序 VirtualBox的, VMware的, Parallels的、Xen、Microsoft Hyper-V 和許多其他人都這樣做:它們是虛擬機管理程序。

管理程序可以在筆記本電腦、PC 或服務器上運行。 它使本地計算機或分佈在網絡上的用戶可以使用虛擬機。

不同類型的虛擬機和環境需要不同類型的管理程序。 讓我們來看看其中的一些。

虛擬機的類型

系統虛擬機

系統 VM,有時稱為完全虛擬化,由管理程序運行並提供實際計算機系統的功能。 他們使用主機的本機操作系統來管理和共享系統資源。

系統虛擬機通常需要具有快速或多個 CPU、大量內存和大量磁盤空間的強大主機。 有些運行在個人或筆記本電腦上,可能不需要大型企業虛擬服務器所需的計算能力; 但是,如果主機系統不夠用,它們會運行緩慢。

處理虛擬機

進程虛擬機與 SVM 完全不同——您可能讓它們在您的機器上運行,但您甚至不知道它。 它們也稱為應用程序虛擬機或託管運行時環境 (MRE)。 這些虛擬機在主機操作系統內運行並支持應用程序或系統進程。

為什麼要使用 PVM? 它們在不依賴特定操作系統或硬件的情況下執行服務。 他們有自己的小操作系統,只有他們需要的資源。 MRE 在一個單獨的環境中; 它是否在 Windows、Mac OS、Linux 或任何其他主機上運行都沒有關係。

最常見的進程虛擬機之一是您可能聽說過並且可能已經看到在您的計算機上運行的一種。 它用於運行Java應用程序,簡稱Java虛擬機或JVM。

管理程序的類型

我們關心的大多數虛擬機都使用管理程序,因為它們模擬整個計算機系統。 有兩種不同類型的管理程序:裸機管理程序和託管管理程序。 讓我們快速看一下它們。

裸機管理程序

BMH 也可以稱為本機管理程序,它們直接在主機的硬件上運行,而不是在主機的操作系統中運行。 實際上,它們代替了主機的操作系統,調度和管理每個虛擬機的硬件使用,從而在進程中去掉了“中間人”(主機的操作系統)。

本機管理程序通常用於大型企業虛擬機,公司使用這些虛擬機為員工提供服務器資源。 Microsoft Azure 或 Amazon Web Services 是託管在此類架構上的 VM。 其他示例包括 KVM、Microsoft Hyper-V 和 VMware vSphere。

託管管理程序

託管管理程序在標準操作系統上運行——就像我們在機器上運行的任何其他應用程序一樣。 他們使用主機的操作系統來管理和分配資源。 這種類型的管理程序更適合需要在其機器上運行多個操作系統的個人用戶。

其中包括 Oracle VirtualBox、VMware Workstations、VMware Fusion、Parallels Desktop 等應用程序。 您可以在我們的文章中找到有關託管管理程序的更多詳細信息, 最佳虛擬機軟件.

為什麼要使用虛擬機?

現在您對虛擬機是什麼有了基本的了解,您可能會想到一些優秀的應用程序。 以下是人們使用虛擬機的一些主要原因。

1。 經濟有效

虛擬機在許多情況下都具有成本效益。 其中最突出的是企業界。 使用物理服務器為員工提供資源可能非常昂貴。 硬件不便宜,維護成本更高。

使用虛擬機作為企業服務器現在已經成為常態。 使用來自 MS Azure 等提供商的 VM,無需購買初始硬件,也無需維護費用。 這些虛擬機的設置、配置和使用時間只需一小時。 它們也可以在不使用時關閉,並且完全不產生任何費用。

在您的機器上使用虛擬機也可以節省大量資金。 如果您需要在多個操作系統或不同的硬件配置下工作,您可以
在一台主機上使用多個虛擬機——無需為每項任務購買單獨的計算機。

2. 可擴展和靈活

無論是企業服務器還是筆記本電腦上運行的虛擬機,虛擬機都是可擴展的。 可以輕鬆調整資源以滿足您的需求。 如果您需要更多內存或硬盤空間,只需進入管理程序並重新配置 VM 以獲得更多空間。 無需購買新硬件,即可快速完成流程。

3. 快速設置

可以快速設置新的 VM。 我遇到過需要設置新 VM 的情況,打電話給管理它們的同事,並在不到一個小時的時間內讓它們準備好使用。

4.災難恢復

如果您正在嘗試防止數據丟失並為災難恢復做準備,那麼虛擬機可能是一個了不起的工具。 它們易於備份,並且可以根據需要分佈在不同的位置。 如果像微軟或亞馬遜這樣的第三方託管虛擬機,它們將不在現場——這意味著如果你的辦公室被燒毀,你的數據是安全的。

5. 易於復制

大多數虛擬機管理程序允許您製作 VM 的副本或映像。 映像讓您可以輕鬆地在任何情況下啟動相同基礎 VM 的精確複製品。

在我工作的環境中,我們為每個開發人員提供了一個用於開發和測試的 VM。 這個過程允許我們使用所有需要的工具和軟件來配置圖像。 當我們有新的開發人員入職時,我們所要做的就是製作該圖像的副本,他們擁有開始工作所需的一切。

6. 非常適合開發/測試

使用虛擬機的最大優勢之一是它們是軟件開發和測試的完美工具。 VM 允許開發人員在一台機器上在多個平台和環境上進行開發。 如果該 VM 損壞或毀壞,則可以快速創建一個新 VM。

它們允許測試人員在每個測試週期都有一個乾淨的新環境。 我從事過一些項目,我們設置了自動測試腳本來創建一個新的虛擬機,安裝最新的軟件版本,運行所有必需的測試,然後在測試完成後刪除虛擬機。

虛擬機在產品測試和評論方面表現出色,就像我們在 TechFewer.com 上所做的那樣。 我可以在我的機器上運行的 VM 中安裝應用程序並對其進行測試,而不會弄亂我的主要環境。

當我完成測試時,我總是可以刪除虛擬機,然後在需要時創建一個新的。 即使我只有一台 Windows 機器,這個過程也允許我在多個平台上進行測試。

最後的話

如您所見,虛擬機是一種經濟高效的多功能工具,可用於許多應用程序。 我們不再需要購買、設置和維護昂貴的硬件來為測試人員、開發人員和其他人提供服務器訪問。 VM 使我們能夠靈活地隨時輕鬆快速地創建我們需要的操作系統、硬件和環境。