基于LVS-DR做双机热备

实验环境
LVS-DR 主 192.168.74.178
LVS-DR 从 192.168.74.179
Web节点1 192.168.74.180
Web 节点2 192.168.74.163
Nfs服务器
VIP漂移地址 192.168.74.66

搭建前的准备工作 selinux 关闭 firewalld 关闭 iptables 关闭或者设置规则

搭建 Web 节点1

1.两个节点搭建方法相同所以这里我们之搭建一个节点 ,因为需要先搭建web 不然lvs-DR 主使用keepalived连接两台web会显示连接失败但是不报错 在日志中可以查看到
2.首先需要创建lo:0 IP 为VIP漂移地址
[root@local ~]# cd /etc/sysconfig/network-scripts/
[root@local network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@local network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.74.66
NETMASK=255.255.255.255
ONBOOT=yes
同样32位子网掩码 ,重启网络服务并查看lo接口信心
[root@local ~]# systemctl restart network
[root@local ~]# ip addr show lo
基于LVS-DR做双机热备_第1张图片
配置成功后 同样的绑定vip路由
[root@local ~]# route add -host 192.168.74.66 dev lo:0
3. 修改配置文件关掉节点服务器的arp请求以及让节点服务器处理请求包的时候用虚拟子接口发送信息,以免网关服务器记录节点服务器本身私有地址然后单一进行处理
[root@local ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
[root@local ~]# sysctl -p 激活
4. 我们此处采用的是nginx,当然其他的类似的web都可以比如apache、tomcat
在安装nginx之前需要装一些nginx的依赖包 以及部署yum安装环境

[root@local ~]# yum install -y pcre-devel zlib-devel gcc gcc-c++ make
Yum环境的搭建这里不做介绍
5. 依赖包安装之后我们开始源码安装nginx
[root@local ~]# tar xf nginx-1.14.2.tar.gz -C /usr/src/
[root@local ~]# cd /usr/src/nginx-1.14.2/
[root@local nginx-1.14.2]# ./configure --prefix=/usr/local/nginx && make && make install
6. 启动nginx并且查看是否启动成功
[root@local ~]# /usr/local/nginx/sbin/nginx
[root@local ~]# ps aux | grep nginx
7.为了方便识别两台web 有时候还需要更改index.heml 这里不做介绍

搭建LVS-DR主(不需要设置虚拟接口)

1.安装keepalived 以及ipvsadm (采用yum的安装方式)
安装之前需要装一些可能用到的依赖包

[root@local ~]# yum install kernel-devel -y openssl-devel popt-devel
安装 keepalived 和ipvsadm工具(其实keepalived内置有ipvsadm不下载也可以)
[root@local ~]# yum -y install ipvsadm keepalived*
2.keepalived的配置文件修改
在修改配置文件之前我们需要先备份以防止修改失败 可以有备份

[root@local ~]# cd /etc/keepalived/
[root@local keepalived]# cp keepalived.conf keepalived.conf.bak
接下来修改配置文件(这个配置文件的注释是以!感叹号开头)
[root@local keepalived]# vim keepalived.conf

! Configuration File for keepalived
global_defs { //全局配置 notification_email {
[email protected] //报警邮件地址,每行一个 } notification_email_from [email protected] //设置邮件的发送地址 smtp_server
192.168.74.178 //设置smtp server地址 smtp_connect_timeout 30 //设置连接smtp服务器超时时间,30秒 router_id LVS_DEVEL_BLM1 (1表示主
从的地方写2) //运行Keepalived服务器标识。发邮件时显示在邮件标题中的信息,Backup(Slave)服务器将此项改为LVS_DEVEL_BLS
}

vrrp_instance VI_1 { //vrrp实例定义部分
state MASTER //指定Keepalived的角色,MASTER表示主服务器,BACKUP或SLAVE表示备用服务器。
interface ens33 //指定HA检测网络的接口
virtual_router_id 51 //虚拟路由标识,这个标识是一个数字,并且同一个vrrp实例使用唯一的标识,即同一个vrrp_instance下,MASTER和BACKUP必须是一致的
priority 100 //优先级1-254,数字越大优先级越高,主服务器一定要高过备份服务器,且两者之间的数值差越小越好。如此MASTER优先级为100,BACKUP可设为99
advert_int 2 //设定MASTER与BACKUP负载均衡器之间同步检查的间隔时间2秒
authentication { //设定验证类型和密码
auth_type PASS //设置验证类型,主要有PASS和AH两种
auth_pass 1111 //设置验证密码,在一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { //设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
192.168.74.66 也可以说VIP地址 或者漂移地址
}
}
virtual_server 192.168.1.66 80 { 漂移地址或者VIP地址
//设置虚拟服务器,需要指定虚拟ip地址和服务端口,ip与端口之间用空格隔开
delay_loop 2 //设置健康检查时间,2秒
lb_algo rr //设置负载调度算法,这里设置为rr,即轮询算法
lb_kind DR //设置LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式 ! nat_mask 255.255.255.0 //若非使用NAT模式,此行需要注解掉 ! persistence_timeout 300 //存留超时时间,300秒,即客户机连接成功后,300秒后才会切换服务器。
protocol TCP //指定转发协议,TCP或UDP
real_server 192.168.74.180 80 { 设置虚拟服务器,需要指定虚拟ip地址和服务端口,ip与端口之间用空格隔开
weight 1 //配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设 置权值的大小可以为不同性能的服务器分配不同的负载,可以对性能高的服务器设置较高的权值,而对性能较低的服务器设置相对较低的权值,这样就合理的利用和分配了系统资源
TCP_CHECK { // realserver的状态检测设置部分,单位是秒
connect_timeout 10 //10秒无响应超时
nb_get_retry 3 //重试次数
delay_before_retry 3 //两次重试的间隔为3秒
connect_port 80 //测试连接的端口
}
}
real_server 192.168.74.163 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}

3.修改完以后启动服务 并且看是否由漂移地址(主有 从没有)
[root@local ~]# systemctl start keepalived.service
基于LVS-DR做双机热备_第2张图片
4.用ipvsadm 查看
在这里插入图片描述
图为连接成功

接下来查看ipvsadm默认超时时间
[root@DR1 keepalived]# ipvsadm -L --timeout
Timeout (tcp tcpfin udp): 900 120 300
900 120 300这三个数值分别是TCP TCPFINUDP的时间.也就是说一条tcp的连接经过lvs后,lvs会把这台记录保存15分钟,就是因为这个时间过长,所以大部分人都会发现做好LVS DR之后轮询现象并没有发生,而且我也看到大部分的教程是没有说明这一点的,因为是实验性质,所以将此数值调整为非常小,使用以下命令调整:
[root@DR1 ~]# ipvsadm --set 1 2 1

搭建LVS-DR从

1.搭建从就较为简单,首先跟主相同yum安装相应的软件包
[root@local ~]# yum install kernel-devel -y openssl-devel popt-devel
[root@local ~]# yum -y install ipvsadm keepalived
2.直接从LVS-DR 主scp一份配置文件来修改
[root@local~]#scp 192.168.74.178:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
3.配置文件的修改
把以下的做修改即可

router_id LVS_DEVEL_BLM2
state BACKUP
interface ens33 网卡根据个人情况来改
priority 90
4.启动keepalived服务
[root@local ~]# systemctl start keepalived.service

基于LVS-DR做双机热备_第3张图片

LVS-DR 从服务器启动之后是没有 漂移地址的只有当主服务器坏了的时候从会切换为主
当主修好的时候从会切换回来

搭建nfs文件共享系统

为了使客户访问的页面相同,我们需要专门搭建一台服务器做nfs文件共享,让web服务器把nfs文件共享的目录挂载到web所对应的目录下,这样达到更改nfs的目录内容就能让所有web服务器页面进行更换

1.Yum安装相关的软件包
[root@local ~]# yum -y install nfs-utils rpcbind
2.书写nfs配置文件
[root@local ~]# vim /etc/exports
/var/www/html 192.168.74.0/24(ro,sync,no_root_squash)
3.启动nfs服务
[root@local ~]# systemctl start nfs
[root@local ~]# systemctl start realmd
4.查看共享文件是否成功
[root@local ~]# showmount -e

测试1 当一台web网卡关闭时候 LVS-DR 主的ipvsadm会变
基于LVS-DR做双机热备_第4张图片

会自动剔除 连接失败的web服务器
当启动web的网卡会自动加入
基于LVS-DR做双机热备_第5张图片

你可能感兴趣的:(LVS)