10.5. 配置 iSCSI 启动器


您可以配置 iSCSI 启动器,以连接到以下平台上的 Ceph iSCSI 网关:

10.5.1. 为 Red Hat Enterprise Linux 配置 iSCSI 启动器

先决条件

  • Red Hat Enterprise Linux 7.7 或更高版本。
  • 必须安装了软件包 iscsi-initiator-utils-6.2.0.873-35 或更新的版本。
  • 必须安装 package device-mapper-multipath-0.4.9-99 或更新版本。

流程

  1. 安装 iSCSI 启动器和多路径工具:

    [root@rhel ~]# yum install iscsi-initiator-utils
    [root@rhel ~]# yum install device-mapper-multipath
  2. 通过编辑 /etc/iscsi/initiatorname.iscsi 文件来设置启动器名称。请注意,启动器名称必须与使用 gwcli 命令在初始设置期间使用的启动器名称匹配。
  3. 配置多路径 I/O.

    1. 创建默认 /etc/multipath.conf 文件并启用 multipathd 服务:

      [root@rhel ~]# mpathconf --enable --with_multipathd y
    2. 更新 /etc/multipath.conf 文件,如下所示:

      devices {
              device {
                      vendor                 "LIO-ORG"
                      product                "TCMU device"
                      hardware_handler       "1 alua"
                      path_grouping_policy   "failover"
                      path_selector          "queue-length 0"
                      failback               60
                      path_checker           tur
                      prio                   alua
                      prio_args              exclusive_pref_bit
                      fast_io_fail_tmo       25
                      no_path_retry          queue
              }
      }
    3. 重启 multipathd 服务:

      [root@rhel ~]# systemctl reload multipathd
  4. 设置 CHAP 和 iSCSI 发现和登录。

    1. 通过相应地更新 /etc/iscsi/iscsid.conf 文件来提供 CHAP 用户名和密码,例如:

      node.session.auth.authmethod = CHAP
      node.session.auth.username = user
      node.session.auth.password = password
    2. 发现目标门户:

      语法

      iscsiadm -m discovery -t st -p IP_ADDR

    3. 登录到目标:

      语法

      iscsiadm -m node -T TARGET -l

  5. 查看多路径 I/O 配置。multipathd 守护进程根据 multipath.conf 文件中的设置自动设置设备。

    1. 使用 multipath 命令显示故障切换配置中的设备设置,以及每个路径的优先级组,例如:

      示例

      [root@rhel ~]# multipath -ll
      mpathbt (360014059ca317516a69465c883a29603) dm-1 LIO-ORG,TCMU device
      size=1.0G features='0' hwhandler='1 alua' wp=rw
      |-+- policy='queue-length 0' prio=50 status=active
      | `- 28:0:0:1 sde  8:64  active ready running
      `-+- policy='queue-length 0' prio=10 status=enabled
        `- 29:0:0:1 sdc  8:32  active ready running

      multipath -ll 输出的 prio 值指示 ALUA 状态,其中 prio=50 表示它是在 ALUA Active-Optimized 状态下拥有 iSCSI 网关的路径,prio=10 表示它是一个 Active-non-Optimized 路径。status 字段指示正在使用的路径,其中 active 表示当前使用的路径,enabled 表示在 active 失败时的故障转移路径。

    2. 要将设备名称(例如 multipath -ll 输出中的 sde )与 iSCSI 网关匹配:

      示例

      [root@rhel ~]# iscsiadm -m session -P 3

      Persistent Portal 值是分配给 iSCSI 网关的 IP 地址,列在 gwcli 实用程序中。

10.5.2. 为 Red Hat Virtualization 配置 iSCSI 启动程序

先决条件

  • Red Hat Virtualization 4.1
  • 在所有 Red Hat Virtualization 节点上配置了 MPIO 设备
  • iscsi-initiator-utils-6.2.0.873-35 软件包或更新版本
  • device-mapper-multipath-0.4.9-99 软件包或更新版本

流程

  1. 配置多路径 I/O.

    1. 更新 /etc/multipath/conf.d/DEVICE_NAME.conf 文件,如下所示:

      devices {
              device {
                      vendor                 "LIO-ORG"
                      product                "TCMU device"
                      hardware_handler       "1 alua"
                      path_grouping_policy   "failover"
                      path_selector          "queue-length 0"
                      failback               60
                      path_checker           tur
                      prio                   alua
                      prio_args              exclusive_pref_bit
                      fast_io_fail_tmo       25
                      no_path_retry          queue
              }
      }
    2. 重启 multipathd 服务:

      [root@rhv ~]# systemctl reload multipathd
  2. 单击 Storage 资源选项卡,以列出现有的存储域。
  3. 单击 New Domain 按钮打开 New Domain 窗口。
  4. 输入新存储域的名称
  5. 使用 Data Center 下拉菜单选择数据中心。
  6. 使用下拉菜单选择 Domain FunctionStorage Type。与所选域功能不兼容的存储域类型不可用。
  7. Use Host 字段中选择一个活动主机。如果这不是数据中心中的第一个数据域,您必须选择数据中心的 SPM 主机。
  8. 当选择 iSCSI 作为存储类型时,新建域 窗口会自动显示已知带有未使用的 LUN 的目标。如果没有列出您要添加存储的目标,您可以使用目标发现来找到目标,否则继续下一步。

    1. 单击 Discover Targets 以启用目标发现选项。发现目标并登录后,新建域 窗口将自动显示环境未使用的目标。请注意,环境外部的 LUN 也会显示。您可以使用 发现目标 选项在多个目标或同一 LUN 的多个路径中添加 LUN。
    2. Address 字段中输入 iSCSI 主机的完全限定域名或 IP 地址。
    3. Port 字段中输入在浏览目标时,用于连接到主机的端口。默认值为 3260
    4. 如果使用 Challenge Handshake Authentication Protocol (CHAP) 来保护存储,请选中 User Authentication 复选框。输入 CHAP 用户名CHAP 密码
    5. 单击 Discover 按钮。
    6. 从发现结果中选择要使用的目标,然后单击 登录 按钮。或者,单击 Login All 以登录所有发现的目标。

      重要

      如果需要多个路径访问,请确保通过所有必要的路径发现并登录到目标。目前不支持修改存储域以添加其他路径。

  9. 单击所需目标旁边的 + 按钮。这将展开条目并显示与目标连接的所有未使用的 LUN。
  10. 选中您正在使用的每个 LUN 的复选框,以创建存储域。
  11. 另外,您还可以配置高级参数。

    1. 单击 Advanced Parameters
    2. Warning Low Space Indicator 字段中输入一个百分比值。如果存储域中的可用空间低于这个百分比,则会向用户显示警告消息并记录日志。
    3. Critical Space Action Blocker 字段中输入一个 GB 值。如果存储域中可用的可用空间低于此值,则会向用户和记录错误消息显示,并且任何占用空间的新操作(即便是临时使用)都会被阻止。
    4. 选中 Wipe After Delete 复选框以启用 wipe after delete 选项。您可以在创建域后编辑此选项,但这样做不会改变已存在磁盘的 wipe after delete 属性。
    5. 选中 Discard After Delete 复选框,以在删除后启用丢弃选项。您可以在创建域后编辑这个选项。此选项仅适用于块存储域。
  12. 单击 确定 以创建存储域并关闭该窗口。

10.5.3. 为 Microsoft Windows 配置 iSCSI 启动器

先决条件

  • Microsoft Windows Server 2016

流程

  1. 安装 iSCSI 启动器并配置发现和设置。

    1. 安装 iSCSI 启动器驱动程序和 MPIO 工具。
    2. 启动 MPIO 程序,单击 Discover Multi-Paths 选项卡,选中 iSCSI 设备添加支持框,然后单击 Add
    3. 重启 MPIO 程序。
    4. iSCSI Initiator Properties 窗口的 Discovery 选项卡上,添加一个目标门户。输入 Ceph iSCSI 网关的 IP 地址或 DNS 名称和端口。
    5. Targets 选项卡中,选择目标并点 Connect
    6. Connect To Target 窗口中,选择 Enable multi-path 选项,然后点 Advanced 按钮。
    7. Connect using 部分,从下拉列表中选择 Microsoft ISCSI Intiator 作为 Local adapter。从下拉列表中选择 Windows 客户端 IP 地址作为 Initiator IP。选择目标门户 IP 地址。选择 Enable CHAP login on,然后在 Ceph iSCSI 客户端凭证部分中输入 NameTarget secret 值,然后点 OK

      重要

      Windows Server 2016 不接受小于 12 字节的 CHAP secret。

    8. 对设置 iSCSI 网关时定义的每个目标门户重复前面的两个步骤,然后点 连接 选项卡。
    9. 如果启动器名称与初始设置期间使用的启动器名称不同,请重命名启动器名称。在 iSCSI Initiator Properties 窗口的 Configuration 选项卡中点 Change 按钮来重命名启动器名称。
  2. 设置 多路径 I/O。在 PowerShell 中,使用 PDORemovePeriod 命令设置 MPIO 负载平衡策略和 mpclaim 命令来设置负载平衡策略。iSCSI 启动器工具配置剩余的选项。

    注意

    红帽建议将 PDORemovePeriod 选项从 PowerShell 增加到 120 秒。您可能需要根据应用调整此值。当所有路径都关闭且 120 秒过期时,操作系统将启动 I/O 请求失败。

    Set-MPIOSetting -NewPDORemovePeriod 120
    1. 设置故障切换策略

      mpclaim.exe -l -m 1
    2. 验证故障转移策略

      mpclaim -s -m
      MSDSM-wide Load Balance Policy: Fail Over Only
    3. 使用 iSCSI Initiator 工具,从 Targets 选项卡中点 Devices…​ 按钮:
    4. Devices 窗口中选择一个磁盘并点 MPIO…​ 按钮:
    5. Device Details 窗口显示到每个目标门户的路径。负载均衡策略 Fail Over Only 必须被选择。
    6. 查看 PowerShell 中的 多路径 配置:

      mpclaim -s -d MPIO_DISK_ID

      MPIO_DISK_ID 替换为适当的磁盘标识符。

      注意

      存在一个 Active/Optimized 路径,它是拥有 LUN 的 iSCSI 网关节点的路径,其他 iSCSI 网关节点有一个 Active/未优化路径。

  3. (可选)调整设置。考虑使用以下 registry 设置:

    • Windows 磁盘超时

      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk

      TimeOutValue = 65

    • Microsoft iSCSI Initiator Driver

      HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance_Number>\Parameters

      LinkDownTime = 25
      SRBTimeoutDelta = 15

10.5.4. 为 VMware ESXi 配置 iSCSI 启动器

先决条件

  • 有关支持的 VMware ESXi 版本,请查看客户门户网站知识库文章 iSCSI 网关(IGW) 部分。
  • 访问 VMware ESXi web 界面。
  • 对 VMware ESXi 主机控制台的根访问权限来执行 esxcli 命令。

流程

  1. 登录到 VMware ESXi web 界面。
  2. Actions highlight Services Enable SSH
  3. 登录到 VMware ESXi 主机控制台,并禁用 HardwareAcceleratedMove (XCOPY):

    > esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove
  4. 在 VMware ESXi web 界面中,在 Navigator 窗格中,点 Storage。点 Adapters 选项卡。突出显示适配器,并点 Configure iSCSI
  5. Name & alias 字段中验证 initiator 名称。
  6. 如果 initiator 名称与在初始设置中使用 gwcli 实用程序创建客户端时使用的 initiator 名称不同,则更改 initiator 名称。在 VMware ESXi 主机控制台中,执行以下步骤。

    1. 获取 iSCSI 软件的适配器名称:

      > esxcli iscsi adapter list
      > Adapter  Driver     State   UID            Description
      > -------  ---------  ------  -------------  ----------------------
      > vmhba64  iscsi_vmk  online  iscsi.vmhba64  iSCSI Software Adapter
    2. 设置 initiator 名称:

      语法

      esxcli iscsi adapter set -A ADAPTOR_NAME -n INITIATOR_NAME

      示例

      > esxcli iscsi adapter set -A vmhba64 -n iqn.1994-05.com.redhat:rh8-client

    3. 从 VMware ESXi web 界面验证新 initiator 名称。在 Navigator 窗格中,点 Storage。点 Software iSCSI。新的 initiator 名称位于 Name & alias 字段中,以及 Ceph 对象网关节点名称。
  7. 展开 CHAP authentication 部分。从下拉列表中,选择 Do not use CHAP unless required by target。输入初始设置中使用的 CHAP NameSecret 凭证。验证在 Mutual CHAP authentication 部分中选择了 Do not use CHAP

    重要

    对于 admin 和 mutual CHAP 身份验证,用户名/密码不应相同。

    • username/mutual_username 为 8-64 个字符,包括以下字符 [0-9, a-z, A-Z] 和 ., :, @, _, -
    • password/mutual_password 是 12-16 个字符,包括 [0-9, a-z, A-Z] 字符和 @, -, _, /
    警告

    由于 VMware 主机客户端中有一个错误,最初不会使用 CHAP 设置。在 Ceph iSCSI 网关节点上,内核日志包括以下错误来指示此错误:

    > kernel: CHAP user or password not set for Initiator ACL
    > kernel: Security negotiation failed.
    > kernel: iSCSI Login negotiation failed.

    要临时解决这个问题,请使用 esxcli 命令配置 CHAP 设置。authname 参数是 CHAP authentication 部分中的 Name

    语法

    esxcli iscsi adapter auth chap set --direction=uni --authname=ISCSI_USER_NAME --secret=ISCSI_PASSWORD --level=discouraged -A ADAPTOR_NAME

  8. 展开 Advanced settings 部分。将 RecoveryTimeout 值设为 25。
  9. Dynamic targets 部分,点 Add dynamic target。在 Address 字段下点击,为其中一个 Ceph iSCSI 网关添加 IP 地址。只需要添加一个 IP 地址。最后,点保存配置按钮。点 Devices 选项卡,以查看 RBD 镜像。

    注意

    LUN 是自动配置的,使用 ALUA SATP 和 MRU PSP。不要使用其他 SATP 和 PSP。您可以通过 esxcli 命令验证:

    语法

    esxcli storage nmp path list -d eui.DEVICE_ID

    使用适当的设备标识符替换 DEVICE_ID

  10. 在 VMware ESXi 主机控制台中,验证多路径是否已正确设置。

    1. 列出设备:

      示例

      > esxcli storage nmp device list | grep iSCSI
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b)
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405057360ba9b4c434daa3c6770c)

    2. 从上一步中获取 Ceph iSCSI 磁盘的多路径信息:

      示例

      > esxcli storage nmp path list -d naa.6001405f8d087846e7b4f0e9e3acd44b
      
      iqn.2005-03.com.ceph:esx1-00023d000001,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,t,1-naa.6001405f8d087846e7b4f0e9e3acd44b
         Runtime Name: vmhba64:C0:T0:L0
         Device: naa.6001405f8d087846e7b4f0e9e3acd44b
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b)
         Group State: active
         Array Priority: 0
         Storage Array Type Path Config: {TPG_id=1,TPG_state=AO,RTP_id=1,RTP_health=UP}
         Path Selection Policy Path Config: {current path; rank: 0}
      
      iqn.2005-03.com.ceph:esx1-00023d000002,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,t,2-naa.6001405f8d087846e7b4f0e9e3acd44b
         Runtime Name: vmhba64:C1:T0:L0
         Device: naa.6001405f8d087846e7b4f0e9e3acd44b
         Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b)
         Group State: active unoptimized
         Array Priority: 0
         Storage Array Type Path Config: {TPG_id=2,TPG_state=ANO,RTP_id=2,RTP_health=UP}
         Path Selection Policy Path Config: {non-current path; rank: 0}

      在示例输出中,每个路径都有一个带有以下部分的 iSCSI 或 SCSI 名称:

      Initiator name = iqn.2005-03.com.ceph:esx1 ISID = 00023d000002 Target name = iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw Target port group = 2 Device id = naa.6001405f8d087846e7b4f0e9e3acd44b

      activeGroup State 值表示这是到 iSCSI 网关的 Active-Optimized 路径。gwcli 命令列出 active 作为 iSCSI 网关所有者。如果 active 路径进入 dead 状态,则其余路径具有 unoptimizedGroup State 值,并且是故障转移路径。

    3. 匹配其各自 iSCSI 网关的所有路径:

      示例

      > esxcli iscsi session connection list
      vmhba64,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,00023d000001,0
         Adapter: vmhba64
         Target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
         ISID: 00023d000001
         CID: 0
         DataDigest: NONE
         HeaderDigest: NONE
         IFMarker: false
         IFMarkerInterval: 0
         MaxRecvDataSegmentLength: 131072
         MaxTransmitDataSegmentLength: 262144
         OFMarker: false
         OFMarkerInterval: 0
         ConnectionAddress: 10.172.19.21
         RemoteAddress: 10.172.19.21
         LocalAddress: 10.172.19.11
         SessionCreateTime: 08/16/18 04:20:06
         ConnectionCreateTime: 08/16/18 04:20:06
         ConnectionStartTime: 08/16/18 04:30:45
         State: logged_in
      
      vmhba64,iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw,00023d000002,0
         Adapter: vmhba64
         Target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
         ISID: 00023d000002
         CID: 0
         DataDigest: NONE
         HeaderDigest: NONE
         IFMarker: false
         IFMarkerInterval: 0
         MaxRecvDataSegmentLength: 131072
         MaxTransmitDataSegmentLength: 262144
         OFMarker: false
         OFMarkerInterval: 0
         ConnectionAddress: 10.172.19.22
         RemoteAddress: 10.172.19.22
         LocalAddress: 10.172.19.12
         SessionCreateTime: 08/16/18 04:20:06
         ConnectionCreateTime: 08/16/18 04:20:06
         ConnectionStartTime: 08/16/18 04:30:41
         State: logged_in

      将路径名称与 ISID 值匹配,RemoteAddress 值是自有 iSCSI 网关的 IP 地址。

  11. 在 VMware ESXi web 界面中,点 Devices 选项卡查看 iSCSI 磁盘。
  12. New datastore 以启动向导。

    1. 为新数据存储提供名称,然后点 Next
    2. 选择 Use full disk,点 Next
    3. Finish。此时会出现有关清除磁盘的警告消息。点 Yes 继续,然后创建新的数据存储。
    4. 新数据存储将出现在 Datastores 选项卡上。
  13. 您可以选择数据存储名称来检查磁盘使用情况。您还可以运行以下命令,检查 Ceph 的磁盘用量:

    语法

    rbd du --pool POOL_NAME

    示例

    [root@rbd-client ~]# rbd du --pool rbdpool

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.