首页 > 代码库 > openstack

openstack

1.1.  Openstack的功能与作用

  当今的数据中心,许多服务器都遇到过同样的问题,即计算,电源,网络带宽等资源的利用率不足当用户想要一种灵活的,按需供给计算资源的服务,通过自动化或很少的人工干预就能使用时,那么云计算就是最好的选择之一。云计算通常包含了一个服务责任,表示云计算服务提供商承诺的性能,规格,可用率等。云计算服务让用户通过一个共享的计算资源,网络带宽,存储池,运行应用程序或服务来完成计算工作,并按资源的使用来计费。

  Openstack具有建设这样资源池的能力,通过openstack的各种组件多种模式的排列组合,可以搭建成各种规模的云,这些云可以是私有云,公有云,混合云。

  Openstack具有三大核心功能,即计算,存储,网络,分别对应相应的项目Nova,Cinder等。其中Nova提供了计算资源的管理,可以管理跨服务器网络的vm实例。同时Nova还提供了对多种Hyperviosr的支持,如KVM,QEMU,Xen,LXC,Vmware,Hyper-V,Powervm等。Cinder提供了存储资源的管理,可以管理各个厂商提供的专业存储设备。

1.2.  Openstack关键组件

服务名称

项目名称

描述

Dashboard

Horizon

基于openstackAPI接口使用django开发的web管理

Compute

Nova

通过虚拟化技术提供计算资源池

Networking

Neutron

实现了虚拟机的网络资源管理


Storage存储


Object Storage

Swift

对象存储,适用于“一次写入,多次读取”

Block storage

Cinder

块存储,提供存储资源池


Shared  server(共享服务)


Identity

Keystone

认证管理

Imageservice

glance

提供虚拟机镜像的注册和存储管理

Telemetry  [t‘lemtr]

Ceilometer [si‘lmt]

提供监控和数据采集,计量服务


Higher-level  service(高级服务)


Orchestration [,ks‘tren]

Heat

自动化部署的组件

DatabaseService

Trove

提供数据库应用服务


Mysql:

         Openstack所使用的数据库,包括novaglancecinder等在内的组件都会建立自己的数据库,保存一些必要的数据。

Keystone:

         Openstack的用户认证组件,它的功能主要是建立管理项目的用户和各种服务端口,以及进行用户的身份认证,若要使用openstack的任意的API,第一步就必须通过keystone的验证。

keystone的主要功能是提供认证和编录服务

keystone提供了两种认证方式:token,identifybackend

         token(令牌,实际是一个随机字串,在认证时直接使用),主要用于内部各组件之间

         identify(账号,密码),需要用户登陆时,如用户通过horizon访问云资源

catalog(编录):保存当前openstack架构中的调用接口(ip地址,端口,url信息),openstack各个组件之间交互通过api接口,openstack架构各个组件通过httprestful机制(一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制)远程过程调用,基于URI输出。

policy:管理策略,如与用户管理、虚拟机实例管理有关的策略

Glance:

         用来存放管理虚拟机镜像和快照的服务,这也是一个最小架构中必须有的服务。

glance存放镜像的元数据的

registry:调用数据库的接口,检索接口

database:映像文件的存储位置等

         swift:分布式存储

Neutron:

         网络服务,用来提供虚拟机网络通信的组件,负责接收对网络的调用请求。

Nova

         Nova是个至关重要的组件,也是个相对庞大的组件,其中有很多服务,它是进行生成虚拟机工作的主要服务。

Nova计算节点,是openstack的最核心的节点,运行虚拟机实例,分配cpu、内存,nova-compute本身并不能运行虚拟机,是要通过hypervisor,nova-compute通过api调用hypervisor,,nova-compute支持那种api就可以调用那种hypervisor,nova-compute支持libvirt api就可以调用libvirt支持的hypervisor(如kvm),xenapi可以调用xen

Cinder:块存储

         用来创建,删除及管理volume(虚拟磁盘卷),以及给volume做快照等服务的组件

swift:分布式文件系统,用来存储镜像文件模板

Horizion:

         Openstackweb管理页面,使用django框架开发。Web管理页面包含了日常使用的大部分功能,提供给用户一个最直观的展现方式。很多简单的二次开发都是从Horizon开始的。

Rabbitmq

         openstack中,各个服务之间是通过消息来交互的,因为openstack使用AMQP作为消息传递的技术,所以rabbitmq,qpid,zeromq等支持AMQP的软件都是被openstack所支持的。Rabbitmq是第一个被openstack所使用的消息传递软件。Openstack通过AMQP实现RPC服务,来保证不同组件之间的通信,rabbitmq是控制节点中的一个非常关键的服务。


本文出自 “youyou” 博客,转载请与作者联系!

openstack