Hitachi 块存储驱动

Hitachi 块存储驱动为 Hitachi VSP 存储提供光纤通道和 iSCSI 支持。

系统要求

支持的存储

存储型号

固件版本

VSP E590, E790

93-03-22 或更高版本

VSP E990

93-01-01 或更高版本

VSP E1090, E1090H

93-06-2x 或更高版本

VSP F350, F370, F700, F900

VSP G350, G370, G700, G900

88-01-04 或更高版本

VSP F400, F600, F800

VSP G200, G400, G600, G800

83-04-43 或更高版本

VSP N400, N600, N800

83-06-01 或更高版本

VSP 5100, 5500, 5100H, 5500H

90-01-41 或更高版本

VSP 5200, 5600, 5200H, 5600H

90-08-0x 或更高版本

VSP F1500

VSP G1000, VSP G1500

80-05-43 或更高版本

所需的存储许可证

  • Hitachi 存储虚拟化操作系统 (SVOS)

    • Hitachi LUN 管理器

    • Hitachi 动态配置

  • Hitachi 本地复制 (Hitachi Thin Image)

可选的存储许可证

  • 重复数据删除和压缩

  • 全局活动设备

支持的操作

  • 创建、删除、附加和分离卷。

  • 创建、列出和删除卷快照。

  • 从快照创建卷。

  • 创建、列出、更新和删除一致性组。

  • 创建、列出和删除一致性组快照。

  • 将卷复制到镜像。

  • 将镜像复制到卷。

  • 克隆卷。

  • 扩展卷。

  • 迁移卷 (主机辅助)。

  • 迁移卷 (存储辅助)。

  • 获取卷统计信息。

  • 高效的非破坏性卷备份。

  • 管理和取消管理卷。

  • 一次将卷附加到多个实例 (多重附加)。

  • 将卷恢复到快照。

Hitachi 块存储驱动还支持以下附加功能

  • 全局活动设备

  • 副本对和一致性组的最大数量

  • 数据重复数据删除和压缩

  • 端口调度器

  • 使用额外规范分配端口

  • 配置服务质量 (QoS) 设置

注意

  • 具有快照的卷无法使用此驱动程序扩展。

  • 存储辅助卷迁移仅支持在同一存储之间进行。

配置

设置 Hitachi 存储

您需要为存储系统指定如下设置。有关每个设置的详细信息,请参阅存储系统的用户指南。

常用资源

  1. 所有 资源

    任何存储资源的名称,例如 DP 池或主机组,都不能包含任何空格字符,否则驱动程序将无法使用它。

  2. 用户 帐户

    创建属于管理员用户组的存储设备帐户。

  3. DP

    创建由驱动程序使用的 DP 池。

  4. 资源

    如果为 OpenStack 系统独占使用新的资源组,请创建一个新的资源组,并分配必要的资源,例如 LDEV、端口和主机组 (iSCSI 目标) 到创建的资源。

  5. 端口

    为驱动程序使用的端口启用端口安全。

如果您使用 iSCSI

  1. 端口

    为端口分配 IP 地址和 TCP 端口号。

注意

  • 不要更改 Hitachi 块存储驱动程序创建的 LDEV 的昵称。在删除卷或快照时会引用昵称,以避免数据丢失风险。有关详细信息,请参阅 bug #2072317

设置 Hitachi 存储卷驱动程序和卷操作

通过在 cinder.conf 文件中设置 volume_driver 选项,将卷驱动程序设置为 Hitachi 块存储驱动程序,如下所示

如果您使用光纤通道

[hitachi_vsp]
volume_driver = cinder.volume.drivers.hitachi.hbsd_fc.HBSDFCDriver
volume_backend_name = hitachi_vsp
san_ip = 1.2.3.4
san_login = hitachiuser
san_password = password
hitachi_storage_id = 123456789012
hitachi_pools = pool0

如果您使用 iSCSI

[hitachi_vsp]
volume_driver = cinder.volume.drivers.hitachi.hbsd_iscsi.HBSDISCSIDriver
volume_backend_name = hitachi_vsp
san_ip = 1.2.3.4
san_login = hitachiuser
san_password = password
hitachi_storage_id = 123456789012
hitachi_pools = pool0, pool1

配置选项

此表显示 Hitachi 块存储驱动程序的配置选项。

Hitachi 块存储驱动程序配置选项说明

配置选项 = 默认值

描述

hitachi_async_copy_check_interval = 10

(Integer(min=1, max=600)) 在副本对删除或数据恢复期间检查异步复制状态的间隔(秒)。

hitachi_compute_target_ports = []

(String 列表) 用于将卷附加到计算节点的存储端口的 ID。要指定多个端口,请用逗号分隔它们(例如 CL1-A,CL2-A)。

hitachi_copy_check_interval = 3

(Integer(min=1, max=600)) 在卷复制期间检查复制状态的间隔(秒)。

hitachi_copy_speed = 3

(Integer(min=1, max=15)) 存储系统的复制速度。1 或 2 表示低速,3 表示中速,4 到 15 之间的值表示高速。

hitachi_discard_zero_page = True

(Boolean) 启用或禁用 DP-VOL 中的零页回收。

hitachi_exec_retry_interval = 5

(Integer) REST API 执行的重试间隔(秒)。

hitachi_extend_timeout = 600

(Integer) 卷扩展完成的最大等待时间(秒)。

hitachi_group_create = False

(Boolean) 如果为 True,驱动程序将根据需要创建存储端口上的主机组或 iSCSI 目标。

hitachi_group_delete = False

(Boolean) 如果为 True,驱动程序将根据需要删除存储端口上的主机组或 iSCSI 目标。

hitachi_group_name_format = None

(String) 主机组、iSCSI 目标和服务器对象的格式。

hitachi_host_mode_options = []

(Integer 列表) 主机组或 iSCSI 目标的主机模式选项。

hitachi_ldev_range = None

(String) 驱动程序可以使用的 LDEV 编号范围,格式为“xxxx-yyyy”。值可以是十进制格式(例如 1000)或以冒号分隔的十六进制格式(例如 00:03:E8)。

hitachi_lock_timeout = 7200

(Integer) 存储登录或解锁的最大等待时间(秒)。

hitachi_lun_retry_interval = 1

(Integer) REST API 将 LUN 映射添加到服务器的重试间隔(秒)。

hitachi_lun_timeout = 50

(Integer) 将 LUN 映射添加到服务器的最大等待时间(秒)。

hitachi_mirror_auth_password = None

(String) iSCSI 身份验证密码

hitachi_mirror_auth_user = None

(String) iSCSI 身份验证用户名

hitachi_mirror_compute_target_ports = []

(String 列表) 计算节点主机组或 iSCSI 目标的的目标端口名称

hitachi_mirror_ldev_range = None

(String) 二级存储系统的逻辑设备范围

hitachi_mirror_pair_target_number = 0

(Integer(min=0, max=99)) 主机组或 iSCSI 目标的配对目标名称

hitachi_mirror_pool = None

(String) 二级存储系统的池

hitachi_mirror_rest_api_ip = None

(String) REST API 服务器的 IP 地址

hitachi_mirror_rest_api_port = 443

(Port(min=0, max=65535)) REST API 服务器的端口号

hitachi_mirror_rest_pair_target_ports = []

(String 列表) 配对的主机组或 iSCSI 目标的目标端口名称

hitachi_mirror_rest_password = None

(String) REST API 的二级存储系统的密码

hitachi_mirror_rest_user = None

(String) REST API 的二级存储系统的用户名

hitachi_mirror_snap_pool = None

(String) 二级存储系统的 Thin 池

hitachi_mirror_ssl_cert_path = None

(字符串) 可用于指定非默认路径到包含受信任 CA 证书的文件或目录,这些证书将用于验证后端

hitachi_mirror_ssl_cert_verify = False

(布尔值) 如果设置为 True,http 客户端将验证后端端点的 SSL 证书。

hitachi_mirror_storage_id = None

(String) 二级存储系统的 ID

hitachi_mirror_target_ports = []

(String 列表) 主机组或 iSCSI 目标的目标端口名称

hitachi_mirror_use_chap_auth = False

(Boolean) 是否使用 iSCSI 身份验证

hitachi_pair_target_number = 0

(Integer(min=0, max=99)) 主机组或 iSCSI 目标的配对目标名称

hitachi_path_group_id = 0

(Integer(min=0, max=255)) 用于远程复制的远程连接分配的路径组 ID

hitachi_pools = []

(String 列表) DP 池的池编号和/或池名称。

hitachi_port_scheduler = False

(Boolean) 启用 WWN 到配置端口的端口调度,以便以轮询方式将 WWN 注册到端口。

hitachi_quorum_disk_id = None

(Integer(min=0, max=31)) 用于全局活动设备的仲裁磁盘的 ID

hitachi_replication_copy_speed = 3

(Integer(min=1, max=15)) 存储系统的远程复制速度。1 或 2 表示低速,3 表示中速,4 到 15 之间的值表示高速。

hitachi_replication_number = 0

(Integer(min=0, max=255)) REST API 的实例编号

hitachi_replication_status_check_long_interval = 600

(Integer) 检查远程复制对状态的间隔。如果状态在经过此参数指示的时间后仍未更改为预期状态,则应用此参数。

hitachi_replication_status_check_short_interval = 5

(Integer) 初始检查远程复制对状态的间隔

hitachi_replication_status_check_timeout = 86400

(Integer) 远程复制对状态更改为预期状态之前,允许的最大等待时间

hitachi_rest_another_ldev_mapped_retry_timeout = 600

(Integer) 新 LUN 分配请求失败时的重试时间(秒)。

hitachi_rest_connect_timeout = 30

(Integer) 连接到 REST API 会话的最大等待时间(秒)。

hitachi_rest_disable_io_wait = True

(Boolean) 此选项将允许立即分离卷。如果设置为 False,存储可能需要几分钟才能在 I/O 之后分离卷。

hitachi_rest_get_api_response_timeout = 1800

(整数) 同步方法(例如 GET)响应的最大等待时间,以秒为单位

hitachi_rest_job_api_response_timeout = 1800

(整数) REST API 异步方法(例如 PUT 和 DELETE)响应的最大等待时间,以秒为单位。

hitachi_rest_keep_session_loop_interval = 180

(整数) 保持 REST API 会话的循环间隔,以秒为单位。

hitachi_rest_pair_target_ports = []

(String 列表) 配对的主机组或 iSCSI 目标的目标端口名称

hitachi_rest_server_busy_timeout = 7200

(整数) REST API 返回繁忙时,最大等待时间,以秒为单位。

hitachi_rest_tcp_keepalive = True

(布尔值) 启用或禁用 REST API tcp keepalive

hitachi_rest_tcp_keepcnt = 4

(整数) TCP keepalive 数据包的最大传输次数。

hitachi_rest_tcp_keepidle = 60

(整数) 发送第一个 TCP keepalive 数据包前的等待时间,以秒为单位。

hitachi_rest_tcp_keepintvl = 15

(整数) TCP keepalive 数据包传输间隔,以秒为单位。

hitachi_rest_timeout = 30

(整数) 每个 REST API 请求的最大等待时间,以秒为单位。

hitachi_restore_timeout = 86400

(整数) 恢复操作完成的最大等待时间,以秒为单位。

hitachi_set_mirror_reserve_attribute = True

(布尔值) 是否设置镜像保留属性

hitachi_snap_pool = None

(字符串) 快照池的池编号或池名称。

hitachi_state_transition_timeout = 900

(整数) 卷转换完成的最大等待时间,以秒为单位。

hitachi_storage_id = None

(字符串) 存储系统的产品编号。

hitachi_target_ports = []

(字符串列表) 用于将卷连接到控制器节点的存储端口 ID。要指定多个端口,请用逗号分隔它们(例如 CL1-A,CL2-A)。

hitachi_zoning_request = False

(布尔值) 如果为 True,驱动程序将配置服务器和存储系统之间的 FC 分区,前提是启用了 FC 分区管理器。

必需选项

  • san_ip

    SAN 控制器的 IP 地址

  • san_login

    SAN 控制器的用户名

  • san_password

    SAN 控制器的密码

  • hitachi_storage_id

    存储系统的产品编号。

  • hitachi_pools

    DP 池的池编号或池名称。

附加功能的设置和操作

设置 Global-Active Device 和卷操作

从 2023.1 开始,如果您使用 Global-Active Device (GAD),您可以使各个卷的数据在两个存储系统之间冗余,从而提高存储系统的可用性。有关详细信息,请参阅 Global-Active Device 用户指南

注意

  • 您不能将 Global-Active Device 配置和远程复制配置应用于相同的后端。

  • 您不能使用非对称逻辑单元访问 (ALUA)。

GAD 的存储固件版本

如果您正在使用 VSP F350、F370、F700、F900 存储系统或 VSP G350、G370、G700、G900 存储系统配置 Global-Active Device,请确保固件版本为 88-03-21 或更高版本。

创建 Global-Active Device 环境

在使用 Global-Active Device 之前,请创建先决条件环境,例如连接远程路径、配置仲裁磁盘和创建虚拟存储机 (VSM),通过其他存储系统管理工具。Hitachi 块存储驱动程序支持以下配置。

  • P-VOL 未注册到 VSM 的配置

  • P-VOL 注册到 VSM 的配置

有关详细信息,请参阅 Global-Active Device 用户指南 中创建 GAD 环境的工作流程。

Hitachi 块存储驱动程序自动设置以下步骤,这些步骤在 使用 CCI 创建 GAD 环境 部分中描述

  • 设置辅助存储系统的以下步骤

    • 在 S-VOL 上设置 GAD 保留属性

    • 创建主机组(仅当配置选项 hitachi_group_create 为 True 时)

    • 创建 S-VOL

    • 将 LU 路径添加到 S-VOL

  • 更新 CCI 配置定义文件

  • 创建 GAD 对

  • 将替代路径添加到 S-VOL

您必须在主站点将有关辅助存储系统的信息注册到 REST API 服务器,并在辅助站点将有关主存储系统的信息注册到 REST API 服务器。有关如何注册信息的详细信息,请参阅 Hitachi Command Suite Configuration Manager REST API 参考指南Hitachi Ops Center API Configuration Manager REST API 参考指南

注意

  • 为配置选项 san_loginhitachi_mirror_rest_user 指定的用户必须具有以下角色

    • 存储管理员(查看和修改)

    • 存储管理员(远程复制)

  • 为与 VSM 相关的资源组保留未使用的主机组 ID(iSCSI 目标 ID)。按升序保留 ID。您需要保留的 ID 数量是 1 加上控制器节点和计算节点的数量之和。有关如何保留主机组 ID(iSCSI 目标 ID)的详细信息,请参阅 Global-Active Device 用户指南

  • 主存储系统上指定端口的主机组 (iSCSI 目标) 的 LUN 必须与辅助存储系统上指定端口的主机组 (iSCSI 目标) 的 LUN 匹配。如果不匹配,请将主存储系统的 LUN 与辅助存储系统的 LUN 匹配。

  • 当您同时将相同的存储系统用作 Global-Active Device 配置的辅助存储系统和通用后端存储系统时,您不能在不同的后端存储系统之间使用相同的端口。请在配置选项 hitachi_target_portshitachi_compute_target_portshitachi_rest_pair_target_ports 中指定不同的端口,以区分不同的后端存储系统。

在 Global-Active Device 配置中创建卷

如果您在 Global-Active Device 配置中创建 Cinder 卷,则每个 Global-Active Device 对都映射到 Cinder 卷。

为了能够指定 Global-Active Device 属性创建卷,您必须首先创建一个包含 hbsd:topology=active_active_mirror_volume 附加规格的卷类型。您可以按如下方式执行此操作

$ openstack volume type create <volume type name>
$ openstack volume type set --property \
hbsd:topology=active_active_mirror_volume <volume type name>

然后,您可以按如下方式创建 GAD 卷

$ openstack volume create --type <volume type name> --size <size>

注意

  • 在这种情况下,适用以下限制

    • 您不能创建启用重复数据删除和压缩功能的卷,否则创建卷将因错误 MSGID0753-E: Failed to create a volume in a GAD environment because deduplication is enabled for the volume type. 而失败。

  • 请注意以下事项,如果配置为“P-VOL 注册到 VSM”

    • 不要创建不具有 hbsd:topology=active_active_mirror_volume 附加规格的卷类型。

    • 在设置环境时,使用存储管理软件在主存储系统上为配置选项 hitachi_ldev_range 参数 指定的每个 LDEV 设置虚拟 LDEV ID,因为虚拟 LDEV ID 对于 GAD 对创建是必需的。

不可用的 Cinder 功能

在 Global-Active Device 配置中,以下 cinder 功能不可用

  • 迁移卷(存储辅助)

  • 管理卷

  • 取消管理卷

注意

此外,如果配置为“P-VOL 注册到 VSM”,则备份卷功能的备份创建命令不能使用 --snapshot 选项--force 选项运行。

最大数量的副本对和一致性组

分配给卷(或快照)的 LDEV 可以创建的 Thin Image 对的最大数量受每个存储系统的限制。如果对的数量超过最大数量,则复制将无法正常进行。

有关可以创建的最大数量的副本对和一致性组的信息,请参阅 Hitachi Thin Image 用户指南

配置服务质量 (QoS) 设置

通过配置服务质量 (QoS) 设置,您可以限制每个卷的 I/O 处理,从而保持所需的性能和质量水平。

在 Hitachi 块存储驱动程序中,您可以为每个卷配置以下设置。但是,您不能为日志卷配置这些设置。

  • 吞吐量(IOPS,以 MB/s 为单位的数据量)

    您可以设置吞吐量的上限和下限。如果超过上限,则会抑制 I/O。如果未达到下限,则会调整 I/O 以满足下限。

  • I/O 处理的优先级

    您可以为多个卷的 I/O 处理设置优先级。I/O 将从高优先级卷开始进行调整,以实现更快的 I/O 响应。

QoS 的系统要求

存储固件版本

存储型号

固件版本

VSP F350, F370, F700, F900

VSP G350, G370, G700, G900

88-06-01 或更高版本

VSP 5100, 5500, 5100H, 5500H

90-04-01 或更高版本

存储管理软件

需要 Configuration Manager REST API 10.2.0-00 或更高版本。

配置 QoS 设置和创建卷

创建定义 QoS 设置的 QoS 规格,然后将 QoS 规格与卷类型关联。您可以通过指定此卷类型运行以下函数来配置卷的 QoS 设置。

  • 创建卷

  • 创建快照

  • 从快照创建卷

  • 从卷创建卷(克隆)

  • 一致性组

  • 通用卷组

以下示例描述了使用创建卷函数创建新卷时配置 QoS 设置的过程。

在开始之前,请检查以下信息

  • QoS 设置

    • 吞吐量的上限或下限(IOPS,以 MB/s 为单位的数据量)

    • I/O 处理的优先级

  • 卷类型的 ID 和名称

    需要一个卷类型才能将其与 QoS 规格关联。如果不存在卷类型,请提前创建一个。

步骤

  1. 创建 QoS 规格

    1. 如果您使用 cinder 命令

$ cinder qos-create <name-of-the-QoS-specs> [consumer=back-end] \
<name-of-a-QoS-specs-property>=<value-of-the-QoS-specs-property> \
[<name-of-a-QoS-specs-property>=<value-of-the-QoS-specs-property> ...]
  1. 如果您使用 openstack 命令

$ openstack volume qos create [--consumer back-end] \
--property \
<name-of-a-QoS-specs-property>=<value-of-the-QoS-specs-property> \
[--property \
<name-of-a-QoS-specs-property>=<value-of-the-QoS-specs-property> ...] \
<name-of-the-QoS-specs>

<name-of-the-QoS-specs> 指定一个名称。

指定 <QoS 规范属性名称><QoS 规范属性值>,如下所示。有关可以指定的有效值范围的详细信息,请参阅性能指南中的 QoS 操作概述。

QoS 规范属性

描述

upperIops

IOPS 的上限。

upperTransferRate

MB/s 中数据传输量的上限。

lowerIops

IOPS 的下限。

lowerTransferRate

MB/s 中数据传输量的下限。

responsePriority

I/O 处理的优先级。

以下是运行命令的示例。

  1. 如果您使用 cinder 命令

$ cinder qos-create test_qos consumer=back-end upperIops=2000
  1. 如果您使用 openstack 命令

$ openstack volume qos create --consumer back-end \
--property upperIops=2000 test_qos

运行此命令时,也会输出创建的 QoS 规范的 ID。请记录此 ID,因为您将在后续步骤中需要它。

  1. 将 QoS 规范与卷类型关联。

    1. 如果您使用 cinder 命令

$ cinder qos-associate <ID-of-the-QoS-specs> <ID-of-the-volume-type>
  1. 如果您使用 openstack 命令

$ openstack volume qos associate <name-of-the-QoS-specs> \
<name-of-the-volume-type>
  1. 指定与 QoS 规范关联的卷类型,然后创建卷。

    1. 如果您使用 cinder 命令

$ cinder create --volume-type <name-of-the-volume-type> <size>
  1. 如果您使用 openstack 命令

$ openstack volume create --size <size> --type <name-of-the-volume-type> \
<name>

更改 QoS 设置

要更改 QoS 设置,请使用 Retype 函数将卷类型更改为具有不同 QoS 规范的类型。

您还可以将未设置 QoS 规范的卷类型更改为设置了 QoS 规范的卷类型,反之亦然。

清除 QoS 设置

要清除 QoS 设置,请清除卷类型与 QoS 规范之间的关联,然后删除 QoS 规范。

数据去重和压缩

使用去重和压缩通过数据缩减来提高存储利用率。

有关详细信息,请参阅容量节省功能:数据去重和压缩,该文档位于配置指南中。

启用去重和压缩

要在存储模型上使用去重和压缩,您的存储管理员必须首先为 DP 池启用去重和压缩。

有关如何启用此设置的详细信息,请参阅Hitachi Command Suite 配置管理器 REST API 参考指南Hitachi Ops Center API 配置管理器 REST API 参考指南中的池管理说明。

注意

  • 请勿为 DP 池设置订阅限制 (virtualVolumeCapacityRate)。

创建启用去重和压缩的卷

要创建启用去重和压缩设置的卷,请为相关的卷类型启用去重和压缩。

步骤

1. 要启用去重和压缩设置,请在卷类型的额外规范中将值 deduplication_compression 指定为 hbsd:capacity_saving

2. 在创建上一步创建的卷类型的卷时,您可以创建启用去重和压缩功能的卷。

删除启用去重和压缩的卷

cinder delete 命令在存储系统启动 LDEV 删除过程时完成。在存储系统上完成 LDEV 删除过程之前,无法重用 LDEV。

端口调度器

您可以使用端口调度器功能来减少 WWN 的数量,WWN 是存储系统资源。

在 Hitachi 块存储驱动程序中,如果自动创建主机组,则将为每个计算节点或 VM(在每个 VM 都有 WWN 的环境中)创建主机组。如果您不使用端口调度器功能,将创建主机组,并且相同的 WWN 将注册到为配置选项 hitachi_compute_target_ports 或配置选项 hitachi_target_ports 指定的所有端口中。对于 Hitachi 存储设备,一个端口最多可以注册 255 个主机组和 255 个 WWN。在附加卷时,可能意外地超过可以注册的 WWN 数量的上限。

对于端口调度器功能,当 cinder-volume 服务启动时,光纤通道区域管理器会获取活动计算节点和活动 VM 的 WWN。在附加卷时,WWN 将以轮询方式注册,顺序与为配置选项 hitachi_compute_target_ports 或配置选项 hitachi_target_ports 指定的端口顺序相同。

如果您想使用端口调度器功能,请设置配置选项 hitachi_port_scheduler

注意

  • 仅支持光纤通道。有关端口的详细信息,请参阅光纤通道连接。

  • 如果在为配置选项 hitachi_compute_target_ports 或配置选项 hitachi_target_ports 指定的任何端口中已存在主机组,则这些端口上将不会创建新的主机组。

  • 重新启动 cinder-volume 服务将重新初始化由配置选项 hitachi_compute_target_ports 或配置选项 hitachi_target_ports 确定的轮询调度。

  • 端口调度器功能将每个织构控制器的活动 WWN 分割开来,并将其注册到每个端口。因此,注册到每个端口的 WWN 数量可能会有所不同。

使用额外规范进行端口分配

在 Hitachi 支持的额外规范 hbsd:target_ports 中定义特定的端口,确定在为每个卷类型进行卷附加操作期间使用配置选项 hitachi_target_ports 或配置选项 hitachi_compute_target_ports 指定的哪些端口。

注意

  • 使用逗号分隔多个端口。

  • 在全局活动设备配置中,为主要存储系统使用额外规范 hbsd:target_ports,为辅助存储系统使用额外规范 hbsd:remote_target_ports

  • 在全局活动设备配置中,为额外规范 hbsd:target_ports 指定的端口必须为主要存储系统(hitachi_target_portshitachi_compute_target_ports)和辅助存储系统(hitachi_mirror_target_portshitachi_mirror_compute_target_ports)的配置选项指定。