一、前期准备
1、项目情况了解
1.1 项目信息
1.2 了解整体技术方案
1.3 具体实施细节确认
2、项目前期调研
2.1业务调研
2.2自助平台信息前期信息收集
3、部署材料列表
二、环境准备
1、服务器
1.1 操作系统的配置
1.2软件驱动版本
1.3操作系统安装
1.4服务器网卡bonding
1.5软件关闭
2、网络规划
2.1标准组网架构
2.2自动化安装支持的openstack网络类型
2.3关于网络规划建议
三、服务器初始化
1、操作系统安装
2、制作bond并配置网卡
3、bond测试
四、腾讯云TStack自动化安装
1、修改配置文件
2、确认控制节点01系统时间
3、开始跑脚本
4、时间同步
4.1时区设置(控制节点01)
4.2时间设置(控制节点01)
4.3其他服务器时钟同步
五、配置解析
自动化部署 TStack 的前提
1 至少需要一台服务器能传 Tstack 安装包进去
2 只支持单 region 部署
3 物理机服务器需大于 3 台, OpenStack 指定为 3 控制节点部署方
式,默认安装 ceph,ceph 集群 mon 节点固定三台,osd 节点物理机
磁盘大于 2 块
一、 前期准备
1. 1. 项目情况了解 项目情况了解
1 1.1 项目信息
提前找前期交流人员了解客户的基本信息,目前运营的业务情况
以及后续业务迁移入云的计划
提前尽可能详细的了解前期交流的具体情况,并且在到达现场后
一一与客户进行再次确认,防止信息在传递过程中出现偏差。
提前与客户现场人员取得联系,了解现场条件,设备到货情况等
以合理的安排出差时间
1.2 了解整体技术方案
了解项目经过前期交流后确定的技术方案,技术方案中主要包括
项目背景、私有云建设方案、网络建设方案等几部分。
私有云建设方案包括整体架构设计(建设几套 region,每套
region 使用的存储方式)、初始规模(采购的物理机数量,物理机配
置及其对应角色)、服务器分配方案。
网络建设方案包括整体网络拓扑、初期建设规模(设备可能分多
批次到货)、网络建设方案说明(布线说明、网络设备配置说明)和
网段规划(网段规划在到达现场后务必于客户进行确认,确认网段规
划符合现场网络要求)。
1.3 具体实施细节确认
在了解了整体技术方案后,提前做好一部分前期规划工作,包括
但不仅限以下内容:
● 服务器硬盘规划:每块硬盘的用途,用来装系统还是用作存
储盘,需要制作的 raid 类型
● 系统盘具体默认分区方案(控制节点、计算节点通用):
var/log 50G, swap (16G-32G),boot 500M , \ 剩下所有空间。
● 确认网络设备需要做的具体配置:一般情况下,现场会有网
络设备厂商的网络工程师协助进行网络配置,但我们仍需清楚的告知
网络工程师现场的网络架构,包括网络设备上需做的具体的配置,例
如交换机堆叠,端口聚合、端口模式等等
2.项目前期调研
2.1 业务调研
了解客户现有业务的类型、架构、规模、所使用的操作系统版本,
软件版本等等,确认迁移方案,常用的迁移方案是云平台根据业务的
要求,提供满足业务配置需求的虚拟机,重新部署业务的运营环境,
待部署完成后进行业务系统的数据迁移工作和流量切换完成业务迁
移。
2.2 自助平台信息前期信息收集
在实施前,需要优先确定部分信息,确保后续云服务自助平台的
顺利搭建,这些信息包括但不仅限于以下内容:
● 租户:租户是用来划分资源与成本等归属的一个范围,一般
为部门或者中心级别,但级别确定后,后期扩展只能使用确定的级别
(部门或中心),例如初期租户确认为财务经营部和云计算部级别,
后续添加的租户也必须与财务经营部和云计算部在同一级别上
● 角色与用户:角色分为系统管理员、部门管理员和工单管理
员,如果一个用户不属于任何角色,那么此用户为普通用户,只能进
行资源的申请操作。如果一个用户属于系统管理员、部门管理员或工
单管理员,那么此用户不仅可以申请资源,还具有审单、批单、管理
部门下的所有机器等权限。整个审批流程可以根据现场情况进行调整,
例如多级审批,类似下图的过程:
3. 部署材料列表 部署材料列表
TStack 安装包,为腾讯云 TStack 安装软件包,包括腾讯云
TStack(基础云,自助云,监控)安装所需的所有东西。
二、环境准备
1. 服务器
1.1 操作系统的配置
(操作系统下载地址 http://mirror.nsc.liu.se/centos-store/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso)
1.2 软件驱动版本
当万兆网卡使用 i40e 驱动是需注意版本
1.3 操作系统安装
1 1.3.1 最小化 centos 7.5_U iso_U 盘
所有节点均使用最小化 centos7.5_iso_U 盘安装,安装完毕之后
上传腾讯云 TStack 部署包:
将 Tstack 部署包 tstack-pike-1.0.0-release.tar.gz 上传至
控制节点 01 服务器任意目录例如/tmp
准备脚本运行环境,命令如下:
cd /tmp
mkdir /tmp/packet
tar zxvf tstack-pike-1.0.0-release.tar.gz -C /tmp/packet
cd /tmp/packet
bash install_base_with_pack.sh
执行完脚本后,验证以下内容:
1、/root/ansible_deploy/ 是否存在该目录,该目录下是否有
文件。
2. /var/www/html/tstack/有 tstack-images、tstack-repos、
tstack-tars 三个文件夹
3. curl ${openstack-con01}/tstack/输出包含tstack-images、
tstack-repos、tstack-tars 字段即可,${openstack-con01}用本机
ip 替换掉
1.4 服务器网卡 bond ing
部署之前需要清楚每张网卡在服务器上所在的物理位置、那两张
网卡做端口绑定,以便后面排错,例如以下
网卡位置:
eno1 eno2
enp8s0f0 enp8s0f1
enp9s0f0 enp9s0f1
bonding 网卡序列
eno1 eno2 bond0
enp8s0f0 enp9s0f1bond1
enp9s0f0 enp8s0f1bond2
1.5 软件关闭
如果是自己用 Centos7.5-1804 minimal 镜像装的服务器,需要
先关闭 selinux,firewalld 等服务。
2. 网络规划
2.1 1 标准组网架构
Openstack 网络
管理网络
管理网络为 openstack 部署时所用网络,平台搭建起来之后接受
外部请求,平台内 API 请求处理网络,mysql、memcache、haproxy、
keepalived、rabbitmq 等也使用该网络。一般规划为千兆网络。
虚拟机数据网络
VLAN 模式下该网络为数据网络,不同计算节点虚拟机之间通过计
算节点 br-bondx 来实现数据传输,虚拟机获取 dhcp、元数据等信息也是通过所在计算节点 br-bondx 和控制节点的 br-bondx 来进行通信。
VXLAN 模式下数据网络为 vxlan 隧道网络,vxlan 隧道是通过计算
节点<->控制节点,计算节点<->计算节点之间的带 ip 的网卡构成的
网络(数据网络接口需要 IP 地址, 因为是隧道协议需要底下的三层
转发支持),不同计算节点虚拟机之间、以及虚拟机获取 dhcp、元数
据等信息通过该网络获取。
虚拟机外部网络
外部网络只有在 VXLAN 模式下才有,该网络实现了 vxlan 虚拟机
同外部的通信。
Ceph 网络
存储接入网络(public)
接收客户端请求,监视整个集群信息。
存储复制网络(cluster)
Ceph 各 osd 副本之间复制、osd 之间心跳、数据恢复回填等。
带外网络
带外网络用作服务器带外管理,服务器远程管理等。
2.2 自动 化安装支持的 O Ok penStack 网络类型
vxlan _ovs
vxlan_ovs 特性:
1)虚拟机业务网络生成与控制节点的 隧道网络内,联通外部网路需要借助于虚拟机路由器等
2)该网络下外部网络为 flat 模式
3)tstack 虚拟机创建于 vxlan 网络上,部署过程中,会自动创建浮动 IP,并创建关联网络以及虚拟路由器进行互通
4)由 flat 提供外部网络, 默借助于虚拟机路由器等
网络架构图如下:
vlan_ovs
vlan_ovs 主要特性:
1)虚拟机与外部访问直接从计算节点出网,不经过网络节点(控制节
点)
2)虚拟机网络网关在核心交换机
3)tstack 业务虚拟机创建于该业务网络的其中一个 vlan 网络内
网络结构图如下:
vlan_vxlan
vlan_vxlan 特性:
1)虚拟机业务网络生成与控制节点的 隧道网络内,联通外部网路需要
借助于虚拟机路由器等
2)该网络下外部网络为 trunk 口,可以创建多于一条外部网络
3)tstack 虚拟机创建于 vxlan 网络上,部署过程中,会自动创建浮
动 IP,并创建关联网络以及虚拟路由器进行互通
4)由 vlan 提供外部网络
网络结构图如下:
2.3 关于网络规划建议
上行交换机端口聚合模式为lacp(动态链路聚合),端口模式为trunk
下行服务器网卡 bonding 模式为 mode4(802.3ad)
服务器每对 bond 做相应 vlan 子接口方便测试
三、 服务器初始化
1. 操作系统安装
2. 制作 bond 并配置网卡
按硬件配置要求,做 raid、装系统,并由现场网络工程师设置交
换机之后,需要对服务器的网卡做 bond 设置,并配置网络参数。例
如有如下场景示例:
对于每一个节点,将 enp61s0f0 和 enp61s0f1 做成 bond_manage,
并做子接口bond_manage.224。为bond_manage.224配置管理网络IP,
并设置网关为 172.16.3.0。
注意:网口名称 enp61s0f0 和 enp61s0f1 是示例,请根据实际网
口名称(如 enp26s0f0、enp26s0f1 等)来配置文件!
一个示例脚本 bond_ _h config.sh 见附录 1 1
3.Bond 测试
1>配置完成后将所有节点网络重启,并进行检查是否 bond 配置成功
# ansible –i hosts,yml openstack-all –m service –a “name=network state=restarted”
2>检查网卡是否 bond 为单网卡做 bond 前的两倍
# ansible –i hosts.yml openstack-all -a “ethtool bond_manage”|grepSpeed
3>如果 bond 出现不正常,检查系统 bond 状态
#cat /proc/net/bonding/bond_manage 存在 802.3ad 表示为
bond4 成功。包含两个 slave 表示正常
四、 腾讯云 k TStack 自动化安装
腾讯云 TStack 安装在主服务器操作(默认为控制节点 1)。
所有服务器安装操作系统完成后,就可以开始安装腾讯云TStack。
腾讯云 TStack 自动安装包括了部署 OpenStack、自助云、监控云。
OpenStack 安装在物理服务器,自助云、监控云 分别安装在
OpenStack 自动孵化的虚拟机。
1. 修改配置文件
配置文件位置在 /root/ansible-deploy/目录下,主服务器修改
以下文件:
Hosts 配置: : /root/ansible-deploy/tstack_hosts/ 文件夹下
所有 all 、 openstack 、 ceph 、 sip 、r monitor 文件修改完执行
python generate_hosts.py
上面命令会生成/root/ansible-deploy/hosts 用作 ansible 执
行时的 inventory 文件
主要环境变量: : /root/ansible-deploy/group_vars/all.yml
配置解释见 附录 2 2 :all_example.yml
/root/ansible-deploy/group_vars/openstack-all.yml配置解
释见 附录 3 3 :openstack-all_example.ym
上层数据初始化配置见 附录 4 4: :d d atainit_ example .yml
2. 确认控制节点 1 01 系统时间
跑脚本之前需要确认控制节点01的系统时间与实际时间(例如
手机时间)差别不大,否则按照修改
3. 开始跑脚本
cd /root/ansible-deploy
bash run.sh
跑完之后看到下面图像即安装完毕.
4. 时间同步
4.1 时区设置( ( 控制节点 01) )
将控制节点 01 时区设置成 CST 时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4.2 时间设置( ( 控制节点 01) )
date -s 05/03/19
date -s 15:33:00
4.3 其他服务器时钟同步
腾讯云 TStack 所有服务器采用 chrony 来做时钟同步服务:
注意: : 上层 6 台服务器未配置三台控制节点的域名解析,需在
这六台服务器的/etc/hosts 里面加三行才能完成时钟同步。
五、 配置解析
整个部署脚本的入口为 run.sh,run.sh 实际主要主要执行了
tstack.yml,tstack.yml 配置 comment 如下:
上面的每一节都是可以分开跑的,如果跑脚本的过程中出错了就
不用推倒重来,只需要关注错误的部分,从错误的部分开始跑脚本即
可,对于上面有两种操作。