ajd*_*con 4 storage infiniband hpc
我试图弄清楚如何设置一个简单的存储系统,使用 SRP 或 iSER 通过 Infiniband 导出块存储。
我还处于这个过程的早期阶段,目前我基本上只是在寻找以下级别的教程:“您的结构上有两台服务器:以下是如何将块存储设备从一台服务器导出到另一台服务器。 ” 最好在 RHEL 或其变体上。有什么指点吗?
好吧,坦白说,我走了简单的路线,并愉快地使用了 iSCSI over IP over IB,它工作起来很轻松,性能也很好:
Infiniband IP 设置超快速入门。
第一的...
性能设置:
YMMV 带有 IB 控制器模型、驱动程序等。
IP 设置:
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=0
net.core.netdev_max_backlog=250000
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.rmem_default=16777216
net.core.wmem_default=16777216
net.core.optmem_max=16777216
net.ipv4.tcp_mem="16777216 16777216 16777216"
net.ipv4.tcp_rmem="4096 87380 16777216"
net.ipv4.tcp_wmem="4096 65536 16777216"
Run Code Online (Sandbox Code Playgroud)
一些文档:
http://support.systemfabricworks.com/lxr/#ofed+OFED-1.5/ofed-docs-1.5/ipoib_release_notes.txt
http://www.mjmwired.net/kernel/Documentation/infiniband/ipoib.txt
iperf,4 个线程:
[ 3] local 192.168.1.2 port 50585 connected with 192.168.1.3 port 5003
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 2.75 GBytes 2.36 Gbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 2.79 GBytes 2.40 Gbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 3.31 GBytes 2.84 Gbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 3.51 GBytes 3.02 Gbits/sec
Run Code Online (Sandbox Code Playgroud)
总聚合带宽 1.3 GB/s,绝对优于 10 GigE。
我最近在 Linux 上配置了 SRP 目标/启动器对,与传统的 iSCSI-over-IPoIB 配置(SDR 上的 300MB/s)相比,性能提高了约 100%(10Gbps SDR 上的 580MB/s)。
设置:
注意:据我所知,SCST 现已过时,因为 Linux(内核)正在与 Linux-iSCSI (LIO) 一起使用,同时也过时了 STGT(之前的内核内实现)。计划是将 SCST 功能合并到 LIO 中。
InfiniBand 配置:
SRP 配置:这个有点难以理解,所以我只是从我的工作日志中粘贴。
=== SRP target configuration ===
// NOTE: This is GUID of your IB interface on target-side. You can check it with ibstatus(1)
# targecli
/> cd /ib_srpt
/ib_srpt> create 0xfe800000000000000008f1040399d85a
Created target 0xfe800000000000000008f1040399d85a.
Entering new node /ib_srpt/0xfe800000000000000008f1040399d85a
/ib_srpt/0xfe...8f1040399d85a> cd luns
// This is just a dm-zero mapped "/dev/zero"-like block device
/ib_srpt/0xfe...0399d85a/luns> create /backstores/iblock/zero
/ib_srpt/0xfe...85a/luns/lun0> cd ../../acls
// This is GUID of your IB interface on initiator-side
/ib_srpt/0xfe...0399d85a/acls> create 0x00000000000000000008f1040399d832
Run Code Online (Sandbox Code Playgroud)
在上面(实际)示例中,GUID 在 0xfe80... 样式和 0x0000xxx 样式之间变化,但我认为两者可以互换使用。您可以通过编辑 /var/target/fabric/ib_srpt.spec (或安装了 Python rtslib 库(Linux-iSCSI 工具使用的)的任何位置)来配置规范化规则。
=== SRP initiator configuration ===
// uMAD device must match with IB interface being used
# ibsrpdm -c -d /dev/infiniband/umad1
id_ext=0008f1040399d858,ioc_guid=0008f1040399d858,dgid=fe800000000000000008f1040399d85a,pkey=ffff,service_id=0008f1040399d858
// Supply above string to ib_srp.ko, in order to setup SRP connection
# for i in $(ibsrpdm -c -d /dev/infiniband/umad1); \
do echo $i > /sys/class/infiniband_srp/srp-mlx4_0-2/add_target; done
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,您将在 dmesg 中看到类似以下内容的消息:
[10713.616495] scsi host9: ib_srp: new target: id_ext 0008f1040399d858 ioc_guid 0008f1040399d858 pkey ffff service_id 0008f1040399d858 dgid fe80:0000:0000:0000:0008:f104:0399:d85a
[10713.815843] scsi9 : SRP.T10:0008F1040399D858
[10713.891557] scsi 9:0:0:0: Direct-Access LIO-ORG IBLOCK 4.0 PQ: 0 ANSI: 5
[10713.988846] sd 9:0:0:0: [sde] 2147483648 512-byte logical blocks: (1.09 TB/1.00 TiB)
...
Run Code Online (Sandbox Code Playgroud)
最后一点,ib_srp.ko/ib_srpt.ko 仍然有些不成熟。它们都工作正常,但诸如断开连接之类的功能似乎尚未实现。因此,一旦连接了 SCSI 块设备,就无法将其分离。然而,他们的表现却非常出色。
归档时间: |
|
查看次数: |
13475 次 |
最近记录: |