虛擬機器 (VM)

menu icon

虛擬機器 (VM)

虛擬機器 (VM) 簡介,這是用來建立虛擬化運算環境的技術,也是第一代雲端運算的基礎。

何謂虛擬機器 (VM)?

虛擬機器是實體電腦的虛擬呈現或模擬環境。它們通常稱為訪客,而用來執行的實體機器則稱為主機。

虛擬化可讓您在單一實體機器上建立多個虛擬機器,每個虛擬機器都有自己的作業系統 (OS) 和應用程式。虛擬機器無法與實體電腦直接互動。而是需要藉助一個叫做 Hypervisor 的輕量型軟體層,在虛擬機器和底層的實體硬體之間進行協調。Hypervisor 負責將實體運算資源(例如處理器、記憶體及儲存設備)配置給每個虛擬機器。它讓虛擬機器之間相互分開,這樣就不會互相干擾。

雖然此技術可能有許多不同名稱,包括虛擬伺服器、虛擬伺服器實例 (VSI) 和虛擬專用伺服器 (VPS),但本文直接將其稱為虛擬機器。

虛擬化的運作方式

在實體電腦或伺服器上(也稱為裸機伺服器)使用 Hypervisor 時,它容許實體電腦將其作業系統和應用程式與其硬體分開來。這樣就可以將自己劃分為數個獨立的「虛擬機器」。

然後,每個新的虛擬機器都可以獨立執行自己的作業系統和應用程式,同時還可以共享從 Hypervisor 管理的裸機伺服器的原始資源。這些資源包括記憶體、RAM、儲存設備等等。

以下影片說明虛擬化的基本概念 (5:20),並查看文章「虛擬化的 5 個優勢」:

Hypervisor 的作用就像是一位交通警察,指揮裸機的資源並配置給每個新的虛擬機器,以確保它們不會互相干擾。

Hypervisor 有兩種主要類型。

類型 1 Hypervisor 直接在實體硬體(通常是伺服器)上執行,以此取代作業系統。一般情況下,您會使用個別軟體產品在 Hypervisor 上建立與操作虛擬機器。有些管理工具(例如 VMware 的 vSphere)可讓您選取要在虛擬機器中安裝的訪客作業系統。

您可以使用一個虛擬機器作為範本,然後藉由複製它來建立新的虛擬機器。視您的需要而定,例如軟體測試、正式作業資料庫和開發環境,按需建立多個虛擬機器範本。

類型 2 Hypervisor 以應用程式的身分在主機作業系統中執行,而且通常以單一使用者桌面或筆記型電腦平台為目標。您可以透過類型 2 Hypervisor 手動建立虛擬機器,然後在其中安裝訪客作業系統。您可以使用 Hypervisor 將實體資源配置給虛擬機器,手動設定它可以使用的處理器核心和記憶體數量。視 Hypervisor 的功能而定,您還可以設定像 3D 圖形加速之類的選項。

如需 Hypervisor 的完整概觀,請參考「Hypervisor:完整指南」。

虛擬機器的優勢和好處

與傳統實體硬體相比,虛擬機器具備以下優勢:

  • 資源使用率和 ROI 提高:在單一實體電腦上執行多個虛擬機器,客戶想要執行其他作業系統時不需購買新的伺服器,進而可從已擁有的各種硬體獲取更多好處。
  • 規模擴充:您可以利用雲端運算,輕鬆部署同一個虛擬機器的多個副本,以便更充分地應付負載增加。
  • 可攜性:虛擬機器可以視需要在網路中的實體電腦之間重新定位。如此一來,您就可以將工作負載配置給具有備用運算能力的伺服器。虛擬機器甚至可以在內部部署與雲端環境之間移動,方便您運用在混合雲情境中,藉此在本身的資料中心和雲端服務供應商之間共用運算資源。
  • 靈活彈性:建立虛擬機器比在實體伺服器上安裝作業系統更快更簡單,因為您可以複製已安裝作業系統的虛擬機器。開發人員和軟體測試人員可以隨需應變建立新環境,用來處理新任務。
  • 安全性:與直接在硬體上執行作業系統相比,虛擬機器可透過多種方式強化安全性。虛擬機器是一個可透過外部程式來掃描惡意軟體的檔案。您可以隨時建立虛擬機器的完整快照,然後在虛擬機器感染惡意軟體時將它還原至該狀態,以便及時有效地回復。快速輕鬆建立虛擬機器的特性,可支援完全刪除受損的虛擬機器然後快速重建,藉此加速從惡意軟體感染中回復。

虛擬機器的使用案例

提供多種用途,適用於企業 IT 管理者和使用者。以下是一些選項:

  • 雲端運算:過去十幾年來,虛擬機器已成為雲端中的基本運算單元,可讓數十種不同類型的應用程式和工作負載順利執行與擴充。
  • 支援 DevOps:虛擬機器是支援企業開發人員的好方法,他們可以幫虛擬機器範本配置合適的設定,以供軟體開發和測試程序使用。他們可以為特定作業(例如靜態軟體測試)建立虛擬機器,包括在自動化開發工作流程中的這些步驟。這全都有助於簡化 DevOps 工具鏈
  • 測試新的作業系統:虛擬機器可讓您在桌面上測試新的作業系統,而且不會影響您的主要作業系統。
  • 調查惡意軟體:虛擬機器對惡意軟體研究人員來說很實用,因為他們經常需要用新機器來測試惡意程式。
  • 執行不相容的軟體:有些使用者可能偏好使用某種作業系統,但仍然需要使用只能在其他作業系統上執行的程式。其中一個好例子就是 Dragon 系列的語音聽寫軟體。其供應商 Nuance 已停止提供該產品的 macOS 版本。不過,執行以桌面為主的 Hypervisor(例如 VMware Fusion 或 Parallels)可讓您在虛擬機器中執行 Windows,方便您存取該版本的軟體。
  • 安全瀏覽:使用虛擬機器進行瀏覽,這樣可讓您安心造訪網站,不用擔心感染的問題。您可以對機器執行快照,然後在每次的瀏覽階段作業之後回復至該狀態。這是使用者可以利用類型 2 桌面 Hypervisor 來自行設定的某種內容。或者,管理者也可以提供位於伺服器上的暫時虛擬桌面。

虛擬機器的類型

本小節會介紹一些不同類型的虛擬機器:

  • Windows 虛擬機器
  • Android 虛擬機器
  • Mac 虛擬機器
  • iOS 虛擬機器
  • Java 虛擬機器
  • Python 虛擬機器
  • Linux 虛擬機器
  • VMware 虛擬機器
  • Ubuntu 虛擬機器

Windows 虛擬機器

大部分的 Hypervisor 都支援虛擬機器以訪客身分執行 Windows OS。Microsoft 的 Hyper-V Hypervisor 隨附於 Windows 作業系統。在進行安裝時,它會建立一個母項分割區,其中包含本身和主要的 Windows OS,兩者都會取得特許的硬體存取權。其他作業系統(包括 Windows 訪客)都在透過母項分割區與硬體進行通訊的子分割區中執行。

Android 虛擬機器

在行動裝置和連接家庭娛樂裝置的家用設備上很常見到 Google 的開放原始碼 Android OS。Android OS 只在這些裝置常見的 ARM 處理器架構上執行,但愛好者、Android 遊戲玩家或軟體開發人員可能會想要在 PC 上執行它。

這會面臨許多問題,因為 PC 在完全不同的 x86 處理器架構上執行,而硬體虛擬化 Hypervisor 只在虛擬機器和 CPU 之間傳遞指令。它不會幫使用不同指令集的處理器轉換指令。有人提出各種專案解決這個問題。

有些專案(例如 Shashlik 或 Genymotion)利用模擬器,透過軟體重建 ARM 架構。一個替代方案,即 Android-x86 專案,其可將 Android 移植到 x86 架構。您必須使用 VirtualBox 類型 2 Hypervisor,將 Android-x86 程式安裝為虛擬機器,這樣才能執行它。另一個替代方案是 Anbox,其可在主機 Linux OS 的核心上執行 Android 作業系統。

Mac 虛擬機器

Apple 僅容許其 macOS 系統在 Apple 硬體上執行,還在其一般使用者授權合約中禁止人們在非 Apple 硬體上以虛擬機器或其他形式執行它。您可以在 Mac 硬體上使用類型 2 Hypervisor,以 macOS 訪客身分建立虛擬機器。

iOS 虛擬機器

目前無法在虛擬機器中執行 iOS,因為 Apple 嚴格控制其 iOS 作業系統,且不容許它在 iOS 裝置以外的任何設備上執行。

最接近 iOS 虛擬機器的是隨 Xcode 整合開發環境出貨的 iPhone 模擬器,它在軟體中模擬整個 iPhone 系統。

Java 虛擬機器

Java 平台是針對使用 Java 軟體開發語言編寫的程式提供執行環境。Java 承諾提供「一次編寫,到處執行」功能。 這表示任何 Java 程式都可以在執行 Java 平台的任何硬體上執行。為了達到這個目的,Java 平台包含 Java 虛擬機器 (JVM)。

Java 程式包含位元組碼,這是專為 JVM 提供的指令。JVM 將此位元組碼編譯成機器碼,這是主機所使用的最下層語言。在某個運算平台的 Java 平台中,JVM 會根據處理器預期的機器碼,在另一個運算平台中建立不同的機器碼指令集。

因此,JVM 不會執行整個作業系統,也不會像其他虛擬機器那樣使用 Hypervisor。相對地,它會轉換應用程式層次的軟體程式,以在特定硬體上執行。

如需更多的 Java 相關資訊,請參考「Java:完整指南」。

Python 虛擬機器

如同 JVM,Python 虛擬機器不在 Hypervisor 上執行,也不包含訪客作業系統。它是一種可讓使用 Python 程式語言編寫的程式在各種 CPU 上執行的工具。

與 Java 類似,Python 將它的程式轉換成名叫位元組碼的中繼格式,並將它儲存在執行就緒的檔案中。在程式執行時,Python 虛擬機器會將位元組碼轉換成機器碼以利快速執行。

Linux 虛擬機器

Linux 是一種在許多虛擬機器中常見的訪客作業系統。它也是用來執行虛擬機器的常見主機作業系統,它甚至有自己的 Hypervisor,名叫以核心為基礎的虛擬機器 (KVM)。主流 Linux 核心包含自 2007 年以來的 KVM。雖然它是開放原始碼 Red Hat 現在擁有開發 KVM 的原始公司。

VMware 虛擬機器

VMware 是一家早期虛擬化軟體供應商,現在是提供類型 1 與類型 2 Hypervisor 以及虛擬機器軟體給企業客戶的熱門供應商。

VMware:完整指南」針對 VMware 的所有相關一切提供綜合性概觀。

Ubuntu 虛擬機器

Ubuntu 是一種由 Canonical 公司生產的 Linux 發行套件。它提供桌面和伺服器版本,這兩種版本都可以安裝為虛擬機器。Ubuntu 可以在 Microsoft Hyper-V 上部署為訪客作業系統。它提供可在 Hyper-V「加強型階段作業模式」中運作良好的 Ubuntu Desktop 優化版本,以在 Windows 主機和 Ubuntu 虛擬機器之間提供緊密整合。它包括支援剪貼簿整合、動態桌面大小調整、共用資料夾,以及在主機和訪客桌面之間移動滑鼠。

多租戶與單租用戶比較

在雲端運算中,虛擬機器通常會以單租戶和多租戶變異提供。

在公有雲(或多租戶)中,虛擬機器是其中有多重使用者共用一般實體基礎架構的虛擬機器。這是最符合成本效益且可擴充的虛擬機器佈建方法,但是欠缺安全嚴密組織或法規可能偏好的隔離特性。

單租戶虛擬機器的兩種模式分別是專用主機和專用實例。

專用主機涉及租用整個實體機器,以及對該機器、其硬體與其中安裝的任何軟體保持持續存取與控制。此模式提供最大的硬體彈性與透明、工作負載控制與放置,同時也為特定自攜授權軟體提供一些優勢。

專用實例提供同樣的單租戶隔離,以及相同的工作負載放置控制,但它未與特定的實體機器繫結。因此,舉例來說,如果專用實例重新啟動,它可能會在新的實體機器上啟動 - 個別帳號專用的機器,只是新機器可能位在不同的實體位置。

虛擬機器的計價模式

在雲端中,最常見的虛擬機器計價模式是用多少付多少(以小時或秒為單位)、暫時/現貨實例、保留實例及專用主機。

  • 用多少付多少:在用多少付多少模式中沒有虛擬機器期初成本,使用者只需要根據使用量付費,通常按小時或秒數計費,視供應商和實例類型而定。
  • 暫時/現貨實例:虛擬機器的最低成本模式,暫時和現貨實例充分利用供應商的過剩容量,只是供應商隨時可以收回。它們通常適用於不需要永遠在線或使用其他模式會成本太貴的應用程式。
  • 保留實例:與用多少付多少模式不同,保留實例具備明確承諾期限,通常一到三年之間,同時也提供大幅折扣。
  • 專用主機:在專用主機情境中,使用者通常會承擔總體實體伺服器的成本,並以供應商提供專用伺服器的增量來計費,通常是每小時或每月。

虛擬機器與裸機伺服器比較

選擇使用虛擬機器而不是實體機器(也稱為裸機伺服器),比較不是因為功能競爭,而是因為知道需要什麼以及何時需要。

裸機伺服器攸關原始硬體、電源和隔離。它們是單租戶的實體伺服器,完全沒有 Hypervisor 週期(虛擬化軟體),而且完全供單一客戶專用。

優先考慮效能和隔離(例如資料密集應用程式與管制法規)的工作負載通常最適合裸機伺服器,尤其是持續部署一段期間時。

電子商務、ERP、CRM、SCM 及金融服務應用程式只是適合裸機伺服器的部分工作負載。

因此,什麼時候您會選擇使用 Hypervisor 來製作虛擬機器而不是採用裸機伺服器?當您的工作負載需要最大的靈活彈性和可擴充性時。

虛擬機器可輕鬆地提高伺服器容量並增加使用率,因此很適合用來將資料從某個虛擬機器移到另一個虛擬機器、重新調整資料集的大小,以及分割動態工作負載。

虛擬機器與儲存器比較

認識儲存器最簡單的方法就是瞭解它與傳統虛擬機器 (VM) 之間的不同。在傳統的虛擬化(無論是在內部部署還是在雲端)中,都會使用 Hypervisor 來將實體硬體虛擬化。然後每個虛擬機器都會包含訪客作業系統、執行作業系統所需硬體的虛擬副本,以及應用程式與其相關聯的程式庫和相依關係。

儲存器不是將基礎硬體虛擬化,而是將作業系統(通常是 Linux)虛擬化,因此每個個別儲存器都 包含應用程式以及其程式庫和相依關係。缺少訪客作業系統就是儲存器為何如此輕量從而快速可攜的原因。

儲存器與用來管理它們的協調引擎 Kubernetes,很適合現代、雲端原生微服務架構。雖然儲存器多半與無狀態服務相關聯,但它同樣也可以用於有狀態的服務。

儲存器在混合雲情境中也變得更常見,因為它們可以跨筆記型電腦、雲端和傳統的內部部署 IT 一致地執行。

部落格文章「儲存器與虛擬機器的比較:有何差別?」提供進一步說明。

在以下影片中,Sai Vennam 分解儲存器化的基本概念,以及儲存器化與使用虛擬機器的比較 (8:09):

如何選擇虛擬機器供應商

在虛擬機器和雲端供應商之間做選擇未必很難,只要您知道目標是什麼。虛擬機器需要配合您的工作負載需求和業務預算,當然,還有其他因素在您與您的虛擬化環境之間扮演關鍵角色。以下是選擇虛擬機器服務供應商時要考慮的 10 件事。

  • 可靠支援 - 確定可透過電話、電子郵件和會談獲得全天候客戶支援。您希望透過電話聯繫人工客服,協助您應對關鍵 IT 狀況。另外也很重要的是,注意哪些雲端供應商提供額外服務,以便您獲得更多的實際支援。
  • 管理選項 - 雲端供應商是否提供未管理和管理解決方案?如果您不清楚起起伏伏的虛擬化技術,請考慮一家能夠負責設定、維護與持續監視效能表現的供應商。
  • 軟體整合 - 您的虛擬機器環境是否也與其他軟體有效協同合作?作業系統、第三方軟體、開放原始碼技術和應用程式可幫助您在業務運作中提供更多的解決方案。您會想要一個可支援業界最常用的軟體供應商並與其建立強大夥伴關係的虛擬機器供應商。附註:遠離供應商綁定。
  • 高品質的網路與基礎架構 - 您要在其中執行新虛擬機器的基礎架構有多新?這包括可靠的裸機伺服器、現代資料中心,以及網路骨幹。雲端供應商應該要能夠使用最先進的硬體和高速網路技術來履行交易。
  • 位置很重要 - 資料距離使用者越近,在延遲、安全、及時提供服務等方面就越不容易出現麻煩。由分散各地的資料中心和 POP 位置組成良好的全球網路,這對於讓您隨時隨地存取資料來說很重要。
  • 備份及回復 - 您的雲端供應商是否備妥任何計劃,可在面臨意外事件時讓您的虛擬機器保持運作?他們是否還能為您的虛擬化環境提供附加備份及備援選項?永續作業是您應該高度重視的問題。
  • 可擴充性 - 您可以多快多輕鬆地加速、減速、保留、暫停與更新您的虛擬機器?說到虛擬機器可擴充性,您最想聽到的是「隨需應變」。
  • 各種 CPU 配置 - 配置越多越好。並非每種虛擬機器配置都能在每一季使用期間配合每種工作負載。請務必尋找一家能夠針對單租戶和多租戶需求提供各種配置套件的虛擬機器供應商。
  • 安全層 - 再三向您的供應商確認安全層相關問題。您的商業資料是最高形式的貨幣,尤其在處理機密客戶資訊時。私有網路線路、聯合資料中心選項、內建加密特性,以及符合法規遵循標準,這些對於保護您最寶貴的資產來說很重要。
  • 無縫移轉支援 - 您的 IT 優先順序始終都在變化。這一點眾所皆知。任何的虛擬機器供應商應該都要能夠協助您在混合式、內部部署和外部部署環境之間直接遷移。尋找完整資料汲取、透過網路和應用程式主導的移轉選項。

虛擬機器與 IBM Cloud

IBM Cloud 可讓您根據不同的技術和計價選項來配置與執行您自己的 VM。您可以根據所需的運算能力、記憶體、本端儲存設備及 GPU 功能,為虛擬機器選擇技術設定檔,並為您的特定工作負載量身打造系統。您也可以使用 IBM Cloud for VMware Solutions 來管理 VMware VM。

您可以選擇公有或專用節點,以滿足您的安全與合規需求。私有的單租戶服務可以放在您從遍佈全球 19 個國家/地區的 60 多個 IBM 資料中心挑選出來的專用主機上。

從全套的部署選項做選擇,以滿足您的計價需求。您事先針對設定時間保留的公有虛擬機器實例,它會比非保留的系統便宜。或者,您可以根據現貨市場計價來選擇 VM,以處理暫時工作負載。

IBM Cloud 還可讓您混合與配對虛擬伺服器和裸機資源,以滿足您的工作負載需求。

若要進一步瞭解,請造訪 IBM Cloud 頁面並註冊 IBM ID