概述

  • 映像服务(glance)使用户能够发现、注册和检索虚拟机映像。它提供了一个 restapi,使您能够查询虚拟机映像元数据并检索实际映像。您可以将通过映像服务提供的虚拟机映像存储在各种位置,从简单的文件系统到对象存储系统(如 OpenStack 对象存储)。
  • OpenStack 映像服务是基础设施即服务(IaaS)的核心。它接受对磁盘或服务器映像的API 请求,以及来自最终用户或 OpenStack 计算组件的元数据定义。它还支持在各种存储库类型上存储磁盘或服务器映像,包括 OpenStack 对象存储。
  • OpenStack 映像服务上运行了许多周期性进程以支持缓存。复制服务通过群集确保一致性和可用性。其他周期性过程包括 auditors、updaters 和 reapers。
  • OpenStack 映像服务包括以下组件:
    • Glance-api:接受用于图像发现、检索和存储的图像 API 调用。
    • Glance-registry: 存储、处理和检索有关图像的元数据。元数据包括大小和类型等项。(Glance Registry 服务及其 api 在 Queens 发行版中已被弃用,并可能在开发周期的开始时按照 OpenStack 标准弃用策略被删除。)
    • Database:存储图像元数据,您可以根据自己的喜好选择数据库。大多数部署使用 MySQL 或 SQLite。
    • Storage repository for image files:支持各种存储库类型,包括普通文件系统(或安装在 glance api 控制器节点上的任何文件系统)、对象存储、RADOS 块设备、VMware 数据存储和 HTTP。请注意,有些存储库只支持只读使用
    • Metadata definition service:vendors、admin、service 和用户有意义地定义自己的自定义元数据的通用 API。这些元数据可以用于不同类型的资源,如图像、工件、卷、风格和聚合。定义包括新属性的键、描述、约束以及可以与其关联的资源类型

Controller安装与配置

  1. 准备环境
    1. 要创建数据库,请完成以下步骤:
      • 使用数据库访问客户端连接到数据库 服务器作为用户:root
        $ mysql -u root -p000000
        
      • 创建数据库:glance
        MariaDB [(none)]> CREATE DATABASE glance;
        
      • 授予对数据库的适当访问权限:glance
        MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '000000';
        MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '000000';
        
      • 退出数据库访问客户端。
    2. 获取凭据以获取访问权限 仅限管理员的 CLI 命令:admin
      $ . ~/admin-openrc.sh
      
    3. 要创建服务凭据,请完成以下步骤:
      • 创建用户:glance
        $ openstack user create --domain default --password-prompt glance
        
        User Password:000000
        Repeat User Password:000000
        +---------------------+----------------------------------+
        | Field               | Value                            |
        +---------------------+----------------------------------+
        | domain_id           | default                          |
        | enabled             | True                             |
        | id                  | 265a5094dbf84312973f481fb9cd9ea8 |
        | name                | glance                           |
        | options             | {}                               |
        | password_expires_at | None                             |
        +---------------------+----------------------------------+
        
      • admin角色添加到glance用户和service项目:
        $ openstack role add --project service --user glance admin
        
      • 创建服务实体:glance
        $ openstack service create --name glance --description "OpenStack Image" image
        
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | OpenStack Image                  |
        | enabled     | True                             |
        | id          | 3ddf665c3d32430eb3987a00bfcb2af3 |
        | name        | glance                           |
        | type        | image                            |
        +-------------+----------------------------------+
        
    4. 创建glance服务 API 端点:
      $ openstack endpoint create --region RegionOne image public http://controller:9292
      
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | ba2dae201f0f429eb75933aa17a961cd |
      | interface    | public                           |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 3ddf665c3d32430eb3987a00bfcb2af3 |
      | service_name | glance                           |
      | service_type | image                            |
      | url          | http://controller:9292           |
      +--------------+----------------------------------+
      
      $ openstack endpoint create --region RegionOne image internal http://controller:9292
      
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 6463bb8a3f2c435ab2bacf45cbe0e26e |
      | interface    | internal                         |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 3ddf665c3d32430eb3987a00bfcb2af3 |
      | service_name | glance                           |
      | service_type | image                            |
      | url          | http://controller:9292           |
      +--------------+----------------------------------+
      
      $ openstack endpoint create --region RegionOne image admin http://controller:9292
      
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 649a0f3e00a64c93be308316a3f5c73d |
      | interface    | admin                            |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 3ddf665c3d32430eb3987a00bfcb2af3 |
      | service_name | glance                           |
      | service_type | image                            |
      | url          | http://controller:9292           |
      +--------------+----------------------------------+
      
  2. 安装和配置组件
    1. 安装软件包:
      # yum install -y openstack-glance
      
    2. 编辑文件并完成 以下操作:/etc/glance/glance-api.conf
      [database]
      # ...
      connection = mysql+pymysql://glance:000000@controller/glance
      [keystone_authtoken]
      # ...
      www_authenticate_uri  = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      project_name = service
      username = glance
      password = 000000
      
      [paste_deploy]
      # ...
      flavor = keystone
      [glance_store]
      # ...
      stores = file,http
      default_store = file
      filesystem_store_datadir = /var/lib/glance/images/
      
    3. 填充glance服务数据库:
      # su -s /bin/sh -c "glance-manage db_sync" glance
      
      Database is synced successfully.
      
  3. 完成安装
    • 启动影像服务并将其配置为在以下情况下启动 系统引导:
      # systemctl enable openstack-glance-api.service
      # systemctl restart openstack-glance-api.service
      

验证操作

  1. 获取凭据以获取访问权限 仅限管理员的 CLI 命令:admin
    $ . ~/admin-openrc.sh
    
  2. 下载源映像:
    $ yum install -y wget
    $ wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    
  3. 使用 QCOW2 磁盘格式、裸容器格式和公共可见性将映像上传到映像服务,以便所有项目都可以访问它:
    $ glance image-create --name "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public
    
    +------------------+----------------------------------------------------------------------------------+
    | Property         | Value                                                                            |
    +------------------+----------------------------------------------------------------------------------+
    | checksum         | 443b7623e27ecf03dc9e01ee93f67afe                                                 |
    | container_format | bare                                                                             |
    | created_at       | 2023-03-20T13:03:08Z                                                             |
    | disk_format      | qcow2                                                                            |
    | id               | fa6390a7-e9ef-4f69-80d9-f962f01fe693                                             |
    | min_disk         | 0                                                                                |
    | min_ram          | 0                                                                                |
    | name             | cirros                                                                           |
    | os_hash_algo     | sha512                                                                           |
    | os_hash_value    | 6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e |
    |                  | 2161b5b5186106570c17a9e58b64dd39390617cd5a350f78                                 |
    | os_hidden        | False                                                                            |
    | owner            | fb91e2d3344343d8a78b118d848fd968                                                 |
    | protected        | False                                                                            |
    | size             | 12716032                                                                         |
    | status           | active                                                                           |
    | tags             | []                                                                               |
    | updated_at       | 2023-03-20T13:03:08Z                                                             |
    | virtual_size     | Not available                                                                    |
    | visibility       | public                                                                           |
    +------------------+----------------------------------------------------------------------------------+
    
  4. 确认上传镜像并验证属性:
    $ glance image-list
    +--------------------------------------+--------+
    | ID                                   | Name   |
    +--------------------------------------+--------+
    | fa6390a7-e9ef-4f69-80d9-f962f01fe693 | cirros |
    +--------------------------------------+--------+
    
    在这里插入图片描述
    在这里插入图片描述
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐