LVS(DR模式)

一. Keepalived的概述

1.1 Keepalived的功能

keepalived 主要是用来提供故障切换和健康检查功能-----判断LVS负载调度器,节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入集群。

1.2 Keepalived 的热备方式

keepalivefd 采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能。
注意:使用Keepalived时,漂移IP地址不需要手动建立虚接口配置文件如(ens33:0),而是由Keepalived 根据配置文件自动管理。

二. LVS + Keepalived 高可用集群配置

2.1 LVS + Keepalived 高可用集群的意义

Keepalived 的设计目的是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用作双机热备。使用Keepalived 构建LVS群集更加简便易用,主要优势体现在:对LVS负载均衡调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。
注意:使用Keepalived 构建LVS集群时,也需要用到ipvsadm管理工具,但大部分工作会由Keepalived 自动完成,不需要手动执行ipvsadm(除了查看和监控集群以外)

2.2 Keepalived + LVS 高可用集群实验规划

主调度器: IP:20.0.0.23 VIP:20.0.0.100
从调度器: IP:20.0.0.24 VIP:20.0.0.100
web节点服务器1:IP:20.0.0.26 lo:0: 20.0.0.100
web节点服务器2:IP: 20.0.0.27 lo:0: 20.0.0.100
存储服务器: IP: 20.0.0.28

2.3 配置主服务器

2.31 调整/proc响应参数

对于DR群集模式来说,由于LVS负载调度器和各节点需要共用VIP地址,应该关闭Linux 内核的重定向参数。

[root@localhost network-scripts]# vi /etc/sysctl.conf 
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

[root@localhost network-scripts]# sysctl -p     ###生效
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0  

2.32 配置Keepalived 配置文件

2.321 全局配置,热备配置

首先应从主,从调度器实现热备功能,漂移地址使用LVS群集的VIP地址。Keepalived的配置文件中,使用“global_defs {…}" 区段来指定全局参数,使用“vrrp_instance 实例名称 {…}” 区段指定VRRP热备参数,注释文字以“!”符号开头

[root@localhost etc]# yum -y install keepalived ipvsadm
[root@localhost keepalived]# vi /etc/keepalived/keepalived.conf
global_defs {
   router_id HA_TEST_R1    //主调度器的名称
}
vrrp_instance VI_1 {      //定义VRRP热备实例
   state MASTER           //主调度器的热备状态
   interface ens33        //承载VIP接口的物理接口 
   virtual_router_id 1    //虚拟路由器的ID号,每个热备组保持一致
   priority 100           //主调度器的优先级,越大越优先
   advert_int 1           //通告间隔秒数(心跳频率)
   authentication {       //主从热备认证信息
      auth_type PASS      //认证类型
      auth_pass 123456    //密码子串
   }
virtual_ipaddress {    //指定群集VIP地址
      20.0.0.100
   }
}

2.322 WEB服务器池配置

在Keepalived 的热备配置基础上,添加“virtual_server VIP 端口 {…} " 区段来配置虚拟服务器,主要包括对负载调度算法,集群工作模式,健康检查间隔,真实服务器地址等参数的设置。

virtual_server 20.0.0.100 80 {      //虚拟服务器地址(VIP),端口
    delay_loop 15                  //健康检查的间隔时间(秒)
    lb_algo rr                    //轮询调度算法(rr)
    lb_kind DR                    //直接路由(DR)群集工作模式
    !rsistence 60               //连接保持时间(秒),启用需要去掉!号
    protocol TCP                //应用服务采用的是TCP协议
    real_server 20.0.0.27 80 {   //第一个web节点的地址端口
        weight 1                 //节点的权重
        TCP_CHECK {              //健康检查的方式
            connect_port 80      //检查的目标端口
            connect_timeout 3    //连接超时(秒)
            nb_get_retry 3       //重试次数
            delay_before_retry 4 //充实间隔(秒)
        }
    }

      real_server 20.0.0.26 80 {   //第二个web节点服务器的地址,端口
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
}

2.33 启动keepalived服务

[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# systemctl enable keepalived

###查看VIP地址###
[root@localhost etc]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:09:d7:1f brd ff:ff:ff:ff:ff:ff
    inet 20.0.0.23/24 brd 20.0.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 20.0.0.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::d11b:e35b:5200:54ba/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
注意:MASTER的主服务器将ens33接口自动添加VIP地址,通过ip命令可以查看(ifconfig命令看不到)

2.4 配置从调度器

2.41 调整/proc响应参数

对于DR群集模式来说,由于LVS负载调度器和各节点需要共用VIP地址,应该关闭Linux 内核的重定向参数。

[root@localhost network-scripts]# vi /etc/sysctl.conf 
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

[root@localhost network-scripts]# sysctl -p     ###生效
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0  

2.42 修改从调度器配置文件

从调度器的配置文件与主调度器的配置文件基本相同,也包括全局配置,热备配置,服务器池配置。只需要调整route_id, state, priority 参数即可,其余内容完全相同。

[root@localhost etc]# yum -y install keepalived ipvsadm
[root@localhost keepalived]# vi /etc/keepalived/keepalived.conf
 global_defs {
   router_id HA_TEST_R2   //从调度器的名称
}
vrrp_instance VI_1 {      //定义VRRP热备实例
   state    BACKUP  //从调度器的热备状态
   interface ens33        //承载VIP接口的物理接口
   virtual_router_id 1    //虚拟路由器的ID号,每个热备组保持一致
   priority 99         //主调度器的优先级,越大越优先
   ..........                 //省略部分信息
}
virtual_server 20.0.0.100 80 {
.....
}

2.43 开启keepalived 服务

[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# systemctl enable keepalived

###查看VIP地址###
[root@localhost ~]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:7c:68:da brd ff:ff:ff:ff:ff:ff
    inet 20.0.0.24/24 brd 20.0.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::dc5:de30:9e5:aac/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

注意:主调度器没有发生故障,在从调度器里是查看不了VIP地址的,当主调度器down掉时可查看漂移地址。

2.5 配置节点服务器 (20.0.0.26)

2.51 配置虚拟IP地址

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=20.0.0.100
NETMASK=255.255.255.255
ONBOOT=yes
[root@localhost network-scripts]# ifup lo:0

2.52 调整/proc响应参数

[root@localhost network-scripts]# vi /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

[root@localhost network-scripts]# sysctl -p

2.53 为虚拟接口lo:0配置VIP地址

DR模式,除了需要调整/proc系统的ARP相应参数以外,还需要为虚拟接口lo:0配置VIP地址,并添加一条VIP的本地路由。

[root@localhost network-scripts]# vi /etc/rc.local 
/sbin/route add -host 20.0.0.100 dev lo:0

[root@localhost network-scripts]# route add -host 20.0.0.100 dev lo:0

2.54 挂载共享存储服务器

网站首页目录与存储服务器进行挂载

[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# showmount -e 192.168.100.44     ####如果还没发布,请到存储服务器发布下
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount 192.168.100.44:/opt/51xit /var/www/html/
[root@localhost ~]# vi /etc/fstab 
192.168.100.44:/opt/51xit/ /var/www/html/   nfs  defaults,_netdev 0 0

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start rpcbind nfs
[root@localhost ~]# systemctl enable rpcbind nfs

2.6 配置节点服务器 (20.0.0.27)

20.0.0.27节点服务器的配置与20.0.0.26节点服务器的配置几乎完全一致,参考节点服务器20.0.0.26进行配置,这里不作叙述。

2.7 配置存储服务器

[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# yum -y install rpcbind
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs

[root@localhost ~]# vi /etc/exports
/opt/51xit 192.168.100.0/24 (rw,sync)
/opt/52xit 192.168.100.0/24 (rw,sync)

[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# mkdir /opt/51xit /opt/52xit
[root@localhost ~]# echo "this is 51xit" >/opt/51xit/index.html
[root@localhost ~]# echo "this is 52xit" >/opt/52xit/index.html

2.8 测试LVS(DR模式)+ Keepalived 高可用集群

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值