Eu tenho usado um conjunto de ferramentas de teste de sistemas de arquivos para avaliar e abusar de um volume GlusterFS. O volume é um volume de réplica 3 distribuído por 6 hosts.
Fio, iozone e Bonnie indicam que o Gluster está funcionando bem e a largura de banda é aproximadamente igual à dos adaptadores de rede do cliente e do servidor, portanto, o desempenho não pode ser realmente melhorado. A maioria dos casos de teste operava em arquivos de 32GB, além da iozone e da Bonnie.
Recebi relatos de quebras do cérebro ocorreram em determinados arquivos que estão sendo gravados simultaneamente por vários clientes. Toda a documentação que li parece indicar que o cérebro dividido ocorre em grande parte quando ocorrem partições de rede, e isso claramente não é o caso, a julgar pelos logs.
Infelizmente, esse cérebro dividido parece ocorrer apenas quando se usa um determinado serviço hospedado, e eu não tenho nenhuma introspecção sobre como esse serviço funciona, qual versão do cliente Gluster ele possui, etc. Os servidores estão executando a última versão 4.0.
A julgar pelo caso de falha que me foi apresentado ("split brain acontece quando dois containers estão gravando no mesmo arquivo ao mesmo tempo"), eu preciso de um teste que reproduza uma situação semelhante.
Eu definitivamente poderia escrever meu próprio caso de teste em C ou Rust, mas há algo lá fora que irá testar este caso exato sem ter que escrever nada?
Eu tenho acesso (mas não introspecção) a este serviço hospedado, então provavelmente testarei isso também. Eu também estou coçando a cabeça para o problema real: qual é o resultado desejado quando dois programas gravam dados diferentes para o mesmo arquivo ao mesmo tempo?
EDITAR: Os servidores estão executando a versão mais recente do CentOS 7. Meu servidor cliente de teste também está executando o mesmo. O sistema de arquivos subjacente é o XFS.
Existe um caso de teste específico que eu possa usar para tentar recriar o problema?