云計算-Openstack云平臺對接Ceph構建存儲融合
云計算的三個組成部分:計算、存儲、網絡,在各種云平臺管理之下,我們的這些資源可以完美的融合到一起,Openstack作為最優秀的開源平臺,被各大廠商使用。在如今,超融合的概念更被大家熟知,通過分布式集中存儲架構將計算和存儲融為一體,就能夠完成“超融合系統”的落地。
Ceph是一種大容量、通過負載實現高性能和高性能的分布式文件系統,也是OpenStack 里寄予厚望的開源存儲解決方案,我在上一篇文章中已經完成了Ceph集群的部署,這里便使用現成的Ceph集群測試環境。
實驗拓撲:
Ceph三個節點構建分布式存儲集群,通過修改配置對接Openstack中Cinder、Glance、nova服務組件,完成Openstack超融合,為云平臺提供塊存儲、鏡像存儲、虛擬機文件存儲
一、配置Openstack為Ceph客戶端
1、客戶端安裝
#將openstack節點添加hosts,install安裝ceph客戶端軟件,admin將配置拷貝到節點
[root@ceph-node1 ~]# echo '192.168.1.110 controller' >> /etc/hosts [root@ceph-node1 ceph]# ceph-deploy install controller [root@ceph-node1 ceph]# ceph-deploy admin controller
2.配置后端存儲池
#分別創建存儲池對應glance\nova\cinder服務
[root@ceph-node1 ceph]# ceph osd pool create images 128 pool 'images' created [root@ceph-node1 ceph]# ceph osd pool create vms 128 pool 'vms' created [root@ceph-node1 ceph]# ceph osd pool create volumes 128 pool 'volumes' created
查看當前存儲池
#創建存儲用戶認證,PS:更新認證使用caps
[root@ceph-node1 ceph]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=images' [client.glance.mon] key = AQAwxx1frBmLLBAAmcelOkoq55BQgb0u34gJfw==
#拷貝密鑰到openstack
[root@ceph-node1 ceph]# ceph auth get-or-create client.glance|ssh controller tee /etc/ceph/ceph.client.glance.keyring root@controller's password: [client.glance] key = AQBgxx1fMX9gGRAANQb0KICq1bExhGVQ6qYhkg==
#修改節點的keyring權限
[root@ceph-node1 ceph]# ssh controller chown glance:glance /etc/ceph/ceph.client.glance.keyring root@controller's password:
二、配置Glance服務
#修改glance-api.conf配置,如下
[root@controller glance]# vim /etc/glance/glance-api.conf [DEFAULT] rpc_backend = rabbit show_image_direct_url = True [glance_store] stores = rbd default_store = rbd rbd_store_pool = images rbd_store_user = glance rbd_store_ceph_conf = /etc/ceph/ceph.conf rbd_store_chunk_size = 8
#修改完成后重啟glance-api服務
[root@controller glance]# openstack-service restart glance-api
測試:
在ceph中啟動虛擬機,只支持鏡像格式為raw,因此先轉換鏡像格式為raw
[root@controller images]# qemu-img convert -p -f qcow2 -O raw cirros-0.3.4-x86_64-disk.img cirros.raw
(100.00/100%)
使用glance image-create命令上傳鏡像
成功上傳后,rbd ls images查看鏡像池
可以看到存儲池中的文件與鏡像的ID相同,glance后端存儲配置完成
三、配置NOVA服務
建議先配置Cinder服務的對接
Nova compute使用RBD有兩種方式:一種是將cinder volume掛載給虛擬機;另一種是從Cinder volume 上啟動虛擬機,此時Nova需要創建一個RBD image,把glance image的內容導入,再交給libvirt。
這邊驗證第一種Nova使用Ceph的情況:
[root@controller ~]# vim /etc/nova/nova.conf [libvirt] virt_type = qemu inject_key = True rbd_user = cinder rbd_secret_uuid = 674fea11-e69e-4c95-b378-2baa19cd6b4e [root@controller ~]# systemctl restart openstack-nova-compute
測試:
查詢網絡id,nova boot啟動一臺cirros鏡像的實例,名稱為ceph-VM-test
查詢之前創建在ceph的云硬盤ID,nova volume-attach掛載云硬盤到ceph-VM-test實例
再次列出cinder硬盤,可以看到卷成功掛載
Dashboard上云主機界面,云主機正常運行
Dashboard上卷界面,云硬盤掛載正常
網絡配置正常,ssh連接實例成功
四、配置Cinder服務
#創建cinder認證
[root@ceph-node1 ceph]# 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.cinder] key = AQBl0R1fa0KcFBAA3GDkcSyiC+A50ufHyqc6qQ==
#拷貝keyring文件到openstack
[root@ceph-node1 ceph]# ceph auth get-or-create client.cinder|ssh controller tee /etc/ceph/ceph.client.cinder.keyring root@controller's password: [client.cinder] key = AQBl0R1fa0KcFBAA3GDkcSyiC+A50ufHyqc6qQ==
#修改keyring文件權限
[root@ceph-node1 ceph]# ssh controller chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring root@controller's password:
在Openstack節點上生成UUID,編寫定義secret.xml文件,設置密鑰給libvirt
#openstack創建uuid
[root@controller ~]# uuidgen 674fea11-e69e-4c95-b378-2baa19cd6b4e
#編寫定義secret.xml文件,拷貝UUID
[root@controller ~]# vim secret.xml
#define定義密鑰文件
[root@controller ~]# virsh secret-define --file secret.xml 生成 secret 674fea11-e69e-4c95-b378-2baa19cd6b4e
#生成保密字符串文件
[root@controller ~]# virsh secret-set-value --secret 674fea11-e69e-4c95-b378-2baa19cd6b4e --base64 $(cat ./client.cinder.key)
secret 值設定
查看系統密鑰文件
[root@controller ceph]# vim /etc/cinder/cinder.conf [DEFAULT] rpc_backend = rabbit auth_strategy = keystone my_ip = 192.168.1.110 enabled_backends = ceph glance_api_servers = http://controller:9292 [ceph] 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 = 674fea11-e69e-4c95-b378-2baa19cd6b4e
#重啟服務
[root@controller ceph]# systemctl restart openstack-cinder-volume.service
測試:
cinder創建磁盤ceph-disk
列出cinder磁盤,新建的磁盤狀態為available
dashboard界面顯示可用
最后到存儲池中查看,已經有ID和ceph-disk卷相同的文件。cinder對接ceph完成
OpenStack 云計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。