keepalived双主模型高可用+lvs-实例

拓扑图:

环境准备:
Centos6.5x86_64 关闭防火墙和Selinux

node5: eth0:192.168.1.190/24   VIP:192.168.1.121/24
node1:eth1:192.168.1.191/24   VIP:192.168.1.122/24
node2:RIP:eth0: 192.168.19.2/24
node3:RIP:eth0: 192.168.19.3/24   所有节点网关/DNS都为:192.168.1.1

每个服务器的hosts文件

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.190    node5.luo.com    node5
192.168.19.191    node1.luo.com    node1
192.168.19.192    node2.luo.com    node2
192.168.19.193    node3.luo.com    node3

时间同步(每个节点都需要做)

为方便实验使用笔记本作为时间服务器,参考http://blog.csdn.net/irlover/article/details/7314530

ntpdate 192.168.1.105

如我想每隔10分钟和win7同步时间可以使用crontab -e 编辑crontab工作内容如下:

*/10 * * * * /usr/sbin/ntpdate 192.168.1.105 &>/dev/null&&/sbin/hwclock-w

配置后端real server :node2与node3

node2与node3都执行下面的配置

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
ifconfig lo:0 192.168.1.121 netmask 255.255.255.255 broadcast 192.168.1.121
route add -host 192.168.1.121 dev lo:0
ifconfig lo:1 192.168.1.122 netmask 255.255.255.255 broadcast 192.168.1.122
route add -host 192.168.1.122 dev lo:1

分别为node2与node3安装httpd并写好测试页面

# yum install httpd

node2测试页面

# echo "<h1>node2.luo.com</h1>" > /var/www/html/index.html

# service httpd restart

# curl http://192.168.1.192

node3测试页面

#  echo "<h1>node3.luo.com</h1>" > /var/www/html/index.html

# service httpd restart

# curl http://192.168.1.193

二、配置前端的Director

node5与node1安装配置基本相同

在两个节点上都安装keepalived

# yum install -y keepalived ipvsadm

node5的配置与node1的不同之处在与两个实例中的角色刚好相反,node5为MASTER时,node1为BACKUP,其相应的优先级也有所改变,其他配置相同。

node5配置文件

! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 61
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.121
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 71
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.122
    }
}
virtual_server 192.168.1.121 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP
    real_server 192.168.1.192 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
    real_server 192.168.1.193 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
}
virtual_server 192.168.1.122 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP
    real_server 192.168.1.192 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
    real_server 192.168.1.193 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
}

node1配置文件

! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 61
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.121
    }
}
vrrp_instance VI_2 {
    state MASTER
    interface eth1
    virtual_router_id 71
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.122
    }
}
virtual_server 192.168.1.121 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP
    real_server 192.168.1.192 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
    real_server 192.168.1.193 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
}
virtual_server 192.168.1.122 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP
    real_server 192.168.1.192 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
    real_server 192.168.1.193 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }
            connect_timeout 2
            nb_get_retry 3
            delay_before_retry 1
        }
    }
}

测试

先启动node5节点的keepalived服务,可以看到两个VIP地址都配置在了node5的eth0网卡上。

ipvs规则的启动效果为,可以看到两组规则也都启动在了node5上。

启动node1的keepalived服务,查看相关信息

模拟node5节点服务器故障,此处直接停止node5的keepalived服务,查看node1信息都无误,两个VIP都到node1上面了

至此,实验完毕,如有错误之处,请多多指教。

时间: 2024-10-11 16:53:04

keepalived双主模型高可用+lvs-实例的相关文章

基于keepalived实现双主模型高可用lvs

实验环境,使用的操作系统CentOS6.5: Director: node1:IP 172.16.103.2 安装keepalived VIP:172.16.103.20 node2:IP 172.16.103.3 安装keepalived VIP:172.16.103.30 RS: RS1:IP 172.16.103.1 提供httpd服务 RS2:IP 172.16.103.4 提供httpd服务 实验效果: 前端的两台Director运行keepalived,自动生成各自的一组lvs规则,

双主模型高可用负载均衡集群的实现(keepalived+lvs-dr)

实现keepalived双主模型lvs高可用集群 一.拓扑图 二.环境准备 两台负载均衡调度器,两台web服务器. 调度器A环境: VS:一张网卡 DIP:192.168.0.7/24 VIP(主):192.168.0.200 VIP(备):192.168.0.201 软件包:yum install -y keepalived ipvsadm nginx(作用:sorry-server服务) 调度器B环境: VS:一张网卡 DIP:192.168.0.8/24 VIP(主):192.168.0.

【 Linux 】Keepalived实现双主模型高可用集群

要求:    1. 两台web服务器安装wordpress,数据库通过nfs共享    2. 使用keepalived实现双主模型 环境:    主机:        系统:CentOS6.7 x64        1. node1: 192.168.2.11  node2: 192.168.2.12 vip: 192.168.2.200        service iptables stop        selinux: disabled 一.两台主机分别配置lamp架构,并使用nfs实现

keepalived双主模式高可用工作于NAT模型下的ipvs

一.Keepalived简介 ipvs提供高可用性,能够生成ipvs规则:也可以使用脚本来帮助高可用其他应用程序,没有heartbeart重量级:主要用在高可用ipvs,及一些反向代理应用程序 . 1.拓扑图 说明:1.两个代理服务器通过VIP向外提供数据 2.两个代理服务器都可以代理后端的服务器 3.为测试方便,后端服务器至提供静态页面 2.ip规划 3.安装配置haproxy 关于haproxy的详细配置, [[email protected] ~]# cat /etc/haproxy/ha

KeepAlived双主模式高可用集群

一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提供服务:每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器宕机,其虚拟IP地址将会被其他服务器接替(优先级决定接替顺序),实现高可用为后端主机提供服务.   二.keepalived组件 Keepalived组件介绍 core:ke

haproxy+keepalived双主模型及动静分离的实现

实验目标: 1.haproxy统计页面的输出机制: 2.haproxy动静分离机制: 3.基于keepalived的高可用实现: 环境: vm8虚拟机 操作系统: centos 6.4 内核版本: 2.6.32-358.el6.x86_64 注: (1) 每个haproxy各有两块网卡,外网网卡选择Bridge,内网网卡选择Vmnet2; (2) 内部两台web服务器的网卡都是选择Vmnet2; 一.准备工作: 1.各节点IP地址相关设置 node1:  ifconfig eth1 192.16

初识MariaDB之9——keepalive+GTID双主实现高可用

一.背景介绍 传统的主从复制架构下,尽管可以使用半同步的方式进行读写分离,但是主节点仍然存在单点隐患,在规模不大的情况下可以采用keepalive+双主的模式对主节点进行高可用保护,客户端通过VIP访问MySQL服务器 二.实现方式 keepalive是通过vrrp协议实现,之前有过介绍这里不多赘述,要注意的是在云主机是禁用vrrp协议的.本次实验采用CentOS7.4,数据库版本为MariaDB-10.2.14,2台MySQL服务器互为主从,172.16.10.30/24为keepalived

企业级应用,持久层架构方案二(双主同步高可用二)

这是企业级应用,持久层架构方案的第二篇.在上一篇:企业级应用,持久层架构方案一(双主同步高可用)中.已经准备好了两台mysql数据库节点:hadoop001.hadoop002.两个节点互为主备,实现舒双主同步高可用,如何叫做双主同步高可用呢?其实要分为两个问题:一个是双主同步,互为主备:另一个是高可用.那么在上一篇中已经实现了双主互为主备,本篇通过keepalived虚拟ip实现高可用: 1.安装keepalived 1.1.hadoop001节点 #安装keepalived yum inst

keepalived 双主模型

keepalived 双主模型 双主模型是两台服务器互为主备,即一台为主备,另一台为备主,让两台服务器并行运行,也可以实现减轻单台keepalived主机上的压力.双主模型需要注意此时需要有2个VIP地址 keepalived 双主模型实现 准备主机2台 server hostname ip keepalived s1 172.20.27.10 keepalived s2 172.20.27.11 s1 节点配置 修改配置文件 [[email protected] ~]# vim /etc/ke