1.openstack简介
OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权。
OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
Openstack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人将 Openstack作为基础设施即服务资源的通用前端。Openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用 Openstack前端来设置及管理自己的公共云或私有云。 [2]
Openstack是由 Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon ec2和S3的云基础架构服务( Infrastructure as a Service)。 Openstack包括两个主要模块:Nova和 Swift。前者是NASA开发的虚拟服务器部署和业务计算模块;后者是 Backpack开发的分布式云存储模块,两者可以一起用,也可以分开单独用。 Openstack是开源项目,除了有 Rackspace和NASA的大力支持外,后面还有包括Dell、 Citrix、 Cisco Canonical这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云台 Eucalyptus的态势。
2.openstack初始化环境部署
概况
在你对基础安装,配置,操作和故障诊断熟悉之后,你应该考虑按照以下步骤使用生产架构来进行部署:
-
确定并补充必要的核心和可选服务,以满足性能和冗余要求。
-
使用诸如防火墙,加密和服务策略的方式来加强安全。
-
使用自动化部署工具,例如Ansible, Chef, Puppet, or Salt来自动化部署,管理生产环境
示例的架构
示例架构需要至少2个(主机)节点来启动基础服务,term:virtual machine <virtual machine (VM)>
或者实例。像块存储服务,对象存储服务这一类服务还需要额外的节点;
这个示例架构不同于下面这样的最小生产结构
- 网络代理驻留在控制节点上而不是在一个或者多个专用的网络节点上。
- 私有网络的覆盖流量通过管理网络而不是专用网络
硬件需求
控制器
控制节点上运行身份认证服务,镜像服务,计算服务的管理部分,网络服务的管理部分,多种网络代理以及仪表板。也需要包含一些支持服务,例如:SQL数据库,term:消息队列, and NTP。
- 可选的,可以在计算节点上运行部分块存储,对象存储,Orchestration 和 Telemetry 服务。
- 计算节点上需要至少两块网卡。
计算
计算节点上运行计算服务中管理实例的管理程序部分。默认情况下,计算服务使用 KVM。
你可以部署超过一个计算节点。每个结算节点至少需要两块网卡。
块设备存储
可选的块存储节点上包含了磁盘,块存储服务和共享文件系统会向实例提供这些磁盘。
为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。
你可以部署超过一个块存储节点。每个块存储节点要求至少一块网卡。
对象存储
可选的对象存储节点包含了磁盘。对象存储服务用这些磁盘来存储账号,容器和对象。
为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。
这个服务要求两个节点。每个节点要求最少一块网卡。你可以部署超过两个对象存储节点。
网络
从下面的虚拟网络选项中选择一种选项。
网络选项1:公共网络
公有网络选项使用尽可能简单的方式主要通过layer-2(网桥/交换机)服务以及VLAN网络的分割来部署OpenStack网络服务。本质上,它建立虚拟网络到物理网络的桥,依靠物理网络基础设施提供layer-3服务(路由)。额外地 ,:term:DHCP
为实例提供IP地址信息。
网络选项2:私有网络
私有网络选项扩展了公有网络选项,增加了启用 self-service覆盖分段方法的layer-3(路由)服务,比如 :term:
VXLAN。本质上,它使用 :term:NAT
路由虚拟网络到物理网络。另外,这个选项也提供高级服务的基础,比如LBaas和FWaaS。
环境
这个部分解释如何按示例架构配置控制节点和一个计算节点
尽管大多数环境中包含认证,镜像,计算,至少一个网络服务,还有仪表盘,但是对象存储服务也可以单独操作。如果你的使用情况与涉及到对象存储,你可以在配置完适当的节点后跳到:
ref:swift。然而仪表盘要求至少要有镜像服务,计算服务和网络服务。
你必须用有管理员权限的帐号来配置每个节点。可以用 root 用户或 sudo 工具来执行这些命令。
为获得最好的性能,我们推荐在你的环境中符合或超过在 :ref:figure-hwreqs
中的硬件要求。
以下最小需求支持概念验证环境,使用核心服务和几个:term:CirrOS
实例:
控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储
计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储
由于Openstack服务数量以及虚拟机数量的正常,为了获得最好的性能,我们推荐你的环境满足或者超过基本的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,请考虑为你的环境增加硬件资源。
为了避免混乱和为OpenStack提供更多资源,我们推荐你最小化安装你的Linux发行版。同时,你必须在每个节点安装你的发行版的64位版本。
每个节点配置一个磁盘分区满足大多数的基本安装。但是,对于有额外服务如块存储服务的,你应该考虑采用 :term:Logical Volume Manager (LVM)
进行安装。
对于第一次安装和测试目的,很多用户选择使用 :term:virtual machine (VM)
作为主机。使用虚拟机的主要好处有一下几点:
一台物理服务器可以支持多个节点,每个节点几乎可以使用任意数目的网络接口。
在安装过程中定期进行“快照”并且在遇到问题时可以“回滚”到上一个可工作配置的能力。
但是,虚拟机会降低您实例的性能,特别是如果您的 hypervisor 和/或 进程缺少硬件加速的嵌套虚拟机支持时。
注解:
如果你选择在虚拟机内安装,请确保你的hypervisor提供了在public网络接口上禁用MAC地址过滤的方法。
安全
openstack服务支持各种各样的安全方式,包括密码password、policy和enrcryption,支持的服务包括数据库服务器,且消息broker至少支持password的安全方式。
主机网络
示例架构假设使用如下网络:
- 管理使用 10.0.0.0/24 带有网关 10.0.0.1
这个网络需要一个网关以为所有节点提供内部的管理目的的访问,例如包的安装、安全更新、 DNS,和 NTP。
- 提供者网段 203.0.113.0/24,网关203.0.113.1
这个网络需要一个网关来提供在环境中内部实例的访问。
您可以修改这些范围和网关来以您的特定网络设施进行工作。
网络接口由发行版的不同而有各种名称。传统上,接口使用 “eth” 加上一个数字序列命名。为了覆盖到所有不同的名称,本指南简单地将数字最小的接口引用为第一个接口,第二个接口则为更大数字的接口。
除非您打算使用该架构样例中提供的准确配置,否则您必须在本过程中修改网络以匹配您的环境。并且,每个节点除了 IP 地址之外,还必须能够解析其他节点的名称。例如,controller这个名称必须解析为 10.0.0.11,即控制节点上的管理网络接口的 IP 地址。
- 控制节点添加两块网卡,计算节点为一块网卡;
- 修改网络接口名称
vim /boot/grub2/grub.cfg
编辑:
添加net.if.names=0
cd /etc/sysconfig/network-srcipts
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
编辑:
- 确保网络接口名称修改成功
- 激活网卡设备
ifup etho(网卡名称)
- 修改主机名称
控制节点修改主机名为controller
计算节点修改主机名为compute
hostnamectl set-hostname controller
hostnamectl set-hostname compute
配置域名解析
设置节点主机名为 controller。
编辑 /etc/hosts 文件包含以下内容:
# controller
192.168.120.50 controller
# compute1
192.168.120.60 compute1
# block1
192.169.120.70 block1
安装并配置组件
- 安装软件包:(chrony插件达到控制节点和外网时间同步效果)
yum install -y chrony
- 编辑 /etc/chrony.conf 文件,按照你环境的要求,对下面的键进行添加,修改或者删除:
server NTP_SERVER iburst
使用NTP服务器的主机名或者IP地址替换 NTP_SERVER 。配置支持设置多个 server 值。
亦可用阿里云官方网站(NTP1.Aliyun.com)
- 启动 NTP 服务并将其配置为随系统启动:
systemctl enable chronyd.service
systemctl start chronyd
- 时间同步完成
Openstack包
- 下载并传yum源,指定下载路径
tar zxf mitaka.tar
vim /etc/yum.repos.d/openstack.repo
编辑:
[openstack]
name=mitaka
baseurl=file:///root/mitaka
gpgcheck=0
- 安装openstack客户端:
yum install python-openstackclient -y
- RHEL 和 CentOS 默认启用了 SELinux 。安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略:
yum install openstack-selinux -y
注释:
selinux主要针对CentOS,本次实验环境禁用selinux,因此无需安装,安装selinux将会导致后续服务无法启动。