Posso usar um Amazon Load Balancer na frente de várias instâncias do GlusterFS EC2?

2

Estou encontrando um problema interessante com a configuração de um cluster de sistema de arquivos de alta disponibilidade no EC2. A ideia por trás da configuração é simples: 2 Os nós do GlusterFS estão em duas zonas de disponibilidade separadas, sincronizando dados entre si. Eu posso montar qualquer um desses dois servidores em qualquer outra instância do EC2 sem problemas.

No entanto, no interesse de espalhar as coisas e também de migrar de nós ruins, quero colocar isso atrás de um Load Balancer. O problema parecia bastante simples, eu abri as portas no balanceador de carga e, em seguida, defina o host para o balanceador de carga em vez do nó glusterFS individual, no entanto, ele insiste que não pode fazer a conexão. Eu pensei que isso poderia ser um problema de firewall e, para descartar isso, eu realmente abri as portas 1024-65535. Uma ideia terrível, com certeza, mas eu precisava excluir isso.

Veja o que dizem os registros:

[2013-04-24 21:51:03.581564] I [glusterfsd.c:1666:main] 0-/usr/sbin/glusterfs: Started running /usr/sbin/glusterfs version 3.3.1
[2013-04-24 21:51:03.608884] W [socket.c:1512:__socket_proto_state_machine] 0-glusterfs: reading from socket failed. Error (Transport endpoint is not connected), peer (1.2.3.4:24007)

A parte estranha é que eu posso conectar a esse IP via telnet na mesma porta.

Alguém já fez isso antes, ou tem alguma ideia de como posso contornar isso?

Obrigado!

    
por Fabian 25.04.2013 / 00:06

1 resposta

3

Pelo que parece, você está tentando balancear a carga da pesquisa inicial que os clientes fazem para descobrir a infraestrutura do Gluster.

mount -t glusterfs loadbalancer:Your_VOL /usr/local/specialhome

Isto é apenas para a conexão inicial. Quando um cliente puxa com sucesso uma topologia para o volume, ele está interessado em se conectar diretamente aos tijolos necessários. Nesse ponto, o LB está fora do loop.

Gluster não gosta disso, enquanto você está aprendendo.

Existem algumas maneiras de resolver isso de acordo com a prática da Gluster:

  • Uma entrada DNS round-robin
  • Diferentes opções de carga

Round-Robin não é balanceamento de carga é uma frase que você ouve muito por aqui, mas neste caso não é tão ruim assim. Você está usando apenas para a conexão inicial, e é isso.

A opção de montagem é:

mount -t glusterfs -o backupvolfile-server=rrdns-02 rrdns-01:Your_VOL /usr/local/specialhome

A opção backupvolfile-server diz à montagem para usar um nome diferente caso a opção fornecida na opção de montagem não esteja respondendo diretamente. Usando esses dois métodos em combinação, você poderá lidar com nós temporariamente inativos.

    
por 25.04.2013 / 00:17