导读:逛VPS商品页时经常看到架构一栏:KVM、LXC、OpenVZ,同配置下OpenVZ经常便宜一大截。这三行字背后是完全不同的三种技术路线,直接决定了你这台机器“是真是假”:能不能自己换内核、能不能跑Docker、超售起来有多狠、性能下限在哪。本站之前讲过超售检测和ARM架构怎么选,这篇把地基打牢——虚拟化架构本身。原理部分尽量说人话,重点放在对实际使用的影响,看完你再看商品页,眼光会完全不同。
一、先搞清楚:VPS的本质是一台大机器切出来的份额
一台物理服务器,几十个核心、几百G内存、几十T硬盘。商家不可能整台卖给你,于是用虚拟化技术把它切成几十份,每份就是一台VPS。切法不同,切出来的东西性质就不同——这是三种架构一切差异的源头。
切法大致分两派。
一派叫完全虚拟化:给每个份额完整模拟出一台“真电脑”,有自己的CPU、内存、磁盘、网卡,甚至自己的操作系统内核。用户在里面装什么系统、改什么内核,都跟真机无异。KVM属于这一派。
另一派叫容器化(操作系统级虚拟化):不模拟硬件,所有份额共用宿主机同一个内核,只是用隔离技术把进程、内存、文件系统隔开,每个份额看起来像独立系统,实际内核是共享的。LXC和OpenVZ属于这一派。
一句话记忆:KVM给你一整台“电脑”,LXC和OpenVZ给你一个隔间。
二、KVM:完整虚拟机,机器是你的
KVM(Kernel-based Virtual Machine)是Linux内核自带的完全虚拟化方案,配合QEMU工作,是目前VPS市场的主流架构。
它的工作方式:宿主机内核里加载KVM模块,利用CPU的硬件虚拟化指令(Intel VT-x、AMD-V),给每个虚拟机分配真实的虚拟硬件。你的VPS里跑着自己的完整内核,从宿主机视角看,它只是一个大号进程。
对你意味着什么:
系统随便换:想装Debian就Debian,想装Alpine就Alpine,想DD重装成Windows也行,内核随你定制。
Docker随便跑:容器嵌套、内核模块、TUN/TAP设备全都支持,自建WireGuard、跑各类需要内核权限的应用都没障碍。
资源边界硬:分配给你的内存就是你的,CPU steal(被宿主机或其他租户抢占的时间片)虽有但相对可控,性能下限高。
超售相对克制:内存超售对KVM成本高(每个VM要真实映射),商家超售起来肉疼,所以KVM机器单价更贵但水分更小。
代价:虚拟化本身有损耗(CPU、内存、IO都要过一层翻译),同价位下配置通常给得比容器架构少一点;整机开销大,小内存KVM机器启动就要吃掉一部分资源。
三、LXC:共享内核的轻量容器
LXC(Linux Containers)是Linux原生的容器化方案,跟Docker算同门师兄弟(Docker早期就基于LXC技术构建)。宿主机上所有LXC容器共享同一个内核,每个容器有自己的进程空间、网络栈、文件系统。
用在VPS场景,LXC的卖点:省。没有虚拟化层,进程直接跑在宿主机内核上,性能接近裸机,内存开销极小。所以LXC VPS能给很高的配置——同样的钱,内存翻倍、核心翻倍。
但共享内核这四个字决定了一切限制:
内核不可换:你用的永远是宿主机的内核版本,想加载一个宿主机没有的内核模块?没门。
Docker看商家:容器里跑容器需要宿主机开启相应支持。不少LXC VPS跑Docker会报错或行为异常,下单前务必问清或搜评测。TUN设备(VPN类应用需要)同理,要看商家是否开启。
隔离弱一档:LXC的隔离靠内核的namespace和cgroup,边界没有硬件虚拟化硬。邻居疯狂吃IO时,你的磁盘延迟跟着飙,这是共享架构的通病。
超售容易:正因为轻,商家可以超开得很猛。CPU steal、IO争抢在低价LXC机器上更常见。
一句话:LXC适合预算敏感、用途明确(建站、跑脚本、轻量应用)、不需要动内核的场景。
四、OpenVZ:老派容器虚拟化,为什么逐渐退场
OpenVZ比LXC更古老,思路相同:共享内核、进程级隔离。在2010年代它是廉价VPS的代名词,一年十几美元的“小鸡”基本都是OpenVZ。
它退场的原因很技术:OpenVZ需要商家给宿主机打专门的内核补丁,跟不上Linux主线版本的演进;容器内能做的事比LXC还少(连部分系统调用都受限);再加上Virtuozzo商业化转向,社区版更新乏力。如今你在商品页看到OpenVZ,基本只剩两类:清库存的老机器,和拿它当卖点做超低价的商家。
OpenVZ的典型特征,老玩家都很熟:内存显示分成“专用内存”和“突发内存”两档;/proc 下能看到宿主机全部核心数(误导性的高核心数);iptables模块残缺,一些高级规则用不了;跑Docker几乎不用想。
态度建议:除非价格离谱地便宜且用途就是挂个轻量服务,否则新购机器不建议选OpenVZ。
五、三种架构横向对比
把关键维度排成一张清单,下单前对着看:
隔离级别:KVM硬件级完整隔离;LXC内核级较强隔离;OpenVZ内核级较弱。
内核自由:KVM完全自主;LXC共享宿主内核;OpenVZ共享且限制更多。
Docker支持:KVM原生支持;LXC看商家配置;OpenVZ基本不行。
TUN和VPN类应用:KVM无障碍;LXC需商家开启;OpenVZ大概率不行。
DD重装换系统:KVM可以任意DD;LXC只能换商家提供的发行版模板;OpenVZ同左且模板少。
性能开销:KVM有虚拟化损耗(约5%到15%);LXC接近原生;OpenVZ接近原生。
超售风险:KVM相对克制;LXC中等;OpenVZ历史重灾区。
同价配置:KVM最低;LXC高一截;OpenVZ最高(这也是它便宜的真相)。
适合人群:KVM是折腾党、要跑Docker和VPN、要DD重装的人;LXC是建站挂服务、预算敏感的人;OpenVZ是极度价格敏感、用途极轻的人。
六、怎么查自己机器是什么架构
已购机器,两条命令验明正身:
第一看虚拟化类型:
systemd-detect-virt
输出kvm就是KVM(或VMware等完全虚拟化),输出lxc就是LXC,输出openvz就是OpenVZ,输出none说明是物理机。
第二看系统容器标记:
ls /proc/vz
存在/proc/vz目录基本就是OpenVZ或Virtuozzo。再看 uname -r 的内核版本后缀,OpenVZ内核常带“stab”之类的字样。
KVM机器还能用 virt-what 或 dmesg 辅助确认。商品页写的不一定准,自己跑命令才算数。
七、架构对实际使用的影响:四个真实场景
场景一:想跑Docker全家桶。直接选KVM。LXC要提前确认商家支持嵌套容器,OpenVZ放弃。
场景二:只挂几个PHP站、一个小机器人。LXC性价比最高,省下的钱升级内存不香吗。
场景三:想DD成Windows或自定义内核的系统(比如开新版拥塞控制、装游戏服务器)。只有KVM支持,这是本站DD重装教程的前置条件。
场景四:怀疑商家超售。无论哪种架构都用本站讲过的方法测:top里看st(steal time)长期高于5%说明CPU超售严重;fio测IO延迟抖动大说明磁盘超开。容器架构机器要额外容忍一档,属于技术路线自带的特性。
结语
虚拟化架构没有绝对的好坏,只有匹配不匹配:KVM买的是自由和下限,LXC买的是性价比,OpenVZ买的是极致便宜(附带极致限制)。看懂这三个词,商品页的价格差异就有了合理解释,你也就不会再问“为什么这家同配置便宜一半”——它便宜的那一半,可能正好是你需要的那一半。下单前多看一眼架构栏,比收货后吵架管用得多。


