目錄

簡介

什麼是 ISSU

支援的平台與版本支援一覽表

執行 ISSU 之前的必備條件

1. 查看目前程式碼版本

2. 查看啟動模式

3. 查看快閃記憶體是否有充足的可用記憶體

4. 查看交換器是否處於 SSO 模式

5. 查看自動啟動功能是否已經啟用

6. 查看目前的 ISSU 與安裝狀態

7. 複製即將升級/降級的新映像檔

ISSU 工作流程 - 實際升級

單一步驟工作流程

三步驟工作流程

執行 ISSU 後的檢查清單

ISSU 失敗時採取的行動

中止 ISSU

清理 ISSU 狀態

簡介

本文件說明在 Catalyst 3850 和 Catalyst 9000 系列交換器上執行服務中軟體升級 (ISSU) 所需的步驟。

什麼是 ISSU

服務中軟體升級這項程序，是當網路持續轉送封包時，在裝置上將映像檔升級至另一個映像檔的過程。ISSU 可協助網路管理員在執行軟體升級時避免網路中斷。映像檔會以安裝模式進行升級，也就是說每個套件都是個別升級的。

支援 StackWise-Virtual 的 Catalyst 3850 與 Catalyst 9000 全系列產品，以及配備雙監督器的 Catalyst 9400/9600 獨立式機箱都支援 ISSU。

StackWise Virtual (SVL) 包含了兩個彼此連結的交換器以構成一個虛擬交換器。SVL 支援服務中軟體升級。

支援的平台與版本支援一覽表

請先查看平台是否確實支援 ISSU，再繼續執行 ISSU。另外，請確認目前的程式碼與目標程式碼是否支援 ISSU。有關支援平台與 ISSU 相容性一覽表的更多詳細資料，請參閱這裡：

不同版本間的 ISSU 支援

執行 ISSU 之前的必備條件

附註：本檔案中的範例基於設定為Stackwise-Virtual的Cisco Catalyst 9500交換器。這些步驟適用於具有雙管理引擎的Cat9400 / Cat9600獨立機箱，也適用於配置為Stackwise-Virtual的Catalyst 3850 / Catalyst 9000裝置。

為了避免在此過程中丟失任何資料包，ISSU需要在節點中同時向主用和備用裝置提供冗餘。由於發生重新載入，因此需要在它們之間進行切換，以確保您的網路具有高可用性。

1. 查看目前程式碼版本

C9500#show version | in IOS XE

Cisco IOS XE Software, Version 16.09.02

2. 查看啟動模式

只有 Stackwise Virtual 中的兩個交換器都在安裝模式中啟動時才支援 ISSU。

C9500#show ver | in INSTALL

*    1 50    C9500-40X          16.9.2            CAT9K_IOSXE           INSTALL

2 50    C9500-40X          16.9.2            CAT9K_IOSXE           INSTALL

On Catalyst 9400, the above output is not available. Check if the switch booted from packages.conf file

C9400#show version | in System image

System image file is "flash:packages.conf"

如果機箱以套件模式啟動，則不支援 ISSU。當交換器在套件模式下執行時，如果您嘗試執行 ISSU，就會看到此錯誤。

*Nov 13 14:55:57.338: %INSTALL-5-INSTALL_START_INFO: Chassis 1 R1/0: install_engine: Started install one-shot ISSU flash:cat9k_iosxe.16.09.02.SPA.bininstall_add_activate_commit: Adding ISSU

ERROR: install_add_activate_commit: One-Shot ISSU operation is not supported in bundle boot mode

FAILED: install_add_activate_commit  exit(1) Tue Nov 13 14:56:03 UTC 2018

3. 查看快閃記憶體是否有充足的可用記憶體

C9500#dir flash: | in free

11353194496 bytes total (8565174272 bytes free)

C9500#dir stby-flash: | in free

11353980928 bytes total (8566865920 bytes free)

確認您的快閃記憶體具有至少 1 GB 的儲存空間，以擴充新的映像檔。如果空間不足，請清理舊的安裝檔案，並使用 install remove inactive 命令。

4. 查看交換器是否處於 SSO 模式

C9500#show redundancy

Redundant System Information :

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

Available system uptime = 4 minutes

Switchovers system experienced = 0

Standby failures = 0

Last switchover reason = none

Hardware Mode = Duplex

Configured Redundancy Mode = sso

Operating Redundancy Mode = sso

Maintenance Mode = Disabled

Communications = Up

Current Processor Information :

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

Active Location = slot 1

Current Software state = ACTIVE

Uptime in current state = 30 minutes

Image Version = Cisco IOS Software [Fuji], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 16.9.2, RELEASE SOFTWARE (fc4)

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2018 by Cisco Systems, Inc.

Compiled Mon 05-Nov-18 19:32 by mcpre

BOOT = flash:packages.conf;

CONFIG_FILE =

Configuration register = 0x102

Peer Processor Information :

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

Standby Location = slot 2

Current Software state = STANDBY HOT

Uptime in current state = 26 minutes

Image Version = Cisco IOS Software [Fuji], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 16.9.2, RELEASE SOFTWARE (fc4)

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2018 by Cisco Systems, Inc.

Compiled Mon 05-Nov-18 19:32 by mcpre

BOOT = flash:packages.conf;

CONFIG_FILE =

Configuration register = 0x102

5. 查看自動啟動功能是否已經啟用

C9500#show boot system

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

Switch 1

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

Current Boot Variables:

BOOT variable = flash:packages.conf;

Boot Variables on next reload:

BOOT variable = flash:packages.conf;

Manual Boot = no                       <<<<< Manual Boot should be set to "no"

Enable Break = no

Boot Mode = DEVICE

iPXE Timeout = 0

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

Switch 2

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

Current Boot Variables:

BOOT variable = flash:packages.conf;

Boot Variables on next reload:

BOOT variable = flash:packages.conf;

Manual Boot = no

Enable Break = no

Boot Mode = DEVICE

iPXE Timeout = 0

如果未啟用「自動啟動」，可以按照以下方式變更設定：

C9500(config)#no boot manual

6. 查看目前的 ISSU 與安裝狀態

附註：此步驟非常重要！

C9500#show issu state detail

--- Starting local lock acquisition on switch 1 ---

Finished local lock acquisition on switch 1

No ISSU operation is in progress      <<<<<<<<< If see anything else, abort ISSU before proceeding.

Check on how to manually abort ISSU.

C9500#show install summary

[ Switch 1 2 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   C    16.9.2.0.2433      <<<<<<<< State should be Activated & Committed for current version alone.

If not clear install state before proceeding. Check on how to clear install state.

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

Auto abort timer: inactive

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

7. 複製即將升級/降級的新映像檔

只需要將映像檔複製到作用中機箱（若為 Stackwise），或作用中監督器（若為 Cat9400 雙 SUP）即可。

C9500#copy tftp: bootflash:

Address or name of remote host []? X.X.X.X

Source filename []? cat9k_iosxe.16.09.02.SPA.bin

Destination filename [cat9k_iosxe.16.09.02.SPA.bin]?

ISSU 工作流程 - 實際升級

一旦所有必備條件經確認後，您便可繼續進行實際升級並使用下列其中一個方法：

- 單一步驟工作流程（僅一個步驟，且不支援復原）

- 三步驟工作流程（包含 3 個步驟，並支援在失敗時復原）

單一步驟工作流程

此工作流程僅含有一個步驟，並且有助於最佳化。

附註：無法回滾，因為升級已自動提交。如果您想要復原，請繼續進行 3 步驟工作流程。

// This example has SW-2 as Active and Sw-1 as Standby before starting ISSU

C9500#install add file flash:cat9k_iosxe.16.09.02.SPA.bin activate issu commit

install_add_activate_commit: START Fri Feb  8 10:07:51 jst 2019

*Feb  8 10:07:52.456 jst: %INSTALL-5-INSTALL_START_INFO: Switch 2 R0/0: install_engine: Started install one-shot ISSU flash:cat9k_iosxe.16.09.02.SPA.bininstall_add_activate_commit: Adding ISSU

--- Starting initial file syncing ---

[2]: Copying flash:cat9k_iosxe.16.09.02.SPA.bin from switch 2 to switch 1

[1]: Finished copying to switch 1

Info: Finished copying flash:cat9k_iosxe.16.09.02.SPA.bin to the selected switch(es)

Finished initial file syncing

--- Starting Add ---

Performing Add on all members

[1] Add package(s) on switch 1

[1] Finished Add on switch 1

[2] Add package(s) on switch 2

[2] Finished Add on switch 2

Checking status of Add on [1 2]

Add: Passed on [1 2]

Finished Add

install_add_activate_commit: Activating ISSU

Going to start Oneshot ISSU install process

STAGE 0: Initial System Level Sanity Check before starting ISSU

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

--- Verifying install_issu supported ---

--- Verifying standby is in Standby Hot state ---

--- Verifying booted from the valid media ---

--- Verifying AutoBoot mode is enabled ---

Finished Initial System Level Sanity Check

STAGE 1: Installing software on Standby

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

--- Starting install_remote ---

Performing install_remote on Chassis remote

[1] install_remote package(s) on switch 1

[1] Finished install_remote on switch 1

install_remote: Passed on [1]

Finished install_remote

STAGE 2: Restarting Standby

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

--- Starting standby reload ---

Finished standby reload

--- Starting wait for Standby to reach terminal redundancy state ---     <<<<< Standby (Sw-1) reloads here!!!

<<<<<<<< After Standby (Sw-1) comes up >>>>>>>>>>>

*Feb  8 10:19:10.223 jst: %REDUNDANCY-3-IPC: IOS versions do not match.

*Feb  8 10:19:48.421 jst: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED: Bulk Sync succeeded

*Feb  8 10:19:49.422 jst: %RF-5-RF_TERMINAL_STATE: Terminal state reached for (SSO)   <<<<< Standby (Sw-1) comes up on new code and joins as Hot Standby..

*Feb  8 10:21:02.975 jst: %PLATFORM-6-HASTATUS_DETAIL: RP switchover, received chassis event became active. Switch to primary (count 1)   <<<<<< Switchover happens after this log and the previous active (Sw-2) reloads.

<<<<<<<< After new Standby (Sw-2) comes up >>>>>>>>

*Feb  8 10:27:09.715 jst: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED: Bulk Sync succeeded

*Feb  8 10:27:10.717 jst: %RF-5-RF_TERMINAL_STATE: Terminal state reached for (SSO).  <<<< ISSU commit starts after this automatically..

*Feb  8 10:28:27.302 jst: %INSTALL-5-INSTALL_START_INFO: Switch 2 R0/0: install_engine: Started install commit

%IOSXEBOOT-4-ISSU_ONE_SHOT: (rp/0): ISSU finished successfully

*Feb  8 10:29:32.127 jst: %INSTALL-5-INSTALL_COMPLETED_INFO: Switch 2 R0/0: install_engine: Completed install commit ISSU

在 ISSU 完成後繼續進行。

三步驟工作流程

- 此工作流程包括三個步驟：新增、啟用和提交。在啟用後，所有交換器都會升級至新的軟體版本（未自動認可的軟體除外），不過必須透過 install commit 命令手動執行。

- 此方法的優點在於，系統可以復原至先前的軟體版本。

- 如果復原計時器並未停止，則系統會自動復原，並使用 install auto-abort-timer stop 或 install commit 命令如果復原計時器停止，則新的軟體版本可以在裝置上持續執行任意時間，然後復原至先前的版本。

步驟1.安裝add。

此命令會將映像檔下載至啟動快閃記憶體，並且在兩個交換器上加以擴充。

// This example has SW-1 as Active and Sw-2 as Standby before starting ISSU

C9500#install add file flash:cat9k-universalk9.SPA.16.09.03.BETA.E1.SSA.bin.bin

install_add: START Fri Feb  8 09:22:00 jst 2019

*Feb  8 09:22:02.055 jst: %INSTALL-5-INSTALL_START_INFO: Switch 1 R0/0: install_engine: Started install add flash:cat9k-universalk9.SPA.16.09.03.BETA.E1.SSA.bin.bininstall_add: Adding PACKAGE

--- Starting initial file syncing ---

[1]: Copying flash:cat9k-universalk9.SPA.16.09.03.BETA.E1.SSA.bin.bin from switch 1 to switch 2

[2]: Finished copying to switch 2

Info: Finished copying flash:cat9k-universalk9.SPA.16.09.03.BETA.E1.SSA.bin.bin to the selected switch(es)

Finished initial file syncing

--- Starting Add ---

Performing Add on all members

[1] Add package(s) on switch 1

[1] Finished Add on switch 1

[2] Add package(s) on switch 2

[2] Finished Add on switch 2

Checking status of Add on [1 2]

Add: Passed on [1 2]

Finished Add

SUCCESS: install_add  Fri Feb  8 09:26:26 jst 2019  <<<< Wait until install_add says SUCCESS. If fails, manually abort ISSU.

步驟2.安裝啟用。

- 當您執行此命令時，此事件的順序就會發生：

(i) 復原計時器會啟動。如果復原計時器過期，系統會復原至 ISSU 開始之前的相同狀態。當您使用 install auto-abort-timer stop 命令時，復原計時器會停止運作。當您使用 install abort issu 命令時，便可復原 ISSU。

(ii) 待命交換器會以新的軟體佈建，而且會使用新的軟體版本重新載入。接著，作用中的交換器會以新的軟體佈建並重新載入。使用新映像檔的待命交換器現在會成為作用中交換器，而舊的作用中交換器則成為待命交換器。

當此程序結束時，兩個交換器都會以新的軟體映像檔執行。

C9500#install activate issu

install_activate: START Fri Feb  8 09:28:27 jst 2019

install_activate: Activating ISSU

*Feb  8 09:28:28.905 jst: %INSTALL-5-INSTALL_START_INFO: Switch 1 R0/0: install_engine: Started install activate ISSU

Going to start Activate ISSU install process

STAGE 0: Initial System Level Sanity Check before starting ISSU===================================================

--- Verifying install_issu supported ---

--- Verifying standby is in Standby Hot state ---

--- Verifying booted from the valid media ---

--- Verifying AutoBoot mode is enabled ---

Finished Initial System Level Sanity Check

STAGE 1: Installing software on Standby

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

--- Starting install_remote ---

Performing install_remote on Chassis remote

*Feb  8 09:28:31.880 jst: %INSTALL-5-INSTALL_AUTO_ABORT_TIMER_PROGRESS: Switch 1 R0/0: rollback_timer: Install auto abort timer can expire in 7200 seconds

[2] install_remote package(s) on switch 2

[2] Finished install_remote on switch 2

install_remote: Passed on [2]

Finished install_remote

STAGE 2: Restarting Standby

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

--- Starting standby reload ---

Finished standby reload--- Starting wait for Standby to reach terminal redundancy state ---      <<<<<<<< Standby (Sw-2) reloads here!!!*Feb  8 09:35:16.489 jst: %REDUNDANCY-3-IPC: IOS versions do not match.

*Feb  8 09:36:00.238 jst: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED: Bulk Sync succeeded

*Feb  8 09:36:01.240 jst: %RF-5-RF_TERMINAL_STATE: Terminal state reached for (SSO)     <<<< At this point, Standby (Sw-2) comes up with new code and joins as Hot Standby

Finished wait for Standby to reach terminal redundancy state

STAGE 3: Installing software on Active

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

--- Starting install_active ---

Performing install_active on Chassis 11] install_active package(s) on switch 1

[1] Finished install_active on switch 1

install_active: Passed on [1]

Finished install_active

Chassis 1 reloading, reason - Non participant detected

STAGE 4: Restarting Active (switchover to standby)      <<<<<<<< At this point, there is a switchover and then the previous Active (Sw-1) reloads.

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

--- Starting active reload ---

New software can load after reboot process is completed

SUCCESS: install_activate  Fri Feb  8 09:37:14 jst 2019

啟用狀態結束時，請檢查 ISSU 狀態。

C9500#show issu state detail

--- Starting local lock acquisition on switch 2 ---

Finished local lock acquisition on switch 2

Operation type: Step-by-step ISSU

Install type  : Image installation using ISSUCurrent state : Activated state

Last operation: Switchover

Completed operations:

Operation                           Start time

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

Activate location standby Chassis 2 2019-02-08:09:28:32

Activate location active Chassis 1  2019-02-08:09:36:03

Switchover                          2019-02-08:09:37:16

State transition: Added -> Standby activated -> Active switched-over

Auto abort timer: automatic, remaining time before rollback: 01:43:55

Running image: flash:packages.conf

Operating mode: sso, terminal state reached    <<<<< Wait until SSO terminal state before proceeding to commit.

步驟 3.  Install commit。

commit 命令會執行必要的清理，使新軟體成為永久版本（移除舊版軟體），並停止復原計時器。在認可後，任何重新啟動都可以使用新軟體啟動。

C9500#install commit

install_commit: START Fri Feb  8 09:45:22 jst 2019

install_commit: Committing ISSU

*Feb  8 09:45:23.533 jst: %INSTALL-5-INSTALL_START_INFO: Switch 2 R0/0: install_engine: Started install commit

Going to start Commit ISSU install process

STAGE 0: Initial System Level Sanity Check before starting ISSU

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

--- Verifying install_issu supported ---

--- Verifying standby is in Standby Hot state ---

--- Verifying booted from the valid media ---

--- Verifying AutoBoot mode is enabled ---

Finished Initial System Level Sanity Check

--- Starting install_commit_2 ---

Performing install_commit_2 on Chassis 2

[2] install_commit_2 package(s) on switch 2

[2] Finished install_commit_2 on switch 2

install_commit_2: Passed on [2]

Finished install_commit_2

STAGE 1: Dispatching the commit command to remote

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

--- Starting install_commit_remote ---

Performing install_commit_remote on Chassis 1

Feb  8 09:48:33.364: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install commit

*Feb  8 09:48:33.352 jst: %INSTALL-5-INSTALL_START_INFO: Switch 1 R0/0: install_engine: Started install commit

Feb  8 09:51:27.505: %INSTALL-5-INSTALL_COMPLETED_INFO: R0/0: install_engine: Completed install commit ISSU

[1] install_commit_remote package(s) on switch 1

[1] Finished install_commit_remote on switch 1

install_commit_remote: Passed on [1]

Finished install_commit_remote

SUCCESS: install_commit  Fri Feb  8 09:51:27 jst 2019     <<<<< ISSU is completed here!!!!!

執行 ISSU 後的檢查清單

ISSU 順利完成後，

- 請檢查兩個交換器是否都以新軟體執行。

- 查看要清理的 show issu state detail 輸出，並且不要顯示任何進行中的 ISSU。

- 查看 show install issu history 輸出以確保 ISSU 作業成功（命令僅限 16.10.1 版與更新版本可用）。

- 在您啟用任何新功能之前，建議您給新軟體足夠的測試時間。

ISSU 失敗時採取的行動

- 如果 ISSU 失敗，預期自動中止功能可以將系統復原為初始狀態（舊版映像檔）。 不過，如果這個作法也失敗，預期會執行機箱的手動復原。

- 在手動復原期間，請檢查作用中與待命機箱是否都執行舊版映像檔（如果不是，請復原個別機箱）。

- 在您確認兩個機箱都執行舊版映像檔後，請執行 install remove inactive 以移除任何未使用的映像檔套件。

- 兩個機箱都執行舊版軟體後，請手動清理 ISSU 作業的所有內部狀態。（請參閱此處瞭解如何清理內部 ISSU 狀態）。

中止 ISSU

- 在 3 步驟工作流程的啟用 ISSU 程序進行期間，如果中止計時器過期，系統會自動中止並回到舊版映像檔。

附註：如果備用裝置在中止期間未達到SSO，則需要手動中止。此外，如果出於任何原因，您想要在過程中中止 ISSU，則需手動中止。

EXAMPLE : During install add, we notice these errors:

C9400#install add file flash:cat9k_iosxe.16.09.02.SPA.bin

install_add: START Tue Nov 13 20:47:53 UTC 2018

*Nov 13 20:47:54.787: %INSTALL-5-INSTALL_START_INFO: Chassis 1 R1/0: install_engine: Started install add flash:cat9k_iosxe.16.09.02.SPA.bininstall_add: Adding PACKAGE

--- Starting initial file syncing ---

[1]: Copying flash:cat9k_iosxe.16.09.02.SPA.bin from chassis 1 to chassis 2

[2]: Finished copying to chassis 2

Info: Finished copying flash:cat9k_iosxe.16.09.02.SPA.bin to the selected chassis

Finished initial file syncing

--- Starting Add ---

Performing Add on all members

[1] Add package(s) on chassis 1

[1] Finished Add on chassis 1

[2] Add package(s) on chassis 2

cp: cannot stat '/tmp/packages.conf': No such file or directory

[2] Finished Add on chassis 2

Checking status of Add on [1 2]

Add: Passed on [1]. Failed on [2]

Finished Add

FAILED: install_add  exit(1) Tue Nov 13 20:51:58 UTC 2018   <<<<<< install_add failed. If see any such error, first do a manual abort before proceeding further.

C9400#install abort issu

install_abort: START Tue Nov 13 20:57:40 UTC 2018

install_abort: Abort type ISSU subtype NONE smutype NONE

*Nov 13 20:57:41.759: %INSTALL-5-INSTALL_START_INFO: Chassis 1 R1/0: install_engine: Started install abort ISSU

NOTE: Going to start Abort ISSU install process

STAGE 0: Initial System Level Sanity Check before starting ISSU

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

--- Verifying install_issu supported ---

--- Verifying booted from the valid media ---

--- Verifying AutoBoot mode is enabled ---

Finished Initial System Level Sanity Check

FAILED: ABORT operation is not allowed in ADDED state

ERROR: install_abort  exit(2 ) Tue Nov 13 20:57:49 UTC 2018

*Nov 13 20:57:49.756: %INSTALL-5-INSTALL_COMPLETED_INFO: Chassis 1 R1/0: install_engine: Completed install abort ISSU

清理 ISSU 狀態

如果 ISSU 升級/降級/中止/自動中止失敗，則需要手動清理 ISSU 內部狀態。

C9400#sh issu state detail

--- Starting local lock acquisition on chassis 1 ---

Finished local lock acquisition on chassis 1

Operation type: One-shot ISSU

Install type  : Image installation using ISSU

Current state : Added state

Last operation: Activate location standby Chassis 2   <<<< Previous Add is still pending. This needs to be cleared before starting ISSU

Completed operations:

Operation                           Start time

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

Activate location standby Chassis 2 2018-11-13:16:26:34

State transition: Added

Auto abort timer: inactive

Running image: flash:packages.conf

Operating mode: sso, terminal state not reached

Enable Service Internal before you run this command

C9400#clear install state

clear_install_state: START Tue Nov 13 17:05:47 UTC 2018

--- Starting clear_install_state ---

Performing clear_install_state on all members

[1] clear_install_state package(s) on chassis 1

[1] Finished clear_install_state on chassis 1

Checking status of clear_install_state on [1]

clear_install_state: Passed on [1]

Finished clear_install_state

C9400#sh issu state detail

--- Starting local lock acquisition on chassis 1 ---

Finished local lock acquisition on chassis 1

No ISSU operation is in progress