glance对接ceph

基于前面的openstack环境

glance的镜像默认情况下是存储在本地的,如果glance节点挂掉了,那么镜像也就不存在了,所以现在我们需要将glance的镜像存储在ceph集群上,这样即使glance节点挂掉了,其他的节点启动glance然后对接一下ceph,镜像依然是存在的

1. 上传镜像

这里我们的glance目前还没有对接ceph,现在上传一个镜像来看看他是不是存在本地

[root@openstack01 ~]# source .venv/kolla/bin/activate
(kolla) [root@openstack01 ~]# source /etc/kolla/admin-openrc.sh

下载一个cirros镜像

(kolla) [root@openstack01 ~]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
(kolla) [root@openstack01 kolla]# openstack image create --disk-format qcow2 --container-format bare --progress --public --file /root/cirros-0.4.0-x86_64-disk.img test_image (kolla) [root@openstack01 kolla]# openstack image list
+--------------------------------------+------------+--------+
| ID | Name | Status |
+--------------------------------------+------------+--------+
| c5d3998d-51a7-4732-9cd9-fb34ff2d3e94 | cirros | active |
| 1add255d-d797-4c5a-8e74-f902ca3c45b6 | test_image | active |
+--------------------------------------+------------+--------+

这样,一个镜像就上传好了。来看看他是不是将镜像存在本地了

(kolla) [root@openstack01 kolla]# openstack image show test_image |grep file |head -1
| file | /v2/images/1add255d-d797-4c5a-8e74-f902ca3c45b6/file

他的回显是/v2/images/1add255d-d797-4c5a-8e74-f902ca3c45b6/file 这个路径,直接进入glance容器内

(kolla) [root@openstack01 kolla]# docker exec -it glance_api /bin/bash
(glance-api)[glance@openstack01 /]$ cd /var/lib/glance/images/
(glance-api)[glance@openstack01 /var/lib/glance/images]$ ls
1add255d-d797-4c5a-8e74-f902ca3c45b6 c5d3998d-51a7-4732-9cd9-fb34ff2d3e94

这个目录下有2个文件,每个文件都与我们的镜像ID是对应的,说明镜像就是存在本地的,并且还是存在容器内部的

2. 对接ceph

现在我们开始操作ceph,在ceph上要先创建池,然后创建用户授权,最后改glance的配置文件

2.1 创建池

[root@ceph ~]# ceph osd pool create images
pool 'images' created
[root@ceph ~]# ceph osd pool application enable images rbd
enabled application 'rbd' on pool 'images'
[root@ceph ~]# rbd pool init -p images

池就创建并初始化好了,接下来创建用户

2.2 创建用户

[root@ceph ~]# ceph auth get-or-create client.glance mon 'profile rbd' osd 'profile rbd pool=images' -o /etc/ceph/ceph.client.glance.keyring

glance用户的密钥环就输出到了/etc/ceph下

2.3 下发ceph文件

先去管理主机创建一个glance目录

管理主机也就是当时部署openstack的那台机器

[root@openstack01 config]# cd /etc/kolla/config/
[root@openstack01 config]# mkdir glance

将ceph.conf和glance用户的密钥环发送到管理主机的/etc/kolla/config/

[root@ceph ~]# scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.glance.keyring 192.168.200.130:/etc/kolla/config/glance/
root@192.168.200.130's password:
ceph.conf 100% 181 256.9KB/s 00:00
ceph.client.glance.keyring 100% 64 67.6KB/s 00:00

注意一个坑,在管理主机上打开这2个文件,将里面的缩进给删除,或者将缩进改为空格键,不然会报错,因为等会升级glance是使用ansible读取配置,yaml是不允许tab键的

[root@openstack01 glance]# cat ceph.conf
# minimal ceph.conf for 601f8e36-2faa-11ef-9c62-000c294ff693
[global]
fsid = 601f8e36-2faa-11ef-9c62-000c294ff693
mon_host = [v2:192.168.200.100:3300/0,v1:192.168.200.100:6789/0] [root@openstack01 glance]# cat ceph.client.glance.keyring
[client.glance]
key = AQD+d5JmAtybHBAARluqjWc6/W4xYoWPC4VHXA==

最后这2个文件应该变成这个样子

2.4 修改globals文件

[root@openstack01 kolla]# vim globals.yml
ceph_glance_user: "glance"
ceph_glance_keyring: "client.{{ ceph_glance_user }}.keyring"
ceph_glance_pool_name: "images"
glance_backend_ceph: "yes"
glance_backend_file: "no"

这里的keyring不要在前边加上ceph.因为等会执行的时候ansible会自动给带上,写上了反而报错

将globals文件改为这样就可以了,然后我们执行升级glance

2.5 更新glance配置

[root@openstack01 kolla]# source /root/.venv/kolla/bin/activate
(kolla) [root@openstack01 ~]# kolla-ansible -i multinode -t glance upgrade

等待ansible的剧本执行完,执行完之后我们再来上传一个镜像

3. 上传镜像到ceph

现在我们的glance配置文件就已经自动更新好了,接下来我们上传一个镜像看看是不是存在ceph集群里面了

(kolla) [root@openstack01 ~]# openstack image create --disk-format qcow2 --container-format bare --public --file ./cirros-0.4.0-x86_64-disk.img ceph_test_image
(kolla) [root@openstack01 ~]# openstack image list
+--------------------------------------+-----------------+--------+
| ID | Name | Status |
+--------------------------------------+-----------------+--------+
| cfe7ca03-896d-4020-90e8-bc45e71068aa | ceph_test_image | active |
| c5d3998d-51a7-4732-9cd9-fb34ff2d3e94 | cirros | active |
| 1add255d-d797-4c5a-8e74-f902ca3c45b6 | test_image | active |
+--------------------------------------+-----------------+--------+

还是进入容器去查看

(glance-api)[glance@openstack01 /var/lib/glance/images]$ ls
1add255d-d797-4c5a-8e74-f902ca3c45b6 c5d3998d-51a7-4732-9cd9-fb34ff2d3e94

通过这里可以看见,他的回显依然是2个,也就是本地只存了2个,第3个镜像存到ceph里去了,我们回到ceph集群来查看

[root@ceph ~]# rbd ls -p images
cfe7ca03-896d-4020-90e8-bc45e71068aa

他给我们的回显正好是镜像的ID,确实已经存储到ceph集群内了

glance对接ceph的更多相关文章

  1. 分布式存储ceph——(2)openstack对接ceph存储后端

    ceph对接openstack环境 一.使用rbd方式提供存储如下数据: (1)image:保存glanc中的image: (2)volume存储:保存cinder的volume:保存创建虚拟机时选择 ...

  2. OpenStack 对接 Ceph

    [TOC]   1. Openstack 与 Ceph 1.1. Ceph 简介 Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(RBD).对象 ...

  3. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题

    问题 环境:Nova.Cinder.Glance 都对接了 Ceph RBD 后端存储. 以往的操作包括上传镜像.创建卷.挂载卷都是一切正常的,但突然出现了无法挂载卷的问题,而且还是因为 Ceph 客 ...

  4. 分布式存储ceph---openstack对接ceph存储后端(4)

    ceph对接openstack环境 一.使用RBD方式提供存储,如下数据: 1.image:保存glance中的image 2.volume存储:保存cinder的volume:保存创建虚拟机时选择创 ...

  5. k8s对接ceph存储

    前提条件:已经部署好ceph集群 本次实验由于环境有限,ceph集群是部署在k8s的master节点上的 一.创建ceph存储池 在ceph集群的mon节点上执行以下命令: ceph osd pool ...

  6. Openstack针对nova,cinder,glance使用ceph的虚拟机创建机制优化

     今天在开源中国社区看到有例如以下一个问题: 已经成功把ceph作为cinder和 glance的后端,可是假设作为nova的后端,虚拟机启动速度非常慢,网上查了一下是由于openstack创建虚 ...

  7. 配置glance使用ceph作为后端存储

    在ceph监视器上执行 1.创建pool池 为glance服务创建pool池(因为我只有一个OSD节点,所以要将副本数设置为1) ceph osd pool create glance-images  ...

  8. openstack之cinder_backup对接ceph存储

    M版openstack,是kolla部署的 1.介绍 backup 功能好像与 snapshot 很相似,都可以保存 volume 的当前状态,以备以后恢复.但二者在用途和实现上还是有区别的,具体表现 ...

  9. kolla部署openstack多节点高可用并对接ceph后端存储(17)

    部署节点执行: 安装基础包和docker yum install python-devel libffi-devel gcc openssl-devel git python-pip -y 升级一下 ...

  10. ceph与openstack对接(cinder、glance、nova)

    对接分为三种,也就是存储为openstack提供的三类功能1.云盘,就好比我们新加的硬盘2.原本的镜像也放在ceph里,但是我没有选择这种方式,原因是因为后期有要求,但是我会把这个也写出来,大家自己对 ...

随机推荐

  1. 快速将headers转字典

    使用Headers插件完成快捷操作 在pycharm的Preferences-Plugins-Marketplace下搜索Headers install安装.apply应用,ok确定 接下来只要复制相 ...

  2. 我出一道面试题,看看你能拿 3k 还是 30k!

    大家好,我是程序员鱼皮.欢迎屏幕前的各位来到今天的模拟面试现场,接下来我会出一道经典的后端面试题,你只需要进行 4 个简单的选择,就能判断出来你的水平是新手(3k).初级(10k).中级(15k)还是 ...

  3. FP分数规划在无线通信中的应用

    更多精彩内容请关注微信公众号 '优化与算法' 前言 在数学优化中,分数规划是线性分式规划的推广.分数规划中的目标函数是两个函数的比值,这两个函数通常是非线性的.要优化的比值通常描述系统的某种效率. 1 ...

  4. cpu亲和性相关函数和宏 基础讲解[cpu_set_t]

    cpu亲和性相关函数和宏讲解: 写在前面: 我在查找关于linux cpu宏函数没看到有对宏函数基础的.详细的讲解,笔者便通过官方文档入手,对次进行的翻译和理解希望能帮到对这方面宏有疑惑的读者 exp ...

  5. 【转载】PPT上作图转化为矢量图 —— 论文写作必备技能

    原文地址: https://www.cnblogs.com/scandit/p/15112138.html PPT作出的图本身就为矢量图(可以插入到Word中),另存为PDF后,再通过PDF专业工具适 ...

  6. 深度学习框架:为啥不同的框架,不同的运行设备(GPU/CPU/NPU),运算出的结果性能会有一定百分数的差别呢

    经常会遇到有人在网上说,TensorFlow的计算结果比pytorch的高上几个百分点,也有人说RTX3090的计算结果没有A100的好,还有人说NPU的计算结果比GPU的高,而且这种说法在业内也是极 ...

  7. 【转载】pip install 使用多个.local环境

    原文地址: https://zhuanlan.zhihu.com/p/351468170 ================================ 我们都知道anaconda可以安装不同的py ...

  8. python语言绘图:绘制一组二项分布图

    代码源自: https://github.com/PacktPublishing/Bayesian-Analysis-with-Python ============================= ...

  9. 免费领取云主机,在华为开发者空间玩转YOLOV3

    摘要:YOLOv3(You Only Look Once version 3)是一种高效的目标检测算法,旨在实现快速而准确的对象检测. 本文分享自华为云社区<华为云开发者云主机体验[玩转华为云] ...

  10. SpringBoot项目中HTTP请求体只能读一次?试试这方案

    问题描述 在基于Spring开发Java项目时,可能需要重复读取HTTP请求体中的数据,例如使用拦截器打印入参信息等,但当我们重复调用getInputStream()或者getReader()时,通常 ...