OpenStack Glance组件

影像服务概述

Image 服务使用户能够发现、注册和检索虚拟机 Image 。它提供了一个REST API,能够查询虚拟机 Image 元数据并检索实际 Image 。您可U x i & . j ? J .以将通过 Image 服务提供的虚拟机 Image 存储在各种位置,从简单的文件系统到对象存储系统(如 OpenStack 对象存储)。

注意

为简单起见,本指南介绍将 Image 服务配r ? K U { 4 # 7置为使用端,该端上载并存储到托管 Image 服务的控制器节点上的目录中。默认情况下,此目录为 。file /var/lib/glance/images/

在继续操作之前,请确保控制器节点在此目录中至少有几 GB 的空间可用。请记住,由于后端通常是| H ? 7 & a 9 B Q控制器节点的本地,因此它通常不适合多节点概- N | ] W # t z h览部署。file

有关其他后端要求的信息,请参阅配置参考。

OpenStack Image 服务是基础架构作为服务(IaaS)的核心。它接受来自最终用户或 OpenStack 计算? ! S g $ $ z组件的磁盘或服务器 Image 的 APIC , s 2 请求以及元数据定义。它还支持在各种存储库类型(包括 OpenStack 对象存储)上存储磁盘或服务器 Image 。

在 OpenStack Image 服务上运行许多定期进程以支持缓存。复制服务确保群集* K P F / Q的一致性和可用性。其他定期流程包括审核人员、更新人员和删除人员。

OpenStack Image 服务包括以下组件

  • glance-api

    接受 Image API 调用,用于图像发现、检索和存储。 注意 Pike 版本中的 OpenStack 社区目标是通过 WSGI 部署控制平面 API 终结点。但是,正如目前构成的,glance-api 不适合在这样的配置中运行。相反,我们建议以传统方式作为独立服务 s y B h ( O I U器运行概览。有关详细信息,请参阅 Pike 和 Queen 版本中的"概览发行说明"部分。

  • glancee = B . ? [ w | a-registry

    存储、处理和检索有关图像的元数据。元数据包括大小和类型等项。

    注意

    注册表是一种专用u 0 ; Y y的内部服务,供 OpenStack Image 服务使用。不要向用户公4 F = f 5 U t 0 ;开此服务。

    Glancet J # q I W 注册服务及其 API 在 Queen 版本中已弃用,并i G ( q且在 OpenStack 标准弃用策略的"S"开发周期开始时可能会删除。有关详细信息,请参阅概览规范文档实际上弃用概览注册表。

  • Database

    存储镜像元数据,您可以选择数据= = / O库,具体取决于您的偏好。大多数部署都使用 MySQL 或 SQLite。

  • Storage repository for image files (Image 文件的存储存储库)

    支持各种存储库类型,包括普通文件系统(或安装在 glance-api 控制器节点上的任何文件系统)、对象存储、RADOS 块设备、VMware 数据存储和 HTTP。

    注意

    某些存储库仅支持只读用法。

  • Metadata definition service (元数据定义服务)

    用于为发行商,管理员,服务和用q $ 5 w 8户提L N ( S R供的有意义地定义自定义元数据的通用API。此元数据可用于不同类型的资源,如映像(imagG ! v h [ & oe)[ | z D l V ! ],卷(volumn),模版(flav& @ Jor)等。定义的内容可以包括新属性j e k .的键,描述,约束以及与之相关的资源类型。

安装和配置

本节介绍如何在控制器节点上安装和配置映像服务S A q h(代码命名概览)。为简单起见,此配置将映像存储到5 k U ( i : a T G本地文件系统上。

先决条件

在安装和配置映像服务之前,必须创建数据库、服务凭据和 API 终结点

  1. 若要创建数据库,/ v O @ G F 6 @请完x 6 } x f 9 6成以下步骤:

    • 使用数据库访问客户A D T x _ X端以用户方式连接到数据库服务器:root

      $b  A , # & v mysql -u root -p
    • 创建数据库:glance

      M2 s tariaU n w : gDB [(} Q * Gnone)]> CREATE DATABASE glance;
    • 授予对数u I ( )据库的适当访问权限:glance

      MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'- h b@'localhost' IDENTIFIED BY 'glance';
      MariaDB [(none)]> GRANT! D S ALL PRIVILEGES ON glance.* TO : t W _ o'glance'@'%' I- 2 XDENTIFIED BY 'glance';

      替换为合适的密码。GLANCE_DBPASS

    • 退出数据库访问客户端。
  2. 源凭据以访问仅管C t w ] p V e } n理员 CLI 命令:admin

    $ .T # ] p W R _ a z admin-openrc
  3. 若要创建服务凭据,请完成以下步骤:

    • 创建用户:glance

      $ openstack user create --domain default --password-prompt glance
      User Password:
      Repeat User Password:
      +---------------------+~ x E 5 # 7 b----------------------------------+
      | Field               | Value                            |
      +------1 ` | D  ! ^ * ]---------------+---------------g b * y ^ B 7-------------------+
      | domain_id           | default                          |
      | enableG G n kd             | True                             |
      | id                  | 6013055ac6cf3 * 9 $46918943e9dfdde7c171 |
      | name                | glance                           |
      | options             | {}                               |
      | pav S +ssword_expires_at | None                             |
      +--------. K ! Q v R j i %-------------+----------------------------------+
    • 将角色添加到用户和项目:admv U J Q K D 7in glance service

      $ oB s R Rpenstack role addu q } f y ? | G H --project service --us~ / P 6 K Jer glance admin

      注意

      此命令不提供输出。

    • 创建服务实体glance

      $ openstack service create --name glance --dH : + s P , a  Uescription "OpenS= C x A X 6 | # Atack Image" image
      +----k O / L I ) P---------+--------------------I X 6 D--------------+
      | Field       | Value                            |
      +-------------+-----------W Z C /---------^ p ) = B--------------+
      | description | OpenStack Image                  |; F f 1
      | enabled     |6 % T - 0 p True                             |
      | id          | 3bae498cf8c54887a6292c36ff6b4eb4 |
      | name        | glance                           |
      | type        | image                            |
      +----n a w N 1 o J B---------+--------------------H [ h * r ) 3 h--------------+
  4. 创建 Image 服务 endpoint:

    [root@controller ~]# openstack endpoint creu J eate --region RegionOne image public http://controller:9292
    +--------------+ { +-| ? Y ;----W i F % o d-----------------------------+
    | FiR . 3eld        |O 6 U F 3 Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | cf25ebee98f04b6fy p W 3 z S g 9bdcf8ed6ac02bc71 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 3bae498cf8c54887a6**p | - p = m*** |
    | serv} r @ R  r T Hice_name | glance                           |
    | service_type5 z 2 L I & 5 U f | image                            |
    | url          | http://controller:9292           |
    +---7 & ] D g / q--1 r | ; R A U ,---------+--# : p--------------------------------+
    [rl R g 0 Q n a &oot@W x C / & r t 6contro] ~ ( ller ~]# openstack endpoint create --region RegionOne im9 @ 7 5 . + age internal http://controller:9292
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | b957e2b8f25b40d7a684f883c2f91857 |
    | inteA * b z # mrs m J ! : u $ -f& E ) 9 : | uace    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 3bae498cf8c54887av ^ c y x6***** |
    | service_name | glance                           |E i ] ! / i 5 : U
    | service_type | image                            |
    | url          | http://conto H a + Nroller:9292T R q Y           |
    +--------------+----------------------------------+F k V P B 6 n /
    [root@controller ~]# openstack endpoint create --region RegionO~ A ( yne image admin http://controller:9292
    +--------------+--------------------------I y j--------+
    | Field        | Val* ^ G P t IueC 4 e J i L % P                            |
    +--------------+----------------------------------+
    | enabled      | TU , Y J _ F 9rue                             |
    | id           | 054b5a8cb7084c649( $ p V Q p434b0b434748fac |
    | interface    | adminq P K L 4 d n                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 3bae498cf8c54887a6***** |
    | service_name | glance                           |
    | service_type | image                            |
    |n i s a t o url          | http://controller:9292           |
    +--------------+----------------------------------+

安装和配置组件

注意

默认配置文件因分布而异。您可能需要添加这些节和选项,H } Q L 0 e * / }而不是修改现有节和选项。此外,配置代码段中的省略号 () 指示应保d ) h W [ z留的潜在默认配置选项。...

  1. 安装包:

    # yum inS B r s M @ F i Tstall openstack-glance
  2. 编辑文件并完成以下操作:/etc/glance/glance-api.conf

    • 在 本节中,配置数据库Q Z e H ! X h访问:[database]

      [database]
      # ...
      connection =I o H = C mysql+pymysql://glance:glance@controller/glance

      替换为为影 Image 服务数据库选择的密码。GLANCE_DBPASS

    • 在 和 部? L v 7分中,配置标识服务访问:[keystone_authto= F . # G ( c Gken] [pasx & ) + Rte_deploy]

      [keystone_authtoken]
      # ...
      www_authenticate_uri  = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password7 % L X H P N ] x
      project_domain_name = Default
      user? i j ] r a k R N_domain_name = Default
      project_name = service
      username = glance
      password = GLANCE| @ b # H w y /_C ( g k 2 QPASS
      [pa5 C J % ! 8 E -sr ) i { ) a [ ^te_deploy]
      # ...
      flavor = keystone

      替换为"标识"服务中为用户选择的密码。GLANCE_PASS glance

      注意

      注释掉或删除部分中任何其他选项。[keystone_authtoken]

    • 在 部分中,配置本地文件系统存储和映像文件的位置:[glance_store]

      [glance_store]
      # ...
      stores = fW ~ F S Y M b sile,ht6 } i ) ktp
      default_store = file
      fi5 : m e o l _ Xlesystem_store_datadir = /var/lib/glance/images/
      $ mkdir -pv /var/lib/glance/images/
      $ chown -R glance:glance /var/lib/glance
  3. 填充影像服务数据库:

    # su -s /bin/sh -c "glance-manageM D 9 8 9 T do A 4b_s? 7 6 6 7 X y t *ync" glance

    注意

    忽略此输出中的任何弃用消息。

完成安装

  • 启动映像服务并将其配置为在系统启动时启动:

    # systemctl enable openstack-glance-api.service
    # systemctl start openstack-glance-api.service

验证操作

使用CirrOS验证镜像服务

有关如何下载和生成映像的信息,2 D % 1 * . M N f请参阅OpenStack 虚拟机映像指南。有关如何管理映像的信息,请参阅OpenStack 最终用户指南。

注意

在控制器节点上执行这些命令。

  1. 源凭据以访问仅管理员 CLI 命令:admin

    $ . ad) M % 1 Bmin-openrc
  2. Q L C r = V s h载源映像:

    $ w8 - * ] + -get+ m u z y , y L http://download.cirros-cloud.nI H H  u Oet/0.4.0/cirros-0.4.0-x86_64-disk.img
  3. 使用QCOW2磁盘格式、裸容器格式和公共可见性将映像上传到映像服务,以便所有项目都可以访问它:

    $ openstack image create "cirroP ` : ~ L z m $s" --file cirros-0.4.0-x86_64-disk.img  --d+  0 h y aisk-format qcow2 --container-format bareX u 1 [ + 0 --publs X E [ * j s } kic
    +------------------+------------------------------------------------h 6 B------------@ c h------------------------------v q y T = j k--------------------------------------------------------------------------------------------------+
    | Field            | Value                                                                                                                                                                                      |
    +------------------+------------------------------------------------------. Y 5 D P / e ` ?--------------------------------------------6 [ F y v p ------------------N s X x ;-----------------------------------[ 9 Q Z------------------Z | ) 7 m s `--------------------+
    | checksum         | 443b7623= U Z v Y 9e27ecf03dc9e01ee93f67afe                                                                                                                                                           |
    | container_format | bare                                                                                                                                                                                       |
    | created_at       | 2020-12-08T09:52:16Z                                                                                                                                                                       |
    | disk_formatd 0  J n      | qcow2                                                                                                                                                                                      |
    | file             | /v2/images/1907***  /file                                                                                                                                       |
    | id               | 19073***                                                                                                                                                      |v A &
    | min_disk         | 0                                                                                                                                                                                          |
    | min_ram          | 0                                                                                                                                                                                          |
    | name             | cirros                                                                                                                                                                                     |
    | owner            | e8e ; j U39bd39c3f426ea753111 T { l1acc4e6358                                                                                                                                                           |
    | properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e10 h G (d14( D p s - %cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a35= F 5 W +  F0f78', os_hidden='FalseB R & ? * ~ z 4' |
    | protected        | False                                                                                                                                                                                      |
    | schema           | /v2/sc[ & 2hemas/image                                                                                                                                                                          |
    | size             | 127j & y ^16032                                                                                                                                                                                   |
    | status           | active                                                                                                                                                                                     |
    | tags             |                                                                                                                                                                                            |
    | updated_atN W % c n       | 2020-12-08T09:52:16Z                                                                                                                                                                       |
    | virtual_siz* q be     | None                                                                                                                                                                                       |
    | visibili) o s D d b x ) ;ty       | public                                                                                                                                                                                     |
    +------------------+-------------------------x T G E l B-------------------------------------------------------F 8 = ? [ (----------------------------------------- h F g-----------------------------y 0 Y / Z U---------------------------------------+

    有关概览参数的c * # ; ~ # l信息,请参阅中的影像服务(概览)命令行客户端。OpenStack User Guide

    有关映像的磁盘和容器格式的信息,请参阅 中的映像的磁盘和容器格式。OpenStam V u # jck Virtual Machine Image Guide

    注意

    OpenStack 动态生成 ID,因此您将在示例命令输出中看到不同的值。

  4. 确认U X E X g图像的上传并验证属性:

    $ glance imag? ^ 7 @ 6 ! 7 We-list
    +--------------------------------------+--------+
    | ID                                   | Name   |
    +--------------------------------------+--------+
    | 19073eC ) ] 4 ,ea-c2f0-47b5-9a55-f084815f1c0f | cirros |
    +--------------------------------------+--------+