baixo desempenho de rede entre o armazenamento Citrix XenServer e Linux iSCSI

2

Eu tenho dois servidores SuperMicro conectados diretamente (sem comutador) por duas NIC Intel X540-T2 de 10 GBit. Um servidor executa o Citrix XenServer 6.2, o outro executa o Debian 7.

Eu então instalei o open-iscsi e iscsitarget no sistema Debian, configurei um disco de 12 GB de RAM, montei como um armazenamento iSCSI no XenServer e forneci um disco virtual de 12 GB para uma das VMs rodando naquele XenServer. / p>

Acontece que não consigo mais do que cerca de 290 MByte / s:

root@s1002:~# dd if=/dev/zero of=/dev/xvdb bs=16M
dd: writing '/dev/xvdb': No space left on device
737+0 records in
736+0 records out
12348030976 bytes (12 GB) copied, 42.6216 s, 290 MB/s
root@s1002:~# dd if=/dev/xvdb of=/dev/null bs=16M
736+0 records in
736+0 records out
12348030976 bytes (12 GB) copied, 46.0591 s, 268 MB/s

Em seguida, repeti o mesmo teste com um armazenamento comercial e obtive uma velocidade de transferência de aproximadamente 450 MByte / s, mesmo ao usar discos físicos.

Eu esperava uma velocidade similar ou ainda melhor ao usar meu servidor Linux com um ramdisk, mas parece que minha configuração iscsitarget ou minha configuração de rede não é a ideal. A rede é configurada com quadros jumbo (testados com ping -M do -s 8972 ipaddr em ambas as extremidades). A configuração da targetcli é basicamente a configuração padrão:

/> ls
o- / ....................................................................................................................... [...]
  o- backstores ............................................................................................................ [...]
  | o- fileio ................................................................................................. [0 Storage Object]
  | o- iblock ................................................................................................. [0 Storage Object]
  | o- pscsi .................................................................................................. [0 Storage Object]
  | o- rd_dr .................................................................................................. [0 Storage Object]
  | o- rd_mcp ................................................................................................. [1 Storage Object]
  |   o- ramdisk ............................................................................................. [ramdisk activated]
  o- iscsi ........................................................................................................... [1 Targets]
  | o- iqn.2003-01.org.linux-iscsi.server85.x8664:sn.f63360d26dd2 ........................................................ [1 TPG]
  |   o- tpgt1 ......................................................................................................... [enabled]
  |     o- acls .......................................................................................................... [0 ACL]
  |     o- luns .......................................................................................................... [1 LUN]
  |     | o- lun0 ..................................................................................... [rd_mcp/ramdisk (ramdisk)]
  |     o- portals .................................................................................................... [1 Portal]
  |       o- 10.0.12.85:3260 ................................................................................................ [OK]
  o- loopback ......................................................................................................... [0 Target]
  o- tcm_fc ........................................................................................................... [0 Target]
/>

Como posso configurar o iscsitarget e / ou a NIC para melhorar o desempenho da rede para que ela corresponda ao armazenamento comercial?

    
por nn4l 01.10.2016 / 12:51

1 resposta

1

Primeiro, mesmo que seja chamado de ramdisk, ele pode estar usando os pratos giratórios. Acontece que existem muitos tipos de RamDisks hoje em dia e o tipo tmpfs pode usar o disco rígido, bem como a RAM. Gostaria de ver seu teste em uma loja de armazenamento de arquivos de discos giratórios de 12 GB. Talvez a mesma velocidade.

Segundo, talvez você esteja escrevendo o final do disco e escrevendo muito mais que 12GB. Essa tem sido minha experiência. Ao contrário dos discos normais, o dd (ou mais provavelmente o kernel) não pára quando atinge o final do disco virtual. Defina um limite de quanto é gravado por dd anexando bs=1GB count=12 .

Teste a sobregravação criando um armazenamento de apoio de 4GiB RamDisk usando targetcli no host local e inicie uma conexão com ele usando iscsiadm . Em seguida, teste escrevendo muito mais do que 4 GB com dd :

# targetcli ls backstores/ramdisk/

ramdisk ............................................ .................................................. ...... [Objetos de Armazenagem: 1]
  o- RamDisk4GB ............................................... ................................................ [( 4,0GiB) ativado]

É seguro escrever 3 GB:

time dd if = / dev / zero de = / mnt / sdd bs = contagem de 1 GB = 3 #
    3 + 0 registros em     3 + 0 registra     3000000000 bytes (3,0 GB) copiados, 4,41983 s, 679 MB / s

real    0m6.692s
user    0m0.000s
sys     0m4.333s

Mas chocado quando não há erros ao escrever 5 GB, 6 GB, 8 GB, 16 GB, até 32 GB para apenas 4 GB de espaço:

time dd if = / dev / zero de = / mnt / sdd bs = contagem de 1 GB = 16

16+0 records in
16+0 records out
16000000000 bytes (16 GB) copied, 36.671 s, 436 MB/s

real    0m38.301s
user    0m0.002s
sys     0m13.591s

Os erros não foram relatados até que 64GB tentassem ser gravados no RamDisk de 4GB. Parece que ocorreu um erro do tamanho da minha / partição que é 50G.

time dd if = / dev / zero de = / mnt / sdd bs = contagem de 1GB = 64
    dd: erro escrevendo ‘/ mnt / sdd’: sem espaço no dispositivo
    49 + 0 registros em
    48 + 0 registra - se     48838684672 bytes (49 GB) copiados, 122,821 s, 398 MB / s

real    2m4.682s
user    0m0.002s
sys     0m38.257s

Deseja Datera.io e ou linux-iscsi.org avisa sobre isso e fornece tmpfs ou uma das opções mais recentes do tipo ramdisk. Minha configuração é CentOS7, então eu realmente uso o ramo livre de github.com/open-iscsi/ .

    
por 24.10.2016 / 11:15