带内系统升级 - ISSU

使用 ISSU 升级和排除活动交换机的故障,最大限度地减少对网络的干扰。

ISSU 包括以下模式

  • 重启
  • 升级
  • 维护模式
  • 维护端口

在早期的 Cumulus Linux 版本中,ISSU 是 Smart System Manager。

重启模式

您可以配置交换机以以下模式之一重启。

  • cold 模式重启系统并重置交换机上的所有硬件设备(包括交换 ASIC)。

  • fast 模式通过重新加载内核和软件堆栈(无需硬重置硬件)更高效地重启系统,最大限度地减少对流量的影响。在快速重启期间,系统会在恢复到系统的运行模式之前,尽可能使用现有的协议扩展与网络分离。重启过程维护交换 ASIC 的转发表项,数据平面不受影响。在这种模式下,流量中断时间要短得多,因为在重启后系统重新初始化时,只会发生短暂的中断。

  • warm 模式重启系统,现有路由表项的流量不会中断。Warm 模式重启系统时,不会硬重置交换机 ASIC。虽然此过程不会影响数据平面,但控制平面在重启期间会缺失,并且无法处理路由更新。但是,如果不存在备用路径,交换机将继续使用现有表项转发,不会中断。

    当您在 warm 模式下重启交换机时,仅当 BGP 优雅重启选项设置为 full 时,BGP 才会执行优雅重启。要将 BGP 优雅重启设置为 full,请运行 nv set router bgp graceful-restart mode full 命令,然后使用 nv config apply 应用配置。有关 BGP 优雅重启的更多信息,请参阅 可选 BGP 配置

    在 warm 重启模式下的 eBGP 多跳配置中,您必须将 BGP 优雅重启计时器 设置为 180 秒或更长。

Cumulus Linux 支持

  • 所有协议的 Fast 模式。
  • 用于 802.1X、第 2 层转发、使用 BGP 的第 3 层转发、静态路由以及使用 EVPN 的 VXLAN 路由的 Warm 模式。Cumulus Linux 不支持使用 EVPN MLAG 或 EVPN 多宿主的 warm 启动。

NVIDIA 建议您使用 NVUE 命令配置重启模式并重启系统。如果您喜欢使用 csmgrctl 命令,则必须先停止 NVUE 管理 /etc/cumulus/csmgrd.conf 文件,然后再设置重启模式

  1. 运行以下 NVUE 命令

    cumulus@switch:~$ nv set system config apply ignore /etc/cumulus/csmgrd.conf
    cumulus@switch:~$ nv config apply
    
  2. 编辑 /etc/cumulus/csmgrd.conf 文件并将 csmgrctl_override 选项设置为 true

    cumulus@switch:~$ sudo nano /etc/cumulus/csmgrd.conf
    csmgrctl_override=true
    ...
    
  3. 保存配置

    cumulus@switch:~$ nv config save
    

以下命令将交换机配置为在 cold 模式下重启

cumulus@switch:~$ nv set system reboot mode cold
cumulus@switch:~$ nv config apply
cumulus@switch:~$ sudo csmgrctl -c

以下命令将交换机配置为在 fast 模式下重启

cumulus@switch:~$ nv set system reboot mode fast
cumulus@switch:~$ nv config apply
cumulus@switch:~$ sudo csmgrctl -f

以下命令将交换机配置为在 warm 模式下重启。

cumulus@switch:~$ nv set system reboot mode warm
cumulus@switch:~$ nv config apply
cumulus@switch:~$ sudo csmgrctl -w

要使用 NVUE 在您上面配置的重启模式下重启交换机

cumulus@switch:~$ nv action reboot system no-confirm

您必须在命令末尾指定 no-confirm

要显示系统重启信息,例如重启日期和时间、原因和重置模式(fast、cold、warm),请运行 NVUE nv show system reboot 命令

cumulus@switch:~$ nv show system reboot
           operational                       applied  pending
---------  --------------------------------  -------  -------
reason                                                       
  gentime  2023-04-26T15:11:23.140569+00:00                  
  reason   Unknown                                           
  user     system/root
  mode     cold                              cold
  required no

升级模式

升级模式将交换机上的所有组件和服务更新到最新的 Cumulus Linux 小版本,而不会影响流量。升级完成后,您必须使用 warm、cold 或 fast 重启之一重启交换机。

如果交换机处于 warm 重启模式,则升级后重启交换机不会导致流量丢失(这是无损升级)。

升级模式包括以下选项

  • 您可以将所有系统组件升级到 最新 版本,而不会影响流量。升级完成后,您必须使用 重启模式之一重启系统。
  • 您可以执行升级试运行,这将提供有关您要升级的组件的信息,以便您可以查看潜在的升级问题(在某些情况下,由于依赖关系,升级新软件包也可能会升级其他现有软件包)。

以下命令将所有系统组件升级到最新版本

cumulus@switch:~$ nv action upgrade system packages to latest use-vrf default

默认情况下,NVUE nv action upgrade system packages 命令在管理 VRF 中运行。要在非管理 VRF(例如 default)中运行该命令,您必须使用 use-vrf <vrf> 选项。

cumulus@switch:~$ sudo csmgrctl -u

以下命令提供有关您要升级的组件的信息

cumulus@switch:~$ nv action upgrade system packages to latest use-vrf default dry-run

默认情况下,NVUE nv action upgrade system packages 命令在管理 VRF 中运行。要在非管理 VRF(例如 default)中运行该命令,您必须使用 use-vrf <vrf> 选项。

cumulus@switch:~$ sudo csmgrctl -d

维护模式

维护模式全局管理 BGP 和 MLAG 控制平面。

  • 当您启用维护模式时,BGP 和 MLAG 将优雅关闭。
  • 当您禁用维护模式时,BGP 和 MLAG 将根据各个参数设置 enabled

要启用维护模式

cumulus@switch:~$ nv action enable system maintenance mode
Action executing ...
System maintenance mode has been enabled successfully
 Current System Mode: Maintenance, cold  
 Maintenance mode since Thu Jun 13 23:59:47 2024 (Duration: 00:00:00)
 Ports shutdown for Maintenance
 frr             : Maintenance, cold, down, up time: 29:06:27
 switchd         : Maintenance, cold, down, up time: 29:06:31
 System Services : Maintenance, cold, down, up time: 29:07:00

Action succeeded
cumulus@switch:~$ sudo csmgrctl -m1

要禁用维护模式

cumulus@switch:~$ nv action disable system maintenance mode
Action executing ...
System maintenance mode has been disabled successfully
 Current System Mode: cold  
 frr             : cold, up, up time: 12:57:48 (1 restart)
 switchd         : cold, up, up time: 13:12:13
 System Services : cold, up, up time: 13:12:32
Action succeeded
cumulus@switch:~$ sudo csmgrctl -m0

在禁用维护模式之前,请务必先将端口恢复运行。

要显示维护模式状态,请运行 NVUE nv show system maintenance 命令或 Linux sudo csmgrctl -s 命令

cumulus@switch:~$ nv show system maintenance 
       operational
-----  -----------
mode   enabled   
ports  disabled 
cumulus@switch:~$ sudo csmgrctl -s
Current System Mode: cold  
 frr             : cold, up, up time: 00:14:51 (2 restarts)
 clagd           : cold, up, up time: 00:14:47
 switchd         : cold, up, up time: 01:09:48
 System Services : cold, up, up time: 01:10:07

维护端口

维护端口全局禁用或启用所有配置的端口。

  • 当您启用维护端口时,swp 接口遵循各自的管理员状态。
  • 当您禁用维护端口时,swp 接口全局处于管理关闭状态,从而覆盖配置中的管理员状态。

要启用维护端口

cumulus@switch:~$ nv action enable system maintenance ports
Action executing ...
System maintenance ports has been enabled successfully
 Current System Mode: cold  
 frr             : cold, up, up time: 28:54:36
 switchd         : cold, up, up time: 28:54:40
 System Services : cold, up, up time: 28:55:09

Action succeeded
cumulus@switch:~$ sudo csmgrctl -p0

要禁用维护端口

cumulus@switch:~$ nv action disable system maintenance ports
Action executing ...
System maintenance ports has been disabled successfully
 Current System Mode: cold  
 Ports shutdown for Maintenance
 frr             : cold, up, up time: 28:55:49
 switchd         : cold, up, up time: 28:55:53
 System Services : cold, up, up time: 28:56:22

Action succeeded
cumulus@switch:~$ sudo csmgrctl -p1

要查看维护端口的状态,请运行 NVUE nv show system maintenance 命令

cumulus@switch:~$ nv show system maintenance 
       operational
-----  -----------
mode   enabled   
ports  disabled