目前hcloud中cinder的后端为LVM块存储:
|
这里讲后端改为ceph块存储
首先在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
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
查看有多少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
官方指南: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
为什么创建起来会这么慢?只是一个1G的volume
是不是就是之前讨论的,在虚拟机用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 | |
+--------------------------------------+-----------+------------+------+-------------+----------+-------------+