一、前期准备 ? ? ? ?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 如下:
上面的每一节都是可以分开跑的,如果跑脚本的过程中出错了就 不用推倒重来,只需要关注错误的部分,从错误的部分开始跑脚本即 可,对于上面有两种操作。?
?
|