Ubuntu 上ipvsadm负载均衡

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,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部