IBM Spectrum Scale volume driver¶
IBM Spectrum Scale 是一种灵活的软件定义存储,可以部署为高性能文件存储或成本优化的、大规模的内容存储库。IBM Spectrum Scale,以前称为 IBM General Parallel File System (GPFS),旨在扩展性能和容量,而不会产生瓶颈。IBM Spectrum Scale 是一种集群文件系统,它提供从多个节点对文件系统的并发访问。这些节点提供的存储可以是直接连接的、网络连接的、SAN 连接的,或者这些方法的组合。Spectrum Scale 提供了许多超出常见数据访问的功能,包括数据复制、基于策略的存储管理以及高效的文件快照和克隆操作。
Spectrum Scale volume driver 的工作原理¶
名为 gpfs.py 的 Spectrum Scale volume driver 能够以类似于 NFS driver 的方式使用 Spectrum Scale。使用 Spectrum Scale driver 时,实例实际上不会在块级别访问存储设备。相反,会在 Spectrum Scale 文件系统中创建卷备份文件,并将其映射到实例,从而模拟块设备。
注意
Spectrum Scale 必须安装在存储节点上,并且必须创建集群。在配置 cinder 服务以使用 Spectrum Scale 存储之前,还必须在这些节点上创建并挂载文件系统。有关更多详细信息,请参阅 Spectrum Scale 产品文档。
可选地,可以配置 Image 服务以将 glance 镜像存储在 Spectrum Scale 文件系统中。当从镜像创建 Block Storage 卷时,如果镜像数据和卷数据都位于同一个 Spectrum Scale 文件系统中,则可以使用写时复制优化策略有效地将镜像文件中的数据移动到卷文件中。
支持的操作¶
创建、删除、附加和分离卷。
创建、删除卷快照。
从快照创建卷。
创建克隆卷。
扩展卷。
迁移卷。
重新类型化卷。
创建、删除一致性组。
创建、删除一致性组快照。
将镜像复制到卷。
将卷复制到镜像。
备份和恢复卷。
驱动程序配置¶
Spectrum Scale volume driver 支持三种部署模式。
模式 1 – 普遍存在的 Spectrum Scale 客户端¶
当 Spectrum Scale 在计算节点以及 cinder 节点上运行时。例如,Spectrum Scale 文件系统对 Compute 和 Block Storage 服务都可用作本地文件系统。
要在这种部署模式下使用 Spectrum Scale driver,请在 cinder.conf 中设置 volume_driver 为
volume_driver = cinder.volume.drivers.ibm.gpfs.GPFSDriver
下表包含此部署模式下 Spectrum Scale driver 支持的配置选项。
配置选项 = 默认值 |
描述 |
|---|---|
[DEFAULT] |
|
|
(字符串) 指定 GPFS 中 Image 服务存储库的路径。如果不在 GPFS 中存储镜像,请留空。 |
|
(字符串) 指定要使用的镜像复制类型。当 Image 服务存储库也使用 GPFS 时,设置此项以便可以有效地将镜像文件从 Image 服务传输到 Block Storage 服务。有两个有效值:“copy”指定创建镜像的完整副本;“copy_on_write”指定使用写时复制优化策略,并有效地共享镜像文件中未修改的块。 |
|
(整数) 指定到达特定块所需的间接数量的上限,这是由于快照或克隆造成的。冗长的写时复制快照或克隆链可能会对性能产生负面影响,但可以提高空间利用率。0 表示无限克隆深度。 |
|
(字符串) 指定 GPFS 目录的路径,Block Storage 卷和快照文件存储在该目录中。 |
|
(布尔值) 指定创建稀疏文件作为卷,最初不占用任何空间。如果设置为 False,则创建完全分配的文件,在这种情况下,创建可能需要更长的时间。 |
|
(字符串) 指定分配卷的存储池。默认情况下,使用系统存储池。 |
注意
只有当 Image 服务配置为使用 Spectrum Scale 并且设置了 gpfs_images_dir 标志时,gpfs_images_share_mode 标志才有效。当此标志的值为 copy_on_write 时,gpfs_mount_point_base 和 gpfs_images_dir 标志指定的路径必须都位于同一个 GPFS 文件系统和同一个 GPFS 文件集中。
模式 2 – 具有本地计算访问的远程 Spectrum Scale 驱动程序¶
当 Spectrum Scale 在计算节点上运行时,但在 Block Storage 节点上没有运行时。例如,Spectrum Scale 文件系统仅对 Compute 服务可用作本地文件系统,而 Block Storage 服务通过 SSH 远程访问 Spectrum Scale。在这种情况下,运行 Spectrum Scale 驱动程序的 cinder-volume 服务通过 SSH 访问存储系统并创建卷备份文件,使其在计算节点上可用。通常在 cinder 和 glance 服务在 Linux 容器内运行时部署此模式。容器主机应运行 Spectrum Scale 客户端,并且 GPFS 文件系统挂载路径应绑定挂载到 Linux 容器中。
注意
请注意,容器中的用户 ID 必须与主机中的用户 ID 匹配。例如,运行 cinder 和 glance 服务的容器应为特权容器。
要在这种部署模式下使用 Spectrum Scale driver,请在 cinder.conf 中设置 volume_driver 为
volume_driver = cinder.volume.drivers.ibm.gpfs.GPFSRemoteDriver
下表包含此部署模式下 Spectrum Scale driver 支持的配置选项。
配置选项 = 默认值 |
描述 |
|---|---|
[DEFAULT] |
|
|
(列表) GPFS 节点的 IP 地址或主机名的逗号分隔列表。 |
|
(字符串) 包含驱动程序需要与之通信的 gpfs 节点 SSH 主机密钥的文件。默认=$state_path/ssh_known_hosts |
|
(字符串) 指定 GPFS 中 Image 服务存储库的路径。如果不在 GPFS 中存储镜像,请留空。 |
|
(字符串) 指定要使用的镜像复制类型。当 Image 服务存储库也使用 GPFS 时,设置此项以便可以有效地将镜像文件从 Image 服务传输到 Block Storage 服务。有两个有效值:“copy”指定创建镜像的完整副本;“copy_on_write”指定使用写时复制优化策略,并有效地共享镜像文件中未修改的块。 |
|
(整数) 指定到达特定块所需的间接数量的上限,这是由于快照或克隆造成的。冗长的写时复制快照或克隆链可能会对性能产生负面影响,但可以提高空间利用率。0 表示无限克隆深度。 |
|
(字符串) 指定 GPFS 目录的路径,Block Storage 卷和快照文件存储在该目录中。 |
|
(字符串) 用于 SSH 身份验证的私钥文件的文件名。 |
|
(布尔值) 指定创建稀疏文件作为卷,最初不占用任何空间。如果设置为 False,则创建完全分配的文件,在这种情况下,创建可能需要更长的时间。 |
|
(端口号) 要使用的 SSH 端口。 |
|
(字符串) 指定分配卷的存储池。默认情况下,使用系统存储池。 |
|
(布尔值) 选项,用于启用在连接到 gpfs 节点时严格的 gpfs 主机密钥检查。默认值为 False |
|
(字符串) GPFS 节点的用户名。 |
|
(字符串) GPFS 节点用户的密码。 |
注意
只有当 Image 服务配置为使用 Spectrum Scale 并且设置了 gpfs_images_dir 标志时,gpfs_images_share_mode 标志才有效。当此标志的值为 copy_on_write 时,gpfs_mount_point_base 和 gpfs_images_dir 标志指定的路径必须都位于同一个 GPFS 文件系统和同一个 GPFS 文件集中。
模式 3 – 远程 Spectrum Scale 访问¶
当 Compute 和 Block Storage 节点都不运行 Spectrum Scale 软件,并且不能直接作为本地文件系统访问 Spectrum Scale 文件系统时。在这种情况下,我们在卷路径上创建一个 NFS 导出,并在 cinder 节点和计算节点上使其可用。
可选地,如果希望使用写时复制优化从 glance 镜像创建可引导卷,则还需要导出 glance 镜像路径并在运行 glance 和 cinder 服务的节点上挂载它。cinder 和 glance 服务将通过 NFS 访问 GPFS 文件系统。
要在这种部署模式下使用 Spectrum Scale driver,请在 cinder.conf 中设置 volume_driver 为
volume_driver = cinder.volume.drivers.ibm.gpfs.GPFSNFSDriver
下表包含此部署模式下 Spectrum Scale driver 支持的配置选项。
配置选项 = 默认值 |
描述 |
|---|---|
[DEFAULT] |
|
|
(字符串) 指定 GPFS 中 Image 服务存储库的路径。如果不在 GPFS 中存储镜像,请留空。 |
|
(字符串) 指定要使用的镜像复制类型。当 Image 服务存储库也使用 GPFS 时,设置此项以便可以有效地将镜像文件从 Image 服务传输到 Block Storage 服务。有两个有效值:“copy”指定创建镜像的完整副本;“copy_on_write”指定使用写时复制优化策略,并有效地共享镜像文件中未修改的块。 |
|
(整数) 指定到达特定块所需的间接数量的上限,这是由于快照或克隆造成的。冗长的写时复制快照或克隆链可能会对性能产生负面影响,但可以提高空间利用率。0 表示无限克隆深度。 |
|
(字符串) 指定 GPFS 目录的路径,Block Storage 卷和快照文件存储在该目录中。 |
|
(布尔值) 指定创建稀疏文件作为卷,最初不占用任何空间。如果设置为 False,则创建完全分配的文件,在这种情况下,创建可能需要更长的时间。 |
|
(字符串) 指定分配卷的存储池。默认情况下,使用系统存储池。 |
|
(字符串) NAS 系统的 IP 地址或主机名。 |
|
(字符串) 连接到 NAS 系统的用户名。 |
|
(字符串) 连接到 NAS 系统的密码。 |
|
(字符串) 用于 SSH 身份验证的私钥文件的文件名。 |
|
(端口号) 连接到 NAS 系统的 SSH 端口。 |
|
(字符串) 包含 NFS 共享挂载点的基本目录。 |
|
(字符串) 包含可用 NFS 共享的文件的文件。 |
此外,所有基本 NFS 驱动程序选项都适用于 GPFSNFSDriver。上表列出了初始化驱动程序所需的配置选项。
注意
只有当 Image 服务配置为使用 Spectrum Scale 并且设置了 gpfs_images_dir 标志时,gpfs_images_share_mode 标志才有效。当此标志的值为 copy_on_write 时,gpfs_mount_point_base 和 gpfs_images_dir 标志指定的路径必须都位于同一个 GPFS 文件系统和同一个 GPFS 文件集中。
卷创建选项¶
可以通过指定卷元数据来指定每个卷的附加卷配置选项。使用指定的选项创建卷。稍后更改元数据不起作用。下表列出了 GPFS volume driver 支持的卷创建选项。
元数据项名称 |
描述 |
|---|---|
fstype |
指定是否在新卷上创建文件系统或交换区域。如果指定 fstype=swap,则使用 mkswap 命令创建交换区域。否则,将 mkfs 命令传递指定的 文件系统类型,例如 ext3、ext4 或 ntfs。 |
fslabel |
设置 fstype 选项指定的 文件系统的 文件系统标签。仅当指定 fstype 时才使用此值。 |
data_pool_name |
指定要分配卷的 GPFS 存储池。注意:GPFS 存储池必须已经创建。 |
replicas |
指定要创建的卷文件副本的数量。有效值为 1、2,以及对于 Spectrum Scale V3.5.0.7 及更高版本,为 3。此值不能大于文件系统的 MaxDataReplicas 属性的值。 |
dio |
启用或禁用卷文件的 Direct I/O 缓存策略。有效值为 yes 和 no。 |
write_affinity_depth |
指定要用于卷文件的分配策略。注意:此选项仅在为 GPFS 数据池设置 allow-write-affinity 时才有效。 |
block_group_factor |
指定在卷文件中顺序布局的块的数量,以作为单个大块运行。注意:此选项仅在为 GPFS 数据池设置 allow-write-affinity 时才有效。 |
write_affinity_failure_group |
指定在 GPFS 共享无架构中写入卷文件中块的副本的节点范围。有关此选项的更多详细信息,请参阅 Spectrum Scale 文档。 |
此示例显示创建具有 ext4 文件系统并标记为 newfs 且启用直接 IO 的 50GB 卷
$ openstack volume create --property fstype=ext4 fslabel=newfs dio=yes \
--size 50 VOLUME
请注意,如果稍后更改卷的元数据,则更改不会反映在后端。用户必须手动更改 Spectrum Scale 文件系统上与元数据对应的卷属性。
GPFS 驱动程序的运行注意事项¶
卷快照使用 GPFS 文件克隆功能实现。每当创建新的快照时,都会有效地将快照文件创建为卷的只读克隆,并且卷文件使用写时复制优化策略来最大程度地减少数据移动。
同样,当从快照或现有卷创建新卷时,也采用相同的方法。如果源镜像采用原始格式,并且将 gpfs_images_share_mode 设置为 copy_on_write,则创建新卷时也采用相同的方法从 Image 服务镜像创建。
Spectrum Scale 驱动程序支持加密卷后端功能。要加密静态卷,请指定额外的规范 gpfs_encryption_rest = True。