基于ubuntu的lvs负载均衡

转载 2011年01月12日 23:32:00

lvs是在linux操作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡。它是基于linux内核实现的。2.6.X内核默认集成了lvs模块。


lvs常用负载均衡的实现是基于ip协议的,所以一般称为ipvsipvs有三种实现方式,最常用、性能最好的是Direct routing(简称DR)。


Ubuntu9.10已经用了2.6的内核,所以不需要再编译内核了,为了检测一下,可以在命令行执行:modprobe -l | grep ipvs

会出现:

kernel/net/netfilter/ipvs/ip_vs.ko

kernel/net/netfilter/ipvs/ip_vs_rr.ko

kernel/net/netfilter/ipvs/ip_vs_wrr.ko

kernel/net/netfilter/ipvs/ip_vs_lc.ko

kernel/net/netfilter/ipvs/ip_vs_wlc.ko

kernel/net/netfilter/ipvs/ip_vs_lblc.ko

kernel/net/netfilter/ipvs/ip_vs_lblcr.ko

kernel/net/netfilter/ipvs/ip_vs_dh.ko

kernel/net/netfilter/ipvs/ip_vs_sh.ko

kernel/net/netfilter/ipvs/ip_vs_sed.ko

kernel/net/netfilter/ipvs/ip_vs_nq.ko

kernel/net/netfilter/ipvs/ip_vs_ftp.ko

说明内核已经集成了ipvs模块

我的机器三台机器分别是10.45.8.5,10.45.8.108,10.45.8.111。虚拟IP为10.45.8.200其中10.45.8.108作为负载均衡器使用,首先需要安装ipvsadm。

执行:apt-get install ipvsadm

安装完成后执行:ipvsadm

会看到提示:

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

说明已经安装成功。

接下来就是配置lvs,其实很简单,就是在负载均衡器建一个虚拟ip,然后用ipvsadm建立转发规则

配置虚拟IP:

ifconfig eth0:0 10.45.8.200 netmask 255.255.255.0 broadcast 10.45.8.200

echo "1">/proc/sys/net/ipv4/ip_forward (此指令暂没发现有啥用处)

使用ipvsadm安装LVS服务:

ipvsadm -A -t 10.45.8.200:http -s rr

增加真实服务器:

ipvsadm -a -t 10.45.8.200:http -r 10.45.8.111 -g -w 1

ipvsadm -a -t 10.45.8.200:http -r 10.45.8.5 -g -w 1

真实服务器的配置:

ifconfig lo:0 10.45.8.200 netmask 255.255.255.255 broadcast 10.45.8.200

route add -host 10.45.8.200 dev lo:0 (此指令暂没发现有啥用处)

echo "1">/proc/sys/net/ipv4/ip_forward (此指令暂没发现有啥用处)

我自己还尝试成功的指令:

LBServer:

ifconfig eth0:0 10.45.8.200 netmask 255.255.252.0 broadcast 10.45.8.200

真实服务器:

ifconfig eth0:0 10.45.8.200 netmask 255.255.252.0 broadcast 10.45.8.200

我只需要建立一个eth0:0就可以了。。。。。。与实际不同的在于子网掩码的第三段(255 vs 252)

在负载均衡服务器用ipvsadm --list查看:

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  test1-1149.local:www rr

  -> test3-63.local:www           Route   1      0          0         

  -> test2-64.local:www           Route   1      0          0  

接着是做ARP Hidden,不同的linux系统指令有所区别,Ubuntu系统的指令为:

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

只需要在真实服务器安装个apache或者tomcat,把默认页面修改一下方便区别是哪台服务器即可。用浏览器先访问真实服务器的IP,如果浏览器正常显示对应的默认页面说明web服务正常。

这时就可以访问虚拟IP(10.45.8.200)咯,然后不停地刷新,会发现lvs已经成功的将请求转发了。当然,我发现IE在半分钟内刷新的话基本是仍然连接到之前的服务器,建议是开几个IE窗口,然后挨个刷新就可以看到变化呢。

最后可以在负载均衡服务器上用ipvsadm --list查看:

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  test1-1149.local:www rr

  -> test3-86.local:www           Route   1      0          5         

  -> test2-87.local:www           Route   1      1          4  

确实大功告成。不过如果机器重启的话,这些配置就没了,需要重新设置哦,另外还有个ipvsadm -C的指令是用于清除ipvsadm配置的,可能会有用处。

相关文章推荐

LVS负载均衡在Ubuntu环境下部署详解

一、本地环境介绍:负载均衡的三台机器均为Ubuntu Server 14.04 64位系统,内核中已集成ipvs模块( modprobe -l | grep ipvs 查看 )。为演示LVS负载均衡后...

ubuntu安装nginx及负载均衡配置

所有的安装包可以去以下地址下载,或者自行去官网下载,下面都有介绍. 所有安装包地址:http://download.csdn.net/detail/carboncomputer/9238037 原文地...

ubuntu LVS+keepalived 笔记

环境:虚拟机系统:Ubuntu 12.04 hostname ip LVSMaster eth0:192.168.31.198eth1:10.10.100.100 LVS...

关于lvs均衡负载socket服务的配置实现

lvs均衡的机制是基于IP层面的因此,所有的高层协议都是可以被均衡负载的。 其实其他配置都是差不多的,就是在monitor script上一定要注意加200%的注意。 我的一个socket服务,连上端...
  • cnhome
  • cnhome
  • 2010-04-19 17:46
  • 3299

java Socket通信(一)

java socket通信已经被封装好了主要使用两个类ServerSocket 和Socket 首先写一个1v1的通信 服务端 /** * */ package com.dnion.s...

webService学习(三)—— 部署webService到tomcat上

webService学习(三)—— 部署webService到tomcat上 本文阅读前提: 1、能够部署本地的webService 2、能够编写客户端调用webService。(可以参考文章:htt...

LVS:三种负载均衡方式比较+另三种负载均衡方式

什么是LVS?  首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好...

基于ubuntu的lvs负载均衡

lvs是在linux操作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡。它是基于linux内核实现的。2.6.X内核默认集成了lvs模块。lvs常用负载均衡的实现是基于ip协议的,所以一般称为i...

linux lvs负载均衡

  • 2014-08-23 22:30
  • 1.03MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)