服务器租用与托管

裸金属服务器与虚拟机的区别:性能、隔离与许可证六维对比

裸金属服务器是整台物理机归你独占,只是像云主机一样在线下单、分钟级交付;虚拟机是 hypervisor 从一台宿主机上切出来的一份。没有这层 hypervisor,裸金属没有虚拟化损耗、没有邻居争抢、能按真实物理核买许可证、能自己再装虚拟化,代价是弹性差、起步规格大。

作者 顶联产品团队发布于 7 分钟阅读

裸金属服务器与虚拟机的区别,核心在一层软件: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