IBM Spectrum Scale share driver

IBM Spectrum Scale 是一种灵活的软件定义存储产品,可以部署为高性能文件存储或成本优化的、大规模的内容存储库。IBM Spectrum Scale,以前称为 IBM General Parallel File System (GPFS),旨在扩展性能和容量,而不会产生瓶颈。IBM Spectrum Scale 是一种集群文件系统,它提供从多个节点对文件系统的并发访问。这些节点提供的存储可以是直连存储、网络附加存储、SAN 附加存储,或者这些方法的组合。Spectrum Scale 提供了许多超越常见数据访问的功能,包括数据复制、基于策略的存储管理以及高效的文件快照和克隆操作。

支持的共享文件系统和操作(仅 NFS 共享)

Spectrum Scale share driver 支持 NFS 共享。

支持以下操作

  • 创建共享。

  • 删除共享。

  • 允许共享访问。

    • 仅支持 IP 访问类型。

    • 支持读写 (RW) 和只读 (RO) 访问级别。

  • 拒绝共享访问。

  • 创建共享快照。

  • 删除共享快照。

  • 从快照创建共享。

  • 扩展共享。

  • 管理共享。

  • 取消管理共享。

需求

必须安装 Spectrum Scale,并且必须创建一个包含一个或多个存储节点和协议服务器节点的集群。这些节点上运行的 NFS 服务器用于将共享导出到 OpenStack 虚拟机中的存储消费者,甚至导出到 OpenStack 环境中的裸机存储消费者。在配置 manila 服务以使用 Spectrum Scale 存储之前,还必须在这些节点上创建并挂载文件系统。有关更多详细信息,请参阅 Spectrum Scale 产品文档

Spectrum Scale 支持两种通过 NFS 导出数据的方式,具有高可用性。

  1. CES(使用 Ganesha NFS)

    • 这是 Spectrum Scale 协议支持固有提供的,是推荐的 NFS 访问方法。

  2. CNFS(使用内核 NFS)

有关 Spectrum Scale 中 NFS 支持的更多信息,请参阅 Spectrum Scale 中的协议支持Spectrum Scale 中的 NFS 支持概述

下图是 Spectrum Scale 架构与 OpenStack 服务的一个示例

OpenStack with Spectrum Scale Setup

应为通过 Spectrum Scale share driver 使用 NFS 导出的 Spectrum Scale 文件系统启用配额。使用以下命令启用文件系统的配额

$ mmchfs <filesystem> -Q yes

限制

Spectrum Scale share driver 当前仅支持在扁平网络空间中创建 NFS 共享。例如,导出数据的 Spectrum Scale 存储节点应与充当 NFS 客户端并挂载共享的 Compute VM 位于同一网络中。

驱动程序配置

Spectrum Scale share driver 支持使用两种 NFS 服务器(使用 Spectrum Scale CES/Kernel NFS 的 Ganesha)创建共享。

对于这两种 NFS 服务器类型,您需要在 manila.conf 中设置 share_driver

share_driver = manila.share.drivers.ibm.gpfs.GPFSShareDriver

Spectrum Scale CES(NFS Ganesha 服务器)

要以这种模式使用 Spectrum Scale share driver,请在 manila.conf 中设置 gpfs_share_helpers

gpfs_share_helpers = CES=manila.share.drivers.ibm.gpfs.CESHelper

下表列出了与此驱动程序配置一起使用的其他配置选项。

IBM Spectrum Scale CES share driver 配置选项说明

配置选项 = 默认值

描述

[DEFAULT]

gpfs_mount_point_base = $state_path/mnt

(字符串)导出共享所在的基文件夹。

gpfs_nfs_server_type = CES

(字符串)NFS 服务器类型。有效选项为“CES”(Ganesha NFS)或“KNFS”(内核 NFS)。

gpfs_share_export_ip = None

(主机地址)要添加到 GPFS 导出字符串的 IP。

gpfs_share_helpers = KNFS=manila.share.drivers.ibm.gpfs.KNFSHelper, CES=manila.share.drivers.ibm.gpfs.CESHelper

(列表) 指定共享导出助手列表。

gpfs_ssh_login = None

(字符串)GPFS 服务器 SSH 登录名。

gpfs_ssh_password = None

(字符串)GPFS 服务器 SSH 登录密码。如果配置了“gpfs_ssh_private_key”,则不需要密码。

gpfs_ssh_port = 22

(端口号)GPFS 服务器 SSH 端口。

gpfs_ssh_private_key = None

(字符串)用于登录 GPFS 服务器 SSH 私钥的路径。

is_gpfs_node = False

(布尔值)True:当 Manila 服务在 Spectrum Scale 节点之一上运行时。False:当 Manila 服务不在任何 Spectrum Scale 节点上运行时。

注意

仅当 is_gpfs_node 设置为 False 时,才需要与 ssh 相关的配置选项。

Spectrum Scale Clustered NFS(内核 NFS 服务器)

要以这种模式使用 Spectrum Scale share driver,请在 manila.conf 中设置 gpfs_share_helpers

gpfs_share_helpers = KNFS=manila.share.drivers.ibm.gpfs.KNFSHelper

下表列出了与此驱动程序配置一起使用的其他配置选项。

IBM Spectrum Scale KNFS share driver 配置选项说明

配置选项 = 默认值

描述

[DEFAULT]

gpfs_mount_point_base = $state_path/mnt

(字符串)导出共享所在的基文件夹。

gpfs_nfs_server_list = None

(列表)构成 OpenStack Manila 配置的完整 NFS 服务器名称列表。

gpfs_nfs_server_type = CES

(字符串)NFS 服务器类型。有效选项为“CES”(Ganesha NFS)或“KNFS”(内核 NFS)。

gpfs_share_export_ip = None

(主机地址)要添加到 GPFS 导出字符串的 IP。

gpfs_share_helpers = KNFS=manila.share.drivers.ibm.gpfs.KNFSHelper, CES=manila.share.drivers.ibm.gpfs.CESHelper

(列表) 指定共享导出助手列表。

gpfs_ssh_login = None

(字符串)GPFS 服务器 SSH 登录名。

gpfs_ssh_password = None

(字符串)GPFS 服务器 SSH 登录密码。如果配置了“gpfs_ssh_private_key”,则不需要密码。

gpfs_ssh_port = 22

(端口号)GPFS 服务器 SSH 端口。

gpfs_ssh_private_key = None

(字符串)用于登录 GPFS 服务器 SSH 私钥的路径。

is_gpfs_node = False

(布尔值)True:当 Manila 服务在 Spectrum Scale 节点之一上运行时。False:当 Manila 服务不在任何 Spectrum Scale 节点上运行时。

注意

仅当 is_gpfs_node 设置为 False 时,才需要与 ssh 相关的配置选项。

共享创建步骤

示例配置

[gpfs]
share_driver = manila.share.drivers.ibm.gpfs.GPFSShareDriver
gpfs_share_export_ip = x.x.x.x
gpfs_mount_point_base = /ibm/gpfs0
gpfs_nfs_server_type = CES
is_gpfs_node = True
gpfs_share_helpers = CES=manila.share.drivers.ibm.gpfs.CESHelper
share_backend_name = GPFS
driver_handles_share_servers = False

创建 GPFS 共享类型并设置额外规范

$ manila type-create --snapshot_support True \
  --create_share_from_snapshot_support True gpfs False

$ manila type-key gpfs set share_backend_name=GPFS