一、机房的噩梦:物理机冒烟了
搬进集群的前一天,老周给小陈讲了个真实故事:
"我以前在一家公司,凌晨三点,机房一台物理服务器'啪'地一声——电源模块烧了。那台机器上跑着公司的订单系统。结果:订单系统下线 6 小时,公司损失了几十万。 从那以后我明白了一件事:单台物理机 = 定时炸弹,你不知道它什么时候爆,但你知道它一定会爆。"
"物理机都会坏:电源、硬盘、内存、主板……这是必然。所以专业的虚拟化必须解决:一台物理机挂了,业务不能挂。 答案就是——集群。"
二、集群(Cluster):多台 ESXi 组成"一个整体"
老周画图:
集群(Cluster)= 多台 ESXi + vCenter 统一管理 = 一个资源池
┌────────────────────────────────────────┐
│ Cluster:云间书店生产集群 │
│ ├── ESXi-01(8核 64G) │
│ ├── ESXi-02(8核 64G) │
│ └── ESXi-03(8核 64G) │
│ 总资源:24 核 192G(可用的"池子") │
│ VM 们:web/db/cache/ai...(散落各处) │
└────────────────────────────────────────┘
"集群的意义:把多台 ESXi 的 CPU、内存合并成一个'资源池',VM 可以在池子里自由流动。 单台 ESXi 是一间房,集群是一栋楼——房间(主机)坏了,住客(VM)搬到别的房间,楼还是好的。"
"集群是三个王牌功能的地基:HA、DRS、vMotion。一个一个来。"
三、vMotion:不停机的"瞬移"
"先讲最神奇的一个:vMotion——虚拟机在运行状态下,从一台 ESXi 平滑迁移到另一台,业务零中断。"老周演示:
vMotion 迁移过程(用户无感知):
① 把 VM 的内存状态(所有运行中的数据)复制到目标主机
② 复制完成后,瞬间切换(零点几秒)
③ 磁盘在共享存储上,不用搬(这就是共享存储的意义!)
→ 整个过程业务不断,用户感觉不到任何变化
vMotion 的前提条件:
- 共享存储(VM 磁盘两边都能访问)
- 两台 ESXi 的 CPU 兼容(同代 CPU 最好)
- 网络带宽足够(内存要"传"过去)
用途:
- 物理机要维护:vMotion 把 VM 迁走,主机随便折腾
- 负载均衡:某台主机太忙,把 VM 迁到闲的主机
- 升级 ESXi:迁走所有 VM,主机升级再迁回来
"vMotion 是'不宕机维护'的神器。 以前物理机维护要停机,现在 vMotion 一拖,业务不断——这就是虚拟化的'活'。"
四、HA(High Availability):主机挂了,VM 自动重启
"vMotion 是'主动迁移'(我让它走)。HA 是'被动救火'(主机挂了,VM 自动活过来)。"老周说:
HA(High Availability,高可用):
原理:
① 集群里的每台 ESXi 都盯着彼此(心跳检测)
② ESXi-01 突然挂了(宕机/断电)
③ 其他主机发现"ESXi-01 失联了"
④ ESXi-01 上的 VM 自动在别的活着的主机上重启
⑤ 业务中断时间 = VM 重启的时间(几分钟,不是几小时)
注意:HA 是"重启"不是"无中断"!
- 挂了之后:VM 需要重新开机(像电脑突然断电后重启)
- 中断时间:几分钟(比 6 小时的物理机事故好太多)
前提条件:
- 共享存储(VM 文件别的主机要能读到)
- 集群内主机数 ≥ 2
- 配置"主机故障隔离"响应(HA 心跳网络)
云间书店的 HA 配置:
- 3 台 ESXi 组成集群,启用 HA
- 允许"1 台主机故障"的冗余(还能剩 2 台扛住)
"HA 的意义:把'物理机故障 6 小时'变成'VM 自动重启 5 分钟'。 不是零停机,但是'自动恢复'——半夜没人管,网站也能自己爬起来。"
五、DRS(Distributed Resource Scheduler):智能负载均衡
"第三张王牌:DRS——自动把 VM 分配到最合适的主机上。"老周说:
DRS(Distributed Resource Scheduler,分布式资源调度):
问题:3 台主机,ESXi-01 跑满了,ESXi-02 闲着
方案:DRS 自动把 ESXi-01 上的一些 VM vMotion 到 ESXi-02
原理:
① 持续监控每台主机的 CPU/内存负载
② 发现负载不均 → 自动迁移 VM(用 vMotion)
③ 保证整个集群负载均衡(谁闲 VM 往谁那跑)
DRS 的三种模式:
- 手动:只给建议,人来执行(保守)
- 半自动:给出迁移建议+自动放置新 VM
- 全自动:自动迁移(生产推荐,配合维护窗口)
云间书店 DRS 配置:
- 启用 DRS(全自动)
- 规则:"web-01 和 db-01 必须分开主机"(防止同归于尽)
- 维护模式:某台主机进维护前,DRS 自动迁走它的 VM
"DRS = 集群的'自动管家':把 VM 放在最合适的主机,让每台主机都不闲着、不过载。配合 vMotion,整个集群'自己会呼吸'。"
六、FT(Fault Tolerance):连重启都不用等的极致保护
"最后介绍一个'贵但极致'的功能:Fault Tolerance(容错)。"老周说:
FT(Fault Tolerance,容错):
原理:一台 VM 在 ESXi-01 运行的同时,
在 ESXi-02 上跑一个"影子副本"(一模一样的实时复制)
ESXi-01 挂了 → 影子副本无缝接管 → 业务零中断!
对比:
没有 HA/FT:挂了 → 停机 6 小时
HA :挂了 → 自动重启 → 停机几分钟
FT :挂了 → 无缝切换 → 零停机!
代价:
- FT 对 VM 有严格限制(只能 1 个 vCPU,磁盘类型受限等)
- 需要两倍资源(主 + 影子)
- 所以只给"绝对不能断"的系统用
云间书店的决策:
数据库 db-01 太关键 → 给 FT?(先评估:vCPU 限制会影响性能)
最终:db-01 用 HA + 定期备份(第八章)就够了
FT 留给"支付对账"这种打死不能断的服务
"记住取舍:HA 是'标配',FT 是'奢侈品'。 大部分系统 HA 足够,FT 只给命根子用。"
七、章末:老周的第五层总结
第五层:集群与高可用
├── 集群:多台 ESXi = 一个资源池(VM 自由流动)
├── vMotion:运行中迁移,业务零中断(维护神器)
├── HA:主机挂了,VM 自动在别处重启(5 分钟 vs 6 小时)
├── DRS:自动负载均衡(谁闲 VM 往谁那跑)
└── FT:影子副本无缝接管(零停机,但贵,只给命根子)
"小陈,有了集群,云间书店的虚拟化算是有'骨架'了。但你还记得第二章的'超分'吗?——7 台 VM 配置了 17 个 vCPU,物理机才 8 核。如果集群里资源真的不够了,VM 之间会怎么抢?谁优先?谁让路?"
"这个……"小陈摇头。
"这就是下一层——资源管理。份额(Shares)、预留(Reservation)、限制(Limit)三兄弟,还有资源池——搞清楚它们,你才能真正'管'住一个集群,而不是被集群'管'住。下一章见。"