zoukankan      html  css  js  c++  java
  • Glance组件详解

    一、Glance组件介绍

    1、概念

    Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。Glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索的实际镜像。

    通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。

    提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板。

    2、镜像生命周期

    1. Queued:初始化镜像状态,在镜像文件刚刚被创建,在glance数据库中已经保存了镜像标示符,但还没有上传至glance中,此时的glance对镜像数据没有任何描述,其存储空间为0。
    2. Saving:镜像的原始数据在上传中的一种过度状态,它产生在镜像数据上传至glance的过程中,一般来讲,glance收到一个image请求后,才将镜像上传给glance。
    3. Active:镜像成功上传完毕以后的一种状态,它表明glance中可用的镜像。
    4. Killed:镜像上传失败或者镜像文件不可读的情况下,glance将镜像状态设置成Killed。
    5. Deleted:镜像文件马上会被删除,只是当前glance这种仍然保留该镜像文件的相关信息和原始镜像数据。
    6. Pending_delete:镜像文件马上会被删除,镜像文件不能恢复。

    3、磁盘格式

    1. RAW:RAW即常说的裸格式,它其实就是没有格式,最大的特点就是简单,数据写入什么就是什么,不做任何修饰,所以再性能方面很不错,甚至不需要启动这个镜像的虚拟机,只需要文件挂载即可直接读写内部数据。并且由于RAW格式简单,因此RAW和其他格式之间的转换也更容易。在KVM的虚拟化环境下,有很多使用RAW格式的虚拟机。
    2. QCOW2:它是QEMU的CopyOn Write特性的磁盘格式,主要特性是磁盘文件大小可以随着数据的增长而增长。譬如创建一个10GB的虚拟机,实际虚拟机内部只用了5GB,那么初始的qcow2磁盘文件大小就是5GB。与RAW相比,使用这种格式可以节省一部分空间资源。
    3. VHD:VHD也是一种通用的磁盘格式。微软公司的Virtual PC和Hyper-V使用的就是VHD格式。VirtualBox也提供了对VHD的支持。如果要在OpenStack上使用Hyper-V的虚拟化,就应该上传VHD格式的镜像文件。
    4. VMDK:VMware创建的一个虚拟机磁盘格式,目前也是一个开放的通用格式,除了VMware自家的产品外,QEMU和VirtualBox也提供了对VMDK格式的支持。
    5. VDI:Oracle公司的VirtualBox虚拟软件所使用的格式。
    6. ISO:ISO是指一种存档数据文件在光盘上的格式。
    7. AKI、ARI、AMI:Amazon公司的AWS所使用的镜像格式。

    4、容器格式

    1. BARE:没有容器的一种镜像元数据格式。
    2. OVF:开放虚拟化格式。
    3. OVA:开放虚拟化设备格式。
    4. AKI、ARI:Amazon公司的AWS所使用的镜像格式。

    二、架构

    1、核心组件

    1. Glance-api:接收REST API的请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,默认监听端口9292。
    2. Glance-registry:用于与MariaDB数据库交互,用于存储或获取镜像的元数据(metadata),默认监听端口9191。
    3. Store Adapter:通过提供的存储接口来获取镜像
    4. Database:Image的metadata会保持到database中,主要使用MySQL和SQLite。

    blockchain

    2、配置文件

    1.Glance-api.conf :Glance api 服务配置文件。

    • Glance服务安装的日志和调试信息,例如:debug、日志文件路径log_file等参数。
    • Glance服务的API服务器的相关信息。例如:服务绑定的IP地址、端口bind_port等参数
    • Registry服务的相关信息,例如:Registry服务的网络地址、监听的端口号、glance与Registry间通信的协议等。
    • 系统消息相关参数,该部分主要配置glance与系统消息的收发。消息队列rabbitmq的IP地址、监听端口等参数
    • 镜像后端存储的相关配置,一般情况下,glance-api.config中包含普通文件存储、swift、S3、RBD等较为常见的存储设备的信息配置。

    2.Glance-registry.conf :Glanceregistry服务配置文件,用户存储镜像有关的元数据。

    3.glance-scrubber.conf :用于清理已删除的镜像的服务。

    4.policy.json :镜像服务的访问控制。在这里,我们可以定义角色和策略,是OpenStack Glance中的安全特性。

    三、常用操作

    1、查看

    查看镜像列表

    [root@controller ~]# glance image-list
    +--------------------------------------+---------+
    | ID                                   | Name    |
    +--------------------------------------+---------+
    | 3023637e-045b-4833-b953-476d72f2f21b | centos7 |
    +--------------------------------------+---------+
    [root@controller ~]# openstack image list
    +--------------------------------------+---------+--------+
    | ID                                   | Name    | Status |
    +--------------------------------------+---------+--------+
    | 3023637e-045b-4833-b953-476d72f2f21b | centos7 | active |
    +--------------------------------------+---------+--------+
    

    查看镜像详情

    # 语法:glance image-show <image-id>
    [root@controller ~]# glance image-show 3023637e-045b-4833-b953-476d72f2f21b
    +------------------+--------------------------------------+
    | Property         | Value                                |
    +------------------+--------------------------------------+
    | checksum         | 8fedcc705e0f107be3376ebf57f304cd     |
    | container_format | bare                                 |
    | created_at       | 2021-12-06T22:06:30Z                 |
    | disk_format      | qcow2                                |
    | id               | 3023637e-045b-4833-b953-476d72f2f21b |
    | min_disk         | 0                                    |
    | min_ram          | 0                                    |
    | name             | centos7                              |
    | owner            | 386dbfcf77e444c7872e4e23d5829fcc     |
    | protected        | False                                |
    | size             | 1141178368                           |
    | status           | active                               |
    | tags             | []                                   |
    | updated_at       | 2021-12-06T22:06:33Z                 |
    | virtual_size     | None                                 |
    | visibility       | private                              |
    +------------------+--------------------------------------+
    
    # 语法:openstack image show <image>
    [root@controller ~]# openstack image show centos7
    +------------------+------------------------------------------------------+
    | Field            | Value                                                |
    +------------------+------------------------------------------------------+
    | checksum         | 8fedcc705e0f107be3376ebf57f304cd                     |
    | container_format | bare                                                 |
    | created_at       | 2021-12-06T22:06:30Z                                 |
    | disk_format      | qcow2                                                |
    | file             | /v2/images/3023637e-045b-4833-b953-476d72f2f21b/file |
    | id               | 3023637e-045b-4833-b953-476d72f2f21b                 |
    | min_disk         | 0                                                    |
    | min_ram          | 0                                                    |
    | name             | centos7                                              |
    | owner            | 386dbfcf77e444c7872e4e23d5829fcc                     |
    | protected        | False                                                |
    | schema           | /v2/schemas/image                                    |
    | size             | 1141178368                                           |
    | status           | active                                               |
    | tags             |                                                      |
    | updated_at       | 2021-12-06T22:06:33Z                                 |
    | virtual_size     | None                                                 |
    | visibility       | private                                              |
    +------------------+------------------------------------------------------+
    

    组合命令获取镜像列表

    [root@controller images]# curl -g -i -X GET http://192.168.16.10:9292/v2/images \
    > -H "User-Agent:python-openstackclient keystoneauth1/2.4.1 python-requests/2.10.0 CPython/2.7.5" \
    > -H "X-Auth-Token:$(openstack token issue|awk -F '|' '/ id /{print $3}')"
    HTTP/1.1 200 OK
    Content-Length: 1248
    Content-Type: application/json; charset=UTF-8
    X-Openstack-Request-Id: req-71b99538-4880-4c75-9279-dc6f89aa85fe
    Date: Sun, 12 Dec 2021 02:31:03 GMT
    
    {"images": [{"status": "active", "name": "centos7.2", "tags": [], "container_format": "bare", "created_at": "2021-12-12T02:23:56Z", "size": 400752640, "disk_format": "qcow2", "updated_at": "2021-12-12T02:23:59Z", "visibility": "private", "self": "/v2/images/6b53e52d-8e45-4396-9d1b-7183ce55d503", "min_disk": 0, "protected": false, "id": "6b53e52d-8e45-4396-9d1b-7183ce55d503", "file": "/v2/images/6b53e52d-8e45-4396-9d1b-7183ce55d503/file", "checksum": "ea197f4c679b8e1ce34c0aa70ae2a94a", "owner": "386dbfcf77e444c7872e4e23d5829fcc", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "name": "centos7", "tags": [], "container_format": "bare", "created_at": "2021-12-06T22:06:30Z", "size": 1141178368, "disk_format": "qcow2", "updated_at": "2021-12-06T22:06:33Z", "visibility": "private", "self": "/v2/images/3023637e-045b-4833-b953-476d72f2f21b", "min_disk": 0, "protected": false, "id": "3023637e-045b-4833-b953-476d72f2f21b", "file": "/v2/images/3023637e-045b-4833-b953-476d72f2f21b/file", "checksum": "8fedcc705e0f107be3376ebf57f304cd", "owner": "386dbfcf77e444c7872e4e23d5829fcc", "virtual_size": null, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"} 
    

    2、上传

    [root@controller ~]# cd /opt/iaas/images/
    [root@controller images]# ls
    CentOS_6.5_x86_64_XD.qcow2  CentOS_7.2_x86_64_XD.qcow2  centos7.qcow2  CentOS-7-x86_64-DVD-1511.iso  MySQL_5.6_XD.qcow2
    [root@controller images]# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2
    [=============================>] 100%
    +------------------+--------------------------------------+
    | Property         | Value                                |
    +------------------+--------------------------------------+
    | checksum         | ea197f4c679b8e1ce34c0aa70ae2a94a     |
    | container_format | bare                                 |
    | created_at       | 2021-12-12T02:23:56Z                 |
    | disk_format      | qcow2                                |
    | id               | 6b53e52d-8e45-4396-9d1b-7183ce55d503 |
    | min_disk         | 0                                    |
    | min_ram          | 0                                    |
    | name             | centos7.2                            |
    | owner            | 386dbfcf77e444c7872e4e23d5829fcc     |
    | protected        | False                                |
    | size             | 400752640                            |
    | status           | active                               |
    | tags             | []                                   |
    | updated_at       | 2021-12-12T02:23:59Z                 |
    | virtual_size     | None                                 |
    | visibility       | private                              |
    +------------------+--------------------------------------+
    

    3、更新

    # 语法:
    glance image-update [--architecture <ARCHITECTURE>]
                        [--protected [True|False]] [--name <NAME>]
                        [--instance-uuid <INSTANCE_UUID>]
                        [--min-disk <MIN_DISK>] [--visibility <VISIBILITY>]
                        [--kernel-id <KERNEL_ID>]
                        [--os-version <OS_VERSION>]
                        [--disk-format <DISK_FORMAT>]
                        [--os-distro <OS_DISTRO>] [--owner <OWNER>]
                        [--ramdisk-id <RAMDISK_ID>] [--min-ram <MIN_RAM>]
                        [--container-format <CONTAINER_FORMAT>]
                        [--property <key=value>] [--remove-property key]
                        <IMAGE_ID>
    
    # 示例:
    [root@controller images]# glance image-update --min-disk 1 6b53e52d-8e45-4396-9d1b-7183ce55d503 
    +------------------+--------------------------------------+
    | Property         | Value                                |
    +------------------+--------------------------------------+
    | checksum         | ea197f4c679b8e1ce34c0aa70ae2a94a     |
    | container_format | bare                                 |
    | created_at       | 2021-12-12T02:23:56Z                 |
    | disk_format      | qcow2                                |
    | id               | 6b53e52d-8e45-4396-9d1b-7183ce55d503 |
    | min_disk         | 1                                    |
    | min_ram          | 0                                    |
    | name             | centos7.2                            |
    | owner            | 386dbfcf77e444c7872e4e23d5829fcc     |
    | protected        | False                                |
    | size             | 400752640                            |
    | status           | active                               |
    | tags             | []                                   |
    | updated_at       | 2021-12-12T02:47:49Z                 |
    | virtual_size     | None                                 |
    | visibility       | private                              |
    +------------------+--------------------------------------+
    

    4、导出

    # 语法:glance image-download [--file <FILE>] [--progress] <IMAGE_ID>
    
    [root@controller ~]# glance image-download --file /opt/centos72.qcow2 --progress 6b53e52d-8e45-4396-9d1b-7183ce55d503
    [=============================>] 100%
    [root@controller ~]# cd /opt/
    [root@controller opt]# ls
    centos7.2  centos72.qcow2  iaas
    [root@controller opt]# du -sh *
    4.2G	centos7.2
    383M	centos72.qcow2
    

    5、删除

    # 语法:glance image-delete <IMAGE_ID> [<IMAGE_ID> ...]
    
    [root@controller opt]# glance image-delete 3023637e-045b-4833-b953-476d72f2f21b
    
  • 相关阅读:
    泛型
    Abp SSO
    Abp 添加权限项<一>
    自定义策略-简单实践 <一>
    RabbitMq 开始<一>
    Abp 领域事件简单实践 <四> 聚合根的领域事件
    Abp 领域事件简单实践 <三> 自定义事件
    1.CentOS7安装教程
    深入浅出JSONP--解决ajax跨域问题
    设置MySQL客户端连接使用的字符集
  • 原文地址:https://www.cnblogs.com/xiugeng/p/15694819.html
Copyright © 2011-2022 走看看