什么是虛擬機?
虛擬機(VM)是一個模擬版的物理計算機,它在虛擬環境中模擬各種功能并分配資源。
簡言之,你可以在你當前的操作系統中運行另一個操作系統,就像運行媒體播放器或網絡瀏覽器一樣。
在 Manjaro Linux 里 VirtualBox 中運行 Windows 10
你可以在 VM 中執行與裸機(例如你的筆記本電腦或個人電腦)相同的操作,例如連接到網絡、下載軟件、更新操作系統等等。
當然,根據使用場景,VM 的體驗可能會與實體計算機有所不同。
讓我們來探索虛擬機,它們的應用場景,以及它們的工作原理。
虛擬機:起源
虛擬機是最重要的基于軟件的創新之一。它的起源可以追溯到 1966 年的 IBM CP-40 和 CP-67 虛擬機操作系統,那時候人們在研究和測試虛擬內存和資源的概念。
快進到我們發表此文的 2023 年,虛擬機已經無處不在,涵蓋從個人電腦,到大型企業,再到小型企業。每個人以某種或其他方式都在使用虛擬機。
考慮到所有這些,顯然,虛擬機非常有用。但是,它是如何工作的,我們具體用它來做什么?
??
- 裸機 = 實體的物理電腦,例如你的 PC 或筆記本電腦
- 宿主操作系統 = 安裝在你實體電腦上的操作系統
- 客戶操作系統 = 在虛擬機內運行的操作系統
- 虛擬機(VM)= 是虛擬化應用的通用術語
虛擬機如何運作
理解虛擬化的概念會有助于你弄清楚虛擬機是如何運作的。
回顧我們在一篇文章中的描述:
“虛擬化為你提供了計算機硬件的抽象概念,以便你創建虛擬機(VM)、網絡、存儲等。”
虛擬化允許用戶在虛擬環境中利用物理系統的資源。這使得一個進程可以單獨地使用資源,而不會影響物理計算機。
而虛擬機就是運用這一能力的過程,在此你會得到以虛擬磁盤、內存,及其他配置文件形式的虛擬資源,讓你能在其上運行操作系統。
你或許已經熟悉一些能幫助你創建這些虛擬機的 專為 Linux 的虛擬化軟件。
為了詳細展示虛擬機和物理計算機之間的技術差異,這里提供一張圖幫助你理解:
我們為什么需要使用虛擬機?
虛擬機已經成為一種多功能的概念,對于幾乎每一個小任務都十分實用,這也是你應該 在虛擬機中運行 Linux 的其中一個理由。
不僅對個人用戶有幫助,虛擬機在云計算的領域中也起著重要的作用,而云計算是構成互聯網必不可少的一部分。
下面是虛擬機能夠幫助你完成的一些任務:
- 軟件測試
- 操作系統測試
- 為臨時的網絡瀏覽會話增強你的在線隱私
- 在不影響物理計算機的情況下進行網絡安全研究
- 利用虛擬機作為服務器,使同一硬件上可以托管更多的虛擬機,(從而讓硬件資源使用更加高效)
- 各種開發活動,擁有了更強大的遷移、復制等功能
- 利用虛擬機在云中復制系統
因此,虛擬機的隔離能力使我們能采用它進行測試和開發,也使其成為服務器可擴展性和靈活性的核心。
建議閱讀 ??
無論你是學生、專業人員,還是企業,你都會發現虛擬機在某個時間點會發揮出重要的作用。
虛擬機消耗系統資源嗎?
當你創建一個虛擬機在其中運行另一個操作系統時,你會為它分配一些系統資源,主要包括:
- 處理器:只有當在虛擬機中運行操作系統時才消耗
- 內存:只有當在虛擬機中運行操作系統時才消耗
- 磁盤空間:創建虛擬機時預留,無論虛擬機是否運行,都會占據一定的空間。
有些人認為處理器和內存會一直被虛擬機占用,這并不正確。它們只在虛擬機運行操作系統時才會被使用。
然而,無論虛擬機是否在運行,磁盤空間始終會被占用。
使一切成為可能的虛擬化類型
如果你對能夠幫助創建虛擬機的虛擬化概念感興趣,那么我將列舉并簡要解釋所有的不同類型。
管理程序Hypervisor 管理著硬件,并將系統資源從虛擬環境中隔離出來。它在技術上被標記為 “虛擬機監視器Virtual Machine Monitor(VMM)”。
而管理程序就是那個能讓我們創建和運行虛擬機的軟件。
管理程序有兩種類型:
- 一級管理程序 :它直接連接到物理機,用于管理虛擬機的資源。一個很好的例子就是 KVM,它直接集成在 Linux 系統里。
- 二級管理程序 :它存在于操作系統上,在操作系統上運行,讓你能夠管理虛擬機資源等等。例如 VirtualBox。
雖然管理程序使虛擬化成為可能,但是各種虛擬化類型則能使你在使用虛擬機時帶來更多便利和功能。
一些相關的類型包括:
- 存儲虛擬化 :這能通過將可用的磁盤空間劃分為小塊,以被虛擬機使用,從而創建虛擬磁盤。
- 網絡虛擬化 :允許物理網絡連接通過虛擬網絡(或者適配器)路由到虛擬機。
- 桌面虛擬化 :通過該方式,你可以同時向多臺物理設備部署多個虛擬桌面環境。可以從一個中心點配置和管理所有虛擬桌面。
為了深入了解所有的技術細節,我建議你查閱 AWS 關于虛擬化的文檔。
虛擬機的優勢
雖然你已經通過其使用案例了解到了一些虛擬機帶給你的好處,但是我還是想再補充一些你需要知道的要點:
- 虛擬機能夠讓你充分地利用硬件資源,而不影響宿主機
- 有了虛擬機,你可以自由地進行測試或者做任何你想做的事情。無論是一個極老的應用,或是一個有風險的軟件,你都可以完全依賴虛擬機來完成一切,并且不會對你宿主機產生影響
- 你可以在一個地方運行多個操作系統,而不需要面對雙啟動或增加額外的物理驅動器來使用其它操作系統的麻煩。這樣可以幫你節省成本,時間,同時避免管理的困擾
- 有了虛擬機,你可以在不需增加任何硬件的情況下快速地克隆你的配置。
虛擬機的劣勢
雖然虛擬機在許多場景中都非常有幫助,但是它也有可能帶來什么不利影響嗎?
嗯,實際上,使用虛擬機并沒有直接的缺點,但是你仍然需要對一些虛擬機可能帶來的影響持謹慎態度:
- 盡管虛擬機被認為能夠有效地利用資源,但是如果你不監控它們或者粗心大意地運行多個虛擬機,它們還是有可能會耗盡系統的資源
- 虛擬機永遠無法替代裸機的體驗和性能。無論宿主機有多么強大,虛擬機的運行速度總是比你在物理計算機上預期的要慢
- 虛擬機雖然與宿主機隔離,但你必須要注意文件共享可能會將惡意軟件暴露給你的宿主機系統
虛擬機的利用廣泛
虛擬機的概念讓許多事情變得可能。
如果沒有虛擬機,你認為云計算行業會如何發展?如果每次嘗試不同的操作系統都需要重新安裝,這將帶來多大的不方便?
無論是哪種形式,每個電腦用戶或服務器用戶都需要虛擬機。你對虛擬機有什么看法呢?你會如何定義它?