OpenStack.002 基本概念之glance

1  glance的功能

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

  • 如果要安装的系统多了效率就很低
  • 时间长,工作量大
  • 安装完还要进行手工配置,比如安装其他的软件,设置 IP 等
  • 备份和恢复系统不灵活

      云环境下会有很多用户同时创建很多虚拟机,同时还要创建的很快,比如同一时间创建100台虚拟机最多不能超过10分钟,否则顾客体验会很差,所以云环境下需要更高效的解决方案,这就是 Image。Image 是一个模板,里面包含了基本的操作系统和其他的软件,不含有唯一标识的设置,比如MAC地址与IP地址等。对于公有云,每种操作系统都应该至少有一个image模板,而私有云不做限制。但是为了使用方便,当把公有云的image安装了自己需要的软件之后可以拍摄快照,把快照镜像作为自己的私有镜像来使用。

      Glance提供 Image Service服务,功能是管理 Image,让用户能够发现、获取和保存 Image。提供 REST  API (request应用接口)让用户能够查询和获取 image 的元数据(描述数据的数据)和 image 本身支持多种方式存储 image,包括普通的文件系统、Swift、Amazon S3 等对 Instance 执行 Snapshot 创建新的 image。

      glance只记录镜像有没有,在哪,但是对镜像本身不做管理。当接收到请求之后会分解请求,请求正确且通过keystone认证之后就会到数据库中找到镜像,然后告知用户镜像在哪里,至于用户拿到的镜像能不能使用glance是不管的。

2  glance架构

  • registry用于记录元数据,说明了数据的属性,数据名是啥,多大,在哪
  • DB  database,Image 的 metadata 会保持到 database 中,默认是 MySQL。在控制节点上可以查看 glance 的 database 信息
  • store backend­­ Glance 自己并不存储 image。真正的 image 是存放在 backend 中的。Glance 支持多种 backend,包括:A directory on a local file system(这是默认配置)、GridFS、Ceph RBD、Amazon S3、Sheepdog、OpenStack Block Storage (Cinder)、OpenStack Object Storage (Swift)、VMware ESX
  • 具体使用哪种 backend,是在 /etc/glance/glance­api.conf 中配置的情况。
#vim /etc/glance/glance-api.conf

[glance_store]

filesystem_store_datadir = 

  • openstack服务之间的通信是通过API进行的,API的地址通常都是endpoint;
  • A client指的是任何使用glance服务器的应用程序;
  • REST  API指的是glance提供REST访问的API;
  • Database Abstraction Layer(DAL,数据库抽象层),同一glance和数据库之间的通信的应用程序编程接口。有了DAL,当用户有更改数据库内容的请求时,可能会因为DAL定义的限制而无法更改,提高了数据库的安全性;
  • glance domain controller 域控制器,实现主要的中间件功能,如授权、通知、策略与数据库连接;
  • glance store ,用于组织glance和各种数据存储之间的交互;
  • registry layer注册表层,用于通过使用单独的服务来组织域和DAL之间的安全通信的可选层。
  • #glance image-list  或 #ls   -l    // 列出所有的镜像

3  镜像磁盘的格式

      重点记住,Raw是裸格式,以前使用的格式;qcow2,VHD,aki,ari,vmdk。可以使用qemu-image进行镜像的格式转换。

      需要注意的是,在拷贝镜像给被人使用之前,要对镜像磁盘进行清理,把之前做的操作都清理掉,避免隐私泄露。在克隆虚拟机时也要把MAC地址更改了之后才能进行克隆,克隆之后的网卡也可能有问题。尤其是在使用yum源时。总会出现http 404错误。

4  镜像文件的访问权限

Public 公共的:可以被所有的Tenant使用。

Private 私有的/项目的:只能被Image Owner所在的Tenant使用。

Shared 共享的:一个非公共的Image可以共享给指定的Tenant,通过member­*操作来实现。

Protected 受保护的:Protected Image不能被删除。

1)Image的状态类型

Queued:没有上传Image数据,只SQL Database中存有该镜像的元数据(标识该镜像的ID)。

Saving:标识镜像正在上传Image。

Active:正常状态,标识镜像在Glance中完全可用。

Deleted/pending_delete: 已删除/等待删除的Image。

Killed:标识镜像上传过程中出错,Image元数据不正确,镜像完全不可用,等待被删除。

注意:只有active状态的镜像是可以使用的,其他所有状态的都不行。但是不是所有的active状态的镜像都能使用,如果镜像本身是坏的就不能使用。

2)创建images

      创建Image的两种方法 Web UI(Horizon)和命令行 CLI (推荐),API v1已经在Newton版本中被删除了。

      Web UI 的功能没有 CLI 全,有些操作只提供了 CLI。即便是都有的功能,CLI 可以使用的参数更多;一般来说,CLI 返回结果更快,操作起来更高效;CLI 可放在脚本中进行批处理;有些耗时的操作 CLI 更合适,比如创建镜像。

自己做的镜像在云环境下不一定能使用,可以直接把官网的云镜像拿来用。我使用cirros用于测试,因为这个镜像很小。

3)上传镜像

#glance image-create -–name cirros -–file ~/cirros0.3.4-x86_64-disk.img -–disk-fornat qcow2 -–container-format bare -–progress

注:使用该命令传镜像


转载请注明出处,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_35550345/article/details/87797386
今日推荐