OpenStack 由 Glance 提供 Image 服务。
 
理解 Glance 
 
要理解 Image Service , 先得搞清楚什么是 Image 以及为什么要用 Image?
 
在传统IT 环境下,安装一个系统要么从官方ISO一步一步安装,要么使用GHOST等克隆工具恢复。这两种方式有如下几个问题:
 
    1、如果安装的系统多了效率很低
    2、时间长,工作量大
    3、安装完还要进行手工配置,比如安装软件、配置IP 密码等
    4、备份和恢复系统不灵活
 
云环境下需要更高效的方案,这就是 Image ,Image 是一个模板,里面包含了基本的操作系统和其他软件
 
举例来说,有家公司需要为每位员工配置一条办公的系统,一般需要一个win7 在加上  office等办公软件,如果用OpenStack的话,大概过程如下:
 
    1、先手工安装好一个win7 的虚机,并安装好office等办公软件
    2、然后对虚机执行 snapshot,这样就得到了一个image
    3、当有新员工入职需要办公环境时,立马启动一个或者多个image的instance(虚机)就可以了
 
在这个过程中,第1步跟传统方式类似,需要手工操作和一定的时间,但第2、3步非常快,全自动,一般都是秒级操作。而且第 2 3 步可以循环做,比如公司新上了一套OA系统,每个员工的PC上都得有客户端软件。那么可以在某个现有虚机中先手工安装好OA客户端,然后执行snapshot操作,得到新的image,以后可以直接使用新的image创建虚机。另外,snapshot还有备份的作用,能够非常方便的恢复系统。
 
理解 Image Service
 
Image Service 的功能是管理Image,让用户能够发现、获取和保存image。在OpenStack 中,提供 Image Service 大的是Glance,其具体功能如下:
 
    1、提供 REST API 让用户能够查询和获取image 的元数据和image本身
    2、支持多种方式存储image,包括普通的文件系统、swift、Amazon S3 等
    3、对 Instance 执行 snapshot 创建新的image
 
Glance 架构
 
Glance 架构图
 
 
glance-api 
 
glance-api  是系统后台运行的服务进程,对外提供 REST API,响应 image 查询、获取和存储的调用。
glance-api 不会真正处理请求,如果操作是与 image metadata(元数据)相关,glance-api 会把请求转发给glance-registry;如果操作是与image自身存取相关,glancd-api 会把请求转发给该 image的store backend。
 
在控制节点上可以查看 glance-api 进程
 
root@DevStack-Controller:/var/log/apache2# ps -e | grep glance-api
26652 pts/7    00:12:27 glance-api
26800 pts/7    00:01:10 glance-api
26801 pts/7    00:00:52 glance-api
 
glance-registry
 
glance-registry 是系统后台运行的服务进程。负责处理和存取image的metadata,例如image的大小和类型。在控制节点上可以查看 glance-registry的进程
 
root@DevStack-Controller:/var/log/apache2# ps -e | grep glance-registry
26312 pts/6    00:00:00 glance-registry
26572 pts/6    00:00:13 glance-registry
26573 pts/6    00:00:07 glance-registry
 
Glance 支持多种格式的image,包括
 
 
Database
 
Image 的metadata 会保持到 database中,默认是 MySQL。在控制节点上可以查看glance的database信息
 
root@DevStack-Controller:~# su - stack
stack@DevStack-Controller:~$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 697
Server version: 5.7.26-0ubuntu0.16.04.1 (Ubuntu)
 
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> use glance;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> show tables;
+----------------------------------+
| Tables_in_glance                 |
+----------------------------------+
| alembic_version                  |
| artifact_blob_locations          |
| artifact_blobs                   |
| artifact_dependencies            |
| artifact_properties              |
| artifact_tags                    |
| artifacts                        |
| image_locations                  |
| image_members                    |
| image_properties                 |
| image_tags                       |
| images                           |
| metadef_namespace_resource_types |
| metadef_namespaces               |
| metadef_objects                  |
| metadef_properties               |
| metadef_resource_types           |
| metadef_tags                     |
| migrate_version                  |
| task_info                        |
| tasks                            |
+----------------------------------+
21 rows in set (0.00 sec)
 
store backend
 
Glance 自己并不存储 image。真正的image是存放在backend 中的。Glance 支持多种backend ,包括:
 
    1、A directory on a local file system (这是默认值)
    2、GridFS
    3、Ceph RBD
    4、Amazon S3
    5、Sheepdog
    6、OpenStack Block Storage(Cinder)
    7、OpenStack Object Storage(Swift)
    8、VMware ESX
 
具体使用哪种 backend ,是在 /etc/glance/glance-api.conf 中配置的,在我们的实验环境中,image存放在控制节点本地目录  /opt/stack/data/glance/images/
 
[glance_store]
filesystem_store_datadir = /opt/stack/data/glance/images/
 
 
查看目前已经存在的image 和查看保存image 的目录,每个 image在目录中都有一个对应的文件,文件一image 的ID命名。
 
stack@DevStack-Controller:~$ source devstack/openrc admin admin
WARNING: setting legacy OS_TENANT_NAME to support cli tools.
stack@DevStack-Controller:~$ glance image-list
+--------------------------------------+---------------------------------+
| ID                                   | Name                            |
+--------------------------------------+---------------------------------+
| 7c5fbab9-c215-47db-9848-66ca5305f0ac | cirros-0.3.4-x86_64-uec         |
| c3f9bfb6-f089-4a0a-b410-e128284761f8 | cirros-0.3.4-x86_64-uec-kernel  |
| 16b087bd-8aa5-48fa-968b-6d8986ee2434 | cirros-0.3.4-x86_64-uec-ramdisk |
+--------------------------------------+---------------------------------+
stack@DevStack-Controller:~$ ll /opt/stack/data/glance/images/
total 33104
drwxr-xr-x 2 stack stack     4096 May 22 01:11 ./
drwxr-xr-x 4 stack stack     4096 May 22 01:04 ../
-rw-r----- 1 stack stack  3740163 May 22 01:11 16b087bd-8aa5-48fa-968b-6d8986ee2434
-rw-r----- 1 stack stack 25165824 May 22 01:11 7c5fbab9-c215-47db-9848-66ca5305f0ac
-rw-r----- 1 stack stack  4979632 May 22 01:11 c3f9bfb6-f089-4a0a-b410-e128284761f8
 
 

O020、理解 Glance的更多相关文章

  1. 理解 Glance - 每天5分钟玩转 OpenStack(20)

    OpenStack 由 Glance 提供 Image 服务. 理解 Image 要理解 Image Service 先得搞清楚什么是 Image 以及为什么要用 Image? 在传统 IT 环境下, ...

  2. 理解glance

    摘要: 本节介绍 OpenStack Image 服务 Glance 的基本概念. OpenStack 由 Glance 提供 Image 服务. 理解 Image 要理解 Image Service ...

  3. 理解 Glance

    OpenStack 由 Glance 提供 Image 服务. 理解 Image 要理解 Image Service 先得搞清楚什么是 Image 以及为什么要用 Image? 在传统 IT 环境下, ...

  4. openstack项目【day23】:glance基础

    本节内容 一 什么是glance 二 为何要有glance 三 glance的功能 四 glance的两个版本 五 镜像的数据存放 六 镜像的访问权限 七 镜像及任务的各种状态 八 glance包含的 ...

  5. glance系列一:glance基础

    一 什么是glance glance即image service,是为虚拟机的创建提供镜像的服务 二 为何要有glance 我们基于openstack是构建基本的Iaas平台对外提供虚拟机,而虚拟机在 ...

  6. openstack之glance基础

    第一:glance是什么? glance是Image service的项目代号,是Openstack的镜像服务组件,为创建虚拟机提供镜像服务. 第二:glance的功能 Glance主要提供了一个虚拟 ...

  7. openstack Glance安装与配置

    一.实验目的: 1.理解glance镜像服务在OpenStack框架中的作用 2.掌握glance服务安装的基本方法 3.掌握glance的配置基本方法 二.实验步骤: 1.在controller节点 ...

  8. 每天5分钟 玩转OpenStack 目录列表

    最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...

  9. 理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)

    作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情: 管理用户及其权限 维护 OpenStack Services 的 Endpoint Authentication(认证) ...

随机推荐

  1. Java环境变量的操作系统原理[浅谈]

    从知乎摘抄过来的文章,图没有复制过来,当作自己的笔记.其中我认为重要的部分(涉及操作系统的)已经加粗了. 本文源自:你应该知道的 Windows 环境变量 - 麓山南人的文章 - 知乎 https:/ ...

  2. legend3---lavarel安装debugbar工具条

    legend3---lavarel安装debugbar工具条 一.总结 一句话总结: ` lavarel插件一般是composer官网下载,然后config/app.php中声明和加别名 ` 直接照官 ...

  3. [常用的Cmd运行命令]

    打开命令提示符,有很多与系统有关的命令都可以在命令提示符中完成,比如输入ipconfig查看电脑的IP osk 打开屏幕键盘 calc  打开计算器的功能 notepad 打开记事本 mspaint ...

  4. javascript之BOM对象总结

    BOM编程基础 全称 Browser Object Model,浏览器对象模型. JavaScript是由浏览器中内置的javascript脚本解释器程序来执行javascript脚本语言的. 为了便 ...

  5. css中设置table中的td内容自动换行

    word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行. 它们的区别就在于: 1,word-break:break-all 例如div宽 ...

  6. Delphi动态创建菜单

    在程序运行中动态创建菜单,主要使用TMeunItem类,所有菜单的条目都是TMenuItem的一个实例. 打开Delphi7集成开发环境,在默认新建工程里,放置一个Button1按钮和MainMenu ...

  7. mysql 索引失效的几种情况+

  8. 转:async异步、thread多线程

    很全面的知识,转来留着 1:https://www.cnblogs.com/xibei/p/11826498.html 2:https://www.cnblogs.com/xibei/p/118742 ...

  9. js动态修改浏览器title

    script标签依据浏览框的失焦获焦进行函数操作(操作简单放到HTML文件下的head标签下就可以) <script> window.onfocus = function () { doc ...

  10. Leetcode之广度优先搜索(BFS)专题-752. 打开转盘锁(Open the Lock)

    Leetcode之广度优先搜索(BFS)专题-752. 打开转盘锁(Open the Lock) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary ...