一、安装与部署

1.概述

1.1 应用架构

  • 通过iSCSI(或Ceph分布式存储)提供高可用共享存储

  • 通过KVM虚拟化技术提供云主机服务

  • 通过IPMI和PXE实现裸金属机批量部署

1.2 高可用定义

  • 存储高可用

    • Ceph分布式存储

    • iSCSI存储

  • 管理节点高可用

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

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

  • 云主机高可用

    • 通过管理节点对设置了高可用的云主机进行心跳检测,在物理机意外离线导致云主机停机时,管理节点会自动迁移云主机到其他健康物理机再次启动。

      • 云主机云盘使用本地存储,在物理机异常离线后不能再次启动,直至物理机恢复可连接状态

      • 云主机云盘使用共享存储,在资源可用的情况下,云主机会始终保持开机,即使停止也会再次启动,假定其所在物理主机异常断电关机,此云主机也会在其他可用物理主机再次启动。

  • 弹性裸金属机高可用

1.3 网络拓扑设计

  • 云主机数据网络

    • 云主机数据网络,即业务网络。是云主机向外提供应用服务的网络,或云主机之间相互通信的网络。 该网络也承载云路由三层流量。

    • 根据业务负载类型,建议采用双链路1G或10G以太网

      • 云主机使用单一扁平网络,交换机端口使用Access模式

      • 多个扁平或云路由网络,交换机端口使用Trunk模式

  • 管理网络

    • 主要承载管理节点与物理机的消息通信,包括任务下发和云主机迁移动作

    • 根据业务负载类型,建议采用双链路1G或10G以太网

  • 存储网络

    • 主要承载根云盘、数据云盘、快照等存储流量,该网络是保障管理节点和云主机业务的关键网络。

    • 考虑到存储网络的业务负载需求,建议采用双链路10G以太网

      • 建议此网络的交换机端口设定Access模式

      • 建议交换机开启巨型帧(Jumbo Frame),全链路MTU值设定为9000

  • IPMI网络

    • 各物理机的带外管理网络,建议使用单链路1G以太网

      • 建议此交换机端口设定Access模式

  • 裸金属机部署网络

    • 主要承载裸金属部署服务器用于PXE引导和传输系统镜像的DHCP、FTP数据流量,建议使用单一扁平网络

    • 考虑到批量部署效果,建议采用单链路10G以太网

      • 部署网络内不能存在除部署服务器外的其它DHCP服务与IP地址,以免冲突

  • 裸金属机数据网络

    • 裸金属节点对外提供服务的网络,也是裸金属节点之间互相通信的网络

    • 根据业务需求选择链路连接方式

  • 网络拓扑图

  • 机柜接线示意图

2.安装部署

2.1 准备工作

  • 子网规划

    接口

    网关/子网掩码

    存储网络

    192.168.10.1/24

    管理网络

    172.16.30.1/24

    部署网络

    172.16.40.1/24

    IPMI网络

    10.10.0.1/16

  • 软件包

    • Zstack系统镜像:ZStack-Cloud-x86_64-DVD-4.4.30-c76.iso

    • 高可用服务套件:ZStack-Multinode-HA-Suite-4.4.30.tar.gz

  • BIOS设置

    • 激活所有CPU核心和启用超线程功能,设定系统性能为最高性能状态

    • 打开硬件虚拟化VT功能,支持硬件虚拟化技术加速优化功能

    • 进入RAID卡设定,对两块系统硬盘配置RAID1

    • 设置系统启动盘为第一启动顺序

2.2 安装系统镜像

  • 安装模式

    • 管理节点:ZStack Enterprise Management Node

    • 计算节点:ZStack Compute Node

    • 部署节点:ZStack Compute Node(可复用管理节点)

  • 分区配置

    • /boot:存放Linux 启动所需的核心文件,建议分配 1GB空间

    • /boot/efi:存放UEFI启动引导文件,建议分配 500MB

    • swap:交换区,建议分配 32GB

    • /:Linux系统根目录,建议分配全部剩余空间

2.3 网卡聚合

  • 管理网络

    节点

    网卡1

    网卡2

    聚合接口

    网桥

    地址

    管理节点

    eno1

    eno2

    bond0

    br_bond0

    172.16.30.11

    存储服务器

    eno1

    eno2

    bond0

    br_bond0

    172.16.30.12

    计算节点1

    eno1

    eno2

    bond0

    br_bond0

    172.16.30.13

    ···

  • 存储网络

    节点

    网卡1

    网卡2

    聚合接口

    网桥

    地址

    管理节点

    ens4f0

    ens4f1

    bond1

    br_bond0

    192.168.10.11

    存储服务器

    ens4f0

    ens4f1

    bond1

    br_bond0

    192.168.10.12

    计算节点1

    ens4f0

    ens4f1

    bond1

    br_bond0

    192.168.10.13

    ···

  • 业务网路

    节点

    网卡1

    网卡2

    聚合接口

    网桥

    地址

    管理节点

    em1

    em2

    bond2

    -

    -

    计算节点1

    em1

    em2

    bond2

    -

    -

    ···

# 创建聚合网卡bond0
[root@localhost ~]# zs-bond-lacp -c bond0
# 将网卡均添加到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 172.16.30.11 255.255.255.0 172.16.30.1
# 查看聚合端口bond0是否创建成功
[root@localhost ~]# zs-show-network
...
----------------------------------------------------------------------------------
| Bond Name | SLAVE(s) | BONDING_OPTS |
----------------------------------------------------------------------------------
| bond0 | eno1 | miimon=100 mode=4 xmit_hash_policy=layer2+3 |
|       | eno2 |                                             |
----------------------------------------------------------------------------------

2.4 存储配置

3.管理节点高可用

本场景下,默认已安装两个最新版ZStack管理节点,并对两个管理节点安装许可证完毕,现在对其中一个管理节点安装多管理节点高可用套件,即可实现双管理节点高可用。

节点

网卡1

网卡2

聚合网口

网桥

地址

管理节点1

eno1

eno2

bond0

br_bond0

172.16.30.101

管理节点2

eno1

eno2

bond0

br_bond0

172.16.30.102

VIP

-

-

-

-

172.16.30.11

3.1 导入高可用套件

下载高可用套件并导入管理节点1

[root@localhost ~]# ls
ZStack-Enterprise-Multinode-HA-Suite-3.0.1.tar.gz
​
[root@localhost ~]# tar zxvf ZStack-Enterprise-Multinode-HA-Suite-3.0.1.tar.gz
zsha2 # 多管理节点高可用的安装和管理程序
zstack-hamon # 多管理节点高可用的监控程序

3.2 HA初始化

[root@localhost ~]# ./zsha2 install-ha 
-nic br_bond0 \ 
-gateway 172.16.30.1 \
-slave "root:password@172.16.30.102" \
-vip 172.16.30.11 \
-db-root-pw zstack.mysql.password \
-yes
  • 安装高可用套件,需将zsha2和zstack-hamon放在一个目录,安装过程中,zsha2 会自动部署zstack-hamon以及相关配置文件。

  • 参数说明:

    • -nic:物理设备名,用于配置VIP,生产环境一般是一个管理网络的网桥,例如-nic br_bond0

    • -gateway:主备管理节点的仲裁网关,例如-gateway 172.16.30.1

    • -slave:指定备管理节点,例如-slave "root:password@172.16.30.102"

      • 注意:备管理节点的数据库会被覆盖!

    • -vip:指定Keep Alived通信的VIP,例如 -vip 172.16.30.11

    • -db-root-pw:主备管理节点的数据库root密码(必须相同),例如-db-root-pw zstack.mysql.password

    • -yes:可选参数,所有设置均允许

  • 高可用套件初始化完成后,可执行以下命令查看管理节点的状态:

    # 查看管理节点1的状态
    [root@localhost ~]# zsha2 status
    Status report from 172.16.30.101
    =================================
    Owns virtual address: yes //管理节点1已获取VIP,同一时刻只允许一个管理节点获
    取VIP
    Self 172.16.30.101 reachable: yes //管理节点1可达
    Gateway 172.16.30.1 reachable: yes //当前网关可达
    VIP 172.16.30.11 reachable: yes //VIP可达
    Peer 172.16.30.102 reachable: yes //管理节点2可达
    Keepalived status: active //Keep Alived服务处于工作状态
    ZStack HA Monitor: active //高可用监控服务处于工作状态
    MySQL status: mysqld is alive //数据库正常工作
    MN status: Running [PID:6500] //管理节点正常工作
    UI status: Running [PID:9785] http://172.16.30.11: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:
  • 为确保双管理节点间的监控数据实时同步,建议在这两个管理节点之间做SSH免密登录

    # 登录管理节点1,对管理节点2做SSH免密登录
    [root@localhost ~]# ssh-keygen
    [root@localhost ~]# ssh-copy-id 172.16.30.102
    ​
    # 登录管理节点2,对管理节点1做SSH免密登录
    [root@localhost ~]# ssh-keygen
    [root@localhost ~]# ssh-copy-id 172.16.30.101

3.3 云平台初始化

  • 通过VIP访问云平台UI界面,并完成云平台初始化操作

3.4 切换管理节点

  • 在管理节点1中执行以下命令,管理节点1在线切换为备管理节点,管理节点2获取VIP,成为主管理节点。

    [root@localhost ~]# zsha2 demote