開源技術(shù)實踐分享:Manila + Cephfs 調(diào)研
原創(chuàng)本文章主要介紹如何在Openstack Pike + kolla 集成Manila項目提供NAS服務(wù)。主要是Manila驅(qū)動為Cephfs的情況,利用Ganesha把Guest NFS 協(xié)議轉(zhuǎn)換為libcephfs協(xié)議存儲數(shù)據(jù)。
一、簡單介紹
什么是Manila?
Manila項目全稱是File Share Service,文件共享即服務(wù)。是OpenStack大帳篷模式下的子項目之一,用來提供云上的文件共享服務(wù),支持CIFS協(xié)議和NFS協(xié)議。目前Manila項目中集成了眾多驅(qū)動實現(xiàn)共享服務(wù),使用驅(qū)動最多還是Cephfs, 所以值得看看。
二、驅(qū)動分類
本文講述的manila cephfs驅(qū)動分為兩種,其它眾多驅(qū)動請參考官方手冊。
1、cephfs native share
相當(dāng)于租戶虛機直接連接cephfs集群,存在安全問題,生產(chǎn)環(huán)境中很難推動。
- ceph-common包安裝在manila-share中
- ceph-common/ceph-fuse 軟件安裝在租戶虛機Guest里
- ceph集群與manila-share網(wǎng)絡(luò)打通
- ceph集群與租戶虛機網(wǎng)絡(luò)打通
2、cephfs nfs share
利用Ganesha作中轉(zhuǎn),把Guest NFS 協(xié)議轉(zhuǎn)換為libcephfs協(xié)議存儲數(shù)據(jù),隱藏后端ceph集群,更適合云的業(yè)務(wù)場景。
官網(wǎng)說明
1、Pike or later versions of manila.
2、Kraken or later versions of Ceph.
3、2.5 or later versions of NFS-Ganesha.
4、A Ceph cluster with a filesystem configured
5、ceph-common package installed in the servers running the manila-share service.
6、NFS client installed in the guest.
7、Network connectivity between your Ceph cluster’s public network and the servers running the manila-share service.
8、Network connectivity between your Ceph cluster’s public network and NFS-Ganesha server.
9、Network connectivity between your NFS-Ganesha server and the manila guest.
三、環(huán)境準(zhǔn)備
1、系統(tǒng)配置(hosts、時間同步等)
2、openstack pike + ceph 環(huán)境
跟據(jù)官網(wǎng)所說準(zhǔn)備一套openstack pike + ceph +kolla環(huán)境,其中cephfs配置參照cephfs補丁,跑出一個cephfs集群。
四、安裝nfs-ganesha
1、配源nfs-ganesha
2、安裝nfs-ganesha
由于沒有單獨制作nfs-ganesha的docker鏡像, 所以直接在主控上面安裝nfs-ganesha作測試。
3、配置nfs-ganesha
編輯配置文件
4、服務(wù)啟動
啟動服務(wù)
五、安裝Manila
1、安裝Manila
注意:kolla中g(shù)lobal.yml有關(guān)Manila配置
2、授權(quán)Manila
如下命令會生成manila.keyring文件,一并復(fù)制到 manila-share的/etc/ceph目錄下
3、配置Manila
manila-share基礎(chǔ)包安裝
manila-share 關(guān)于ceph的配置
編輯manila-share的/etc/ceph/ceph.conf 添加如下配置
支持快照
編輯manila-share的/etc/manila/manila.conf 添加如下配置:
注意:manila-share去調(diào)nfs-ganesha的協(xié)議是ssh,所以有必要配置ssh訪問.如果nfs-ganesha與manila-share服務(wù)在一臺機器上不用配ssh的。并且cephfs_ganesha_server_is_remote= False 讓其調(diào)用本地ganesha即可。
4、驗證服務(wù)
重啟各manila/ceph容器或服務(wù)
六、Manila測試
1、創(chuàng)建實例
創(chuàng)建manila實例
2、查看共享路徑
查看共享路徑
3、權(quán)限管理
4、vm 掛載
在己授權(quán)IP地址的guest vm 上掛載(其實是任意支持NFS協(xié)議客戶端包括云以外的主機)
5、容量管理
***只能寫入創(chuàng)建共享實例定義的容量空間
dashborad視圖
手動dd測試寫入超過先前定義容量時將返回錯誤
當(dāng)業(yè)務(wù)數(shù)據(jù)量大時可擴容Manila共享實例
參考鏈接:
官方手冊:https://docs.openstack.org/manila/pike/contributor/
開發(fā)文檔:https://docs.openstack.org/manila/latest/