管理节点运维
本章主要针对ZStack Cloud管理节点运维给出处理办法。
注意事项
若需要对管理节点进行运维,需要注意以下事项:
- 管理节点运维前(升级、重启),请将中的云主机高可用全局开关设置为false,待运维完成后,将修改恢复为true。
管理节点高可用
双管理节点物理机高可用场景
概述
ZStack Cloud以单独的高可用套件形式,提供双管理节点物理机高可用功能。当其中任何一个管理节点失联,秒级触发高可用切换,从而保障管理节点持续提供服务。
高可用原理:每个管理节点均运行zsha2高可用进程,负责实时监控管理节点上的关键服务(包括:管理节点服务、UI服务、数据库服务),当任何一个关键服务出现宕机,立即通过Keepalived触发VIP(Virtual IP)迁移,然后尝试恢复宕机服务。
本章节以双管理节点物理机高可用为例,简单概述安装部署、升级步骤,以及双管理节点物理机高可用相关注意事项。详情请参考《双管理节点物理机高可用教程》。
安装部署
- 已有单管理节点环境,部署为双管理节点物理机高可用环境
- 下载官方发布的最新版ZStack Cloud定制版ISO、bin包和多管理节点高可用套件。
- 将已有管理节点升级到最新版ZStack Cloud。
- 对新增管理节点安装最新版ZStack Cloud。
- 对新增管理节点安装许可证,要求两个管理节点安装的许可证类型要求完全一致。
- 将高可用套件导入老管理节点,并解压安装。
- 新装双管理节点环境,部署为双管理节点物理机高可用环境
- 下载官方发布的最新版ZStack Cloud定制版ISO、bin包和多管理节点高可用套件。
- 对两个新管理节点安装最新版ZStack Cloud。
- 对两个新管理节点安装许可证,要求两个管理节点安装的许可证类型要求完全一致。
- 将高可用套件导入其中一个管理节点,并解压安装。
升级
- 高可用套件升级
管理员获得新版高可用套件后,可用于升级当前的zsha2服务。
当主备管理节点的数据库完成自动同步后,请将新版高可用套件导入主管理节点并解压,在主管理节点中执行以下命令,就可完成高可用套件升级:[root@localhost ~]# ./zsha2 upgrade-ha - 管理节点升级
在双管理节点高可用场景下,需先升级高可用套件,才可升级管理节点。
管理员只需在一个管理节点中执行以下命令,就可对两个管理节点进行升级:- 若选择从bin包升级,请执行:
[root@localhost ~]# zsha2 upgrade-mn -peerpass password ./ZStack-Cloud-installer-5.5.30.bin - 若选择从ISO升级,请执行:
[root@localhost ~]# zsha2 upgrade-mn -peerpass password ./ZStack-Cloud-x86_64-DVD-5.5.30-h84r.isoNote:-peerpass为可选参数,可设置Peer管理节点SSH登录密码。
- 若选择从bin包升级,请执行:
注意事项
- 管理节点物理机配置需在8CPU+12G内存及以上。
- 管理网络建议采用万兆以上带宽,若独立部署,允许千兆带宽。
- 推荐使用zs-network-setting创建静态网桥。
- 多管理节点高可用套件需依赖ZStack Cloud 2.6.0及以上版本。且两者必须配套使用,即:2.6.0版高可用套件必须与2.6.0版ZStack Cloud配套使用。
- 两个管理节点安装的ZStack Cloud版本必须一致,且两个管理节点安装的许可证类型必须一致。
- 安装高可用套件,需将zsha2和zstack-hamon放在一个目录,安装过程中,zsha2会自动部署zstack-hamon以及相关配置文件。
- 安装过程中,备管理节点的数据库会被主管理节点的数据库覆盖,请谨慎配置。
- 为确保双管理节点间的监控数据实时同步,建议在两个管理节点之间做SSH免密登录。
- 用于访问管理节点的Chrome浏览器要求在49版本以上。
管理节点灾难恢复
使用ZStack Cloud过程中,管理节点可能因为硬件故障或系统崩溃导致无法进入系统,此时需准备两台服务器,并安装ZStack Cloud管理节点物理机高可用环境,然后使用远程数据库备份文件恢复ZStack Cloud管理节点服务,即可对ZStack Cloud进行灾难恢复。
Note:
- 建议新准备的服务器与原管理节点服务器型号、配置均相同。
- 若原本的管理节点仅发生操作系统故障,也可以使用原本的管理节点服务器,重新安装ZStack Cloud 。
准备工作
本地备份数据库
ZStack Cloud云管理平台首次安装后,默认每天凌晨12点半和中午12点半自动备份一次数据库,备份数据默认存放在管理节点的
/var/lib/zstack/mysql-backup/目录,最多保留14次备份数据。可通过crontab
-l查看。30 0,12 * * * zstack-ctl dump_mysql --keep-amount 14如果管理节点长期运行在高负载状态,建议调整备份频率和保留备份次数,通过
crontab -e
修改为以下状态。表示每小时的30分,进行一次数据库备份,最多保留200次备份数据。30 * * * * zstack-ctl dump_mysql --keep-amount 200异地备份数据库
为防止管理节点出现故障不能进入系统,建议配置远程数据库备份。
假定管理节点的IP地址为172.20.12.16,异地备份服务器的IP地址为172.20.12.75,进行异地备份,请在管理节点172.20.12.16上执行以下步骤:
#在管理节点上生成ssh key公钥
ssh-keygen
#拷贝ssh key 公钥到异地备份服务器节点,期间需手动输入yes和root密码
ssh-copy-id root@172.20.12.75异地数据库冗余备份
如果有多台服务器可做冗余备份,可以在异地备份服务器上同时进行异地数据库备份,增加数据库的多备份。
在异地备份服务器172.20.12.75上,通过
crontab -e
修改crontab,使用rsync远程拷贝管理节点存放的数据库目录来进行定时异地备份。#每天凌晨12点和中午12点,将管理节点数据库直接备份到异地备份服务器的/var/lib/zstack/from-zstack-remote-backup/ 目录下,最多保留24份
0 0,12 * * * zstack-ctl dump_mysql --host root@172.20.12.75 --d --keep-amount 24管理节点灾难恢复
背景信息
假如管理节点因硬件或软件故障无法进入系统,可参考以下步骤进行恢复。操作步骤
- 安装管理节点操作系统。
参考ZStack Cloud官方的ISO进行操作系统的安装,选择原本的管理节点重新安装管理节点操作系统,或选择新的服务器作为管理节点。
-
安装ZStack Cloud
参考ZStack Cloud官网的安装文档进行安装。
Note: 请选择系统出现故障时的版本进行安装。假定在出现故障前,ZStack Cloud版本为3.8.0, 则建议安装ZStack Cloud 3.8.0。 - 更新许可证
ZStack Cloud安装完成后,需更新许可证再继续其他操作。
- 恢复数据库。在异地备份服务器上,选择最后一次的数据库备份文件。其文件命名类似以下格式:
#代表管理节点172.20.1.123在2022年5月7日14点43分43秒进行的数据库备份 172.20.1.123-zstack-backup-db-2022-05-07_14-43-43.gz将此文件拷贝到新安装的ZStack Cloud上。假定存放在/root/目录。执行以下命令进行数据库恢复。恢复数据库之前,ZStack Cloud会再次对当前的数据库进行备份。恢复过程中会停止相关的管理节点服务。zstack-ctl restore_mysql -f /root/ 172.20.1.123-zstack-backup-db-2022-05-07_14-43-43.gz --mysql-root-password zstack.mysql.password //-f参数代表选择/root/172.20.1.123-zstack-backup-db-2022-05-07_14-43-43.gz进行数据库恢复 //--mysql-root-password zstack.mysql.password参数代表指定使用zstack.mysql.password作为mysql的root密码进行恢复Note:- 如果恢复前管理节点同时作为计算节点添加进入物理主机列表,那么此计算节点不可恢复,需手动删除。
-
如果恢复前管理节点有修改过consoleProxyOverriddenIp 的值,同时需要在新管理节点修改以下文件的consoleProxyOverriddenIp配置以恢复原本设置。
/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties - 如果管理节点数据库备份未同步到异地备份服务器上,就发生了灾难,无法修复。
- 参考本文档的恢复方法,数据库备份的时间点到管理节点发生灾难的时间段内创建的云主机,数据恢复后,可能会变成不受控制的云主机。但是其他云主机的状态会直接同步原本物理主机的状态。
修改管理节点IP地址
使用ZStack Cloud过程中,当管理节点IP发生变化时,需要手动修改。根据部署方式不同,主要分为单管理节点、双管理节点物理机高可用两个场景。
单管理节点场景
若管理节点所在服务器的IP地址发生变化,请参考以下步骤修改管理节点IP地址:
- 在管理节点执行以下命令备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 依次执行以下命令,手动修改所有服务器的网卡地址(假设bond0为管理网络):
[root@localhost ~]# zs-network-setting -i br_bond0 172.31.250.100 255.255.255.0 172.31.250.1 #根据实际情况填写 - 依次执行以下命令,修改管理节点IP:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效
补充说明
若管理节点所在服务器同时被添加为其他节点, 需要在UI上更新相应节点的IP地址 ,操作流程如下:
Note: 修改物理机IP可能会导致物理机失联,请谨慎操作。
- 场景一:管理节点、计算节点、镜像服务器( ImageStore类型 )共用服务器
- 登录UI界面,在硬件设施界面,将需要修改物理机进入维护模式并停用镜像服务器。
- 在管理节点执行以下命令备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 依次执行以下命令,手动修改所有服务器的网卡地址(假设bond0为管理网络):
[root@localhost ~]# zs-restore-network-setting -i br_bond0 #清除网桥上IP [root@localhost ~]# zs-show-network #查看是否成功清除IP [root@localhost ~]# zs-network-setting -i br_bond0 172.31.250.100 255.255.255.0 172.31.250.1 #根据实际情况填 - 依次执行以下命令,修改管理节点IP:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效 - 登录UI界面,依次修改对应物理机IP、镜像服务器IP。Note:
- 修改物理机IP可能会导致物理机失联,请谨慎操作。
- 修改镜像服务器IP后,重连过程中其上资源暂时无法操作。
- 场景二:管理节点、存储节点(Ceph分离部署)共用服务器
- 在管理节点执行以下命令备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 执行Ceph存储变更管理IP地址操作。
- 依次执行以下命令,修改管理节点IP:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效
- 在管理节点执行以下命令备份数据库:
- 场景三:复杂的混合场景
管理节点、计算节点、存储节点(Ceph分离部署)、镜像服务器共用服务器。
- 在管理节点执行以下命令备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 登录UI界面,在硬件设施界面,将需要修改物理机进入维护模式并停用镜像服务器。
- 执行Ceph存储变更管理IP地址操作。
- 依次执行以下命令,修改管理节点IP:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效 - 登录UI界面,依次修改对应物理机IP、镜像服务器IP、更改ceph主存储监控节点IP。Note:
- 修改物理机IP可能会导致物理机失联,请谨慎操作。
- 修改镜像服务器IP后,重连过程中其上资源暂时无法操作。
- Ceph主存储/镜像服务器监控节点IP不支持修改,请联系官方技术支持获取帮助。
- 在管理节点执行以下命令备份数据库:
双管理节点物理机高可用场景
若管理节点所在服务器的IP地址发生变化,请参考以下步骤,修改管理节点IP:
- 在某个管理节点,执行以下命令,备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 分别在两个管理节点依次执行以下命令,手动修改所有服务器的网卡地址(假设bond0为管理网络):
[root@localhost ~]# zs-restore-network-setting -i br_bond0 #清除网桥上IP [root@localhost ~]# zs-show-network #查看是否成功清除IP [root@localhost ~]# zs-network-setting -i br_bond0 172.31.250.100 255.255.255.0 172.31.250.1 #根据实际情况填 - 分别在多个管理节点依次执行如下命令,修改管理节点IP地址:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效 - 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
补充说明
若管理节点所在服务器同时被添加为其他节点,需要同时修改IP地址,操作流程如下:
- 场景一:管理节点、计算节点、镜像服务器共用服务器
- 登录UI界面,在硬件设施界面,将需要修改物理机进入维护模式并停用镜像服务器。
- 在某个管理节点下执行以下命令,备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 分别在多个管理节点依次执行以下命令,手动修改所有服务器的网卡地址(假设bond0为管理网络):
[root@localhost ~]# zs-restore-network-setting -i br_bond0 #清除网桥上IP [root@localhost ~]# zs-show-network #查看是否成功清除IP [root@localhost ~]# zs-network-setting -i br_bond0 172.31.250.100 255.255.255.0 172.31.250.1 #根据实际情况填 - 分别在多个管理节点依次执行如下命令,修改管理节点IP地址:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效 - 通过备份数据库的管理节点IP登录UI界面,依次修改对应物理机IP、镜像服务器IP。
- 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
- 场景二:管理节点、存储节点(Ceph分离部署)共用服务器
- 在某个管理节点,执行以下命令,备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 通过VIP登录UI界面,在硬件设施界面,修改物理机进入维护模式、停用主存储、停用镜像服务器;在云资源池界面,关闭云主机
- 执行Ceph存储变更管理IP地址操作。
- 分别在多个管理节点依次执行如下命令,修改管理节点IP地址:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效 - 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
Note: Ceph场景修改IP为重操作,请联系官方技术支持获取帮助。 - 在某个管理节点,执行以下命令,备份数据库:
- 场景三:复杂的混合场景
管理节点、计算节点、存储节点(Ceph分离部署)、镜像服务器共用服务器。
- 在某个管理节点,执行以下命令,备份数据库:
[root@localhost ~]# zstack-ctl dump_mysql - 通过VIP登录UI界面,在硬件设施界面,修改物理机进入维护模式、停用主存储、停用镜像服务器;在云资源池界面,关闭云主机
- 执行Ceph存储变更管理IP地址操作。Note: Ceph场景修改IP为重操作,请联系官方技术支持获取帮助。
- 分别在多个管理节点依次执行如下命令,修改管理节点IP地址:
[root@localhost ~]# zstack-ctl change_ip --ip 172.31.250.110 # 172.31.250.110为新的管理节点IP地址 [root@localhost ~]# zstack-ctl config_ui --db-url jdbc:mysql://172.31.250.110:3306 # 修改 UI 数据库地址 [root@localhost ~]# zstack-ctl stop && zstack-ctl start #重启管理节点和UI服务进程,配置生效 - 通过备份数据库的管理节点IP登录UI界面,依次修改对应物理机IP、镜像服务器IP、更改ceph主存储监控节点IP。Note: 若镜像服务器为Ceph类型需更改Ceph类型镜像服务器监控节点IP,请联系官方技术支持获取帮助。
- 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
- 通过VIP登录UI界面,在硬件设施界面,启用镜像服务器、主存储、物理机;在云资源池界面,开启云主机。
- 在某个管理节点,执行以下命令,备份数据库:
切换管理节点
管理节点切换步骤如下:
- 登录原管理节点,执行如下命令,备份原管理节点数据库并拷贝到
/root/目录:[root@localhost ~]# zstack-ctl dump_mysql #备份数据库,假定数据库备份文件为/var/lib/zstack/mysql-backup/172.20.10.2-zstack-backup-db-2018-12-13_17-57-52.gz [root@localhost ~]# cp /var/lib/zstack/mysql-backup/172.20.10.2-zstack-backup-db-2018-12-13_17-57-52.gz /root #将备份文件拷贝到/root/目录 - 在新管理节点安装相同版本的ZStack Cloud(确保版本的相同)并添加License许可;
- 在原管理节点,执行如下命令,停止管理节点服务:
[root@localhost ~]# zstack-ctl stop - 在原管理节点,执行如下命令,拷贝原管理节点数据库备份文件到新管理节点:
[root@localhost ~]# scp /root/172.20.10.2-zstack-backup-db-2018-12-13_17-57-52.gz root@新管理节点IP:/root - 在新管理节点,执行如下命令,恢复数据库:
[root@localhost ~]# zstack-ctl restore_mysql -f /root/172.20.10.2-zstack-backup-db-2018-12-13_17-57-52.gz --mysql-root-password zstack.mysql.password #zstack.mysql.password为数据库密码 - 在新管理节点,执行如下命令,启动管理节点:
[root@localhost ~]# zstack-ctl start - (可选)确保新管理节点上服务无误后,执行如下命令,删除原管理节点上相关目录以保证数据安全:
[root@localhost ~]# rm –rf /user/local/zstack
计算节点升级为管理节点
若需要将计算节点升级为管理节点,请按照以下步骤进行操作:
- 在待升级计算节点,依次执行如下命令,确定进程是否空闲:
[root@localhost ~]# lsof +d /usr/loc al/zstack/ #进行使用查看 [root@localhost ~]# ps aux|grep usr.local.zstack #查看是否有进程使用此文件夹 - 停止待升级为管理节点的物理机 。
- 在原管理节点执行以下命令,停止管理节点:
[root@localhost ~]# zstack-ctl stop - 在待升级计算节点,依次执行如下命令,停止Agent服务:
[root@localhost ~]# systemctl stop zstack-sharedblock-agent; [root@localhost ~]# /etc/init.d/zstack-network-agent stop; [root@localhost ~]# kill -15 `pgrep dnsmasq` - 在待升级计算节点,依次执行如下命令,升级为管理节点:
[root@localhost ~]# mv /usr/local/zstack/ /mnt/ # mv /usr/local/zstack/ /mnt/ [root@localhost ~]# bash ZStack-Cloud-install.bin -E #升级为管理节点 [root@localhost ~]# cp -r /mnt/zstack/* /usr/local/zstack/ #复制之前文件到/usr/local/zstack/ - 启用物理机及后续可选操作(例如:将此管理节点替换原管理节点、或者部署双管理节点)。
