OpenStack之Glance

一、概述

Glance(OpenStack Image Service)是一个提供发现,注册,和下载镜像的服务。Glance 提供了虚拟机镜像的集中存储。通过 Glance 的 RESTful API,可以查询镜像元数据、下载镜像。虚拟机的镜像可以很方便的存储在各种地方,从简单的文件系统到对象存储系统(比如 OpenStack Swift)。

二、GLance功能

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

    1)安装的系统多了,效率就低了;

    2)时间长,工作量大;

    3)安装完还需要进行手动配置,比如设置IP和安装其他软件等;

    4)备份和恢复系统不灵活;

  2、在glance里image镜像被当做模板来存储;image是一个模块,包含了基本的操作系统和其他软件。

  3、 GLance提供image Service服务,功能就是管理image,让用户能够发现、获取和保存image。(GLance是管理已安装的系统文件)

4、glance具体功能如下:

    a、提供REST API让用户能够查询和获取image的元数据和image本身

    b、支持多种方式存储image,包括普通的文件系统、Swift 、Amazon S3等

    c、对Instance执行Snapshot创建新的image

 注:GLance只查看镜像本身的数据,不关注镜像的其他情况,比如:镜像存储的路径,镜像是否存在等等

三、GLance架构

(1)glance-api 
glance-api 是系统后台运行的服务进程。 对外提供 RESTFUL API,响应镜像查询、获取和存储的调用。glance-api 不会真正处理请求。

  • 如果是与镜像 metadata(元数据)相关的操作,glance-api 会把请求转发给 glance-registry;
  • 如果是与镜像自身存取相关的操作,glance-api 会把请求转发给该 image 的存储后端。

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

1、用户发送请求到glance,glance内部逻辑上通过REST API   AuthZ 中间件    keystone进行身份验证——>中间件  keystore 进行身份验证

2、 keystone验证通过后,由Glance Domain Controller判

断:

1)如果是元数据相关的操作,将把请求转发给glance-registry

写和上传等对数据库有修改的请求都要经过Registry Layer,

只有符合其设置的条件的命令才能通过Database Abstraction

Layer 到达数据库,而对数据库的读操作则不用通过Registry

Layer ,直接到达数据

2)如果是镜像存储相关的,则转到Glance Store,由Glance Store Drives     AuthN    keystone验证 ,通过后到达后端存储

3、具体解释

1)A client:任何使用GLance服务器的应用程序;

2)REST API:GLance提供REST访问API;

3)Database Abstraction Layer(DAL)同一GLance和数据库之间

通信的应用程序编程接口(API)

4)GLance Domain Controller:域控制器,实现主要的中间件功能;比如授权,通知,策略,数据库连接;

5)Glance Store:用于组织Glance和各种数据存储之间的交互;

6)Registry Layer(注册表层):用于通过使用单独的服务来组织域和DAL之间的安全通信的可选层;

4、镜像磁盘文件格式

5.Database --image的metadata会保持到database中默认是                                                                                          (在控制节点上可以查看Glance的database信息)

6.Store backend  --Glance自己并不存储image,真正的image是存放在backend中的;

   Glance支持的多种backend,包括:

     *.A directory on啊localfile system(默认设置)

     *.GridFS   使用MongoDB存储镜像。

     *.Ceph RBD   使用Ceph的RBD接口存储到Ceph集群中

     *.Amazon S3   亚马逊的S3

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

     *.Openstack Block Storage(Cinder)

     *.OpenStack Object Stortage(Swif)

     *.VMware ESX

    注:具体使用哪种backend,是在/etc/glance/glance-api.conf中配置的

四、镜像文件的访问权限

  1.Public公用的:可被所有的Tenant使用

  2.Private私有的/项目的:只能被image Owner所在的Tenan

使用

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

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

五、image的状态类型

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

2.Saving:标识镜像正在上传image

3.Active:正常状态,标识镜像在Glance中完全使用

4.Deleted/pending_delete:已删除/等待删除的image

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

6.deletedGlance已经保存了镜像的信息,但是无法继续使用。在此状态下的镜像稍后将会被自动清除。

7.pending_delete 类似于deleted,区别在于Glance还没有移除镜像数据。在此状态下的镜像是可以被恢复的。

六、创建images

    有两种方法:Web UI(Horizon)和命令行CLI(推荐使用),API v1已经在Newton版本中被删除了。

    *.Web UI的功能没有CLI全,有些操作只提供了CLI。即便是都有的功能,CLI可以使用的参数更多;

    *.一般来说,CLI返回结果更快,操作起来更高效;

    *.CLI可放在脚本中进行批处理;

    *.有些耗时的操作CLI更合适,比如创建镜像;

  注:glance image-creat -name cirros --file ~/cirros0.3.4-x86_64-disk.img --disk-fromat qcow2 --contatiner-format bare --progress

Linux Cloud images

   CentOS: CentOS6 CentOS7

   CirrOS:Download Test image qcow2 formation for QEMU and KVM (crrios cubswin

   Debian:Download (debian)

   Fedora:Download

   Windows:Downloadruns on Hyper-V,KVM, and XenServer/XCP

七、实验
Base 节点上,创建glance数据库并设置数据库的访问权限即所有客户端都可以访问数据库

Ctrl节点上

初始化admin环境变量,以admin身份运行命令

创建glance用户

给project和glance用户指定角色admin      

创建glance镜像服务    

创建glance镜像服务组件的endpoint

yum install openstack-glance

编写配置文件 vim /etc/glance/glance-api.conf

[database] 配置数据库连接

connection = mysql+pymysql://glance:GLANCE_DBPASS@base.nba.com/glance

[keystone_authtoken] 配置keystone身份认证服务

auth_uri = http://ctrl.nba.com:5000

auth_url = http://ctrl.nba.com:35357

memcached_servers = base.nba.com:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = glance

password = GLANCE_PASS

[paste_deploy]

flavor = keystone

[glance_store]配置虚拟机镜像的存储形式和存储路径

stores = file,http

default_store = file

filesystem_store_datadir = /var/lib/glance/images/

openstack image create "cirros" \

--file cirros-0.3.5-x86_64-disk.img \

--disk-format qcow2 --container-format bare \

--public

初始化glance数据库

启动glance api

查验生成的21张表 在base节点上

启动glance-api和registry 服务

下载镜像

上传镜像,镜像磁盘格式为qcow2 访问权限为public

同时开启第二个窗口查验

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值