目录

简介

先决条件

要求

使用的组件

背景信息

逐机架升级概述

机架1关闭阶段

机架1激活阶段

紧急故障切换阶段

机架0激活阶段

清理阶段

配置

网络图

验证

故障排除

注意事项

简介

本文档介绍如何在ASR 9000系列聚合服务路由器nV边缘集群上执行脚本化逐机架升级或激活重新加载软件维护升级(SMU)。逐机架升级可用于在每个机架上逐个安装新的软件版本或软件补丁(SMU)。对于将布线冗余整合到集群中每个机架的网络拓扑，在软件升级中尽量减少数据包丢失。

截至本文档首次发布日期（2014年5月），有三种受支持的方法可用于升级或激活集群上的SMU:

1. 使用install activate命令进行的标准软件升级或SMU激活。两个机架都应该通电。

2. ASR 9000的标准软件升级或SMU激活要求关闭备份指定机架控制器(DSC)机架，升级主DSC机架上的软件（系统重新加载），并启动备份DSC机架以便进行同步。

3. 采用脚本化的逐机架方法。

方法3在本文中讨论。

注：不建议在没有脚本的情况下执行逐机架升级。

注：即使SMU激活，集群也不支持服务中软件升级(ISSU)。

丢包率因规模和功能而异，但预计在8s <> 180s的任意位置。

先决条件

要求

Cisco 建议您了解以下主题：

- 版本4.2.3 nV Edge Umbrella DDTS #1

- 版本4.3.1及更高版本
注意：版本4.3.2中添加了ASR 9001支持。早期版本中不应在ASR 9001上使用该脚本。

注意：ASR 9001支持以太网带外通道(EOBC)单向链路检测(UDLD)链路抖动历史记录(控制链路管理器(CLM)表版本)在5.1.0版中添加。

- Linux工作站

- 控制台服务器

- 集群中的两个ASR 9000

使用的组件

本文档中的信息基于两个ASR 9001（Cisco IOS XR版本4.3.2到5.1.0）和Ubuntu Linux工作站。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

逐机架升级概述

机架1关闭阶段

- 机架1与群集和外部网络隔离，并构成独立节点。

- 机架间链路(IRL)已禁用。

- 外置线路卡(LC)接口被禁用。

- 控制链路接口被禁用。

机架1激活阶段

- 目标软件在机架1上激活。

- 使用并行重新加载方法，在机架1上执行“安装激活”。

- 如果配置了Auto-FPD（现场可编程设备），则会立即发生。

紧急故障切换阶段

- 流量迁移至机架1。

- 机架0上的所有接口均已关闭。

- 机架1上的所有接口均投入使用。

- 协议会重新学习来自相邻路由器的路由，然后开始收敛。

机架0激活阶段

- 目标软件在机架0上激活。

- 使用并行重新加载方法，在机架0上执行Install Activate。

清理阶段

- 控制链路重新激活。

- IRL重新激活。

- 机架0重新加入集群作为备份。

- 升级过程中禁用的所有外部链路均恢复运行。

配置

网络图

注意：要获取有关本部分中所使用命令的更多信息，可使用命令查找工具（仅限已注册客户）。

注意：ASR 9001每个机箱只有1个控制台端口。

1. 检索脚本的副本。
Enter into KSH and copy the script to disk0:

From exec mode type 'run' to enter KSH.

Copy the file from /pkg/bin/ folder using the following command:

cp /pkg/bin/nv_edge_upgrade.exp <destination>

eg: cp /pkg/bin/nv_edge_upgrade.exp /disk0:

After this the script can be copied off the router and modified.

2. 在Linux服务器上安装expect脚本软件。
sudo yum install expect

或

sudo apt-get install expect

3. 确定expect脚本安装在Linux服务器上的什么位置。
root@ubuntu:~$ whereis expect

expect: /usr/bin/expect /usr/bin/X11/expect /usr/share/man/man1/expect.1.gz

root@ubuntu:~$

4. 修改nv_edge_upgrade.exp脚本中的第一行，使其与expect脚本软件的正确主目录匹配。
#!/usr/bin/expect -f

5. 修改脚本以匹配控制台服务器的设置。
注：如果升级ASR 9001集群，可以保持备用编址不变。该脚本使用伪备用编址成功运行。

set rack0_addr      "172.18.226.153"

set rack0_port      "2049"

set rack0_stby_addr "172.27.152.19"

set rack0_stby_port "2004"

set rack1_addr      "172.18.226.153"

set rack1_port      "2050"

set rack1_stby_addr "172.27.152.19"

set rack1_stby_port "2007"

6. 修改脚本以包含登录凭证。
set router_username "cisco"

set router_password "cisco"

7. 修改脚本以包含新图像列表
set image_list       "disk0:asr9k-mini-px-5.1.0  \

disk0:asr9k-fpd-px-5.1.0 \

disk0:asr9k-mpls-px-5.1.0 \

disk0:asr9k-mgbl-px-5.1.0 \

disk0:asr9k-bng-px-5.1.0 \ "

或者重新加载SMU以激活。

set image_list       "disk0:asr9k-px-5.1.0-CSCxxXXXXX-1.0.0  \ "

8. 修改脚本以包括IRL。输入show nv edge data forwarding location 0/RSP0/CPU0命令以检查链路。
set irl_list {{TenGigE 0/0/2/0} {TenGigE 0/0/2/1} {TenGigE 1/0/2/0} {TenGigE 1/0/2/1} }

9. 修改脚本以包括Linux Telnet断开序列。八进制值35相当于Ctrl-]键的组合，用于平稳终止控制台反向Telnet连接并允许脚本成功完成。修改应围绕脚本中的第162行。
proc router_disconnect { } {

global debug_mode

global connected_rack

if {$debug_mode == 1} { return }

send -- "\35"

sleep 1

expect -exact "telnet> "

send -- "quit\r"

expect eof

set connected_rack -1

sleep 5

10. 安装，将新软件或SMU添加到ASR 9000集群。
admin

install add tar ftp://cisco:cisco@10.118.12.236/5.1.0.tar sync

11. 在install add操作完成后，断开与集群控制台端口的所有活动终端会话。

12. 从Linux服务器激活脚本。
root@ubuntu:~/nV$ expect nv_edge_upgrade.exp

########################

This CLI Script performs a software upgrade on

an ASR9k Nv Edge system, using a rack-by-rack

parallel reload method.  This script will modify

the configuration of the router, and will incur

traffic loss.

Do you wish to continue [y/n] y

验证

使用本部分可确认配置能否正常运行。

脚本/升级的进程在Linux工作站上可见。逐机架升级大约需要45到60分钟才能完成。

在ASR 9000上，完成以下步骤以确认软件升级/SMU激活和nV Edge系统状态：

1. 检验XR软件。
RP/0/RSP0/CPU0:ASR9006#show install active summary

Mon Mar 31 12:43:43.825 EST

Default Profile:

SDRs:

Owner

Active Packages:

disk0:asr9k-fpd-px-5.1.0

disk0:asr9k-mgbl-px-5.1.0

disk0:asr9k-mpls-px-5.1.0

disk0:asr9k-mini-px-5.1.0

disk0:asr9k-bng-px-5.1.0

disk0:asr9k-px-5.1.0-CSCxxXXXXX-1.0.0

RP/0/RSP0/CPU0:ASR9006#show install committed summary

Mon Mar 31 12:44:07.250 EST

Default Profile:

SDRs:

Owner

Committed Packages:

disk0:asr9k-fpd-px-5.1.0

disk0:asr9k-mgbl-px-5.1.0

disk0:asr9k-mpls-px-5.1.0

disk0:asr9k-mini-px-5.1.0

disk0:asr9k-bng-px-5.1.0

disk0:asr9k-px-5.1.0-CSCxxXXXXX-1.0.0

2. 检验数据平面。
show nv edge data forwarding location all

<Snippet>

-----------------node0_RSP0_CPU0------------------

nV Edge Data interfaces in forwarding state: 4

TenGigE0_0_1_3                  <-->  TenGigE1_0_0_3

TenGigE0_1_1_3                  <-->  TenGigE1_1_0_3

TenGigE0_2_1_3                  <-->  TenGigE1_2_0_3

TenGigE0_3_1_3                  <-->  TenGigE1_3_0_3

<Snippet>

在此输出中，IRL应显示为转发状态。

3. 检验控制平面。
show nv edge control control-link-protocols location 0/RSP0/CPU0

<Snippet>

Port enable administrative configuration setting: Enabled

Port enable operational state: Enabled

Current bidirectional state: Bidirectional

Current operational state: Advertisement - Single neighbor detected

Priority lPort             Remote_lPort      UDLD STP

======== =====             ============      ==== ========

0        0/RSP0/CPU0/0     1/RSP0/CPU0/0     UP   Forwarding

1        0/RSP0/CPU0/1     1/RSP1/CPU0/1     UP   Blocking

2        0/RSP1/CPU0/0     1/RSP1/CPU0/0     UP   On Partner RSP

3        0/RSP1/CPU0/1     1/RSP0/CPU0/1     UP   On Partner RSP

从此输出中，“Current bidirectional state”应显示为“Bidirectional”，并且只有一个端口应处于“Forwarding”状态。

4. 检验集群状态。
RP/0/RSP0/CPU0:ASR9006#admin show dsc

---------------------------------------------------------

Node  (     Seq)     Role       Serial State

---------------------------------------------------------

0/RSP0/CPU0  (       0)   ACTIVE  FOX1613G35U PRIMARY-DSC

0/RSP1/CPU0  (10610954)  STANDBY  FOX1613G35U NON-DSC

1/RSP0/CPU0  (  453339)  STANDBY  FOX1611GQ5H NON-DSC

1/RSP1/CPU0  (10610865)   ACTIVE  FOX1611GQ5H BACKUP-DSC

此命令显示系统中所有路由交换机处理器(RSP)的DSC（机架间）状态和冗余角色（机架内）。

在本例中：

- 机架0上的RSP0是机架的主要DSC和活动RSP。

- 机架0上的RSP1是非DSC和机架的备用RSP。

- 机架1上的RSP0是机架的非DSC和备用RSP。

- 机架1上的RSP1是机架的备用DSC和活动RSP。

注意：DSC角色用于仅在系统中完成一次的任务，例如应用配置或执行安装活动。

注：主RSP的角色取决于机架和RSP的引导顺序。

故障排除

目前没有针对此配置的故障排除信息。

注意事项

- 逐机架升级与管理局域网拆分检测功能不兼容。升级之前应禁用此功能。

- 默认情况下，脚本未启用自动FPD。升级前应启用此功能。

- 任何正在进行的安装操作都需要在此升级之前完成。

- 所有活动软件包都必须在此升级过程（管理员安装提交）之前提交。

- 脚本会完成对所发生错误的最少检查。建议在执行脚本之前在路由器上输入install activate test命令，以验证映像集。

- 强烈建议在升级之前备份路由器的配置。

- 集群不支持ISSU，即使对SMU激活也是如此。