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模块对接方法的更多相关文章

  1. Ceph和Openstack的cinder模块对接方法

    1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...

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

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

  3. OpenStack核心组件-cinder存储服务

    1. cinder 介绍 Block Storage 操作系统获得存储空间的方式一般有两种: 1)     通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文 ...

  4. openstack核心组件——cinder存储服务(11)

    一.cinder 介绍:   理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系 ...

  5. 华为云计算IE面试笔记-FusionSphere Openstack有哪些关键组件,各组件主要功能是什么?三种存储接入组件的差异有哪些?

    1. Nova:在OpenStack环境中提供计算服务,负责计算实例(VM,云主机)生命周期的管理,包括生成.调度和回收.Nova不负责计算实例的告警上报(FC管). 2. Cinder:为计算实例提 ...

  6. 腾讯云存储专家深度解读基于Ceph对象存储的混合云机制

    背景 毫无疑问,乘着云计算发展的东风,Ceph已经是当今最火热的软件定义存储开源项目.如下图所示,它在同一底层平台之上可以对外提供三种存储接口,分别是文件存储.对象存储以及块存储,本文主要关注的是对象 ...

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

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

  8. 020 ceph作openstack的后端存储

    一.使用ceph做glance后端 1.1 创建用于存储镜像的池 [root@serverc ~]#  ceph osd pool create images 128 128 pool 'images ...

  9. ceph集成openstack cinder

    本环境ceph已经搭建,ceph搭建麻烦见本博客的其他文章 1 在cinder-volume节点安装ceph client yum install -y ceph-common 注意:glance要安 ...

随机推荐

  1. 【Linux】Linux下进程间的通信方式

    本文内容: 1.进程通信的目的 2.介绍Linux下进程间的4种通信方式:管道,消息队列,共享内存,信号量 ps:套接字也可以用于进程间的通信,不过是不同物理机器上的进程通信,本章讨论是是同一台物理机 ...

  2. 08 Tomcat+Java Web项目的创建和War的生成

    1.web服务器软件:服务器:安装了服务器软件的计算机服务器软件:接收用户的请求,处理请求,做出响应 * web服务器软件:接收用户的请求,处理请求,做出响应. 在web服务器软件中,可以部署web项 ...

  3. [转帖]WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为

    WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为 Threatbook2017-05-16共588524人围观 ,发现 17 个不明物体系统安全 https://www.freebuf. ...

  4. [转帖]华为一枝独秀!Q3国内智能手机出货量公布:Ov、小米、iPhone侧目

    华为一枝独秀!Q3国内智能手机出货量公布:Ov.小米.iPhone侧目 https://news.cnblogs.com/n/645880/ 华为真生猛.. 作者:花生酱 国内手机市场份额争夺激烈,你 ...

  5. c++无关类型指针的强制转换原理的分析和尝试

    因最近看到大量的c类型指针强制转换,联系到c++的reinterpret_cast强制转换符,故总结一下. 先上图 由图中可以看出,先声明了一个结构体t与一个含有三个元素的数组num,接着声明一个指向 ...

  6. 面试题:在一个文件中有 10G 个整数,乱序排列,要求找出中位数(内存限制为2G)

    假设整数为32bit,4个字节存储 这种题目,首先想到的是分而治之.将文件中数字分组.然后遍历文件中的数字,按分组进行计数.最后找到中位数所在的分组区间 1.如果10G个整数都为同一个,那么10G整数 ...

  7. docker容器与主机之间的文件复制

    Easy—— 注意:“容器名与文件路径中间的冒号后不能有空格!” 1.从容器复制到主机: sudo docker cp 容器名:文件路径 主机文件/夹路径 2.从主机复制复制到容器: sudo doc ...

  8. springboot项目 配置https

    感谢  https://www.jianshu.com/p/1b7b9e0803c6 帮我解决了问题 生成自签名证书 keytool -genkey -storetype PKCS12 -keysiz ...

  9. 3.01定义常量之define

    [注:本程序验证是使用vs2013版] #include <stdio.h> #include <stdlib.h> #include <string.h> #pr ...

  10. Selenium_css 元素定位

    1.通过id定位       # 代表id driver.find_element_by_css_selector("#kw").send_keys("hao" ...