OpenStack组件

OpenStack的架构及组件(Havana)

服务 项目名 描述
控制台 Horizon 用户通过该服务与OpenStack的各服务进行交互,如启动虚机实例、分配IP地址、设置访问控制等;
计算 Nova 按需分派并管理虚机;
网络 Neutron 通常是计算服务通过该服务管理网络设置之间的连接,也可以允许终端用户创建并添加网络接口;通过一个插件式架构支持大量网络广商设备及网络技术;
存储类
对象存储 Swift 存取文件,但并不提供传统挂载式的文件服务;
块存储 Cinder 向虚机提供可用于持久存储的块存储服务;
共用服务
身份服务 Keystone 为OpenStack提供认证及授权服务。
镜像服务 Glance 提供虚机镜像的注册服务;同时计算服务也使用该服务分派实例;
计量/监控服务 Ceilometer 用于计费、基准测试及数据统计等功能
更高层服务
编排组织服务 Heat 使用自带的HOT模板或AWS的CloudFormation模板,通过OpenStack中各服务的REST API,将各组件的资源组织形成云应用;

Nova

计算服务是OpenStack的核心服务,它由nova-compute模块通过libvirt、XenAPI等管理hypervisor,从而管理虚机,此外它还通过nova-api服务向外提供如EC2兼容、管控功能等的接口,通过nova-scheduler模块提供虚机调研逻辑等;这些模块间的通信全部通过消息队列完成;

Swift

对象存储服务是OpenStack最早期的两个服务之一(另一个是计算服务),在OpenStack平台中,任何的数据都是一个对象;swift-proxy模块对外提供如HTTP(S)、OpenStack Object API及与S3兼容的存取接口。对象的存取经swift-proxy接入后,还需要经三个模块进行定位,即account、container、object;这是因为在OpenStack中一个对象被描述为:某个帐户下某个容器中的某个对象;

Glance

Glance的出现是解决虚机镜像的管理问题;在生成一个镜像后,需要将镜像注册到系统的数据库中;当要实例化一个虚机时,需要将镜像分派到一台具体的实机上用来以启动虚机;因而Glance最重要的接口是镜像的注册和分派;

Cinder

Essex将nove的卷管理api独立化后,Folsom终于将卷管理服务抽离成了Cinder;Cinder管理所有的块存储设备,块设备可以挂接在虚机的实例中,然后虚机里的guest系统可以像操作本地卷一样操作块存储设备;
Cinder需要处理的主要问题应该是接入各种块设备,如本地磁盘、LVM或各大广商提供的设备如EMC、NetApp、HP、HuaWei,还有如Vmware提供的虚拟块设备等。
值得一提的是发现在Cinder的驱动列表中出现了NFS,按理说NFS提供的不是块访问接口,而是文件访问接口,走到文档中看到说明为:NFS based cinder driver. Creates file on NFS share for using it as block device on hypervisor.竟然是用NFS上的文件模拟块设备。为什么不直接写一个将本地文件模拟为块设备的驱动呢?应该是写成NFS驱动,可以将NFS的挂载动作封装在驱动中。

Neutron

经过一定时间的演变,网络管理也抽离成一个独立的服务;在OpenStack的网络管理流程中,通常需要经过以下几个步骤:
1.    创建一个网络;
2.    创建一个子网;
3.    启动一个虚机,将一块网卡对接到指定的网络上;
4.    删除虚机;
5.    删除网络端口;
6.    删除网络;

Keystone

身份服务需要进行认证凭证的验证及关于用户、角色等的信息,及所有相关的元数据;这些数据全都由Keystone服务管理,并提供CRUD的操作方法;另外这些信息可以从另一个认证服务中获取,例如使用LDAP做Keystone的后端。

OpenStack与VM

以上这些服务与服务、服务与虚机的关系如下图所示:

  • 真正服务于VM的服务只有Nova、Glance、Neutron、Cinder:
    • Nova调派资源实例化虚机;
    • Glance提供虚机实例化时需要的镜像;
    • Neutron提供网络连接;
    • Cinder提供外接的块存储服务;
  • Ceilometer从上面与虚机相关的几个服务中收集数据,用于统计、监控、计费、报警等;
  • Swift可以为Glance提供镜像的存储服务,可以为Cinder提供卷的备份服务;
  • Keystone为所有服务提供认证、授权等服务;
  • Horizon为所有服务提供基于Web的操作接口;
  • 通过Heat可以方便地将各组件组织起来;
原文地址:https://www.cnblogs.com/xueluo/p/3510761.html