glance服务详解

一:简介

一:作用

1:glance是openstack镜像服务,用来注册,登陆和检索虚拟机镜像

2:glance服务提供了一个REST api使你能够查询虚拟机镜像元数据和检索实际的镜像

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

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

二:基础概念

1: 镜像数据类型:

1:镜像元数据(metadata)

镜像元数据是存放在数据库中关于镜像的相关信息,如文件名,大小,状态,用于快速的检索,都可以通过镜像元数据进行查询

2:镜像文件(image file)

即镜像本身,它存储与后端存储,就是第三方存储系统

2:磁盘格式

1:RAW

即裸格式(无结构的磁盘格式),就是没有规格,最大的特点就是简单,数据写入什么就是什么,不做任何的修饰,甚至不需要启动镜像虚拟机,只需要文件挂载即可直接读写内部数据,并且RAW格式简单,因此RAW和其他的格式转换也更容易,在KVM的虚拟化环境下,有很多的RAW格式的虚拟机

2:QCOW2(openstack最常用的磁盘格式)

主要的特性就是磁盘文件大小可以随着数据的增长而增长,列如,创建了一个10G的虚拟机,实际内部用了5G那么初始的qcow2磁盘文件大小就是5G,与RAW相比,可以节省一部分的空间资源

3:VHD

也是一种通用的磁盘格式,支持VirtualPC和Hyper-V,VirtualBox也支持,要使用Hyper-V

的虚拟化,就要上传VHD格式的镜像文件

4:VMDK(虚拟机创建的一个磁盘格式)

也是一个开放的通用格式,

5:iso

存档数据文件在光盘上的格式

6:VDI

oracle公司的virtualbos虚拟软件使用的格式

3:容器格式

1:BARE(openstack最常用的容器格式)

没有容器的一种镜像元数据格式

2:OVF

开放虚拟化格式

3:OVA

开放虚拟化设备格式

4:组件架构

应用接口(glance-api):

提供对外服务的接口,当外部服务请求是对镜像元数据进行操作时,glance-api就会与数据库进行交互,实现对镜像元数据的检索,存储等相关功能;如果是对镜像文件进行操作的话,glance-api将会通过存储适配器调用后端存储对镜像文件进行操作,完成具体的上传,删除等操作

存储适配器(store adapter):

存储适配器是一个接口层,其中包含对镜像文件的各种操作方法,但这些方法都需要调用后端存储中的某个具体的文件系统来进行相应的文件处理

后端存储:

后端存储独立于glance,不是glance组件,glance自己不存储镜像,存储于后端存储上面

存储系统有file,ceph,S3,cinder,swift等

三:工作流程

 

上面就是nova向glance请求镜像文件的流程图,如果是查找镜像文件的信息,glance-api就会与数据库进行交互,如果是对镜像文件进行操作的话,就会调用存储适配器与后端存储进行交互,获得镜像数据

具体点:

glance-api:接收REST API的请求,然后通过其他的模块(glance-registry,image store)来完成镜像的查找,获取,上传,删除等操作,默认监听的端口9292

glance-registry:用于与数据库进行交互的用于存储或获取镜像的元数据(metadata),默认监听的端口9191

store adapter:通过提供的存储接口来获取镜像

database:image的metadata会保持到database

创建的镜像流程:

  1. Glance-api接收用户上传的镜像文件,并生成关于该镜像的元数据。
  2. Glance-api将这些元数据发送给Glance-registry,Glance-registry将这些元数据存储在数据库中。,所以glance-registry有存储和获取镜像元的数据
  3. 同时,Glance-api将实际的镜像数据存储在配置好的存储仓库(如OpenStack Swift、Amazon S3等)中。

nova请求请求镜像文件的流程:

  glance-api先与数据库进行交互,获得镜像的地址,然后存储适配器根据镜像文件的地址在后端存储中找到,返回给nova

四:glance服务操作

1:上传镜像

openstack命令

#查看帮助文档
[root@controller ~]# openstack image create --help
usage: openstack image create [-h] [-f {json,shell,table,value,yaml}]
                              [-c COLUMN] [--max-width <integer>]
                              [--fit-width] [--print-empty] [--noindent]
                              [--prefix PREFIX] [--id <id>]
                              [--container-format <container-format>]
                              [--disk-format <disk-format>]
                              [--min-disk <disk-gb>] [--min-ram <ram-mb>]
                              [--file <file> | --volume <volume>] [--force]
                              [--sign-key-path <sign-key-path>]
                              [--sign-cert-id <sign-cert-id>]
                              [--protected | --unprotected]
                              [--public | --private | --community | --shared]
                              [--property <key=value>] [--tag <tag>]
                              [--project <project>]
                              [--project-domain <project-domain>]
                              <image-name>

#上传镜像文件
一定要指定镜像文件的磁盘格式和容器格式
[root@controller ~]# openstack image create --disk-format qcow2 --container-format bare --public --file cirros-0.5.1-x86_64-disk.img cirrors
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 1d3062cd89af34e419f7100277f38b2b                                                                                                                                                           |
| container_format | bare                                                                                                                                                                                       |
| created_at       | 2024-02-19T02:55:25Z                                                                                                                                                                       |
| disk_format      | qcow2                                                                                                                                                                                      |
| file             | /v2/images/f9a1bdea-12b4-4111-9116-3f6f60f977e9/file                                                                                                                                       |
| id               | f9a1bdea-12b4-4111-9116-3f6f60f977e9                                                                                                                                                       |
| min_disk         | 0                                                                                                                                                                                          |
| min_ram          | 0                                                                                                                                                                                          |
| name             | cirrors                                                                                                                                                                                    |
| owner            | c0e095cd4ffe4567a3028105f7197e50                                                                                                                                                           |
| properties       | os_hash_algo='sha512', os_hash_value='553d220ed58cfee7dafe003c446a9f197ab5edf8ffc09396c74187cf83873c877e7ae041cb80f3b91489acf687183adcd689b53b38e3ddd22e627e7f98a09c46', os_hidden='False' |
| protected        | False                                                                                                                                                                                      |
| schema           | /v2/schemas/image                                                                                                                                                                          |
| size             | 16338944                                                                                                                                                                                   |
| status           | active                                                                                                                                                                                     |
| tags             |                                                                                                                                                                                            |
| updated_at       | 2024-02-19T02:55:25Z                                                                                                                                                                       |
| virtual_size     | None                                                                                                                                                                                       |
| visibility       | public                                                                                                                                                                                     |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

glance命令

glance image-create options  image-name < 镜像文件 

[root@controller ~]# glance image-create --disk-format qcow2 --container-format bare --name cirrors --progress  < cirros-0.5.1-x86_64-disk.img
[=============================>] 100%
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | 1d3062cd89af34e419f7100277f38b2b                                                 |
| container_format | bare                                                                             |
| created_at       | 2024-02-19T03:06:51Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | 9b1be449-43a1-4ec1-9256-f1daeef1b842                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirrors                                                                          |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 553d220ed58cfee7dafe003c446a9f197ab5edf8ffc09396c74187cf83873c877e7ae041cb80f3b9 |
|                  | 1489acf687183adcd689b53b38e3ddd22e627e7f98a09c46                                 |
| os_hidden        | False                                                                            |
| owner            | c0e095cd4ffe4567a3028105f7197e50                                                 |
| protected        | False                                                                            |
| size             | 16338944                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2024-02-19T03:06:51Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+

2:查看镜像

openstack命令

#列出已有的镜像文件
[root@controller ~]# openstack image list
+--------------------------------------+---------+--------+
| ID                                   | Name    | Status |
+--------------------------------------+---------+--------+
| 9b1be449-43a1-4ec1-9256-f1daeef1b842 | cirrors | active |
+--------------------------------------+---------+--------+
#查看详细的镜像文件的信息
[root@controller ~]# openstack image show cirrors
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 1d3062cd89af34e419f7100277f38b2b                                                                                                                                                           |
| container_format | bare                                                                                                                                                                                       |
| created_at       | 2024-02-19T03:06:51Z                                                                                                                                                                       |
| disk_format      | qcow2                                                                                                                                                                                      |
| file             | /v2/images/9b1be449-43a1-4ec1-9256-f1daeef1b842/file                                                                                                                                       |
| id               | 9b1be449-43a1-4ec1-9256-f1daeef1b842                                                                                                                                                       |
| min_disk         | 0                                                                                                                                                                                          |
| min_ram          | 0                                                                                                                                                                                          |
| name             | cirrors                                                                                                                                                                                    |
| owner            | c0e095cd4ffe4567a3028105f7197e50                                                                                                                                                           |
| properties       | os_hash_algo='sha512', os_hash_value='553d220ed58cfee7dafe003c446a9f197ab5edf8ffc09396c74187cf83873c877e7ae041cb80f3b91489acf687183adcd689b53b38e3ddd22e627e7f98a09c46', os_hidden='False' |
| protected        | False                                                                                                                                                                                      |
| schema           | /v2/schemas/image                                                                                                                                                                          |
| size             | 16338944                                                                                                                                                                                   |
| status           | active                                                                                                                                                                                     |
| tags             |                                                                                                                                                                                            |
| updated_at       | 2024-02-19T03:06:51Z                                                                                                                                                                       |
| virtual_size     | None                                                                                                                                                                                       |
| visibility       | shared                                                                                                                                                                                     |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@controller ~]# 

glance命令  

[root@controller ~]# glance image-list
+--------------------------------------+---------+
| ID                                   | Name    |
+--------------------------------------+---------+
| 9b1be449-43a1-4ec1-9256-f1daeef1b842 | cirrors |
+--------------------------------------+---------+

[root@controller ~]# glance image-show 9b1be449-43a1-4ec1-9256-f1daeef1b842
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | 1d3062cd89af34e419f7100277f38b2b                                                 |
| container_format | bare                                                                             |
| created_at       | 2024-02-19T03:06:51Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | 9b1be449-43a1-4ec1-9256-f1daeef1b842                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirrors                                                                          |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 553d220ed58cfee7dafe003c446a9f197ab5edf8ffc09396c74187cf83873c877e7ae041cb80f3b9 |
|                  | 1489acf687183adcd689b53b38e3ddd22e627e7f98a09c46                                 |
| os_hidden        | False                                                                            |
| owner            | c0e095cd4ffe4567a3028105f7197e50                                                 |
| protected        | False                                                                            |
| size             | 16338944                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2024-02-19T03:06:51Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+

3:更新 

更新的就是镜像文件的元数据,镜像文件的状态等

openstack命令

[root@controller ~]# openstack image set --help | head -n 20
usage: openstack image set [-h] [--name <name>] [--min-disk <disk-gb>]
                           [--min-ram <ram-mb>]
                           [--container-format <container-format>]
                           [--disk-format <disk-format>]
                           [--protected | --unprotected]
                           [--public | --private | --community | --shared]
                           [--property <key=value>] [--tag <tag>]
                           [--architecture <architecture>]
                           [--instance-id <instance-id>]
                           [--kernel-id <kernel-id>] [--os-distro <os-distro>]
                           [--os-version <os-version>]
                           [--ramdisk-id <ramdisk-id>]
                           [--deactivate | --activate] [--project <project>]
                           [--project-domain <project-domain>]
                           [--accept | --reject | --pending]
                           <image>

#设置为私有镜像
[root@controller ~]# openstack image set --private cirrors

glance命令  

#将镜像文件设置为公有的
[root@controller ~]# glance image-update  --visibility=public 9b1be449-43a1-4ec1-9256-f1daeef1b842
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | 1d3062cd89af34e419f7100277f38b2b                                                 |
| container_format | bare                                                                             |
| created_at       | 2024-02-19T03:06:51Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | 9b1be449-43a1-4ec1-9256-f1daeef1b842                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirrors                                                                          |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 553d220ed58cfee7dafe003c446a9f197ab5edf8ffc09396c74187cf83873c877e7ae041cb80f3b9 |
|                  | 1489acf687183adcd689b53b38e3ddd22e627e7f98a09c46                                 |
| os_hidden        | False                                                                            |
| owner            | c0e095cd4ffe4567a3028105f7197e50                                                 |
| protected        | False                                                                            |
| size             | 16338944                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2024-02-19T03:38:47Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | public                                                                           |
+------------------+----------------------------------------------------------------------------------+
[root@controller ~]# 

4:导出

导出就是将镜像文件导入到一个文件中,备份非常的好用

openstack命令

[root@controller ~]# openstack image save --file /mnt/11 cirrors

glance命令

[root@controller mnt]# glance image-download --file /mnt/22 9b1be449-43a1-4ec1-9256-f1daeef1b842

5:删除  

openstack命令

[root@controller mnt]# openstack image delete cirrors 

glance命令  

[root@controller mnt]# glance image-delete  9b1be449-43a1-4ec1-9256-f1daeef1b842

glance命令后面一般要加上镜像的id才行

 

6:图解

 

  

  

 

 

  

 

posted @ 2024-02-19 11:49  q_7  阅读(269)  评论(0编辑  收藏  举报