首页 > 云计算 > OpenStack七大模块介绍
2016
05-20

OpenStack七大模块介绍

OpenStack七大模块介绍 - 第1张  | 云酷

OpenStack是什么

OpenStack是一个由美国宇航局NASA与Rackspace公司共同开发的云计算平台项目,且通过Apache许可证授权开放源码。它可以帮助服务商和企业实现类似于Amazon EC2和S3的云基础架构服务。下面是OpenStack官方给出的定义:

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
OpenStack是一个可以管理整个数据中心里大量资源池的云操作系统,包括计算、存储及网络资源。管理员可以通过管理台管理整个系统,并可以通过web接口为用户划定资源。

由以上可以知道OpenStack的主要目标是管理数据中心的资源,简化资源分派。它管理三部分资源,分别是:
 计算资源:OpenStack可以规划并管理大量虚机,从而允许企业或服务提供商按需提供计算资源;开发者可以通过API访问计算资源从而创建云应用,管理员与用户则可以通过web访问这些资源;
 存储资源:OpenStack可以为云服务或云应用提供所需的对象及块存储资源;因对性能及价格有需求,很多组织已经不能满足于传统的企业级存储技术,因此OpenStack可以根据用户需要提供可配置的对象存储或块存储功能;
 网络资源:如今的数据中心存在大量的设置,如服务器、网络设备、存储设备、安全设备,而它们还将被划分成更多的虚拟设备或虚拟网络;这会导致IP地址的 数量、路由配置、安全规则将爆炸式增长;传统的网络管理技术无法真正的可高扩展、高自动化地管理下一代网络;因而OpenStack提供了插件式、可扩 展、API驱动型的网络及IP管理;

OpenStack的架构及组件(Havana)

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

逻辑架构图如下(注:原图在这里,Ceilometer与Heat与服务逻辑无关,因而不在这张图中体现)

OpenStack七大模块介绍 - 第2张  | 云酷

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

以上这些服务与服务、服务与虚机的关系如下图所示:
OpenStack七大模块介绍 - 第3张  | 云酷
真正服务于VM的服务只有Nova、Glance、Neutron、Cinder:

Nova调派资源实例化虚机;
Glance提供虚机实例化时需要的镜像;
Neutron提供网络连接;
Cinder提供外接的块存储服务;

Ceilometer从上面与虚机相关的几个服务中收集数据,用于统计、监控、计费、报警等;
Swift可以为Glance提供镜像的存储服务,可以为Cinder提供卷的备份服务;
Keystone为所有服务提供认证、授权等服务;
Horizon为所有服务提供基于Web的操作接口;
通过Heat可以方便地将各组件组织起来;

来自:http://www.cnblogs.com/ZisZ/p/3399773.html

最后编辑:
作者:Wien
这个作者貌似有点懒,什么都没有留下。