NetApp 统一驱动

NetApp 统一驱动是一个块存储驱动程序,支持多种存储系列和协议。目前,此驱动程序支持的唯一存储系列是集群 Data ONTAP。存储协议是指用于启动数据存储和访问操作的协议,例如 NVMe、iSCSI 和 NFS。NetApp 统一驱动程序可以配置为使用指定的存储协议在给定的存储系列上配置和管理 OpenStack 卷。

此外,当使用稀疏配置的块存储卷时,NetApp 统一驱动程序支持过度订阅或过度配置。然后可以使用 OpenStack 卷通过存储协议在存储系列系统上访问和存储数据。NetApp 统一驱动程序是一个可扩展的接口,可以支持新的存储系列和协议。

注意

在 OpenStack 的 Juno 版本中,块存储引入了存储池的概念,单个块存储后端可以呈现一个或多个逻辑存储资源池,块存储将在配置卷时从这些资源池中选择存储位置。

在 Juno 之前的版本中,NetApp 统一驱动程序包含一些调度逻辑,用于确定新的块存储卷将被放置到哪个 NetApp 存储容器中(即,Data ONTAP 的 FlexVol 卷)。

随着池的引入,所有调度逻辑都完全在块存储调度器中执行,因为每个 NetApp 存储容器都直接作为存储池暴露给块存储调度器。 以前,NetApp 统一驱动程序呈现了一个聚合视图给调度器,并最终决定将块存储卷配置到哪个 NetApp 存储容器中。

NetApp 集群 Data ONTAP 存储系列

NetApp 集群 Data ONTAP 存储系列表示一个配置组,它为计算实例提供对集群 Data ONTAP 存储系统的访问。目前,它可以配置为在块存储中使用 NVme、iSCSI 和 NFS 存储协议。

NetApp iSCSI 配置用于集群 Data ONTAP

NetApp iSCSI 配置用于集群 Data ONTAP,是从 OpenStack 到集群 Data ONTAP 存储系统的接口。它配置和管理 SAN 块存储实体,即可以使用 iSCSI 协议访问的 NetApp LUN。

用于集群 Data ONTAP 的 iSCSI 配置是从块存储到集群 Data ONTAP 实例的直接接口,因此不需要额外的管理软件来实现所需的功能。它使用 NetApp API 与集群 Data ONTAP 实例进行交互。

配置选项

通过在 cinder.conf 文件中设置 volume_drivernetapp_storage_familynetapp_storage_protocol 选项,将卷驱动程序、存储系列和存储协议配置为 NetApp 统一驱动程序、集群 Data ONTAP 和 iSCSI 分别如下

volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = iscsi
netapp_vserver = openstack-vserver
netapp_server_hostname = myhostname
netapp_server_port = port
netapp_login = username
netapp_password = password

注意

要使用 iSCSI 协议,您必须使用 iscsi 覆盖 netapp_storage_protocol 的默认值。请注意,这与驱动程序向调度器报告的 storage_protocol 的值不同,后者始终为 iSCSI(区分大小写)。

NetApp cDOT iSCSI 驱动程序配置选项的说明

配置选项 = 默认值

描述

[DEFAULT]

netapp_login = None

(字符串) 用于访问存储系统或代理服务器的管理用户帐户名。

netapp_lun_ostype = None

(字符串) 此选项定义将访问 Data ONTAP 导出的 LUN 的操作系统类型;它在创建 LUN 时分配给 LUN。

netapp_lun_space_reservation = enabled

(字符串) 此选项确定是否为 LUN 分配保留存储空间。如果启用,则 LUN 将被厚配置。如果禁用空间保留,则会按需分配存储空间。

netapp_password = None

(字符串) netapp_login 选项中指定的管理用户帐户的密码。

netapp_pool_name_search_pattern = (.+)

(字符串) 此选项用于限制配置到指定的池。指定此选项的值为将应用于 Cinder 中表示池的存储后端中对象的名称的正则表达式。只有当存储协议配置为使用 NVMe、iSCSI 或 FC 时,才使用此选项。

netapp_replication_aggregate_map = None

(未知) 字典的多选选项,用于表示在全后端复制时源后端和目标后端之间的聚合映射。对于与 cinder 池(NetApp FlexVol)关联的每个源聚合,您需要指定复制目标设备上的目标聚合。配置选项 replication_device 配置复制目标设备。根据您拥有的复制设备数量,多次指定此选项。每个条目采用标准的字典配置形式:netapp_replication_aggregate_map = backend_id:<name_of_replication_device_section>,src_aggr_name1:dest_aggr_name1,src_aggr_name2:dest_aggr_name2,…

netapp_server_hostname = None

(字符串) 存储系统或代理服务器的主机名(或 IP 地址)。

netapp_server_port = None

(整数) 与存储系统或代理服务器通信所使用的 TCP 端口。如果未指定,Data ONTAP 驱动程序将使用 80 作为 HTTP 和 443 作为 HTTPS。

netapp_size_multiplier = 1.2

(浮点数) 要乘以请求的卷大小的量,以确保虚拟存储服务器 (Vserver) 上有足够的空间来满足卷创建请求。注意:此选项已弃用,将在 Mitaka 版本中删除,取而代之的是“reserved_percentage”。

netapp_snapmirror_quiesce_timeout = 3600

(整数) 在故障转移期间中止现有 SnapMirror 传输之前等待的最大秒数。

netapp_storage_family = ontap_cluster

(字符串) 存储系统上使用的存储系列类型;对于使用集群 Data ONTAP,唯一有效值为 ontap_cluster。

netapp_storage_protocol = None

(字符串) 要与存储系统一起在数据路径上使用的存储协议。

netapp_transport_type = http

(字符串) 与存储系统或代理服务器通信时使用的传输协议。

netapp_vserver = None

(字符串) 此选项指定存储集群上的虚拟存储服务器 (Vserver) 名称,块存储卷的配置应在此 Vserver 上发生。

注意

如果您指定一个仅具有虚拟存储服务器 (Vserver) 管理权限(而不是群集范围管理权限)的帐户在 netapp_login 中,NetApp 统一驱动程序的一些高级功能将无法工作,并且您可能会在块存储日志中看到警告。

注意

驱动程序支持 iSCSI CHAP 单向身份验证。要启用它,请将 use_chap_auth 选项设置为 True

提示

有关这些选项和其他部署和操作场景的更多信息,请访问 NetApp OpenStack 网站

NetApp 集群 Data ONTAP 的 NVMe/TCP 配置

NetApp 集群 Data ONTAP 的 NVMe/TCP 配置是从 OpenStack 到集群 Data ONTAP 存储系统的接口。它配置和管理 SAN 块存储实体,即可以使用 NVMe/TCP 协议访问的 NetApp 命名空间。

用于集群 Data ONTAP 的 NVMe/TCP 配置是从块存储到集群 Data ONTAP 实例的直接接口,因此不需要额外的管理软件来实现所需的功能。它使用 NetApp API 与集群 Data ONTAP 实例进行交互。

配置选项

通过在 cinder.conf 文件中设置 volume_drivernetapp_storage_familynetapp_storage_protocol 选项,将卷驱动程序、存储系列和存储协议配置为 NetApp 统一驱动程序、集群 Data ONTAP 和 NVMe 分别如下

volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = nvme
netapp_vserver = openstack-vserver
netapp_server_hostname = myhostname
netapp_server_port = port
netapp_login = username
netapp_password = password

注意

要使用 NVMe/TCP 协议,您必须使用 nvme 覆盖 netapp_storage_protocol 的默认值。请注意,这与驱动程序向调度器报告的 storage_protocol 的值不同,后者始终为 NVMe(区分大小写)。

注意

如果您指定一个仅具有虚拟存储服务器 (Vserver) 管理权限(而不是群集范围管理权限)的帐户在 netapp_login 中,NetApp 统一驱动程序的一些高级功能将无法工作,并且您可能会在块存储日志中看到警告。

注意

驱动程序仅支持最少的 Cinder 驱动程序功能:创建/删除卷和快照、扩展卷、附加/分离卷、从卷创建卷和从镜像/快照创建卷。

提示

有关这些选项和其他部署和操作场景的更多信息,请访问 NetApp OpenStack 网站

NetApp 集群 Data ONTAP 的 NFS 配置

NetApp 集群 Data ONTAP 的 NFS 配置是从 OpenStack 到集群 Data ONTAP 系统的接口,用于配置和管理在集群 Data ONTAP 系统提供的 NFS 导出上配置的 OpenStack 卷,这些卷通过 NFS 协议访问。

用于集群 Data ONTAP 的 NFS 配置是从块存储到集群 Data ONTAP 实例的直接接口,因此不需要任何额外的管理软件来实现所需的功能。它使用 NetApp API 与集群 Data ONTAP 实例进行交互。

配置选项

通过在 cinder.conf 文件中设置 volume_drivernetapp_storage_familynetapp_storage_protocol 选项,将卷驱动程序、存储系列和存储协议配置为 NetApp 统一驱动程序、集群 Data ONTAP 和 NFS 分别如下

volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = nfs
netapp_vserver = openstack-vserver
netapp_server_hostname = myhostname
netapp_server_port = port
netapp_login = username
netapp_password = password
nfs_shares_config = /etc/cinder/nfs_shares
NetApp cDOT NFS 驱动程序配置选项的说明

配置选项 = 默认值

描述

[DEFAULT]

expiry_thres_minutes = 720

(整数) 此选项指定 NFS 镜像缓存中镜像的上次访问时间阈值。当缓存清理周期开始时,如果在过去 M 分钟内未访问缓存中的镜像(M 是此参数的值),则会从缓存中删除这些镜像,以在 NFS 共享上创建可用空间。

netapp_copyoffload_tool_path = None

(字符串) 此选项指定 NetApp 复制卸载工具二进制文件的路径。确保二进制文件具有设置的执行权限,允许 cinder-volume 进程的有效用户执行该文件。

netapp_host_type = None

(字符串) 此选项定义可以访问 LUN 的所有发起者的操作系统类型。此信息在将 LUN 映射到单个主机或主机组时使用。

netapp_login = None

(字符串) 用于访问存储系统或代理服务器的管理用户帐户名。

netapp_lun_ostype = None

(字符串) 此选项定义将访问 Data ONTAP 导出的 LUN 的操作系统类型;它在创建 LUN 时分配给 LUN。

netapp_password = None

(字符串) netapp_login 选项中指定的管理用户帐户的密码。

netapp_pool_name_search_pattern = (.+)

(字符串) 此选项用于限制配置到指定的池。指定此选项的值为将应用于 Cinder 中表示池的存储后端中对象的名称的正则表达式。只有当存储协议配置为使用 iSCSI 或 FC 时,才使用此选项。

netapp_replication_aggregate_map = None

(未知) 字典的多选选项,用于表示在全后端复制时源后端和目标后端之间的聚合映射。对于与 cinder 池(NetApp FlexVol)关联的每个源聚合,您需要指定复制目标设备上的目标聚合。配置选项 replication_device 配置复制目标设备。根据您拥有的复制设备数量,多次指定此选项。每个条目采用标准的字典配置形式:netapp_replication_aggregate_map = backend_id:<name_of_replication_device_section>,src_aggr_name1:dest_aggr_name1,src_aggr_name2:dest_aggr_name2,…

netapp_server_hostname = None

(字符串) 存储系统或代理服务器的主机名(或 IP 地址)。

netapp_server_port = None

(整数) 与存储系统或代理服务器通信所使用的 TCP 端口。如果未指定,Data ONTAP 驱动程序将使用 80 作为 HTTP 和 443 作为 HTTPS。

netapp_snapmirror_quiesce_timeout = 3600

(整数) 在故障转移期间中止现有 SnapMirror 传输之前等待的最大秒数。

netapp_storage_family = ontap_cluster

(字符串) 存储系统上使用的存储系列类型;对于使用集群 Data ONTAP,唯一有效值为 ontap_cluster。

netapp_storage_protocol = None

(字符串) 要与存储系统一起在数据路径上使用的存储协议。

netapp_transport_type = http

(字符串) 与存储系统或代理服务器通信时使用的传输协议。

netapp_vserver = None

(字符串) 此选项指定存储集群上的虚拟存储服务器 (Vserver) 名称,块存储卷的配置应在此 Vserver 上发生。

thres_avl_size_perc_start = 20

(整数) 如果 NFS 共享的可用空间百分比降至此选项指定的值以下,将清理 NFS 镜像缓存。

thres_avl_size_perc_stop = 60

(整数) 当 NFS 共享上的可用空间百分比达到此选项指定的百分比时,驱动程序将停止清除在过去 M 分钟内未访问的 NFS 镜像缓存中的文件(M 是 expiry_thres_minutes 配置选项的值)。

注意

其他 NetApp NFS 配置选项与通用 NFS 驱动程序共享。可以在此处找到这些选项:NFS 存储配置选项的说明

注意

如果您指定一个仅具有虚拟存储服务器 (Vserver) 管理权限(而不是群集范围管理权限)的帐户在 netapp_login 中,NetApp 统一驱动程序的一些高级功能将无法工作,并且您可能会在块存储日志中看到警告。

NetApp NFS 复制卸载客户端

在 NetApp 统一驱动程序的 Icehouse 版本中添加了一个功能,该功能可以有效地将 Image 服务镜像复制到目标块存储卷。当块存储和 Image 服务配置为使用 NetApp NFS 复制卸载客户端时,将在尝试从 Image 服务下载镜像之前尝试控制器端复制。这可以提高镜像配置时间,同时减少 Image 和块存储服务运行的主机上的带宽和 CPU 周期消耗。这是因为复制操作完全在存储群集中执行。

NetApp NFS 复制卸载客户端可以在以下两种场景中使用

  • Image 服务配置为将镜像存储在从 NetApp FlexVol 卷导出的 NFS 共享中并且新块存储卷的目标是在与 Image 服务使用的 FlexVol 卷不同的 FlexVol 卷导出的 NFS 共享上。这两个 FlexVol 必须位于同一个群集中。

  • Image 服务中的源镜像已经缓存到块存储后端中的 NFS 镜像缓存中。缓存的镜像位于与新块存储卷的目标不同的 FlexVol 卷上。这两个 FlexVol 必须位于同一个群集中。

要使用此功能,您必须配置 Image 服务,如下所示

  • default_store 配置选项设置为 file

  • filesystem_store_datadir 配置选项设置为 Image 服务 NFS 导出的路径。

  • show_image_direct_url 配置选项设置为 True

  • show_multiple_locations 配置选项设置为 True

  • filesystem_store_metadata_file 配置选项设置为一个元数据文件。该元数据文件应包含一个 JSON 对象,其中包含 Image 服务使用的 NFS 导出信息的正确信息。

要使用此功能,您必须配置 Block Storage 服务,如下所示

  • netapp_copyoffload_tool_path 配置选项设置为 NetApp Copy Offload 二进制文件的路径。

    重要提示

    此功能要求

    • 存储系统必须安装 Data ONTAP v8.2 或更高版本。

    • vStorage 功能必须在每个允许与 copy offload 客户端交互的存储虚拟机器 (SVM,也称为 Vserver) 上启用。

    • 要配置 copy offload 工作流,请启用 NFS v4.0 或更高版本,并将其从 SVM 导出。

提示

要下载与 netapp_copyoffload_tool_path 配置选项一起使用的 NetApp copy offload 二进制文件,请访问 NetApp 支持门户网站的 Utility Toolchest 页面:NetApp 支持门户(需要登录)。

提示

有关这些选项和其他部署和操作场景的更多信息,请访问 NetApp OpenStack 网站

集群 Data ONTAP 支持的额外规格

额外规格允许供应商指定额外的过滤标准。Block Storage 调度器在确定哪个卷节点应该满足卷配置请求时,会使用这些规格。当您使用 NetApp 统一驱动程序与集群 Data ONTAP 存储系统时,可以使用 Block Storage 卷类型来利用额外规格,以确保 Block Storage 卷是在具有特定属性的存储后端上创建的。例如,当您为存储后端配置 QoS、镜像或压缩时。

额外规格与 Block Storage 卷类型关联。当用户请求特定卷类型的卷时,这些卷将在满足需求列表的存储后端上创建。例如,具有可用空间或额外规格的后端。使用下表中的规格来配置卷。使用 openstack volume type set 命令定义 Block Storage 卷类型。

NetApp 统一驱动程序与集群 Data ONTAP 的额外规格选项说明

额外规格

类型

描述

netapp_raid_type

字符串

根据以下 RAID 类型之一限制候选卷列表:raid4, raid_dp

netapp_disk_type

字符串

根据以下磁盘类型之一限制候选卷列表:ATA, BSAS, EATA, FCAL, FSAS, LUN, MSATA, SAS, SATA, SCSI, XATA, XSAS, SSD.

netapp:qos_policy_group [1]

字符串

指定应应用于 OpenStack Block Storage 卷的 QoS 策略组的名称,该策略组定义了可衡量的服务级别目标。确保 Data ONTAP 中的 QoS 策略组对象应在创建 OpenStack Block Storage 卷之前定义,并且 QoS 策略组不与目标 FlexVol 卷关联。

netapp:qos_policy_group_is_adaptive

布尔值

设置为“<is> True”以指示驱动程序对 netapp:qos_policy_group 设置使用自适应 QoS 策略组。将其设置为未设置或“<is> False”以对 netapp:qos_policy_group 设置使用标准 QoS 策略组。

netapp_mirrored

布尔值

将候选卷列表限制为仅存储控制器上镜像的卷。

netapp_unmirrored [2]

布尔值

将候选卷列表限制为仅存储控制器上未镜像的卷。

netapp_dedup

布尔值

将候选卷列表限制为仅存储控制器上启用重复数据删除的卷。

netapp_nodedup

布尔值

将候选卷列表限制为仅存储控制器上禁用重复数据删除的卷。

netapp_compression

布尔值

将候选卷列表限制为仅存储控制器上启用压缩的卷。

netapp_nocompression

布尔值

将候选卷列表限制为仅存储控制器上禁用压缩的卷。

netapp_thin_provisioned

布尔值

将候选卷列表限制为仅存储控制器上支持精简配置的卷。

netapp_thick_provisioned

布尔值

将候选卷列表限制为仅存储控制器上支持厚配置的卷。