Openstack_glance部署(t版)

一.glance

1.概述

  • glance:镜像服务(Openstack中的项目)
  • 镜像:一系列文件,磁盘驱动器精确副本(复用)
  • 镜像文件:类似于压缩包,按照格式制作成单一文件
  • 镜像功能:创建操作系统
    资源的集合,副本,提供单一的文件格式(镜像格式)给用户使用

2.镜像服务

1)概述

镜像服务:管理镜像的,发现、获取和保存镜像
发现:看到和识别
获取:能识别,有控制和使用权限

2)主要功能

1.查询和获取镜像元数据和镜像本身
2.注册和上传虚拟机镜像
3.维护镜像信息(元数据和镜像本身)
4.支持多种方式存储镜像(普通文件系统,swift,Amazon s3)
5.对虚拟机实例创建快照命令来创建新的镜像,备份虚拟机的状态(对于镜像的管理)

  • 元数据:表述镜像的本身属性

3)Images API版本

glance提供的RESTful APl目前有两个版本

  • API v1
  • API v2

v1:只提供基础镜像和成员的操作功能
v2:在v1的基础上增加了镜像位置的添加、删除、元数据的名称空间操作

3.镜像格式

 虚拟机镜像文件磁盘格式

raw:无结构的磁盘格式
磁盘镜像实列,二进制形存储的方式

  • 优点:访问速度非常块
  • 缺点:不支持动态扩容,前期消耗多

qcow2:由Qemu仿真支持,可动态扩展,支持写时复制的磁盘格式
QEMU:虚拟化的重要组件之一

4.镜像文件容器格式

bare:没有容器或元素据"信封"的镜像
 Docker:在glance中存储的的容器文件系统的Dockerd的tar档案
  • 如果不能确定选择哪种容器格式,那么简单地容器格式指定为bare

5.镜像的状态

状态1
  • 1.初始化状态(queued):镜像文件刚被创建,glance数据库中只有元数据
    镜像数据还没有上传到数据库中
  • 2.正在上传镜像(saving):原数据在上传到数据库中的一种过度状态
  • 3.uploading:已经进行导入数据提交调用
  • 4.importing:已经完成调用,还没有准备好使用
状态2
  • active:镜像数据成功上传完毕
  • deactivated:只有管理原可以操作(维护)
  • killed:镜像上传过程中发生错误,镜像不可读
  • deleted:镜像将在不久后被自动删除,该镜像不可再用,glance仍然保存相关数据和原始数据
  • pending_delete:与deletce类似,状态不可以恢复

6.权限访问

  • public公共的:可以被所有项目的访问
  • private私有的:只有内部可以使用
  • shared共享:可由内部成员使用
  • protected受保护的:这种镜像不能被删除

二.架构

在这里插入图片描述

  • 1.client:相对于glance的外部,请求体
  • 2.api:核心服务的交互的接口,接受请求,响应镜像查询,获取和存储的调用
  • 3.glance-registry:私有仓库,glance注册服务进程,处理原数据相关的请求
    包括元数据镜像大小

架构图:glance的DB模块,存储的是镜像的元数据,
镜像的元数据通过glance-registry存放在数据库中
镜像本身(chunk数据)是通过glance存储驱动存放到各种存储后端中

存储后端:store Backend:支持本地存储、对象存储、RBD块设备、
sheepdong分布式存储、cinder块存储、VMware数据存储

1.glance工作流程

在这里插入图片描述

流程:

 Openstack操作要经过keystone进行身份认证,glance是一个c/s架构,提供REST API
用户通过REST API 来执行镜像各种操作,glance是一个主要的中间件,相当于调度器

1.client:到keystone 进行认证,keystone提供API 认证入口

2.keystone认证的URL:http//ct:5000/v3

3.keystone 返回给令牌, 持有令牌,返回到glance的API上

4.再次向keystone进行认证一次

5.确认后,处理请求,把任务交给glance Domain Controller(默认控制器)进行处理

6.glance Domain Controller(默认控制器)把任务操作分发给各个功能层

总结:
client客户端自己认证一个权限,获取令牌,获取glance后端位置

镜像请求,API向keystone进行认证,成功之后,交给controller处理

controller根据规则,把任务分别交给对应的组件进行处理

镜像本身的数据交给 glance store drivers
元数据信息交给registry layer来处理

他们会执行自己的职能,调取元数据,调取镜像本身,
通过controller返回给API,最后API返回请求给客户端

操作流程

1.创建数据库,授权
2.修改配置文件
对接mysql
对接keystone
初始化数据库
3.创建用户、授权、创建service、创建url(让open stack可以识别、管理内部组件)

其他的配置,都是该组件的一些功能性配置

三.glance组件部署

为openstack安装glance的组件,全部在控制节点上操作

CT VM:192.168.153.10 NAT:192.168.133.70

1.创建数据库实例和数据库用户

mysql -u root -p

CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
flush privileges;
exit

在这里插入图片描述

2.创建用户、修改配置文件

1)创建OpenStack的Glance用户

  • 创建用户前,需要首先执行管理员环境变量脚本(此处已经在~/.bashrc 中定义过了)
#创建glance用户
openstack user create --domain default --password GLANCE_PASS glance

#将glance用户添加到service项目中,并且针对这个项目拥有admin权限;注册glance的API,需要对service项目有admin权限
openstack role add --project service --user glance admin

#创建一个service服务,service名称为glance,类型为image;创建完成后可以通过 openstack service list 查看
openstack service create --name glance --description "OpenStack Image" image

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

2)创建镜像服务 API 端点,OpenStack使用三种API端点代表三种服务:admin、internal、public
openstack endpoint create --region RegionOne image public http://ct:9292
openstack endpoint create --region RegionOne image internal http://ct:9292
openstack endpoint create --region RegionOne image admin http://ct:9292

在这里插入图片描述

3)安装 openstack-glance 软件包
yum -y install openstack-glance

在这里插入图片描述

4)修改glance配置文件,

glance有两个配置文件:/etc/glance/glance-api.conf
/etc/glance/glance-registry.conf

cp -a /etc/glance/glance-api.conf{
    
    ,.bak}
grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf

在这里插入图片描述

5)添加glance-api.conf配置—传参
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/

我们刚才传参的内容在文件中得到体现,当然,直接在配置文件里添加、修改参数也是可以的。

在这里插入图片描述
在这里插入图片描述

6)修改glance-registry.conf 配置文件

cp -a /etc/glance/glance-registry.conf{
    
    ,.bak}
grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf

在这里插入图片描述

7)添加glance-registry.conf 配置
openstack-config --set /etc/glance/glance-registry.conf database connection  mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri   http://ct:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url  http://ct:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers  ct:11211
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type  password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name  Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name  Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name  service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username  glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password  GLANCE_PASS
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor  keystone

在这里插入图片描述

8)初始化glance数据库,生成相关表结构;(不管有多少个controler,只需要初始化一次即可)
su -s /bin/sh -c "glance-manage db_sync" glance

在这里插入图片描述

9)开启glance服务(此处开启之后会生成存放镜像的目录/var/lib/glance/image)
systemctl enable openstack-glance-api.service
systemctl start openstack-glance-api.service

在这里插入图片描述

10)查看端口
netstat -natp | grep 9292
#或(lsof需要安装)
yum -y install lsof
lsof -i:9292

在这里插入图片描述

在这里插入图片描述

11)赋予openstack-glance-api.service服务对存储设备的可写权限(-h:值对符号连接/软链接的文件修改)
chown -hR glance:glance /var/lib/glance/

在这里插入图片描述

3.测试是否部署成功

  • 需要镜像:cirros-0.3.5-x86_64-disk.img

  • 镜像导入
    先上传cirros镜像到控制节点的/root,然后导入glance,最后查看是否创建成功

openstack image create --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros

在这里插入图片描述

查看镜像的两种方式:
openstack image list
或
glance image-list

在这里插入图片描述

总结:

  • glance:镜像服务
    镜像服务:管理镜像,发现、获取保存镜像

  • 功能
    1.查询和获取镜像元数据和镜像本身
    2.注册和上传虚拟机镜像
    3.维护镜像信息(元数据和镜像本身)
    4.支持多种方式存储镜像(普通文件系统,seift,Amazon s3)
    5.对虚拟机实例创建快照命令来创建新的镜像,备份虚拟机的状态
    (对于镜像的管理)

  • 操作流程:

1.创建数据库,授权
2.修改配置文件
对接mysql
对接keystone
初始化数据库
3.创建用户、授权、创建service、创建url(让open stack可以识别、管理内部组件)

其他的配置,都是该组件的一些功能性配置

  • 架构工作流程

client客户端自己认证一个权限,获取令牌,获取glance后端位置

镜像请求,API向keystone进行认证,成功之后,交给controller处理

controller根据规则,把任务分别交给对应的组件进行处理

镜像本身的数据交给 glance store drivers
元数据信息交给registry layer来处理

他们会执行自己的职能,调取元数据,调取镜像本身,
通过controller返回给API,最后API返回请求给客户端

猜你喜欢

转载自blog.csdn.net/Wsxyi/article/details/117119100