首页 > 代码库 > openstack七大模块概述

openstack七大模块概述

前言

OpenStack主要由七部分组成,分别是Identify, Image, Network, Compute, Block Storage, Object Storage, Dashboard,分别表示认证模块,镜像模块,网络模块,计算模块,块存储模块,对象存储模块和管理模块.

1

Identify(Keystone)

为其他几个模块提供认证服务,所有的认证操作都会通过keystone来进行。

整个keystone其实就是在数据库中建立用户(user)、角色(role)、Tenant、服务(service)、endpoint以及其相互对应关系。Tenant在之前的版本中叫做Project,Tenant是一个独立的资源容器。每个Tenant都可以定义独立的VLAN, volumes, instances, images, keys, users等。服务指的是OpenStack所提供的那几种服务(network, volume, image, identify, compute, swift)。endpoint是指各服务的内部、外部及管理接口址(REST API)。

Image(Glance)

提供镜像服务,创建虚拟机什么的都会从这里拉取镜像模板。

你可以将镜像通过Glance来上传到相应目录并在数据库里标记镜像的位置、属性及相关权限。使用nova来创建instance的时候就是从Glance的数据库中来查找镜像文件及相关属性、权限。

Network(Neutron/Quantum)

提供网络服务,即创建虚拟机的IP地址分配及网络分配都由它来支配。

Openstack在Havana版本之前的网络模块组件名称叫Quantm,Openstack在Havana版本上将Quantum更名为Neutron。

在OpenStack的网络管理流程中,通常需要经过以下几个步骤:


1.    创建一个网络;
2.    创建一个子网;
3.    启动一个虚机,将一块网卡对接到指定的网络上;
4.    删除虚机;
5.    删除网络端口;
6.    删除网络;

Comupte(Nova)

提供计算服务,nova是运行在libvirt上层的的一个管理工具,用来管理操作虚拟机。

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

Block Storage(Cinder)

提供块存储服务,持久存储虚拟机上的数据,即一台虚拟机上面会挂载其他磁盘如vdb/vdc/vdd等,这个虚拟的磁盘就是Cinder在宿主机上创建的raw或qcow2文件

Object Storage(Swift)

对象存储,存储的是一些资源文件,如图片、代码等文件。对象存储服务是OpenStack最早期的两个服务之一(另一个是计算服务),在OpenStack平台中,任何的数据都是一个对象。

Dashboard(horizon)

管理这些模块的web平台,大部分操作都可以在Dashboard中进行。

参考文档

1  https://raw.githubusercontent.com/chenzhiwei/linux/master/openstack/README.mkd

2  http://blog.csdn.net/xiangmin2587/article/details/7737778

3  http://www.cnblogs.com/ZisZ/p/3399773.html

4 http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-cloud/?cmp=dwskl&cpb=dw&ct=dwcon&cr=cn_CCID_CS&ccy=cn