本文主要介绍如何在OpenstackPike+kolla中集成Manila项目提供NAS服务。主要是当Manila驱动为Cephfs时,使用Ganesha将GuestNFS协议转换为libcephfs协议来存储数据。1.简单介绍一下什么是马尼拉?马尼拉项目的全称是FileShareService,文件共享即服务。是OpenStack大帐篷模式下的子项目之一,用于提供云端文件共享服务,支持CIFS协议和NFS协议。目前马尼拉项目中集成了很多驱动程序,实现共享服务。Cephfs是最常用的驱动程序,因此值得一试。2.驱动分类本文介绍的manilacephfs驱动分为两种。对于许多其他驱动程序,请参阅官方手册。1、cephfsnativeshare相当于租户虚拟机直连cephfs集群,存在安全问题,生产环境难以推广。ceph-common包安装在manila-share中。ceph-common/ceph-fuse软件安装在租户虚拟机Guest中。ceph集群和manila-share网络相连。ceph集群和租户虚拟机网络相连。2、cephfsnfsshare以Ganesha为中转,将GuestNFS协议转换为libcephfs协议存储数据,隐藏后端ceph集群,更适合云业务场景。官网说明1、Pike或manila.2以上版本、Kraken或Ceph.3以上版本、2.5以上版本NFS-Ganesha.4、配置好文件系统的Ceph集群5、服务器安装ceph-common包运行manila-share服务。6、guest中安装的NFS客户端。7、Ceph集群公网与运行manila-share服务的服务器之间的网络连接。8、Ceph集群公网与NFS-Ganesha之间的网络连接服务器.9。NFS-Ganesha服务器和manila来宾之间的网络连接。三、环境准备1、系统配置(主机、时间同步等)2、openstackpike+ceph环境按照官网准备一套openstackpike+ceph+kolla环境,这里的cephfs配置指的是cephfs补丁,并运行一个cephfs集群。4、安装nfs-ganesha1,sourcenfs-ganesha2,安装nfs-ganesha由于没有单独的nfs-ganeshadocker镜像,直接在主控制器上安装nfs-ganesha进行测试。3.配置nfs-ganesha编辑配置文件4.启动服务启动服务5.安装Manila1.安装Manila注意:kolla中的global.yml与Manila配置相关2.授权Manila下面的命令会生成一个manila.keyring文件复制到/etc/ceph目录下的manila-share3.配置Manilamanila-share基础包安装manila-share关于ceph配置编辑manila-share的/etc/ceph/ceph.conf添加如下配置支持snapshot编辑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容器或服务6.Manila测试1.创建一个实例创建一个manila实例2.查看共享路径查看共享路径3.权限管理4.将虚拟机挂载到来宾虚拟机上授权IP地址加载(其实是任何支持NFS协议的客户端,包括云以外的主机)5.容量管理***只能写入创建的共享实例dashboard视图定义的容量空间手动dd测试会写入超过之前定义的容量时返回错误当业务数据量较大时,可以扩展Manila的共享实例参考链接:官方手册:https://docs.openstack.org/manila/pike/contributor/开发文档:https://docs.openstack.org/manila/latest/
