CentOS7 搭建LVS+keepalived负载均衡
1、实验环境
4台节点
Keepalived1 + lvs1(Director1):192.168.31.4
Keepalived2 + lvs2(Director2):192.168.31.3
Real server1:192.168.31.2
Real server2:192.168.31.7
IP: 192.168.31.38
2、安装
Lvs + keepalived的2个节点安装:
yum install ipvsadm keepalived -y
Real server + nginx服务的2个节点安装:
yum install -y nginx
3、设置配置脚本
Real server节点2台配置脚本:
vim /opt/lvs_dr_rs.sh
#!/bin/bash vip=192.168.31.38
ifconfig lo: $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev lo:
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
复制到另外一台
scp lvs_dr-rs.sh root@192.168.31.3:/opt
执行脚本
bash /opt/lvs_dr_rs.sh
查看
ip a
keepalived节点配置(2节点):
主节点( MASTER )配置文件
vim /etc/keepalived/keepalived.conf
global_defs{
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.31.38
}
} virtual_server 192.168.31.38 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP
real_server 192.168.31.2 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 192.168.31.7 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
从节点( BACKUP )配置文件
拷贝主节点的配置文件keepalived.conf:
scp keepalived.conf root@192.168.31.3:/etc/keepalived
然后修改如下内容:
state MASTER -> state BACKUP
priority -> priority
keepalived的2个节点执行如下命令,开启转发功能:
# echo > /proc/sys/net/ipv4/ip_forward
4、启动nginx
systemctl start nginx
5、启动keepalived
先主后从分别启动keepalive
systemctl start keepalived.service
6、重启日志记录服务
修改vim /etc/sysconfig/keepalived日志保存路径
把KEEPALIVED_OPTIONS="-D" 修改为:KEEPALIVED_OPTIONS="-D -d -S 0"
在vim /etc/rsyslog.conf 末尾添加
local0.* /var/log/keepalived.log
重启日志服务
systemctl restart rsyslog
重启keepalived
systemctl restart keepalived.service
7、排查
- 查看/var/log/keepalived.log日志是否启动成功??
- ipvsadm -ln查看是否正常
- ipvsadm -ln --stats查看是否主才有数据,备没有数据
- curl vip,然后查看ipvsadm -lnc数据是否异常
8、删除
ifconfig lo:0 down
route del 192.168.31.38
LVS DR模式的特性: 、CIP必须能够和VIP通讯,所以通常VIP是外网地址
、DIP和RIP为同一物理网络,否则无法向RS发送ARP广播
、RS上必须配置VIP地址,否则响应报文无法送达客户端,RS上的VIP对外界是不可见的,但RS可以接收目标地址为VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址
、RS上必须做ARP抑制,使RS不响应来自CIP的请求,相当于指定Director来响应CIP的请求
、调度器几乎支持所有的UNIX、LINUX系统,但不支持windows,但是RS可以为windows
、RS的网关不能指向DIP,应该指向出口网关
、DR模式下,不支持端口映射,即Director不能更改请求报文的端口
、DR模式效率很高,但配置麻烦,访问量不是非常大的情况下推荐使用haproxy或者nginx。标准:日访问量2000W PV以下,或者并发请求1W以下的可以考虑使用haproxy或nginx或使用LVS-NAT模式。
、直接对外的访问业务,例如:web服务做RS节点,RS最好使用外网IP,如果不直接对外的业务,例如MySQL、存储系统RS节点,最好使用内网IP
参考:https://www.cnblogs.com/edisonchou/p/4281978.html
https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665
https://blog.csdn.net/u012852986/article/details/52412174
CentOS7 搭建LVS+keepalived负载均衡的更多相关文章
- (转)CentOS7 搭建LVS+keepalived负载均衡(一)
原文:http://blog.csdn.net/u012852986/article/details/52386306 CentOS7 搭建LVS+keepalived负载均衡(一) CentOS7 ...
- linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡
最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...
- 搭建LVS+Keepalived负载均衡集群
这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...
- LVS+keepalived负载均衡
背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高 ...
- Linux CentOs集群LVS+Keepalived负载均衡的实现
准备工作 环境:Win10下Centos6.4虚拟机. 负载均衡:两台(一主一备) LVS + Keepalived. HTTP服务器:3台. 给每台服务器配置IP 1.VIP(virtual ip ...
- LVS+keepalived负载均衡实战
1 首先安装虚拟机 安装系统 这里 配置两台虚拟机 1:192.168.137.102 2:192.168.137.103 分别安装tomcat 默认80端口,同时都是开启状态 配置192.168 ...
- lvs+keepalived 负载均衡
LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器.目前有三种IP负 载均衡技术(VS/NAT.VS/T ...
- LVS+Keepalived负载均衡配置
简介 lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高. lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在ke ...
- MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移
系统信息: mysql主库 mysql从库 VIP 192.168.1.150 mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ...
随机推荐
- Nand flash code
(1)流水灯 1>我们来看原理图 2>datasheet 3> ...
- js转义和反转义html
本文地址: http://www.cnblogs.com/daysme/p/7100553.html 下面的代码网上常用有,但不是想要的. JS实现HTML标签转义及反转义 http://blog.c ...
- 将tiff文件转化为jpg文件并保存
jar包准备 jai-codec和jai-core 主要过程 private boolean parseTifFile(FileItem item) { logger.info("----- ...
- progressBar显示百分比
this.lab_AllFiles.Text = progressBarAllFile.Value * 100 / progressBarAllFile.Maximum + "%" ...
- vue--v-model表单控件绑定
原文链接:https://www.cnblogs.com/dyfbk/p/6868350.html v-model 指令在表单控件元素上创建双向数据绑定,下面一一进行示例解释. 1.v-model 双 ...
- BZOJ 2754 【SCOI2012】 喵星球上的点名
题目链接:喵星球上的点名 首先可以发现姓和名两个串就是逗你玩的.在两个串中间插入一个\(10001\),当成一个串做就可以了. 于是我们的问题转化为了: 有\(n\)个串\(A_1,A_2,\dots ...
- hdu 6069 Counting Divisors 筛法
Counting Divisors Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Oth ...
- FreeCodeCamp---advanced Algorithm Scripting解法
Exact Change 设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) ...
- MongoDB 对象操作
对象插入 >db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'xxx', url: ' ...
- 力扣(LeetCode)476. 数字的补数
给定一个正整数,输出它的补数.补数是对该数的二进制表示取反. 注意: 给定的整数保证在32位带符号整数的范围内. 你可以假定二进制数不包含前导零位. 示例 1: 输入: 5 输出: 2 解释: 5的二 ...