Cinder配置多Ceph后端步骤

1. 检查cinder当前backend配置

使用cinder service-list,查看cinder-volume服务的Host字段格式。

旧版格式:

Cinder配置多Ceph后端步骤

新版格式:

Cinder配置多Ceph后端步骤

旧版中Host字段是cinder-volume服务所在节点的HOSTNAME,新版中Host字段是HOSTNAME@BACKEND。

如果是旧版,需要先修改为新版,见步骤2。

如果是新版,不需要修改,直接执行步骤3。

 

2. 修改旧版backend配置为新版

编辑/etc/cinder/cinder.conf文件,删除其中原有的ceph backend相关配置:

[DEFAULT]
rbd_store_chunk_size = 4
rbd_max_clone_depth = 5
rbd_flatten_volume_from_snapshot = true
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_pool = volumes
rados_connect_timeout = -1
volume_driver = cinder.volume.drivers.rbd.RBDDriver

添加如下配置:

[DEFAULT]
enabled_backends = ceph

[ceph]
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = true
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2
volume_backend_name=ceph
volume_driver = cinder.volume.drivers.rbd.RBDDriver

重启cinder-volume服务:

# service cinder-volume restart                    # 对于Ubuntu 14.04
# systemctl restart openstack-cinder-volume        # 对于CentOS 7

执行cinder service-list,查看cinder-volume的Host字段是否变为新版格式。

然后更新已经创建的volume的host属性:

# cinder-manage volume update_host --currenthost HOSTNAME --newhost HOSTNAME@BACKEND

例如:

# cinder-manage volume update_host --currenthost node-1.domain.tld --newhost node-1.domain.tld @ceph

查看volume 的os-vol-host-attr:host属性已经变为HOSTNAME@BACKEND#RBD的格式:

Cinder配置多Ceph后端步骤

到此,旧版配置格式已经改成新版配置格式,进行步骤3添加另一个ceph后端。

 

3. 添加一个ceph后端

将新的ceph集群的配置文件复制到所有openstack节点(包括控制节点和计算节点)。

注意:不同ceph集群依靠配置文件的名字区分,如:已有ceph集群的配置文件为/etc/ceph/ceph.conf,如果新集群全用SAS盘,配置文件可以命名为:/etc/ceph/ceph-sas.conf。

然后编辑/etc/cinder/cinder.conf,添加新的ceph backend,编辑完后的相关配置如下:

[DEFAULT]
enabled_backends = ceph,ceph-sas

[ceph]
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = true
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2
volume_backend_name=ceph
volume_driver = cinder.volume.drivers.rbd.RBDDriver

[ceph-sas]
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph-sas.conf
rbd_flatten_volume_from_snapshot = true
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2
volume_backend_name=ceph-sas
volume_driver = cinder.volume.drivers.rbd.RBDDriver

重启cinder-volume服务:

# service cinder-volume restart                    # 对于Ubuntu 14.04
# systemctl restart openstack-cinder-volume        # 对于CentOS 7

执行cinder service-list命令,可以看到每个后端对应一个cinder-volume服务:

Cinder配置多Ceph后端步骤

 

4. 配置volume-type

对于每个ceph后端,创建一个volume type,并将volume type关联配置文件中的volume_backend_name:

# cinder type-create ceph
# cinder type-key ceph set volume_backend_name=ceph
# cinder type-create ceph-sas
# cinder type-key ceph-sas set volume_backend_name=ceph-sas

然后执行cinder type-list可以看到配置的volume type:

Cinder配置多Ceph后端步骤

 

5. 创建卷

此后创建卷时,可以指定volume type,将卷创建到指定的ceph后端:

# cinder create 10 --name vol-01 --volume-type ceph-sas

前端也可选则volume type:

Cinder配置多Ceph后端步骤

注:如果不指定volume type,cinder-scheduler会忽略volume type,按默认的调度器从所有cinder-volume调度。

 

上一篇:nova虚拟机镜像从创建到文件系统resize完整流程


下一篇:Memcached配置失误引发的Keystone token丢失的问题