首页 > 其他分享 >glance服务详解

glance服务详解

时间:2024-02-19 11:56:09浏览次数:23  
标签:服务 -- image 镜像文件 详解 openstack 镜像 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:图解

 

  

  

 

 

  

 

标签:服务,--,image,镜像文件,详解,openstack,镜像,glance
From: https://www.cnblogs.com/qm77/p/18019901

相关文章

  • typecho 迁移服务器
     一、遇到的问题1.由于服务器到期,域名也到期,之前写的文章还有很多有用的就续费了一个月的腾讯云。使用之前的镜像制作系统,制作成功后,开启NGINX服务,开放端口,访问网站发现资源地址还是之前的域名地址。 二、解决过程1.不知道在哪里修改就把数据库导出来,重新搭建typecho环境,发......
  • .net core微服务之网关
    网关:一:apisixdoc:https://apisix.apache.org/zh/docs/apisix/getting-started/README/github:https://github.com/apache/apisix二:Konggithub:https://github.com/Kong/kong三:Ocelotgithub:https://github.com/ThreeMammals/Ocelot四:janusgithub:https://......
  • Go Gin 框架的模型绑定与验证详解
    GoGin框架的模型绑定与验证详解原创 云原生Go 源自开发者 2024-02-1823:22 广东 听全文源自开发者专注于提供关于Go语言的实用教程、案例分析、最新趋势,以及云原生技术的深度解析和实践经验分享。119篇原创内容公众号在Web开发中,模型绑定和验证......
  • 多线程系列(二) -Thread类使用详解
    一、简介在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用CPU资源,显著的提升程序的执行效率。其中java.lang.Thread是Java实现多线程编程最核心的类,学习Thread类中的方法,是学习多线程的第一步。下面我们就一起来看看,创建线程的几种......
  • 树状数组及线段树详解
    本文章是作者调了3个多小时后,感触颇深,历经1个多小时写出来的,不喜勿喷相关内容可参考模板总结中的树状数组及线段树;进入正题树状数组所谓树状数组,即像树的数组,一般应用于求多次前缀和以及区间前缀和的问题中;其根据节点编号的二进制数的末尾0的个数划分层次,每个节点的管辖......
  • Java注解篇之@SuppressWarnings注解详解 代码编译通过且可以运行,但每行前面的“感叹号
    Java注解篇之@SuppressWarnings注解详解@SuppressWarnings作用:用于抑制编译器产生警告信息。它的注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量,但是建议注解声明在最接近警告发生的位置。去感叹号?我们经常遇到代码编译通过且可以运行,但每行前面的“感叹号”就......
  • go-zero/grpc的rpc服务间传递额外数据
    客户端:md:=metadata.New(map[string]string{"signature":"0123456789","timestamp":"2021-07-0100:00:00"})ctx:=metadata.NewOutgoingContext(ctx,md)addResp,err:=adderClient.Add(ctx,addReq)//rpc调用初始化md也可......
  • 若依微服务(三)新增一个微服务——附件管理服务
    若依本身有一个文件上传模块,但是实现的功能比较基础。我打算构建一个更偏应用的附件管理服务,功能更加完整丰富。功能如下:附件的上传、批量上传、下载、打包下载、查询、删除、假删除UI界面包含附件的预览和类似网盘的层级目录完善的权限控制通过这个附件管理服务的开发,熟......
  • 为什么用GPT客服机器人能实现超越外包团队的服务能力?
    淘宝等电商平台的卖家们如何在保持成本效率的同时提供优质服务?一般情况下,商家为了节省客服成本,会去选择一些外包客服公司来来承接日益增长的顾客咨询和售后服务需求,但还是会存在响应延迟、服务质量波动和高运营成本等问题。现在随着AI技术的发展,GPT客服机器人的出现可以很好的帮......
  • 用python脚本自动发送钉钉消息出现服务器异常的报错: HTTPSConnectionPool(host='oapi.
    一、问题描述执行python脚本发送钉钉消息,出现报错:HTTPSConnectionPool(host='oapi.dingtalk.com',port=443):Maxretriesexceededwithurl:/robot/send?access_token=43df999582e899dc6815c9d6346c9d253060259625c92e4f166e25ea58e5bdb5&timestamp=1708242748918&sign......