本帖最后由 xupeng 于 2015-4-12 16:59 编辑 本文针对运行15.1SY的SUP2T,其他软硬件平台的IOS升级,请查阅对应configuration guide.
第一种方法: Fast Software Upgrade(FSU) 快速软件升级
通过FSU对VSS进行升级,与基于RPR的独立机箱的FSU是类似的.
当独立机箱升级时,会将standby引擎重启, 而VSS升级时会将standby机箱重启.在FSU过程中,主备机箱的软件版本不同,形成RPR冗余模式,无法进行SSO状态化切换,此时系统的停机时间将参照RPR切换时间.
配置案例:
Router# config terminal
Router(config)# no boot system //移除之前配置的参数
Router(config)# config-register0x2102 //设置配置寄存器值为0x2102
Router(config)# boot system flashdisk0:image_name //指定加载新的IOS的路径
Router(config)# end
Router# copyrunning-config startup-config //保存配置
Router# redundancy reloadpeer //重启standby机箱,使其运行新的IOS. 由于两个机箱IOS版本不一致,standby机箱将进入RPR冗余模式. 重启standby机箱之前,需要等待一段时间,确保所有配置同步完成.
Router# redundancyforce-switchover //将active的角色切换到运行了新IOS的standby机箱上. 所有模块将会重启,并且从新的active机框下载板卡的软件. 重启后,将运行新的IOS成为VSS standby.
第二种方法: Enhanced Fast Software Upgrade (eFSU) 增强快速软件升级
eFSU与ISSU( in-service software upgrade)使用相同的命令行和软件基础设施. 与ISSU不同的是它会重启板卡,造成数据流量中断.eFSU的升级方式与单一机框双引擎的eFSU升级步骤是相同的,只不过现在这2块引擎在两台不同的机框内. 在eFSU过程中,VSS standby机箱内的引擎和板卡, 将会被升级并形成SSO冗余模式. 随后进行状态化切换,对另一台机箱进行升级,并使其成为VSS standby.
VSS的eFSU升级包含以下阶段:
-Preparation
-Loadversion Stage
-Runversion Stage
-Acceptversion Stage (Optional)
-Commitversion Stage
-Abortversion (Optional)
在每个阶段,有对应的issu命令行,你可以确认系统的状态,或者在进入下一个阶段之前进行回退.
Preparation
在初始化eFSU进程之前, 需要将升级所需的IOS拷贝到每个机箱的引擎中. 否则,初始化命令将会被拒绝. VSS必须处于稳定的运行状态, 一台机箱是VSS active状态, 另一台是VSS standby状态.
Loadversion Stage
当你执行 issu loadversion命令指定升级所需IOS的路径,eFSU升级随之开始.确认输入issu loadversion命令后,整台VSS standby机箱包括引擎和板卡都将会重启加载新的IOS. 由于VSS standby机箱的板卡在重启过程中无法转发数据,在这个阶段,整个VSS的转发能力将临时降至50%. 在重启之后,VSS standby机箱加载新的IOS,并进入SSO模式,恢复流量转发能力. 在此时, VSS standby机箱运行的IOS软件版本与VSS active机箱不同. VSSactive机箱需要与两个机箱内运行着不同IOS的板卡通信.
Runversion Stage
当运行新IOS的VSS standby成功进入SSO模式后,你可以使用 issu runversion命令. 这条命令,将强制进行主备切换,让升级后的VSS standby机箱成为新的VSSactive机箱. 原先的VSS acitve机箱将会重启并运行旧IOS,成为SSO模式的VSS standby机箱. 如同在loadversion阶段, 当VSS standby机箱重启时,VSS的转发能力将临时降至50%.此时,VSS active和VSS standby机箱运行着不同的软件版本.
Acceptversion Stage (Optional)
当你执行issu runversion命令后, 当主备切换到运行新IOS的机箱时, 将自动启用回退计时器(rollbacktimer), 它将作为一种安全措施,以确保升级过程不会导致VSS无法运行.在回退计时器超时之前, 你必须接受或者承认新的软件版本.如果计时器超时, 已经升级了的机箱将重启,并回退到旧的软件版本. 想要停止回退计时器,可以输入 issuacceptversion 命令. 在开始eFSU升级之前,你可以禁止回退计时器,或者配置计时器值(默认45分钟,最大可以配置到2小时).
在这个阶段, 你可以检验运行在新IOS的VSS active 机箱的功能.当你满意并愿意接受当前的新IOS版本, 可以使用 issu commitversion命令去完成升级过程.
Commitversion Stage
需要使用issu commitversion来完成eFSU,并将另一台机箱进行软件升级. VSS standby机箱会重启并加载新IOS成为VSS standby. 如同在loadversion阶段,当板卡重启并初始化时, VSS的转发能力将临时降至50%.
在成功重启成为VSS standby之后, 便完成了对VSS的升级.
Abortversion (Optional)
当你在执行 issu commitversion命令之前的任何时候, 你可以使用 issu abortversion命令将终止升级过程并回退. 如果软件检测到故障,升级过程也将自动终止.回退过程和当前状态相关. 如果在执行issu runversion命令之前终止eFSU, VSS standby 机箱会重启加载旧IOS. 如果在执行issu runversion命令之后终止eFSU, 执行了主备切换. 运行旧IOS的VSS standby机箱将成为VSS active机箱. 先前的VSS active机箱将会重启并加载旧IOS,完成回退.
配置eFSU回退计时器
Router(config)# issu set rollback-timer 3600
% Rollback timer value set to [ 3600 ] seconds
Router(config)# issu set rollback-timer 01:00:00
% Rollback timer value set to [ 3600 ] seconds
//配置回退计时器,有两种格式: seconds 或者 hh:mm:ss, 配置范围是0到7200秒(2小时), 默认是2700秒(45分钟). 设置为0,将禁止回退计时器.
Router# show issurollback timer //显示当前回退计时器值
终止eFSU升级
Router# issu abortversion //停止升级进程并回退到先前的软件版本.
执行eFSU升级:
Router# copy tftp disk_name //使用TFTP将新IOS拷贝到VSS active和standby机箱中.
Router# show issu state [switch/slot ] [ detail ] //(可选命令)查看VSS是否准备好进行eFSU升级.在任何一个阶段,都可以使用 show issustate命令去查看升级的状态
Router# issu loadversion
[ active_switch/slot ]active-image [standby_switch/slot ]standby-image //开始升级,让VSS standby加载新IOS.
Router# issu runversion //主备切换. 使运行新IOS的VSS standby 成为VSS active. 原先的VSS active将运行旧IOS并成为VSS standby
Router# issuacceptversion //(可选命令)停止回退计时器, 确保IOS升级过程不会由于回退计时器超时而被自动中断.
Router# issu commitversion //使VSS standby机箱加载新IOS
Router# show issu state [switch/slot ][ detail ] //查看升级状态. 如果升级成功,VSS acitve和standby都运行着新IOS.
eFSU升级案例:
1/确认系统就绪
在将新IOS文件拷贝到主备引擎中,使用show issu state detail和showredundancy status命令来检查VSS eFSU升级是否准备就绪.其中一台机箱必须处于active状态,另一台处于standby状态. 两台机箱都需处于ISSU init状态和SSO 冗余状态.在以下输出中, 两台机箱都运行着'oldversion'镜像.
Router# show issu state detail
Slot = 1/2
RP State = Active
ISSU State = Init
Boot Variable =disk0:s72033-oldversion.v1,12;
Operating Mode = sso
Primary Version = N/A
Secondary Version = N/A
Current Version =disk0:s72033-oldversion.v1
Variable Store = PrstVbl
Slot = 2/7
RP State = Standby
ISSU State = Init
Boot Variable =disk0:s72033-oldversion.v1,12;
Operating Mode = sso
Primary Version = N/A
Secondary Version = N/A
Current Version =disk0:s72033-oldversion.v1
Router# show redundancy status
my state = 13 -ACTIVE
peer state = 8 -STANDBY HOT
Mode = Duplex
Unit = Secondary
Unit ID = 18
Redundancy Mode (Operational) =sso
Redundancy Mode (Configured) = sso
Redundancy State = sso
Maintenance Mode = Disabled
Communications = Up
client count = 132
client_notification_TMR = 30000milliseconds
keep_alive TMR = 9000 milliseconds
keep_alive count = 0
keep_alive threshold = 18
RF debug mask = 0x0
2/让VSS stadnby机箱加载新的IOS
输入 issu loadversion 命令开始升级. 在这步, VSS standby机箱重启,加载新IOS, 成为SSO冗余模式的VSS standby机箱. 当配置同步后, 显示'Bulk syncsucceeded'信息表示这步已经完成.
Router# issu loadversion disk0:s72033-newversion.v2
000133: Aug 6 16:17:44.486 PST:%LINEPROTO-5-UPDOWN: Line protocol on Interface TenGigabitEthernet1/2/4,changed state to down
000134: Aug 6 16:17:43.507 PST:%LINEPROTO-5-UPDOWN: Line protocol on Interface TenGigabitEthernet2/7/4,changed state to down
000135: Aug 6 16:17:43.563 PST:%LINK-3-UPDOWN: Interface TenGigabitEthernet2/7/4, changed state to down
000136: Aug 6 16:17:44.919 PST:%LINK-3-UPDOWN: Interface TenGigabitEthernet1/2/4, changed state to down
(Deleted many interface andprotocol down messages)
%issu loadversionexecuted successfully, Standby is being reloaded
(Deleted many interface andprotocol down messages, then interface and protocol up messages)
0000148: Aug 6 16:27:54.154 PST:%LINEPROTO-5-UPDOWN: Line protocol on Interface TenGigabitEthernet1/2/5,changed state to up
000149: Aug 6 16:27:54.174 PST:%LINK-3-UPDOWN: Interface TenGigabitEthernet2/7/5, changed state to up
000150: Aug 6 16:27:54.186 PST:%LINEPROTO-5-UPDOWN: Line protocol on Interface TenGigabitEthernet2/7/5,changed state to up
000151: Aug 616:32:58.030 PST: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED:Bulk Sync succeeded
3/确认VSS standby机箱运行新的IOS
你可以使用 show issu state detail和show redundancy命令检查两台机箱是否处于ISSU Load Version状态 和SSO冗余状态. 在以下的输出中, VSS standby 机箱正运行 “newversion” 镜像.
Router# show issu state detail
Slot = 1/2
RP State = Active
ISSU State = Load Version
Boot Variable = disk0:s72033-oldversion.v1,12
Operating Mode = sso
Primary Version = disk0:s72033-oldversion.v1
Secondary Version = disk0:s72033-newversion.v2
Current Version = disk0:s72033-oldversion.v1
Variable Store = PrstVbl
Slot = 2/7
RP State = Standby
ISSU State = Load Version
Boot Variable =disk0:s72033-newversion.v2,12;disk0:s72033-oldversion.v1,12
Operating Mode = sso
Primary Version = disk0:s72033-oldversion.v1
Secondary Version = disk0:s72033-newversion.v2
Current Version = disk0:s72033-newversion.v2
Router# show redundancy status
my state = 13 -ACTIVE
peer state = 8 -STANDBY HOT
Mode = Duplex
Unit = Secondary
Unit ID = 18
Redundancy Mode (Operational) = sso
Redundancy Mode (Configured) = sso
Redundancy State = sso
Maintenance Mode = Disabled
Communications = Up
client count = 132
client_notification_TMR = 30000 milliseconds
keep_alive TMR = 9000 milliseconds
keep_alive count = 1
keep_alive threshold = 18
RF debug mask = 0x0
4/执行准备切换
当VSS standby 机箱在SSO冗余模式下成功运行新的IOS, 执行issu runversion命令来切换主备引擎.已经升级到新IOS的VSS standby机箱,它将成为新的VSS active机箱. 原先的active机箱将会重启,运行旧IOS成为新的VSS standby 机箱.当配置同步后, 显示'Bulk syncsucceeded'信息表示这步已经完成.
Router# issu runversion
This command will reload the Active unit. Proceed ? [confirm]
(Deleted many lines)
Download Start
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Deletedmany lines)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Download Completed! Booting the image.
Self decompressing the image :##########################################################################################
(Deleted many lines)
################################################################################[OK]
running startup....
(Deleted many lines)
000147: Aug 6 16:53:43.199 PST: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED:Bulk Sync succeeded
5/确认主备切换
可以使用 show issu state detail和 show redundancy命令去检查两台设备处于 ISSU Run Version状态和SSO冗余状态.在以下输出中, active机箱现在运行在“newversion”镜像.
Router# show issu state detail
Slot = 2/7
RP State = Active
ISSU State = Run Version
Boot Variable =disk0:s72033-newversion.v2,12;disk0:s72033-oldversion.v1,12
Operating Mode = sso
Primary Version = disk0:s72033-newversion.v2
Secondary Version = disk0:s72033-oldversion.v1
Current Version = disk0:s72033-newversion.v2
Variable Store = PrstVbl
Slot = 1/2
RP State = Standby
ISSU State = Run Version
Boot Variable = disk0:s72033-oldversion.v1,12
Operating Mode = sso
Primary Version = disk0:s72033-newversion.v2
Secondary Version = disk0:s72033-oldversion.v1
Current Version = disk0:s72033-oldversion.v1
Router# show redundancy status
my state = 13 -ACTIVE
peer state = 8 -STANDBY HOT
Mode = Duplex
Unit = Primary
Unit ID = 39
Redundancy Mode (Operational) = sso
Redundancy Mode (Configured) = sso
Redundancy State = sso
Maintenance Mode = Disabled
Communications = Up
client count = 134
client_notification_TMR = 30000 milliseconds
keep_alive TMR = 9000 milliseconds
keep_alive count = 1
keep_alive threshold = 18
RF debug mask = 0x0
6/ 让VSS standby机箱加载新IOS
当VSS active机箱在SSO冗余模式运行着新IOS,可以执行issu acceptversion 命令去停止回退计时器, 这样可以无限期停留在这个阶段. 或者使用 issu commitversion命令去继续eFSU升级步骤. 执行 issu commitversion 命令,将会升级VSS standby机箱并完成后续的eFSU升级过程. VSS standby机箱重启,加载运行新IOS,并成为SSO冗余状态的VSS standby机箱.当配置同步后, 显示'Bulk sync succeeded'信息表示这步已经完成.
Router# issu commitversion
Building configuration...
[OK]
000148: Aug 6 17:17:28.267 PST: %LINEPROTO-5-UPDOWN: Line protocolon Interface TenGigabitEthernet2/7/4, changed state to down
000149: Aug 6 17:17:28.287 PST: %LINEPROTO-5-UPDOWN: Line protocolon Interface TenGigabitEthernet1/2/4, changed state to down
(Deleted many interface and protocol down messages)
%issu commitversion executedsuccessfully
(Deleted many interface and protocol down messages, then interfaceand protocol up messages)
000181: Aug 6 17:41:51.086 PST: %LINEPROTO-5-UPDOWN: Line protocolon Interface TenGigabitEthernet1/2/5, changed state to up
000182: Aug 6 17:42:52.290 PST: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED:Bulk Sync succeeded
7/确认升级完成
执行 show issu state detail和 show redundancy命令, 查询eFSU的结果.
在以下输出中,两台设备都运行在“newversion” 镜像, 表示已经成功进行eFSU升级. 如同在进行eFSU升级之前的状态,此时他们会再次处于ISSU Init Version 状态.
Router# show issu state detail
Slot = 2/7
RP State = Active
ISSU State = Init
Boot Variable =disk0:s72033-newversion.v2,12;disk0:s72033-oldversion.v1,12
Operating Mode = sso
Primary Version = N/A
Secondary Version = N/A
Current Version = disk0:s72033-newversion.v2
Variable Store = PrstVbl
Slot = 1/2
RP State = Standby
ISSU State = Init
Boot Variable =disk0:s72033-newversion.v2,12;disk0:s72033-oldversion.v1,12
Operating Mode = sso
Primary Version = N/A
Secondary Version = N/A
Current Version = disk0:s72033-newversion.v2
Router# show redundancy status
my state = 13 -ACTIVE
peer state = 8 -STANDBY HOT
Mode = Duplex
Unit = Primary
Unit ID = 39
Redundancy Mode (Operational) = sso
Redundancy Mode (Configured) = sso
Redundancy State = sso
Maintenance Mode = Disabled
Communications = Up
client count = 134
client_notification_TMR = 30000 milliseconds
keep_alive TMR = 9000 milliseconds
keep_alive count = 1
keep_alive threshold = 18
RF debug mask = 0x0