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