Ceph和Openstack的cinder模块对接方法
1.创建存储池
在ceph节点中执行如下语句。
#ceph osd pool create volumes
2.配置 OPENSTACK 的 CEPH 客户端
在ceph节点两次执行如下语句,两次{your-openstack-server}分别填控制节点和计算节点IP。
如果显示在控制节点和计算节点中没有ceph文件夹,则在两节点中创建对应文件夹。
#ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf < /etc/ceph/ceph.conf
3.安装 CEPH 客户端软件包
控制节点上进行librbd的 Python 绑定
#yum install python-rbd
计算节点和控制节点进行安装 Python 绑定和客户端命令行工具
#yum install ceph-common #yum install ceph
4.配置 CEPH 客户端认证
在ceph节点为Cinder创建新用户
#ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes'
在ceph节点把 client.cinder的密钥环复制到控制节点,并更改所有权,{your-volume-server}和{your-cinder-volume-server}处填控制节点IP。
#ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
#ssh {your-cinder-volume-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
在ceph节点执行如下语句{your-nova-compute-server}为计算节点IP。
#ceph auth get-or-create client.cinder | ssh {your-nova-compute-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
在ceph节点把client.cinder用户的密钥存进libvirt。libvirt 进程从 Cinder 挂载块设备时要用它访问集群,在运行 nova-compute 的节点上创建一个密钥的临时副本。
{your-compute-node}为计算节点IP。
#ceph auth get-key client.cinder | ssh {your-compute-node} tee /etc/ceph/client.cinder.key
在计算节点上执行如下语句,把密钥加进 libvirt 、然后删除临时副本。
#uuidgen
记录下产生的数字,将下面的UUIDGEN替换为该数字,并在计算节点执行下列语句
cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<uuid>UUIDGEN</uuid>
<usage type='ceph'>
<name>client.cinder secret</name>
</usage>
</secret>
EOF
#sudo virsh secret-define --file secret.xml #sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml
执行完后,记录好上面产生的uuidgen,下面还会用到。
5.安装并配置控制节点
5.1先决条件
在控制节点完成下面的步骤以创建数据库:
用数据库连接客户端以 root 用户连接到数据库服务器:
#mysql -u root -p
创建cinde数据库
#CREATE DATABASE cinder;
配置 cinder 数据库的访问权限,下列CINDER_DBPASS用合适的密码替换。
#GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \ IDENTIFIED BY 'CINDER_DBPASS'; #GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \ IDENTIFIED BY 'CINDER_DBPASS';
退出数据库。
获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
# . admin-openrc
创建服务证书:
创建一个 cinder 用户:
#openstack user create --domain default --password-prompt cinder
添加 admin 角色到 cinder 用户上。
#openstack role add --project service --user cinder admin
创建 cinder 和 cinderv2 服务实体:
#openstack service create --name cinder \ --description "OpenStack Block Storage" volume #openstack service create --name cinderv2 \ --description "OpenStack Block Storage" volumev2
创建块设备存储服务的 API 入口点:
#openstack endpoint create --region RegionOne \ volume public http://controller:8776/v1/%\(tenant_id\)s #openstack endpoint create --region RegionOne \ volume internal http://controller:8776/v1/%\(tenant_id\)s #openstack endpoint create --region RegionOne \ volume admin http://controller:8776/v1/%\(tenant_id\)s #openstack endpoint create --region RegionOne \ volumev2 public http://controller:8776/v2/%\(tenant_id\)s #openstack endpoint create --region RegionOne \ volumev2 internal http://controller:8776/v2/%\(tenant_id\)s #openstack endpoint create --region RegionOne \ volumev2 admin http://controller:8776/v2/%\(tenant_id\)s
5.2安装并配置组件
安装软件包
# yum install openstack-cinder #yum install openstack-cinder targetcli python-keystone
在控制节点上编辑cinder.conf。
#vi /etc/cinder/cinder.conf
添加如下内容:
注意:
1.如果你为 cinder 配置了多后端, [DEFAULT] 节中必须有 glance_api_version = 2
2.[ceph]中的rbd_secret_uuid后面对应填的刚刚记录的uuid。
[DEFAULT] transport_url = rabbit://openstack:RABBIT_PASS@controller auth_strategy = keystone my_ip = 控制节点管理网络的IP enabled_backends = ceph glance_api_servers = http://controller:9292 [database] connection = mysql+pymysql://cinder:CINDER_PASS@controller/cinder [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller: auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = CINDER_PASS [oslo_concurrency] lock_path = /var/lib/cinder/tmp [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 = rbd_store_chunk_size = rados_connect_timeout = - glance_api_version = rbd_user = cinder rbd_secret_uuid = a852df2b-55e1-4c1b-9fa2-61e77feaf30f
编辑/etc/nova/nova.conf 添加如下内容:
[cinder] os_region_name = RegionOne
6.重启 OPENSTACK
在控制节点重启计算API 服务:
# systemctl restart openstack-nova-api.service
启动块设备存储服务,并将其配置为开机自启:
# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service # systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
启动块存储卷服务及其依赖的服务,并将其配置为随系统启动:
# systemctl enable openstack-cinder-volume.service target.service # systemctl start openstack-cinder-volume.service target.service
7.验证
在控制节点获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
# . admin-openrc
列出服务组件以验证是否每个进程都成功启动:
# cinder service-list
并且登录界面后可以创建卷

Ceph和Openstack的cinder模块对接方法的更多相关文章
- 云计算/云存储---Ceph和Openstack的cinder模块对接方法
1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...
- ceph与openstack对接(cinder、glance、nova)
对接分为三种,也就是存储为openstack提供的三类功能1.云盘,就好比我们新加的硬盘2.原本的镜像也放在ceph里,但是我没有选择这种方式,原因是因为后期有要求,但是我会把这个也写出来,大家自己对 ...
- ceph与openstack对接
对接分为三种,也就是存储为openstack提供的三类功能1.云盘,就好比我们新加的硬盘2.原本的镜像也放在ceph里,但是我没有选择这种方式,原因是因为后期有要求,但是我会把这个也写出来,大家自己对 ...
- 理解 OpenStack + Ceph (7): Ceph 的基本操作和常见故障排除方法
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- OpenStack IceHouse版cinder模块新添加功能
感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/gaoxingnengjisua ...
- ceph集成openstack cinder
本环境ceph已经搭建,ceph搭建麻烦见本博客的其他文章 1 在cinder-volume节点安装ceph client yum install -y ceph-common 注意:glance要安 ...
- “CEPH浅析”系列之六——CEPH与OPENSTACK
在 <"Ceph浅析"系列之二--Ceph概况>中即已提到,关注Ceph的原因之一,就是OpenStack社区对于Ceph的重视.因此,本文将对Ceph在OpenSta ...
- Ceph在OpenStack中的地位
对Ceph在OpenStack中的价值进行简要介绍,并且对Ceph和Swift进行对比. 对于一个IaaS系统,涉及到存储的部分主要是块存储服务模块.对象存储服务模块.镜像管理模块和计算服务模块.具体 ...
- Ceph与OpenStack整合(仅为云主机提供云盘功能)
1. Ceph与OpenStack整合(仅为云主机提供云盘功能) 创建: linhaifeng,最新修改: 大约1分钟以前 ceph ceph osd pool create volumes 128 ...
随机推荐
- 201521123086《JAVA程序设计》第五周作业
本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 书面作业 代码阅读:Child压缩包内源代码 Q1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误 ...
- 201521123087 《Java程序设计》第3周学习总结
1.本周学习总结 2. 书面作业 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; publ ...
- 201521123042《Java程序》第二周总结
1. 本周学习总结 了解枚举类型的使用方法. 学会使用ArrayList替换数组,并且学会运用相关函数,例如: strList.contains(str)(判断数组中是否包含字符串str,包含则返回t ...
- 201521123021第二周Java学习总结
1.本章学习总结 ①初步掌握了Java程序简单的输入和输出. ②回顾了运算符和表达式的使用. ③在数据类型的学习的中,要注意各类型的取值范围,特别是byte型范围很小,若为128即溢出. ④在Java ...
- 201521123005 《Java程序设计》 第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...
- JAVA课设 学生基本信息管理 团队博客
1.成员 邹其元 网络1512 201521123060 杨钧宇 网络1512 201521123062 2.项目Git地址 团队项目码云地址 //添加截图 3. 项目git提交记录截图(要体现出每个 ...
- 201521123062《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中fin ...
- 201521123026《Java程序设》 第10周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 1.守护线程:setDaemon(true or false),如果所有前台线程死亡,守护线程自动结束,一般 ...
- 201521123070 《JAVA程序设计》第14周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现 ...
- centOS 6启动流程
centOS6启动流程 centOS6启动流程 linux内核组成 centos6启动大致流程 1.post加电自检 2.Boot Sequence 3.MBR引导 4.Grub启动 制作init ...