

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 连接 iSCSI 启动程序
<a name="initiator-connection-common"></a>

在管理网关时，您将使用作为 Internet 小型计算机系统接口 (iSCSI) 目标公开的卷或虚拟磁带库 (VTL) 设备。对于卷网关，iSCSI 目标是卷。对于磁带网关，目标为 VTL 设备。作为此工作的一部分，您将执行以下任务：连接到这些目标、自定义 iSCSI 设置、从 Red Hat Linux 客户端进行连接以及配置质询握手身份验证协议 (CHAP)。

**Topics**
+ [从 Windows 客户端连接到卷](ConfiguringiSCSIClient.md)
+ [将卷连接到 Linux 客户端](ConfiguringiSCSIClientInitiatorRedHatClient.md)
+ [自定义 iSCSI 设置](recommendediSCSISettings.md)
+ [为 iSCSI 目标配置 CHAP 身份验证](ConfiguringiSCSIClientInitiatorCHAP.md)

iSCSI 标准是一种基于互联网协议 (IP) 的存储网络标准，该标准用于启动和管理基于 IP 的存储设备与客户端之间的连接。以下列表定义了用来描述 iSCSI 连接和相关组件的一些术语。

**iSCSI 启动程序 **  
iSCSI 网络的客户端组件。启动程序向 iSCSI 目标发送请求。可以在软件或硬件中实施启动程序。Storage Gateway 仅支持软件启动程序。

**iSCSI 目标**  
iSCSI 网络的服务器组件，接收并响应来自启动程序的请求。每个卷均作为一个 iSCSI 目标公开。仅对每个 iSCSI 目标连接一个 iSCSI 启动程序。

**Microsoft iSCSI 启动程序**  
Microsoft Windows 计算机上的软件程序，让您可以将客户端计算机（即运行您希望将其数据写入网关的应用程序的计算机）连接到基于 iSCSI 的外部阵列（即网关）。使用主机的以太网网络适配卡建立此连接。微软 iSCSI 启动器已在 Windows Server 2022 上通过 Storage Gateway 进行验证。启动器内置在操作系统中。

**Red Hat iSCSI 启动程序**  
`iscsi-initiator-utils` 资源包管理器 (RPM) 程序包为您提供了在适用于 Red Hat Linux 的软件中实施的 iSCSI 启动程序。该包含有用于 iSCSI 协议的服务器守护进程。

每种类型的网关都可以连接到 iSCSI 设备，而您可以自定义这些连接，如下所述。

# 从 Windows 客户端连接到卷
<a name="ConfiguringiSCSIClient"></a>

卷网关将您为网关创建的卷作为 iSCSI 目标公开。有关更多信息，请参阅 [将卷连接到客户端](GettingStartedAccessVolumes.md)。

**注意**  
要连接到卷目标，您的网关必须已配置了上传缓冲区。如果没有为网关配置上传缓冲区，那么您的卷的状态就会显示为 UPLOAD BUFFER NOT CONFIGURED。要在存储卷设置中为网关配置上传缓冲区，请参阅[为网关配置额外的上传缓冲区或缓存存储](ConfiguringLocalDiskStorage.md#GatewayWorkingStorageCachedTaskBuffer)。要在缓存卷设置中为网关配置上传缓冲区，请参阅[为网关配置额外的上传缓冲区或缓存存储](ConfiguringLocalDiskStorage.md#GatewayWorkingStorageCachedTaskBuffer)。

下图在 Storage Gateway 架构的大图中突出显示了 iSCSI 目标。有关更多信息，请参阅 [卷网关的工作原理](StorageGatewayConcepts.md)。

 

![\[Storage Gateway 资源作为连接到应用程序服务器的 iSCSI 目标公开。\]](http://docs.aws.amazon.com/zh_cn/storagegateway/latest/vgw/images/ArchitectureDiagram_HighlightediSCSI-diagram.png)


您可以从 Windows 或 Red Hat Linux 客户端连接到卷。您可以为任一客户端类型配置 CHAP。

您的网关使用您指定的名称将您的卷作为 iSCSI 目标公开，名称前加 `iqn.1997-05.com.amazon:`。例如，如果您指定 `myvolume` 的目标名称，那么您用来连接到卷的 iSCSI 目标就是 `iqn.1997-05.com.amazon:myvolume`。有关如何配置您的应用程序以便在 iSCSI 上安装卷的更多信息，请参阅 [从 Windows 客户端连接到卷](#ConfiguringiSCSIClient)。


| 目标 | 参见 | 
| --- | --- | 
|  从 Windows 连接到您的卷。 |  [连接到 Microsoft Windows 客户端](https://docs.aws.amazon.com/storagegateway/latest/vgw/GettingStarted-use-volumes.html#issci-windows) | 
|  从 Red Hat Linux 连接到您的卷。 |  [连接到 Red Hat Enterprise Linux 客户端](https://docs.aws.amazon.com/storagegateway/latest/vgw/GettingStarted-use-volumes.html#issci-rhel)  | 
|  为 Windows 和 Red Hat Linux 配置 CHAP 身份验证。 |  [为 iSCSI 目标配置 CHAP 身份验证](ConfiguringiSCSIClientInitiatorCHAP.md)  | 

**将 Windows 客户端连接到存储卷**

1. 在 Windows 客户端计算机的**开始**菜单上，在**搜索程序和文件**框中输入 **iscsicpl.exe**，找到 iSCSI 启动程序，然后运行它。
**注意**  
必须具有客户端计算机上的管理员权限才能运行 iSCSI 启动程序。

1. 如果出现提示，则单击 **Yes** 以启动 Microsoft iSCSI 启动程序服务。

1. 在 **iSCSI Initiator Properties (iSCSI 发起程序属性)** 对话框中，选择 **Discovery (发现)** 选项卡，然后选择 **Discover Portal (发现门户)**。

1. 在**发现目标门户**对话框中，在 **IP 地址或 DNS 名称**中输入 iSCSI 目标的 IP 地址，然后选择**确定**。要获取网关的 IP 地址，请查看 Storage Gateway 控制台上的**网关**选项卡。如果您在 Amazon EC2 实例上部署了网关，则可以在 Amazon EC2 控制台的**描述**选项卡中找到公有 IP 或 DNS 地址。

   现在，**发现**选项卡上的**目标门户**列表中会显示 IP 地址。
**警告**  
对于部署于 Amazon EC2 实例上的网关，不支持通过公有 Internet 连接来访问该网关。无法使用 Amazon EC2 实例的弹性 IP 地址作为目标地址。

1. 将新的目标门户连接到网关上的存储卷目标：

   1. 选择**目标**选项卡。

      新目标门户显示未激活状态。显示的目标名称应该与您在步骤 1 中为存储卷指定的名称相同。

   1. 选择该目标，然后选择 **Connect**。

      如果尚未填入目标名称，请按照步骤 1 中所示输入目标名称。在**连接到目标**对话框中，选择**将此连接添加到常用目标列表**，然后选择**确定**。

   1. 在**目标**选项卡中，确保目标**状态**的值为**已连接**（表示已连接目标），然后单击**确定**。

您现在可以为 Windows 初始化并格式化该存储卷，以便开始在卷中保存数据。您可以使用 Windows 磁盘管理工具执行此操作。

**注意**  
尽管对于本练习并非必需，但我们仍强烈建议您在真实使用某应用程序时自定义 iSCSI 设置，如[自定义您的 Windows iSCSI 设置](recommendediSCSISettings.md#CustomizeWindowsiSCSISettings)中所述。

# 将卷连接到 Linux 客户端
<a name="ConfiguringiSCSIClientInitiatorRedHatClient"></a>

**Topics**

使用 Red Hat Enterprise Linux (RHEL) 时，应使用 `iscsi-initiator-utils` RPM 程序包连接到网关 iSCSI 目标（卷或 VTL 设备）。

**将 Linux 客户端连接到 iSCSI 目标**

1. 如果尚未在您的客户端上安装 `iscsi-initiator-utils` RPM 程序包，请安装程序包。

   您可以使用下面的命令来安装该包。

   ```
   sudo yum install iscsi-initiator-utils
   ```

1. 确保 iSCSI 守护进程正在运行。

   1. 使用下以下命令之一验证 iSCSI 守护进程是否正在运行。

      对于 RHEL 8 或 9，请使用以下命令。

      ```
      sudo service iscsid status
      ```

   1. 如果 status 命令未返回 *running* 状态，则使用以下命令之一启动守护程序。

      对于 RHEL 8 或 9，请使用以下命令。您通常不需要显式启动该`iscsid`服务。

      ```
      sudo service iscsid start
      ```

1. 要发现为网关定义的卷目标或 VTL 设备目标，请使用以下发现命令。

   ```
   sudo /sbin/iscsiadm --mode discovery --type sendtargets --portal [GATEWAY_IP]:3260
   ```

   用网关的 IP 地址代替前面命令中的*[GATEWAY\$1IP]*变量。您可以在 Storage Gateway 控制台上某个卷的 **iSCSI 目标信息**属性中找到网关 IP。

   发现命令的输出内容类似如下示例输出内容。

   对于卷网关：`[GATEWAY_IP]:3260, 1 iqn.1997-05.com.amazon:myvolume `

   对于磁带网关：`iqn.1997-05.com.amazon:[GATEWAY_IP]-tapedrive-01`

   您的 iSCSI 限定名称 (IQN) 与以上所示不同，因为每个组织的 IQN 值不同。目标名称是您创建卷时指定的名称。在 Storage Gateway 控制台上选择某个卷时，也可以在 **iSCSI 目标信息**属性窗格中找到此目标名称。

1. 要连接到目标，请使用以下命令。

   请注意，您需要在 connect 命令中指定正确的*[GATEWAY\$1IP]*和 IQN。
**警告**  
对于部署于 Amazon EC2 实例上的网关，不支持通过公有 Internet 连接来访问该网关。无法使用 Amazon EC2 实例的弹性 IP 地址作为目标地址。

   ```
   sudo /sbin/iscsiadm --mode node --targetname iqn.1997-05.com.amazon:[ISCSI_TARGET_NAME] --portal [GATEWAY_IP]:3260,1 --login
   ```

1. 要确认卷已附加到客户端 (启动程序)，请使用以下命令。

   ```
   ls -l /dev/disk/by-path
   ```

   命令的输出如下面的示例输出所示。

   `lrwxrwxrwx. 1 root root 9 Apr 16 19:31 ip-[GATEWAY_IP]:3260-iscsi-iqn.1997-05.com.amazon:myvolume-lun-0 -> ../../sda`

   设置启动程序后，我们强烈建议您按[自定义您的 Linux iSCSI 设置](recommendediSCSISettings.md#CustomizeLinuxiSCSISettings)中介绍的方式自定义 iSCSI 设置。

# 自定义 iSCSI 设置
<a name="recommendediSCSISettings"></a>

我们强烈建议您在设置启动程序后，自定义 iSCSI 设置以防止启动程序从目标断开。

通过增大下列步骤中所示的 iSCSI 超时值，您可以提高应用程序对需要较长时间的写入操作以及网络中断等其他瞬态问题的处理能力。

**注意**  
修改注册表前，您应该制作一份该注册表的备份副本。有关制作备份副本的信息以及使用注册表时应遵循的其他最佳做法，请参阅 *Microsoft TechNet 库*中的[注册表最佳做法](http://technet.microsoft.com/en-us/library/cc780921(WS.10).aspx)。

**Topics**
+ [自定义您的 Windows iSCSI 设置](#CustomizeWindowsiSCSISettings)
+ [自定义您的 Linux iSCSI 设置](#CustomizeLinuxiSCSISettings)
+ [为卷网关自定义 Linux 磁盘超时设置](#CustomizeLinuxDiskTimeoutSettings)

## 自定义您的 Windows iSCSI 设置
<a name="CustomizeWindowsiSCSISettings"></a>

使用 Windows 客户端时，用 Microsoft iSCSI 启动程序连接到您的网关卷。有关如何连接到卷的说明，请参阅[将卷连接到客户端](GettingStartedAccessVolumes.md)。

**如需自定义您的 Windows iSCSI 设置**

1. 提高请求排队的最长时间。

   1. 启动注册表编辑器 (`Regedit.exe`)。

   1. 导航到设备类别的全局唯一标识符 (GUID) 密钥，其中包含 iSCSI 控制器设置，如下所示。

       
**警告**  
确保您使用的是**CurrentControlSet**子键而不是其他控件集，例如 00 **ControlSet1** 或 **ControlSet00** 2。

       

      ```
      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}
      ```

   1. 找到微软 iSCSI 启动器的子密钥，如下所示。*[<Instance Number]*

      该项由四位数字表示，如 `0000`。

       

      ```
      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\[<Instance Number]
      ```

      根据计算机上安装的内容，Microsoft iSCSI 启动程序可能不是子项 `0000`。可以通过验证字符串 `DriverDesc` 是否具有 `Microsoft iSCSI Initiator` 值来确保选择了正确的子项。

   1. 要显示 iSCSI 设置，请选择 **Parameters (参数)** 子项。

   1. 打开 **MaxRequestHoldTime**DWORD（32 位）值的上下文（右键单击）菜单，选择 “**修改**”，然后将该值更改为。**600**

      **MaxRequestHoldTime**指定在通知上层事件之前，Microsoft iSCSI 启动器应保留多长时间并重试未完成的命令。`Device Removal`该值表示 600 秒的保持时间。

1. 通过修改以下参数，可以提高可在 iSCSI 数据包中发送的最大数据量：
   + **FirstBurstLength**控制在未经请求的写入请求中可以传输的最大数据量。将此值设置为 **262144** 或 Windows 操作系统的默认值，以较高者为准。
   + **MaxBurstLength**类似于 **FirstBurstLength**，但它设置了在请求的写入序列中可以传输的最大数据量。将此值设置为 **1048576** 或 Windows 操作系统的默认值，以较高者为准。
   + **MaxRecvDataSegmentLength**控制与单个协议数据单元 (PDU) 关联的最大数据段大小。将此值设置为 **262144** 或 Windows 操作系统的默认值，以较高者为准。
**注意**  
不同的备份软件可使用不同的 iSCSI 设置进行优化来达到最佳效果。要确认如何设置这些参数的值才能提供最佳性能，请参阅备份软件的文档。

1. 增大磁盘超时值，如下所示：

   1. 如果您尚未启动注册表编辑器 (`Regedit.exe`)，请将其启动。

   1. 导航到 “**服务**” 子项中的 “**磁盘**” 子项 **CurrentControlSet**，如下所示。

      ```
      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Services\Disk
      ```

   1. 打开 **TimeOutValue**DWORD（32 位）值的上下文（右键单击）菜单，选择 “**修改**”，然后将该值更改为。**600**

      **TimeOutValue**指定 iSCSI 启动器在尝试通过断开并重新建立连接来恢复会话之前，将等待目标的响应多少秒。该值表示 600 秒的超时期间。

1. 要确保新配置的值生效，请重新启动系统。

   重新启动之前，必须确保刷新了对卷进行的所有写入操作的结果。要这样做，请在重启前将任何映射的存储卷磁盘脱机。

## 自定义您的 Linux iSCSI 设置
<a name="CustomizeLinuxiSCSISettings"></a>

为网关设置启动程序后，我们强烈建议您自定义 iSCSI 设置以防止启动程序从目标断开。通过增大下面所示的 iSCSI 超时值，您可以提高应用程序对需要较长时间的写入操作以及网络中断等其他瞬态问题的处理能力。

**注意**  
命令可能与 Linux 的其他命令类型略有不同。以下示例基于 Red Hat Linux。

**如需自定义您的 Linux iSCSI 设置**

1. 提高请求排队的最长时间。

   1. 打开 `/etc/iscsi/iscsid.conf` 文件，然后找到以下各行。

      ```
      node.session.timeo.replacement_timeout = [replacement_timeout_value] 
      node.conn[0].timeo.noop_out_interval = [noop_out_interval_value] 
      node.conn[0].timeo.noop_out_timeout = [noop_out_timeout_value]
      ```

   1. 将该*[replacement\$1timeout\$1value]*值设置为**600**。

      将该*[noop\$1out\$1interval\$1value]*值设置为**60**。

      将该*[noop\$1out\$1timeout\$1value]*值设置为**600**。

      这三种值的单位均为秒。

       
**注意**  
必须在发现网关之前进行 `iscsid.conf` 设置。如果已发现网关和/或已登录到目标，则可使用以下命令从发现数据库中删除该项。然后可以重新发现或登录，从而使新设置生效。  
   

      ```
      iscsiadm -m discoverydb -t sendtargets -p [GATEWAY_IP]:3260 -o delete
      ```

1. 提高可在每个响应中传输的最大数据量。

   1. 打开 `/etc/iscsi/iscsid.conf` 文件，然后找到以下各行。

      ```
      node.session.iscsi.FirstBurstLength = [replacement_first_burst_length_value] 
      node.session.iscsi.MaxBurstLength = [replacement_max_burst_length_value]
      node.conn[0].iscsi.MaxRecvDataSegmentLength = [replacement_segment_length_value]
      ```

   1. 我们建议使用以下值，以实现更佳性能。您的备份软件可以使用不同的值进行优化，因此请参阅备份软件文档了解最佳效果。

      将该*[replacement\$1first\$1burst\$1length\$1value]*值设置为**262144**或 Linux 操作系统的默认值，以较高者为准。

      将该*[replacement\$1max\$1burst\$1length\$1value]*值设置为**1048576**或 Linux 操作系统的默认值，以较高者为准。

      将该*[replacement\$1segment\$1length\$1value]*值设置为**262144**或 Linux 操作系统的默认值，以较高者为准。
**注意**  
不同的备份软件可使用不同的 iSCSI 设置进行优化来达到最佳效果。要确认如何设置这些参数的值才能提供最佳性能，请参阅备份软件的文档。

1. 重启系统以确保新配置的值生效。

   重新启动之前，确保刷新了对卷进行的所有写入操作的结果。为此，请在重新启动之前卸载磁带。

## 为卷网关自定义 Linux 磁盘超时设置
<a name="CustomizeLinuxDiskTimeoutSettings"></a>

如果您使用的是卷网关，则除了上一节中描述的 iSCSI 设置外，还可以自定义以下 Linux 磁盘超时设置。

**自定义 Linux 磁盘超时设置**

1. 在规则文件中增大磁盘超时值。

   1. 如果您使用了 RHEL 5 启动程序，请打开 `/etc/udev/rules.d/50-udev.rules` 文件并查找以下行。

      ```
      ACTION=="add", SUBSYSTEM=="scsi" , SYSFS{type}=="0|7|14", \ 
      RUN+="/bin/sh -c 'echo [timeout] > /sys$$DEVPATH/timeout'"
      ```

      此规则文件在 RHEL 6 或 RHEL 7 启动程序中不存在，因此您必须使用以下规则创建它。

      ```
      ACTION=="add", SUBSYSTEMS=="scsi" , ATTRS{model}=="Storage Gateway", 
      RUN+="/bin/sh -c 'echo [timeout] > /sys$$DEVPATH/timeout'"
      ```

      要在 RHEL 6 中修改超时值，请使用以下命令，然后添加上面所示的代码行。

      ```
      sudo vim /etc/udev/rules.d/50-udev.rules
      ```

      要在 RHEL 7 中修改超时值，请使用以下命令，然后添加上面所示的代码行。

      ```
      sudo su -c "echo 600 > /sys/block/[device name]/device/timeout"
      ```

   1. 将该*[timeout]*值设置为**600**。

      该值表示 600 秒的超时值。

1. 重启系统以确保新配置的值生效。

   重新启动之前，确保刷新了对卷进行的所有写入操作的结果。要这样做，请在重启前卸载存储卷。

1. 您可以使用以下命令测试配置。

   ```
   udevadm test [PATH_TO_ISCSI_DEVICE]
   ```

   此命令显示了应用到 iSCSI 设备的 udev 规则。

# 为 iSCSI 目标配置 CHAP 身份验证
<a name="ConfiguringiSCSIClientInitiatorCHAP"></a>

Storage Gateway 支持使用质询握手身份验证协议 (CHAP) 在网关和 iSCSI 启动程序之间进行身份验证。CHAP 通过定期验证 iSCSI 启动程序的身份是否具有访问卷目标和 VTL 设备目标的权限来预防反演攻击。

**注意**  
CHAP 配置是可选的，但强烈推荐进行此配置。

要设置 CHAP，必须在 Storage Gateway 控制台和用于连接目标的 iSCSI 启动程序软件中对其进行配置。Storage Gateway 使用双方 CHAP，即启动程序对目标进行身份验证，目标对启动程序进行身份验证。

**为目标设置双向 CHAP**

1. 在 Storage Gateway 控制台上配置 CHAP，如 [为 Storage Gateway 控制台上的卷目标配置 CHAP](#ConfiguringiSCSIClientInitiatorCHAPConsole) 中所述。

1. 在客户端启动程序软件中，完成 CHAP 配置：
   + 要在 Windows 客户端上配置双向 CHAP，请参阅 [在 Windows 客户端上配置双向 CHAP。](#ConfiguringiSCSIClientInitiatorCHAPWindows)。
   + 要在 Red Hat Linux 客户端上配置双向 CHAP，请参阅 [如需在 Red Hat Linux 客户端上配置双向 CHAP](#ConfiguringiSCSIClientInitiatorCHAPLinux)。<a name="ConfiguringiSCSIClientInitiatorCHAPConsole"></a>

**为 Storage Gateway 控制台上的卷目标配置 CHAP**

在本步骤中，您指定两个用来对卷进行读取和写入操作的私有密钥。这两个密钥也用来在本步骤中配置客户端启动程序。

1. 在 Storage Gateway 控制台的“导航”窗格中，选择**卷**。

1. 对于 **Actions (操作)**，选择 **Configure CHAP Authentication (配置 CHAP 身份验证)**。

1. 在**配置 CHAP 身份验证**对话框中提供要求的信息。

   1. 对于**启动程序名称**，请输入 iSCSI 启动程序的名称。此名称是 Amazon iSCSI 限定名称 (IQN)，前面加上 `iqn.1997-05.com.amazon:`，后跟目标名称。示例如下：

      `iqn.1997-05.com.amazon:your-volume-name`

      您可以使用 iSCSI 启动程序软件找到启动程序名称。例如，对于 Windows 客户端，该名称为 iSCSI 启动程序的 **Configuration (配置)** 选项卡上的值。有关更多信息，请参阅 [在 Windows 客户端上配置双向 CHAP。](#ConfiguringiSCSIClientInitiatorCHAPWindows)。
**注意**  
如需更改启动程序名称，您必须先停用 CHAP，在 iSCSI 启动程序软件中更改启动程序名称，然后使用新名称激活 CHAP。

   1. 对于**用于对启动程序进行身份验证的密钥**，输入要求的密钥。

      此私有密钥的长度最少为 12 个字符，最多为 16 个字符。此值是私有密钥，启动程序 (即 Windows 客户端) 必须知道该私有密钥才能参与到与目标的 CHAP 中。

   1. 对于**用于对目标进行身份验证的密钥（双向 CHAP）**，输入要求的密钥。

      此私有密钥的长度最少为 12 个字符，最多为 16 个字符。目标必须知道此值才能参与到与启动程序的 CHAP 中。
**注意**  
用来验证目标身份的私有密钥必须不同于用来验证启动程序的私有密钥。

   1. 选择**保存**。

1. 选择 **Details** 选项卡并确认 **iSCSI CHAP authentication** 设置为 **true**。<a name="ConfiguringiSCSIClientInitiatorCHAPWindows"></a>

**在 Windows 客户端上配置双向 CHAP。**

在此过程中，您使用在控制台中为卷配置 CHAP 所用的同一密钥在 Microsoft iSCSI 启动程序中配置 CHAP。

1. 如果 iSCSI 启动程序尚未启动，请在 Windows 客户端计算机的**开始**菜单上，选择**运行**，输入 **iscsicpl.exe**，然后选择**确定**来运行该程序。

1. 为启动程序 (即 Windows 客户端) 配置双向 CHAP 配置：

   1. 选择**配置**选项卡。

       
**注意**  
**Initiator Name** 值对于您的启动程序和公司是唯一的。前面显示的名称是您在 Storage Gateway 控制台的**配置 CHAP 身份验证**对话框中使用的值。  
示例图像中所示名称仅作示范用途。

   1. 选择 **CHAP**。

   1. 在 **iSCSI 启动程序双向 CHAP 密钥**对话框中，输入双向 CHAP 密钥值。

      在此对话框中，输入启动程序 (Windows 客户端) 用来对目标 (存储卷) 进行身份验证的私有密钥。该私有密钥允许目标读取并写入启动程序。此密钥与在**配置 CHAP 身份验证**对话框的**用于对目标进行身份验证的密钥（双向 CHAP）**框中输入的密钥相同。有关更多信息，请参阅 [为 iSCSI 目标配置 CHAP 身份验证](#ConfiguringiSCSIClientInitiatorCHAP)。

   1. 如果您输入的密钥少于 12 个字符或多于 16 个字符，则会显示**启动程序 CHAP 密钥**错误对话框。

      选择**确定**，然后重新输入密钥。

1. 使用启动程序的密钥进行配置，完成双向 CHAP 配置。

   1. 选择**目标**选项卡。

   1. 如果当前连接了要为 CHAP 配置的目标，则通过选择该目标并选择 **Disconnect** 来断开该目标。

   1. 选择要为 CHAP 配置的目标，然后选择 **Connect**。

   1. 在 **Connect to Target** 对话框中，选择 **Advanced**。

   1. 在“**Advanced Settings**”对话框中，配置 CHAP。

       

      1. 选择**激活 CHAP 登录**。

      1. 输入验证启动程序所需的密钥。此密钥与在**配置 CHAP 身份验证**对话框的**用于对启动程序进行身份验证的密钥**框中输入的密钥相同。有关更多信息，请参阅 [为 iSCSI 目标配置 CHAP 身份验证](#ConfiguringiSCSIClientInitiatorCHAP)。

      1. 选择“**Perform mutual authentication**”。

      1. 要应用更改，请选择 **OK**。

   1. 在 **Connect to Target** 对话框中，选择 **OK**。

1. 如果提供的私有密钥正确无误，则目标将显示 **Connected (已连接)** 状态。<a name="ConfiguringiSCSIClientInitiatorCHAPLinux"></a>

**如需在 Red Hat Linux 客户端上配置双向 CHAP**

在此过程中，您使用在 Storage Gateway 控制台中为卷配置 CHAP 所用的同一密钥在 Linux iSCSI 启动程序中配置 CHAP。

1. 确保 iSCSI 守护进程正在运行并且您已连接到目标。如果您尚未完成这两项任务，请参阅[连接到 Red Hat Enterprise Linux 客户端](https://docs.aws.amazon.com/storagegateway/latest/vgw/GettingStarted-use-volumes.html#issci-rhel)。

1. 断开并移除您即将为其配置 CHAP 的目标的任何现有配置。

   1. 要查找目标名称并确保其为定义的配置，请使用以下命令列出保存的配置。

      ```
      sudo /sbin/iscsiadm --mode node
      ```

   1. 从目标断开。

      以下命令从 Amazon iSCSI 限定名称 (IQN) 中定义的名为 **myvolume** 的目标断开连接。按您的需求情况更改目标名称和 IQN。

      ```
      sudo /sbin/iscsiadm --mode node --logout GATEWAY_IP:3260,1 iqn.1997-05.com.amazon:myvolume
      ```

   1. 移除目标的配置。

      下面的命令移除 **myvolume** 目标的配置。

      ```
      sudo /sbin/iscsiadm --mode node --op delete --targetname iqn.1997-05.com.amazon:myvolume
      ```

1. 编辑 iSCSI 配置文件来激活 CHAP。

   1. 获取启动程序 (即您正在使用的客户端) 的名称。

      以下命令从文件 `/etc/iscsi/initiatorname.iscsi` 获取发起程序名称。

      ```
      sudo cat /etc/iscsi/initiatorname.iscsi
      ```

      该命令的输出内容类似于以下内容：

      `InitiatorName=iqn.1994-05.com.redhat:8e89b27b5b8`

   1. 打开 `/etc/iscsi/iscsid.conf` 文件。

   1. 取消文件中以下各行的注释，并为*username*、*password**username\$1in*、和*password\$1in*指定正确的值。

      ```
      node.session.auth.authmethod = CHAP
      node.session.auth.username = username
      node.session.auth.password = password
      node.session.auth.username_in = username_in
      node.session.auth.password_in = password_in
      ```

      有关要指定的值的指南，请参阅下表。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/storagegateway/latest/vgw/ConfiguringiSCSIClientInitiatorCHAP.html)

   1. 保存配置文件中的更改，然后关闭该文件。

1. 发现并登录到目标。为此，请按照[连接到 Red Hat Enterprise Linux 客户端](https://docs.aws.amazon.com/storagegateway/latest/vgw/GettingStarted-use-volumes.html#issci-rhel)中的步骤进行操作。