不同代CPU的服务器能放进一个集群迁移吗?EVC基线这笔账先算清
“机房里两批服务器:老的一批是前些年的 E5,新买的是新代处理器,内存一边 DDR3 一边 DDR4。老板要求全放进一个集群,虚拟机能来回迁移、互为备份——这事能成吗?“这是不少机房扩容时都会碰上的真问题:新机器要进场,老机器还没到退役年限,混着用是常态,但虚拟化平台默认不让你这么干。
先说结论:同厂商不同代的 CPU,可以放进同一个集群,前提是把 EVC 这笔账算清。为什么默认不行?虚拟机在线迁移的瞬间,是在目标主机上原样继续跑的——两台主机 CPU 支持的指令集不一样,虚拟机带着老机器上没有的指令过去,业务当场就崩。所以集群对 CPU 兼容性的要求,本质是"迁移过去的机器必须接得住虚拟机正在用的指令集”。
EVC(增强型 vMotion 兼容性)就是干这个的:给整个集群统一指定一条"指令集基线”,加入的主机只对外暴露这条基线以内的能力,新机器多出来的新指令暂时藏起来。这样一来,老的 E5 和新处理器在集群眼里成了"说同一种方言的两台机器",在线迁移、HA 高可用都能正常工作。至于 DDR3 和 DDR4——内存代际是各自主板上的事,不影响能不能进同一个集群,影响的是各自的容量账和性能账,规划时分开算就行。还要把两个概念分开:vMotion 是"活着搬家",把运行中的虚拟机从一台挪到另一台;HA 是"出事后安置",主机宕机时把虚拟机在别的健在主机上重新拉起来。老板要的"互为备份",靠的是这两件事配合,而它们都踩在 CPU 兼容这块地基上。
规划落位按这个顺序走:
- 盘家底:把每台主机的 CPU 型号、代际列成清单,确认是同厂商;跨厂商混池的念头趁早打消,兼容性地基不成立。
- 选基线:EVC 基线以"全员都支持"为下限,实际就是向老机器看齐——老 E5 能撑到哪条基线,集群就用哪条。
- 建集群时就把 EVC 勾上;集群已经建好、里面跑着虚拟机的,启用时机有讲究,放到维护窗口里做稳妥,别在业务时间动这个开关。
- 启用后验证:挑一台不太要紧的虚拟机做一次来回迁移,能去能回,地基就算验收了。
- 算清代价:EVC 把新处理器的部分新指令屏蔽了,绝大多数业务无感,个别依赖新指令特性的应用要单独评估,别为了一台旧机器把关键业务的性能路线堵死。
之前讲过断电后虚拟机迁移报"无法访问配置"的应急处理——那是出了事故怎么救;本篇是反过来,建池之前怎么把兼容性这笔账先算对。机房里的新旧交替是常态,规划做在前头,比事后救火便宜得多。贵州诚鑫致达科技给客户做机房虚拟化规划和扩容时,EVC 基线、内存容量、业务特性这三本账会一起摆到方案里再动手。你们机房新老服务器混用吗?池化时踩过兼容性的坑没有?评论区聊聊。