lvs(linux virtual server)linux虚拟服务
简介:lvs是用户访问后台web服务器,给用户的感觉是透明的,其实后台的lvs负载均衡调度器,根据(算法)把请求转接给负载最小的服务器,服务器处理数据把返回的结果给lvs(负载均衡服务器),最后lvs,把请求转接给用户;
- 基于net的lvs负载均衡服务器:
就是lvs需要两个ip,一个ip对外接受请求数据,另一个ip用来接受服务器发送的数据 - 基于TUN的lvs负载均衡器
如果后台服务器大于10个,调度器就会出现瓶颈,而TUN的思路是,将请求和相应数据分离,让lvs调度器仅仅处理数据的请求,而真实的服务器把数据直接通过互联网发给用户 - 基于DR的lvs负载均衡
tun模式下需要均衡器与服务器创建ip隧道进行连接,而DR模式是让lvs负载均衡器直接通过路由与服务器进行连接,缩短lvs连接服务器的相应的时间
lvs负载均衡调度算法
- 轮训算法:一次按循环方式把请求调度到服务器,调度器会把请求平均分配 给每个真实的服务器
- 加权轮训:考虑每台服务器的性能,服务器a的权值是1,服务器b的权值是2,lvs给b的请求是a的二倍
- 最小连接调度算法:把请求调度到连接数量最小的服务器上
- 目标地址散列调度算法:通过散列把目标io与服务器之间建立联系,如果服务器负载过高,则把请求发给固定的服务器
- 原地址散列调度算法: 根据原地址散列动态分布服务器资源
lvs已经集成到linux的内核中,但是客户端需要安装ipvsadm工具,进行管理
man ipvsadm
- -A 添加一个虚拟服务
- -E 编辑虚拟服务
- -D 删除一个虚拟服务
- -C 清楚虚拟服务
- -R 恢复一个虚拟服务,从文件中
- -S 保存虚拟服务到一个文件
- -a (服务器)添加一个真实的服务器给虚拟服务
- -e (服务器)编辑一个服务器在虚拟服里
- -d (服务器)删除一个服务器在虚拟服务里
- -L 列出所有的虚拟服务器
参数 - -t 使用tcp协议添加服务
- -u 使用udp添加服务
- -s 添加lvs与虚拟服务器的调度算法
- -M 添加的网关
- -r一个真正的服务器地址
- -m 设置lvs工作模式为net转发
- -w 设置服务器的权重
- -g 设置lvs工作模式为DR转发
- -i 设置lvs工作模式为tun转发
- -6 使用ipv6协议
ipvsadm -A -t 207.1.1.110:80 -s rr
ipvsadm -a -t 202.1.1.110:80 -r 2.2.2.1:80 -m
ipvsadm -a -t 202.1.1.110:80 -r 2.2.2.2:80 -m
ipvsadm -a -t 202.1.1.110:80 -r 2.2.2.3:80 -m
ipvsadm -a -t 202.1.1.110:80 -r 2.2.2.4:80 -m
ipvsadm -a -t 202.1.1.110:80 -r 2.2.2.5:80 -m
ipvsadm -L查看虚拟服务器
ipvsadm -S >/tmp/ip-vs.bak 备份文件
ipvsadm -C 清楚规则
ipvsadm -R </tmp/ip-vs.bak 恢复规则
ipvsadm -E -t 172.0.0.123:80 -s wrr 修改调度算法