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 ...
随机推荐
- IDEA旗舰版新建web项目
即在一个Project下(MyEclipse中为工作空间)新建一个Module. 点击,在弹出框上打一个勾,如下图: 点Next,输入项目名,如下图: 点Finish, 右键WEB-INF,新建2个D ...
- centos 查看USB接口的版本
# lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:000 ...
- html 之 区块元素属性(待补充)
区块标签:(会随着父类的宽度变化而变化) p,div 等(后续补充) 区块标签才能使用以下属性() width,height,min-height,max-height,min-width,max-h ...
- P3317 [SDOI2014]重建
思路 变元矩阵树定理可以统计最小生成树边权积的和,将A矩阵变为边权,D变为与该点相连的边权和,K=D-A,求K的行列式即可 把式子化成 \[ \begin{align}&\sum_{T}\pr ...
- 论文笔记之:Natural Language Object Retrieval
论文笔记之:Natural Language Object Retrieval 2017-07-10 16:50:43 本文旨在通过给定的文本描述,在图像中去实现物体的定位和识别.大致流程图如下 ...
- super()、this属性与static静态方法的执行逻辑
1.super的构造顺序:永远优先构造父类的方法 2.static永远在类实例之前执行,this的使用范围为实例之后
- 理解 Redis(7) - Set 值
unordered collection of unique strings.set值是唯一的字符串的无序集合, 把握住两个特点: 唯一, 无序. 清空所有的数据, 并清理显示界面: 127.0.0. ...
- 【BZOJ】2734: [HNOI2012]集合选数
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2734 考虑$N=4$的情况: \begin{bmatrix} 1&3 &X ...
- Error: Program type already present: com.google.gson.FieldAttributes 的解决方法
在app中的build.gradle中加入如下代码, configurations { all*.exclude group: 'com.google.code.gson' all*.exclude ...
- oracle 存储过程给另一个用户的权限问题
grant execute on (包名)存储过程名称 to 用户名; grant debug on (包名)存储过程名称 to 用户名 grant select on 存储过程名称 to 用户名 ...