zoukankan      html  css  js  c++  java
  • Openstack组件实现原理 — Glance架构(V1/V2)

    目录

    Glance 安装列表

    Openstack组建部署 — Glance Install

    Glance Image service

    Image service项目代号Glance,是Openstack的镜像服务组件。Glance主要提供了一个虚拟机镜像文件的存储、查询和检索服务,通过提供一个虚拟磁盘映像目录和存储库,为Nova的虚拟机提供镜像服务。现在Glance具有V1和V2(Openstack-F发布)两个版本。
    这里写图片描述

    Image service 的组件

    Glance-Api

    glance-api:是一个对外的API接口,能够接受外部的API镜像请求。主要用于分析、分发、响应各种镜像管理的REST Request,然后通过其他模块(EG. glance-registry、Store Backend后端存储接口)完成镜像的发现、获取、存储等操作。默认绑定端口是9292

    Glance-Registry

    glance-registry:用于存储、处理、获取Image Metadata。通过响应从glance-api发送过来的Image Metadata REST Request,然后与MySQL进行交互,实现Image Metadate的存储、处理、获取。默认绑定的端口是9191

    Glance-db

    glance-db:在Openstack中使用MySQL来支撑,用于存放Image Metadate
    Image Metadate(镜像元数据):指通过glance-registry来保存在MySQL Database中的镜像文件相关信息。

    Image Store(Store Backend)

    Image Store:用于存储镜像文件。通过Store Backend后端存储接口来与glance-api联系。通过这个接口,glance可以从Image Store获取镜像文件再交由Nova用于创建虚拟机。

    Glance 通过Store Adapter(存储适配器)支持多种Imange Store方案
    这里写图片描述

    Glance允许上传私有或共有的不同格式镜像

    • Raw
    • Machine (kernel/ramdisk outside of image, a.k.a. AMI)
    • VHD (Hyper-V)
    • VDI (VirtualBox)
    • qcow2 (Qemu/KVM)
    • VMDK (VMWare)
    • OVF (VMWare, others)

    Image

    Image(镜像文件)的访问权限分为

    • Public 公共的:可以被所有的Tenant使用。
    • Private 私有的/项目的:只能被Image Owner所在的Tenant使用。
    • Shared 共享的:一个非公共的Image可以共享给指定的Tenant,通过member-*操作来实现。
    • Protected 受保护的:Protected Image不能被删除。

    Image的状态类型

    • Queued:没有上传Image数据,只SQL Database中存有该镜像的元数据。
    • Saving:正在上传Image。
    • Active:正常状态。
    • Deleted/pending_delete: 已删除/等待删除的Image。
    • Killed:Image元数据不正确,等待被删除。

    Image状态类型转换

    • ‘queued’ => (‘saving’, ‘active’, ‘deleted’)
    • ‘saving’ => (‘active’, ‘killed’, ‘deleted’, ‘queued’)
    • ‘active’ => (‘queued’, ‘pending_delete’, ‘deleted’)
    • ‘killed’ => (‘deleted’)
    • ‘pending_delete’ => (‘deleted’)
    • ‘deleted’ => ()

    Glance 架构

    Glance Restful API — V1

    V1的功能:提供了基本的ImageMember操作
    1. 镜像文件的创建、删除、查询、更改
    2. 镜像Tenant成员的创建、删除和查询

    V1包含有glance-apiglance-registry两个WSGI service,都提供了REST API接口来接收虚拟机镜像管理的请求。

    两者的区别在于glance-api的REST API能够对外开放而glance-registry的REST API只能够被glance-api调用。

    V1的架构

    这里写图片描述

    需要注意的是glance-api 不会真正去处理REST Request,可以将glance-api再分为两部分:

    • 一部分是中间件,主要用于对REST Request的分析、分发工作(EG. 分析出版本号)
    • 另一部分来提供实际的服务(EG. 与Store Backend后端存储接口交互,实现镜像上传、下载)

    所以若glance-api接收到涉及SQL Database的操作请求时,会调用registry-clinet并生成HTTP指令,然后转发给glance-registry API进行处理。

    Glance Restful API — V2

    V2的功能:除了拥有V1的功能之外,还能够:
    1. 镜像Location的添加、删除和修改
    2. Metadata、Namespace、Image tag操作

    V2架构图
    这里写图片描述

    V2在实现上,把glance-registryglance-api合并到了一起,减少了一个中间环节。

  • 相关阅读:
    Entity Framework Core tools reference
    安装 SQL Server 并在 Ubuntu 上创建数据库
    Install Docker Engine on Ubuntu
    ubuntu 18.04 安装.net 5
    C# 远程服务器 安装、卸载 Windows 服务,读取远程注册表,关闭杀掉远程进程
    ASP.NET MVC ActionResult
    使用WCF实现消息推送
    postgresql 数据类型转换,日期操作函数
    sql 按姓氏笔画(拼音)排序
    postgresql 导入导出
  • 原文地址:https://www.cnblogs.com/jmilkfan-fanguiju/p/11825137.html
Copyright © 2011-2022 走看看