HA不间断升级过程介绍

“HA不间断升级”故名思义就是说在 HA 升级过程中, HA-cluster 中的设备会一台一台的进行升级,从而保证了业务在升级过程中不中断。
上传 OS 的方法分为 Web 界面上传和通过命令行上传,本文介绍以 Web 界面上 传, 两台设备升级完成需要 15 分钟左右, 过程如下:

HA-Cluster不中断升级过程:
1.在主机 Web 界面上点击升级按钮。

2.主机把 OS 发给备机,备机准备并开始升级,然后自动重启,此过程需要 5分钟(或更长时间),请耐心等待。

3.备机升级完成,并切换成主机。

4.主机观察到备机升级成功并切换为新的主机后,开始准备升级,此过程需要 5 分钟(或更长时间),请耐心等待。

5.一旦准备完成,主机(此时为备)自动重启加载升级后 OS ,重启约 2 分钟。

6.主机(此时为备)重启后,形成 HA 。主机从原来的备同步配置(外部配置和内部配置),约 1~3 分钟。

此时,HA 重新建立,但是主备关系发生了切换,需要在此时的主(最开始的备) 手工执行切换 diagnose sys ha reset uptime 切换原来的主备关系。

升级操作建议
1. 操作前下载并阅读 Release 文档和升级说明文档,做到注意事项心中有数。可以参考文档:http://support.fortinet.com.cn/index.php?m=content&c=index&a=show&catid=18&id=440

2. 升级前后备份设备配置。

3. 接入 console 在主设备上, 记录 log 观察升级 过程,做到心中有数。 有问题也可以反馈厂商。

4.耐心等待,主备机升级的时间都会比较长。

升级步骤详解:
1.在 Web 界面上点击升级按钮,选择要升级的FortiOS。
举例:FGT101E从FortiOS5.6.11升级到FortiOS6.0.8,从https://support.fortinet.com/Download/FirmwareImages.aspx得知我直接升级即可,无需升级多次版本。
下载6.0.8到本地,以便通过GUI导入软件版本进行升级,同时升级之前备份配置文件:

 


准备工作做完,正式开始升级:



此时FortiOS将先传给备机,业务还是运行在主机上,等备机重启后将接管主机的业务,然后主机再重启升级,此过程业务是不中断的。

2.耐心等待与观察Console输出信息,做到心中有数。

以下为升级过程Consloe打印信息,其实管理员并不需要做什么,只需要请注意阅读并理解,做到心中有数,万一出现故障可以知道大概是哪一步的问题:

主防火墙的Console记录:
FGT101E_Master_379 # Checking new firmware integrity ...pass
Wait for HA to be master of all clusters...
Send image to HA slave. 
...........    \\ 主设备发送FortiOS到备设备
Wait for slave to restart..............................................................................................................................................................................................................   \\ 备机先升级,升级重启约5分钟,请耐心等待。
Wait for first slave to become new master.  \\ 备机升级并重启完毕后,主机会先等待备机变成新的主机,以便业务被备机先接管。

Firmware upgrade in progress ...   \\ 当备机成为新主机之后,主机将准备升级。

Done.   \\ 主机准备升级结束,开始正式升级主设备,升级过程约5分钟,请耐心等待。

The system is going down NOW !!
Please stand by while rebooting the system.
Restarting system.

FortiGate-101E (12:21-01.31.2017)
Ver:05000008
Serial number: FG101E4Q17000379
CPU: 1000MHz
Total RAM: 4 GB
Initializing boot device...
Initializing MAC... nplite#0
Please wait for OS to boot, or press any key to display configuration menu......

Booting OS...
Reading boot image... 2790976 bytes.
Initializing firewall...

System is starting...
FGT101E_Master_379 login: admin
Password: ********
Welcome !

FGT101E_Master_379 # get system status
Version: FortiGate-101E v6.0.8,build0303,191205 (GA)  \\ 主机后升级完毕
Virus-DB: 73.00133(2019-11-17 03:29)
Extended DB: 73.00133(2019-11-17 03:28)
IPS-DB: 6.00741(2015-12-01 02:30)
IPS-ETDB: 0.00000(2001-01-01 00:00)
APP-DB: 6.00741(2015-12-01 02:30)
INDUSTRIAL-DB: 6.00741(2015-12-01 02:30)
Serial-Number: FG101E4Q17000379
IPS Malicious URL Database: 1.00001(2015-01-01 01:01)
Botnet DB: 4.00622(2019-12-11 18:29)
BIOS version: 05000008
System Part-Number: P18829-04
Log hard disk: Available
Hostname: FGT101E_Master_379
Operation Mode: NAT
Current virtual domain: root
Max number of virtual domains: 10
Virtual domains status: 1 in NAT mode, 0 in TP mode
Virtual domain configuration: disable
FIPS-CC mode: disable
Current HA mode: a-p, master    // 升级完毕之后状态是主还是备将视具体情况而定:主防火墙和备防火墙重启完成时间相差五分钟以内,则后面重启的主机(优先级高的FGT)将会主动抢占为主设备,如果二者升级重启时间相差超过5分钟,则后重启的主设备将会处于备的状态,不会抢占回主的状态。
Cluster uptime: 29 days, 4 hours, 52 minutes, 1 seconds
Cluster state change time: 2020-01-02 16:50:00
Branch point: 0303
Release Version Information: GA
System time: Thu Jan  2 16:53:18 2020
FGT101E_Master_379 # 

备防火墙的Console记录:
FGT101E_Slave_045 # Get image from ha master OK.  // 主机发送FortiOS到备机上
Check image OK. 
Please wait for system to restart.  // 备机先开始升级并重启,因此业务在主机上运行
Firmware upgrade in progress ...
Done.

The system is going down NOW !!

Please stand by while rebooting the system.
Restarting system.

FortiGate-101E (11:30-08.18.2016)
Ver:05000005
Serial number: FG101E4Q17000045
CPU: 1000MHz
Total RAM: 4 GB
Initializing boot device...
Initializing MAC... nplite#0
Please wait for OS to boot, or press any key to display configuration menu......

Booting OS...
Reading boot image... 2790976 bytes.
Initializing firewall...
System is starting...
FGT101E_Slave_045 login: slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
slave succeeded to sync external files with master
slave's configuration is not in sync with master's, sequence:0
slave's configuration is not in sync with master's, sequence:1
slave's configuration is not in sync with master's, sequence:2
slave's configuration is not in sync with master's, sequence:3
slave's configuration is not in sync with master's, sequence:4
slave starts to sync with master
logout all admin users 

FGT101E_Slave_045 login: admin
Password: ********
Welcome !
FGT101E_Slave_045 # get system status
Version: FortiGate-101E v6.0.8,build0303,191205 (GA) \\ 备机先升级完毕
Virus-DB: 73.00133(2019-11-17 03:29)
Extended DB: 73.00133(2019-11-17 03:28)
IPS-DB: 6.00741(2015-12-01 02:30)
IPS-ETDB: 0.00000(2001-01-01 00:00)
APP-DB: 6.00741(2015-12-01 02:30)
INDUSTRIAL-DB: 6.00741(2015-12-01 02:30)
Serial-Number: FG101E4Q17000045
IPS Malicious URL Database: 1.00001(2015-01-01 01:01)
Botnet DB: 4.00622(2019-12-11 18:29)
BIOS version: 05000005
System Part-Number: P18829-04
Log hard disk: Available
Hostname: FGT101E_Slave_045
Operation Mode: NAT
Current virtual domain: root
Max number of virtual domains: 10
Virtual domains status: 1 in NAT mode, 0 in TP mode
Virtual domain configuration: disable
FIPS-CC mode: disable
Current HA mode: a-p, backup // 升级完毕之后状态是主还是备将视具体情况而定:主防火墙和备防火墙重启完成时间相差五分钟以内,则后面重启的主机(优先级高的FGT)将会主动抢占为主设备,如果二者升级重启时间相差超过5分钟,则后重启的主设备将会处于备的状态,不会抢占回主的状态。
Cluster uptime: 29 days, 4 hours, 56 minutes, 55 seconds
Cluster state change time: 2020-01-02 16:50:01
Branch point: 0303
Release Version Information: GA
System time: Thu Jan  2 16:58:13 2020

FGT101E_Slave_045 # 

3.手工切回 HA 状态
此步骤不是必要,升级完毕之后状态是主还是备将视具体情况而定:
情况1:主防火墙和备防火墙重启完成时间相差五分钟以内,则后面重启的主机(优先级高的FGT)将会主动抢占为主设备。如果是这种情况,则不需要任何的额外切换动作。
情况2:如果二者升级重启时间相差超过5分钟,则后重启的主设备将会处于备的状态,不会抢占回主的状态。这个时候才需要命令行进行强制的HA切换一下,让HA状态恢复到升级之前的主备状态。

如果有这样的第2种情况,HA-Cluster升级完毕之后,备机成了新的主,而旧的主机成为了备,并且想要将HA的状态切换到升级之前的状态,则只需要在备机(新的主机)上敲一条命令即可完成主备切换:

FGT101E_Slave_045 # diagnose sys ha reset-uptime   // 此命令为Reset 当前设备的 HA 时间,以便重新进行HA的选举。reset-uptime相当于把备机的HA运行时间清0,这样运行时间长且优先级高的主设备,一定会重新选举为主的。

再观察HA的状态是否是我们所需要的状态,以下这三个命令都可以看到HA的选举结果和HA状态:

# diagnose sys ha status
# get system status
# get system ha status

4.升级后检查是否有重要配置丢失

FGT101E_Master_379 # diagnose debug  config-error-log read 
FGT101E_Slave_045 #  diagnose debug  config-error-log read 

// 不丢路由、接口地址、服务对象、防火墙策略、VPN这些,一般问题不大。丢一些默认的配置是因为新版本做了功能变更。

5.检查配置是否同步
查看主防火墙的配置HA checksum:
FGT101E_Master_379 # diagnose sys ha checksum show  // 查看主机配置checksum
is_manage_master()=1, is_root_master()=1
debugzone
global: 01 94 6e 7a 19 25 5d df 09 3c aa 0f ef 5f 21 a8
root: dd 4a 1c 83 1d 7f 3b 36 e4 f4 e1 24 d2 60 cf a0
all: 58 b0 c3 d9 8c 71 b8 b5 26 f3 a6 59 83 82 ff b0

checksum
global: 01 94 6e 7a 19 25 5d df 09 3c aa 0f ef 5f 21 a8
root: dd 4a 1c 83 1d 7f 3b 36 e4 f4 e1 24 d2 60 cf a0
all: 58 b0 c3 d9 8c 71 b8 b5 26 f3 a6 59 83 82 ff b0

FGT101E_Master_379 # 

命令行切换到备机:

FGT101E_Master_379 # execute ha manage
<id>    please input peer box index.
<1>     Subsidary unit FG101E4Q17000045
FGT101E_Master_379 # execute ha manage 1  // 从主机的VTY切换到备机的命令行界面
FGT101E_Slave_045 login: admin
Password: ********
Welcome !
FGT101E_Slave_045 $
FGT101E_Slave_045 $ 

查看备防火墙的配置HA checksum:
FGT101E_Slave_045 $ diagnose sys ha checksum show  // 查看备机配置checksum
is_manage_master()=0, is_root_master()=0
debugzone
global: 01 94 6e 7a 19 25 5d df 09 3c aa 0f ef 5f 21 a8
root: dd 4a 1c 83 1d 7f 3b 36 e4 f4 e1 24 d2 60 cf a0
all: 58 b0 c3 d9 8c 71 b8 b5 26 f3 a6 59 83 82 ff b0

checksum
global: 01 94 6e 7a 19 25 5d df 09 3c aa 0f ef 5f 21 a8
root: dd 4a 1c 83 1d 7f 3b 36 e4 f4 e1 24 d2 60 cf a0
all: 58 b0 c3 d9 8c 71 b8 b5 26 f3 a6 59 83 82 ff b0

FGT101E_Slave_045 $

正常来说二者的配置checksum是一致的。

HA不中断升级完毕,升级完毕之后查看HA的状态、测试业务、最好再次备份一份软件版本升级之后的配置文件。