首页 > 代码库 > 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所使用的数据库,包括nova,glance,cinder等在内的组件都会建立自己的数据库,保存一些必要的数据。
Keystone:
Openstack的用户认证组件,它的功能主要是建立管理项目的用户和各种服务端口,以及进行用户的身份认证,若要使用openstack的任意的API,第一步就必须通过keystone的验证。
keystone的主要功能是提供认证和编录服务
keystone提供了两种认证方式:token,identifybackend)
token(令牌,实际是一个随机字串,在认证时直接使用),主要用于内部各组件之间
identify(账号,密码),需要用户登陆时,如用户通过horizon访问云资源
catalog(编录):保存当前openstack架构中的调用接口(ip地址,端口,url信息),openstack各个组件之间交互通过api接口,openstack架构各个组件通过http的restful机制(一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制)远程过程调用,基于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:
Openstack的web管理页面,使用django框架开发。Web管理页面包含了日常使用的大部分功能,提供给用户一个最直观的展现方式。很多简单的二次开发都是从Horizon开始的。
Rabbitmq:
在openstack中,各个服务之间是通过消息来交互的,因为openstack使用AMQP作为消息传递的技术,所以rabbitmq,qpid,zeromq等支持AMQP的软件都是被openstack所支持的。Rabbitmq是第一个被openstack所使用的消息传递软件。Openstack通过AMQP实现RPC服务,来保证不同组件之间的通信,rabbitmq是控制节点中的一个非常关键的服务。
本文出自 “youyou” 博客,转载请与作者联系!
openstack