Реализация iSER для Linux доступна через проект tgt , а реализация SRP для Linux доступна через SCST проект. Что касается поддержки Windows: в настоящее время драйвер инициатора iSER для Windows недоступен. Но драйвер инициатора SRP для Windows доступен в программном пакете winOFED (см. Также веб-сайт openfabrics.org).
Ну, честно говоря, я пошел простым путем и с радостью использовал iSCSI через IP через IB, и это сработало легко и хорошо:
Ультрабыстрый учебник по настройке IP Infiniband.
сначала ...
настройки производительности:
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"
Некоторая документация:
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
Общая агрегированная пропускная способность 1,3 ГБ / с, определенно лучше, чем 10 GigE.
Недавно я настроил пару цель / инициатор SRP в Linux и получил ~ 100% увеличение производительности (580 МБ / с на SDR 10 Гбит / с) по сравнению с традиционной конфигурацией iSCSI-over-IPoIB (300 МБ / с на SDR
Настройка:
ПРИМЕЧАНИЕ: AFAIK, SCST теперь устарел, поскольку Linux (ядро) идет с Linux-iSCSI (LIO), а также устаревшим STGT (предыдущая реализация в ядре). Планируется объединить функции SCST в LIO.
Конфигурация InfiniBand:
=== 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
В приведенном выше (фактическом) примере GUID варьируется между 0xfe80 ... style и 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
Если все прошло успешно, вы увидите сообщение, подобное приведенному ниже, в вашем 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)
...
В заключение, оба файла ib_srp.ko / ib_srpt .ko еще несколько незрелый. Они оба работают нормально, но такая функция, как отключение, кажется нереализованной. Поэтому, как только блочное устройство SCSI подключено, его невозможно отсоединить. Однако их характеристики превосходны.
Стабильность имеет значение. Mellanox в первую очередь заботится о производительности при продаже оборудования. Когда они купили Voltaire, они продвигают iSER из-за их IB в шлюзы Ethernet.
Мы в ProfitBricks использовали iSER и Solaris 11 в качестве целей для нашего облака IaaS 2.0. Но когда мы столкнулись с серьезной производительностью ZFS, а также с проблемами стабильности IPoIB и open-iscsi, мы перешли на хранилище Linux с SCST и SRP. Мы помогаем улучшить эту технологию в списке рассылки linux-rdma и с нашими собственными патчами ib_srp. Для нас стабильность требует простоты. Итак, мы идем на SRP, так как у нас есть InfiniBand. RDMA является родным для InfiniBand, а SRP - только для RDMA.
В этом году у меня была презентация на LinuxTag по этой теме: InfiniBand / RDMA для хранилищ - SRP против iSER http://www.slideshare.net/SebastianRiemer/infini-band-rdmaforstoragesrpvsiser-21791250
Здесь также показано, как установить соединение SRP.