伺服器租用與託管

裸金屬伺服器與虛擬機器的區別:效能、隔離與許可證六維對比

裸金屬伺服器是整台物理機歸你獨佔,只是像雲主機一樣線上下單、分鐘級交付;虛擬機器是 hypervisor 從一台宿主機上切出來的一份。沒有這層 hypervisor,裸金屬沒有虛擬化損耗、沒有鄰居爭搶、能按真實物理核買許可證、能自己再裝虛擬化,代價是彈性差、起步規格大。

作者 頂聯產品團隊發布於 8 分鐘閱讀

裸金屬伺服器與虛擬機器的區別,核心在一層軟體:hypervisor。虛擬機器(雲主機、VPS)是 hypervisor 在一台宿主機上切出的一份資源,CPU、記憶體、磁碟、網路卡都經過虛擬化層轉發;裸金屬伺服器(Bare Metal)是整台物理機交給你一個人用,作業系統直接跑在硬體上,只是像雲主機一樣在控制檯下單、自動開通、按小時或按月計費。有沒有這層 hypervisor,決定了下面六個維度的全部差別,先用一張表總覽,再逐項展開。

維度 裸金屬伺服器 虛擬機器
效能損耗 無虛擬化層,IO 延遲與記憶體存取接近硬體本身 計算型負載損耗小,磁碟、網路 IO 和記憶體密集型負載損耗明顯
資源爭搶 單租戶,整機資源獨佔 多租戶共享宿主機,CPU、快取、記憶體頻寬、磁碟 IO 都可能被鄰居影響
許可證 按真實物理核授權,核數自己選 按 vCPU 授權,或被要求按整台宿主機甚至叢集的物理核授權
巢狀虛擬化 可以直接裝 KVM、ESXi、Hyper-V 做自己的虛擬化平台 需要雲廠商開放巢狀虛擬化,效能損失大
彈性 開通分鐘級到小時級,規格固定,不能熱遷移 秒級到分鐘級建立,可改規格、快照、熱遷移、自動伸縮
價格 單位算力更便宜,但按整機起步 可以買很小的規格,單位算力更貴

效能損耗:CPU 差得少,IO 和記憶體差得多

有了 Intel VT-x、AMD-V 這類硬體輔助虛擬化之後,純計算負載在虛擬機器裡的損耗通常只有幾個百分點,跑編譯、轉碼一類任務時兩者差別不大。差別集中在三處:

  • 磁碟與網路 IO:虛擬機器的每次 IO 都要經過 virtio 這類半虛擬化驅動或模擬裝置,再由宿主機轉發;雲盤還要再過一層網路。表現為單次 IO 延遲更高、小塊隨機讀寫的 IOPS 上限更低。SR-IOV 直通網路卡能緩解網路部分,但不是所有規格都提供。
  • 記憶體存取:虛擬機器用兩級頁表(Intel EPT / AMD NPT)把客戶機實體位址再對映一次,TLB 未命中時的代價比物理機高;虛擬機器看到的 NUMA 拓撲也可能和真實硬體不一致,資料庫按 NUMA 節點綁記憶體的最佳化會失效。裸金屬能開大頁、綁 NUMA、關閉超執行緒,這些對資料庫、記憶體資料庫和搜尋引擎的效果直接可見。
  • 時延抖動:宿主機排程、中斷轉發會給虛擬機器帶來微秒級的不確定延遲。網頁應用感覺不到,撮合交易、即時音影片、高頻寫入的時序資料庫會在尾延遲(P99)上看到差別。

一個判斷方法:業務瓶頸在 CPU 算力,虛擬機器夠用;瓶頸在磁碟隨機 IO、記憶體頻寬或尾延遲,裸金屬的收益才明顯。

資源爭搶:鄰居問題只有裸金屬能徹底解決

虛擬機器的 vCPU 一般對應宿主機的一個超執行緒,而不是一個物理核。雲廠商把一台宿主機上的 vCPU 賣給多個租戶,只要總量不超過物理執行緒數就不算超售;但即使不超售,同一個物理核的兩個超執行緒、同一顆 CPU 的 L3 快取和記憶體頻寬、同一塊本地盤的 IO 佇列,仍然是大家共用的。鄰居跑滿了記憶體頻寬,你的 vCPU 使用率看起來不高,程式卻變慢了,監控裡什麼都看不出來。

cgroup 和 hypervisor 能限制的是 CPU 時間片、記憶體容量和磁碟頻寬上限;L3 快取和記憶體頻寬雖然有 Intel RDT 這類劃分技術,但公有云一般不會為每個租戶單獨劃分。裸金屬是單租戶,這些資源全是你的,效能可以復現:今天壓測的結果,下個月不會因為換了鄰居而變化。

另一個和隔離相關的點是安全緩解:Spectre、Meltdown、MDS 這類 CPU 側通道漏洞的緩解措施在多租戶宿主機上通常全部開啟,會讓系統呼叫密集的負載付出可觀的效能代價;裸金屬是單租戶,可以根據自身的風險評估決定緩解開到什麼程度。

許可證:按物理核計費的軟體為什麼偏好裸金屬

很多商業軟體按物理核授權,而不是按 vCPU。這類軟體放在共享虛擬化平台上,帳會算得很難看。以下按公開的許可規則概述,具體以廠商當前條款為準:

  • Oracle Database:按 Processor 授權,Processor 數 = 物理核數 × 核心係數(主流 x86 為 0.5)。Oracle 的分割槽策略把 VMware 等多數虛擬化方式歸為“軟分割槽”,不承認按虛擬機器的 vCPU 數授權,要求按這台虛擬機器可能執行到的所有物理主機的全部核心計算。部分公有云被 Oracle 列為認可的雲環境,可以按 vCPU 折算,名單與折算規則以 Oracle 當前政策為準。
  • Microsoft SQL Server(按核授權):物理機要為全部物理核授權,每顆 CPU 至少 4 核;虛擬機器按 vCPU 授權,每台虛擬機器至少 4 核。要在一台物理機上跑任意數量的 SQL Server 虛擬機器,需要給全部物理核買 Enterprise 版並附帶軟體保障。
  • Windows Server:按物理核授權,每台伺服器至少 16 核;Standard 版允許執行 2 個虛擬機器,Datacenter 版不限數量。

算一筆假設的帳:資料庫需要 8 個物理核。

部署方式 需要授權的核數 說明
共享虛擬化叢集,3 台雙路 16 核宿主機 96 核 軟分割槽規則下按虛擬機器可能遷移到的全部宿主機計
單台雙路 16 核裸金屬 32 核 只為這一台機器授權,但多買了 24 核
單路 8 核高主頻裸金屬 8 核 核數剛好,主頻高,許可證開銷少

所以按物理核授權的軟體選裸金屬時,要點不是核數多,而是核數剛好夠、主頻儘量高,再把省下的許可費換成更快的 NVMe 和更大的記憶體。裸金屬上 lscpu 和 dmidecode 能看到真實的 CPU 型號與核數,審計時也拿得出證據。

巢狀虛擬化:想自己做虛擬化平台,只能選裸金屬

在裸金屬上裝 KVM、Proxmox VE、VMware ESXi 或 Hyper-V,就得到一台自己的虛擬化宿主機,效能與自建機房裡的物理機一致。常見用途:自建私有云、給每個客戶或每個環境切虛擬機器、用 Kata Containers 或 Firecracker 這類輕量虛擬機器做容器沙箱、在 CI 裡跑 Android 模擬器、桌面虛擬化。

在虛擬機器裡再跑虛擬機器叫巢狀虛擬化。它要求雲廠商把 VT-x / AMD-V 指令集暴露給虛擬機器,很多雲規格預設不開;即使開了,兩層位址轉換疊加,內層虛擬機器的效能損失明顯,只適合開發測試。登入機器後可以這樣確認:

# 輸出不為 0,說明 CPU 虛擬化擴充套件對這台機器可見,能裝 KVM
grep -cE 'vmx|svm' /proc/cpuinfo

# 如果你拿到的是裸金屬、想讓裡面的虛擬機器再做一層虛擬化,
# 檢查 KVM 模組的巢狀開關(Intel 看 kvm_intel,AMD 看 kvm_amd),Y 或 1 表示允許
cat /sys/module/kvm_intel/parameters/nested 2>/dev/null
cat /sys/module/kvm_amd/parameters/nested 2>/dev/null

第一條命令在虛擬機器裡輸出 0,說明這台虛擬機器裝不了 KVM,只能換規格或換裸金屬。

彈性:虛擬機器秒級,裸金屬分鐘級

虛擬機器的強項:建立以秒到分鐘計,可以線上改規格、加磁碟、做快照、熱遷移到另一台宿主機,配合自動伸縮按負載增減機器,關機後不再為算力付費。

裸金屬的彈性要弱一截:開通需要真機上電、裝系統,分鐘級到小時級;規格由物理配置決定,加記憶體就是換機器;沒有熱遷移,硬體故障就是你的故障,要靠自己的高可用架構兜底;用本地盤的裸金屬一般沒有快照,備份得自己做。雲廠商的裸金屬把系統盤放到雲盤、加入 VPC 以後,可以做到硬體壞了把雲盤掛到另一台裸金屬上快速恢復,這已經比傳統獨立伺服器好很多,但仍不是虛擬機器那種隨手複製一百台的彈性。

負載一天內波動大、機器數量需要跟著流量變、經常建環境又銷燬,選虛擬機器;負載穩定、機器長期開著、規模固定,彈性對你沒有價值,裸金屬更划算。

價格:單位算力裸金屬便宜,起步規格虛擬機器便宜

同一代 CPU,按每個物理核算,裸金屬比虛擬機器便宜,原因是整機算力被切成小份出售時,每一份都要分攤虛擬化平台、排程與維運的成本,小規格的單價本來就定得更高。但裸金屬按整機賣,起步就是幾十核、上百 GB 記憶體;虛擬機器可以買 1 核 1 GB。

用一組假設數字說明(不代表任何服務商報價):裸金屬 32 核 128 GB 每月 ¥3,200,相當於每核 ¥100;虛擬機器 8 vCPU 32 GB 每月 ¥1,200,相當於每 vCPU ¥150。

需求 虛擬機器方案 裸金屬方案 更省的一方
8 核 32 GB 的小應用 1 台,¥1,200 1 台,¥3,200,剩 24 核閒置 虛擬機器
24 核 96 GB 的資料庫 3 台拼接,¥3,600,且跨機器 1 台,¥3,200,還多 8 核 裸金屬
需求跑滿 32 核 4 台,¥4,800 1 台,¥3,200 裸金屬

規律是:你能把一台裸金屬用滿六七成以上,它就比等量的虛擬機器便宜;只用得到一小部分,虛擬機器便宜。再加上許可證那一節的差異,資料庫、中介軟體這類按核授權又吃 IO 的負載,往往是裸金屬最先回本的地方。

怎麼選,以及怎麼確認拿到的真是裸金屬

按業務選

業務 建議 原因
Oracle、SQL Server 等按核授權的資料庫 裸金屬 許可證按真實物理核,IO 延遲低
MySQL、PostgreSQL 大例項,Redis、Elasticsearch 裸金屬 本地 NVMe、大頁記憶體、NUMA 繫結收益明顯
撮合、即時競價、音影片轉發等尾延遲敏感業務 裸金屬 沒有排程抖動和鄰居干擾
自建虛擬化、容器沙箱、雲遊戲、模擬器叢集 裸金屬 需要完整的虛擬化擴充套件
GPU 訓練與推理 裸金屬 整卡獨佔,PCIe 直連
合規要求物理隔離 裸金屬 單租戶,能出具硬體資訊
Web 前端、API、微服務 虛擬機器 無狀態、橫向擴充套件,彈性有價值
開發測試、CI 節點、臨時環境 虛擬機器 用完即刪
負載波動大的業務 虛擬機器 自動伸縮,按量付費
一兩個核就夠的小應用 虛擬機器 裸金屬起步規格浪費

驗收:確認拿到的是物理機

付了裸金屬的錢,拿到的應該是物理機。登入後用幾條命令核對:

# 物理機輸出 none;虛擬機器會輸出 kvm、vmware、microsoft 等
systemd-detect-virt

# 虛擬機器的 CPU 標誌裡有 hypervisor,物理機沒有,輸出應為 0
grep -c hypervisor /proc/cpuinfo

# 物理機顯示 Dell Inc.、Supermicro 等主機板或整機廠商;虛擬機器顯示 QEMU、VMware, Inc. 等
cat /sys/class/dmi/id/sys_vendor
cat /sys/class/dmi/id/product_name

# 核對 CPU 型號、插槽數、物理核數與超執行緒是否與訂單一致
lscpu | grep -E 'Model name|Socket|Core|Thread'

再看兩件事:一是有沒有帶外管理能力,真正的物理機應該能提供電源控制、啟動項設定、掛載 ISO 和看到 BIOS 畫面的控制檯,哪怕是透過服務商面板轉一道(IPMI 遠端管理指南解釋了這些能力從哪來);二是磁碟,nvme list 或 lsblk -d -o NAME,MODEL,SIZE 應該能看到真實的盤型號(Samsung、Intel、Micron 等廠商型號),虛擬機器裡看到的通常是 QEMU HARDDISK、Virtual Disk 這類虛擬裝置名,virtio 磁碟的型號欄甚至是空的。兩項都對得上,這台機器才是你獨佔的物理機。

常見問題

裸金屬和雲主機的區別是什麼?

雲主機是虛擬機器,裸金屬是物理機,二者都由雲平台線上開通,多數雲廠商的裸金屬也能接 VPC 和雲盤。區別在於裸金屬沒有 hypervisor,獨佔整機的 CPU、記憶體和本地盤,不能像雲主機那樣秒級建立、熱遷移或隨意改規格。

裸金屬伺服器就是獨立伺服器嗎?

硬體形態一樣,都是一台物理機。差別在交付方式:傳統獨立伺服器由機房人工上架、按月出租;裸金屬由雲平台自動化交付,常見按小時計費,可以加入 VPC、掛雲盤。市面上兩個詞經常混用,看合同裡的具體條款比看名稱更可靠。

裸金屬上能跑 Docker 嗎?

可以,而且是常見用法。容器不需要虛擬化擴充套件,裸金屬上跑 Kubernetes 節點省去了一層 hypervisor 損耗,也更容易用上大頁記憶體、NUMA 繫結等最佳化。

虛擬機器 8 vCPU 和裸金屬 8 核一樣快嗎?

通常不一樣。vCPU 多數對應一個超執行緒而不是一個物理核,8 vCPU 可能只是 4 個物理核的 8 個執行緒;是否超售、宿主機負載也會影響。裸金屬的 8 核是 8 個真實物理核,還可以按需關閉超執行緒。

想看看在你的機房裡怎麼用?

從一次產品示範開始,梳理你的業務鏈路。

查看價格
服務熱線 400-112-2951

讓我們聊聊你的 IDC 業務

掃碼新增企業微信,預約產品示範或申請試用。

Toplink 企業微信二維碼

長按儲存或使用企業微信 / 微信掃描

也可致電
400-112-2951
Telegram
@TopLink88