第24篇:堆叠(Stack)与集群(Cluster)的区别

关键词:堆叠、集群、iStack、CSS、IRF、多交换机、虚拟化、简化管理、高可靠


一、引言

在企业网络中,当多台交换机需要协同工作时,传统方式要求在每台设备上进行独立的配置和管理——这既低效又容易出错。堆叠(Stack)和集群(Cluster)这两种技术,能把多台物理交换机"虚拟化"为一台逻辑交换机,实现统一配置和高效协同。华为提供了 iStack(Intelligent Stack,用于盒式交换机)和 CSS(Cluster Switch System,用于框式交换机)两种堆叠/虚拟化方案,二者本质是同一类技术在不同设备形态上的应用。本文将系统讲解堆叠与集群的基本概念、差异以及适用场景。

二、核心概念

2.1 堆叠 vs 集群

维度 堆叠(Stack/iStack) 集群(Cluster/CSS)
连接方式 堆叠端口相连(专用堆叠线缆 或 业务口+光模块) 集群卡 或 业务口组建 CSS Link
管理平面 完全统一(一台主设备管理) 逻辑统一(成员各自独立)
数据转发 统一转发,所有成员设备都参与 统一转发,所有成员设备都参与
配置 单一 IP、统一 CLI 单一 IP、统一 CLI
设备形态 盒式交换机(S 系列,常用业务口堆叠) 框式交换机(CE 系列,堆叠卡/业务口)
堆叠数量 多台(盒式常见 2~9 台) 仅 2 台
设备要求 必须同系列、同版本 必须同系列、同版本
华为术语 iStack CSS

2.2 堆叠(iStack)的关键技术

术语 说明
堆叠系统 多台交换机通过堆叠线缆连接后形成的逻辑设备
主设备(Master) 堆叠系统中负责管理平面的设备,只有一台
备设备(Standby) 主设备的备份,主设备故障时接管管理,只有一台
从设备(Slave) 除主设备外的其他成员,承担业务转发;备设备故障时可兼任备设备
成员 ID(Member ID) 堆叠系统中每台设备的唯一标识
堆叠优先级 影响主设备选举,优先级高者优先成为主设备
堆叠端口 专用堆叠接口,用于设备间通信
堆叠线缆 专用连接线(华为支持普通 SFP + 光模块堆叠)

2.3 集群(CSS)的关键技术

术语 说明
CSS 系统 两台交换机通过集群链路连接形成的逻辑设备(CSS 仅支持两台,只有主/备两个角色)
集群系统链路 使用普通以太网端口组建的链路
CSS 系统链路(CSS link) 成员间承载控制/管理报文的专用链路
主设备 选举后承担管理平面的设备
备设备 主设备故障时接管管理的设备

三、技术细节

3.1 堆叠 vs 传统多设备对比

堆叠 vs 传统多设备对比 - 图示

3.2 堆叠的核心价值

价值 说明
简化管理 多台设备"如同"一台设备,一次配置全局生效
提高可靠性 单台设备故障不影响整体,自动切换
提升带宽 跨设备链路可聚合,成员设备端口都参与转发
简化组网设计 部署时不再需要复杂的 STP 计算,堆叠内部链路不形成环路
易于扩展 增加成员设备即可扩容,无需修改网络架构

3.3 主设备选举机制

当堆叠系统建立时,所有成员设备会竞选主设备位置。

选举规则(依次比较,前一项相同才比较下一项):

比较项 说明 规则
1. 运行状态 是否已完成启动并加入堆叠 先启动完成者胜
2. 堆叠优先级 手动设置的优先级(缺省 100) 数值大者胜
3. 软件版本 设备运行的软件版本 版本高者胜
4. 设备(桥)MAC 地址 设备的桥 MAC 地址 数值小者胜

3.4 堆叠与 STP 的关系

堆叠系统在 STP 看来是一台设备:

关系 说明
统一 Bridge ID 堆叠系统使用统一的系统 MAC(System MAC)作为 Bridge ID,主备切换时系统 MAC 可能随之变化(可配置切换延迟)
内部无 STP 堆叠成员之间的链路不参与 STP 计算
外部仍有 STP 堆叠系统与外部设备之间的链路仍需要 STP
跨设备 Eth-Trunk 不同成员设备的端口可以聚合到同一 Eth-Trunk

四、实战配置/案例分析

4.1 案例一:iStack 堆叠组建示例

硬件准备:两台 S6730 交换机,通过业务口 + 光模块组建堆叠(使用普通 SFP 端口作为堆叠端口)。

# ============ DeviceA配置(将成为主设备)============
<HUAWEI> system-view
[HUAWEI] sysname DeviceA
# 配置DeviceA的堆叠ID为1,优先级为150。缺省情况下,设备的堆叠ID为1。此处默认DeviceA的堆叠ID为1,无需配置。
[DeviceA] stack
[DeviceA-stack] stack member 1 priority 150
[DeviceA-stack] quit
# 在DeviceA上创建Stack-Port端口,将成员端口加入Stack-Port端口。
[DeviceA] interface Stack-Port 1/1
[DeviceA-Stack-Port1/1] port member-group interface 10GE 1/0/1 10GE 1/0/2
Warning: After the configuration is complete,
1.The interface(s) (10GE1/0/1-1/0/2) will be converted to member of Stack-Port.
2.The current operation will clear all configurations on the interface and save all configurations on the device. Manually back up the configuration file before the operation.
3.The interface(s) may go Error-Down because there is no shutdown configuration on the interfaces. Continue? [Y/N]:y
Warning: All running configurations of the interface will be cleared immediately. Continue? [Y/N]:y
[DeviceA-Stack-Port1/1] quit
[DeviceA] commit
[DeviceA] save

# ============ DeviceB配置(将成为从设备)============
# 配置DeviceB的堆叠ID为2,优先级为100。
<HUAWEI> system-view
[HUAWEI] sysname DeviceB
[DeviceB] stack
[DeviceB-stack] stack member 1 priority 100
[DeviceB-stack] stack member 1 renumber 2
Warning: All the configurations related to the slot ID will be lost after the slot ID is modified.
Do not frequently modify the slot ID because it will make the stack split. Continue? [Y/N]:y
[DeviceB-stack] quit
# 在DeviceB上创建Stack-Port端口,将成员端口加入Stack-Port端口。
[DeviceB] interface stack-port 1/2
[DeviceB-Stack-Port1/2] port member-group interface 10GE 1/0/1 10GE 1/0/2
[DeviceB-Stack-Port1/2] quit
[DeviceB] commit
[DeviceB] save

DeviceA、DeviceB下电,使用线缆连接后再上电。为确保DeviceA成为主设备,可以先为DeviceA上电,DeviceA启动后,再为DeviceB上电。

验证堆叠:

# 堆叠组建后通过主设备登录
<DeviceA> display stack                                                           
--------------------------------------------------------------------------------
MemberID Role     MAC              Priority   DeviceType         Description    
--------------------------------------------------------------------------------
1        Master   00e0-fc12-1111   150        S6730-H24X6C-V2    
2        Standby  00e0-fc12-2222   100        S6730-H24X6C-V2                            
--------------------------------------------------------------------------------

4.2 案例二:堆叠系统的跨设备 Eth-Trunk

需求:配置堆叠系统的跨设备链路聚合,让两台堆叠成员各自的下行端口聚合为同一条逻辑链路,连接到服务器。

# 在堆叠系统配置跨设备 Eth-Trunk
[Stack-SW] interface Eth-Trunk 10
[Stack-SW-Eth-Trunk10] trunkport 10GE1/0/5    # 成员1的端口
[Stack-SW-Eth-Trunk10] trunkport 10GE2/0/5    # 成员2的端口
[Stack-SW-Eth-Trunk10] mode lacp-static
[Stack-SW-Eth-Trunk10] quit

# 验证
<Stack-SW> display eth-trunk 10
 Eth-Trunk10 is up
 Member Port:  10GE1/0/5  10GE2/0/5
 Select Port:  10GE1/0/5  10GE2/0/5

传统模式下,Eth-Trunk 的成员端口必须在同一台物理设备上。堆叠系统突破了这一限制。

4.3 案例三:堆叠 vs 非堆叠方案对比

维度 非堆叠(2 台独立交换机) 堆叠(1 台逻辑设备)
登录 分别 SSH 到每台设备 SSH 到堆叠 IP 即可管理全部
VLAN 配置 每台设备上分别创建 VLAN 一次创建对所有成员生效
STP 配置 分别配置,可能存在根桥选举 统一配置,堆叠作为一节点
Eth-Trunk 成员端口必须在同一设备 跨成员端口可聚合
故障 单台故障导致一半业务瘫痪 单台故障由其他成员自动接管

五、总结

技术 物理连接 距离 主设备 推荐场景
iStack 堆叠线缆 / 业务口 短 / 中 同一系统 园区接入
CSS 普通以太网 较远 同一系统 园区 / 城域
传统组网 普通以太网 任意 各自独立 小规模网络
堆叠运维要点 说明
统一优先级规划 主备设备通过优先级差确保选举
堆叠链路冗余 使用双链路连接,避免单点
版本一致 堆叠成员必须运行相同 VRP 版本
配置保存 修改堆叠配置后必须 save 并 reboot

思考

  1. 堆叠系统中的备设备故障后,主设备如何接管?业务会中断吗?
  2. 为什么堆叠系统内部链路不需要运行 STP?
  3. 堆叠与链路聚合的组合使用有什么好处?能否替代传统核心 + 汇聚架构?

下篇预告:第25篇:iStack 堆叠的组建过程与角色选举