MySQL相互主従及びKeepalived配置vip——keepalived配置編

4471 ワード

前のログでは、データベースのプライマリ・スレーブ環境の構成について説明し、keepalived構成について説明します.
1、サーバーの役割とip:
サーバーの役割
IP
VIP
master A
192.168.112.133
192.168.112.88
master B
192.168.112.135
192.168.112.88
user
192.168.112.134
-
2、 keepalived.confプロファイル
  • master A:192.168.112.133(データベースノード)
  • #   keepalived    ,     ,                
    #             ,    
    #                       ,               
    ! Configuration File for keepalived
    global_defs {
        notification_email {
          [email protected]
          [email protected]
          [email protected]
    }
        notification_email_from [email protected]
        smtp_server 127.0.0.1    
        smtp_connect_timeout 30
    
    # router_id        ,     keepalived   ,  vip    ,       router_id
        router_id HA_MySQL 
        vrrp_skip_check_adv_addr
        vrrp_strict
        vrrp_garp_interval 0
        vrrp_gna_interval 0
    }
    
    vrrp_instance HA_1 {
         state BACKUP
    # interface           
         interface ens33
         virtual_router_id 51
    #   ,             keepalived master,  vip
         priority 100
         advert_int 1
         nopreempt 
         authentication {
             auth_type PASS
             auth_pass 1111
         }
         virtual_ipaddress {
    #          vip,      ,   
             192.168.112.88
         }
    }
    
    virtual_server 192.168.112.88 3306 {
         delay_loop 2
    # lb_algo/lb_kind        ,         ,  vip     ,   3306      filtered,    vip         
         # lb_algo rr
         # lb_kind NAT
         nat_mask 255.255.255.0
         persistence_timeout 60
         protocol TCP
         real_server 192.168.112.133 3306{
             weight 3
    #     ,     mysql           (keepalived    )
             notify_down /usr/local/keepalived_down.sh 
             TCP_CHECK {
                 connect_timeout 10
                 nb_get_retry 3
                 delay_before_retry 3
                 connect_port 3306
             }
         }
    #           ,            
    #       ,          ,    
    #       ,         ,    
         real_server 192.168.112.134 22{
             weight 3
             notify_down /usr/local/keepalived_down.sh
             TCP_CHECK {
                 connect_timeout 10
                 nb_get_retry 3
                 delay_before_retry 3
                 connect_port 22
             }
         }
    }
    
  • master B:192.168.112.135(データベースノード)
  • ! Configuration File for keepalived
    
    global_defs {
        notification_email {
          [email protected]
          [email protected]
          [email protected]
    }
        notification_email_from [email protected]
        smtp_server 127.0.0.1    
        smtp_connect_timeout 30
    
        router_id HA_MySQL 
        vrrp_skip_check_adv_addr
        vrrp_strict
        vrrp_garp_interval 0
        vrrp_gna_interval 0
    }
    
    vrrp_instance HA_1 {
         state BACKUP
         interface ens33
         virtual_router_id 51
         priority 90
         advert_int 1
         nopreempt 
         authentication {
             auth_type PASS
             auth_pass 1111
         }
         virtual_ipaddress {
             192.168.112.88
         }
    }
    
    virtual_server 192.168.112.88 3306 {
         delay_loop 2
         # lb_algo rr
         # lb_kind NAT
         nat_mask 255.255.255.0
         persistence_timeout 60
         protocol TCP
         real_server 192.168.112.135 3306{
             weight 3
             notify_down /usr/local/keepalived_down.sh 
             TCP_CHECK {
                 connect_timeout 10
                 nb_get_retry 3
                 delay_before_retry 3
                 connect_port 3306
             }
         }
          real_server 192.168.112.134 22{
             weight 3
             notify_down /usr/local/keepalived_down.sh
             TCP_CHECK {
                 connect_timeout 10
                 nb_get_retry 3
                 delay_before_retry 3
                 connect_port 22
             }
         }
    }
    
  • keepalived_down.sh自殺シナリオ
  • #!/bin/bash
    service keepalived stop
    

    ファイル権限の向上を忘れないでください.
    chmod +777 keepalived_down.sh
    

    説明:keepalived構成については、データベースのプライマリ・セカンダリよりもずっと簡単です.唯一注意すべき点はkeepalivedにセルフテストスクリプトが組み込まれているため、サーバの起動順序に一定の要求があることです.サードパーティの中立的なサーバ、すなわち構成中の192.168.112.134を起動する必要があります.そうでないと、サーバが起動し、keepalivedプロセスが起動しません.その後、データベース・サービスに障害が発生した場合、修復後もデータベース・サービスを開始してからkeepalivedプロセスを開始する必要があります.mysqlプロセスがない場合、keepalivedを起動してもすぐに自殺するからです.本稿ではkeepalivedの構成について多くの不足点があり,今後徐々に改善し,ログを徐々に修正する.keepalivedの構成について詳しくて理解しやすいブログをお勧めします:keepalivedの動作原理と構成の説明
    これでMySQLは互いに主従し,keepalivedはvipドリフトを実現することをまとめた.
    MySQL相互マスターおよびKeepalived構成シリーズ記事リンク:
    MySQL相互主従及びKeepalived配置vip——環境編MySQL相互主従及びKeepalived配置vip——主従配置編MySQL相互主従及びKeepalived配置vip——keepalived配置編