lvs和keepalived
LVS调度算法参考
RR:轮询
WRR :加权轮询
DH :目标地址哈希
SH:源地址hash
LC:最少连接
WLC:加权最少连接,默认
SED:最少期望延迟
NQ:从不排队调度方法
LBLC:基于本地的最少连接
LBLCR:带复制的基于本地的最少连接
ipvsadm命令参考
ipvsadm -A|E -t|u virutal-service-address:port [-s scheduler]
#-A:添加虚拟服务器记录
#-E:修改虚拟服务器记录
#-t:tcp服务
#-u:udp服务
#-s:调度算法,默认wlc ipvsadm -D -t|u|f virtual-service-address
#-D:删除虚拟服务器记录 ipvsadm -C
#-C:清空lvs规则 ipvsadm -R
#-R:重载lvs配置 ipvsadm -S [-n] > ipvs.save
#-S:保存lvs配置
#-n:不解析地址 ipvsadm -a|e -t|u service-address:port -r real-server-address:port [-g|i|m] [-w weight]
#-a:添加真实服务器记录
#-e:修改真实服务器记录
#-r:对应的真实服务器地址
#-g:指定lvs工作模式为DR,默认
#-i:指定lvs工作模式为tunnel
#-m:指定lvs工作模式为NAT
#-w:手工指定权重 ipvsadm -d -t|u|f service-address -r server-address
#-d:删除真实服务器记录 ipvsadm -Ln [options]
#-L:显示lvs运行状态
#-n:不解析地址
#-c:显示ipvs连接
#--stats:统计数据
#--rate:速率
#--exact:精确值 ipvsadm -Z [-t|u|f service-address]
#-Z:清空lvs计数器 ipvsadm -h
#-h:显示帮助信息
NAT模型
NAT模型可以做端口映射
1.首先在两台真实服务器上安装http服务
2.开启lvs服务器的转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
3.配置lvs服务
#定义一个lvs服务,指定vip和端口,指定调度方式为轮询
~]# ipvsadm -A -t VIP:PORT -s rr
#添加第一台真实服务器,并指定为NAT模型
~]# ipvsadm -a -t VIP:PORT -r RIP1:PORT -m
#添加第二台真实服务器,并指定为NAT模型
~]# ipvsadm -a -t VIP:PORT -r RIP2:PORT -m
#查看ipvs定义的规则
~]# ipvsadm -L -n
DR模型
三台服务器的所有ip地址都指向路由器的网关接口,DR模式不能做端口映射,也就是lvs服务器的端口和RS服务器端口必须对应
arp_announce:arp通告
0:全部通告(默认)
1:尽量避免通告非本网段地址
2:不通告非本网段地址
arp_ignore:arp应答
0:有的话就应答(默认)
1:不在请求的接口就不应答
1.RS服务器添加vip到lo口,并关闭lo口和其他接口的arp通告和应答,添加vip路由到lo口,下面是相应脚本,只需要更改对应vip即可 #!/bin/bash
#description:start realserver
vip=192.168.159.111
source /etc/rc.d/init.d/functions
case $1 in
start)
echo "Start Realserver"
ip addr add $vip/32 dev lo
ip route add $vip/32 dev lo
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
echo "Stop Realserver"
ip addr del $vip/32 dev lo
ip route del $vip/32
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 (start | stop)"
exit 1
esac 2.在RS上开启相应服务
~]# systemctl start nginx 3.在lvs服务器上添加vip到eth0:0口,并开启转发功能 #添加vip
~]# ip addr add vip/32 dev eth0:0 #开启转发
~]# echo 1 > /proc/sys/net/ipv4/ip_forward #添加路由
~]# ip route add vip/32 dev eth0:0 4.添加ipvs记录,DR模式不能做端口映射
~]# ipvsadm -A -t VIP:80 -s rr
~]# ipvsadm -a -t VIP:80 -r RIP1 -g
~]# ipvsadm -a -t VIP:80 -r RIP2 -g
keepalived:配置文件不能有中文注释!停止keepalived使用systemctl kill keepalived
[root@localhost roles]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs {
#notification_email {
# acassen@firewall.loc
# failover@firewall.loc
# sysadmin@firewall.loc
#}
#notification_email_from Alexandre.Cassen@firewall.loc
#smtp_server 192.168.200.1
#smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
} vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.88
}
}
注释,不要复制下面的内容,请复制上面的内容对应更改
global_defs { #全局配置
router_id mmm #路由器标识,全局唯一
} vrrp_instance VI_1 { #高可用实例1
state MASTER #状态为主节点
interface eno16777736 #使用哪块网卡
virtual_router_id 51 #虚拟路由器标识,同一个高可用内要相同
priority 100 #优先级,主节点要高于备用节点
advert_int 1 #监听时间间隔
authentication { #认证功能
auth_type PASS #明文认证
auth_pass 1111 #认证密码
}
virtual_ipaddress { #虚拟出来的ip地址
192.168.1.30
}
}
#备节点不一样的字段为
#router_id nnn
#state BACKUP
#priority 99
#interface视网卡而定
Keepalived+lvs
RS节点同样需要做lvs DR模型的配置
1.RS服务器添加vip到lo口,并关闭lo口和其他接口的arp通告和应答,添加vip路由到lo口,下面是相应脚本,只需要更改对应vip即可 #!/bin/bash
#description:start realserver
vip=192.168.159.111
source /etc/rc.d/init.d/functions
case $1 in
start)
echo "Start Realserver"
ip addr add $vip/32 dev lo
ip route add $vip/32 dev lo
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
echo "Stop Realserver"
ip addr del $vip/32 dev lo
ip route del $vip/32
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 (start | stop)"
exit 1
esac 2.在RS上开启相应服务
~]# systemctl start nginx
主节点
! Configuration File for keepalived global_defs {
router_id master
vrrp_mcast_group 224.0.0.7
} vrrp_instance DR1 {
state MASTER
interface ens33
virtual_router_id 77
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.159.111
}
}
virtual_server 192.168.159.111 8888 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
sorry_server 192.168.159.130 8888
real_server 192.168.159.132 8888 {
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 8888
}
}
real_server 192.168.159.133 8888 {
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
备节点
! Configuration File for keepalived global_defs {
router_id slave
vrrp_mcast_group 224.0.0.7
} vrrp_instance DR1 {
state BACKUP
interface ens33
virtual_router_id 77
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.159.111
}
}
virtual_server 192.168.159.111 8888 { #虚拟地址组,就是上面虚拟出来的ip加上业务端口
delay_loop 6 #健康检查周期,单位为秒
lb_algo rr #调度算法
lb_kind DR #调度模型
persistence_timeout 0 #同一ip在多少秒内发来的请求都送给同一realserver
protocol TCP
sorry_server 192.168.159.130 8888 #当realserver都挂掉的时候,将请求发送给谁
real_server 192.168.159.132 8888 { #rs1的检查
TCP_CHECK { #检查方法,有HTTP_GET,SSL_GET,TCP_CHECK
connect_timeout 3 #连接超时时间
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试时间间隔
connect_port 8888 #连接端口
}
}
real_server 192.168.159.133 8888 {
HTTP_GET {
url { #检查方法
path / #请求路径
status_code 200 #返回状态码为200代表正常
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
lvs和keepalived的更多相关文章
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...
- LVS结合keepalived配置测试
LVS/DR + keepalived配置 注意:前面虽然我们已经配置过一些操作,但是下面我们使用keepaliave操作和之前的操作是有些冲突的,所以若是之前配置过DR,请首先做如下操作: 三 ...
- LVS,Keepalived,HAproxy区别与联系
LVS,Keepalived,HAproxy区别与联系 LVS 全称Linux Virtual Server,也就是Linux虚拟服务器,由章文嵩(现就职于于淘宝,正因为如此才出现了后来的fullna ...
- 虚拟机 搭建LVS + DR + keepalived 高可用负载均衡
一:环境说明: LVS-DR-Master: 10.3.0.82 LVS-DR-Backup: 10.3.0.70 VIP: 10.3.0.60 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡(转)
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡(转)
一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. ...
随机推荐
- spring core:@AliasFor的派生性
spring对Annotation的派生性应用可谓炉火纯青,在spring core:@Component的派生性讲过支持层次上派生性,而属性上派生的需求则借助了@AliasFor,它是从spring ...
- 传入sql语句,执行完提取内容赋值到控件上
class procedure DBTools.FillStrings(ComboBoxEh: TDBComboBoxEh; sql: string; Default: Boolean = False ...
- 吴裕雄--天生自然java开发常用类库学习笔记:SortedSet接口
import java.util.SortedSet ; import java.util.TreeSet ; public class TreeSetDemo05{ public static vo ...
- codeforces 586B:Laurenty and Shop
B. Laurenty and Shop time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 【ABP】从零开始学习ABP_入门介绍
本文介绍自己入坑ABP的过程,一些ABP的相关文章.QQ群,以及ABP Zero示例项目的运行. 背景 作为一个半路出家学习编程的新人,之前工作中也断断续续写过一些代码,但底层核心一直没机会学习,所以 ...
- 《新标准C++程序设计》3.5(C++学习笔记8)
常量对象和常量成员函数 一.常量对象 如果希望某个对象的值初始化后就再也不被改变,则定义该对象时可以在前面加const关键字,使之成为常量对象. class CDemo { private: int ...
- 文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs
文献引用 Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian T ...
- 对于python 3.x与python2.x中新型类的继承特性总结
(1)一般性继承特性 """ 该文件对于python 3.x 及python 2.x的New-style 类的一般性继承特性进行了说明和测试. (1)实例的继承特性:搜寻 ...
- OpenCV学习日志:计算机视觉资源汇总
1.1 重要会议 (1)机器视觉重要会议 CVPR:Conferenceon Computer Vision and Pattern Recognition, IEEE, 五星 ICCV:Intern ...
- tableau创建蜘蛛图
tableau官方案例2:创建起点和终点的路径地图 (spider Maps) 源数据样式: 应用:交通图 步骤及注意: 将Line Group (Path ID)维度放入标记卡详细信息 默认的为聚 ...