LVS-DR(单个LVS Router)

来源:互联网 发布:护眼软件 编辑:程序博客网 时间:2024/05/16 11:24

目标:

负载均衡器LVS(ip为:10.12.121.43,虚拟IP为:10.12.121.155);

实机两台分别为rs2(ip为:10.12.121.56,rs3(ip10.12.121.28);

这三台机器都安装一块网块。在一客户端cs(ip为:192.168.3.1)上访问http://10.12.121.155,会轮流访问两台实机,则实验成功。

 

1,配置LVS机器:

ubuntu server 10.4 默认安装是没有安装ipvsadm软件包的,在网上看了很多教程,都要编辑内核,但现在2.6.32内核已经不需要再编辑了。

#sudo apt-get install ipvsadm

 

会提示 please run dpkg –reconfigure ipvsadm

#sudo dpkg–reconfigure ipvsadm (dpkg-reconfigure是连到一起中间没空格)

步骤一:选否

步骤二:选none

步骤三:直接确定

 

2、配置 ipvsadm文件,sudo vi /etc/init.d/ipvsadm

 

插入如下内容:

sudo ipvsadm -C //清除IPVS

 

sudo ifconfig eth0:0 10.12.121.155 netmask 255.255.255.255 broadcast 10.12.121.155

sudo route add -host 10.12.121.155 dev eth0:0

 

sudo ipvsadm -A -t 10.12.121.155:80 -s rr

-Aadd virtual service with options

-t : service-address is host[:port]

  (-s : scheduler,one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)

sudo ipvsadm -a -t 10.12.121.155:80 -r 10.12.121.56 -g

-a : add real server with options

  (-g : gatewaying (direct routing) (default))

sudo ipvsadm -a -t 10.12.121.155:80  -r 10.12.121.28 -g

sudo ipvsadm -save

 

修改 ipvsadm文件后,做一次sudo service ipvsadm restart

 

 

 

3、修改sysctl.conf文件,sudo vi /etc/sysctl.conf

插入内容如下:

#virtual sever

net.ipv4.ip_forward=0

//值为0,表示禁止数据包转发,1表示允许。因为DirectorRealServer是同一个网段,无需开启转发。(http://blog.sina.com.cn/s/blog_a94d887a01017b01.html

net.ipv4.conf.all.send_redirects=1

//send_redirects 控制 IPv4 是否发送 ICMPv4 重定向消息。0(禁用);1(启用)

net.ipv4.conf.default.send_redirects=1

net.ipv4.conf.eth0.send_redirects=1

#end

保存一下sudo sysctl –p

 

4、配置实机rs2,rs3为如下

#sudo ifconfig lo:0 10.12.121.155 netmask 255.255.255.255 broadcast 10.12.121.155

//lo: local的简写,一般指本地环回接口,就是自己访问自己的接口(http://soft.chinabyte.com/os/327/11628327.shtml

#sudo route add -host 10.12.121.155 dev lo:0

 

 

修改/etc/sysctl.conf

 

net.ipv4.ip_forward=0

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

 

#sudo sysctl –p

最后:

rs2rs3/var/www下的index.html的内容修改为this is rs2”,”this is rs3”,当访问时区别访问的是那台机器,查看实验是否成功。

在实验过程中:刚开始没有修改实机rs2,rs3下的/etc/sysctl.conf,在访问http://10.12.121.155 时,有时能轮流的访问rs2,rs3,有时不能,修改后,发现效果很好,达到实验目标。为什么要修改可以参考以下http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.arp_problem.html的内容

 

 

 

 

 

 

 

 

 

 

  LVS-DR(主备LVS Router)

目标:

负载均衡器:

Master LVS(ip为:10.12.121.43,虚拟IP为:10.12.121.155;

Backup LVS(ip为:10.12.121.51,虚拟IP为:10.12.121.155;

实机两台:

rsip为:10.12.121.56;

rs3(ip10.12.121.28;

这三台机器都安装一块网块。在一客户端cs(ip10.12.121.44)上访问http://10.12.121.155,会轮流访问两台实机,则实验成功

 

1、在Master LVSBackup LVS上操作如下

1)、安装 keepalived

sudo apt-get install keepalived

 

2)、安装ipvsadm

sudo apt-get install ipvsadm

#sudo dpkg–reconfigure ipvsadm (dpkg与-reconfigure是连到一起中间没空格)

步骤一:选否

步骤二:选Master//其中作为Active LVS Router的设为Master,备份的设为Backeup

步骤三:直接确定

 

(3)、配置keepalived.conf文件,/etc/keepalived/keepalived.conf

内容如下:

global_defs {

   notification_email {

     hawei@360buy.com

   }

   notification_email_from hawei@d360buy.com

   smtp_server 211.151.32.10

 #报错发送给至此邮箱

   smtp_connect_timeout 30

   router_id LVS_DEVEL #为了标识当前节点,当然两个节点的此项设置可相同,也可不相同

}

 

vrrp_instance VI_1 {

   state MASTER#备份服务器上将MASTER改为BACKUP

    interface eth0          #绑定虚拟IP的网络接口,这个还是看MASTERBACKUP的实际以太网接口陪,一般都是eth0

    virtual_router_id 51  #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP

    priority 100               #主节点的优先级(1-254之间),备用节点必须比主节点优先级低

    advert_int 1              #组播信息发送间隔,两个节点设置必须一样

    authentication {        #设置验证信息,两个节点必须一致

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {   #指定虚拟IP, 两个节点设置必须一样

        10.12.121.155

    }

}

 

virtual_server 10.12.121.155 80 {

    delay_loop 6               #健康检查时间间隔,单位是秒。

    lb_algo wrr                 #负载均衡调度算法,互联网应用常使用wlcrr

    lb_kind DR                 #负载均衡转发规则。一般包括DRNATTUN3种。

    persistence_timeout 2    

    protocol TCP               

    real_server 10.12.121.56 80 {

        weight 3

        TCP_CHECK {      #Tcp检查

       connect_timeout 10

        nb_get_retry 3      #重连次数

        delay_before_retry 3 #重连间隔时间

        connect_port 80       #连接端口

        }

     }

   real_server 10.12.121.28 80 {

        weight 3

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

     }

}

 

Backup LVS Router相比,值需要修改state MASTER

 

 

2、配置实机rs2,rs3为如下

#sudo ifconfig lo:0 10.12.121.155 netmask 255.255.255.255 broadcast 10.12.121.155

#sudo route add -host 10.12.121.155 dev lo:0

 

修改/etc/sysctl.conf

net.ipv4.ip_forward=0

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

 

#sudo sysctl –p

 

3、查看日志

1)、tail -f /var/log/messages

2)、如果第一种方法不可行,可通过如下方法

/etc/rsyslog.d/50-default.conf

插入:local0.*                        /var/log/keepalived.log

然后:/etc/init.d/rsyslog restart

sudo keepalived -d -D -S 0 启动keepalived,可以通过查看ps确定是否启动

然后查看日志:tail -f var/log/keepalived.log

4、测试

测试1{主要测试lvs}:访问虚拟IP是否可以访问真实服务器,是否轮询real server

测试2{主要测试keepalived}lvs服务器的HA,当ipvsadm master挂掉后,ipvsadm backup会不会接管虚拟IP

测试3{测试backuplvs}:使用客户端访问现在虚拟ip,查看是否一切正常

 

 

 

郑州就维 www.zzjiuwei.com

0 0