将cinder后台配置成ceph块存储(RBD)

 

3. 将cinder后台配置成ceph块存储(RBD)

目前hcloud中cinder的后端为LVM块存储:

[lvm]

volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver

volume_group = cinder-volumes

iscsi_protocol = iscsi

 

 

 

 

 

 

 

 

 


这里讲后端改为ceph块存储

3.1 在Ceph创建RBD设备

首先在ceph中创建一个RBD设备:

 

查看当前资源池:

root@lxpnode1:/etc/apt# ceph osd lspools

0 rbd,

 

 

root@lxpnode1:/etc/apt# ceph -s

   cluster 19c11869-2430-4b9a-8152-e60e36064826

    health HEALTH_OK

    monmap e1: 1 mons at {lxpnode1=192.168.11.6:6789/0}

           election epoch 2, quorum 0 lxpnode1

    osdmap e12: 2 osds: 2 up, 2 in

     pgmap v46: 64 pgs, 1 pools, 0 bytes data, 0 objects

           3565 MB used, 33456 MB / 39051 MB avail

                  64 active+clean

3.1.1 存储池的概念

http://docs.ceph.org.cn/rados/operations/pools

创建存储池前先看看存储池、归置组和 CRUSH配置参考。你最好在配置文件里重置默认归置组数量,因为默认值并不理想。关于归置组数量请参考设置归置组数量

例如:

osdpool default pg num = 100

osdpool default pgp num = 100

要创建一个存储池,执行:

cephosd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \

        [crush-ruleset-name][expected-num-objects]

ceph osd pool create {pool-name}{pg-num}  {pgp-num}   erasure \

       [erasure-code-profile] [crush-ruleset-name] [expected_num_objects]

参数含义如下:

{pool-name} 存储池名称

 

{pg-num}存储池拥有的归置组总数

{pgp-num}用于归置的归置组总数

Replicated存储池类型,可以使副本或纠删

 

创建存储池时,要设置一个合理的归置组数量(如 100 )。也要考虑到每 OSD的归置组总数,因为归置组很耗计算资源,所以很多存储池和很多归置组(如 50个存储池,各包含 100 归置组)会导致性能下降。收益递减点取决于 OSD 主机的强大。

 

设置存储池配额

ceph osd pool set-quota {pool-name}[max_objects {obj-count}] [max_bytes {bytes}]

要取消配额,设置为 0 

 

删除存储池

要删除一存储池,执行:

cephosd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]

如果你给自建的存储池创建了定制的规则集,你不需要存储池时最好删除它。如果你曾严格地创建了用户及其权限给一个存储池,但存储池已不存在,最好也删除那些用户。

 

要重命名一个存储池,执行:

cephosd pool rename {current-pool-name} {new-pool-name}

如果重命名了一个存储池,且认证用户有每存储池能力,那你必须用新存储池名字更新用户的能力(即 caps )。

 

要查看某存储池的使用统计信息,执行命令:

radosdf

 

3.1.2 创建存储池

查看有多少pg:

# ceph pg stat

v46: 64 pgs: 64 active+clean; 0 bytes data,3565 MB used, 33456 MB / 39051 MB avail

 

创建存储池,使用60PG:

cephosd pool create {pool-name} {pg-num}

 

# ceph osd pool create rbd_pool 60

pool 'rbd_pool' created

 

查看rbd_pool的信息:

 

# ceph osd lspools

0 rbd,1 rbd_pool,

 

创建rbd设备:

# rbd create --size 4096 rbd_pool/myrbd

 

root@lxpnode1:/etc/ceph# rbd ls rbd_pool

myrbd

 

 

root@lxpnode1:/etc/ceph# rbd map myrbd -prbd_pool

/dev/rbd1

这里已经出来的/dev/rbd1设备

查看大小:

 

root@lxpnode1:/etc/ceph# lsblk

NAME  MAJ:MIN RM   SIZE RO TYPEMOUNTPOINT

vda   253:0    0    20G 0 disk

├─vda1 253:1    0  19.5G 0 part /

├─vda2 253:2    0     1K 0 part

└─vda5 253:5    0   510M 0 part [SWAP]

rbd1  251:0    0     4G 0 disk

这里rbd1大小为4G

 

3.2 使用/dev/rbd1作为cinder的存储后端

官方指南:http://docs.ceph.org.cn/rbd/rbd-openstack/#cinder

 

配置 CINDER

OpenStack 需要一个驱动和 Ceph块设备交互,还得指定块设备所在的存储池名字。编辑 OpenStack节点上的 /etc/cinder/cinder.conf ,添加:

 

[DEFAULT]

enabled_backends = ceph

 

[ceph]

volume_driver =cinder.volume.drivers.rbd.RBDDriver

rbd_pool = rbd_pool                    

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

 

重启cinder-volume服务:

servicecinder-volume restart

没启动

配置有问题,参考10.33.41.66

修改openstack主机的/etc/hosts,增加ceph的几个地址

192.168.11.6lxpnode1

192.168.11.7lxpnode2

192.168.11.8lxpnode3

 

依旧失败:

openstack主机的防火墙关闭:

 

root@ubuntu:~#ufw disable

Firewallstopped and disabled on system startup

还是有问题

可能是认证的问题,在140.33.41.66上,是无认证的:

 

auth_cluster_required = none

auth_service_required = none

auth_client_required = none

auth_support = none

而我这边是有cephx认证的

参考官方的说明:

以及参考:http://my.oschina.net/JerryBaby/blog/376858

 

如果你在用 cephx认证,还需要配置用户及其密钥(前述文档中存进了 libvirt )的 uuid :

rbd_user = cinder rbd_secret_uuid =457eb676-33da-42ec-9a8c-9293d545c337

 

将认证改为none试试,只是修改的话,cinder还是起不来

请教两个问题:

1. 授权如果由cephx改为none的话,ceph要不要重启?

2. 如果只在cinder中使用rbd的话,需不需要配置radosgw?

解答:

1. 这个应该是需要重启

2. 不需要配置

重启ceph试试:

root@lxpnode1:/etc/ceph# stop ceph-all

ceph-all stop/waiting

root@lxpnode1:/etc/ceph# start ceph-all

ceph-all start/running

再次重启cinder-volume服务:

好像起来了,没有报错,但是Log比较少,不像LVM那么多

看下cinder的状态:

OK,这里服务已经起来了

创建一个云硬盘试试:

openstack页面创建云硬盘:

创建一直停在creating,然后cinder-volume状态变为down

然后volume创建成功,cinder-volume又变为up

为什么创建起来会这么慢?只是一个1Gvolume

是不是就是之前讨论的,在虚拟机用ceph会很卡?

 

root@ubuntu:/etc/ceph# cinder list

+--------------------------------------+-----------+------------+------+-------------+----------+-------------+

|                  ID                  |   Status |    Name    | Size | Volume Type | Bootable | Attachedto |

+--------------------------------------+-----------+------------+------+-------------+----------+-------------+

| afca5661-f27e-44f9-a126-1edc01d7f17c |available | ceph-test1 |  1   |    None    |  false  |             |

+--------------------------------------+-----------+------------+------+-------------+----------+-------------+

你可能感兴趣的:(将cinder后台配置成ceph块存储(RBD))