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
或更新版本。
流程
安装 iSCSI 启动器和多路径工具:
[root@rhel ~]# yum install iscsi-initiator-utils [root@rhel ~]# yum install device-mapper-multipath
-
通过编辑
/etc/iscsi/initiatorname.iscsi
文件来设置启动器名称。请注意,启动器名称必须与使用gwcli
命令在初始设置期间使用的启动器名称匹配。 配置多路径 I/O.
创建默认
/etc/multipath.conf
文件并启用multipathd
服务:[root@rhel ~]# mpathconf --enable --with_multipathd y
更新
/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 } }
重启
multipathd
服务:[root@rhel ~]# systemctl reload multipathd
设置 CHAP 和 iSCSI 发现和登录。
通过相应地更新
/etc/iscsi/iscsid.conf
文件来提供 CHAP 用户名和密码,例如:node.session.auth.authmethod = CHAP node.session.auth.username = user node.session.auth.password = password
发现目标门户:
语法
iscsiadm -m discovery -t st -p IP_ADDR
登录到目标:
语法
iscsiadm -m node -T TARGET -l
查看多路径 I/O 配置。
multipathd
守护进程根据multipath.conf
文件中的设置自动设置设备。使用
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
失败时的故障转移路径。要将设备名称(例如
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
软件包或更新版本
流程
配置多路径 I/O.
更新
/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 } }
重启
multipathd
服务:[root@rhv ~]# systemctl reload multipathd
- 单击 Storage 资源选项卡,以列出现有的存储域。
- 单击 New Domain 按钮打开 New Domain 窗口。
- 输入新存储域的名称。
- 使用 Data Center 下拉菜单选择数据中心。
- 使用下拉菜单选择 Domain Function 和 Storage Type。与所选域功能不兼容的存储域类型不可用。
- 在 Use Host 字段中选择一个活动主机。如果这不是数据中心中的第一个数据域,您必须选择数据中心的 SPM 主机。
当选择 iSCSI 作为存储类型时,新建域 窗口会自动显示已知带有未使用的 LUN 的目标。如果没有列出您要添加存储的目标,您可以使用目标发现来找到目标,否则继续下一步。
- 单击 Discover Targets 以启用目标发现选项。发现目标并登录后,新建域 窗口将自动显示环境未使用的目标。请注意,环境外部的 LUN 也会显示。您可以使用 发现目标 选项在多个目标或同一 LUN 的多个路径中添加 LUN。
- 在 Address 字段中输入 iSCSI 主机的完全限定域名或 IP 地址。
-
在 Port 字段中输入在浏览目标时,用于连接到主机的端口。默认值为
3260
。 - 如果使用 Challenge Handshake Authentication Protocol (CHAP) 来保护存储,请选中 User Authentication 复选框。输入 CHAP 用户名 和 CHAP 密码。
- 单击 Discover 按钮。
从发现结果中选择要使用的目标,然后单击 登录 按钮。或者,单击 Login All 以登录所有发现的目标。
重要如果需要多个路径访问,请确保通过所有必要的路径发现并登录到目标。目前不支持修改存储域以添加其他路径。
- 单击所需目标旁边的 + 按钮。这将展开条目并显示与目标连接的所有未使用的 LUN。
- 选中您正在使用的每个 LUN 的复选框,以创建存储域。
另外,您还可以配置高级参数。
- 单击 Advanced Parameters。
- 在 Warning Low Space Indicator 字段中输入一个百分比值。如果存储域中的可用空间低于这个百分比,则会向用户显示警告消息并记录日志。
- 在 Critical Space Action Blocker 字段中输入一个 GB 值。如果存储域中可用的可用空间低于此值,则会向用户和记录错误消息显示,并且任何占用空间的新操作(即便是临时使用)都会被阻止。
-
选中 Wipe After Delete 复选框以启用
wipe after delete
选项。您可以在创建域后编辑此选项,但这样做不会改变已存在磁盘的wipe after delete
属性。 - 选中 Discard After Delete 复选框,以在删除后启用丢弃选项。您可以在创建域后编辑这个选项。此选项仅适用于块存储域。
- 单击 确定 以创建存储域并关闭该窗口。
10.5.3. 为 Microsoft Windows 配置 iSCSI 启动器
先决条件
- Microsoft Windows Server 2016
流程
安装 iSCSI 启动器并配置发现和设置。
- 安装 iSCSI 启动器驱动程序和 MPIO 工具。
- 启动 MPIO 程序,单击 Discover Multi-Paths 选项卡,选中 iSCSI 设备添加支持框,然后单击 Add。
- 重启 MPIO 程序。
- 在 iSCSI Initiator Properties 窗口的 Discovery 选项卡上,添加一个目标门户。输入 Ceph iSCSI 网关的 IP 地址或 DNS 名称和端口。
- 在 Targets 选项卡中,选择目标并点 Connect。
- 在 Connect To Target 窗口中,选择 Enable multi-path 选项,然后点 Advanced 按钮。
在 Connect using 部分,从下拉列表中选择 Microsoft ISCSI Intiator 作为 Local adapter。从下拉列表中选择 Windows 客户端 IP 地址作为 Initiator IP。选择目标门户 IP 地址。选择 Enable CHAP login on,然后在 Ceph iSCSI 客户端凭证部分中输入 Name 和 Target secret 值,然后点 OK。
重要Windows Server 2016 不接受小于 12 字节的 CHAP secret。
- 对设置 iSCSI 网关时定义的每个目标门户重复前面的两个步骤,然后点 连接 选项卡。
- 如果启动器名称与初始设置期间使用的启动器名称不同,请重命名启动器名称。在 iSCSI Initiator Properties 窗口的 Configuration 选项卡中点 Change 按钮来重命名启动器名称。
设置
多路径
I/O。在 PowerShell 中,使用PDORemovePeriod
命令设置 MPIO 负载平衡策略和mpclaim
命令来设置负载平衡策略。iSCSI 启动器工具配置剩余的选项。注意红帽建议将
PDORemovePeriod
选项从 PowerShell 增加到 120 秒。您可能需要根据应用调整此值。当所有路径都关闭且 120 秒过期时,操作系统将启动 I/O 请求失败。Set-MPIOSetting -NewPDORemovePeriod 120
设置故障切换策略
mpclaim.exe -l -m 1
验证故障转移策略
mpclaim -s -m MSDSM-wide Load Balance Policy: Fail Over Only
- 使用 iSCSI Initiator 工具,从 Targets 选项卡中点 Devices… 按钮:
- 在 Devices 窗口中选择一个磁盘并点 MPIO… 按钮:
- Device Details 窗口显示到每个目标门户的路径。负载均衡策略 Fail Over Only 必须被选择。
查看 PowerShell 中的
多路径
配置:mpclaim -s -d MPIO_DISK_ID
将 MPIO_DISK_ID 替换为适当的磁盘标识符。
注意存在一个 Active/Optimized 路径,它是拥有 LUN 的 iSCSI 网关节点的路径,其他 iSCSI 网关节点有一个 Active/未优化路径。
(可选)调整设置。考虑使用以下 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
命令。
流程
- 登录到 VMware ESXi web 界面。
-
点 Actions
highlight Services 点 Enable SSH。 登录到 VMware ESXi 主机控制台,并禁用
HardwareAcceleratedMove
(XCOPY):> esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove
- 在 VMware ESXi web 界面中,在 Navigator 窗格中,点 Storage。点 Adapters 选项卡。突出显示适配器,并点 Configure iSCSI。
- 在 Name & alias 字段中验证 initiator 名称。
如果 initiator 名称与在初始设置中使用
gwcli
实用程序创建客户端时使用的 initiator 名称不同,则更改 initiator 名称。在 VMware ESXi 主机控制台中,执行以下步骤。获取 iSCSI 软件的适配器名称:
> esxcli iscsi adapter list > Adapter Driver State UID Description > ------- --------- ------ ------------- ---------------------- > vmhba64 iscsi_vmk online iscsi.vmhba64 iSCSI Software Adapter
设置 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
- 从 VMware ESXi web 界面验证新 initiator 名称。在 Navigator 窗格中,点 Storage。点 Software iSCSI。新的 initiator 名称位于 Name & alias 字段中,以及 Ceph 对象网关节点名称。
展开 CHAP authentication 部分。从下拉列表中,选择 Do not use CHAP unless required by target。输入初始设置中使用的 CHAP Name 和 Secret 凭证。验证在 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
-
- 展开 Advanced settings 部分。将 RecoveryTimeout 值设为 25。
在 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。
在 VMware ESXi 主机控制台中,验证多路径是否已正确设置。
列出设备:
示例
> 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)
从上一步中获取 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
active
的Group State
值表示这是到 iSCSI 网关的 Active-Optimized 路径。gwcli
命令列出active
作为 iSCSI 网关所有者。如果active
路径进入dead
状态,则其余路径具有unoptimized
的Group State
值,并且是故障转移路径。匹配其各自 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 地址。
- 在 VMware ESXi web 界面中,点 Devices 选项卡查看 iSCSI 磁盘。
点 New datastore 以启动向导。
- 为新数据存储提供名称,然后点 Next。
- 选择 Use full disk,点 Next。
- 点 Finish。此时会出现有关清除磁盘的警告消息。点 Yes 继续,然后创建新的数据存储。
- 新数据存储将出现在 Datastores 选项卡上。
您可以选择数据存储名称来检查磁盘使用情况。您还可以运行以下命令,检查 Ceph 的磁盘用量:
语法
rbd du --pool POOL_NAME
示例
[root@rbd-client ~]# rbd du --pool rbdpool