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