基于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配置的,可能会有用处。

在ubuntu上面配置nginx实现反向代理和负载均衡

这我们都知道Nginx这款服务器,它可以用来做反向代理服务器,也可以做负载均衡。关于nginx(要读成 engine x),有兴趣的朋友可以多看一下官方网站:http://nginx.org/ 通过N...

linux(ubuntu)下搭建nginx,tomcat负载均衡环境搭建

随着用户访问量增加以及单台服务器处理能力瓶颈,集群可以很好的解决这个问题,集群也可以保证在单台服务器宕机系统也可以正常运行。负载均衡就是让一个集群(多台机器处理相同的业务)的机器的使用率尽可能平均。比...

Ubuntu下基于Nginx实现Tomcat集群负载均衡

Nginx是一款HTTP和反向代理服务器,有关它的介绍可以到网上搜一下,很多很多,不再累述。这里,我们记录一下Nginx的安装过程,以及如何配置Nginx来实现Tomcat集群的负载均衡。   基...
  • shirdrn
  • shirdrn
  • 2011年10月05日 22:01
  • 9116

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

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

ubuntu安装nginx及负载均衡配置

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

Ubuntu LVS配置

UbuntuLVS配置 1.      拓扑结构 图1. 拓扑图 2.      角色描述 LVS-DR-Master: LVS-DR负载均衡主服务器; LVS-DR-Slave0: 从服务器0...

ubuntu LVS+keepalived 笔记

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

教程 | 写给Python程序员的Scala入门教程

统计网导读 本文从安装、基础数据类型、运算符、函数等七个方面系统介绍了Scala的语言特性。不仅是Python程序员,任何有编程经验或者希望入门的人都可以看看,对Scala做一个基础的认识。 随...

Kafka副本同步机制理解

构建操作简单的分布式系统,尤其是对微妙的行为,最好的一门艺术是经常收集生产环境经验。Apache Kafka的普及在很大程度上归功于它的设计和操作简单。Apache Kafka更微妙的特性之一是它的复...

[高可用]Ubuntu下LVS + Keepalived 实现SuperMap iServer高可用负载均衡实现

题记前面已经介绍了实现MySQL和RabbitMQ的集群部署,但是一个OpenStack环境的高可用性,简单的说就是任何一个节点的高可用性,每个节点又包括不同的服务和组件,这里面我们先不具体谈及细节,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于ubuntu的lvs负载均衡
举报原因:
原因补充:

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