初识openstack

1、 什么是openstack?web

  OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合做研发并发起的,以Apache许可证受权的自由软件开放源代码项目。算法

2、openstack前世今身数据库

  openstack是一个跟Eucalyptus,AWS(Amazon web Service)相似的IaaS框swift

 openstack最有由美国国家航空航天局NASA研发的Nova和Rackspace研发swift组成。后来以Apache许可受权,指在为公共及私有云平台建设。openstack主要用来为企业内部实现相似于Amazon EC2和S3的云基础架构(IaaS)。每6个月更新一次,通常与Ubuntu同步,命名是以A-Z做为首字母来的。后端

3、openstack项目及组件功能简单介绍api

  核心项目3个安全

    1.控制台网络

    服务名:Dashboard架构

    项目名:Horizon并发

    功能:web方式管理云平台,创建主机,分配网络,配安全组,加云盘

 

    2.计算

    服务名:计算

    项目名:Nova

    功能:负责响应虚拟机建立请求、调度、销毁主机

 

    3.网络

    服务名:网络

    项目名:Neutron

    功能:实现SDN(软件定义网络),提供一整套API,用户能够基于该API实现本身定义专属网络,不一样厂家能够基于此API提供本身的产品实现

 

 存储项目2个

    1.对象存储

    服务名:对象存储

    项目名:Swift

    功能:REST风格的接口和扁平的数据组织结构。RESTful HTTP API来保存和访问任意非结构化数据,ring环的方式实现数据自动复制和高度能够扩展架构,保证数据的高度容错和可靠性

    2.块存储

    服务名:块存储

    项目名:Cinder 

    功能:提供持久化块存储,即为云主机经过附加云盘

    

 

 1 存储的基本知识:  2 存储分为三大类:文件存储、块存储、对象存储  3  4 文件存储:在用户的角度来讲,就是一个文件夹。例如:U盘,ftp(文件传输协议)、nfs等  5  特色:没法格式化  6  基本操做单位是文件  7  基于Postfix标准的文件处理,进行增删改查  8  9 块存储:在用户的角度来讲就是一块裸盘(空硬盘,进行格式化,分block大小) 10  特色:能够格式化 11  基本操做单位是block 12 13 文件存储与块存储之间的关系:对用户来讲,到最后用的还是文件存储 14 15 对象存储:key:value形式(例如网盘分享,一个链接表明一个key,一个文件表明value) 16 key:value的表示 httpd://1.1.1.1/api:object(冒号前面为key,后面为value) 17 18  特色:一切皆对象,速度快(属于非关系型,比关系型快) 19 本质上没法再对象存储里修改文件

   共享服务项目3个

    1.认证服务

    服务名:认证服务

    项目名:Keystone

    功能:为访问openstack各组件提供认证和受权功能,认证经过后,提供一个服务列表(存放你有权访问的服务),能够经过该列表访问各个组件

 

    2.镜像服务

    服务名:镜像服务

    项目名:Glance

    功能:为云主机安装操做系统提供不一样的镜像选择

 

    3.计费服务

    服务名:计费服务

    项目名:Ceilometer

    功能:收集云平台资源使用数据,用来计费或者性能监控

 

   高层服务项目1个

     1.编排服务

      服务名:编排服务

      项目名:Heat

      功能:自动化部署应用,自动化管理应用的整个生命周期,主要用于PaaS   

 

4、openstack各组件关系

  

openstack新建主机流程图

 

 

首先咱们先分析一下这个流程图。整个的体系下来不止这29步

 

1.命令行或者经过web界面,就是dashboard,经过RESTful API向keystone获取认证信息

2.keystone经过用户请求进行认证,并生成auth-token返回给用户,这个第一个token是属于用户用没有权限登陆的token

3.命令行或web界面经过RESTful API 向nova-api发送一个新建虚拟机的请求并携带一个token.这个token属于第二个token,看这个token是否有权限访问nova

4. nova-api 接受来自客户端的请求和token信息,而后拿着token信息向keystone认证。

5.keystone验证token是否有效,有效则返回有效的认证和对应的角色(有些操做须要有角色权限才能操做)

6.经过认证后nova-api将用户的建立虚拟机的请求写到数据库中,(新建虚拟机信息:cpu,内存,硬盘,网络结构,属于什么vlan等等)

7.初始化新建虚拟机的数据库记录并返回

8.nova-api将新建虚拟机的请求信息放到消息中间件(MQ)中。(经过rpc.call)只是请求信息并非详细信息.

9.nova-scheduler(nova计算节点,安装了nova-compute的软件)接受nova-api的请求。就是在多个nova-compute中找到一个合适的nova-compute让它去建虚拟机

10.nova-scheduler经过查询nova数据库 计算资源的状况,并经过调度算法计算符合虚拟机建立须要的主机,并返回信息到nova-scheduler

11.对有符合建立虚拟的物理主机,nova-scheduler就会更新数据库中对应的物理主机信息

12.nova-scheduler经过rpc.cast像nova-compute发送对应的建立虚拟机请求信息

13.nova-compute会从消息列队中获取建立虚拟机的请求信息。

14.nova-compute经过rpc.call像nova-conductor请求获取虚拟机的信息

15.nova-conductor从消息列队中拿到nova-compute的请求信息

16.nova-conductor根据信息进行查询虚拟机对应信息

17.nova-conductor从数据库中获取虚拟机对应信息

18.nova-conductor把虚拟机信息经过消息的方式发送到消息列队中

(上述的nova部分属于回调机制)

19.nova-compute从对应的消息列队中获取虚拟机信息

20.nova-compute经过keystone的RESTful API 拿到认证token,并经过http请求glance-api获取建立虚拟机所需的镜像。

21.glance-api想keystone认证token是否有效,并返回认证结果

glance具体如何工做的:

glance-api接收到请求后,将请求发给glance-registry,glance-registry到数据库中将镜像的元数据拿到,并返回给glance-api。glance-api会到后端的存储拿到镜像的URL地址

22.token验证经过,nova-compute得到虚拟机镜像信息(URL)下载到本地

23.nova-compute经过keystone的RESTful API 拿到认证的token,而且经过HTTP请求neutron-server获取建立虚拟机所须要的网络

24.neutron-server去向keystone认证token是否有效,并返回结果。

25token认证经过后,nova-compute得到虚拟机网络信息

26.nova-compute 经过keystone的RESTful API拿到认证token,并经过HTTP请求cinder-api获取建立虚拟机所需的持久化存储信息

27.cinder-api向keystone认证token是否有效,并返回结果

28.token认证经过后,nova-compute获的虚拟机持久化存储信息

29.nova-compute根据instance的信息调用配置的虚拟化驱动来建立虚拟机

相关文章
相关标签/搜索