第二章: 环境设计和系统准备
本项目主要帮助读者掌握搭建OpenStack云计算平台的环境设计及系统准备,包括硬件基本需求,OpenStack云计算平台的搭建所需的软件包,部署一个实际的OpenStack云计算平台拓扑结构,并在这个环境下进行系统安装基础工作。
理论:1.项目需求分析
(1)基本概念
需求分析是指理解用户需求,就用户的功能需求与客户达成一致,并需要估计项目风险和评估项目代价,最终形成开发计划的一个复杂过程。在这个过程中,用户是处在主导地位的,需求分析工程师和项目经理要负责整理用户需求,为之后的项目设计打下基础。
从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理等一系列需求工程。狭义上理解:需求分析指需求的分析、定义过程。
需求分析阶段结束后应该得到相应的需求分析报告。
(2)分析内容
需要分析的内容可以包含:公司应用需求、技术资金投入与生产效益、行业技术发展趋势,国家政策支持等。
(3)分析过程
需求分析阶段的工作,可以分为4个方面:问题识别、分析与综合、制订规格说明、评审。
(4)分析方法
需求分析的方法有很多。如原型化方法、结构化方法和动态分析法等。
2.系统架构设计
一个项目的系统架构设计一般是由系统架构设计师来负责完成的。对于系统架构设计师来说,其主要职责有如下4条。
(1)确认需求
在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。
(2)系统分解
依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
(3)技术选型
通过对系统的一系列的分解,架构师最终形成项目的整体架构。技术选择主要取决于项目架构。
架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会对项目预算、人力资源和时间进度等实际情况进行权衡,最终进行确认。
(4)制定技术规格说明
在项目开发过程中,架构师是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照他的架构意图去实现各项功能。
架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至最终用户保持沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。
3.环境说明
① 若教学环境有足够的可供学生使用的服务器,则每组分配2台服务器进行练习。
② 若教学环境没有服务器,可使用PC代替,每组分配2台PC进行练习(每台PC支持CPU虚拟化,双网卡,最低4GB内存,最低100GB硬盘)。
③ 若教学环境可供学生使用的服务器数量不够,可将所有服务器组建一个云平台,每组学生分配2台虚拟机进行练习(每台虚拟机配置双网卡,最低4GB内存,最低100GB硬盘)。
要求:准备好OpenStack搭建云计算平台项目所需的软件资源包,按云平台的网络拓扑结构图进行设备准备与网络连接,完成云平台系统安装基础工作。
准备OpenStack搭建云计算平台项目所需的软件资源包。
确定各节点的名称。
配置各节点的IP网络地址。
按要求安装各节点的操作系统。
配置系统环境变量。
在控制节点、网络节点、实例节点和存储节点分别运行脚本,完成各节点的配置安装。
验证安装基础工作。
1: 首先创建两个虚拟机,一台为控制节点,一台为实例节点,
每台虚拟机至少要有20G或以上的硬盘,
并且需要两个网卡,一个nat模式,一个仅主机模式
2 :开机将硬盘分区
3:选择最小化安装,然后开始安装,完毕重启
4:首先将两个网卡配置ip地址,修改之后重启网卡(systemctl restart network)
节点
主机 主机名 IP规划
实例通信 内部管理
控制
节点 controller 192.168.190.10 192.168.2.10
实例
节点 compute 192.168.190.20 192.168.2.20
控制节点:
(1)ifcfg-eno16777736所需要修改的内容如下
(2)ifcfg-eno33554960所需要修改的内容如下
实例节点:
(1)ifcfg-eno16777736所需要修改的内容如下
(2)ifcfg-eno33554960所需要修改的内容如下
然后连接crt
5配置域名解析(修改主机名)实力节点跟控制节点一样
6:配置防火墙,控制节点与实例节点一样
7:配置selinux,控制节点与实例节点一样,然后重启
8:配置yum源,做之前建议做快照,控制节点与实例节点操作一样
然后清楚yumhuancun,创建新的yum源缓存
9:磁盘分区:给控制节点与实例节点添加一个20G的硬盘,然后分区
使用Fdisk工具去分区,控制节点与实力节点操作一样
[root@control ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xea6a6f15.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{
K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{
K,M,G} (20973568-41943039, default 41943039):
Using default value 41943039
Partition 2 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
然后格式化分区
[root@control ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@control ~]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2 isize=256 agcount=4, agsize=655296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
10:安装软件,只需控制节点配置
yum install -y iaas-xiandian
修改配置
/etc/xiandian/openrc.sh
HOST_IP=192.168.190.192.168.20.10
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=eno33554960(外网网卡名)
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=sda3
SWIFT_PASS=000000
OBJECT_DISK=sda4
STORAGE_LOCAL_NET_IP=192.168.190.10
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000
11: 控制节点和实例节点都要执行
执行脚本iaas-pre-host.sh进行安装
然后重启设备
12:部署安装平台
(1)在控制节点执行脚本iaas-install-mysql.sh进行数据库及消息列表服务安装
iaas-install-mysql.sh
(2)在控制节点执行脚本iaas-install-keystone.sh进行keystone认证服务安装。
iaas-install-keystone.sh
(3)在控制节点执行脚本iaas-install-glance.sh进行glance镜像服务安装
iaas-install-glance.sh
(4)在控制节点执行脚本iaas-install-nova-controller.sh进行nova计算服务安装。
iaas-install-nova-controller.sh
在实例节点执行脚本iaas-install-nova-compute.sh进行nova计算服务安装
在实例节点执行脚本iaas-install-nova-compute.sh进行nova计算服务安装
(5)在控制节点执行脚本iaas-install-neutron-controller.sh进行neutron网络服务安装
iaas-install-neutron-controller.sh
在实例节点执行脚本iaas-install-neutron -compute.sh进行neutron网络服务安装。
iaas-install-neutron-compute.sh
(6)在控制节点执行脚本iaas-install-neutron-controller-vlan.sh进行vlan网络安装配置。
iaas-install-neutron-controller-vlan.sh
在实例节点执行脚本iaas-install-neutron-compute-vlan.sh进行vlan网络安装配置
iaas-install-neutron-compute-vlan.sh
(7)在控制节点执行脚本iaas-install-dashboard.sh进行dashboard服务安装。
iaas-install-dshabord.sh
(8)在控制节点执行脚本iaas-install-cinder-controller.sh进行cinder块存储服务安装