安装与部署
概述
ZStack Cloud以单独的高可用套件形式,提供双管理节点物理机高可用功能。当其中任何一个管理节点失联,秒级触发高可用切换,从而保障管理节点持续提供服务。
高可用原理
在双管理节点模型下,每个管理节点均运行zsha2高可用进程,负责实时监控管理节点上的关键服务(包括:管理节点服务、UI服务、数据库服务),当任何一个关键服务出现宕机,立即通过Keep Alived触发VIP(Virtual IP)迁移,然后尝试恢复宕机服务。

安装与部署
准备软件工具
核对硬件设备
本场景采用2个x86服务器部署双管理节点物理机高可用,管理员可根据业务性能需求,合理调配CPU、内存和硬盘的容量配比,以达到合适的平衡状态。
| 服务器 | 配件 | 型号 | 数量 | 总数 |
| CPU | Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz | 2 | 2个 | |
| 内存 | DDR4 16GB | 8 | ||
| 主板 | 双路服务器标准主板 | 1 | ||
| 阵列卡 |
阵列卡支持SAS/SATA RAID 0/1/10 支持直通模式 |
1 | ||
| 固态硬盘 | Intel SSD DC S3610 480GB | 2 | ||
| 机械硬盘1 | SAS HDD 300GB 3.5",15k rpm | 2 | ||
| 机械硬盘2 | NL SAS HDD 2TB 3.5",7.2k rpm | 6 | ||
| 千兆网口 | 以太网1GbE,RJ45 | 2 | ||
| 万兆网口 | 以太网10GbE,SFP+ | 2 | ||
| 光电模块 | - | |||
| 光纤HBA卡 | - | |||
| 远程管理 | DELL iDRAC企业版 | 1 | ||
| 电源 | 标准电源1100W | 2 |
此外,本场景还配备了1台万兆交换机、1台千兆交换机以及若干五类跳线。
检查网络连接
管理员根据如图 2所示的网络拓扑图,对上述服务器和网络设备进行上架并连线。

安装操作系统
操作步骤
-
准备
管理员对上架的网络设备和服务器加载电源,手动启动服务器进入BIOS,检查以下内容:
- 激活所有CPU核心和启用超线程功能,设定系统性能为最高性能状态。
- 打开硬件虚拟化VT功能,支持硬件虚拟化技术加速优化功能。
- 进入阵列卡设定,对两块系统硬盘配置RAID1(Mirror),其余硬盘设定直通模式。
-
在Rufus中打开已准备好的ZStack CloudISO镜像。
接入U盘,打开Rufus,引导类型选择列表选择镜像文件(请选择),点击选择按钮,打开已下载好的ISO镜像文件。
如图 3所示:图 3. 在Rufus打开ISO镜像 
-
写入镜像。
选择好ISO镜像后,其他Rufus选项按照默认设置,点击开始。
如图 4所示:图 4. 在Rufus写入镜像 
-
点击开始后,会提示U盘数据被格式化,点击确定,Rufus会把ISO镜像刻录至U盘。
Note:
- 若U盘中存有重要数据,请确保格式化前已做好备份。
如图 5所示:图 5. 在Rufus确认写入ISO镜像 
-
进入安装导航
ISO镜像已经刻录到U盘。此时U盘可用来作为启动盘,支持Legacy模式和UEFI模式引导。管理员通过安装介质,引导节点启动,并进入系统引导。
如图 6所示:图 6. U盘引导界面 
-
安装操作系统
选择默认项开始安装操作系统。
在进入安装界面后,已经预先配置默认选项:- 时区:亚洲东八区
- 语言:English(United States)
- 键盘:English(US)
一般情况下管理员无需更改配置。管理员需自行执行硬盘的分区,推荐分区如下(UEFI 模式):- /boot/efi:创建分区500MB
- /boot:创建分区1GB
- swap(交换分区):创建分区32GB
- /(根分区):配置剩下容量
分区配置完后,选择Software Selection进入服务器安装角色候选,使用管理节点模式进行安装,确定后回到主界面。
点击Root Password,设定root账户密码。
点击Begin Installation,开始安装操作系统。
安装结束后,重新引导服务器并拔掉U盘。如安装成功,则服务器重启后进入操作系统登录提示符,使用root和设置的密码登录到操作系统。Note: 管理员可根据自身需要更改密码。
配置网络
管理员对两台服务器均安装操作系统后,可进行网络配置。在目录/usr/local/bin/,ZStack Cloud提供便利的网络配置脚本,管理员可通过此脚本快速配置接口(Interface)和网桥(Bridge)信息。
| 服务器 | 网卡 1 | 网卡 2 | 聚合接口 | 网桥 | IP地址 | 掩码 | 网关 |
|---|---|---|---|---|---|---|---|
| 管理节点1 | eth0 | eth1 | bond0 | br_bond0 | 192.168.195.200 | 255.255.0.0 | 192.168.0.1 |
| 管理节点2 | eth0 | eth1 | bond0 | br_bond0 | 192.168.196.125 | 255.255.0.0 | 192.168.0.1 |
| 节点 | 网卡 1 | 网卡 2 | 聚合接口 | 网桥 | IP地址 | 掩码 | 网关 |
|---|---|---|---|---|---|---|---|
| 管理节点1 | em1 | em2 | bond1 | - | - | - | - |
| 管理节点2 | em1 | em2 | bond1 | - | - | - | - |
| - | IP地址 | 掩码 |
|---|---|---|
| VIP | 192.168.199.151 | 255.255.0.0 |
- 以上均为示例数据,管理员可根据实际部署环境自行更改;
- 网关需由物理网络设备提供,同时作为网络状态仲裁检测。
以下分别介绍管理网络和云主机数据网络的配置。
配置管理网络
| 服务器 | 网卡 1 | 网卡 2 | 聚合接口 | 网桥 | IP地址 | 掩码 | 网关 |
|---|---|---|---|---|---|---|---|
| 管理节点1 | eth0 | eth1 | bond0 | br_bond0 | 192.168.195.200 | 255.255.0.0 | 192.168.0.1 |
| 管理节点2 | eth0 | eth1 | bond0 | br_bond0 | 192.168.196.125 | 255.255.0.0 | 192.168.0.1 |
# 创建聚合网卡bond0
[root@localhost ~]# zs-bond-lacp -c bond0
# 将网卡eth0与eth1均添加到bond0
[root@localhost ~]# zs-nic-to-bond -a bond0 eth0
[root@localhost ~]# zs-nic-to-bond -a bond0 eth1
# 配置上述链路聚合后,请管理员在对应的交换机网口配置LACP聚合
# 创建网桥br_bond0,指定网络IP、掩码和网关
[root@localhost ~]# zs-network-setting -b bond0 192.168.195.200 255.255.0.0 192.168.0.1
# 查看聚合端口bond0是否创建成功
[root@localhost ~]# zs-show-network
...
----------------------------------------------------------------------------------
| Bond Name | SLAVE(s) | BONDING_OPTS |
----------------------------------------------------------------------------------
| bond0 | eth0 | miimon=100 mode=4 xmit_hash_policy=layer2+3 |
| | eth1 | |
---------------------------------------------------------------------------------对管理节点2执行类似的配置命令。
- eth0和eth1加载到bond0后,对应交换机的端口需要配置LACP聚合,否则网络通信将异常;如果交换机不支持LACP聚合,请联系网络设备厂商更换设备。
- 通过bond0创建网桥后,网桥命名为br_bond0,将提供管理网络服务。
- 关于网桥的IP地址、子网掩码和网关参数,用户需按照实际情况填写。
- 管理网络配置完成后,可通过ping命令进行检测;若配置正确,则两管理节点的管理网络对应的IP地址可互ping。
- 管理网络建议采用万兆以上带宽,若独立部署,允许千兆带宽。
管理网络配置完成后,随之可配置云主机数据网络。
配置云主机数据网络
| 节点 | 网卡 1 | 网卡 2 | 聚合接口 | 网桥 | IP地址 | 掩码 | 网关 |
|---|---|---|---|---|---|---|---|
| 管理节点1 | em1 | em2 | bond1 | - | - | - | - |
| 管理节点2 | em1 | em2 | bond1 | - | - | - | - |
# 创建聚合网卡bond1
[root@localhost ~]# zs-bond-lacp -c bond1
# 将网卡em1与em2均添加到bond1
[root@localhost ~]# zs-nic-to-bond -a bond1 em1
[root@localhost ~]# zs-nic-to-bond -a bond1 em2
# 配置上述链路聚合后,请管理员在对应的交换机网口配置LACP聚合
# 云主机数据网络,无需创建网桥
# 查看聚合端口bond1是否创建成功
[root@localhost ~]# zs-show-network
...
----------------------------------------------------------------------------------
| Bond Name | SLAVE(s) | BONDING_OPTS |
----------------------------------------------------------------------------------
| bond1 | em1 | miimon=100 mode=4 xmit_hash_policy=layer2+3 |
| | em2 | |
---------------------------------------------------------------------------------对管理节点2执行类似的配置命令。
em1和em2加载到bond1后,对应交换机的端口需要配置LACP聚合,否则网络通信将异常;如果交换机不支持LACP聚合,请联系网络设备厂商更换设备。
安装高可用套件
- 通过直接指定命令行方式安装高可用套件。
- 通过编写配置文件方式安装高可用套件。
直接指定命令行方式
背景信息
- 管理节点1(192.168.195.200)
- 管理节点2(192.168.196.125)
假定对管理节点1安装高可用套件,则管理节点1为主管理节点,管理节点2为备管理节点。
操作步骤
-
导入高可用套件。
管理员已获得高可用套件,可将其导入管理节点1并解压,执行以下命令:
# 通过scp工具将高可用套件传输到管理节点1 [root@localhost ~]# ls ZStack-Multinode-HA-Suite-5.4.12.tar.gz # 将高可用套件解压,生成两个可执行文件:zsha2和zstack-hamon [root@localhost ~]# tar zxvf ZStack-Multinode-HA-Suite-5.4.12.tar.gz zsha2 //双管理节点高可用的安装和管理程序 zstack-hamon //双管理节点高可用的监控程序 -
HA初始化。
在管理节点1中安装高可用套件,执行以下命令:
[root@localhost ~]# chmod +x zsha2 zstack-hamon [root@localhost ~]# ./zsha2 install-ha -nic br_bond0 -gateway 192.168.0.1 -slave "root:password@192.168.196.125" \ -vip 192.168.199.151 -myip 192.168.195.200 -db-root-pw zstack.mysql.password -time-server 192.168.196.125 -cidr 192.168.0.0/16 -yesNote:- 安装命令执行后,会先自动备份主备管理节点的数据库,再执行安装操作。
- 安装高可用套件,需将zsha2和zstack-hamon放在一个目录,安装过程中,zsha2会自动部署zstack-hamon以及相关配置文件。
- 安装命令中,相关参数说明:
-nic:物理设备名,用于配置VIP,生产环境一般是一个管理网络的网桥,例如-nic br_bond0-gateway:主备管理节点的仲裁网关,例如-gateway 192.168.0.1-slave:指定备管理节点,例如-slave "root:password@192.168.196.125"Note:- 安装过程中,备管理节点的数据库会被主管理节点的数据库覆盖,请谨慎配置。
- 在安装高可用套件时,建议root密码采用普通密码,方便快捷部署,后续root密码可以修改,高可用套件将不再依赖系统root的密码。
- 如果root密码里包含shell的特殊字符,例如:
' " * ? \ ~ ` ! # $ & |,需输入\进行转义。例如,系统密码为' " * ? \ ~ ` ! # $ & |,则相应的输入应为:-slave "root:\' \" \* \? \\ \~ \` \! \# \$ \& \|@192.168.196.125"
-vip:指定Keepalived通信的VIP,例如-vip 192.168.199.151-myip:可选参数,指定本机IP,例如-myip 192.168.195.200-db-root-pw:主备管理节点的数据库root密码(必须相同),例如-db-root-pw zstack.mysql.password-time-server:指定时间同步服务器,用于统一时间同步,例如./zsha2 install-ha -time-server 192.168.196.125Note: 支持指定多个时间服务器,例如./zsha2 install-ha -time-server 192.168.196.125,192.168.196.126-cidr:可选参数,指定网络段,需覆盖主备管理节点IP、VIP和网关,例如./zsha2 install-ha -cidr 192.168.0.0/16Note: 如果不指定,系统会自动计算出一个最小网络段,可能无法满足需求,推荐指定网络段。-force:可选参数,当主备管理节点的数据库始终无法完成自动同步,对主管理节点强制执行zsha2安装命令,例如./zsha2 install-ha -forceNote: 执行强制安装前,建议对两个数据库进行备份。-repo:可选参数,指定Yum源,默认为本地源,例如./zsha2 install-ha -repo zstack-local-timeout:可选参数,主备管理节点的数据库初始化复制超时时间,默认值为600,单位为秒,例如./zsha2 install-ha -timeout 600-yes:可选参数,所有设置均允许
高可用套件初始化完成后,可执行以下命令查看管理节点的状态:# 查看管理节点1的状态 [root@localhost ~]# zsha2 status Status report from 192.168.195.200 ================================= Owns virtual address: yes //管理节点1已获取VIP,同一时刻只允许一个管理节点获取VIP Self 192.168.195.200 reachable: yes //管理节点1可达 Gateway 192.168.0.1 reachable: yes //当前网关可达 VIP 192.168.199.151 reachable: yes //VIP可达 Peer 192.168.196.125 reachable: yes //管理节点2可达 Keepalived status: active //Keepalived服务处于工作状态 ZStack HA Monitor: active //高可用监控服务处于工作状态 MySQL status: mysqld is alive //数据库正常工作 MN status: Running [PID:6500] //管理节点正常工作 UI status: Running [PID:9785] http://192.168.195.200:5000 //UI正常工作 Slave Status: ------------- Slave_IO_Running: Yes //Slave IO正常运行 Slave_SQL_Running: Yes //Slave SQL正常运行 Last_Error: Seconds_Behind_Master: 0 Last_IO_Error: Last_SQL_Error: Warning: Permanently added '192.168.196.125' (ECDSA) to the list of known hosts. Status report from 192.168.196.125 //查看管理节点2的状态 ================================ Owns virtual address: no Self 192.168.196.125 reachable: yes Gateway 192.168.0.1 reachable: yes VIP 192.168.199.151 reachable: yes Peer 192.168.195.200 reachable: yes Keepalived status: active ZStack HA Monitor: active MySQL status: mysqld is alive Slave Status: ------------- Slave_IO_Running: Yes Slave_SQL_Running: Yes Last_Error: Seconds_Behind_Master: 0 Last_IO_Error: Last_SQL_Error: Note: visit ZStack UI with http://192.168.199.151:5000Note: 安装高可用套件过程中,已自动为两个管理节点做SSH免密登录。 -
云平台初始化。
管理员可通过VIP(192.168.199.151)访问管理节点1的UI界面(http://192.168.199.151:5000),并完成云平台初始化操作。
如图 7所示:图 7. 登录界面 
在管理节点1中执行以下命令,管理节点1在线切换为备管理节点,管理节点2获取VIP(192.168.199.151),成为主管理节点。[root@localhost ~]# zsha2 demote管理员可通过该VIP刷新访问管理节点2的UI界面(http://192.168.199.151:5000),并完成云平台初始化操作。
配置文件方式
背景信息
- 管理节点1(192.168.195.200)
- 管理节点2(192.168.196.125)
假定对管理节点1安装高可用套件,则管理节点1为主管理节点,管理节点2为备管理节点。
操作步骤
-
导入高可用套件。
管理员已获得高可用套件,可将其导入管理节点1并解压,执行以下命令:
# 通过scp工具将高可用套件传输到管理节点1 [root@localhost ~]# ls ZStack-Multinode-HA-Suite-5.4.12.tar.gz # 将高可用套件解压,生成两个可执行文件:zsha2和zstack-hamon [root@localhost ~]# tar zxvf ZStack-Multinode-HA-Suite-5.4.12.tar.gz zsha2 //双管理节点高可用的安装和管理程序 zstack-hamon //双管理节点高可用的监控程序 -
编写配置。
管理员执行以下命令,编写高可用套件的初始化配置文件:
[root@localhost ~]# chmod +x zsha2 zstack-hamon [root@localhost ~]# ./zsha2 sample-config > zs-install.config [root@localhost ~]# cat zs-install.config { "gateway": "192.168.0.1", //主备管理节点的仲裁网关 "virtualIp": "192.168.199.151", //指定Keepalived通信的VIP "myIp": "192.168.195.200", //指定本机IP "peerIp": "192.168.196.125", //指定Peer管理节点IP "peerSshUser": "root", //指定Peer管理节点SSH用户名 "peerSshPass": "password", //指定Peer管理节点SSH密码 "peerSshPort": 22, //指定Peer管理节点SSH端口 "dbRootPass": "zstack.mysql.password", //指定主备管理节点的数据库root密码(必须相同) "interface": "br_bond0", //物理设备名,用于配置VIP,生产环境一般是一个管理网络的网桥 "timeServer": "192.168.196.125" //指定时间同步服务器,用于统一时间同步 }管理员需要按照具体部署场景,修改上述参数。
-
HA初始化。
管理员执行以下命令,初始化安装高可用套件:
[root@localhost ~]# ./zsha2 install-ha -config zs-install.configNote:- 安装命令执行后,会先自动备份主备管理节点的数据库,再执行安装操作。
- 安装高可用套件,需将zsha2和zstack-hamon放在一个目录,安装过程中,zsha2会自动部署zstack-hamon以及相关配置文件。
- 安装命令中,相关参数说明:
-config:可选参数,通过配置文件初始化安装高可用套件
高可用套件初始化完成后,可执行以下命令查看管理节点的状态:# 查看管理节点1的状态 [root@localhost ~]# zsha2 status Status report from 192.168.195.200 ================================= Owns virtual address: yes //管理节点1已获取VIP,同一时刻只允许一个管理节点获取VIP Self 192.168.195.200 reachable: yes //管理节点1可达 Gateway 192.168.0.1 reachable: yes //当前网关可达 VIP 192.168.199.151 reachable: yes //VIP可达 Peer 192.168.196.125 reachable: yes //管理节点2可达 Keepalived status: active //Keepalived服务处于工作状态 ZStack HA Monitor: active //高可用监控服务处于工作状态 MySQL status: mysqld is alive //数据库正常工作 MN status: Running [PID:6500] //管理节点正常工作 UI status: Running [PID:9785] http://192.168.195.200:5000 //UI正常工作 Slave Status: ------------- Slave_IO_Running: Yes //Slave IO正常运行 Slave_SQL_Running: Yes //Slave SQL正常运行 Last_Error: Seconds_Behind_Master: 0 Last_IO_Error: Last_SQL_Error: Warning: Permanently added '192.168.196.125' (ECDSA) to the list of known hosts. Status report from 192.168.196.125 //查看管理节点2的状态 ================================ Owns virtual address: no Self 192.168.196.125 reachable: yes Gateway 192.168.0.1 reachable: yes VIP 192.168.199.151 reachable: yes Peer 192.168.195.200 reachable: yes Keepalived status: active ZStack HA Monitor: active MySQL status: mysqld is alive Slave Status: ------------- Slave_IO_Running: Yes Slave_SQL_Running: Yes Last_Error: Seconds_Behind_Master: 0 Last_IO_Error: Last_SQL_Error: Note: visit ZStack UI with http://192.168.199.151:5000Note: 安装高可用套件过程中,已自动为两个管理节点做SSH免密登录。 -
云平台初始化。
管理员可通过VIP(192.168.199.151)访问管理节点1的UI界面(http://192.168.199.151:5000),并完成云平台初始化操作。
如图 8所示:图 8. 登录界面 
在管理节点1中执行以下命令,管理节点1在线切换为备管理节点,管理节点2获取VIP(192.168.199.151),成为主管理节点。[root@localhost ~]# zsha2 demote管理员可通过该VIP刷新访问管理节点2的UI界面(http://192.168.199.151:5000),并完成云平台初始化操作。
安装许可证
ZStack Cloud两个管理节点安装的许可证类型要求完全一致。
管理员可通过UI方式或CLI方式安装许可证。
UI方式
- 通过VIP访问任一管理节点的UI界面(http://VIP:5000),并使用admin账户登录。
- 进入许可证界面,点击右上角的上传许可证按钮,弹出上传许可证界面,直接将获得的双管理节点许可证本地上传即可,更多详情可参考《许可(license)更新说明》。
CLI方式
管理员可通过CLI方式分别向两个管理节点中导入许可证。更多详情可参考《许可(license)更新说明》。
集群升级
本章节介绍ZStack Cloud双管理节点物理机高可用的升级方案。
- 完成升级前的准备工作
- 高可用套件升级
- 管理节点升级
- 请提前在管理节点界面关闭云主机全局高可用功能,避免意外触发云主机高可用影响升级。可在主菜单点击,进入高可用策略界面,点击右上角的停用按钮,待升级完成后再手动开启。
- 在双管理节点分别备份数据库,执行以下命令即可进行数据库备份:
[root@localhost ~]#zstack-ctl dump_mysql --file-name zstack-db-backup - 确认双管理节点均已下载zstack-upgrade脚本、系统对应的ISO、安装升级包和双管理节点高可用套件。
- 使用以下命令,在两个管理节点分别使用下载的最新ISO更新本地的repo源:
[root@localhost ~]#cd /root/ #bash /root/zstack-upgrade -r ZStack-Cloud-x86_64-DVD-5.4.12-h84r.iso
- 在任一管理节点执行以下命令,查看管理节点高可用的VIP所在节点。在执行zsha2后,返回结果中VIP为yes的节点即为VIP所在的管理节点:
[root@localhost ~]#zsha2 status - 通过IPMI登录VIP节点所在的管理节点终端,执行以下命令,对双管理节点高可用套件进行解压:
[root@localhost ~]#tar zxvf ZStack-Multinode-HA-Suite-5.4.12.tar.gz - 执行以下命令,对解压后的zsha2、zstack-hamon赋予可执行权限:
[root@localhost ~]#chmod +x zsha2 zstack-hamon - 在VIP所在的管理节点执行以下命令,完成高可用套件升级:
[root@localhost ~]# ./zsha2 upgrade-ha
- 升级管理节点前,需保证如下参数均无异常:
- VIP可达
- 当前网关可达
- 备管理节点可达
- 数据库已同步
zsha2 status查看管理节点状态:[root@localhost ~]# zsha2 status Status report from 192.168.195.200 ================================= Owns virtual address: yes //管理节点1已获取VIP,同一时刻只允许一个管理节点获取VIP Self 192.168.195.200 reachable: yes //管理节点1可达 Gateway 192.168.0.1 reachable: yes //当前网关可达 VIP 192.168.199.151 reachable: yes //VIP可达 Peer 192.168.196.125 reachable: yes //管理节点2可达 Keepalived status: active //Keepalived服务处于工作状态 ZStack HA Monitor: active //高可用监控服务处于工作状态 MySQL status: mysqld is alive //数据库正常工作 MN status: Running [PID:6500] //管理节点正常工作 UI status: Running [PID:9785] http://192.168.195.200:5000 //UI正常工作 Slave Status: ------------- Slave_IO_Running: Yes //Slave IO正常运行 Slave_SQL_Running: Yes //Slave SQL正常运行 Last_Error: Seconds_Behind_Master: 0 Last_IO_Error: Last_SQL_Error: Warning: Permanently added '192.168.196.125' (ECDSA) to the list of known hosts. Status report from 192.168.196.125 //查看管理节点2的状态 ================================ Owns virtual address: no Self 192.168.196.125 reachable: yes Gateway 192.168.0.1 reachable: yes VIP 192.168.199.151 reachable: yes Peer 192.168.195.200 reachable: yes Keepalived status: active ZStack HA Monitor: active MySQL status: mysqld is alive Slave Status: ------------- Slave_IO_Running: Yes Slave_SQL_Running: Yes Last_Error: Seconds_Behind_Master: 0 Last_IO_Error: Last_SQL_Error: Note: visit ZStack UI with http://192.168.199.151:5000 - 升级方式分包括从bin包升级和从ISO升级,具体如下:若选择从bin包升级管理节点,请参考以下步骤进行升级:
- 请将新版ZStack Cloud
ISO分别导入两个管理节点,并分别在两个管理节点中执行以下命令,将本地源升级至最新:
[root@localhost ~]# bash zstack-upgrade -r ZStack-Cloud-x86_64-DVD-5.4.12-h84r.iso - 管理员只需在任一管理节点中执行以下命令,就可对两个管理节点进行升级:
[root@localhost ~]# zsha2 upgrade-mn -peerpass password ZStack-Cloud-installer-5.4.12.bin
若选择从ISO升级管理节点,请参考以下步骤进行升级:- 管理员只需在任一管理节点中执行以下命令,就可对两个管理节点进行升级:
[root@localhost ~]# zsha2 upgrade-mn -peerpass password ZStack-Cloud-x86_64-DVD-5.4.12-h84r.isoNote:-peerpass为可选参数,可设置Peer管理节点SSH登录密码。
- 请将新版ZStack Cloud
ISO分别导入两个管理节点,并分别在两个管理节点中执行以下命令,将本地源升级至最新:
其他操作
监控报警
日志输出
[root@localhost ~]# zsha2 collect-log
Collecting logs ...
Collected log: zsha2-log-2018-09-17T154358+0800.tgz
# 将日志压缩包解压
[root@localhost ~]# tar zxvf zsha2-log-2021-01-17T154358+0800.tgz
tmp/zsha2-log588815976/
tmp/zsha2-log588815976/zsha2-status.log
tmp/zsha2-log588815976/zstack-ha.log
tmp/zsha2-log588815976/keepalived.data
tmp/zsha2-log588815976/zs-vip-192.168.199.151.log
tmp/zsha2-log588815976/keepalived_status.log高可用测试与恢复
计划运维
单管理节点需要维护
主管理节点需要维护
双管理节点高可用场景下,假定管理节点1为主管理节点,管理节点2为备管理节点。
若管理员需要临时关闭管理节点1进行维护。
- 将管理节点1主动切换为备管理节点。
在管理节点1中执行
zsha2 demote命令,管理节点1在线切换为备管理节点,管理节点2获取VIP,成为主管理节点。 - 关闭管理节点1。
- 若管理节点1没有被复用为计算节点添加到ZStack Cloud:
- 对管理节点1执行
zsha2 stop-node,关闭zsha2相关服务。 - 对管理节点1进行shutdown关机操作。
- 对管理节点1下电后进行维护。
- 对管理节点1执行
- 若管理节点1被复用为计算节点,并已添加到ZStack Cloud:
- 对管理节点1执行
zsha2 stop-node,关闭zsha2相关服务。 - 将管理节点1进入维护模式。
- 对管理节点1进行shutdown关机操作。
- 对管理节点1下电后进行维护。
- 对管理节点1执行
- 若管理节点1没有被复用为计算节点添加到ZStack Cloud:
- 启动管理节点1。
- 对管理节点1通电后,通过手动或IPMI启动服务器。
- 等待管理节点1启动,成功引导操作系统。
- 对管理节点1执行
zsha2 start-node,启动zsha2相关服务。 - 对管理节点1执行
zsha2 status,查看zsha2服务是否正常运行。 - 对管理节点1执行
zstack-ctl status,查看管理节点服务是否正常运行,UI服务是否正常运行。
备管理节点需要维护
双管理节点高可用场景下,假定管理节点1为主管理节点,管理节点2为备管理节点。
- 关闭管理节点2。
- 若管理节点2没有被复用为计算节点添加到ZStack Cloud:
- 对管理节点2执行
zsha2 stop-node,关闭zsha2相关服务。 - 对管理节点2进行shutdown关机操作;
- 对管理节点2下电后进行维护。
- 对管理节点2执行
- 若管理节点2被复用为计算节点,并已添加到ZStack Cloud:
- 对管理节点2执行
zsha2 stop-node,关闭zsha2相关服务。 - 将管理节点2进入维护模式。
- 对管理节点2进行shutdown关机操作。
- 对管理节点2下电后进行维护。
- 对管理节点2执行
- 若管理节点2没有被复用为计算节点添加到ZStack Cloud:
- 启动管理节点2。
- 对管理节点2通电后,通过手动或IPMI启动服务器。
- 等待管理节点2启动,成功引导操作系统。
- 对管理节点2执行
zsha2 start-node,启动zsha2相关服务。 - 对管理节点2执行
zsha2 status,查看zsha2服务是否正常运行。 - 对管理节点2执行
zstack-ctl status,查看管理节点服务是否正常运行,UI服务是否正常运行。
双管理节点需要维护
双管理节点高可用场景下,假定管理节点1为主管理节点,管理节点2为备管理节点。
- 对两个管理节点执行
zsha2 stop-node,关闭zsha2相关服务。 - 对两个管理节点进行shutdown关机操作。
- 对两个管理节点下电后进行维护。
- 对两个管理节点通电后,通过手动或IPMI启动服务器。
- 等待两个管理节点启动,成功引导操作系统。
- 对两个管理节点执行
zsha2 start-node,启动zsha2相关服务。 - 对两个管理节点执行
zsha2 status,查看zsha2服务是否正常运行。 - 对两个管理节点执行
zstack-ctl status,查看管理节点服务是否正常运行,UI服务是否正常运行。
节点修复
单管理节点故障修复
双管理节点故障修复
- 尝试恢复该两个故障节点, 如果不能恢复,需使用相同版本的ZStack Cloud修复原节点或安装新节点。
- 以安装两个新节点为例:
- 调配两台备用服务器,使得硬件规格分别与原两个故障节点相近。
- 对两台备份服务器分别安装基础操作系统,安装完成后,配置root的密码和网络信息分别与原两个故障节点一致,详情可参考安装与部署章节;
- 选择一个正常运行的管理节点,通过管理节点IP地址ssh登录,执行如下命令,在此管理节点恢复数据库:
[root@localhost ~]# zstack-ctl restore_mysql -f /var/lib/zstack/mysql-backup/xxx.gz --mysql-root-password MYSQL_PASSWORD- /var/lib/zstack/mysql-backup/xxx.gz表示备份数据库文件路径及名称。
- MYSQL_PASSWORD表示数据库密码,默认密码为:zstack.mysql.password。
- 在此节点通过install_ha命令重新安装高可用套件,详情可参考直接指定命令行方式章节。
- 对置换节点执行
zsha2 status,查看zsha2服务是否正常运行。 - 对置换节点执行
zstack-ctl status,查看管理节点服务是否正常运行,UI服务是否正常运行。
管理节点数据库备份与恢复
数据库备份
双管理节点物理机高可用场景下,可通过以下方式备份数据库:
-
选择一个正常运行的管理节点,通过管理节点IP地址ssh登录,然后执行
zstack-ctl dump_mysql命令,手动备份数据库。Note:- VIP用于登录UI界面,请避免使用VIP通过ssh方式登录管理节点。
- 数据库备份后以.gz文件方式保存在/var/lib/zstack/mysql-backup/目录,示例名称如下:172.20.1.123-zstack-backup-db-2022-05-18_00-30-04.gz。
数据库恢复
- 选择一个正常运行的管理节点,通过管理节点IP地址ssh登录,执行如下命令,在此管理节点恢复数据库:
[root@localhost ~]# zstack-ctl restore_mysql -f /var/lib/zstack/mysql-backup/xxx.gz --mysql-root-password MYSQL_PASSWORD- /var/lib/zstack/mysql-backup/xxx.gz表示备份数据库文件路径及名称。
- MYSQL_PASSWORD表示数据库密码,默认密码为:zstack.mysql.password。
- 在此节点通过install_ha命令重新安装高可用套件,详情可参考直接指定命令行方式章节。
命令行使用手册
zsha2下有多条子命令,本手册将对zsha2每条子命令的作用和使用方法进行说明。
简介
zsha2是ZStack Cloud针对双管理节点物理机高可用场景设计的命令,帮助用户快速完成该场景下的多种操作。
-h 帮助内容
描述
显示帮助,可查看zsha2全部子命令。
使用方法
[root@localhost ~]# zsha2 -h
usage:
zsha2 [ global options ] command [ command options ]
Global options:
-h,--help Display this message
Commands:
install-ha install two-node HA environment
stop-node stop zstack service in HA environment
start-node start zstack service in HA environment
upgrade-mn upgrade the MN in HA environment
upgrade-ha upgrade the HA suites
demote demote current node as backup
status show HA status
show-config show HA configuration
sample-config generate sample configuration to setup HA environment
collect-log collect HA related log files
help show this help message
version 版本信息
描述
查看版本信息,包括版本号和Commit ID。
使用方法
[root@localhost ~]# zsha2 version
version 3.1.0.0, commit 2b1b06788e4e1d4b514342db1f381b460f7242e6
install-ha 安装命令
描述
安装命令。假定用户已安装两个ZStack Cloud管理节点,对主管理节点执行zsha2安装命令,即可切换到双管理节点高可用模式。
使用方法
| 参数 | 介绍 | 示例 |
|---|---|---|
| -nic | 物理设备名,用于配置VIP,生产环境一般是一个管理网络的网桥 | ./zsha2 install-ha -nic
br_bond0 |
| -gateway | 主备管理节点的仲裁网关 | ./zsha2 install-ha -gateway
192.168.0.1 |
| -slave | 指定备管理节点 Note:
|
./zsha2 install-ha -slave
"root:password@192.168.196.125" |
| -vip | 指定Keepalived通信的VIP | ./zsha2 install-ha -vip
192.168.199.151 |
| -myip | 可选参数,指定本机IP | ./zsha2 install-ha -myip 192.168.195.200 |
| -db-root-pw | 主备管理节点的数据库root密码(必须相同) | ./zsha2 install-ha -db-root-pw
zstack.mysql.password |
| -time-server | 指定时间同步服务器,用于统一时间同步 Note: 支持指定多个时间服务器。 |
|
| -cidr | 可选参数,指定网络段,需覆盖主备管理节点IP、VIP和网关。 Note: 如果不指定,系统会自动计算出一个最小网络段,可能无法满足需求,推荐指定网络段。 |
./zsha2 install-ha -cidr
192.168.0.0/16 |
| -force | 可选参数,当主备管理节点的数据库始终无法完成自动同步,对主管理节点强制执行zsha2安装命令 Note: 执行强制安装前,建议对两个数据库进行备份。 |
./zsha2 install-ha
-force |
| -repo | 可选参数,指定Yum源,默认为本地源 | ./zsha2 install-ha -repo
zstack-local |
| -timeout | 可选参数,主备管理节点的数据库初始化复制超时时间,默认值为600,单位为秒 | ./zsha2 install-ha -timeout
600 |
| -yes | 可选参数,所有设置均允许 | ./zsha2 install-ha -yes |
| -config | 可选参数,通过配置文件初始化安装高可用套件 | ./zsha2 install-ha -config
zs-install.config |
[root@localhost ~]# ./zsha2 install-ha -nic br_bond0 -gateway 192.168.0.1 -slave "root:password@192.168.196.125" \
-vip 192.168.199.151 -myip 192.168.195.200 -db-root-pw zstack.mysql.password -time-server 192.168.196.125 -cidr 192.168.0.0/16 -yes
Master IPv4 address: 192.168.195.200
ZStack version @ 192.168.195.200: 2.6.0
ZStack version @ 192.168.196.125: 2.6.0
Calculated CIDR: 192.168.0.0/16
Backuping databases on 192.168.196.125 (/var/lib/zstack/mysql-backup/zstack-backup-db-2018-10-09T164934-0800.gz) ...
Start installation ...
x checking network interface and gateway ...
✓ Task 1: checking network interface and gateway ... completed.
x prepare HA-services ...
✓ Task 2: prepare HA-services ... completed.
+ setting up DB config before replication ...
✓ Task 3: setting up DB config before replication ... completed.
x creating DB user for replication ...
✓ Task 4: creating DB user for replication ... completed.
+ update iptables rules ...
✓ Task 5: update iptables rules ... completed.
+ starting the initial replication ...
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 1844
Binlog_Do_DB:
Binlog_Ignore_DB:
+ starting the initial replication ...
Local database backuped to /var/lib/zstack/mysql-backup/zstack-backup-db-2018-10-09T164934-0800.gz
✓ Task 6: starting the initial replication ... completed.
x wait peer slave sync status ...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_IO_Error:
Last_SQL_Error:
Last_Error:
Last_Errno: 0
✓ Task 7: wait peer slave sync status ... completed.
+ wait local DB sync status ...
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 245
Binlog_Do_DB:
Binlog_Ignore_DB:
x wait local DB sync status ...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_IO_Error:
Last_SQL_Error:
Last_Error:
Last_Errno: 0
✓ Task 8: wait local DB sync status ... completed.
+ setting up keepalived ...
✓ Task 9: setting up keepalived ... completed.
x check slave virtual IP settings ...
✓ Task 10: check slave virtual IP settings ... completed.
x configuring ZStack servers ...
✓ Task 11: configuring ZStack servers ... completed.
x installing HA scripts ...
✓ Task 12: installing HA scripts ... completed.
x starting ZStack HA service ...
✓ Task 13: starting ZStack HA service ... completed.
x waiting management node up and running ...
✓ Task 14: waiting management node up and running ... completed.
OK, installation completed.
Hints:
- Stop server with: zsha2 stop-node,
- Start server with: zsha2 start-node,
- Get HA status with: zsha2 status -peer 192.168.196.125
Please also setup SSH pubkey-login between 192.168.195.200 and 192.168.196.125[root@localhost ~]# ./zsha2 install-ha -config zs-install.config
Master IPv4 address: 192.168.195.200
ZStack version @ 192.168.195.200: 2.6.0
ZStack version @ 192.168.196.125: 2.6.0
Calculated CIDR: 192.168.0.0/16
Backuping databases on 192.168.196.125 (/var/lib/zstack/mysql-backup/zstack-backup-db-2018-10-09T164934-0800.gz) ...
Start installation ...
x checking network interface and gateway ...
✓ Task 1: checking network interface and gateway ... completed.
x prepare HA-services ...
✓ Task 2: prepare HA-services ... completed.
+ setting up DB config before replication ...
✓ Task 3: setting up DB config before replication ... completed.
x creating DB user for replication ...
✓ Task 4: creating DB user for replication ... completed.
+ update iptables rules ...
✓ Task 5: update iptables rules ... completed.
+ starting the initial replication ...
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 1844
Binlog_Do_DB:
Binlog_Ignore_DB:
+ starting the initial replication ...
Local database backuped to /var/lib/zstack/mysql-backup/zstack-backup-db-2018-10-09T164934-0800.gz
✓ Task 6: starting the initial replication ... completed.
x wait peer slave sync status ...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_IO_Error:
Last_SQL_Error:
Last_Error:
Last_Errno: 0
✓ Task 7: wait peer slave sync status ... completed.
+ wait local DB sync status ...
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 245
Binlog_Do_DB:
Binlog_Ignore_DB:
x wait local DB sync status ...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_IO_Error:
Last_SQL_Error:
Last_Error:
Last_Errno: 0
✓ Task 8: wait local DB sync status ... completed.
+ setting up keepalived ...
✓ Task 9: setting up keepalived ... completed.
x check slave virtual IP settings ...
✓ Task 10: check slave virtual IP settings ... completed.
x configuring ZStack servers ...
✓ Task 11: configuring ZStack servers ... completed.
x installing HA scripts ...
✓ Task 12: installing HA scripts ... completed.
x starting ZStack HA service ...
✓ Task 13: starting ZStack HA service ... completed.
x waiting management node up and running ...
✓ Task 14: waiting management node up and running ... completed.
OK, installation completed.
Hints:
- Stop server with: zsha2 stop-node,
- Start server with: zsha2 start-node,
- Get HA status with: zsha2 status -peer 192.168.196.125
Please also setup SSH pubkey-login between 192.168.195.200 and 192.168.196.125stop-node 关闭管理节点
描述
在双管理节点高可用场景下,关闭其中一个管理节点,同时关闭所有zsha2服务。
使用方法
[root@localhost ~]# zsha2 stop-node
stopping zstack-ha service ...
stopping zstack management node ...
stopping keepalived ...
start-node 启动管理节点
描述
在双管理节点高可用场景下,将处于停止状态的管理节点启动,同时启动所有zsha2服务。
使用方法
[root@localhost ~]# zsha2 start-node
starting keepalived ...
starting zstack-ha service ...
starting zstack management node ...
upgrade-mn 升级管理节点
描述
在双管理节点高可用场景下,仅升级两个管理节点。
使用方法
| 参数 | 介绍 | 示例 |
|---|---|---|
| -force | 可选参数,强制升级管理节点 | zsha2 upgrade-mn -force ZStack-Cloud-installer-5.4.12.bin |
| -peerpass | 可选参数,输入Peer管理节点SSH登录密码 | zsha2 upgrade-mn -peerpass password
ZStack-Cloud-installer-5.4.12.bin |
| -yes | 可选参数,所有设置均允许 | zsha2 upgrade-mn -yes |
| -grayscale | 可选参数,灰度升级场景下需使用该参数 Note: 该参数仅适用于从ZStack-Cloud 5.0.0升级到5.0.0之后版本的场景;从ZStack-Cloud
5.0.0之前版本升级到5.0.0或之前版本,请勿使用该参数 |
|
- 请将新版ZStack Cloud
ISO分别导入两个管理节点,并分别在两个管理节点中执行以下命令,将本地源升级至最新:
[root@localhost ~]# bash zstack-upgrade -r ZStack-Cloud-x86_64-DVD-5.4.12-h84r.iso - 管理员只需在任一管理节点中执行以下命令,就可对两个管理节点进行升级:
[root@localhost ~]# zsha2 upgrade-mn -peerpass password ZStack-Cloud-installer-5.4.12.bin
- 管理员只需在任一管理节点中执行以下命令,就可对两个管理节点进行升级:
[root@localhost ~]# zsha2 upgrade-mn -peerpass password ZStack-Cloud-x86_64-DVD-5.4.12-h84r.isoNote:-peerpass为可选参数,可设置Peer管理节点SSH登录密码。
-peerpass为可选参数,可设置Peer管理节点SSH登录密码。upgrade-ha 升级高可用套件
描述
在双管理节点高可用场景下,升级当前的zsha2服务。
使用方法
[root@localhost ~]# ./zsha2 upgrade-ha
Start upgrading ...
+ Stopping HA-services ...
✓ Task 1: Stopping HA-services ... completed.
+ Upgrading HA suites ...
✓ Task 2: Upgrading HA suites ... completed.
x starting ZStack HA service ...
✓ Task 3: starting ZStack HA service ... completed.
OK, upgrade HA completed.
Hints:
- Stop server with: zsha2 stop-node,
- Start server with: zsha2 start-node,
- Get HA status with: zsha2 status -peer 192.168.196.125
demote 主备切换
描述
在双管理节点高可用场景下,将主管理节点在线切换为备管理节点。
使用方法
[root@localhost ~]# zsha2 demote
status 状态信息
描述
在双管理节点高可用场景下,显示当前管理节点的状态,包括是否已获取VIP、自身可达性、网关可达性、VIP可达性、Peer管理节点可达性、Keep Alived服务状态、高可用监控服务状态、数据库状态、管理节点状态、UI状态、Slave状态,以及查看Peer管理节点的状态。
使用方法
[root@localhost ~]# zsha2 status
Status report from 192.168.195.200
=================================
Owns virtual address: yes
Self 192.168.195.200 reachable: yes
Gateway 192.168.0.1 reachable: yes
VIP 192.168.199.151 reachable: yes
Peer 192.168.196.125 reachable: yes
Keepalived status: active
ZStack HA Monitor: active
MySQL status: mysqld is alive
MN status: Running [PID:6500]
UI status: Running [PID:9785] http://192.168.195.200:5000
Slave Status:
-------------
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_Error:
Seconds_Behind_Master: 0
Last_IO_Error:
Last_SQL_Error:
Warning: Permanently added '192.168.196.125' (ECDSA) to the list of known hosts.
Status report from 192.168.196.125
================================
Owns virtual address: no
Self 192.168.196.125 reachable: yes
Gateway 192.168.0.1 reachable: yes
VIP 192.168.199.151 reachable: yes
Peer 192.168.195.200 reachable: yes
Keepalived status: active
ZStack HA Monitor: active
MySQL status: mysqld is alive
Slave Status:
-------------
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_Error:
Seconds_Behind_Master: 0
Last_IO_Error:
Last_SQL_Error:
Note: visit ZStack UI with http://192.168.199.151:5000
show-config 显示配置
描述
在双管理节点高可用场景下,显示当前环境的配置信息。
使用方法
[root@localhost ~]# zsha2 show-config
{
"nodeip": "192.168.195.200",
"peerip": "192.168.196.125",
"dbvip": "192.168.199.151",
"nic": "br_bond0",
"gw": "192.168.0.1",
"dbnetwork": "192.168.0.0/16",
"repo": "zstack-local",
"version": 0
}
sample-config 样本配置生成
描述
在双管理节点高可用场景下,生成样本配置以快速搭建高可用环境。
使用方法
[root@localhost ~]# zsha2 sample-config
{
"gateway": "172.20.0.1",
"virtualIp": "172.20.0.2",
"myIp": "172.20.0.3",
"peerIp": "172.20.0.4",
"peerSshUser": "root",
"peerSshPass": "somepass",
"peerSshPort": 22,
"dbRootPass": "zstack.password",
"interface": "br_eth0",
"timeServer": "172.20.0.3"
}
collect-log 收集日志
描述
在双管理节点高可用场景下,收集zsha2服务相关日志。
使用方法
[root@localhost ~]# zsha2 collect-log
Collecting logs ...
Collected log: zsha2-log-2018-09-17T154358+0800.tgz
# 将日志压缩包解压
[root@localhost ~]# tar zxvf zsha2-log-2018-09-17T154358+0800.tgz
tmp/zsha2-log588815976/
tmp/zsha2-log588815976/zsha2-status.log
tmp/zsha2-log588815976/zstack-ha.log
tmp/zsha2-log588815976/keepalived.data
tmp/zsha2-log588815976/zs-vip-192.168.199.151.log
tmp/zsha2-log588815976/keepalived_status.log


