在搭建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个可选组件,每个组件又包含诺干个服务。
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 的客户端工具,然后就能同时操作很多虚拟机 |
………… |
四:创建虚拟机过程
下面是创建一台虚拟机的过程,当用户发出请求后各个组件之间交互发送请求交互执行命令的过程
五:安装路线
在具体部署 OpenStack 时应该遵循“逐步扩展部署法”
最小系统具备基本的 IaaS 功能,能通过命令来进行管理,这一步只需安装 OpenStack 的 Keystone、Neutron、Nova 和 Glance 四个组件;此后再安装 Horizon 就成了小系统,这时可通过 Web 图形化界面来执行管理;继续安装 Swift 和 Cinder 就成了准系统,这时能给虚拟机附加磁盘块设备,并能满足大规模的存储需求;再加上计费组件 Ceilometer,就上升为一般系统,一般系统具备公有 IaaS 的功能。但是由一般系统跨到生产系统,需要完成的工作就特别多,其中性能和安全是两个不得不面对的棘手问题。
图 6 中标注的 Iptables(设立门卫)、Selinux 或 Apparmor(加固系统)和 Snort(巡逻)都是为了强化安全。性能和安全涉及的知识太多,这里不再展开讨论。图 7 取自网上,主要考量了安全当中的可用性,供大家参考。