OpenStack集成ceph


openstack組件集成ceph

OpenStack集成ceph詳細過程可以查看ceph官方文檔:ceph document

OpenStack Queens版本,1台控制節點controller,1台計算節點compute;

1. 創建存儲池

  1. Glance:Glance可以把鏡像存儲在Ceph上;

  2. Cinder:Cinder負責管理volume,把volume掛載給instance使用或者直接從volume啟動instance。集成Ceph后可以讓Cinder在Ceph上創建volume;

  3. Nova:在OpenStack Havana版本開始,Nova可以直接把instance的disk存放在Ceph上。

在Ceph集群上總共創建3個存儲池,分別給Glance,Cinder和Nova使用;

  1. backups: 存放備份文件

2. 配置OpenStack的ceph客戶端

2.1. 拷貝ceph.conf

把Ceph的配置文件/etc/ceph/ceph.conf拷貝到2台OpenStack節點上,控制節點和計算節點都需要,因為他們都要跟Ceph通信。

ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf

注意:

運行着 glance-apicinder-volumenova-computecinder-backup 的主機被當作 Ceph 客戶端,它們都需要 ceph.conf 文件。

2.2. 安裝軟件包

在控制節點安裝python-rbd和ceph軟件包:

[root@controller   ~]# yum install -y python-rbd ceph

在計算節點安裝ceph:

[root@compute   ~]# yum install -y ceph

注意: 如果不安裝ceph,OpenStack在使用Ceph時會報找不到ceph命令。

2.3. 配置cephx認證

創建client.cinder用戶給Cinder和Nova使用,cinder用戶有存儲池volumes、vms、images的所有權限

[root@ceph1 ~]# 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'

創建client.glance用戶給Glance使用,glance用戶有存儲池images的所有權限

[root@ceph1 ~]# ceph auth get-or-create client.glance mon 'allow   r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'

生成2個用戶的密鑰文件,

[root@ceph1 ~]# ceph auth   get-or-create client.cinder > /etc/ceph/ceph.client.cinder.keyring

[root@ceph1 ~]# ceph auth   get-or-create client.glance > /etc/ceph/ceph.client.glance.keyring

然后把/etc/ceph/ceph.client.cinder.keyring和/etc/ceph/ceph.client.glance.keyring拷到controller的/etc/ceph下,並且修改文件權限:

[root@controller ~]# chown cinder:cinder   /etc/ceph/ceph.client.cinder.keyring

[root@controller ~]# chown   glance:glance /etc/ceph/ceph.client.glance.keyring

把/etc/ceph/ceph.client.cinder.keyring拷到compute的/etc/ceph下,並且修改文件權限:

[root@compute ~]# chown nova:nova   /etc/ceph/ceph.client.cinder.keyring

2.4. 配置compute節點的libvirt

在ceph上獲取client.cinder的key

[root@ceph1 ~]# ceph auth get-key   client.cinder > client.cinder.key

把client.cinder.key拷到compute節點的/etc/ceph下,在compute節點上執行以下步驟:

[root@compute ~]# cat > secret.xml <<EOF
<secret   ephemeral='no' private='no'>   <uuid>e21a123a-31f8-425a-86db-7204c33a6161</uuid> <usage   type='ceph'> <name>client.cinder secret</name> </usage>   </secret>
EOF
[root@compute ~]# virsh secret-define --file secret.xml
[root@compute ~]# virsh secret-set-value --secret e21a123a-31f8-425a-86db-7204c33a6161   --base64 $(cat /etc/ceph/client.cinder.key) && rm client.cinder.key   secret.xml

3. 配置Glance

修改glance-api.conf,

[DEFAULT]
......
default_store = rbd
[glance_store]
stores = rbd
rbd_store_chunk_size = 8
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf

重啟Glance服務,

[root@controller ~]# systemctl restart   openstack-glance-api openstack-glance-registry

4. 配置Cinder

修改cinder.conf

[DEFAULT]
......
enabled_backends = ceph
[ceph]
rbd_pool = volumes
rbd_user = cinder
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = false
rbd_secret_uuid =   e21a123a-31f8-425a-86db-7204c33a6161
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = ceph

重啟Cinder服務,

[root@controller   ~]# systemctl restart openstack-cinder-api openstack-cinder-volume

5. 配置Nova

修改compute節點的nova.conf,

[libvirt]
virt_type=kvm
inject_password=false
inject_key=false
inject_partition=-2
disk_cachemodes = "network=writeback"
images_type=rbd
images_rbd_pool=vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
hw_disk_discard=unmap
rbd_user=cinder
rbd_secret_uuid=e21a123a-31f8-425a-86db-7204c33a6161

重啟nova-compute服務,

[root@compute ~]# systemctl restart   openstack-nova-compute

6. 驗證

創建測試鏡像

[root@controller ~]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
#Glance以Ceph RBD為后端存儲時只支持raw格式,不是raw格式創建實例時會出錯
[root@controller ~]# qemu-img convert -f   qcow2 -O raw cirros-0.4.0-x86_64-disk.img cirros-0.4.0-x86_64-disk.raw
[root@controller ~]# openstack image   create "cirros"   --file   cirros-0.4.0-x86_64-disk.raw     --disk-format raw --container-format bare   --public

有兩種在Ceph上啟動實例的方式:

  1. 以鏡像為基礎創建可啟動的卷,然后啟動實例時選擇boot-from-volume,選擇此卷;

  2. 直接使用鏡像創建實例,這種用法是Havana版本后才支持的。

創建實例

​ 測試

7. 總結

OpenStack集成ceph,作為cinder、nova、glance的后端存儲,整體過程:

(1)搭建ceph集群,在Ceph集群上總共創建4個存儲池,分別給Glance,Cinder,Nova和backup使用

(2)將Ceph的配置文件/etc/ceph/ceph.conf拷貝到2台OpenStack節點,以便節點可以和ceph集群進行通信,運行着 glance-apicinder-volumenova-computecinder-backup 的主機被當作 Ceph 客戶端,它們都需要 ceph.conf 文件。

(3)在OpenStack中配置ceph客戶端

(4)修改Glance的配置文件,支持ceph后端存儲

(5)修改Cinder的配置文件,支持ceph后端存儲

(6)修改Nova的配置文件,支持ceph后端存儲

上述過程完成后,即可將OpenStack的所有存儲工作交給ceph來管理,在OpenStack數據的容災備份方面即有ceph來接管。

具體實現OpenStack數據容災備份備份,可參考博文:ceph中rbd的備份和恢復

文章參考:OpenStack集成ceph


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM