OpenStack 开源私有云平台(云操作系统)

操作系统的功能

  • 物理硬件资源的抽象化 HZ G G/T
  • 应用程序运行的依赖
  • 提供可视化的界面(图形化和命令行)
  • 分配资源
  • 监控

介绍

  • 定义

    • Openstack开源云操作系统, 在云计算平台中扮演操作系统的角色
  • 功能

    • 资源抽象

      • OpenStack将各类硬件资源,通过虚拟化与软件定义的方式,抽象成资源池
    • 资源分配与负载调度

      • OpenStack根据管理员/用户的需求,将资源池中的资源分配给不同的用户,承载不同应用
    • 应用生命周期管理

      • OpenStack已经可以提供初步的应用部署/撤除、自动规模调整能力(需要注意的是OpenStack能够实现虚拟化功能,但不等同于虚拟化,且OpenStack作为构建云平台的其中一部分,也不等同于云)
  • 版本发行

    • OpenStack每年更新两个大版本,以26个英文字母进行版本排序

架构和组件(服务)

  • 专有组件

    • Horizon:提供图形化界面服务
    • Keystone:提供鉴权服务
    • Nova:提供计算服务
    • Cinder:提供块存储服务
    • Glance:提供镜像服务
    • Neutron:通过网络服务
    • Swfit:提供对象存储服务
    • Ceilometer:提供监控告警服务
    • Heat:提供自动化编排服务
  • 公共组件

    • DB:提供数据库服务
    • Message-Queue:提供消息队列服务
  • 专用组件的子组件及内容

    • Nova

      • Nova-api

        • 对外提供Rest接口
        • 对传入参数进行合法性检验和约束限制
        • 对请求的资源进行配额的校验和预留
        • 实现资源的创建,更新,查询,删除等操作
        • 虚拟机生命周期入口
        • 可实现自身的水平扩展
      • Nova-Conductor

        • 数据库操作(解耦其他组件(nova-compute)数据库访问)
        • Nova复杂流程控制(创建冷迁移,热迁移,虚拟机规格调整,虚拟机重建)
        • 其他组件的依赖(如nova-compute需要依赖nova-conductor启动成功后才能启动成功)
      • Nova-Scheduler

        • 根据Nova-api下发的请求及结合自身的策略(过滤,权重,随机)选择合适主机
      • Nova-Compute

        • 虚拟机各生命周期操作的真正执行者(会调用对应的hypervisor的driver)
        • 底层对接不同虚拟化的平台(kvm,vmware,xen,FusionCompute,hyperv等)
    • Message-Queue

      • Exchange(类似邮局)

        • 消息交换机,它指定消息按什么规则,路由到哪个队列。
      • Queue(类似邮差)

        • 消息队列载体,每个消息都会被投入到一个或多个队列。
      • Binding

        • 绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
      • Routing Key(类似邮编号)

        • 路由关键字,exchange根据这个关键字进行消息投递。
      • Producer

        • 消息生产者,就是投递消息的程序。
      • Consumer

        • 消息消费者,就是接受消息的程序。
      • Connection

        • 就是一个TCP连接。Producer和Consumer都是通过TCP连接到RabbitMQ Server的。以后我们可以看到,程序的起始就是建立这个TCP连接。
      • Channel

        • 消息通道,是在TCP连接中的虚拟连接,在客户端的每个TCP连接里,可建立多个channel,每个channel代表一个会话任务。
    • Cinder

      • Cinder-Client

        • 表示与Cinder交互的外部组件或服务,比如Horizon、Ceilometer等等
      • Cinder-api

        • 接收和处理rest请求
      • Cinder-Scheduler

        • 根据策略选择出合适的主机进行任务的处理
      • Cinder-Volume

        • 通过驱动对接不同的后端存储,可支持IP SAN、FC SAN、本地存储
      • Cinder-Backup

        • 将卷数据备份至其他存储介质中
    • Glance

      • Glance-api

        • 类似nova-api,接收REST API请求,通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作
      • glance-registry

        • 用于与MySQL数据库交互,用于存储或获取镜像的元数据(metadata)
      • image store

        • 是一个存储的接口层,通过这个接口,glance可以获取镜像,image store支持的存储有Amazon的S3、OpenStack本身的Swift,还有诸如ceph,sheepdog,GlusterFS等分布式存储
      • Cache机制

        • 提前将需要的镜像文件缓存至Glance-api所在节点,在创建VM时先会从缓存中查找镜像,若缓存中能够查找到所需要的镜像,将不会去Glance下载image文件,而是直接利用本地base下的缓存镜像直接创建vm的disk文件,大大减少vm的部署时间
      • Glance支持的镜像格式

        • raw :非结构化的镜像格式
        • vhd : 通用虚拟机磁盘格式,使用于Vmware、XEN 、Microsoft Virtual PC、Virtual Server/Hyper-v、VirtualBox
        • vmdk :Vmware 的虚拟机磁盘格式,同样也支持多种Hypervisor
        • vdi : VirtualBox 、QEMU等虚拟机磁盘格式
        • iso:光盘存档格式
        • qcow2:一种QEMU并且可以动态拓展的磁盘格式
    • Swift

    • Neutron

      • neutron-server

        • 主要提供接受和处理REST API 请求的功能
      • neutron-database

        • 数据库,存储和管理数据
      • agent

        • L2 agent (实现二层通信)
        • L3 agent(实现二层通信)
        • DHCP agent(提供DHCP服务)
      • RPC

        • 实现远程访问服务(分布式系统的不同服务器)
      • 网络结构

        • Mangement Network:实现OpenStack组件之间的通信,比如nova-api与nova-scheduler、nova-compute与glance-api
        • Data Network:实现VM之间的通信
        • External Network:实现VM与外部的通信
        • API Network:实现与OpenStack API的访问
      • 资源对象

        • network:类似虚拟交换
        • subnet:包含IP地址段、DNS IP、网关IP等,必须与network关联
        • port:分配给虚拟机网卡使用的逻辑端口,使得虚拟机具备网络的通信能力

三大存储服务

  • Glance:OpenSphere 的Swfit、本地存储、OBS服务
  • Cinder:SAN、FusionStorage
  • Swift:本地存储、远端存储(管理存储的类型,可支持FusionStorage和SAN)

创建虚拟机流程

  • 登录Horizon提供的图形化界面或者命令行界面,需要经过Keystone鉴权返回Token信息;
  • Horizon或CLI向Nova发起创建虚拟机的请求,并且携带Token信息;
  • Nova将Token信息发送至Keystone鉴权,Keystone返回验证信息以及对应角色(权限);
  • Nova-api将该请求记录到DB中;
  • Nova-api将该请求发送至Nova-Scheduler筛选出合适的主机(过滤—权重—随机);
  • Nova-Scheduler需要向DB获取主机的相关信息,筛选之后还需要更新数据库信息;
  • Nova-Scheduler将该请求发送至Nova-Compute;
  • Nova-Compute需要Nova-Conductor访问DB获取规格信息;
  • Nova-Compute分别向Glance、Neutron、Cinder获取创建虚拟机所需的镜像、网络、存储资源;
  • Nova-Compute调用虚拟化平台的驱动完成虚拟机的创建。
  • –注意事项:Nova内部组件的交互需要通过Message Queen(消息队列);不同服务之间的交互需要经过KeyStone的鉴权。

创建cinder卷流程

  • 用户下发创建卷请求到Cinder-api
  • Cinder-api检验用户是否有权限,以及基本校验,quota预占等操作,异步返回卷信息(生成卷id)
  • Cinder-api将创建卷消息投递到scheduler消息队列中
  • Scheduler从自己的消息队列中消费创建卷消息,根据各个volume定期上报的能力以及卷信息,选择一个主机创建卷
  • Scheduler调度到主机后,将消息投递到相应的volume队列中
  • Volume从自己的消息队列中消费创建卷消息,调用driver进行创建卷,最后更新数据库
  • Volume调用Driver插件
  • Driver将发送相应的创建卷命令到存储设备

OpenStack部署流程

原文地址:http://www.cnblogs.com/tang-learning/p/16846339.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性