8.4. 配置 iSCSI 启动器
Red Hat Ceph Storage 支持三个操作系统中的 iSCSI 启动器来连接到 Ceph iSCSI 网关:
8.4.1. Red Hat Enterprise Linux 的 iSCSI 启动器 复制链接链接已复制到粘贴板!
先决条件:
-
必须安装软件包
iscsi-initiator-utils-6.2.0.873-35或更高版本 -
必须安装软件包
device-mapper-multipath-0.4.9-99或更新版本
安装软件:
安装 iSCSI 启动器和多路径工具:
# yum install iscsi-initiator-utils # yum install device-mapper-multipath
设置启动器名称
编辑
/etc/iscsi/initiatorname.iscsi文件。注意启动器名称必须与 Ansible
client_connections选项中使用的启动器名称匹配,或者使用gwcli在初始设置中使用什么。
配置多路径 IO:
创建默认
/etc/multipath.conf文件并启用multipathd服务:# mpathconf --enable --with_multipathd y将以下内容添加到
/etc/multipath.conf文件中:devices { device { vendor "LIO-ORG" 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服务:# systemctl reload multipathd
CHAP Setup 和 iSCSI Discovery/Login:
通过相应地更新
/etc/iscsi/iscsid.conf文件来提供 CHAP 用户名和密码。示例
node.session.auth.authmethod = CHAP node.session.auth.username = user node.session.auth.password = password注意如果更新这些选项,则必须重新运行
iscsiadm discovery命令。发现目标门户:
# iscsiadm -m discovery -t st -p 192.168.56.101 192.168.56.101:3260,1 iqn.2003-01.org.linux-iscsi.rheln1 192.168.56.102:3260,2 iqn.2003-01.org.linux-iscsi.rheln1登录到目标:
# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.rheln1 -l
查看多路径 IO 配置:
多路径守护进程(multipath)将根据 multipath.conf 设置自动设置设备。运行 multipath 命令显示故障切换配置中的设备设置,每个路径都有一个优先级组,例如:
# multipath -ll
mpathbt (360014059ca317516a69465c883a29603) dm-1 LIO-ORG ,IBLOCK
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-Optmized 路径。status 字段指示正在使用的路径,其中 active 表示当前使用的路径,enabled 表示在 active 失败时的故障转移路径。要将设备名称(例如 multipath -ll 输出中的 sde )与 iSCSI 网关匹配,请运行以下命令:
# iscsiadm -m session -P 3
Persistent Portal 值是分配给 gwcli 中列出的 iSCSI 网关的 IP 地址或 gateway_ip_list 中列出的 iSCSI 网关的 IP 地址(如果使用 Ansible)。
8.4.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或更新版本
配置多路径 IO:
更新
/etc/multipath/conf.d/DEVICE_NAME.conf文件,如下所示:devices { device { vendor "LIO-ORG" 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服务:# systemctl reload multipathd
添加 iSCSI 存储
- 单击 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 选项。可以在创建域后编辑此选项,但是这样做不会在删除已存在的磁盘属性后更改擦除。
- 选中 Discard After Delete 复选框,以在删除后启用丢弃选项。可在创建域后编辑此选项。此选项仅适用于块存储域。
- 单击 确定 以创建存储域并关闭该窗口。
8.4.3. Microsoft Windows 的 iSCSI 启动器 复制链接链接已复制到粘贴板!
先决条件:
- Microsoft Windows Server 2016
iSCSI 启动器、发现和设置:
- 安装 iSCSI 启动器驱动程序和 MPIO 工具。
- 启动 MPIO 程序,单击 Discover Multi-Paths 选项卡,选中 iSCSI 设备的添加支持 框,然后单击 Add。这个更改需要重启。
在 iSCSI Initiator Properties 窗口中,在 Discovery 标签页
中添加一个目标门户。输入 Ceph iSCSI 网关的 IP 地址或 DNS 名称
和端口
:
在 Targets 选项卡中
,选择目标并点击 Connect
:
在 Connect To Target 窗口中,选择 Enable multi-path 选项
,然后点击 高级 按钮
:
在 Connect using 部分下,选择一个 目标门户 IP
。选择 Enable CHAP login on
,并从 Ceph iSCSI Ansible 客户端凭证部分输入 Name 和 Target secret 值
,然后点 OK
:
重要Windows Server 2016 不接受小于 12 字节的 CHAP secret。
- 对设置 iSCSI 网关时定义的每个目标门户重复步骤 5 和 6。
如果启动器名称与初始设置期间使用的启动器名称不同,请重命名启动器名称。在 iSCSI 启动器属性 窗口中,在 配置 选项卡
中,点击 更改 按钮
来重命名启动器名称。
多路径 IO 设置:
配置 MPIO 负载均衡策略,设置超时和重试选项在 mpclaim 命令中使用 PowerShell。iSCSI 启动器工具配置剩余的选项。
红帽建议将 PDORemovePeriod 选项从 PowerShell 增加到 120 秒。这个值可能需要根据应用程序进行调整。当所有路径都停机且 120 秒过期时,操作系统将启动失败的 IO 请求。
Set-MPIOSetting -NewPDORemovePeriod 120
- 设置故障切换策略
mpclaim.exe -l -m 1
- 验证故障转移策略
mpclaim -s -m
MSDSM-wide Load Balance Policy: Fail Over Only
使用 iSCSI 启动器工具,从 Targets 选项卡
点 Devices… 按钮
:
在 Devices 窗口中选择一个磁盘
并点 MPIO… 按钮
:
在 Device Details 窗口中显示到每个目标门户的路径。如果使用
ceph-ansible设置方法,iSCSI 网关将使用 ALUA 告知 iSCSI 启动器将哪些路径和 iSCSI 网关用作主路径。负载均衡策略 Fail Over Only 必须被选择
- 从 PowerShell,查看多路径配置
mpclaim -s -d $MPIO_DISK_ID
+ 将 $MPIO_DISK_ID 替换为适当的磁盘标识符。
将有一个 Active/Optimized 路径,它是拥有 LUN 的 iSCSI 网关节点的路径,并为每个其他 iSCSI 网关节点有一个 Active/Unoptimized 路径。
tuning:
考虑使用以下 registry 设置:
Windows 磁盘超时
键
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk值
TimeOutValue = 65Microsoft iSCSI Initiator Driver
键
HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance_Number>\Parameters值
LinkDownTime = 25 SRBTimeoutDelta = 15
8.4.4. VMware ESX vSphere Web 客户端的 iSCSI 启动器 复制链接链接已复制到粘贴板!
先决条件:
- VMware ESX 6.5 或更高版本使用与 VMFS 6 的虚拟机兼容性 6.5
- 访问 vSphere Web 客户端
-
对 VMware ESX 主机的 root 访问权限,以执行
esxcli命令
iSCSI 发现和多路径设备设置:
禁用
HardwareAcceleratedMove(XCOPY):# esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove启用 iSCSI 软件。在 Navigator 窗格中点 Storage
。选择 适配器选项卡
。点 Confgure iSCSI
:
验证名称和别名中的启动器名称
。
注意如果启动器名称与初始设置期间使用
gwcli创建客户端时使用的启动器名称不同,或者如果 Ansibleclient_connections:客户端变量中使用的启动器名称不同,请按照以下步骤更改启动器名称。在 VMware ESX 主机中运行这些esxcli命令。获取 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:rh7-client
配置 CHAP。展开 CHAP 身份验证 部分
。选择"不使用 CHAP,除非目标需要"
。输入初始设置中使用的 CHAP Name 和 Secret
凭证,无论是使用 gwcli auth命令还是 Ansibleclient_connections:凭证变量。验证 Mutual CHAP 验证部分
是否选择了 "Do not use CHAP"。
警告vSphere Web 客户端中有一个错误,最初不使用 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参数是 vSphere Web 客户端中的 Name :> esxcli iscsi adapter auth chap set --direction=uni --authname=myiscsiusername --secret=myiscsipassword --level=discouraged -A vmhba64配置 iSCSI 设置。扩展 高级设置
。将 RecoveryTimeout 值设置为 25
。
设置发现地址。在 Dynamic target 部分中
,点 Add dynamic target
。在 地址
下,为其中一个 Ceph iSCSI 网关添加 IP 地址。只需要添加一个 IP 地址。最后,单击 保存配置 按钮
。在主界面的 Devices 选项卡中,您将看到 RBD 镜像。
注意使用 ALUA SATP 和 MRU PSP 自动配置 LUN。不能使用其他 SATP 和 PSP。这可以通过
esxcli命令验证:esxcli storage nmp path list -d eui.$DEVICE_ID将
$DEVICE_ID替换为适当的设备标识符。验证多路径是否已正确设置。
列出设备:
示例
# 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:esx1ISID =00023d000002Target name =iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwTarget port group =2Device id =naa.6001405f8d087846e7b4f0e9e3acd44bactive的Group State值表示这是到 iSCSI 网关的 Active-Optimized 路径。gwcli命令列出active作为 iSCSI 网关所有者。如果active路径进入dead状态,则其余路径将具有未优化的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 地址。