环境准备:

保证openstack节点的hosts文件里有ceph集群的各个主机名,也要保证ceph集群节点有openstack节点的各个主机名

一、使用rbd方式提供存储如下数据:

(1)image:保存glanc中的image;
(2)volume存储:保存cinder的volume;保存创建虚拟机时选择创建新卷;

二、实施步骤:

(1)客户端也要有cent用户:

useradd cent && echo "123" | passwd --stdin cent echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph chmod 440 /etc/sudoers.d/ceph

(2)openstack要用ceph的节点(比如compute-node和storage-node)安装下载的软件包:

  yum localinstall ./* -y

或则:每个节点安装 clients(要访问ceph集群的节点):

yum install python-rbd
yum install ceph-common

(3)部署节点上执行,为openstack节点安装ceph:

ceph-deploy install controller
     ceph-deploy admin controller

(4)客户端执行

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

5)创建存储池,分别名为images、vms、volumes

[root@controller ~]#ceph osd pool create images 128 pool 'images' created [root@controller ~]# ceph osd pool create vms 128 pool 'vms' created [root@controller ~]# ceph osd pool create volumes 128 pool 'volumes' created

6)查看pool列表

ceph osd lspools

0 rbd,1 images,2 vms,3 volumes,

如果你启用了 cephx 认证,需要分别为 Nova/Cinder 和 Glance 创建新用户

7)在ceph集群中创建glance和cinder用户,由于是all in one环境所以这里我们就在部署节点上创建这两个用户即可。

  useradd glance

  useradd cinder

8)给与这两个用户输出一个对应的密钥环

[root@controller ceph]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images' [client.glance]  key = AQCZggNd3TrTDBAAFgWrEAXhXt7xv4xcnn0eWA== [root@controller ceph]# ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images' [client.cinder] key = AQCtggNdHrFuHhAAsI/rt4cVujt8QEYZOODRFw==

每创建一个用户会输出一个对应用户的秘钥环,秘钥环是其他节点访问集群的钥匙(client.glance/cinder )

9)拷贝密钥环,并发给需要的节点,我们这里就在controller节点上拷贝然后发给storage节点

root@controller ceph]# ceph auth get-or-create client.glance > /etc/ceph/ceph.client.glance.keyring

[root@controller ceph]# ceph auth get-or-create client.cinder > /etc/ceph/ceph.client.cinder.keyring

[root@controller ceph]# scp ceph.client.glance.keyring ceph.client.cinder.keyring compute:/etc/ceph/
ceph.client.glance.keyring 100% 64 15.4KB/s 00:00
ceph.client.cinder.keyring 100% 64 31.4KB/s 00:00
[root@controller ceph]# scp ceph.client.glance.keyring ceph.client.cinder.keyring storage:/etc/ceph/
ceph.client.glance.keyring 100% 64 14.1KB/s 00:00
ceph.client.cinder.keyring 100% 64 28.0KB/s 00:00

10)更改下面keyring文件的属组属组,不然没有权限访问。

[root@controller ceph]# chown glance:glance /etc/ceph/ceph.client.glance.keyring [root@controller ceph]# chown cinder:cinder /etc/ceph/ceph.client.glance.keyring

注意:必须已经在controller节点上安装过ceph包,也就是要有/etc/ceph这个文件夹,完成后可以在controller下面的/etc/ceph目录下看到ceph.client.glance.keyring秘钥环

运行着 glance-api 、 cinder-volume 、 nova-compute 或 cinder-backup 的主机被当作 Ceph 客户端

11)更改libvirt权限,只需要在nova-compute节点上操作就行

生成一个uuid,并将uuid写入/etc/ceph/uuid

[root@compute ceph]# uuidgen
3e3314c9-bfb0-439e-8764-61896c621b7e

 [root@compute ceph]# vim uuid

3e3314c9-bfb0-439e-8764-61896c621b7e

在/etc/ceph目录下创建secret文件,添加以下内容

cat > secret.xml <<EOF <secret ephemeral='no' private='no'> <uuid>940f0485-e206-4b49-b878-dcd0cb9c70a4</uuid> <usage type='ceph'> <name>client.cinder secret</name> </usage> </secret>

将secret文件发送到其他compute节点,并执行以下操作

[root@compute ceph]# ceph auth get-key client.cinder > ./client.cinder.key
[root@compute ceph]# ls ceph.client.admin.keyring ceph.conf secret.xml ceph.client.cinder.keyring client.cinder.key tmpJKjseK ceph.client.glance.keyring rbdmap uuid [root@compute ceph]# virsh secret-set-value --secret 3e3314c9-bfb0-439e-8764-61896c621b7e --base64 $(cat ./client.cinder.key) secret 值设定

如遇如下错误:
[root@controller ceph]# virsh secret-define --file secret.xml
错误:使用 secret.xml 设定属性失败
错误:internal error: 已将 UUID 为d448a6ee-60f3-42a3-b6fa-6ec69cab2378 的 secret 定义为与 client.cinder secret 一同使用。
将重复的uuid取消定义再将secret文件取消定义。 
[root@controller ~]# virsh secret-list
UUID                                  用量
--------------------------------------------------------------------------------
d448a6ee-60f3-42a3-b6fa-6ec69cab2378  ceph client.cinder secret
[root@controller ~]# virsh secret-undefine d448a6ee-60f3-42a3-b6fa-6ec69cab2378
已删除 secret d448a6ee-60f3-42a3-b6fa-6ec69cab2378
[root@controller ~]# virsh secret-list
UUID                                  用量
--------------------------------------------------------------------------------
[root@controller ceph]# virsh secret-define --file secret.xml
生成 secret 940f0485-e206-4b49-b878-dcd0cb9c70a4
[root@controller ~]# virsh secret-list
UUID                                  用量
--------------------------------------------------------------------------------
940f0485-e206-4b49-b878-dcd0cb9c70a4  ceph client.cinder secret
virsh secret-set-value --secret 940f0485-e206-4b49-b878-dcd0cb9c70a4 --base64 $(cat ./client.cinder.key)

15)在horizon页面删除镜像和实例

16)在controller节点上修改glance-api.conf配置文件,然后重启

[DEFAULT]
default_store = rbd
 [glance_store] stores = rbd default_store = rbd rbd_store_pool = images rbd_store_user = glance rbd_store_ceph_conf = /etc/ceph/ceph.conf rbd_store_chunk_size = 8

[root@controller ceph]# systemctl restart openstack-glance-api

17)查看并重新创建image镜像

[root@controller ceph]# openstack image create "cirros" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --public

更改后镜像就存储在ceph集群glance pool里。

18)storage节点上修改cinder配置文件(两处),并重启controller节点相关服务和storage节点相关服务

enabled_backends = ceph

[ceph]
volume_driver = cinder.volume.drivers.rbd.RBDDriver
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = false
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2
rbd_user = cinder
rbd_secret_uuid = 3e3314c9-bfb0-439e-8764-61896c621b7e
volume_backend_name=ceph

systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service(controller节点)

systemctl restart openstack-cinder-volumes(storage节点)

19)horizon界面创建卷验证

[root@controller gfs]# rbd ls volumes
volume-43b7c31d-a773-4604-8e4a-9ed78ec18996

20)在nova-compute节点修改nova配置文件,重启controller的nova相关服务和storage节点的相关服务

[libvirt]
virt_type=qemu
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_user = cinder
rbd_secret_uuid = 3e3314c9-bfb0-439e-8764-61896c621b7e
systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service  openstack-nova-compute.service openstack-nova-cert.service    (controller节点)
systemctlr restart openstack-nova-compute  (compute节点)

21)horizon界面创建虚拟机验证

转载于:https://www.cnblogs.com/xiaoxiaotiejiang/p/11084633.html

ceph对接openstack环境相关推荐

  1. ceph 对接openstack mitaka

    Ceph 准备工作 官方文档:http://docs.ceph.com/docs/master/rbd/rbd-openstack/ 创建存储池 # ceph osd pool create imag ...

  2. 使用Ceph作为OpenStack的统一存储解决方案

    文章目录 统一存储解决方案 一.Ceph RBD和Openstack集群的基础配置 1. 需求说明 2.原理解析 3. 为 Glance.Nova.Cinder 创建专用的RBD Pools池并初始化 ...

  3. Ceph专题三 Ceph与OpenStack集成和行业应用

     Ceph专题三Ceph与OpenStack集成和行业应用 Ceph 在OpenStack中的地位 Openstack是继Linux之后又一个非常成熟和受欢迎的开源云计算解决方案,Openstac ...

  4. 分布式存储系统 Ceph 介绍与环境部署

    文章目录 一.概述 二.Ceph 架构 三.Ceph核心组件介绍 四.Ceph 三种存储类型 1)块存储服务(RBD) 2)文件系统存储服务(CephFS) 3)对象存储服务(RGW) 五.Ceph版 ...

  5. Ceph与OpenStack整合(仅为云主机提供云盘功能)

    1. Ceph与OpenStack整合(仅为云主机提供云盘功能) 创建: linhaifeng,最新修改: 大约1分钟以前 ceph ceph osd pool create volumes 128 ...

  6. 手动部署OpenStack环境(六:出现的问题与解决方案总结)

    排错一:keystone服务安装中demo用户表单没信息. 排错思路: 组件安装是否有问题: 用户创建畲缶有问题: 用户认证信息是否合适: 原因:用户的认证信息配置错误. 解决方案: a)删除有关de ...

  7. 手动部署OpenStack环境(五:新建网络及部署虚拟机)

    任务五.新建网络及部署虚拟机 5.1.配置安全组规则 5.2.新建网络 5.3.创建云主机 任务五.新建网络及部署虚拟机 5.1.配置安全组规则 5.1.1.配置安全组: 5.2.新建网络. 5.2. ...

  8. 手动部署OpenStack环境(四:安装控制器必备软件)

    任务四.安装控制器必备组件 4.1.安装MySQL服务(controller0) 4.2.安装Rabbitmq消息队列(controller0) 4.3.Keystone认证(controller0) ...

  9. 手动部署OpenStack环境(三:OpenStack环境预配置)

    任务三.OpenStack环境预配置 3.1.本地OpenStack yum源制作 任务三:OpenStack环境预配置 3.1.本地OpenStack yum 源制作 3.1.1.拷贝镜像文件源到本 ...

  10. 手动部署OpenStack环境(二:CentOS6.6虚拟机的安装及配置)

    任务二.CentOS 6.6虚拟机的安装及配置 2.1.安装环境检查 2.2.安装及配置controller0节点 2.3.安装及配置computer0节点 2.4.安装及配置network0节点 2 ...

最新文章

  1. WEB开发之如何改善PHP开发方式
  2. XSS中JavaScript加密以及Filter bypass
  3. ActiveMQ简介与安装
  4. linux 命令分类,常用linux 命令分类整理(篇一)
  5. 全排列变种:限定 排列的差值范围 及 排列中的元素个数
  6. 在Java编码中,如何减少bug数量
  7. Loadrunner 接口测试的两种方法
  8. 1)Java JDK和JRE
  9. eclipse远程调试tomcat
  10. .Net之美读书笔记15
  11. 如何读群晖硬盘_群晖nas使用教程6:将USB设备识别为本地SATA口硬盘 - 群晖教程...
  12. 把RAdam和LookAhead合二为一
  13. 怎么把PDF转换成图片?教大家两种方式转换
  14. CT图像之Hu值变换与窗宽窗位调整
  15. C盘存储空间不够?拓展C盘空间的方法
  16. 第三方在线地图源有哪些?
  17. 第九周 任务四
  18. 为什么开发iSee图片专家?
  19. 用python画气球_452. 用最小的数量引爆气球(Python)
  20. Arduino 旋转编码器ky-040

热门文章

  1. Struts2校验器(一)之规格文件
  2. 【渝粤教育】国家开放大学2018年春季 8638-21T薪酬制度与薪酬管理 参考试题
  3. [渝粤教育] 西南科技大学 机床电气控制技术 在线考试复习资料
  4. ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM
  5. DCGAN-深度卷积生成对抗网络-转置卷积
  6. 粒子群对函数的优化 matlab,编译通过
  7. windows server 2012 --安装远程桌面服务后无法远程的问题
  8. Spring Framework的核心:Spring AOP
  9. Master-Worker设计模式介绍
  10. linux下的screen工具配置(针对 string escape)