openstack之glance①

网友投稿 314 2022-11-01

openstack之glance①

Glance

文章目录

​​Glance​​

​​一、Glance的概述​​​​二、Glance的组件​​​​三、Glance的工作流程​​​​四、Glance安装配置(此处将glance服务配置在控制节点上)​​​​五、Glance配置总结​​

一、Glance的概述

Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是为该选择提供不同的操作系统镜像。

二、Glance的组件

Glance-AP主要用来响应各种REST请求然后通过其它模块(主要是glance-registry组件和后端存储接口)完成镜像的上传、删除、查询等操作。可以简单的再分为两部分:一层中间件,它主要是做一些对请求的解析工作(如分析出版本号), 另外一部分提供实际的服务(如与镜像上传下载的后端存储接口交互)。默认绑定端口是9292Glance-Registry镜像注册服务用于提供镜像元数据的REST接口。主要工作是存储或者获取镜像的元数据,与MySQL数据库进行交互。也可以简单的再细分为两部分,API和具体的Server。元数据是指镜像相关的一些信息(如id,size, status,location,checksum,min_disk,min_ram,owner等)真正的镜像数据保存在实际所使用的后端存储里(如Swift,S3,Filesystem等)。默认绑定的端口是9191。Image Store严格来说Image Store不属于Glance的组件,这里把它单独分出来只是为了方便理解,它只是一个接口层,提供镜像存储和查询的接口。具体的实现则需要外部存储(Swift,S3)的支持。

三、Glance的工作流程

①Glance-api接收REST API的请求,类似nova-api ②Glance-api在功能上与nova-api十分类似,都是接收REST API请求,然后通过其他模块(glance-registry及Image Store)来完成诸如镜像的查找、‘获取、上传、删除等操作,api默认的监听端口为9292 ③Glance-registry用于与MySQL数据库交互,用于存储或获取镜像的元数据(metadata);提供镜像元数据相关的REST接口,通过glance-registry,可以向数据库写入或获取镜像的各种数据,glance-registry的监听端口为9191。glance的数据库中有两张表,一张是image表,另一张是imgage propetry表。image表保存了镜像的格式、大小等信息;而image propetry表则主要保存镜像的定制化信息。可以通过:mysql -h 192.168.56.11 -uglance -pglance -e "use glance;show tables;"查看表信息 ④image store是一个存储的接口层,通过这个接口,glance可以获取镜像,image store支持有Amazon的S3,OpenStack本身的swift,还有诸如ceph,GlusterFS等分布式存储。Image Store仅仅是一个接口处,具体的实现需要外部的存储支持。

总结: glance-api 是系统后台运行的服务进程。 对外提供 REST API,响应 image 查询、获取和存储的调用。

glance-api 不会真正处理请求。 如果是与 image metadata(元数据)相关的操作,glance-api 会把请求转发给 glance-registry; 如果是与 image 自身存取相关的操作,glance-api 会把请求转发给该 image 的 store 。

四、Glance安装配置(此处将glance服务配置在控制节点上)

(1)创建“glance”服务实体

[root@linux-node1 ~]# openstack service create --name glance \> --description "OpenStack Image" image

(2)创建镜像服务的 API 端点:

[root@linux-node1 ~]# openstack endpoint create --region RegionOne image public ~]# openstack endpoint create --region RegionOne image internal ~]# openstack endpoint create --region RegionOne image admin /etc/glance/glance-api.conf 并完成如下动作:

在 [database] 部分,配置数据库访问:

[database]...connection = mysql+pymysql://glance:glance@192.168.56.11/glance同步修改/etc/glance/glance-registry.conf在 [database] 部分,配置数据库访问:[database]...connection = mysql+pymysql://glance:glance@192.168.56.11/glance

(4)同步镜像服务数据库并查看创建是否成功(此处有WARNING可以忽略):

[root@linux-node1 ~]# su -s /bin/sh -c "glance-manage db_sync" glanceOption "verbose" from group "DEFAULT" is deprecated for removal. Its value may be silently ignored in the future./usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1171: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade expire_on_commit=expire_on_commit, _conf=conf)/usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u"Duplicate index 'ix_image_properties_image_id_name' defined on the table 'glance.image_properties'. This is deprecated and will be disallowed in a future release.") result = self._query(query)[root@linux-node1 ~]# mysql -h 192.168.56.11 -uglance -pglance -e "use glance;show tables;"

(5)编辑文件 /etc/glance/glance-api.conf 并完成如下动作:

在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:[keystone_authtoken]...auth_uri = = = 192.168.56.11:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = glancepassword = glance[paste_deploy]...flavor = keystone同步修改/etc/glance/glance-registry.conf在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:[keystone_authtoken]...auth_uri = = = 192.168.56.11:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = glancepassword = glance[paste_deploy]...flavor = keystone

(6)编辑文件 /etc/glance/glance-api.conf 并完成如下动作:

在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:只需要打开注释[glance_store]...stores = file,= filefilesystem_store_datadir = /var/lib/glance/images/

到此,glance-api和glance-registry都已经配置完毕 查看glance-api和registry的所有配置

[root@linux-node1 ~]# grep "^[a-z]" /etc/glance/glance-api.conf connection = mysql+pymysql://glance:glance@192.168.56.11/glancestores = file, \# 配置本地文件系统和镜像存储位置default_store = file \#默认存储文件类型filesystem_store_datadir = /var/lib/glance/images \#默认镜像存储位置auth_uri = = = 192.168.56.11:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = glancepassword = glanceflavor = keystone \#配置认证服务访问[root@linux-node1 ~]# grep "^[a-z]" /etc/glance/glance-registry.conf connection = mysql+pymysql://glance:glance@192.168.56.11/glanceauth_uri = = = 192.168.56.11:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = glancepassword = glanceflavor = keystone

(7)完成安装和配置,启动glance服务

[root@linux-node1 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service[root@linux-node1 ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service

(8)验证操作 ①获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

[root@linux-node1 ~]# source admin-openstack

②下载源镜像

[root@linux-node1 ~]# wget QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它: 注: 把镜像放到任意目录下,执行以下命令,进入那个目录,否则要加绝对路径

[root@linux-node1 ~]# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public

检查上传结果:

[root@linux-node1 ~]# openstack image list

五、Glance配置总结

①glance服务需要使用数据库,需要在配置文件中配置数据库连接; ②glance服务使用需要在keystone上进行注册认证,需要在配置文件中配置keystone的验证参数和方式,以及token的存储指定在memcache服务器上; ③glance服务的镜像需要配置存储的类型以及路径。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现后台处理base64图片还原为文件
下一篇:【ROC-RK3568-PC开发板试用体验】RK356*平台rockit视频处理接口
相关文章

 发表评论

暂时没有评论,来抢沙发吧~