Zstack部署方案
一、安装与部署
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