小生博客:http://xsboke.blog.51cto.com

  

  

 

                             -------谢谢您的参考,如有疑问,欢迎交流



一、 云服务和计算的类型

二、 openstack简史

三、 openstack架构

四、 openstack关键组件



一、云计算简述

  1. 云计算的类型

  • 私有云:系统边界明确,一般部署在企业内部

  • 共有云:部署在开放环境,如:阿里云、腾讯云、华为云等

  • 混合云:以私有云为基础,能够在业务负载超越私有云自身能力或其它指定的情况下,把部分业务负载透明地分流到其它云上进行处理

  2. 云计算服务类型     

    

  • Iaas:提供基础设施级服务(cpu、内存、存储、网络资源等)

  • Pass:提供平台级服务,在iaas基础上,提供应用软件的平台

  • Saas:提供软件级服务,如:购买exchangesaas,购买后直接使用,无需客户对软件进行维护

二、 Openstack简介

  1. Openstack历史

    openstack(一)初识及其架构_第1张图片

  • Openstack的版本以AustinBustinCustin的顺序命名,一般半年更新一个版本

  • 2010年,由美国国家航空航天局联手Rackspace,在建设美国国家航空航天局的私有云过程中,创建了openstack的项目,之后他们邀请其他供应商提过组件,建立了一个完整的开源云计算解决方案。

  • Rackspace NYSERAX)全球三大云计算中心之一,1998年成立,是一家全球领先的托管服务器及云计算提供商。

  • 2010年诞生的第一个版本Austin,只包含Rackspace和美国国家航空航天局的组件。之后发布的版本包含了已加入该项目的供应商开发的附加组件

  2. Openstack的作用和特点

  • 提高企业计算、电源、网络带宽等资源利用率

  • 根据客户需求,按需分配,无需人工干预

  • 网络访问:可以通过网络使用任意类型的异构计算能力,通过标准化的机制调用计算资源而不受限于具体的访问设备

  • 资源池:多个用户可以同时访问和使用云计算提供的计算服务

  • 弹性:根据需求,不停机或短暂停机后迅速垂直或横向扩展

  • 计量或测量服务:按照使用的时间、传输速率或存储大小支付云计算服务

  3. Openstack的功能

  • 三大核心功能:计算、存储、网络;分别对应相应的项目Nova,Cinder

  • Nova提供了计算资源的管理,可以管理跨服务器网络的vm实例。同时Nova还提供了对多种Hyperviosr的支持,如KVM,QEMU,Xen,LXC,Vmware,Hyper-V,Powervm

  • Cinder提供了存储资源的管理,可以管理各个厂商提供的专业存储设备

三、 Openstrack架构

整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署)

    openstack(一)初识及其架构_第2张图片

    openstack(一)初识及其架构_第3张图片

    

    openstack(一)初识及其架构_第4张图片

四、 Openstack关键组件

    openstack(一)初识及其架构_第5张图片

  1. Mysql

  • Openstack所使用的数据库,包括novaglancecinder等在内的组件都会建立自己的数据库,保存一些必要的数据


  2. Keystone

1)Openstack的用户认证组件,它的功能主要是建立管理项目的用户和各种服务端口,以及进行用户的身份认证,若要使用openstack的任意的API,第一步就必须通过keystone的验证。

2)keystone的主要功能是提供认证和编录服务

3) keystone提供了两种认证方式:token(基于令牌),identify(基于用户名/密码)

  • token(令牌,实际是一个随机字串,在认证时直接使用),主要用于内部各组件之间

  • identify(账号,密码),需要用户登陆时,如用户通过horizon访问云资源

4)除此之外,Keystone提供以下三种服务:

  • 令牌(token)服务:含有授权用户的授权信息

  • 编录(catalog)服务:含有用户合法操作的可用服务列表

  • 策略(policy)服务:利用Keystone具体指定用户或群组某些访问权限

 3. Glance

用来存放管理虚拟机镜像和快照的服务,这也是一个最小架构中必须有的服务。

  • glance存放镜像的元数据的

  • registry:调用数据库的接口,检索接口

  • database:映像文件的存储位置等

  • swift:分布式存储

  4. Neutron:

网络服务,用来提供虚拟机网络通信的组件,负责接收对网络的调用请求

  5. 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

  6. Cinder

  • 块存储

  • 用来创建,删除及管理volume(虚拟磁盘卷),以及给volume做快照等服务的组件

  • swift:分布式文件系统,用来存储镜像文件模板

  7. Horizion

  • Openstack web管理页面,使用django框架开发。Web管理页面包含了日常使用的大部分功能,提供给用户一个最直观的展现方式。很多简单的二次开发都是从Horizon开始的。


  8. Rabbitmq

  • openstack中,各个服务之间是通过消息来交互的,因为openstack使用AMQP作为消息传递的技术,所以rabbitmq,qpid,zeromq等支持AMQP的软件都是被openstack所支持的。Rabbitmq是第一个被openstack所使用的消息传递软件。Openstack通过AMQP实现RPC服务,来保证不同组件之间的通信,rabbitmq是控制节点中的一个非常关键的服务。