在搭建openstack之前首先要了解openstack是什么是由什么组成的,组件之间是如何工作的,各个组件之间作用是什么?
…………

带着疑问那么就开始解答疑问:

一:什么 是openstack?

openstack历史曲折有味,我就不用介绍了,我一两句也说不清,直接上一篇链接来帮我解答:
https://info.support.huawei.com/info-finder/encyclopedia/zh/OpenStack.html
https://baike.baidu.com/item/OpenStack/342467
http://c.biancheng.net/view/3892.html

二:都有什么组件组成的openstack

openstack平台不是由一个组件就能搭建成功的,而是通过能提供不同服务的不同组件进行拼装合并组合而成的iaas平台,在openstack中有诸多组件,目前包括 6 个核心组件(Nova、Neutron、Swift、Cinder、Keystone、Glance)就可以组成一个iaas平台其他的还要14个可选组件,每个组件又包含诺干个服务。
image.png
OpenStack 的组件主要包括身份认证(代号 Keystone)、计算(代号为 Nova),网络管理(代号 Neutron)、块存储(代号 Cinder)、对象存储(代号为 Swift)、镜像服务(代号 Glance)以及 UI 服务(代号 Horizon)

三:各个组件的作用

分类 组件名称 功能
核心组件 Nova 管理虚拟机的整个生命周期:创建、运行、挂起、调度、关闭、销毁等。这是真正的执行部件。接受 DashBoard 发來的命令并完成具体的动作。但是 Nova 不是虛拟机软件,所以还需要虚拟机软件(如 KVM、Xen、Hyper-v 等)配合
Neutron 管理网络资源,提供/一组应用编程接口(API),用户可以调用它们来定义网络(如 VLAN ),并把定义好的网络附加给租户。Networking 是一个插件式结构,支持当前主流的网络设备和最新网铬技术
Swift NoSQL数据库,类似 HBase,为虚拟机提供非结构化数据存储,它把相同的数据存储在多台计箅机上,以确保数据不会丢失。用户可通过 RESTful 和 HTTP 类型的 API 来和它通信。这是实际的存储项目,类似 Ceph,不过在 OpcnStack 具体实施时,人们更愿意采用 Ceph。
Cinder 管理块设备,为虚拟机管理 SAN 设备源。但是它本身不是块设备源, 需要一个存储后端来提供实际的块设备源(如 iSCSI、FC等)。
Cinder 相当于一个管家,当虚拟机需要块设备时,询问管家去哪里获取具体的块设备。它也是插件式的,安装在具体的 SAN 设备里。
Keystone 为其他服务提供身份验证、权限管理、令牌管理及服务名册管理。要使用云计算的所有用户事先需要在 Keystone 中建立账号和密码,并定义权限(注意:这里的“用户”不是指虚拟机里的系统账户,如 Windows 7 中的 Administrator )。另外,OpenStack 服务(如 Nova、Neutron、Swift、Cinder 等)也要在里面注册,并且登记具体的 API,Keystone 本身也要注册和登记 API
Glance 存取虚拟机磁盘镜像文件,Compute 服务在启动虚拟机时需要从这里获取镜像文件。这个组件不同于上面的 Swift 和 Cinder,这两者提供的 存储是在虚拟机里使用的
可选组件 Heat 如果要在成千上万个虚拟机里安装和配置同一个软件,该怎么办?采用 Orchestrates 是一个不错的主意,它向每个虚拟机里注人一个名叫 heat-cfntools 的客户端工具,然后就能同时操作很多虚拟机
…………

1610676-20200513090823909-589785363.png

四:创建虚拟机过程

下面是创建一台虚拟机的过程,当用户发出请求后各个组件之间交互发送请求交互执行命令的过程
image.png

五:安装路线

在具体部署 OpenStack 时应该遵循“逐步扩展部署法”
5-1Z5291PG1337.jpg
最小系统具备基本的 IaaS 功能,能通过命令来进行管理,这一步只需安装 OpenStack 的 Keystone、Neutron、Nova 和 Glance 四个组件;此后再安装 Horizon 就成了小系统,这时可通过 Web 图形化界面来执行管理;继续安装 Swift 和 Cinder 就成了准系统,这时能给虚拟机附加磁盘块设备,并能满足大规模的存储需求;再加上计费组件 Ceilometer,就上升为一般系统,一般系统具备公有 IaaS 的功能。但是由一般系统跨到生产系统,需要完成的工作就特别多,其中性能和安全是两个不得不面对的棘手问题。

图 6 中标注的 Iptables(设立门卫)、Selinux 或 Apparmor(加固系统)和 Snort(巡逻)都是为了强化安全。性能和安全涉及的知识太多,这里不再展开讨论。图 7 取自网上,主要考量了安全当中的可用性,供大家参考。