如何使用ceph當作cinder backend storage
在ceph node底下
# 建立ceph pool 給cinder使用,pool名稱為volumes
$ sudo ceph osd pool create volumes 128
|
建立一個user為client.cinder並對pool volumes相關權限設定,產生一個keyring file
$ sudo ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images' -o /etc/ceph/ceph.client.cinder.keyring
# 複製ceph.conf與cinder.keyring到openstack controller上
$ scp /etc/ceph/ceph.conf root@openstack node ip:/etc/ceph
$ scp /etc/ceph/ceph.client.glance.keyring root@openstack node ip:/etc/ceph
# 複製client.cinder的key複製到controller /tmp/client.cinder.key上
$ ceph auth get-key client.cinder | ssh openstack node ip tee /tmp/client.cinder.key
|
添加一个secret key到libvirt
$ uuidgen
d65bc749-e160-44d3-a903-9c50291b4293
$ cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<uuid>d65bc749-e160-44d3-a903-9c50291b4293</uuid>
<usage type='ceph'>
<name>client.cinder secret</name>
</usage>
</secret>
EOF
$ virsh secret-define --file secret.xml
Secret d65bc749-e160-44d3-a903-9c50291b4293 created
$ virsh secret-set-value --secret d65bc749-e160-44d3-a903-9c50291b4293 $(cat /tmp/client.cinder.key)
# 查詢密鑰
$ virsh secret-list
UUID Usage
-------------------------------------------------------------
d65bc749-e160-44d3-a903-9c50291b4293 ceph client.cinder secret
|
我們這邊的cinder服務是跑在openstack controller上
# 在opentack controller上的ceph.conf新增cinder的setion
$ vim /etc/ceph/ceph.conf
[client.cinder]
keyring = /etc/ceph/ceph.client.cinder.keyring
# 修改權限
$ chmod 0640 /etc/ceph/ceph.client.cinder.keyring
$ chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
# 修改/etc/glance/cinder.conf
$ sudo cp /etc/cinder/cinder-api.conf /etc/cinder/cinder.conf.bak
$ sudo vim /etc/glance/cinder.conf
# 修改或是新增以下參數
[DEFAULT]
enabled_backends = rbd
[rbd]
volume_backend_name = rbd
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 = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
glance_api_version = 2
rbd_user = cinder
rbd_secret_uuid = d65bc749-e160-44d3-a903-9c50291b4293
# 重啟 cinder服務
$ restart cinder-volume
$ restart cinder-api
$ restart cinder-scheduler
|
驗證是否連接ceph成功
留言
張貼留言