Configure o armazenamento simples de blocos Infiniband (SRP ou iSER)

4

Estou tentando descobrir como configurar um sistema de armazenamento simples que exporte o armazenamento em bloco no Infiniband, usando o SRP ou o iSER.

Estou muito adiantado no processo, e no momento estou basicamente procurando por um tutorial no nível de: "Você tem dois servidores no seu fabric: aqui está como exportar um dispositivo de armazenamento em bloco de um para outro." o outro." De preferência, no RHEL ou nas suas variantes. Quaisquer ponteiros?

    
por ajdecon 04.11.2011 / 21:13

4 respostas

4

Bem, para ser franco, eu fui a rota simples e felizmente usei iSCSI sobre IP sobre IB e funcionou bem e teve um bom desempenho:

Primer ultra rápido da configuração IP do Infiniband.

primeiro ...

  • instale o opensm, o infiniband-diags, o rds-tools, o sdpnetstat, o srptools, o perftest (para benchmarks)
  • carrega o módulo do driver IB, ib_umad, ib_ipoib
  • agora você tem uma nova interface de rede para configurar.

configurações de desempenho:

  • modo conectado, defina o MTU para 65520
  • modo de datagrama, defina o MTU para 2044
  • desempenho do datagrama: ~ 5 Gb / s
  • desempenho do modo conectado: ~ 6,3 Gb / s

YMMV com o modelo do controlador IB, driver, etc.

Configurações de 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"

Algumas documentações:

link

link

iperf, 4 tópicos:

[  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

Largura de banda agregada total de 1,3 GB / s, definitivamente melhor que 10 GigE.

    
por 17.11.2011 / 19:15
3

Eu configurei recentemente o par alvo / inicializador SRP no Linux e tive um aumento de desempenho de ~ 100% (580MB / s em 10Gbps SDR) em relação à configuração tradicional iSCSI-over-IPoIB (300MB / s em SDR).

Configuração:

  • Distribuição: sid Debian
  • Linux kernel: 3.4.0-rc1 (3.3 ou superior é necessário para o SRP no kernel)
  • Pilha Infiniband: OFED-1.4 (que vem com o Debian)
  • Alvo SRP / iSCSI
  • : Linux-iSCSI com ib_srpt.ko no kernel
  • Iniciador SRP: no kernel ib_srp.ko

OBSERVAÇÃO: AFAIK, SCST agora está obsoleta, já que o Linux (kernel) está sendo executado com o Linux-iSCSI (LIO), o obsoleto STGT (implementação anterior no kernel) também. O plano é mesclar recursos do SCST no LIO.

Configuração do InfiniBand:

  • defina o cartão IB para o modo "conectado" (eco conectado > / sys / class / net / ib0 / mode)
  • configure os parâmetros do sysctl (o mesmo que acima do post)
  • define MTU como máximo (ip link set dev ib0 mtu 65520)

Configuração do SRP: Este é um pouco confuso para descobrir, então eu vou apenas colar do meu log de trabalho.

=== 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

No exemplo acima (real), o GUID varia entre o estilo 0xfe80 ... e 0x0000xxx estilo, mas acho que ambos podem ser usados de forma intercambiável. Você pode configure a regra de canonização editando /var/target/fabric/ib_srpt.spec (ou onde quer que a biblioteca rtslib do Python (que a ferramenta Linux-iSCSI usa) esteja instalada).

=== 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

Se tudo der certo, você verá uma mensagem semelhante à abaixo em seu 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)
...

Como nota final, os dois ib_srp.ko / ib_srpt.ko ainda são um pouco imaturos. Ambos funcionam bem, mas o recurso de desconexão parece não ser implementado. Portanto, assim que o dispositivo de bloco SCSI estiver conectado, não será possível separá-lo. No entanto, seu desempenho é excelente.

    
por 11.04.2012 / 02:26
3

A estabilidade faz a diferença. A Mellanox cuida principalmente do desempenho à medida que vende hardware. Como eles compraram Voltaire, eles estão empurrando iSER devido ao seu IB para gateways Ethernet.

Nós da ProfitBricks usamos iSER e Solaris 11 como alvo para nossa nuvem IaaS 2.0. Mas à medida que atingimos o desempenho principal do ZFS, bem como os problemas de estabilidade IPoIB e open-iscsi, passamos para um armazenamento Linux com SCST e SRP. Ajudamos a melhorar essa tecnologia na lista de discussão linux-rdma e com nossos próprios patches ib_srp. Para nós, estabilidade requer simplicidade. Então, estamos indo para o SRP, pois temos o InfiniBand. O RDMA é nativo para InfiniBand e o SRP é somente para RDMA.

Eu tive uma apresentação sobre o LinuxTag este ano sobre este tópico: InfiniBand / RDMA para armazenamento - SRP vs. iSER link

Também mostra como estabelecer uma conexão SRP.

    
por 22.07.2013 / 16:31
2

Uma implementação do iSER para Linux está disponível através do projeto tgt e uma implementação do SRP para Linux está disponível através do SCST . Em relação ao suporte do Windows: neste momento não existe um driver de iniciador iSER disponível para o Windows. Mas um driver de iniciador SRP para Windows está disponível no pacote de software winOFED (veja também o site openfabrics.org).

    
por 03.12.2011 / 12:54