LVS负载均衡-集群搭建
作者:互联网
目录
一、LVS是什么?
1、LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统,可伸缩网络服务的几种结构。lvs 负载均衡根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统。
2、实现虚拟网络服务的主要技术中,IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换将一组服务器构成一个高性能的、高可用的虚拟服务器,即VS/NAT技术;通过IP隧道实现虚拟服务器的方法VS/TUN ;通过直接路由实现虚拟服务器的方法VS/DR。它们可以极大地提高系统的伸缩性,这三种技术是LVS集群中实现的三种IP负载均衡技术。
3、LVS工作原理:客户端访问公司的外部负载均衡服务器,则用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器。终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,所以无论用户访问的是哪台真实服务器,得到的服务内容都是相同的。
二、实验环境
1.封装虚拟机
首先用镜像的方式创建一个新的虚拟机
真机挂载镜像
进入系统后关闭虚拟机的防火墙和selinux
禁用NetworkManage的网络管理方式
下图为真机的IP
配置虚拟机的网络,修改hostname为server1
设定成功
编辑/etc/hosts域名解析文件
以上设定完毕之后,真机、虚拟机即可Ping通
2.虚拟机快照
配置server1的软件仓库
安装所需工具
关机!!(清理和压缩磁盘文件操作必须在关机之后做!)
此时server1的磁盘文件为21G,
清理磁盘:virt-sysprep -d rhel7.7-small
压缩操作,将原镜像文件压缩成名为small.qcow2的文件
此时母盘仅546M
用清理和压缩之后得到的磁盘文件(母盘)创建虚拟机快照文件(server1 、2、3)
使用导入的方式添加快照文件,得到三台虚拟机。同样的,修改各虚拟机的主机名、网卡配置文件
三、进行lvs集群的搭建
真机使用ssh命令,连接三台虚拟机,server1作为DR(调度器),server2、3作为RS(真实服务器)。
工作过程:C(Client) ----> DR —> RS ----> C(Client)。
原理:LVS通过控制IP来实现负载均衡。ipvsadm是其具体的实现模块。
ipvsadm的主要作用:安装在调度器上面,在调度器上虚拟一个对外访问的IP(VIP)。用户访问VIP,到达调度器,调度器根据一定的规则选择一个真实服务器,处理完成后然后返回给客户端数据。
server1安装ipvsadm(用于管理LVS的策略规则)
书写策略:在server1上虚拟一个对外访问的IP:172.25.36.100(vip),即虚拟服务的ip地址。
ipvsadm -A 添加规则;-t tcp协议;-s 调度;rr 轮叫(调度方式);-a向tcp虚拟服务添加 -r real server;-g 直连即DR模式
ipvsadm -ln:查看当前连接情况(-ln不用解析),Forward 转发方式,当前是路由转发;Weight 权重;
ActiveConn 当前活跃的连接数;InActConn 当前不活跃的连接数;
server2和server3安装httpd服务,并开启
此时真机使用curl 172.25.36.2可以显示server的发布页面;但curl 172.25.36.100没有反应,这是因为LVS-DR集群类型要求,当用户向vip发起请求时,调度器和真实服务器上必须都要有vip,因此需要给server2和server3添加虚拟IP。
分别给server2和server3添加虚拟IP
此时真机使用curl 172.25.0.100,出现轮叫的显示RS的Apache发布页面的内容
ARP协议是将IP地址映射为MAC地址的协议,其在协议上使用ARP请求及ARP应答报文来实现,真机查看vip所对应的MAC,此时正是server1的MAC
当真机执行arp -d 删除指定的虚拟IP时,此时不能过滤得到172.25.36.100的MAC地址。
但Ping之后,又可以得到。此时vip所对应的MAC,此时是server2的MAC
curl 172.25.36.100,只出现了server2的发布页面,说明此时客户端向vip发起请求时,并没有经过调度器,而是直接到达了真实服务器server2。
因此应该给server2和server3安装arptables(用于管理内核中的ARP包过滤规则表),设定APR配置规则,因为DR模式要求服务器节点应该禁用设备的APR响应
arptable_filter 只有一个表 filter ,不指定 -t 表名 时默认就是 filter 表。
filter 表有两个链,一个是INPUT,表示外面发进来的 ARP 包;另外一个是 OUTPUT,表示本机发出的 ARP 包。
-A:向规则链中追加规则;
-d:指定要匹配ARP包的目的IP地址;
-j:指定满足规则的添加时的目标;
-s:指定要匹配ARP包的源ip地址;
以下命令表示:当数据包的目的地址是172.25.36.100时就丢弃该数据包,当从本机发出的数据包IP是172.25.36.100时,伪装成是IP是172.25.36.2。设定完毕,保存arptables规则,此时重启arptables服务后,即可看到所添加的规则。
将server2的arptables规则复制给server3,server3进行相应的修改
设定完毕,server3也可看到所添加的规则
此时当真机执行arp -d 删除指定的虚拟IP,ping 之后,过滤得到172.25.36.100的MAC地址又是server1的MAC地址
使用curl 172.25.36.100,又出现轮叫
若server1也安装了httpd服务
但curl 172.25.36.100不会访问server1的80
标签:负载,LVS,IP,虚拟机,server1,集群,172.25,服务器 来源: https://blog.csdn.net/qq_38664479/article/details/118899818