Como fazer as configurações iniciais do balanceador de carga LVS?

De Wiki
Ir para: navegação, pesquisa

Configurações Iniciais

Certifique-se que o template do LVS Load Balancer, disponível no Painel de Controle, foi instalado no Cloud Server.

Será configurada uma conexão SSH com o servidor LVS Load Balancer. Caso tenha dúvidas de como realizar esta etapa, consulte o artigo: "Como estabelecer uma conexão SSH com o Cloud Server?"

Faça o login com o usuário root e senha temporária recebida por email.

Por motivos de segurança, o sistema pede uma nova senha para o usuário root. Digite a senha temporária (recebida por email), em seguida digite uma nova e depois repita a nova senha. Guarde-a bem!


Entre com o comando piranha-passwd para trocar a senha do usuário administrador do LVS. Em seguida digite a nova e a confirmação da nova senha desejada. Guarda-a também!

Capturar1.PNG

LVS.cf

Pare o serviço “pulse” com o comando service pulse stop.

Capturar2.PNG


A configuração do servidor LVS é feita através do arquivo lvs.cf, que precisa ser editado pelo comando vi /etc/sysconfig/ha/lvs.cf


Abaixo está o conteúdo do arquivo e em vermelho o que precisa ser modificado conforme suas configurações. Foi adicionado o número da linha (#) para facilitar o entendimento porém ele NÃO deve estar presente no arquivo de configuração, assim como o cabeçalho também não. Tecle “a” para entrar em modo de edição.

# TEXTO

  1. serial_no = 101
  2. primary = xxx.xxx.xxx.xxx
  3. service = lvs
  4. backup = 0.0.0.0
  5. heartbeat = 1
  6. heartbeat_port = 539
  7. keepalive = 6
  8. deadtime = 18
  9. network = direct
  10. debug_level = NONE
  11. virtual HTTP {
  12. active = 1
  13. address = xxx.xxx.xxx.xxx eth0:1
  14. vip_nmask = xxx.xxx.xxx.xxx
  15. port = 80
  16. send = "GET / HTTP/1.0\r\n\r\n"
  17. expect = "HTTP"
  18. use_regex = 0
  19. load_monitor = none
  20. scheduler = wlc
  21. protocol = tcp
  22. timeout = 6
  23. reentry = 15
  24. quiesce_server = 1
  25. server retaguarda1 {
  26. address = xxx.xxx.xxx.xxx
  27. active = 1
  28. weight = 1
  29. }
  30. server retaguarda2 {
  31. address = xxx.xxx.xxx.xxx
  32. active = 1
  33. weight = 1
  34. }
  35. }
  36. virtual MYSQL {
  37. active = 0
  38. address = xxx.xxx.xxx.xxx eth0:1
  39. vip_nmask = xxx.xxx.xxx.xxx
  40. port = 3306
  41. send = "GET / HTTP/1.0\r\n\r\n"
  42. expect = "HTTP"
  43. use_regex = 0
  44. load_monitor = none
  45. scheduler = wlc
  46. protocol = tcp
  47. timeout = 6
  48. reentry = 15
  49. quiesce_server = 1
  50. server retaguarda1 {
  51. address = xxx.xxx.xxx.xxx
  52. active = 1
  53. weight = 1
  54. }
  55. server retaguarda2 {
  56. address = xxx.xxx.xxx.xxx
  57. active = 1
  58. weight = 1
  59. }
  60. }
  61. virtual SSL {
  62. active = 0
  63. address = xxx.xxx.xxx.xxx eth0:1
  64. vip_nmask = xxx.xxx.xxx.xxx
  65. port = 443
  66. send = "GET / HTTP/1.0\r\n\r\n"
  67. expect = "HTTP"
  68. use_regex = 0
  69. load_monitor = none
  70. scheduler = wlc
  71. protocol = tcp
  72. timeout = 6
  73. reentry = 15
  74. quiesce_server = 1
  75. server retaguarda1 {
  76. address = xxx.xxx.xxx.xxx
  77. active = 1
  78. weight = 1
  79. }
  80. server retaguarda2 {
  81. address = xxx.xxx.xxx.xxx
  82. active = 1
  83. weight = 1
  84. }
  85. }

Na linha (1) o campo serial_no refere-se à versão deste script, devendo ser acrescido de 1 cada vez que alterá-lo.

Linha (2) é o IP do servidor LVS, devendo substituir os “x” pelo correto.


Começa a configuração dos blocos de cada servidor virtual, tendo três disponíveis neste exemplo. Servidor virtual HTTP (da linha 11 até 35), servidor virtual MYSQL (da linha 36 até 60) e servidor virtual SSL (da linha 61 até o final). Cada bloco destes contém características semelhantes, sendo:


Variável active (linhas 12; 37; 62) indica se o bloco estará sendo balanceado. 0 para desligado e 1 para ligado.

Campo address (linhas 13; 38; 63) indica o IP virtual que será implementado. ATENÇÃO: não coloque um IP que já esteja em uso!

No campo vip_nmask (linhas 14; 39; 64) é a máscara de rede do IP virtual utilizado.


Por último é necessário informar o IP dos servidores de retaguarda que serão balanceados, trocando “x” pelo endereço. Neste exemplo de configuração, cada serviço (HTTP, SSL e MYSQL) possui dois servidores de retaguarda, sendo representados conforme segue:

HTTP: linhas 26 e 31

MYSQL: linhas 51 e 56

SSL: linhas 76 e 81


Caso deseje adicionar mais servidores de retaguarda, basta inserir o trecho de código abaixo depois das linhas 34, 59 ou 84 para HTTP, MYSQL e SSL respectivamente, trocando os valores dos campos conforme sua configuração.

  1. server retaguarda3 {
  2. address = xxx.xxx.xxx.xxx
  3. active = 1
  4. weight = 1
  5. }


Caso queira fazer o balanceamento para outras portas, copie o bloco da linha (11) até (35) e troque as informações pertinentes. Troque inclusive o nome HTTP por outro, no campo virtual (linha 11).


Salve e saia do arquivo (Esc, digite :x! e dê Enter). Inicie o serviço pulse com o comando service pulse start.


Capturar3.PNG


Você pode acompanhar o balanceamento através do comando watch ipvsadm

Configuração nos servidores de retaguarda

Execute o comando do iptables abaixo para ter o redirecionamento dos pacotes. É necessário repetir os comandos para cada porta balanceada e em cada servidor da retaguarda. Utilize usuário com privilégios de administrador!


iptables -t nat -A PREROUTING -p tcp -d IPVIRTUAL --dport PORTA -j REDIRECT


Os itens em vermelho devem ser substituídos por sua configuração, onde IPVIRTUAL é o inserido na linha (13) do arquivo LVS.cf e PORTA é o número da linha (15) do mesmo arquivo (atente-se para o fato de qual bloco de serviço está balanceando – HTTP, MYSQL ou SSL). Exemplo:

Capturar8.PNG


Siga os passos abaixo para tornar as regras do iptables persistentes entre reboots:


Fedora/CentOS/RedHat: Insira o comando /sbin/service iptables save e depois chkconfig iptables on


Ubuntu/Debian: Entre com o comando iptables-save > /etc/firewall.conf

Capturar4.PNG


É necessário editar um arquivo para que as configuração do iptables não desapareça ao reiniciar, bastando teclar vi/etc/network/if-up.d/iptables

Capturar-vi.PNG


Será aberto uma página vazia. Tecle “a” para entrar em modo de edição e insira as linhas:

#!/bin/sh

iptables-restore < /etc/firewall.conf


Capturar6.PNG


Salve e saia do arquivo (Esc, digite :x! e dê Enter).

Execute chmod +x /etc/network/if-up.d/iptables para dar permissão ao arquivo.

Capturar7.PNG


Conclusão

Pronto! Agora as portas dos serviços estão participando do balanceamento do LVS!