虛擬機器會利用虛擬化技術建立虛擬硬體,或是可在實體電腦上操作的電腦虛擬版本。執行 VM 的實體機器稱為主體機器,在主體機器上執行的 VM 則稱為客體機器。
管理程序是一種輕量級軟體層,用於劃分主體機器的實體硬體資源 (如 CPU、GPU、TPU、記憶體 (RAM)、儲存空間和網路)。管理程序會將這些資源分配給各個客體 VM,這樣一來,就能在單一「主體」機器上,同時執行多個彼此隔離的「客體」作業系統。舉例來說,Google Compute Engine 使用以 KVM 為基礎的管理程序,有效管理資源並分配給您所建立的虛擬機器。
每個客體 VM 都會在主體的獨立分區上執行,與其他客體完全隔開。您可以在單一主體機器 (通常是伺服器) 上託管多個 VM。管理程序會將主體機器的實體資源抽象化為集區,進而提升整體效率和靈活性。這些資源可根據客體 VM 的特定需求進行佈建和動態分配。
虛擬機器通常分成兩種類型:程序 VM 和系統 VM。
程序 VM 又稱為應用程式虛擬機器或代管執行階段環境 (MRE),這類 VM 會在應用程式或單一程序執行時建立 OS 虛擬環境,並在您結束執行時刪除。程序 VM 能讓您建立不受平台限制的環境,讓應用程式或程序可在任何平台上用相同方式執行。Cloud Run 上的 Node.js 伺服器就是一個具體範例,Cloud Run 提供全代管環境,無論基礎作業系統為何,應用程式都能在容器中執行。
系統 VM (有時稱為硬體虛擬機器) 會模擬完整的作業系統,讓多個 OS 環境在同一部機器上執行。一般而言,只要提到「虛擬機器」,大家就會想到這種 VM 類型。系統 VM 可以執行自己的 OS 和應用程式,管理程序則會監控並將實體主體機器的資源分配給不同的系統 VM。
最近,您可能聽過有人討論雲端環境或雲端 VM 中的虛擬機器。Cloud 虛擬機器就是在雲端環境中虛擬伺服器上執行的虛擬機器。許多雲端服務供應商都能讓您在自己的基礎架構上建立及執行雲端虛擬機器,除了使用主體機器之外,還能利用記憶體和網路儲存空間等其他軟體定義服務。這些雲端 VM 通常會依資源最佳化程度分類:
虛擬機器是實體電腦的軟體模擬版本,而虛擬桌面是使用者介面,可讓使用者存取託管於遠端伺服器的桌面環境。兩者的主要差異在於,虛擬機器會模擬整部電腦,而虛擬桌面則提供桌面環境的遠端存取權。
虛擬機器通常很安全,因為主機系統和虛擬機器之間彼此隔離,可降低惡意軟體散播的風險。不過,這類工具的安全性取決於正確的設定、定期更新和適當的資安做法。如未妥善管理,虛擬機器仍可能遭受攻擊,因此務必遵循安全性最佳做法。
是的,虛擬機器會占用主機系統的儲存空間。儲存空間使用量取決於虛擬硬碟的大小、作業系統和安裝的應用程式。此外,虛擬機器可設定為隨需動態分配儲存空間,或使用固定儲存空間量。
雖然虛擬機器和容器都可用來隔離應用程式,但兩者做法截然不同。虛擬機器會將整個實體硬體堆疊 (包括作業系統) 虛擬化,這讓每個 VM 成為獨立的隔離環境,但也代表 VM 往往較大,會占用更多資源。
相較之下,容器只會虛擬化 OS 層,因此更輕量。容器不會將完整作業系統與每個應用程式搭配,而是共用主機的 OS 核心。因此,容器使用的資源比 VM 少,啟動速度也較快,同時仍可維持隔離狀態。這些特性讓容器非常適合用來開發新應用程式。過去 10 年開發的許多應用程式都是為容器編寫,因此電子商務、後勤和 AI 等許多工作負載都是「容器原生」。
VM 是虛擬化運算資源的基本構成要素,在雲端或地端部署環境建立任何應用程式、工具或環境時,VM 也是這整個程序中的主角。
以下列舉幾個企業使用虛擬機器的常見方式:
多部實體機器可重新設定為 VM,並在主機上與其他 VM 一併執行,減少資源散亂的情況。VM 經過時間考驗,證明能執行效能要求最高的應用程式。
中央 IT 部門可以為各業務單位和職務領域佈建及管理 VM,加快資源存取速度,同時提升企業可見度。
VM 可做為測試和開發作業專用的獨立環境,在此環境中一樣有完整的功能可以使用,但不會對周圍的基礎架構造成影響。
VM 可輕鬆關閉/開啟、遷移及調整,因此能提供最大的開發與部署彈性。
VM 的靈活彈性和可攜性是協助您加速完成遷移計畫的重要關鍵。
使用 VM 在雲端環境中複製系統,除了能多添一層安全保障之外,也能讓您更加安心有把握。此外,雲端環境也可以持續更新。
VM 可提供基礎,讓您建立雲端環境並與地端部署環境一起搭配使用,您可以享有充分的靈活彈性,不需要捨棄舊版系統。
VM 可讓您在單一實體機器上執行不同的作業系統。舉例來說,即使主要開發環境使用 Linux,您也能在 Google Cloud 的 Compute Engine 上執行 Windows Server VM。Google Cloud 提供多種 OS 映像檔,可滿足各種需求。
使用 VM 在雲端環境中複製系統,除了能多添一層安全保障之外,也能讓您更加安心有把握。此外,雲端環境也可以持續更新。
虛擬機器具備許多優勢,選用雲端 VM 更能為您帶來以下好處:
擴充性
雲端式 VM 可讓您輕鬆調度應用程式資源,提升可用性和效能。您可以根據需求提高容量,無需購買實體伺服器。
可攜性
虛擬機器是單一軟體套件,內含硬體資源、作業系統和所有應用程式。您可以輕鬆將 VM 移至另一部伺服器,也可以從地端部署硬體移至雲端環境。
足跡和成本減少
VM 可讓您透過單一機器執行多個虛擬環境,降低實體基礎架構足跡、電費、以及維護和管理的成本。
佈建速度更快
您可以輕鬆複製 VM,讓企業快速啟動相同的全新環境,不必從頭開始設定。
可靠性
虛擬機器及其元件會以虛擬方式獨立存在,與其他訪客 VM 區隔開來。VM 當機時,其他訪客 VM 仍會繼續運作,不會影響實體主體機器。
安全性更高
虛擬機器可讓您執行多個作業系統,不會影響主機作業系統。VM 可讓您建立安全的虛擬環境,用來測試應用程式,甚至研究安全漏洞,都不會對主體機器造成高風險。Google Cloud 的 Confidential VM 等現代 VM 產品,可透過硬體式受信任的執行環境 (TEE) 提供「使用階段加密」功能,針對記憶體中正在處理的資料進行加密。
不過,執行 VM 時需要考量一些事項。虛擬機器最大的潛在挑戰之一,就是主體機器不夠強大時,可能會影響多個作業系統和管理程序層的效能。此外,虛擬硬體的效率可能比不上實體機器的實體硬體。最後,大多數雲端服務供應商提供的虛擬機器會搭載固定的 CPU 和記憶體,導致資源使用效率不彰。
選擇使用雲端服務供應商提供的 VM 能解決上述許多問題。相較於傳統 VM,Cloud VM 具備許多優勢,可讓組織存取整個資料中心中所有電腦的運算能力,而非單一電腦的運算能力。此外,Google Compute Engine 提供的虛擬機器大小,包含自訂機型。您可以根據工作負載需求,自訂 CPU 與記憶體的比例,不必從預先定義機型中選擇,避免資源過剩,只為實際使用的資源付費。這種針對工作負載調整的做法可減少資源浪費,大幅降低雲端支出,特別是從地端部署環境或其他雲端服務供應商遷移至 Google Cloud 時。Compute Engine 也為客戶提供適合特定用途的虛擬機器類型,例如企業工作負載、需要大量記憶體容量,或是機器學習或高效能運算等高需求工作負載。
Google Cloud 也提供受防護的虛擬機器,讓 VM 執行個體擁有更高的安全性和可驗證的完整性。Google Cloud 受防護的虛擬機器採用先進的平台安全性功能和控管機制,可保護企業工作負載不受遠端攻擊、提權和惡意內部攻擊等各種威脅。
對於某些應用程式,開發人員可能會選擇完全略過傳統 VM。容器自動化調度管理 (Google Kubernetes Engine - GKE) 和無伺服器運算 (Cloud Run) 等現代部署模型是強大的替代方案,適用於特定用途,可讓團隊略過 VM 作業系統管理、加快部署速度,並通常能節省更多成本。
如果您準備好開始使用虛擬機器,Google Cloud 的 Compute Engine 可提供這項服務。Compute Engine 提供在 Google 基礎架構上託管的 VM 執行個體,不僅富有彈性,還可自行管理。以下概要說明如何在 Compute Engine 建立並連線至 VM:
您需要已啟用計費功能的 Google Cloud 專案,新使用者可申請免費試用。
建立及管理 VM 時,必須使用這個 API。您可以在 Google Cloud 控制台或使用 gcloud CLI 啟用這項功能。
您可以使用 Google Cloud 控制台或 gcloud CLI 建立 VM 執行個體。
SSH (Linux VM):透過 SSH 安全地連線至 Linux 執行個體。
使用 gcloud CLI:gcloud compute ssh 指令可讓您從本機終端機輕鬆連線
使用 OS 登入 (建議做法):如要提升安全性並簡化 SSH 金鑰管理作業,特別是管理多個 VM 或團隊時,建議啟用 OS 登入功能。OS 登入功能整合了 SSH 存取控管機制與 Google Cloud IAM。啟用 OS 登入後,SSH 金鑰會連結至您的 Google 身分,存取權則由 IAM 權限管理,而不是透過將金鑰分配至執行個體中繼資料的方式。
如要啟用 OS 登入功能,請在專案或個別執行個體中,將 enable-oslogin 中繼資料鍵設為 TRUE。

解決方案
解決方案