OpenStack- 基本概念之glance
1 glance的功能传统IT 环境下,安装一个系统是要么从安装 CD 从头安装,要么用 Ghost 等克隆工具恢复。有如下几个问题:如果要安装的系统多了效率就很低时间长,工作量大安装完还要进行手工配置,比如安装其他的软件,设置IP 等备份和恢复系统不灵活云环境下会有很多用户同时创建很多虚拟机,同时还要创建的很快,比如同一时间创建100台虚拟机最多不能超过1...
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/glanceapi.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
注:使用该命令传镜像
转载请注明出处,谢谢!
更多推荐
所有评论(0)