首先说下什么是OpenStack?

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服 务提供API以进行集成。用Python语言编写。

什么是NAS服务?

众所周知,存储有几种类型的存储,DAS(Direct Attached Storage),NAS(Network Attached Storage),SAN(Storage Area Network)今天主要围绕NAS来展开介绍。

NAS全称Network Attached Storage,就是基于网络的存储服务,这里的网络一般是以太网。当存储通过网络交付后,局域网内多个应用都能通过网络挂载存储服务,而主流NAS服务都支持CIFS协议和NFS协议。

什么是Manila?

马尼拉这个OpenStack项目听起来很像某个国家的的首都,是的没错,它就是菲律宾的首都。哈哈,咱们言归正传:)

Manila项目全称是File Share Service,文件共享即服务。是OpenStack大帐篷模式下的子项目之一,用来提供云上的文件共享,支持CIFS协议和NFS协议。

社区情况

目前Manila项目的主导者是由各大存储厂商把持 NetApp、Mirantis、EMC、IBM等等,项目情况的话目前版本也是跟随OpenStack版本发布一同发布的。

下面是Manila项目的Git地址、wiki地址和IRC地址。每周四23点可以参与社区的meeting讨论

https://github.com/openstack/manila

https://wiki.openstack.org/wiki/Manila

#openstack-manila on IRC(Freenode)

功能性介绍

Share

用户指定大小、访问协议、共享类型

可被多个实例并行访问

Share Access RuleACL

定义哪些客户端可以访问Share

根据IP地址进行定义

Share Network(共享网络)

定义客户端访问Share使用的Neutron的网络及子网

一个Share只能属于一个Share Network

Security Service(安全服务)

用户安全服务(LDAPActive DirectoryKerberos等)

一个Share可以被关联至多个安全服务

Snapshots(快照)

共享文件系统的只读副本

可以从快照创建共享文件系统服务

Backend

Share服务的提供者

一个share必然属于一个backend

Driver(驱动)

后端文件共享服务的具体实现,例如GPFSGlusterfsEMC VNXGenericCephfs

一般使用Generic驱动,Cephfs(Native CephFS Driver)驱动已经有人提交了。已经Merged

https://review.openstack.org/#/c/270211/ 不过此驱动不建议生产使用,在云环境下实际上是不太会允许 VM 业务网络能够直接访问后端的存储网络的,而在 VM 上直接提供对于 CephFS 的访问也暴露了 Ceph,因此大概也只能在内部小规模私有云中被接受。

还有以下一些关于Ceph对接Manila的驱动:

  1. Default Driver: 使用 RBD 作为 Manila Service VM 的后端,在 VM 上启动 NFS 实例提供服务

  2. Ganesha Driver: 使用 Ganesha 将 CephFS 重新 Reexport 出去

  3. Native CephFS Driver: 在 Guest VM 上直接使用原生 CephFS Module 访问

  4. VirtFS Driver: 将 CephFS 挂载在 Host 端,VM 通过 VirtFS 访问

具体详解可以看下豪迈的博客文章:http://www.wzxue.com/tag/manila/

创建Manila Share过程说明(这里使用的是Generic驱动

wKiom1bTvmiju4ZlAAB2I43IlVg774.jpg

创建一个Nova实例,通过Cinder的Volume来提供NFS/CIFS共享服务

每个Share Network创建一个Nova实例

连接到已存在Neutron网络及子网中

创建Nova实例使用的Nova的flavor、Glance的image、SSH Keypair均是Manila配置的

Manila通过 SSH对Nova实例进行配置

Manila API概览

wKioL1bTwDig3ZpJAAE7xHrIHxk446.png

wKioL1bTwDmzUmMfAAL44BN7lMI170.png

Manila网络详解

关于Manila网络的管理以及连接的详细说明在王为的博客文章中已经详细说明了,这里就不在赘述。http://mytrix.me/2015/01/network-part-of-manila/,以及陈迪豪博客文章的为什么私有网络要绑路由器存在疑惑:http://www.jianshu.com/p/d04f829e3330 这两篇文章都很经典值得一看。

Manila-UI Horizon截图

wKioL1bTwV2w3taQAACs2FKKMAc035.png

wKioL1bTwV2gxmC-AADFAwMl6sA328.png

wKiom1bTwOiiI4cAAACaLlMQXo4649.png

wKioL1bTwV6g0yemAACkIB9c72s370.png