13.5.5. 连接到远程 Linux SRP 目标
SCSI RDMA 协议(SRP)是一个网络协议,它允许系统使用 RDMA 访问附加到另一个系统的 SCSI 设备。要允许 SRP 启动器在 SRP 目标端连接 SRP 目标,您必须为启动器中使用的主机通道适配器(HCA)端口添加访问控制列表(ACL)条目。
HCA 端口的 ACL ID 不唯一。ACL ID 取决于 HCA 的 GID 格式。使用同一驱动程序的 HCA(如
exampleib_qib )可以具有不同的 GID 格式。ACL ID 还取决于您启动连接请求的方式。
连接到远程 Linux SRP 目标:高级别概述
- 准备目标侧:
- 创建存储后端。例如,获取 /dev/sdc1 分区:
/> /backstores/block create vol1 /dev/sdc1
/> /backstores/block create vol1 /dev/sdc1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建 SRP 目标:
/> /srpt create 0xfe80000000000000001175000077dd7e
/> /srpt create 0xfe80000000000000001175000077dd7eCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 根据步骤中创建的后端创建一个 LUN:
/> /srpt/ib.fe80000000000000001175000077dd7e/luns create /backstores/block/vol1
/> /srpt/ib.fe80000000000000001175000077dd7e/luns create /backstores/block/vol1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 为远程 SRP 客户端创建节点 ACL:
/> /srpt/ib.fe80000000000000001175000077dd7e/acls create 0x7edd770000751100001175000077d708
/> /srpt/ib.fe80000000000000001175000077dd7e/acls create 0x7edd770000751100001175000077d708Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,srp_daemon的节点 ACL 不同。和ibsrpdm
- 为客户端发起与
srp_daemon 或的 SRP 连接:ibsrpdmsrp_daemon -e -n -i qib0 -p 1 -R 60 &
[root@initiator]# srp_daemon -e -n -i qib0 -p 1 -R 60 &Copy to Clipboard Copied! Toggle word wrap Toggle overflow ibsrpdm -c -d /dev/infiniband/umad0 > /sys/class/infiniband_srp/srp-qib0-1/add_target
[root@initiator]# ibsrpdm -c -d /dev/infiniband/umad0 > /sys/class/infiniband_srp/srp-qib0-1/add_targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 可选。建议您使用不同的工具(如
lsscsi或dmesg)验证 SRP 连接。
过程 13.3. 使用 srp_daemon 或 ibsrpdm 连接到远程 Linux SRP 目标
- 对目标使用 ibstat 命令,以确定
状态和端口GUID值。HCA 必须处于Active状态。ACL ID 基于端口 GUID:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 获取 SRP 目标 ID,它基于 HCA 端口的 GUID。请注意,您需要将专用磁盘分区作为 SRP 目标的后端,如
/dev/sdc1。以下命令替换 fe80 的默认前缀,删除冒号,并在字符串的其余部分中添加新前缀:ibstatus | grep '<default-gid>' | sed -e 's/<default-gid>://' -e 's/://g' | grep 001175000077dd7e
[root@target]# ibstatus | grep '<default-gid>' | sed -e 's/<default-gid>://' -e 's/://g' | grep 001175000077dd7e fe80000000000000001175000077dd7eCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用
targetcli工具在块设备中创建 LUN vol1,创建一个 SRP 目标并导出 LUN:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在启动器中使用 ibstat 命令检查状态是否为
Active,并确定端口 GUID:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用以下命令扫描,但不连接到远程 SRP 目标:目标 GUID 显示启动器已找到远程目标。ID 字符串显示远程目标是一个 Linux 软件目标(
ib_srpt.ko)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 要验证 SRP 连接,请使用 lsscsi 命令列出 SCSI 设备,并在启动器连接到目标之前和之后比较 lsscsi 输出。
lsscsi
[root@initiator]# lsscsi [0:0:10:0] disk IBM-ESXS ST9146803SS B53C /dev/sdaCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要在没有为 initiator 端口配置有效 ACL 的情况下连接到远程目标(应该会失败),请对
srp_daemonoribsrpdm使用以下命令:srp_daemon -e -n -i qib0 -p 1 -R 60 &
[root@initiator]# srp_daemon -e -n -i qib0 -p 1 -R 60 & [1] 4184Copy to Clipboard Copied! Toggle word wrap Toggle overflow ibsrpdm -c -d /dev/infiniband/umad0 > /sys/class/infiniband_srp/srp-qib0-1/add_target
[root@initiator]# ibsrpdm -c -d /dev/infiniband/umad0 > /sys/class/infiniband_srp/srp-qib0-1/add_targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow - dmesg 的输出显示 SRP 连接操作失败的原因。在后续步骤中,使用目标端的 dmesg 命令使情况变得明确。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 由于 LOGIN 失败,lsscsi 命令的输出与上一步中的输出相同。
lsscsi
[root@initiator]# lsscsi [0:0:10:0] disk IBM-ESXS ST9146803SS B53C /dev/sdaCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在目标端使用 dmesg (
ib_srpt.ko)提供了有关 LOGIN 失败的原因。此外,输出中还包含srp_daemon提供的有效 ACL ID:0x7edd770000751100001175000077d708。dmesg
[root@target]# dmesg [ 1200.303001] ib_srpt Received SRP_LOGIN_REQ with i_port_id 0x7edd770000751100:0x1175000077d708, t_port_id 0x1175000077dd7e:0x1175000077dd7e and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x1175000077dd7e) [ 1200.322207] ib_srpt Rejected login because no ACL has been configured yet for initiator 0x7edd770000751100001175000077d708.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用
targetcli工具添加有效的 ACL:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证 SRP LOGIN 操作:
- 等待 60 秒,以允许
srp_daemon重新登录:sleep 60
[root@initiator]# sleep 60Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证 SRP LOGIN 操作:
lsscsi
[root@initiator]# lsscsi [0:0:10:0] disk IBM-ESXS ST9146803SS B53C /dev/sda [7:0:0:0] disk LIO-ORG vol1 4.0 /dev/sdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 对于 SRP 目标发现的内核日志,请使用:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow