Manila/Concepts
目录
Manila 概念
这是一份关于 Manila 项目中使用的各种术语的指南,解释了它们的含义、适用对象以及重要性。
Share 是一种具有协议、大小和访问列表的存储单元。Share 是 Manila 提供的基本原语。所有 share 都存在于后端。有些 share 与 share_networks 和 share_servers 相关联。主要支持的协议是 NFS 和 CIFS,但也支持其他协议。
- 租户可以创建、删除、列出、获取详情、创建快照和修改 share 的访问权限。
- 管理员通常不直接与 share 交互,除非是为了调试问题。
- 在 Manila 内部,share 只是数据库表中的一行。
- 供应商/驱动程序可以使用软件和/或硬件以他们希望的方式实现 share。
snapshot
快照是 share 在某个时间点的副本。快照只能用于创建新的 share(包含快照的数据)。在删除所有关联的快照之前,不能删除 share。
- 租户可以创建、删除和列出快照,并且可以从快照创建新的 share。
- 管理员通常不与快照交互,除非是为了调试问题。
- 在 Manila 内部,快照只是数据库表中的一行,链接到 share。
- 供应商/驱动程序使用适合其后端的任何技术来实现快照。
share_type 是管理员定义的“服务类型”,包含租户可见的描述以及一系列非租户可见的键/值对(extra_specs),Manila 调度器使用这些键/值对来做出调度决策。每个 share_type 必须具有 manages_shares_servers=True/False extra_spec。
- 租户可以列出 share_types 并可以使用它们来创建新的 share。
- 管理员创建和删除 share_types,并管理赋予它们在 Manila 内部意义的 extra_specs。
- 在 Manila 内部,share_types 被调度器用于做出调度决策,并被驱动程序用于控制 share 的创建。
- 供应商/驱动程序在创建新的 share 时可以看到 share_type 和关联的 extra_specs,并可以根据这些值配置后端特定的选项。
extra_spec
Extra_specs 是与 share_types 关联的键/值对。有效的键和值由 Manila 及其驱动程序定义。Extra_specs 可以是限定的(带有冒号)或非限定的(没有冒号)。
- 租户会看到特定的常用规范,例如 ``driver_handles_share_servers``、``snapshot_support``、``create_share_from_snapshot_support`` 等。
- 管理员管理与 share_types 关联的 extra_specs。
- 在 Manila 内部,调度器使用非限定的 extra_specs 根据后端/驱动程序发布的capabilities 来做出调度决策。
- 供应商/驱动程序将与 extra_specs 名称匹配的 capabilities 返回给调度器。限定的 extra_specs 仅在驱动程序内部使用。
- 有关 share type extra specifications 的更多详细信息,请参阅 此处。
share_network 是租户定义的对象,用于告知 Manila 一组 share 的安全性和网络配置。Share_networks 仅与管理 share_servers 的后端相关。Share network 包含一个 security_service 和一个或多个网络/子网。在具有 extra-spec ``driver_handles_share_servers`` 设置为 True 的 share type 的情况下创建 share 时,必须提供 share_network。
- 租户使用 security_services 和网络/子网创建 share_networks。如果合适,租户在创建新的 share 时指定 share_network。
- 管理员不应该关心 share_networks。
- 在 Manila 内部,share_networks 与 share_servers 相关联,并用于创建 share_servers。每个 share_server 恰好有一个 share_network,但 share_networks 可以与多个 share_servers 相关联。
- 供应商/驱动程序使用 share_network 中的信息来创建 share_servers。
- 有关 share network 的更多信息,请参阅 此处。
security_service
security_service 是一组选项,定义了特定共享文件系统协议的安全域,例如 Active Directory 域或 Kerberos 域。security_service 包含 Manila 创建加入给定域的服务器所需的所有信息。
- 租户提供 security_service 的详细信息。
- 管理员不应该关心 security_services。
- 在 Manila 内部,security_service 与 share_networks 相关联。
- 供应商/驱动程序使用 security_service 中的信息来配置新创建的 share_servers。
share_server 是 Manila 内部使用的跟踪对象,用于存储为后端动态创建以向特定租户提供数据的任何虚拟机、SVM 或其他资源的网络详细信息。许多后端和驱动程序不需要 share_servers。它们专门用于遵循存储-VM-per-tenant 模型的后端,以便可以在网络层安全地分离租户数据,并且 Manila 可以在租户指定的安全域中创建 share(在我所知的每种技术中都需要存储 VM)。
- 租户永远看不到 share_servers。
- 管理员可以列出和删除 share_servers,但只需要这样做来调试问题。
- 在 Manila 内部,share_servers 只是数据库表中的一行,与 share_network 和一些网络分配相关联。
- 供应商/驱动程序必须向 share manager 发布他们是否支持管理 share_servers。对于那些不支持的,share_servers 将被忽略。对于那些支持的,Manila 将在需要时使用驱动程序的帮助创建 share_servers。
network/subnet
网络和子网由 nova-network 或 neutron 定义。它们与某些后端相关(特别是通用后端)。它们作为 share_networks 的一部分指定。它们用于告诉 Manila share 应该可以从哪些虚拟网络访问,对于 Manila 必须配置后端和租户网络之间的网络连接的情况。
- 租户将网络/子网信息作为 share_network 的一部分提供。
- 管理员不应该关心 share_networks。
- 在 Manila 内部,网络/子网值由具有它们的后端的网络插件解释。
- 供应商/驱动程序可以使用网络/子网值创建 share_servers。特别是通用驱动程序这样做。
backend
backend 是 manila-share 服务的实例,由 manila.conf 中的一个部分定义。每个 backend 恰好有 1 个驱动程序。backend 可以为了高可用性而复制。
- 租户永远看不到 backend。
- 管理员在 manila.conf 文件中设置 backend 并管理在多个控制器节点上运行的服务。
- 在 Manila 内部,backend 是 API 和调度器服务发送请求到的 RPC 端点。backend 将 RPC 请求转换为驱动程序接口调用。backend 还定期向调度器发送更新,以报告 capabilities。
- 供应商/驱动程序在 backend 的上下文中运行。
share driver 是将标准 Manila 操作映射到实际存储控制器上供应商特定操作的代码。
- 租户对 share driver 一无所知。
- 管理员指定在 manila.conf 文件中的每个 backend 中运行的驱动程序,并了解在 Manila 背后使用的实际基础设施。
- 在 Manila 内部,share driver 在 backend 中运行。
- 供应商编写 share driver,贡献它们并对其进行维护。
network plugin
网络插件为管理员提供了一种告知 Manila 如何管理管理 share_servers 的驱动程序/backend 的网络资源的方式。
- 租户
- 管理员
- 在 Manila 内部,
- 供应商/驱动程序
storage controller
通常是一个带有旋转磁盘、以太网端口和某种允许网络客户端读取/写入磁盘上文件的金属盒子。也有仅软件的存储控制器,它们在任意硬件上运行,集群控制器可能允许多个物理设备显示为单个存储控制器,或纯粹的虚拟存储控制器。
- 租户通过数据路径(例如 CIFS 或 NFS)与存储控制器交互。
- 管理员购买、安装和管理存储控制器,以提供 Manila 的底层基础设施。
- 在 Manila 内部,存储控制器被 share driver 抽象化。
- 供应商构建和销售存储控制器,并为其编写驱动程序。