openstack-理论1 manila 文件共享存储服务

共享文件系统服务简介

manila 共享文件系统服务提供计算实例可以使用的共享文件系统。

OpenStack 共享文件系统服务( Manila )为虚拟机提供文件存储。共享文件系统服务提供了用于管理和配置文件共享的抽象。该服务还支持共享类型的管理以及共享快照(如果驱动程序支持)。

逻辑架构

Manila 的逻辑架构如下图所示:

共享文件系统的总体服务是通过以下具体服务实现的:

manila-api

    一个 WSGI 应用程序,用于对整个共享文件系统服务进行身份验证和路由请求。它支持 OpenStack API。

manila-data  

一个独立的服务,其目的是接收请求,处理具有潜在长时间运行时间的数据操作,例如复制、共享迁移或备份。

manila-scheduler 

安排并将请求路由到适当的共享服务。调度程序使用可配置的过滤器和权重来路由请求。过滤器调度器是默认的,可以对诸如容量,可用性区,共享类型和功能以及自定义过滤器进行过滤。

mania-share  

    管理提供共享文件系统的后端设备。Manila 共享服务通过使用共享后端驱动程序作为接口与后端设备进行通信。共享驱动程序可以以两种模式之一操作,无论是否处理共享服务器。共享服务器通过共享网络导出文件共享。如果共享文件系统服务中的共享服务器没有由驱动程序管理时,应该在共享文件系统服务的带之外处理网络需求。

    可运行于有共享服务器和无共享服务器两种模式。前者需要 Manila 关注组网,使用 nova、neutron 和 cinder 服务管理共享服务器;后者则不处理任何组网问题,使用 LVM 驱动和 NFS 共享,由用户保证云主机和 NFS 服务器之间的网络连接。

  • Shared File Systems Option 1: No driver support for share servers management

     选项1部署服务不包含对共享管理的驱动支持。这种模式下,服务不需要任何和网络有关的部署。操作者必须确保实例和NFS服务器之间的连接。本选项使用需要包含LVM和NFS包以及一个额外的命名为``manila-share``的LVM卷组的LVM驱动器。

  • Shared File Systems Option 2: Driver support for share servers management

选项2部署服务包含对共享管理的驱动支持。这种模式下,服务需要计算(nova),网络(neutron),块存储(cinder)服务来管理共享服务器。这部分信息用于创建共享服务器,就像创建共享网络一样。本选项使用支持共享服务处理的generic驱动器,并且需要一个连接到路由的私网``selfservice`。

messaging Queue  

在共享文件系统进程之间路由信息。

Backend Storage devices 

共享文件服务需要某种形式的后端共享文件系统提供程序,引用实现使用块存储服务( Cinder ) 和服务虚拟机( VM ) 来提供共享。 其他驱动程序用于从各种供应商解决方案中访问共享文件系统。

后端对应着一个共享文件系统实例的提供者。后端在 manila.conf 中进行定义。一个实例必然对应一个后端,而一个后端有且只有一个驱动。通过采用多个后端的方式,可以提供数据服务以保障高可用。

UserS and Tenants(Projects)

共享文件系统服务可以被许多不同的云计算消费者或客户(共享系统上的租户) 使用基于角色的访问任务。 角色控制了允许用户执行的操作。 在默认配置中,大多数操作不需要特定的角色,除非他们只限于管理员,但是这可以由维护规则的适当的 policy.json 文件中的系统管理员来配置。 用户管理特定权限受到租户的限制。 通过 IP 或用户访问规则,可以保证访客登录和使用的权限。 用于控制可用硬件资源的资源消耗的配额是每个租户。

对租户而言,配额管制可以限制:

  • 可以创建的共享数量
  • 可供分享的千兆字节数
  • 可以创建的共享快照数量
  • 可以为共享快照提供的千兆字节数
  • 可以创建的共享网络的数量
  • 可以创建的共享组的数量
  • 可以创建的共享组快照的数量

您可以使用共享文件系统 CLI 修改默认配额值,因此配额设置的限制是由管理员用户编辑的。

Shares, snapshots, and share networks

Shares

共享实例是一个指定了协议、大小和可访问列表的存储单元,是 Manila 提供的基础原语单元。 所有的共享实例都存在于后端, 一些共享实例与共享网络和共享服务器相关联。 文件系统实例可被多个虚拟机并发访问,支持的主要协议是 NFS 和 CIFS,但也支持其他协议。

Snapshots

快照是一个共享实例在某一时刻的只读镜像。快照只能用于创建新的共享实例(包含快照数据)。只有在所有相关快照被删除时,共享实例才能被删除。

Share networks

共享网络描述与文件系统实例相关的网络实现,告知 Manila 一组共享文件系统实例使用的安全和网络配置。一个共享网络包括安全服务( Security Service )和涉及的网络及子网( Network/Subnet )。共享网络是一个面向多租户定义的对象,Manila 通过共享网络支持多租户,网络多租户通过标准特性如 VLAN 和 VXLAN 实现。一个共享文件系统实例只能属于一个共享网络。

Share  type

共享类型是一个由管理员定义的“服务类型”,它包括一个租户可见的描述和一组租户不可见的键值对列表。Manila 调度器利用此键值对信息进行调度决策。

Extra Spec

额外规格即共享类型中的一组键值对。额外规格由 Manila 和后端驱动定义。

安全服务

安全服务指 LDAP、Active Directory、Kerberos 等用户安全服务。安全服务包含 Manila 创建一个服务器加入指定安全域必需的所有信息。一个共享文件系统实例可以被关联到多个安全服务。

Share Drivers

共享驱动的概念很明确。共享驱动是后端文件共享服务的具体实现,如 Clustered ONTAP、EMC VNX、GlusterFS 等。

Generic Share Driver

  • Manila 为每个共享网络创建一个 Nova 计算实例
  • Nova 计算实例通过 Cinder 的 Volume 来提供 NFS/CIFS 共享服务
  • 通过 Neturon 连接到现有网络及子网
  • 创建 Nova 实例所必需的 Nova 的 Flavor 、Glance 的镜像、SSH Keypair 均通过 Manila 进行配置
  • Manila 则通过 SSH 对 Nova 实例进行配置

Share Access Rule

Manila 通过共享访问规则定义哪些客户端可以访问共享文件系统实例。目前 Manila 支持的访问控制类型包括 IP 地址、用户名和 SSL 认证。

实例生命周期管理

Manila 提供完整的共享文件系统实例生命周期管理,包括:

  1. 创建、删除实例;
  2. 列出所有实例;
  3. 获得实例细节信息;
  4. 生成实例快照;
  5. 修改实例访问信息;
  6. 挂载和卸载文件系统实例。

使用场景

以下是 Manila 的部分关键使用场景:

  1. 替代自主开发(home-grown)的 NAS 部署工具。
  2. 支持传统企业应用。
  3. 按需的开发和构建环境。
  4. 通过 REST API 或命令与现有自动化框架集成。
  5. 支持云原生工作负载,如 DBaaS。
  6. 支持大数据,例如通过 Manila 的 HDFS 原生驱动插件。

  7. 提供安全的跨租户文件共享。

  8. 混合云间共享文件系统。

参考文档:

https://blog.csdn.net/chinagissoft/article/details/51274884

https://blog.51cto.com/devingeng/1745955

https://www.fumengji.com/2018/08/28/openstack-%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB%E6%9C%8D%E5%8A%A1manila/

https://docs.openstack.org/mitaka/zh_CN/install-guide-obs/common/get_started_shared_file_systems.html

https://blog.51cto.com/yuweibing/1981185

 欢迎关注微信公众号:启航学城,干货满满,扫码关注:

 也欢迎加入OpenStack技术交流群,进行技术交流。

 

posted @ 2019-07-06 22:27  启航学城  阅读(3643)  评论(0编辑  收藏  举报