3. 堆叠成员角色:主交换机、备交换机、从交换机,角色选举机制
堆叠系统里,交换机不是一拥而上乱成一团的。它们有明确的分工。说白了,就是三个角色:主交换机、备交换机、从交换机。
我刚开始接触堆叠时,总觉得这跟“老大、老二、小弟”差不多。后来在项目里踩过坑才明白——角色选举机制如果搞不清楚,堆叠建不起来,甚至可能把整网搞瘫。
3.1 三个角色,各司其职
先看看每个角色具体干什么。
| 角色 | 英文 | 核心职责 |
|---|---|---|
| 主交换机 | Master | 管理整个堆叠系统。负责协议计算、配置同步、拓扑维护。 |
| 备交换机 | Standby | 主交换机的热备份。实时同步状态,主挂了立刻顶上。 |
| 从交换机 | Slave | 普通成员。转发数据,不参与管理决策。 |
嗯,这里要注意:备交换机只有一个。从交换机可以有多个。主交换机也只有一个。
核心原则:整个堆叠系统,逻辑上就是一台设备。主交换机是“大脑”,备交换机是“备用大脑”,从交换机是“手脚”。
3.2 角色选举机制
堆叠启动时,所有成员交换机都会参与选举。谁当主?谁当备?规则其实很清晰。
选举依据,按优先级从高到低排列:
- 启动优先级(用户配置的)
- MAC地址大小(小的优先)
- 堆叠ID大小(小的优先)
为什么会这样设计?你想想看,如果只靠MAC地址,那设备一插电就定死了主备关系,用户没法干预。所以优先级排第一,让管理员说了算。
具体流程是这样的:
- 所有成员上电后,先发选举报文。
- 比较优先级,高的当选主交换机。
- 如果优先级相同,比较MAC地址,小的赢。
- 如果MAC也相同(极少见),比较堆叠ID。
- 主交换机选出来后,再选备交换机——规则一样。
- 剩下的全是从交换机。
我的习惯:在规划堆叠时,我会把核心汇聚层的交换机优先级设高一点,比如150。接入层设默认值100。这样主交换机一定是核心设备,管理起来顺手。
3.3 选举触发条件
不是只有启动时才选举。以下几种情况也会触发重新选举:
- 主交换机故障——备交换机立刻升主,然后重新选备。
- 备交换机故障——从交换机中重新选一个当备。
- 新成员加入——如果新成员优先级更高,它会抢主吗?
这个问题我经常被问到。答案是:不会。堆叠稳定运行后,新加入的成员不会触发主备重新选举。除非你手动重启或执行命令强制选举。
我曾经踩过的坑:有一次在现网扩容,加了一台新交换机进堆叠。我忘了检查优先级,结果新设备优先级比老主高。虽然它不会自动抢主,但后来我重启了整个堆叠——新设备直接成了主。配置全乱了。从那以后,我每次加设备前都会先改优先级。
3.4 角色切换与业务影响
主备切换时,业务会不会断?
这取决于你的堆叠技术实现。如果是跨设备链路聚合(比如M-LAG),切换时流量几乎无感。如果是传统堆叠,切换过程中会有短暂的丢包。
我个人建议:
- 核心层用M-LAG或VPC这类技术,主备切换对业务透明。
- 接入层用传统堆叠,切换时间一般在秒级以内,影响可控。
嗯,还有一点:备交换机在同步状态时,会占用一定的CPU和内存资源。所以从交换机的性能不能太差,否则会影响整个堆叠的稳定性。
3.5 实战建议
最后,给你几个我在项目中总结的经验:
- 优先级规划要提前做。别等设备上架了再改,容易忘。
- 备交换机的性能要和主一样。否则主挂了,备扛不住。
- 监控主备状态。我习惯在网管系统里加一条告警——备交换机离线超过30秒就报警。
- 定期做切换演练。别等到真出故障了才测试。我每季度会手动触发一次主备切换,确保备机真的能顶上去。
一句话总结:角色选举是堆叠的“宪法”。搞懂了它,堆叠的稳定性就有了一半保障。