OpenStack之Glance

news2024/11/18 23:22:30

一、概述

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

同时开启第二个窗口查验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1505846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java.mysql】——增删查改(CRUD)之 增查(CR) 附加数据库基础知识

目录 🚩数据库操作 🎈创建数据库 🎈使用数据库 🎈删除数据库 🚩数据类型 🚩表的操作 🎈创建表 🌈查看表结构 🎈删除表 ❗练习(综合运用) 🖥️新增…

Linux文件与文件系统的压缩

文章目录 Linux文件与文件系统的压缩Linux系统常见的压缩命令gzip,zcat/zmore/zless/zgrepbzip2,bzcat/bzmore/bzless/bzgreppxz,xzcat/xzmore/xzless/xzgrepgzip,bzip2,xz压缩时间对比打包命令:tar打包命令…

三、实战篇 优惠券秒杀

源码仓库地址:gitgitee.com:chuangchuang-liu/hm-dingping.git 1、全局唯一ID 数据库默认自增的存在的问题: id增长规律明显受单表数据量的限制 场景一分析:id如果增长规律归于明显,容易被用户或者商业对手猜测出一些敏感信息&…

【JavaScript】JavaScript 变量 ① ( JavaScript 变量概念 | 变量声明 | 变量类型 | 变量初始化 | ES6 简介 )

文章目录 一、JavaScript 变量1、变量概念2、变量声明3、ES6 简介4、变量类型5、变量初始化 二、JavaScript 变量示例1、代码示例2、展示效果 一、JavaScript 变量 1、变量概念 JavaScript 变量 是用于 存储数据 的 容器 , 通过 变量名称 , 可以 获取 / 修改 变量 中的数据 ; …

C语言——函数指针——函数指针变量(详解)

函数指针变量 函数指针变量的作用 函数指针变量是指向函数的指针,它可以用来存储函数的地址,并且可以通过该指针调用相应的函数。函数指针变量的作用主要有以下几个方面: 回调函数:函数指针变量可以作为参数传递给其他函数&…

VBA_NZ系列工具NZ02:VBA读取PDF使用说明

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…

C#MQTT编程10--MQTT项目应用--工业数据上云

1、文章回顾 这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们&#x…

AOP切面编程,以及自定义注解实现切面

AOP切面编程 通知类型表达式重用表达式切面优先级使用注解开发,加上注解实现某些功能 简介 动态代理分为JDK动态代理和cglib动态代理当目标类有接口的情况使用JDK动态代理和cglib动态代理,没有接口时只能使用cglib动态代理JDK动态代理动态生成的代理类…

Autosar教程-Mcal教程-GPT配置教程

3.3GPT配置、生成 3.3.1 GPT配置所需要的元素 GPT实际上就是硬件定时器,需要配置的元素有: 1)定时器时钟:定时器要工作需要使能它的时钟源 2)定时器分步:时钟源进到定时器后可以通过分频后再给到定时器 定时器模块选择:MCU有多个定时器模块,需要决定使用哪个定时器模块作…

基于Yolo5模型的动态口罩佩戴识别安卓Android程序设计

禁止完全抄袭,引用注明出处。 下载地址 前排提醒:文件还没过CSDN审核,GitHub也没上传完毕,目前只有模型的.pt文件可以下载。我会尽快更新。 所使用.ptl文件 基于Yolo5的动态口罩佩戴识别模型的pt文件资源-CSDN文库 项目完整文…

使用 Docker 部署 Next Terminal 轻量级堡垒机

1)Next Terminal 介绍 官网:https://next-terminal.typesafe.cn/ GitHub:https://github.com/dushixiang/next-terminal 想必经常玩服务器的都了解过 堡垒机,类似于跳板机,但与跳板机的侧重点不同。堡垒机的主要功能是…

python编程从入门到实践答案二

python编程从入门到实践 第五章 if语句1.条件测试:2.更多的条件测试:3.外星人颜色#1:4. 外星人颜色#2:5. 外星人颜色#3:6. 人生的不同阶段:7. 喜欢的水果:8. 以特殊方式跟管理员打招呼&#xff…

前端加密面面观:常见场景与方法解析

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

单链表(下)

我们在单链表(上)中了解了一些需要实现的函数,这一篇就让我们一起来实现。 1.创建新节点 2.打印 3.尾插 4.头插 5.尾删 6.头删 7.查找 8.计算节点个数 9.在指定位置之前插入数据 10.在指定位置之前插入数据 11.删除指定位置的节点 12.删除指…

RIPEMD算法:多功能哈希算法的瑰宝

title: RIPEMD算法:多功能哈希算法的瑰宝 date: 2024/3/10 17:31:17 updated: 2024/3/10 17:31:17 tags: RIPEMD起源算法优势安全风险对比SHA优于MD5应用领域工作原理 一、RIPEMD算法的起源与历程 RIPEMD(RACE Integrity Primitives Evaluation Messag…

阿里云服务器多少钱一年?价格表新鲜出炉(2024)

2024阿里云服务器优惠活动政策整理,阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年,轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,云服务器8核…

维修家用美容射频美容仪

今天收到客户寄过来的一款家用射频美容仪。根据客户的反馈,插电开机没反应,经过排查,原来是12v-2A电源坏了。给客户更换一个新电源就可以了。

Mysql 死锁案例2-间隙锁与意向插入锁冲突

死锁复现 CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),KEY c (c) ) ENGINEInnoDB DEFAULT CHARSETutf8;/*Data for the table t */insert into t(id,c,d) values (0,0,0),(5,5,5),(10,10,10) 事务1事务2T1START …

【Linux】常用操作命令

目录 基本命令关机和重启帮助命令 用户管理命令添加用户:useradd 命令修改密码:passwd 命令查看登录用户:who 命令查看登录用户详细信息 :w切换用户 目录操作命令cdpwd命令目录查看 ls [-al] 目录操作【增,删,改&#…

Jenkins 部署 RuoYi

目录 1、项目介绍 2、部署若依 clone 源代码 导入数据库到 node-16 修改 RuoYi 配置文件 推送 RuoYi 项目至 Gitlab 3、配置 Jenkins 配置本地 Maven Jenkins 配置 Maven 新建 Maven 项目 编写构建后的脚本 Jenkins 构建后执行脚本 4、Jenkins 传递参数 设置项目部…