LVS+Keepalived群集

Keepalived案例分析

企业应用中,单台服务器承担应用存在单点故障的危险
单点故障一旦发生,企业服务将发生中断,造成极大的危害

Keeppalived工具介绍

专为LVS和HA设计的一款健康检查工具

支持故障自动切换(Failover)
支持节点健康状态查询(Health Checking)
官方网站:http://www.keepalived.org/

Keepalived实现原理剖析

Keppalived采用VRRP热备份协议实现Linux服务器的多机热备功能

VRRP (虚拟路由冗余协议)是针对路由器的一种备份解决方案

由多台路由组成一个热备组,通过共同的虚拟IP地址对外提供服务
每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
若当前在线的路由器失效,则其路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

Keepalived案例讲解

Keepalived可实现多机热备,每个热备组可有多台服务器
双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
实现基于Web服务的双击热备

漂移地址:192.168.10.72
主、备服务器:192.168.10.73、192.168.10.74
提供的应用服务:Web

Keepalived安装与启动

在LVS群集环境中应用时,也需用到ipvsadm管理工具
YUM安装Keepalived
启用Keepalived服务

配置Keepalived master服务器

Keepalived配置目录位于/etc/keepalived/
Keepalived.conf是主配置文件

global_defs {...}区段指定全局参数
vrrp_instance实例名称{...}区段指定VRRP热备参数
注释文字以"!"符号开头
目录samples,提供了许多配置样例作为参考

常用配置选项
router_id HA_TEST_R1:本路由器(服务器)的名称
vrrp_instance VI_1:定义VRRP热备实例
state MASTER:热备状态,MASTER表示主服务器
interface ens33:承载VIP地址的物理接口
virtual_router_id 1:虚拟路由器的ID号,每个热备组保持一致
priority 100:优先级,数值越大优先级越高
advert_int 1:通告间隔秒数(心跳频率)
auth_type PASS:认证类型
auth_pass 123456:密码字串
virtual_ipaddress{vip}:指定漂移地址(VIP),可以有多个

配置Keepalived slave服务器

Keepalived备份服务器的配置与master的配置有三个选项不同

router_id:设为自有名称
state:设为BACKUP
priority:值低于主服务器

其他选项与master相同

Keepalived双机热备效果测试

测试双机热备的效果

	主、备机均启用Web服务,设置不同的内容
	先后禁用、启用主服务器的网卡

执行的测试

	测试1:使用ping检测192.168.10.72的连通性
	测试2:访问http://192.168.10.72,确认可用性及内容变化
	测试3:查看日志文件/var/log/messages中的变化

部署LVS-keepalived

部署环境

192.168.1.10 lvs01+keepalive(主)	virtual-ip 20.0.0.200
192.168.1.11 lvs02+keepalive(备)	virtual-ip 20.0.0.200
192.168.1.12 web1
192.168.1.13 web2
192.168.1.15 nfs

配置NFS存储服务器

安装nfs-utils、rpcbind

在这里插入图片描述

创建两个网页

mkdir /opt/web1
mkdir /opt/web2
echo "<h1>this is web1</h1>" > /opt/web1/index.html
echo "<h1>this is web2</h1>" > /opt/web2/index.html

配置文件、开启服务

vi /etc/exports
systemctl restart rpcbind
systemctl restart nfs

在这里插入图片描述

查看共享情况

showmount -e

web1 和web2 同样操作

安装httpd

在这里插入图片描述

挂载nfs存储服务器

mount 192.168.1.15:/opt/web1 /var/www/html/

启动服务

systemctl start httpd

测试网页

curl http://localhost

在这里插入图片描述

web1

vi web1.sh
sh web1.sh 

脚本内容

#!/bin/bash
# lvs web1                
ifconfig lo:0 192.168.1.200 broadcast 192.168.1.200 netmask 255.255.255.255 up    
route add -host 192.168.1.200 dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p &> /dev/null

在这里插入图片描述

查看虚拟接口、路由

ifconfig
route -n

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

web2

vi web2.sh
sh web2.sh

脚本内容

#!/bin/bash
# lvs web2                
ifconfig lo:0 192.168.1.200 broadcast 192.168.1.200 netmask 255.255.255.255 up    
route add -host 192.168.1.200 dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p &> /dev/null

在这里插入图片描述
查看虚拟接口、路由

ifconfig
route -n

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

LVS1
手动加载ip_vs模块
查看
在这里插入图片描述
添加keepalived-2.0.13.tar.gz

在这里插入图片描述

安装依赖包

yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

解压压缩包

yum -y install ipvsadm
tar zxvf keepalived-2.0.13.tar.gz

开始配置

cd keepalived-2.0.13/
./configure --prefix=/

make && make install
cd keepalived/etc/init.d/
加入系统管理服务
cp keepalived /etc/init.d/
cd
设为开机自启
systemctl enable keepalived.service
编辑配置
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_01
   }

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 110
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 6666
    }
    virtual_ipaddress {
        192.168.1.200
    }
}

virtual_server 192.168.1.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 6
    protocol TCP

    real_server 192.168.1.12 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.1.13 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get retry 3
            delay_before_retry 3
        }
    }
}

在这里插入图片描述
重新加载服务

systemctl daemon-reload

开启Keepalived

systemctl start keepalived.service

在这里插入图片描述

LVS2
手动加载ip_vs模块

modprobe ip_vs

查看

cat /proc/net/ip_vs
yum -y install ipvsadm

在这里插入图片描述

上传 解压

tar zxvf keepalived-2.0.13.tar.gz
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
cd keepalived-2.0.13/
./configure --prefix=/
make && make install
cp keepalived/etc/init.d/keepalived /etc/init.d/
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_02
   }

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 105
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 6666
    }
    virtual_ipaddress {
        192.168.1.200
    }
}

virtual_server 192.168.1.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 6
    protocol TCP

    real_server 192.168.1.12 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.1.13 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get retry 3
            delay_before_retry 3
        }
    }
}
systemctl start keepalived.service
systemctl status keepalived.service
ipaddr
发现无虚拟地址信息,主备调度器之间存在差异

在这里插入图片描述
ipvsadm -Ln 查看调度信息

在这里插入图片描述

访问浏览器

http://192.168.1.200

在这里插入图片描述

ipvsadm -Ln 查看连接情况
ipvsadm -Lnc 查看调度情况
在这里插入图片描述

在这里插入图片描述
测试主备自动转换功能
在lvs1上 关掉服务
systemctl stop keepalived.service
ip addr
虚拟地址没了
在这里插入图片描述

在这里插入图片描述

再次访问

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

ipvsadm -Lnc

在这里插入图片描述

在web2上
关闭服务

systemctl stop httpd

在lvs02上
查看
在这里插入图片描述
访问浏览器

http://192.168.1.200   只会有web1

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

在lvs1上重启服务

systemctl start keepalived.service
ip addr

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值