lvs是一款IP负载均衡软件,是通过ipvs模块来实现ip负载均衡的。
三种机制:NAT 用户请求和服务器响应都经过调度器,调度器修改数据包IP和PORT
TUN 用户请求被调度器通过IP隧道技术转发给realserver,realserver直接返回数据给用户,调度器和realserver
可以不再相同网段
DR 通过改写请求报文MAC地址将请求发到realserver,realserver直接响应用户。避免了IP隧道开销。
DR模式下directorserver和realserver必须有一个网卡在同一个网段上
负载调度算法(常用为前4个)
1 轮叫 (rr) 单纯轮询方式,按顺序分配给realserver
2 加权轮叫 (wrr) 带权重的轮询方式,根据服务器处理能力分配权重,也属于循环飞陪,但是给权重高的机器飞陪更多任务
3 最少链接 (lc) 调度器根据连接数量进行分配,谁不干活给谁分配
4 加权最少链接 (wlc) 带权重的谁不干活给谁分配
5 基于局部性的最少链接 (lblc)
6 带复制的基于局部性最少链接(lblcr)
7 目标地址散列(dh)
8 源地址散列(sh)
9 最短的期望的延迟
10 最少队列调度
lvs安装
yum安装
yum -y install ipvsadm 自动解决依赖
源码安装
1 ipvsadm安装依赖包有三个libnl-devel popt-devel popt-static 可通过yum直接安装
2 tar - zxf ipvsadm-1.26.tar.gz 解压缩包
3 进入解压后目录
4 make && make install
5 安装完成后可通过ipvsadm --help查看命令是否可用(没有安装lvs系统默认不带ipvsadm命令)
ipvsadm用法
ipvsadm -L|l 显示内核中虚拟服务器列表
ipvsadm -A|E -t|u|f VIP:端口 -s 调度算法 -p timeout -M netmask
-A --add-service添加虚拟IP,也就是添加虚拟服务器
-E编辑已有的虚IP
-t|u|f分别表示虚拟服务器提供的是tcp,udp,被防火墙标记过的服务三种
-s 后面跟调度算法rr|wrr|lc|wlc|lblc|lblcr|dh|sh,默认为wlc
-p后面跟在某个realserver上的持续时间,同一个用户请求调度到同一个realserver处理
ipvsadm -D -t|u|f VIP:PORT 删除内核内指定虚拟服务器记录
ipvsadm -C 清楚内核内所有虚拟服务器记录
ipvsadm -S 保存虚拟服务器规则
ipvsadm -R 恢复虚拟服务器规则
ipvsadm -a|e -t|u|f VIP:PORT -r real-server-address:port -g|i|m -w weight
-a 在虚拟服务器规则添加一条real server记录
-e
-d 删除一条虚拟服务器中的real server记录
-r指定real server 的IP地址
-g 指定lvs的工作模式为直接路由模式DR模式
-i 指定lvs的工作模式为隧道模式
-m 指定lvs的工作模式为NAT模式
-w 指定real server的权重值
ipvsadm -Z -t|u|f VIP:PORT 虚拟服务器列表计数器清零(清空当前的连接数等)
ipvsadm --set tcp tcpfin udp 设置连接超时值
上方使用测试机器为2.60,这里不使用60做调度机器,更换2.71为调度机
调度机配置如下VIP192.168.2.100是其他配置在这里忽略掉
两台real server配置如下,这里使用了lo:1,是因为之前配置过其他VIP用了lo:0(忽略)
ifconfig lo:1 192.168.2.85 broadcast 192.168.2.85 netmask 255.255.255.255 up
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
配置完成浏览器测试访问192.168.2.85
补充:
ipvsadm -L -c 显示lvs目前的链接信息
ipvsadm -L --timeout 显示“”tcp tcpfin udp“”的timeout值
ipvsadm -L --daemon 显示同步守护进程状态
ipvsadm -L --stats 显示统计信息
ipvsadm -L --rate 显示速率信息
ipvsadm -L --sort 对虚拟服务器和真实服务器排序输出