跳至主要内容

Virtual Machine

What?​

Virtual Machine 是一種虛擬化技術,用來模擬一個完整的計算機系統。它允許使用者在一台實體機器上運行多個虛擬環境,每個環境都像是一台獨立的電腦,擁有自己的作業系統、應用程式和資源。

簡單來說, Virtual Machine 就像是一台「虛擬的電腦」,可以在你的實體硬體之上模擬出多台獨立的電腦。舉例來說,如果你需要在同一台開發用的筆記型電腦上,同時測試不同版本的 Windows 和 Linux, Virtual Machine 就變得非常有用。


Who?​

  1. 開發者(Developers)
    開發階段時需要測試應用程式在不同作業系統上的相容性,或快速建立隔離的測試環境。

  2. IT 管理員(System Administrators)
    用於伺服器整合,將多個伺服器轉換成虛擬化主機以減少硬體資源成本。

  3. 安全工程師(Security Engineers)
    創建沙盒環境,用於分析惡意軟體或執行高風險操作。

  4. 普通使用者(End Users)
    想要在自己的電腦上運行特定作業系統,例如在 macOS 上安裝 Windows。


When?​

  1. 當你需要測試跨平台應用程式。
  2. 當你要部署多個伺服器,但希望降低硬體成本。
  3. 當你需要隔離某些高風險操作,例如執行未經檢查的程式碼。
  4. 當你想要回到某個特定的系統狀態(利用 VM 快照功能)。

例如:假設你是一名開發者,需要在 Linux 環境下進行 API 測試,但你的筆記型電腦是 Windows 系統,這時就可以快速啟動一台 Linux 的 Virtual Machine 來進行操作。


Where?​

  1. 本地端(Local Environment)

    • 例如安裝在你的筆記型電腦上的 VirtualBox 或 VMware Workstation。
  2. 雲端平台(Cloud Environment)

    • 例如 AWS EC2 或 Google Cloud Compute Engine 中提供的 VM 實例。
  3. 資料中心(Data Center)

    • 在大型企業內部運作,用於伺服器整合與資源管理。

Why?​

  1. 資源有效利用: 一台實體主機可以同時運行多台 VM,避免硬體閒置浪費。

  2. 隔離性: 每台 VM 都是獨立運作,不會干涉其他 VM 或宿主系統。

  3. 可移植性: VM 可以打包並移動到其他設備或雲平台上,不受硬體限制。

  4. 方便恢復: 利用快照功能,可以輕鬆回到某個特定狀態,例如測試前狀態。

舉例而言,如果某應用程式意外崩潰,只需恢復快照即可,不必重新安裝整套系統。


How?​

🛠️ 建立階段​

建立一台新的 Virtual Machine 的基本流程如下:

  1. 選擇虛擬化工具,例如 VirtualBox 或 VMware Workstation。
  2. 安裝並啟動工具後,新建一個 VM 實例。
  3. 配置基礎設定,包括:
    • 分配 CPU、RAM 和硬碟空間等資源。
  4. 選擇安裝作業系統所需的 ISO 檔案(如 Ubuntu.iso)。
  5. 啟動 VM 並完成 OS 安裝流程,就像正常安裝作業系統那樣操作即可。

🔍 查詢階段​

當 VM 已建立後,可進行以下操作來查詢其狀態或執行命令:

  1. 使用虛擬化工具提供的介面檢查:

    • CPU 使用率
    • 網路流量
    • 磁碟 IO 等資訊
  2. 在客戶端 OS 中執行命令,如:

# 查詢 Linux 系統內部資訊
top # 查看 CPU 與 RAM 使用率
df -h # 查看磁碟空間
  1. 若是雲端服務中的 VM,可透過平台 API 查詢其詳細狀況,例如:
# AWS CLI 查詢 EC2 實例狀態
aws ec2 describe-instances --instance-ids i-0123456789abcdef0

補充說明​

🔧 關鍵技術工具​

工具名稱功能特色適用場景
VirtualBox免費開源虛擬化工具個人桌面端
VMware Workstation Pro商業級桌面虛擬化高效能需求
Hyper-V微軟內建虛擬化解決方案Windows Server 平台
KVMLinux 原生虛擬化技術資料中心、大規模部署
AWS EC2雲端提供的 VM 實例雲端計算

📌 範例比較​

以下比較本地與雲端部署方式:

項目本地 VirtualBox雲端 AWS EC2
成本僅需硬體支出按使用量計費
資源調度手動配置自動調整
擴展性有限,由本地硬碟與 RAM 限制高度可調整

🧠 延伸/常見誤解​

1️⃣ 誤解:「VM 是完全獨立於宿主機。」
澄清:VM 雖然具有隔離性,但仍依賴宿主機提供物理資源,因此宿主機效能會影響所有 VM 的表現。

2️⃣ 誤解:「VM 和 Docker 是同樣技術。」
澄清:VM 是完整模擬一個 OS,而 Docker 是基於容器技術,共享宿主 OS 核心資源,更輕量但隔離度較低。