博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务器-番外篇-LVS负载均衡
阅读量:6248 次
发布时间:2019-06-22

本文共 2827 字,大约阅读时间需要 9 分钟。

hot3.png

LVS负载均衡

(Linux Virtual Server)

命令描述和用法

描述:Linux虚拟服务器管理工具用法:ipvsadm   选项  服务器地址 -s 算法      ipvsadm   选项  服务器地址 -r 真实服务器地址[工作模式][权重]选项:        -A  添加一个虚拟服务,使用IP地址、端口号、协议来唯一定义一个虚拟服务        -E  编辑一个虚拟服务        -D  删除一个虚拟服务        -C  清空虚拟服务表        -R  从标准输入中还原虚拟服务规则        -S  保存虚拟服务规则至标准输出,输出的规则可以使用 -R 导入还原        -a  在虚拟服务中添加一台真实服务器        -e  在虚拟服务中编译一台真实服务器        -d  在虚拟服务中减去一台真实服务器        -L  显示虚拟服务列表        -t  使用 TCP 协议服务,该参数后需要加主机和端口信息        -s  指定 LVS 所采用的调度算法        -r  设置真实服务器IP地址和端口信息        -g  设置 LVS 工作模式为 DR 直连路由模式        -i  设置 LVS 工作模式为 TUN 隧道模式        -m  设置 LVS 工作模式为 NAT 地址转换模式        -w  设置指定服务器的权重        -c  查看连接状态,配合 -L 使用        -n  数字的输出格式

工作模式

NAT模式

网络地址转换模式,通过修改数据报头,使内网服务器映射到调度器公网IP,从而达到负载均衡的目的,调度器负载较大,客户端访问地址和回应源地址都是VIP地址。

TUN模式

隧道模式,将请求与响应数据分离,调度器只处理请求,转发给真实服务器,待数据处理完毕返回给客户端,所以客户端访问地址是VIP地址,回应源地址是后端真实服务器。

DR模式

直接路由模式,和TUN模式比较类似,但要求调度器和后端服务器必须要在同一局域网内VIP地址需要在调度器与后端所有服务器间共享,客户端访问地址和回应源地址都是VIP地址。

调度算法

简写 算法释义
RR 轮询算法
WRR 加权轮询算法
LC 最小连接调度算法
lblc 基于局部性的最少连接调度算法
lblcr 带复制的基于局部性的最少连接算法
DH 目标地址散列调度算法
SH 源地址散列调度算法

配置说明

==#建议做LVS负载均衡先绘出拓扑图,制作服务器IP表格再进行服务配置,模拟实验VIP和内网不要同一网段,建议关闭 NetWorkManager 服务==

安装ipvsadm工具

yum -y install ipvsadm

添加一个虚拟服务,使用TCP协议服务,端口为80,调度算法为轮询算法

ipvsadm -A -t 调度器公网IP:80 -s rr

添加一个真实的服务器IP并设置工作模式

ipvsadm -a -t 调度器公网IP:80 -r 真实服务器IP:80 -m#这里把需要负载均衡的几个真实服务器都加入进来

查看调度器状态

ipvsadm -Lnc

保存调度器规则

ipvsadm -Sn > 保存路径

还原调度器规则

ipvsadm -R < 备份的文件

开启路由转发功能

sed -i '/ip_forward/s/0/1/' /etc/sysctl.conf

重新加载sysctl文件

sysctl -p

启用服务并加入开启自启

systemctl start ipvsadmsystemctl enable ipvsadm

==#若服务启动不了,缺少/etc/sysconfig/ipvsadm文件,创建一个空白文件即可==

#合理利用实际环境使用不同的工作模式和调度算法

网卡添加VIP地址并修改网卡参数重启网络服务(网卡配置略)

cp /etc/sysconfig/network-scripts/ifcfg-eno16777736 /etc/sysconfig/network-scripts/ifcfg-eno16777736:0

编写并在WEB服务器上执行ARP抑制脚本 vim realserver.sh

#!/bin/bash  VIP=192.168.111.100  source /etc/rc.d/init.d/functions  case "$1" in  start)         ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP         /sbin/route add -host $VIP dev lo:0         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         echo "RealServer Start OK"         ;;  stop)         ifconfig lo:0 down         route del $VIP >/dev/null 2>&1         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 "RealServer Stoped"         ;;         *)         echo "Usage: $0 {start|stop}"         exit 1  esac  exit 0
==#若调度器对真实服务器都设置了VIP地址,可以通过arp_ignore参数和arp_announce参数来禁止对VIP地址的ARP响应,防止地址冲突==

重载sysctl配置

sysctl -p

转载于:https://my.oschina.net/zhaojunhui/blog/888114

你可能感兴趣的文章
在ORACLE里用存储过程定期分割表
查看>>
201621123069 《Java程序设计》第12周学习总结
查看>>
LINQ to Entity(摘录)
查看>>
【leetcode】124. Binary Tree Maximum Path Sum
查看>>
Flex实现 WebQQ那白云草地主题,云朵飘!
查看>>
安装meteor运行基本demo发生错误。
查看>>
Hibernate之QBC .HQL 查询
查看>>
当程序执行时间很快,控制台没显示执行代码和数据库
查看>>
为什么一般的性能测试要在局域进行?
查看>>
Linux 系统目录;
查看>>
[Android Studio 权威教程]断点调试和高级调试
查看>>
阶乘求和之最后一位
查看>>
Eclipse 乱码解决方案(UTF8 -- GBK)
查看>>
网络编程
查看>>
Debian安装Chrome
查看>>
民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?【转】...
查看>>
使用别的电脑连接另一台电脑当中的虚拟机中的kylin项目
查看>>
空间统计笔记之二(分布模式工具集,Analyzing Patterns Toolset)
查看>>
一定要为了成功才去创业吗?
查看>>
4.2 列表生成式、迭代器与生成器
查看>>