Por que o open-iscsi escreve duas vezes mais lentamente que o Samba via Ethernet 10G?

9

No meu servidor de arquivos local, tenho o raid-6 em unidades de disco rígido 7x.

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

O teste de velocidade local fornece uma velocidade de gravação de 349 MB / s.

As gravações remotas no Samba a partir do SSD (> velocidade de leitura de 2 Gb / s) me proporcionam gravações de 259 MB / s. Porém, as gravações remotas na unidade iSCSI (no iniciador iSCSI Win10) me proporcionam meras gravações de 151 Mb / s.

configuração do raid6 - tamanho do pedaço de 128K, stripe_cache_size = 8191. O bitmap com intenção de gravação está no SSD (Samsung 860 PRO, pedaço de bitmap de 4096K).

Matriz montada com opções: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

Configuração do open-iscsi: o destino é baseado em um arquivo de 4 TB.

Alguma dica de por que o iSCSI é mais lento que o Samba nas gravações? Alguma dica sobre como melhorar a velocidade de gravação iSCSI?

Suponho que tenha algo a ver com o desejo do open-iscsi de liberar gravações no disco após cada operação, o que aumenta a amplificação de gravação no RAID6 devido a excessivas reescritas de paridade. Mas não sei como corrigi-lo. Acelere mais do que a segurança dos dados atualmente gravados em caso de falta de energia.

Como observação lateral, o destino ietd iSCSI mais antigo tinha a capacidade de ativar o modo de write-back (usando IOMode=wb) e a velocidade de gravação sustentada era muito mais rápida. Infelizmente, parece não ter manutenção no momento.

BarsMonster
fonte
2
Como é a rede? 10GigE? Qual é a versão do sistema operacional do servidor, versão do kernel? Qual é o destino e a versão do iscsi? ietd, scst ou lio? O Open-iscsi fornece apenas um iniciador, não um destino ... O que você está usando para medir a velocidade de gravação? Qual é o sistema de arquivos usado no destino?
wazoox 19/03/19
No Windows 10, QoS removida da NIC?
yagmoth555
2
A publicação da configuração do seu destino iSCSI e de quaisquer ajustes de rede ajustados também seria prudente nesse caso. Você também pode considerar testar com um iniciador open-iscsi em um cliente linux com um kernel moderno para fornecer uma comparação clara entre os iniciantes que usam o mesmo destino, já que o teste existente pode ser muito limitado pelo iniciador do Windows. Mais dados == mais melhor.
Spooler
1
Mas no que diz respeito à questão real : iSCSI e Samba são muito diferentes, e você está utilizando uma camada de cache VFS ao usar o Samba que não existe em um dispositivo de bloco vazio. Entendo que você está surpreso com as diferenças de desempenho, mas você se importa mais com essa comparação ou com o iSCSI para saturar sua rede? Se o iSCSI é sua principal preocupação e o desempenho do Samba é um detalhe menor para o contexto, você pode editar a pergunta para deixar isso mais claro (e provavelmente obter melhores respostas).
Spooler
Você usou o Windows 10 para o teste, mas não vejo nenhum detalhe da máquina usada em nenhum lugar. (e por que usar um sistema operacional cliente Windows para tal teste?)
yagmoth555

Respostas:

6

Primeiro de tudo, o RAID-6 é o problema devido ao cálculo de dupla paridade. Em segundo lugar, você pode conectar o destino iSCSI duas vezes no MS iSCSI Initiator, ativar RR ou menos profundidade da fila (infelizmente, o Win10 não oferece suporte a caminhos múltiplos, para testá-lo no Windows Server).

De fato, o acesso no nível do bloco deve ser mais rápido que o acesso no nível do arquivo. Que tipo de ferramenta de benchmarking você está usando no site do Windows? Eu recomendaria usar o diskspd ou o FIO. Além disso, você pode usar algo como Starwind como um destino iSCSI muito mais rápido.

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V

Stuka
fonte
2
O Raid 6 está no hardware - não no software. Não é mais um problema de desempenho há cerca de 20 anos.
Nils
RAID-6 é o problema? Os cálculos de paridade acontecem independentemente do protocolo.
22419 Daniel
2
O RAID6 é mais lento, não por causa dos cálculos de paridade, mas por causa do chamado "furo de gravação" resultante de uma natureza de RAID de paridade de leitura, modificação e gravação.
BaronSamedi1958
3
"O Raid 6 está no hardware - não no software. Não é mais um problema de desempenho há cerca de 20 anos. - Nils 21 de março às 10:05" -> Isso simplesmente não é verdade :( Leia isto -> theithollow.com/
2012/03/21
1

O iSCSI deve ser usado no nível do bloco; sua descrição da configuração parece que você está usando um sistema de arquivos, colocando um arquivo nele e, em seguida, executando esse arquivo como camada de bloco iSCSI.

Isso está longe de ser ideal e definitivamente não é uma configuração para comparar velocidades. Tente usar o lvm na parte superior do raid6 para segmentar o espaço e permanecer na camada de blocos do iSCSI ou use o raid6 diretamente como dispositivo iSCSI.

Na sua configuração atual, os dados são transferidos pela rede, atingindo um arquivo no sistema de arquivos, o qual (provavelmente) não é otimizado para esse tipo de carga de trabalho e também é compartilhado com outros processos. É possível fazer essa configuração com o iSCSI, mas deve ser considerada uma solução de fallback não otimizada.

hargut
fonte
1

Esteja ciente de que ddé uma referência muito simples e muito propensa a distorções. Por exemplo, você ddestá escrevendo zeros - se algo tiver um caso especial para dados cheios de zeros (por exemplo, porque pode fazer compressão), você verá um desempenho fantástico, mas passará a gravar "dados reais" diferentes de zero e, de repente, esse desempenho poderá desaparecer. ..

Para responder sua pergunta (como em todos os testes de referência), você realmente precisa isolar as peças para identificar o pouco que está introduzindo o problema. Por exemplo, a gravação diretamente no sistema de arquivos do Windows (e não no iSCSI) também é extremamente rápida? Se você usa a mesma configuração de hardware e executa o Linux em vez do Windows, é tão rápido ou mais lento? O que acontece se você mudar para o uso de uma ferramenta de benchmark como o fio ?

Infelizmente, existem muitas possibilidades para responder bem a uma pergunta como essa ...

Anon
fonte