Openstack百科——系统结构

核心项目(6个)

计算(Compute):Nova

提供虚拟主机,对应亚马逊的EC2,包括虚拟机、弹性云硬盘等服务。


对象存储(Object):Swift

俗称为云存储,对应亚马逊的S3,通过简单的key/value的方式实现对象文件的存储读取,适用于“一次写入,多次读取,无须修改”的情况,例如图片、视频、邮件附件等海量数据的存储。


镜像(Image):Glance

提供虚拟磁盘镜像的目录分类管理以及镜像库的存储管理,用于OpenStack虚拟机


身份(Identity):Keystone

为OpenStack所有的系统提供统一的授权和身份验证服务


自助门户(Dashboard):Horizon

基于OpenStack API接口开发的WEB呈现。


网络&地址管理:Quantum & Melange

实现了虚拟机的网络资源管理,包括网络连接、子网IP管理、L3的公网映射、后续的负载均衡等


块存储(Block Storage):Cinder

实现了对块存储的管理,与亚马逊的EBS弹性云硬盘类似,为虚拟机提供云硬盘(块设备)服务。


界面展示(Dashboard):horizon


Amazon OpenStack
EC2弹性虚拟机 Nova
S3云存储 Swift
EBS弹性云存储 Nova-volume/Cinder
ELB负载均衡 Atlas-LB OpenStack外围项目
Console控制台 Dashboard Horizon
VPC虚拟私有云 Quantum网络即服务
IAM认证鉴权 Keystone


服务器节点划分

计算节点 Compute Node:提供CPU、内存的物理服务器,指安装了nova-compute服务的物理机

存储节点Storage Node:提供存储能力的服务,指安装了nova-volume或者事cinder-volume的服务器

网络节点Network Node:提供网络服务,指安装了nova-network / quantum server的服务器

控制节点Control Node:一般安装了nova-api、调度等模块的服务器统称为控制节点


Openstack采用了职责拆分的设计理念,根据职责不同拆分7个核心子系统,每个子系统都可以独立部署和使用。在每个子系统中,又根据分层layer设计理念,拆分为API、逻辑处理(含数据库存储)、底层驱动适配3个层次。


nova-api就是这个Nova的入口,它接收用户请求,将指令发送到消息队列AMQP指定的主题Topic,由订阅相应主题的Topic的守护进程接收和执行相关指令消息。nova-api包括:WSGI API(公众服务接口),包括数据封装格式转换和数据校验;RPC API(内部),后者是标准化服务的内部实现,包括数据库操作消息传递等,比如compute-api、network-api、volume-api,统称API Server。

nova-compute 是主要的执行守护进程,职责是基于各类虚拟化技术Hyperivisor实现创建和终止虚拟机。nova-compute有两个工作:接收消息队列中的执行指令并执行,如部署KVM虚拟机,维护数据库相关模型的状态数据。

nova-volume/Cinder的职责是创建、挂载和卸载持久化的磁盘虚拟机,运行机制类似nova-compute。一句话,就是为虚拟机增加块设备存储(硬盘)。

nova-network的职责是实现网络资源池的管理,包括IP池、VLAN、网桥接口、防火墙等的管理。

nova-schedule的职责是调度虚拟机在哪个物理宿主机上的部署。

最核心的AMQP通过消息中间件实现各模块之间的消息通信。


也转载一个陈沙克对openstack的组件介绍

http://www.chenshake.com/openstack-component-introduction-2/


官方文档(icehouse版)的各个组件的英文介绍

Service Project name Description
Dashboard Horizon Provides a web-based self-service portal to interact with underlying OpenStack services, such as launching an instance, assigning IP addresses and configuring access controls.
Compute Nova Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decommissioning of virtual machines on demand.
Networking Neutron Enables network connectivity as a service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachments into them. Has a pluggable architecture that supports many popular networking vendors and technologies.
Storage
Object Storage Swift Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale out architecture. Its implementation is not like a file server with mountable directories.
Block Storage Cinder Provides persistent block storage to running instances. Its pluggable driver architecture facilitates the creation and management of block storage devices.
Shared services
Identity service Keystone Provides an authentication and authorization service for other OpenStack services. Provides a catalog of endpoints for all OpenStack services.
Image Service Glance Stores and retrieves virtual machine disk images. OpenStack Compute makes use of this during instance provisioning.
Telemetry Ceilometer Monitors and meters the OpenStack cloud for billing, benchmarking, scalability, and statistical purposes.
Higher-level services
Orchestration Heat Orchestrates multiple composite cloud applications by using either the native HOT template format or the AWS CloudFormation template format, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.
Database Service Trove Provides scalable and reliable Cloud Database-as-a-Service functionality for both relational and non-relational database engines.

你可能感兴趣的:(Openstack百科——系统结构)