Ubuntu 上ipvsadm负载均衡

简介:

Ubuntu 上ipvsadm负载均衡(DR模式,以22端口为例)

说明:3台服务器,ip分别为:10.0.1.2  10.0.1.3  10.0.1.4  虚拟ip:10.0.1.10


ipvsadm服务器(10.0.1.2)

$ sudo apt-get install ipvsadm

$ sudo ifconfig eth0:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10

$ sudo ip a (查看设置是否生效)

$ sudo route add -host 10.0.1.10 dev eth0:0

$ sudo route -n  (查看设置是否生效)

$ sudo ipvsadm -A -t 10.0.1.10:22 -s rr   (注rr为轮询模式)

$ sudo ipvsadm -a -t 10.0.1.10:22 -r 10.0.1.3:22 -g

$ sudo ipvsadm -a -t 10.0.1.10:22 -r 10.0.1.4:22 -g

$ sudo ipvsadm --save  (保存ipvsadm设置)

$ sudo ipvsadm -l (查看ipvsadm设置)

$ sudo ipvsadm -C  (清除ipvsadm设置)

$ sudo ipvsadm -a  (增加real服务器,如:$ sudo ipvsadm -a -t 10.0.1.10:22 -r 10.0.1.3:22 -g)

$ sudo ipvsadm -d   (删除real服务器,如:$ sudo ipvsadm -d -t 10.0.1.10:22 -r 10.0.1.3:22)

设置开机自启动:

$ sudo vi /etc/rc.local  (在exit 0上面)

按a或i进入编辑模式

ipvsadm -A -t 10.0.1.10:22 -s rr   (注rr为轮询模式)

ipvsadm -a -t 10.0.1.10:22 -r 10.0.1.3:22 -g

ipvsadm -a -t 10.0.1.10:22 -r 10.0.1.4:22 -g

ipvsadm --save

按Esc键退出编辑模式

:wq (保存并退出)



ipvsadm客户端(10.0.1.3)


$ sudo ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10

$ sudo ip a (查看设置是否生效)

$ sudo route add -host 10.0.1.10 dev lo:0

$ sudo route -n  (查看设置是否生效)

$ sudo echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

$ sudo echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

$ sudo echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

$ sudo echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

设置开机自启动:

$ sudo vi /etc/rc.local  (在exit 0上面)

按a或i进入编辑模式

ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10

按Esc键退出编辑模式

:wq (保存并退出)


ipvsadm客户端(10.0.1.4)


$ sudo ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10

$ sudo ip a (查看设置是否生效)

$ sudo route add -host 10.0.1.10 dev lo:0

$ sudo route -n  (查看设置是否生效)

$ sudo echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

$ sudo echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

$ sudo echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

$ sudo echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

设置开机自启动:

$ sudo vi /etc/rc.local  (在exit 0上面)

按a或i进入编辑模式

ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10

按Esc键退出编辑模式

:wq (保存并退出)


验证:


putty或ssh 10.0.1.10  (第一次登录的是10.0.1.3,第二次登录的是10.0.1.4)



ipvsadm调度算法:


一、轮叫调度(Round-Robin Scheduling) rr
轮叫调度(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

二、加权轮叫调度(Weighted Round-Robin Scheduling) wrr
加权轮叫调度(Weighted Round-Robin Scheduling)算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

三、最小连接调度(Least-Connection Scheduling) lc
最小连接调度(Least-Connection Scheduling)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。

四、加权最小连接调度(Weighted Least-Connection Scheduling)wlc
加权最小连接调度(Weighted Least-Connection Scheduling)算法是最小连接调度的超集,这个是ipvsadm的默认算法。各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/1439816如需转载请自行联系原作者

yangzhimingg
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
负载均衡 算法 网络协议
Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】 推荐
1、环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2   初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3   初始接管VIP:14.17.64.14 真实web服务器IP:14.17.64.4-12 实现效果:去往14.17.64.13或14的报文,转发给14.17.64.4-12中的一台服务器处理,实现负载均衡。
1576 0
|
26天前
|
Ubuntu NoSQL 关系型数据库
Ubuntu系统下安装常用软件
Ubuntu系统下安装常用软件
57 0
Ubuntu系统下安装常用软件
|
1月前
|
Ubuntu Linux C语言
Ubuntu下安装vscode,并解决终端打不开vscode的问题
Ubuntu下安装vscode,并解决终端打不开vscode的问题
146 0
|
1月前
|
Ubuntu Docker 容器
如何在Ubuntu上安装Docker?
【2月更文挑战第10天】
256 0
|
2月前
|
负载均衡 Ubuntu 应用服务中间件
|
27天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 中apt 安装MySQL数据库
Ubuntu 中apt 安装MySQL数据库
68 0