Glance相关介绍


image Service 的功能是管理 Image,让用户能够发现、获取和保存 Image。
在 OpenStack 中,提供 Image Service 的是 Glance,其具体功能如下:
1. 提供 REST API 让用户能够查询和获取 image 的元数据和 image 本身
2. 支持多种方式存储 image,包括普通的文件系统、Swift、Amazon S3 等
3. 对 Instance 执行 Snapshot 创建新的 image

上面是 Glance 的架构图

glance-api
glance-api 是系统后台运行的服务进程。 对外提供 REST API,响应 image 查询、获取和存储的调用。
glance-api 不会真正处理请求。 如果是与 image metadata(元数据)相关的操作,glance-api 会把请求转发给 glance-registry;
如果是与 image 自身存取相关的操作,glance-api 会把请求转发给该 image 的 store backend。

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

glance-store
image 的元数据 通过glance-registry 存放在 db 中; image 的chunk 数据 通过 glance-store 存放在各种 backend store 中,并从中获取
支持多种方式存储 image,包括普通的文件系统、Swift、Amazon S3、GlusterFS 等

registry在api后面,它的作用和mysql打交道,存储镜像的属性registry监听9191端口,glance-api监听9292端口
配置glance服务,要配置2个配置文件,1个api和1个registry
glance不需要配置消息队列,但是需要配置keystone
镜像默认在下面路径下,这个目录是 /var/lib/glance/images/。

安装并配置组件


安装软件包
[root@linux-node1 ~]# yum install openstack-glance -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror01.idc.hinet.net
* extras: mirrors.163.com
* updates: mirrors.163.com
Package 1:openstack-glance-12.0.0-1.el7.noarch already installed and latest version
Nothing to do
[root@linux-node1 ~]#

  

配置部分---数据库部分

1、编辑文件 /etc/glance/glance-api.conf:
在 [database] 部分,配置数据库访问(大概在641行):

[root@linux-node1 ~]# vim /etc/glance/glance-api.conf
connection = mysql+pymysql://glance:glance@192.168.56.11/glance

2、编辑文件 /etc/glance/glance-registry.conf:
在 [database] 部分,配置数据库访问(382行左右):

[root@linux-node1 ~]# vim /etc/glance/glance-registry.conf
connection = mysql+pymysql://glance:glance@192.168.56.11/glance
3、同步数据库。
有警告,openstack有警告没关系,只要不是error即可
[root@linux-node1 ~]# su -s /bin/sh -c "glance-manage db_sync" glance
Option "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:1056: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade
expire_on_commit=expire_on_commit, _conf=conf)
[root@linux-node1 ~]#
检查同步结果
[root@linux-node1 ~]# mysql -h192.168.56.11 -uglance -pglance -e "use glance;show tables;"
+----------------------------------+
| Tables_in_glance |
+----------------------------------+
| artifact_blob_locations |
| artifact_blobs |
| artifact_dependencies |
| artifact_properties |
| artifact_tags |
| artifacts |
| image_locations |
| image_members |
| image_properties |
| image_tags |
| images |
| metadef_namespace_resource_types |
| metadef_namespaces |
| metadef_objects |
| metadef_properties |
| metadef_resource_types |
| metadef_tags |
| migrate_version |
| task_info |
| tasks |
+----------------------------------+
[root@linux-node1 ~]#

  

 

配置部分---设置keystone

编辑文件 /etc/glance/glance-api.conf 并完成如下动作
在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:

[keystone_authtoken]下添加下面参数

auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance

下面模块下改成如下

以上操作,配置文件更改的部分如下
[root@linux-node1 ~]# grep -n "^[a-Z]"  /etc/glance/glance-api.conf
641:connection = mysql+pymysql://glance:glance@192.168.56.11/glance
1112:auth_uri = http://192.168.56.11:5000
1113:auth_url = http://192.168.56.11:35357
1114:memcached_servers = 192.168.56.11:11211
1115:auth_type = password
1116:project_domain_name = default
1117:user_domain_name = default
1118:project_name = service
1119:username = glance
1120:password = glance
1695:flavor = keystone
[root@linux-node1 ~]#

  

编辑/etc/glance/glance-registry.conf
在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问,配置内容和上面一样:

glance-registry.conf 修改的地方
[root@linux-node1 ~]# grep -n "^[a-Z]"  /etc/glance/glance-registry.conf
382:connection = mysql+pymysql://glance:glance@192.168.56.11/glance
837:auth_uri = http://192.168.56.11:5000
838:auth_url = http://192.168.56.11:35357
839:memcached_servers = 192.168.56.11:11211
840:auth_type = password
841:project_domain_name = default
842:user_domain_name = default
843:project_name = service
844:username = glance
845:password = glance
1402:flavor = keystone
[root@linux-node1 ~]#

  

 

配置部分----设置镜像位置

/etc/glance/glance-api.conf
在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置
在下面模块下取消这3行的注释,可以通过搜索定位

[glance_store]
...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
 
 
最终/etc/glance/glance-api.conf改动如下
[root@linux-node1 ~]# grep -n "^[a-Z]"  /etc/glance/glance-api.conf
641:connection = mysql+pymysql://glance:glance@192.168.56.11/glance
741:stores = file,http
746:default_store = file
1025:filesystem_store_datadir = /var/lib/glance/images
1112:auth_uri = http://192.168.56.11:5000
1113:auth_url = http://192.168.56.11:35357
1114:memcached_servers = 192.168.56.11:11211
1115:auth_type = password
1116:project_domain_name = default
1117:user_domain_name = default
1118:project_name = service
1119:username = glance
1120:password = glance
1695:flavor = keystone
[root@linux-node1 ~]#

  

 启动glance相关服务


glance配置部分完毕,可以启动glance服务了
[root@linux-node1 ~]# systemctl enable openstack-glance-api.service  openstack-glance-registry.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-api.service to /usr/lib/systemd/system/openstack-glance-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-registry.service to /usr/lib/systemd/system/openstack-glance-registry.service.
[root@linux-node1 ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service
[root@linux-node1 ~]#

查看监听状态
registry监听9191端口
glance-api监听9292端口

[root@linux-node1 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9191 0.0.0.0:* LISTEN 9299/python2
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 7352/httpd
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 4916/beam.smp
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1615/mysqld
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 7479/memcached
tcp 0 0 0.0.0.0:9292 0.0.0.0:* LISTEN 9298/python2
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7352/httpd
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1745/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1160/sshd
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 4916/beam.smp
tcp 0 0 0.0.0.0:35357 0.0.0.0:* LISTEN 7352/httpd
tcp6 0 0 :::5672 :::* LISTEN 4916/beam.smp
tcp6 0 0 :::22 :::* LISTEN 1160/sshd
[root@linux-node1 ~]#

  

在keystone上做服务注册


下面3步在之前都已经做了

1、之前glance的数据库创建完毕
2、 glance 用户创建完毕
openstack user create --domain default --password-prompt glance
3、添加 admin 角色到 glance 用户和 service 项目上。
openstack role add --project service --user glance admin

接下来创建实体
1、创建glance服务实体,操作之前先source环境变量

[root@linux-node1 ~]# source admin-openstack.sh
[root@linux-node1 ~]# openstack service create --name glance --description "OpenStack Image" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image |
| enabled | True |
| id | a7cdacff3e804796a7dbf466c616c5ec |
| name | glance |
| type | image |
+-------------+----------------------------------+
[root@linux-node1 ~]#

  

2、创建镜像服务的 API 端点
public,internal,admin 这3个,端口一致
(keystone的admin端口特殊,和public以及internal不一样)

公共的

[root@linux-node1 ~]# openstack endpoint create --region RegionOne  image public http://192.168.56.11:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 4bfca46d433c4f2ebfc2c57ab6f50004 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | a7cdacff3e804796a7dbf466c616c5ec |
| service_name | glance |
| service_type | image |
| url | http://192.168.56.11:9292 |
+--------------+----------------------------------+
[root@linux-node1 ~]#

内部的  

[root@linux-node1 ~]# openstack endpoint create --region RegionOne  image internal http://192.168.56.11:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c16ae753c62c427194ae2b70655623c5 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | a7cdacff3e804796a7dbf466c616c5ec |
| service_name | glance |
| service_type | image |
| url | http://192.168.56.11:9292 |
+--------------+----------------------------------+
[root@linux-node1 ~]#

管理的  

[root@linux-node1 ~]# openstack endpoint create --region RegionOne   image admin http://192.168.56.11:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 27ed39831e434c73ab2b400f1a1a4ab6 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | a7cdacff3e804796a7dbf466c616c5ec |
| service_name | glance |
| service_type | image |
| url | http://192.168.56.11:9292 |
+--------------+----------------------------------+
[root@linux-node1 ~]#

  

3、查看镜像列表

下面为空很正常,因为还没导入镜像呢

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

[root@linux-node1 ~]# glance image-list
+----+------+
| ID | Name |
+----+------+
+----+------+
[root@linux-node1 ~]#

  

4、导入镜像

下载小镜像

wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

  

使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它
命令如下,注意操作时镜像是在本目录下,如果不是本目录需要写绝对路径
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 create "cirros" \
> --file cirros-0.3.4-x86_64-disk.img \
> --disk-format qcow2 --container-format bare \
> --public
+------------------+-----------------------------------------------------+
| Field | Value |
+------------------+-----------------------------------------------------+
| checksum | ee1eca47dc88f4879d8a229cc70a07c6 |
| container_format | bare |
| created_at | 2017-02-17T16:26:40Z |
| disk_format | qcow2 |
| file | /v2/images/9969eaa3-0296-48cc-a42e- |
| | a02251b778a6/file |
| id | 9969eaa3-0296-48cc-a42e-a02251b778a6 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | e88437b3330145e1a713469130b4c3cd |
| protected | False |
| schema | /v2/schemas/image |
| size | 13287936 |
| status | active |
| tags | |
| updated_at | 2017-02-17T16:26:40Z |
| virtual_size | None |
| visibility | public |
+------------------+-----------------------------------------------------+
[root@linux-node1 ~]#

5、导入完毕,查看

[root@linux-node1 ~]# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 9969eaa3-0296-48cc-a42e-a02251b778a6 | cirros | active |
+--------------------------------------+--------+--------+
[root@linux-node1 ~]# glance image-list
+--------------------------------------+--------+
| ID | Name |
+--------------------------------------+--------+
| 9969eaa3-0296-48cc-a42e-a02251b778a6 | cirros |
+--------------------------------------+--------+
[root@linux-node1 ~]#

  

文件在此路径下,文件名和镜像ID一致

[root@linux-node1 images]# cd /var/lib/glance/images/
[root@linux-node1 images]# ls -l
total 12980
-rw-r----- 1 glance glance 13287936 Feb 18 00:26 9969eaa3-0296-48cc-a42e-a02251b778a6
[root@linux-node1 images]#

  

openstack--4--控制节点安装配置glance的更多相关文章

  1. Kubernetes控制节点安装配置

    #环境安装Centos 7 Linux release 7.3.1611网络: 互通配置主机名设置各个服务器的主机名hosts#查找kubernetes支持的docker版本Kubernetes v1 ...

  2. openstack grizzly版cloud控制节点安装

    openstack-ubuntu-create 参考官方文档 三个节点:cloud :控制节点内网:10.10.10.10外网:172.16.56.252 network:网络节点内网:10.10.1 ...

  3. openstack--6--控制节点和计算节点安装配置neutron

    Neutron相关介绍 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个neutron. quantum是因为商标和别的公司重名了,又改成的Neutron ...

  4. 安装Rocky版OpenStack 1控制节点+1计算节点环境部署脚本

    在上一篇文章中叙述了具体的安装部署过程,在这里把相应的部署脚本写出来,供大家参考: 一.执行部署的setup.sh脚本: #!/bin/bash ########################### ...

  5. 脚本安装Rocky版OpenStack 1控制节点+1计算节点环境部署

    视频安装指南请访问: http://39.96.203.138/wordpress/document/%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85rocky%E7%89%8 ...

  6. openstack--5--控制节点和计算节点安装配置nova

    Nova相关介绍 目前的Nova主要由API,Compute,Conductor,Scheduler组成 Compute:用来交互并管理虚拟机的生命周期: Scheduler:从可用池中根据各种策略选 ...

  7. openstack的控制节点部署

    openstack的控制节点部署 主要是使用了本地安装的那个镜像. 会出现几个问题, 1.重启服务无法启动. 2.环境变量无法正确配置可以自己配置

  8. Nova计算节点安装配置

    Nova计算节点安装配置 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ## Nova计算节点安装配置 #基本配置 ...

  9. 在 Linux 多节点安装配置 Apache Zookeeper 分布式集群

    规划: 三台物理服务器就形成了(法定人数).对于高可用性集群,您可以使用高于3的任何奇数.例如,如果设置5台服务器,则集群可以处理两个故障节点等. 物理服务器需要开启的端口 2888 , 3888 和 ...

随机推荐

  1. tensorflow-优化器

    优化器可以通俗的理解成梯度下降那一套流程. 梯度下降 基本流程 a. 损失函数 b. 求导,计算梯度 c. 更新参数 d. 迭代下一批样本 可以对照着理解tf. tf 优化器 正常使用流程 a. 创建 ...

  2. Linux 虚拟内存机制

    每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构. Linux内存管理采用的是页式管理,使用的是多级页表,动态地址转换机构与主存.辅存共同实现虚拟内存 一个新进程建立的时候,将会建 ...

  3. 究竟 javascript 错误处理有哪些类型?

    有时候,在自己封装的工具函数中,不传参或传入了错误类型的参数,也要适当的抛出一些错误以示警告:使用框架不正常情况下也会抛出错误,如果对错误一无所知,便无从下手调试.综合上述,了解错误的处理机制是多么必 ...

  4. <codis><jodis>

    Overview For codis and jodis. Codis TBD... Jodis Java client for codis. Jodis is a java client for c ...

  5. 爬虫框架存储pymysql方式

    爬虫框架存储pymysql方式# -*- coding: utf-8 -*-import pymysql# Define your item pipelines here## Don't forget ...

  6. python操作sqlite3的几项问题分析

    不同数据库还是有各自特点的,之前自以为熟悉mysql,然后全都照搬到sqlite3上,这样果然是不行的.笔者就近期在使用sqlite3时碰到的问题做了总结分析,并给出相应解决方法,供大家参考. 1.如 ...

  7. git clone新项目后如何拉取分支代码到本地

    1.git clone git@git.n.xxx.com:xxx/xxx.git 2.git fetch origin dev    命令来把远程dev分支拉到本地 3.checkout -b de ...

  8. Spring 消息

    RMI.Hessian/Burlap的远程调用机制是同步的.当客户端调用远程方法时,客户端必须等到远程方法完成之后,才能继续执行.即使远程方法不向客户端返回任何消息,客户端也要被阻塞知道服务完成. 消 ...

  9. linux修改ssh端口 以及禁止root远程登录 (实验机 CentOs)

    把ssh默认远程连接端口修改为3333 1.编辑防火墙配置: vi /etc/sysconfig/iptables 防火墙新增端口3333,方法如下: -A INPUT -m state --stat ...

  10. nginx高并发下配置参数

    今天下午,测试组同事模拟800个用户同时发起请求,nginx开始报错, "Too Many Open Files"  我们使用的是Dell R430服务器,2个物理CPU,每个CP ...