KeepAlived ( Haute disponibilité )

Keepalived est un logiciel de routage. Le principal objectif de ce projet est de mettre en place du loadbalancing et/ou de la haute disponibilité pour les systèmes Linux et des infrastructures basées sur Linux. Le Loadbalancing repose sur Linux Virtual Server (IPVS) et la haute disponibilité fonctionne via le protocole VRRP.

yum/apt-get install keepalived

Dans le cas d'une infrastructure web avec deux proxys en amont, en état master/slave, dont un actif, et l'autre est en secours

  • Serveur Proxy1 :
  • /etc/keepalived/keepalived.conf
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #
    # Configuration Keepalived: FailOver
    #
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    global_defs {
      notification_email
      {
        mail.a.prevenir@domaine.fr
      }
     
      notification_email_from proxy1@domaine.fr
      smtp_server xxx.xxx.xxx.xxx # il vaut mieux l'ip que le hostname des problèmes peuvent survenir 
      smtp_connect_timeout 30
     
    }
     
    # instance VRRP pour smtp
    vrrp_instance VI1 {
     
      interface ens192
      state MASTER            # MASTER sur proxy1, SLAVE sur proxy2
      virtual_router_id 11
      priority 101            # 101 on master, 100 on backup
     
      virtual_ipaddress {
        192.168.1.4/24 brd 192.168.1.255 dev ens192 label ens192:0
      }
     
      smtp_alert
     
      authentication
      {
        auth_type PASS
        auth_pass mdp8char
      }
     
    }
  • Serveur Proxy2 :
  • /etc/keepalived/keepalived.conf
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #
    # Configuration Keepalived: FailOver
    #
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    global_defs {
      notification_email
      {
        mail.a.prevenir@domaine.fr
      }
     
      notification_email_from proxy2@domaine.fr
      smtp_server xxx.xxx.xxx.xxx
      smtp_connect_timeout 30
     
    }
     
    # instance VRRP pour smtp
    vrrp_instance VI1 {
     
      interface ens192
      state SLAVE
      virtual_router_id 11
      priority 100            # 101 on master, 100 on backup
     
      virtual_ipaddress {
        192.168.1.4/24 brd 192.168.1.255 dev ens192 label ens192:0
      }
     
      smtp_alert
     
      authentication
      {
        auth_type PASS
        auth_pass mdp8char
      }
     
    }

Dans le cas d'une infrastructure ldap avec deux proxys en amont, les deux étant actif dont ldap2 reçoit deux fois plus de requêtes que ldap1

  • Serveur LDAP1 :
  • /etc/keepalived/keepalived.conf
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #
    # Configuration Keepalived: FailOver & Round Robin Pondéré
    #
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
     
    global_defs {
      notification_email {
    user@domaine.fr
    }
      notification_email_from ldaptest1@domaine.fr
      smtp_server IP_SMTP
      smtp_connect_timeout 30
    }
     
     
     
    vrrp_instance VI-LDAP1 {
      state MASTER
      virtual_router_id 25
      priority 150
      interface eno16777984
      protocol TCP
     
      virtual_ipaddress {
        IP_VIP/24 brd 1.2.3.255 dev em1
      }
     
      smtp_alert
      advert_int 10
     
     
      notify_master "/etc/keepalived/script_ipvs_backup.sh del IP_VIP"
      notify_backup "/etc/keepalived/script_ipvs_backup.sh add IP_VIP"
      notify_fault "/etc/keepalived/script_ipvs_backup.sh add IP_VIP"
     
      authentication{
      auth_type AH
      auth_pass password
      }
     
    }
     
     
    virtual_server IP_VIP 389 {
        delay_loop 10
        lb_algo rr
        lb_kind DR
        protocol TCP
     
        real_server IP_LDAP1 389 {
                weight 1
                TCP_CHECK {
                     connect_port    389
                     connect_timeout 5
                }
        }
     
        real_server IP_LDAP2 389 {
                weight 2
                TCP_CHECK {
                    connect_port    389
                    connect_timeout 5
                } 
        }
     
    }
     
    virtual_server IP_VIP 636 {
        delay_loop 10
        lb_algo rr
        lb_kind DR
        protocol TCP
     
        real_server IP_LDAP1 636 {
                weight 1
                MISC_CHECK {
                  misc_path "/etc/keepalived/script_check_ssl.sh IP_LDAP1"
                }
     
        }
     
        real_server IP_LDAP2 636 {
                weight 2
                MISC_CHECK {
                  misc_path "/etc/keepalived/script_check_ssl.sh IP_LDAP2"
                }
    }

Retour

Vous pourriez laisser un commentaire si vous étiez connecté.
  • systemes/web/keepalived.txt
  • Dernière modification: 2019/02/06 14:03
  • (modification externe)