• Linux下keepalived配置


    一、环境
    主库(node01):192.168.12.35 端口:3306
    从库(node02):192.168.12.36 端口:3306
    vip:192.168.12.38
    
    主库,主从数据库服务器已搭建MySQL主从。
    
    2、配置keepalived实现MySQL主从高可用
    keepalived配置如下:
    node01:
    ! Configuration File for keepalived
    
    global_defs {
       router_id node01
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens32
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.12.38/24
        }
    }
    
    virtual_server 192.168.12.38 3306 {
        delay_loop 6
        lb_algo rr
        lb_kind NAT
        persistence_timeout 50
        protocol TCP
    
        real_server 192.168.12.35 3306 {
            weight 1
                    notify_down /root/kill_keepalived.sh
            TCP_CHECK {
                connect_timeout 3
                connect_port 3306
            }
        }
    
        real_server 192.168.12.36 3306 {
            weight 1
            TCP_CHECK {
                connect_timeout 3
                connect_port 3306
            }
        }
    }
    
    脚本/root/kill_keepalived.sh内容如下:
    #!/bin/bash
    systemctl stop keepalived
    
    node02:
    ! Configuration File for keepalived
    
    global_defs {
       router_id node02
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface ens32
        virtual_router_id 51
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.12.38/24
        }
    }
    
    virtual_server 192.168.12.38 3306 {
        delay_loop 6
        lb_algo rr
        lb_kind NAT
        persistence_timeout 50
        protocol TCP
    
        real_server 192.168.12.35 3306 {
            weight 1
            TCP_CHECK {
                connect_timeout 3
                connect_port 3306
            }
        }
    
        real_server 192.168.12.36 3306 {
            weight 1
            TCP_CHECK {
                connect_timeout 3
                connect_port 3306
            }
        }
    }
    
    启动主从数据库服和keepalived服务,查看IP
    
    [root@node01 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:30:cc:38 brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.35/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet 192.168.12.38/24 scope global secondary ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    
    [root@node02 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:25:89:7e brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.36/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::a547:b48:6f4c:6d64/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link tentative noprefixroute dadfailed
           valid_lft forever preferred_lft forever
    
    3、vip切换测试
    node01:
    [root@node01 ~]# /etc/init.d/mysqld stop
    Shutting down MySQL.. SUCCESS!
    [root@node01 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:30:cc:38 brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.35/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    
    node02:
    [root@node02 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:25:89:7e brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.36/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet 192.168.12.38/24 scope global secondary ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::a547:b48:6f4c:6d64/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link tentative noprefixroute dadfailed
           valid_lft forever preferred_lft forever
    
    vip:192.168.12.38漂移到node02节点。
    
    重新把node01数据库和keepalived服务启动:
    [root@node01 ~]# /etc/init.d/mysqld start
    Starting MySQL. SUCCESS!
    [root@node01 ~]# systemctl start keepalived
    [root@node01 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:30:cc:38 brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.35/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    [root@node01 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:30:cc:38 brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.35/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet 192.168.12.38/24 scope global secondary ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    
    再次查看node02节点IP:
    [root@node02 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:50:56:25:89:7e brd ff:ff:ff:ff:ff:ff
        inet 192.168.12.36/24 brd 192.168.12.255 scope global noprefixroute ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::a547:b48:6f4c:6d64/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::df6c:9284:28fd:7480/64 scope link tentative noprefixroute dadfailed
           valid_lft forever preferred_lft forever
    
    可以正常切换了
    

      

  • 相关阅读:
    在mac上搭建python环境
    iOS开发-你真的会用SDWebImage?(转发)
    iOS tableview 优化总结
    Masonry 实现输入框随键盘位置改变
    sudo 权限问题
    nodejs save遇到的一个坑
    iOS app的webview注入JS遇到的坑
    HW18-广搜
    HW17-深搜
    HW16-动归2
  • 原文地址:https://www.cnblogs.com/orcl-2018/p/13539822.html
Copyright © 2020-2023  润新知