如何使用ceph當作nova backend storage
在ceph node底下
# 建立ceph pool 給nova使用,pool名稱為vms
$ sudo ceph osd pool create vms 128
|
建立一個user為client.nova並對pool vms相關權限設定,產生一個keyring file
$ ceph auth get-or-create client.nova mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rx pool=images' -o /etc/ceph/ceph.client.nova.keyring
# 複製ceph.conf與nova.keyring到openstack controller上
$ scp /etc/ceph/ceph.conf root@openstack node ip:/etc/ceph
$ scp /etc/ceph/ceph.client.nova.keyring root@openstack node ip:/etc/ceph
# 複製client.nova的key複製到controller /tmp/client.cinder.key上
$ ceph auth get-key client.nova | ssh openstack node ip tee /tmp/client.nova.key
|
添加一个secret key到libvirt
$ uuidgen
7ad56fa3-23e2-4d86-ae9e-253326a704f5
$ cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<uuid>7ad56fa3-23e2-4d86-ae9e-253326a704f5</uuid>
<usage type='ceph'>
<name>client.nova secret</name>
</usage>
</secret>
EOF
$ virsh secret-define --file secret.xml
Secret 7ad56fa3-23e2-4d86-ae9e-253326a704f5 created
$ virsh secret-set-value --secret 7ad56fa3-23e2-4d86-ae9e-253326a704f5 $(cat /tmp/client.nova.key)
# 查詢密鑰
$ virsh secret-list
UUID Usage
-------------------------------------------------------------
d65bc749-e160-44d3-a903-9c50291b4293 ceph client.cinder secret
7ad56fa3-23e2-4d86-ae9e-253326a704f5 ceph client.nova secret
|
我們這邊的nova-compute服務是跑在openstack controller上
# 在opentack controller上的ceph.conf新增cinder的setion
$ vim /etc/ceph/ceph.conf
[client.nova]
keyring = /etc/ceph/ceph.client.nova.keyring
# 修改權限
$ chmod 0640 /etc/ceph/ceph.client.nova.keyring
$ chown nova:nova /etc/ceph/ceph.client.nova.keyring
# 修改/etc/nova/nova-compute.conf
$ sudo cp /etc/nova/nova-compute.conf /etc/nova/nova-compute.conf.bak
$ sudo vim /etc/nova/nova-compute.conf
# 修改或是新增以下參數
[libvirt]
virt_type=qemu
images_rbd_ceph_conf = /etc/ceph/ceph.conf
images_rbd_pool = vms
images_type = rbd
rbd_user = nova
rbd_secret_uuid = 7ad56fa3-23e2-4d86-ae9e-253326a704f5
disk_cachemodes="network=writeback"
# 重啟 nova-compute服務
$ restart nova-compute
|
驗證是否連接ceph成功
$ nova boot --flavor m1.tiny --image image-name instance1
|
參考來源:
Ceph与OpenStack的Nova相结合
留言
張貼留言