一、Glance组件介绍

1、概念

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

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

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

2、镜像生命周期

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

3、磁盘格式

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

4、容器格式

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

二,常用操作

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

openstack中Glance组件简解的更多相关文章

  1. openstack中Nova组件简解

    一.Nova组件概述 计算节点通过Nova Computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nova之间通信通过rabbitMQ队列进行通信. Nova位于Openstack架 ...

  2. openstack中Neutron组件简解

    一.Neutron概述 Neutron 的设计目标是实现"网络即服务(Networking as a Service)".为了达到这一目标,在设计上遵循了基于 SDN 实现网络虚拟 ...

  3. openstack中Keystone组件简解

    一.Keystone服务概述 在Openstack框架中,keystone(Openstack Identity Service)的功能是负责验证身份.校验服务规则和发布服务令牌的,它实现了Opens ...

  4. openstack中Cinder组件简解

    一,Cinder组件介绍 概念 cinder组件作用: 块存储服务,为运行实例提供稳定的数据块存储服务 块存储服务,提供对 volume 从创建到删除整个生命周期的管理 二,常用操作 1.Volume ...

  5. openstack中glance组件images的全部python API 汇总

    感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  6. Android中Intent组件详解

    Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...

  7. Java中日志组件详解

    avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...

  8. OpenStack的Swift组件详解

    一:简介     一.背景 1. Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务(Object  Storage Service),并于 2010 年贡献给 OpenSt ...

  9. OpenStack的Trove组件详解

    一:简介     一.背景 1. 对于公有云计算平台来说,只有计算.网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据库承载的往往是应用最核心的数 ...

随机推荐

  1. 教你用VS code 生成vue-cli代码片段

    可以自定义设置名字:name.json { "Print to console": { "prefix": "vue", "bod ...

  2. ms12-020漏洞

    一.环境说明 kali linux windows 7 sp1 二.ms12-020漏洞利用 msf5 exploit(windows/browser/ms10_002_aurora) > se ...

  3. 好用到爆!GitHub 星标 32.5k+的命令行软件管理神器,功能真心强大!

    前言(废话) 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章,结果在通过 brew 安装 MongoDB 的时候竟然报错了.原因很简单,公司这台 Mac 上的 homebr ...

  4. openGauss内核:SQL解析过程分析

    摘要:在传统数据库中SQL引擎一般指对用户输入的SQL语句进行解析.优化的软件模块.SQL的解析过程主要分为:词法.语法和语义分析. 本文分享自华为云社区< openGauss内核分析(三):S ...

  5. 【黑马pink老师的H5/CSS课程】(一)基本介绍

    视频P4~P6 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动 1.网页 1.1 什么是网页 网站是网页的集合,网页是构成网站的基本元素,常用html格式文件 1. ...

  6. Redis布隆过滤器和布谷鸟过滤器

    一.过滤器使用场景:比如有如下几个需求:1.原本有10亿个号码,现在又来了10万个号码,要快速准确判断这10万个号码是否在10亿个号码库中? 解决办法一:将10亿个号码存入数据库中,进行数据库查询,准 ...

  7. Redis入门到精通01

    Redis入门到精通 目录 Redis入门到精通 一.Redis缓存框架基本介绍 1.1Redis的应用场景 二.Redis的安装方式 2.1Windows操作系统安装Redis 2.2Linux操作 ...

  8. 7.Spark SQL

    1.分析SparkSQL出现的原因,并简述SparkSQL的起源与发展. SparkSQL出现是因为关系数据库已经不能满足各种在大数据时代新增的用户需求.首先,用户需要在不同的结构化和非结构化数据中执 ...

  9. Java ArrayList和LinkedList

    目录 集合的概念 集合体系结构 常用list集合 list集合的特点 ArrayList LinkedList 创建对象 常用方法 遍历 ArrayList和LinkedList的区别 集合的概念 ​ ...

  10. Kafka ETL 之后,我们将如何定义新一代实时数据集成解决方案?

    上一个十年,以 Hadoop 为代表的大数据技术发展如火如荼,各种数据平台.数据湖.数据中台等产品和解决方案层出不穷,这些方案最常用的场景包括统一汇聚企业数据,并对这些离线数据进行分析洞察,来达到辅助 ...