文档目录

管理节点运维

本章主要针对ZStack Cloud管理节点运维给出处理办法。

注意事项

若需要对管理节点进行运维,需要注意以下事项:
  • 管理节点运维前(升级、重启),请将设置 > 全局设置 > 高级设置中的云主机高可用全局开关设置为false,待运维完成后,将修改恢复为true

管理节点高可用

双管理节点物理机高可用场景

概述

ZStack Cloud以单独的高可用套件形式,提供双管理节点物理机高可用功能。当其中任何一个管理节点失联,秒级触发高可用切换,从而保障管理节点持续提供服务。

高可用原理:每个管理节点均运行zsha2高可用进程,负责实时监控管理节点上的关键服务(包括:管理节点服务、UI服务、数据库服务),当任何一个关键服务出现宕机,立即通过Keepalived触发VIP(Virtual IP)迁移,然后尝试恢复宕机服务。

本章节以双管理节点物理机高可用为例,简单概述安装部署、升级步骤,以及双管理节点物理机高可用相关注意事项。详情请参考《双管理节点物理机高可用教程》。

安装部署

  • 已有单管理节点环境,部署为双管理节点物理机高可用环境
    1. 下载官方发布的最新版ZStack Cloud定制版ISO、bin包和多管理节点高可用套件。
    2. 将已有管理节点升级到最新版ZStack Cloud
    3. 对新增管理节点安装最新版ZStack Cloud
    4. 对新增管理节点安装许可证,要求两个管理节点安装的许可证类型要求完全一致。
    5. 将高可用套件导入老管理节点,并解压安装。
  • 新装双管理节点环境,部署为双管理节点物理机高可用环境
    1. 下载官方发布的最新版ZStack Cloud定制版ISO、bin包和多管理节点高可用套件。
    2. 对两个新管理节点安装最新版ZStack Cloud
    3. 对两个新管理节点安装许可证,要求两个管理节点安装的许可证类型要求完全一致。
    4. 将高可用套件导入其中一个管理节点,并解压安装。

升级

  • 高可用套件升级

    管理员获得新版高可用套件后,可用于升级当前的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.iso
      Note: -peerpass为可选参数,可设置Peer管理节点SSH登录密码。

注意事项

  • 管理节点物理机配置需在8CPU+12G内存及以上。
  • 管理网络建议采用万兆以上带宽,若独立部署,允许千兆带宽。
  • 推荐使用zs-network-setting创建静态网桥。
  • 多管理节点高可用套件需依赖ZStack Cloud 2.6.0及以上版本。且两者必须配套使用,即:2.6.0版高可用套件必须与2.6.0版ZStack Cloud配套使用。
  • 两个管理节点安装的ZStack Cloud版本必须一致,且两个管理节点安装的许可证类型必须一致。
  • 安装高可用套件,需将zsha2zstack-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

管理节点灾难恢复

背景信息

假如管理节点因硬件或软件故障无法进入系统,可参考以下步骤进行恢复。

操作步骤

  1. 安装管理节点操作系统。

    参考ZStack Cloud官方的ISO进行操作系统的安装,选择原本的管理节点重新安装管理节点操作系统,或选择新的服务器作为管理节点。

  2. 安装ZStack Cloud

    参考ZStack Cloud官网的安装文档进行安装。

    Note: 请选择系统出现故障时的版本进行安装。假定在出现故障前,ZStack Cloud版本为3.8.0, 则建议安装ZStack Cloud 3.8.0。
  3. 更新许可证

    ZStack Cloud安装完成后,需更新许可证再继续其他操作。

  4. 恢复数据库。
    在异地备份服务器上,选择最后一次的数据库备份文件。其文件命名类似以下格式:
    #代表管理节点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地址:
  1. 在管理节点执行以下命令备份数据库:
    [root@localhost ~]# zstack-ctl dump_mysql
  2. 依次执行以下命令,手动修改所有服务器的网卡地址(假设bond0为管理网络):
    [root@localhost ~]# zs-network-setting -i br_bond0  172.31.250.100  255.255.255.0 172.31.250.1  #根据实际情况填写
  3. 依次执行以下命令,修改管理节点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类型 )共用服务器
    1. 登录UI界面,在硬件设施界面,将需要修改物理机进入维护模式并停用镜像服务器。
    2. 在管理节点执行以下命令备份数据库:
      [root@localhost ~]# zstack-ctl dump_mysql
    3. 依次执行以下命令,手动修改所有服务器的网卡地址(假设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  #根据实际情况填
    4. 依次执行以下命令,修改管理节点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服务进程,配置生效
    5. 登录UI界面,依次修改对应物理机IP、镜像服务器IP。
      Note:
      • 修改物理机IP可能会导致物理机失联,请谨慎操作。
      • 修改镜像服务器IP后,重连过程中其上资源暂时无法操作。
  • 场景二:管理节点、存储节点(Ceph分离部署)共用服务器
    1. 在管理节点执行以下命令备份数据库:
      [root@localhost ~]# zstack-ctl dump_mysql
    2. 执行Ceph存储变更管理IP地址操作。
    3. 依次执行以下命令,修改管理节点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分离部署)、镜像服务器共用服务器。

    1. 在管理节点执行以下命令备份数据库:
      [root@localhost ~]# zstack-ctl dump_mysql
    2. 登录UI界面,在硬件设施界面,将需要修改物理机进入维护模式并停用镜像服务器。
    3. 执行Ceph存储变更管理IP地址操作。
    4. 依次执行以下命令,修改管理节点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服务进程,配置生效
    5. 登录UI界面,依次修改对应物理机IP、镜像服务器IP、更改ceph主存储监控节点IP。
      Note:
      • 修改物理机IP可能会导致物理机失联,请谨慎操作。
      • 修改镜像服务器IP后,重连过程中其上资源暂时无法操作。
      • Ceph主存储/镜像服务器监控节点IP不支持修改,请联系官方技术支持获取帮助。

双管理节点物理机高可用场景

若管理节点所在服务器的IP地址发生变化,请参考以下步骤,修改管理节点IP:
  1. 在某个管理节点,执行以下命令,备份数据库:
    [root@localhost ~]# zstack-ctl dump_mysql
  2. 分别在两个管理节点依次执行以下命令,手动修改所有服务器的网卡地址(假设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  #根据实际情况填
  3. 分别在多个管理节点依次执行如下命令,修改管理节点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服务进程,配置生效
  4. 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。

补充说明

若管理节点所在服务器同时被添加为其他节点,需要同时修改IP地址,操作流程如下:
  • 场景一:管理节点、计算节点、镜像服务器共用服务器
    1. 登录UI界面,在硬件设施界面,将需要修改物理机进入维护模式并停用镜像服务器。
    2. 在某个管理节点下执行以下命令,备份数据库:
      [root@localhost ~]# zstack-ctl dump_mysql
    3. 分别在多个管理节点依次执行以下命令,手动修改所有服务器的网卡地址(假设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  #根据实际情况填
    4. 分别在多个管理节点依次执行如下命令,修改管理节点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服务进程,配置生效
    5. 通过备份数据库的管理节点IP登录UI界面,依次修改对应物理机IP、镜像服务器IP。
    6. 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
  • 场景二:管理节点、存储节点(Ceph分离部署)共用服务器
    1. 在某个管理节点,执行以下命令,备份数据库:
      [root@localhost ~]# zstack-ctl dump_mysql
    2. 通过VIP登录UI界面,在硬件设施界面,修改物理机进入维护模式、停用主存储、停用镜像服务器;在云资源池界面,关闭云主机
    3. 执行Ceph存储变更管理IP地址操作。
    4. 分别在多个管理节点依次执行如下命令,修改管理节点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服务进程,配置生效
    5. 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
    Note: Ceph场景修改IP为重操作,请联系官方技术支持获取帮助。
  • 场景三:复杂的混合场景

    管理节点、计算节点、存储节点(Ceph分离部署)、镜像服务器共用服务器。

    1. 在某个管理节点,执行以下命令,备份数据库:
      [root@localhost ~]# zstack-ctl dump_mysql
    2. 通过VIP登录UI界面,在硬件设施界面,修改物理机进入维护模式、停用主存储、停用镜像服务器;在云资源池界面,关闭云主机
    3. 执行Ceph存储变更管理IP地址操作。
      Note: Ceph场景修改IP为重操作,请联系官方技术支持获取帮助。
    4. 分别在多个管理节点依次执行如下命令,修改管理节点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服务进程,配置生效
    5. 通过备份数据库的管理节点IP登录UI界面,依次修改对应物理机IP、镜像服务器IP、更改ceph主存储监控节点IP。
      Note: 若镜像服务器为Ceph类型需更改Ceph类型镜像服务器监控节点IP,请联系官方技术支持获取帮助。
    6. 在备份数据库的管理节点通过install_ha命令重新安装高可用套件。
    7. 通过VIP登录UI界面,在硬件设施界面,启用镜像服务器、主存储、物理机;在云资源池界面,开启云主机。

切换管理节点

管理节点切换步骤如下:
  1. 登录原管理节点,执行如下命令,备份原管理节点数据库并拷贝到/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/目录
  2. 在新管理节点安装相同版本的ZStack Cloud(确保版本的相同)并添加License许可;
  3. 在原管理节点,执行如下命令,停止管理节点服务:
    [root@localhost ~]# zstack-ctl stop
  4. 在原管理节点,执行如下命令,拷贝原管理节点数据库备份文件到新管理节点:
    [root@localhost ~]# scp /root/172.20.10.2-zstack-backup-db-2018-12-13_17-57-52.gz root@新管理节点IP:/root
  5. 在新管理节点,执行如下命令,恢复数据库:
    [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为数据库密码
  6. 在新管理节点,执行如下命令,启动管理节点:
    [root@localhost ~]# zstack-ctl start
  7. (可选)确保新管理节点上服务无误后,执行如下命令,删除原管理节点上相关目录以保证数据安全:
    [root@localhost ~]#  rm –rf /user/local/zstack

计算节点升级为管理节点

若需要将计算节点升级为管理节点,请按照以下步骤进行操作:
  1. 在待升级计算节点,依次执行如下命令,确定进程是否空闲:
    [root@localhost ~]# lsof +d /usr/loc    al/zstack/     #进行使用查看
    [root@localhost ~]# ps aux|grep usr.local.zstack     #查看是否有进程使用此文件夹
  2. 停止待升级为管理节点的物理机 。
  3. 在原管理节点执行以下命令,停止管理节点:
    [root@localhost ~]# zstack-ctl stop
  4. 在待升级计算节点,依次执行如下命令,停止Agent服务:
    [root@localhost ~]# systemctl stop zstack-sharedblock-agent;
    [root@localhost ~]# /etc/init.d/zstack-network-agent stop;
    [root@localhost ~]# kill -15 `pgrep dnsmasq` 
  5. 在待升级计算节点,依次执行如下命令,升级为管理节点:
    [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/
  6. 启用物理机及后续可选操作(例如:将此管理节点替换原管理节点、或者部署双管理节点)。
运维手册 | 5.5.30 | ZStack Cloud · ZCF | ZStack 资源中心