玩转OpenStack - 19理解 Glance

2023-12-11 22:08

本文主要是介绍玩转OpenStack - 19理解 Glance,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenStack 由 Glance 提供 Image 服务。

理解 Image

要理解 Image Service 先得搞清楚什么是 Image 以及为什么要用 Image?

在传统 IT 环境下,安装一个系统是要么从安装 CD 从头安装,要么用 Ghost 等克隆工具恢复。这两种方式有如下几个问题:

  1. 如果要安装的系统多了效率就很低

  2. 时间长,工作量大

  3. 安装完还要进行手工配置,比如安装其他的软件,设置 IP 等

  4. 备份和恢复系统不灵活

云环境下需要更高效的解决方案,这就是 Image。 Image 是一个模板,里面包含了基本的操作系统和其他的软件。

举例来说,有家公司需要为每位员工配置一套办公用的系统,一般需要一个 Win7 系统再加 MS office 软件。 OpenStack 是这么玩的:

  1. 先手工安装好这么一个虚机

  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 自身存取相关的操作,glance-api 会把请求转发给该 image 的 store backend。

在控制节点上可以查看 glance-api 进程

glance-registry

glance-registry 是系统后台运行的服务进程。 负责处理和存取 image 的 metadata,例如 image 的大小和类型。

在控制节点上可以查看 glance-registry 进程

Glance 支持多种格式的 image,包括

Database

Image 的 metadata 会保持到 database 中,默认是 MySQL。 在控制节点上可以查看 glance 的 database 信息

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 中配置的
在我们的 devstack 环境中,image 存放在控制节点本地目录 /opt/stack/data/glance/images/ 中

其他 backend 的配置可参考http://docs.openstack.org/liberty/config-reference/content/configuring-image-service-backends.html

查看目前已经存在的 image

查看保存目录

每个 image 在目录下都对应有一个文件,文件以 image 的 ID 命名。

下节我们来实际操作 Glance。

这篇关于玩转OpenStack - 19理解 Glance的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/482266

相关文章

19.手写Spring AOP

1.Spring AOP顶层设计 2.Spring AOP执行流程 下面是代码实现 3.在 application.properties中增加如下自定义配置: #托管的类扫描包路径#scanPackage=com.gupaoedu.vip.demotemplateRoot=layouts#切面表达式expression#pointCut=public .* com.gupaoedu

回调的简单理解

之前一直不太明白回调的用法,现在简单的理解下 就按这张slidingmenu来说,主界面为Activity界面,而旁边的菜单为fragment界面。1.现在通过主界面的slidingmenu按钮来点开旁边的菜单功能并且选中”区县“选项(到这里就可以理解为A类调用B类里面的c方法)。2.通过触发“区县”的选项使得主界面跳转到“区县”相关的新闻列表界面中(到这里就可以理解为B类调用A类中的d方法

如何理解redis是单线程的

写在文章开头 在面试时我们经常会问到这样一道题 你刚刚说redis是单线程的,那你能不能告诉我它是如何基于单个线程完成指令接收与连接接入的? 这时候我们经常会得到沉默,所以对于这道题,笔者会直接通过3.0.0源码分析的角度来剖析一下redis单线程的设计与实现。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源

MySQL理解-下载-安装

MySQL理解: mysql:是一种关系型数据库管理系统。 下载: 进入官网MySQLhttps://www.mysql.com/  找到download 滑动到最下方:有一个开源社区版的链接地址: 然后就下载完成了 安装: 双击: 一直next 一直next这一步: 一直next到这里: 等待加载完成: 一直下一步到这里

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<

isa指针的理解

D3实例isa指向D3类对象。D3类的话isa指向D3元类对象。D3元类保存类中的方法调度列表,包括类方法和对象方法

WeakHashMap深入理解

这一章,我们对WeakHashMap进行学习。 我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。 第1部分 WeakHashMap介绍 第2部分 WeakHashMap数据结构 第3部分 WeakHashMap源码解析(基于JDK1.6.0_45) 第4部分 WeakHashMap遍历方式 第5部分 WeakHashMap示例

netty中常用概念的理解

目录   目录ChannelHandler ChannelHandler功能介绍通过ChannelHandlerAdapter自定义拦截器ChannelHandlerContext接口ChannelPipeline ChannelPipeline介绍ChannelPipeline工作原理ChannelHandler的执行顺序   在《Netty权威指南》(第二版)中,ChannelP

安全科普:理解SSL(https)中的对称加密与非对称加密

今天刚好为站点的后台弄了下https,就来分享我了解的吧。 密码学最早可以追溯到古希腊罗马时代,那时的加密方法很简单:替换字母。 早期的密码学:   古希腊人用一种叫 Scytale 的工具加密。更快的工具是 transposition cipher—:只是把羊皮纸卷在一根圆木上,写下信息,羊皮纸展开后,这些信息就加密完成了。 虽然很容易被解密,但它确实是第一个在现实中应用加密的

java同步锁以及级别升级的理解

首先简单说下先偏向锁、轻量级锁、重量级锁三者各自的应用场景: 偏向锁:只有一个线程进入临界区;轻量级锁:多个线程交替进入临界区;重量级锁:多个线程同时进入临界区。 还要明确的是,偏向锁、轻量级锁都是JVM引入的锁优化手段,目的是降低线程同步的开销。比如以下的同步代码块:   synchronized (lockObject) { // do something } 上述同步代码块