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