LVS配合piranha实现负载均衡及DR高可用

2024-03-15 11:10

本文主要是介绍LVS配合piranha实现负载均衡及DR高可用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 架构

VIP:192.168.1.20

DR:192.168.1.19

DR_BACK:192.168.1.15

RS1: 192.168.1.17

RS2: 192.168.1.18

二.初始化配置

同步时间

ntpdate asia.pool.ntp.org

关闭selinux

#临时修改,立即生效
setenforce 0
#永久修改,需要重启
vim /etc/sysconfig/selinuxSELINUX=disabled

为了调试方便暂时关闭防火墙

/etc/init.d/iptables stop


三.DR配置

绑定虚拟IP

ifconfig eth0:0 192.168.1.20 broadcast 192.168.1.20 netmask 255.255.255.255 up

设置路由

route add -host 192.168.1.20 dev eth0:0

开启包转发

sed -i 's/net.ipv4.ip_forward\ =\ 0/net.ipv4.ip_forward\ =\ 1/' /etc/sysctl.conf 
sysctl -pnet.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

安装lvs和piranha

yum install ipvsadm piranha -y

设置piranha密码

piranha-passwd
New Password: 
Verify: 
Updating password for user piranha

启动piranha

/etc/init.d/piranha-gui start

在浏览器访问piranha

  http://192.168.1.19:3636/login登录 

用户名:piranha

密码:刚刚你设置的密码

172441_2sFx_1767904.jpg


配置Backup Server 

         点击 ENABLE 激活冗余服务器

         Redundant server public IP: 192.168.1.15        //备份LVS地址

         Heartbeat interval (seconds):6                          //心跳网络检测时间

          Assume dead after(seconds):18                       //死亡转移时间

          Heartbeat runs on port:539                              //监控的端口

          Monitor NIC links for failures : 不勾选                   //网卡链路失效选项

          Syncdaemon: 不勾选                                            //同步守护进程选项

173539_mc2Y_1767904.jpg

配置虚拟服务器  > 点击 VIRTUAL SERVER   > ADD

           添加一条心的记录并编辑

           name :  LVS                                  //自定义名称

          Application port  :80                               //监控应用端口号

          Protocol :tcp                                           //监控网络的协议类型

          Virtual IP Address:192.168.1.20          //虚拟服务器的IP地址

          Virtual IP Network Mask: 255.255.255.255  //虚拟服务掩码

          Device: eth0:0                                            //虚拟IP设备宿主 >

          Re-entry time: 15                                         //移除RS后从新加入时间

          Service timeout: 6                                       //RS失效后存活时间

          Scheduling: 保持默认(最小连接数)                                        //调度算法

           Persistence: 保持默认                                           //维持时间

           Persistence Network Mask:保持默认  //掩码


173539_PsYF_1767904.jpg

配置 Real-server1

         点击Real SERVER     新建一条RS 记录

          NAME:node1             //自定义RS名称

          Address:192.168.1.17                //RS1服务器IP地址

          Port:80                                          //服务的端口

          Weight:1                                       //调度权重

173847_pKQG_1767904.jpg

配置 Real-server2

         点击Real SERVER     新建一条RS 记录

          NAME:node1             //自定义RS名称

          Address:192.168.1.18                //RS1服务器IP地址

          Port:80                                          //服务的端口

          Weight:1                                       //调度权重

激活

174038_101P_1767904.jpg

174038_QQf5_1767904.jpg

配置好的配置文件如下(/etc/sysconfig/ha/lvs.cf)

serial_no = 12
primary = 192.168.1.19
service = lvs
backup_active = 1
backup = 192.168.1.15
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
debug_level = NONE
monitor_links = 0
syncdaemon = 0
virtual LVS {active = 1address = 192.168.1.20 eth0:0vip_nmask = 255.255.255.255port = 80send = "GET / HTTP/1.0\r\n\r\n"expect = "HTTP"use_regex = 0load_monitor = nonescheduler = wlcprotocol = tcptimeout = 6reentry = 15quiesce_server = 0server node1 {address = 192.168.1.17active = 1port = 80weight = 1}server node2 {address = 192.168.1.18active = 1port = 80weight = 1}
}


复制配置文件到DR_BACK

scp /etc/sysconfig/ha/lvs.cf 192.168.1.15:/etc/sysconfig/ha/

启动LVS服务(先启动主)

/etc/init.d/pulse start
Starting pulse:                                            [  OK  ]

查看lvs转发

 ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.20:80 wlc-> 192.168.1.17:80              Route   1      0          4         -> 192.168.1.18:80              Route   1      0          4

四. RS配置

建立lvsrs启动脚本

vim /etc/init.d/lvsrs

  

#!/bin/bash
#description : Start Real Server 
# chkconfig: 2345 90 60
# Default-Start:  2345
# Default-Stop: 90
VIP=192.168.1.20
#./etc/rc.d/init.d/functions
case "$1" instart)echo " Start LVS  of  Real Server"/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 upecho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce ;;stop)/sbin/ifconfig lo:0 downecho "close LVS Director server"echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announce;;*)echo "Usage: $0 {start|stop}"exit 1
esac

添加进启动项,开机自启动

chkconfig --add lvsrs

启动服务

/etc/init.d/lvsrs start

五.验证

验证负载均衡:

在RS1和RS2分别安装nginx并启动,修改默认首页

vim /usr/local/nginx/html/index.html

<h1>标签分别改成NODE1和NODE2

浏览器访问http://192.168.1.20

显示NODE1

换个机器访问显示NODE2及表示成功。

这个时候再来查看lvs状态

ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.20:http wlc-> 192.168.1.17:http            Route   1      2          1         -> 192.168.1.18:http            Route   1      2          0

验证DR高可用:

手动停止主DR,模拟故障

/etc/init.d/pulse stop
Shutting down pulse:                                       [  OK  ]

继续访问http://192.168.1.20

如果仍然能正常访问则证明成功

这个时候在备份DR上查看LVS状态

[root@vm2 ha]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.20:80 wlc-> 192.168.1.17:80              Route   1      0          2         -> 192.168.1.18:80              Route   1      0          3


转载于:https://my.oschina.net/liuhuan0927/blog/617819

这篇关于LVS配合piranha实现负载均衡及DR高可用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811770

相关文章

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现