openstack学习之概念篇
OpenStack(这个是官方正式写法)是一个基础设施服务(IaaS, Infrasture as a service)的开源实现。具体介绍可以参考官方网站https://www.openstack.org/,http://en.wikipedia.org/wiki/OpenStack也可以参考。IaaS只是一个概念或者说是一个想法,它到底应该是一个什么样子的,业界并没有什么规范。IT行业的一个特点就是产品先行,标准在后。占有强势市场地位的产品就是这个领域的事实上标准。在IaaS这个领域,Amazon的AWS无疑就是标准。AWS对什么是IaaS给出一个很好的参考,起到了领路人的作用。
OpenStack从出生开始就选择了对标AWS:AWS提供什么功能,OpenStack也提供什么功能;AWS提供什么API,OpenStack也提供什么API。当然随着OpenStack社区的壮大与成熟,它也会有新的想法来诠释IaaS,目前的很多孵化项目就是一种尝试。OpenStack也定义了自己的API。学习IaaS,AWS是一个很好的参考。它的文档,教程,实例都很详细丰富。AWS不是开源项目,我们没有办法去了解它的内部实现。
IaaS的几个基本功能包括服务器虚拟化,存储虚拟化及网络虚拟化。OpenStack对这些功能都有对应的实现。OpenStack实际上包括了若干个项目(project),每个项目实现一个主要功能,并且有一个codename.对应前面的几个功能就有如下项目:projectcodename功能Computenova服务器虚拟化Networkingneutron网络虚拟化Block Storagecinder存储虚拟化Object Storageswift存储虚拟化(key-valuec存储摸型)还有另外几个主要项目:Identitykeystone用户管理/权限管理/服务管理Imageglance虚拟机磁盘镜像管理Dashboardhorizon基于web的用户/管理员界面还有其他的项目,就不一一介绍了。
下面从几个维度介绍下OpenStack架构:
逻辑架构http://blog.iyunv.com/zhengleiguo/article/details/这个是官方上的一张参考图。每个项目的功能都是以REST API的形式提供给外部用户。用户通过REST API即可使用OpenStack提供的所有功能。OpenStack中个项目之间的交互也是通过REST API完成,极大地降低了个项目之间的耦合。
部署架构OpenStack的部署方式非常灵活,支持单台部署和多机部署。后面文章会结合每个项目具体展开。
运行架构OpenStack项目包括若干个service(每个service可以是一个进程或者线程),每个service提供一个特定功能,service之间互相协作以实现该项目的功能。每个service可以单独在一台机器上,或者多个service同时部署在一台机器上。
例如nova中包含了一下几个主要service:service功能nova-apiREST API接口nova-scheduler调度服务,创建虚拟机时,决定该虚拟机创建在那台机器上nova-conductor提供数据库访问服务nova-compute创建虚拟机服务......其他
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]