LVS(Linux Virtual Server)即Linux 虚拟服务器,是一个的开源负载均衡项目,目前LVS 已经被集成到Linux 内核模块中。LVS 是四层负载均衡,也就是说建立在OSI 模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS 支持TCP/UDP 的负载均衡。
一 环境
192.168.132.120 VIP
192.168.132.123 LVS01,keepalived
192.168.132.124 LVS02,keepalived
192.168.132.121 MySQL 主
192.168.132.122 MySQL 主
在192.168.132.123和192.168.132.124安装lvs的管理软件,以及安装keepalive(参考上篇)
[root@lvs01 ~]# yum install ‐y ipvsadm*
LVS 安装完成,查看当前LVS 集群
[root@lvs01 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
二 LVS介绍
2.1 LVS 工作模式
NAT 模式
TUN 模式
DR 模式
2.2 LVS 负载均衡调度算法
轮询调度(Round Robin 简称'RR')算法就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是实现简单。轮询算法假设所有的服务器处理请求的能力都一样的,调度器会将所有的请求平均分配给每个真实服务器。
加权轮询(Weight Round Robin 简称'WRR')算法主要是对轮询算法的一种优化与补充,LVS 会考虑每台服务器的性能,并给每台服务器添加一个权值,如果服务器A 的权值为1,服务器B 的权值为2,则调度器调度到服务器B 的请求会是服务器A 的两倍。权值越高的服务器,处理的请求越多。
最小连接调度(Least Connections 简称'LC')算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态的调度算法,它通过服务器当前活跃的连接数来估计服务器的情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中断或者超时,其连接数减1。
加权最少连接(Weight Least Connections 简称'WLC')算法是最小连接调度的超集,各个服务器相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
基于局部性的最少连接调度算法lblc
复杂的基于局部性最少的连接算法lblc目标地址散列调度算法 dh
源地址散列调度算法 sh
固定调度算法:rr,wrr,dh,sh
动态调度算法:wlc,lc,lblc,lblcr
NAT 模式:网络地址转换
DR 模式:直接路由
2.3 配置
LVS01配置:
[root@lvs01 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File forkeepalived
global_defs {
router_id lvs01
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id51priority100nopreempt
advert_int1authentication {
auth_type PASS
auth_pass1111}
virtual_ipaddress {192.168.132.120}
}
virtual_server192.168.132.120 3306{
delay_loop6protocol TCP
lb_algo rr
lb_kind DR
real_server192.168.132.121 3306{
TCP_CHECK {
connect_timeout3nb_get_retry3connect_port3306de