温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenStack中Glance的作用是什么

发布时间:2021-07-30 17:54:35 来源:亿速云 阅读:649 作者:Leah 栏目:编程语言

今天就跟大家聊聊有关OpenStack中Glance的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Glance 组件

Glance有以下几个组件:

  • glance-api, 接收镜像发现,查询,和存储镜像的api调用。

  • glance-registry, 存储,处理和查询镜像的元数据信息。

  • database, 存储镜像元数据

  • repository, 集成了各种openstack组件,比如文件系统,S3, 以及其它的http镜像存储。

OpenStack中Glance的作用是什么

Glance接收来自终端用户或Nova组件的镜像的API请求,镜像文件可以存储在对象存储服务swift上或者其它存储仓库。

镜像服务支持以下几种后端存储:

  • 文件系统 Openstack的镜像默认存储在文件系统后端。在本地的文件系统里进行保存镜像。

  • 对象存储 swift

  • Block Storage cinder.

  • VMware ESX/ESXi or vCenter.

  • S3 亚马逊的s3等等.

  • HTTP 可以使用英特网上的http服务获取镜像。这种方式只能只读。

  • RADOS Block Device (RBD) 使用Ceph的RBD接口存储到Ceph集群中

  • Sheepdog 专为QEMU/KVM提供的一个分布式存储系统.

  • GridFS 使用MongoDB存储镜像.

Glance 架构

Glance具有客户端 - 服务器体系结构,并提供Rest API,通过Rest API来请求服务。通过客户端发送Rest API的请求,并等待Keystone认证。 Glance域控制器管理所有内部操作,这些分为很多层,每层实现自己的任务。


Glance store是glacne和外部存储后端或者本地文件系统提供通信的一个层,并提供统一的访问接口。数据库为每一个组件提供一个集中的数据访问。

Glance架构由以下几个组件组成:

  • Client - 任何应用都可以通过Client来使用glance服务。

  • REST API – 通过REST方式暴露Glance功能。

  • Database Abstraction Layer (DAL) –统一Glance和数据库交互的一个应用层接口。

  • Glance Domain Controller –完成glance主要的功能的中件间:

  • authorization,notifications, policies, database connections.

  • Glance Store – 集成glance和各种后端存储服务.

  • Registry Layer –可选层,通过使用单独的服务来组织domain和DAL之间的安全通信。

OpenStack中Glance的作用是什么

Glance 格式

当我们上传镜像时,我们需要指定虚拟机镜像的格式。 Glance支持各种格式,如磁盘格式和容器格式。虚拟磁盘类似于物理服务器的引导驱动程序,只会压缩到文件中。不同的虚拟化支持不同的磁盘格式。

磁盘格式
虚拟机镜像的磁盘格式是底层磁盘镜像的格式。以下是OpenStack支持的磁盘格式。

OpenStack中Glance的作用是什么

容器格式

正如OpenStack glance也支持容器格式的概念,它描述了文件格式,并包含关于实际虚拟机的额外元数据。

以下是OpenStack Glance支持的Container格式.

OpenStack中Glance的作用是什么

这里注意下,Glance或其他OpenStack组件目前并不支持使用容器格式。如果不确定,最好使用'bare'作为容器格式,比如我们上传镜像到glance,bare就是没有容器.

使用如下命令上传镜像到glance

root@CONTROLLER:~#glance image-create --name "cirros-0.3.4-x86_64" --file/tmp/images/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-formatbare --visibility public --progress

这里使用image-create来上传镜像,其--name表示上传镜像后镜像的名称,--file表示要上传镜像的路径,磁盘格式--disk-format以qcow2和--container-format为bare。可见性--visibility public表示镜像可以公开访问,进度--pogress表示显示上传进度条。三门峡妇科医院http://www.smxrlyy.com/

OpenStack中Glance的作用是什么

Glance状态流

上传镜像时Glance会显示镜像的各种状态。当我们第一步上传镜像时,第一步就是入队列,经过短时间的验证,镜像进入queued状态,保存镜像并开始上传。之后镜像会进入saving的状态,表示还没有完全上传完毕。镜像完全上传后,状态会变成Active。如果上传失败,将会变成killed或deleted状态。另外我们还可以使用命令停用或者重新激活完全上传成功的镜像。


下图为glance镜像的状态流转图。

OpenStack中Glance的作用是什么

queued

在Glance registry里已经通过验证可以开始存储. 暂时没有镜像数据被上传到glance,镜像大小在上传时设置为0。

saving

表示正在上传镜像到Glance。通过POST /images接口注册镜像,如果有x-image-meta-location http头,这个镜像将不会处于saving状态(因为镜像数据在其他位置已经可用)。

active

表示在glance里是一个完全可用的镜像。当镜像上传成功后,会切换到这个状态。

deactivated

表示不允许任何非管理的用户访问。禁止下载镜像,同时也禁止所以可能获取镜像数据的操作,比如镜像导出和镜像克隆等操作。

killed

表示上传镜像时发生错误,这个镜像不可用。

deleted

Glance仍然保留了镜像的相关信息,但不能在被使用。这个状态下的镜像将会被自动删除。

Deactivatingand Reactivating an image

可以停用镜像。也可以重新激活,或者删除。当管理员对镜像进行更新时,可以先把镜像停用,这样镜像对非管理员用户就不可见了,当更新完成后,可以重新激活镜像,以便用户可以用更新后镜像启动虚拟机。

OpenStack中Glance的作用是什么

我们需要token 和镜像id来停用镜像,以下是停用和重新激活镜像的步骤。

OpenStack中Glance的作用是什么

替换镜像id和token可以执行以下的curl命令

root@CONTROLLER:~#curl -X POST -H 'X-Auth-Token: fbdab45ff753408c9e042aa6892e055b' http://192.168.1.110:9292/v2/images/17449a2e-8711-4700-af8f-439927159b7c/actions/deactivate

这个镜像被停用后,我们使用glance image-list来列出镜像

OpenStack中Glance的作用是什么

因为被停用,我们将会得到这样的输出。.

我们同样可以用curl命令去重新激活镜像,只要修改token,用以下步骤就可以重新激活被停用的镜像。

OpenStack中Glance的作用是什么

root@CONTROLLER:~#curl -X POST -H 'X-Auth-Token: 88878e52d01f43c29a915b2220295641'http://192.168.1.110:9292/v2/images/17449a2e-8711-4700-af8f-439927159b7c/actions/reactivate

下一步执行glance image-list 检查

OpenStack中Glance的作用是什么

Glance 配置文件

Glance-api.conf : Glance api 服务配置文件.

Glance-registry.conf : Glanceregistry服务配置文件,用户存储镜像有关的元数据。

glance-scrubber.conf : 用于清理已删除的镜像的服务。

policy.json : 镜像服务的访问控制。在这里,我们可以定义角色和策略,是OpenStack Glance中的安全特性。

镜像和实例

如前所述,磁盘镜像作为模板存储。镜像服务存储和管理镜像。实例是在计算节点上运行的单个虚拟机,计算节点管理这些实例。用户可以从用同一个镜像启动任意数量的实例。每个启动的实例都是基于镜像的一个副本,所以实例上的任何修改都不会影响到镜像。我们可以对正在运行实例做快照,并可以用快照于启动另一个新的实例。

当我们启动一个实例时,我们需要指定Flavor。Flavor定义了实例可以有多少个虚拟CPU,多大的RAM以及临时磁盘的大小。 OpenStack提供了预定义的flavor,我们也可以新创建和编辑Flavor。


下图显示了启动实例的系统状态。glance store包含一定数量的镜像,计算节点包含可用的vcpu,内存和本地磁盘资源,cinder-volume包含一定数量的volume。OpenStack中Glance的作用是什么

启动实例之前,需要选择一个镜像,flavor和任何可选属性。选定的 flavor提供一个系统盘,标记为vda,另外一个临时盘被标记为vdb,cinder-volume提供的volume被映射到第三个虚拟磁盘并将其称为vdc。

OpenStack中Glance的作用是什么

在该图中,基础镜像从image store复制到本地磁盘。 vda是实例的第一个磁盘,如果镜像文件越小,则通过网络复制的数据越少,实例启动就会更快。实例创建时会创建一块空的临时数据盘vdb,当实例终止时,它将被删除。


vdc使用iSCSI连接到cinder-volume。随后计算节点提供vCPU和内存资源之后,该实例将从vda.启动。该实例运行并更改磁盘上的数据。如果volume store位于单独的网络上,需要在计算节点nova.conf里指定的my_block_storage_ip,将会通过存储网络直接通信。

看完上述内容,你们对OpenStack中Glance的作用是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI