注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

LVS中用windows做RealServer  

2014-04-01 10:46:29|  分类: 网络技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率(在DR模式下),将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,LVS集群采用三层结构,其主要组成部分为:

 

  A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

 

  B、服务器池(server pool),是一组真正执行客户请求的服务器,即realserver,执行的服务有WEB、MAIL、FTP和DNS等。

 

  C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

LVS的IP负载均衡技术实现:

  目前IP负载均衡技术是在负载调度器的实现技术中效率最高的。LVS集群中实现的三种IP负载均衡技术,分别是:

     Virtual Server via Network Address Translation(VS/NAT):也有说端口映射的,其目标是将一组服务器构成一个高性能的、高可用的虚拟服务器。因为这种技术容易形成单点故障,从而造成网路无法访问,并且存在带宽瓶颈。所以LVS又提供了下面两种实现。

 

     Virtual Server via IP Tunneling(VS/TUN):通过IP隧道实现虚拟服务。

     Virtual Server via Direct Routing(VS/DR):直接路由实现虚拟服务器的方法(负载能力最强),本文搭建的就是DR模式。

 

Load balancer:172.16.3.11 ubuntu1

            172.16.3.12 ubuntu2

RealServer:   172.16.3.1

             172.16.3.4

Load balancer OS:ubuntu server 10.04

RealServer OS:windows server 2003 sp2

 

以下在虚拟机下测试成功

 

首先配置RealServer

1、控制面板—添加硬件—添加网络适配器--Microsoft Loopback Adapter

2、修改IP

IP ADDRESS:172.16.3.1

NETMASK:255.255.255.0

GATEWAY:172.16.0.1

DNS:

3、修改注册表

查找172.16.3.1修改掩码值为255.255.255.255,F3查找下一个,共有4处2处须修改,再禁用启动网卡

4、查看虚拟出来的网卡IP

 

再来配置Load balancer

1、  安装keepalived

Sudo apt-get install keepalived –y

2、创建配置文件,贴出如下

cc1@ubuntu1:~$ cat /etc/keepalived/keepalived.conf

#Configuration File for keepalived

 

global_defs {

 

 

 

   router_id ubuntu1                

 

vrrp_sync_group vg1 {

 

   group {

 

      vip_1

 

   }

 

}

 

 

 

vrrp_instance VIP_1 {

 

    state MASTER               

 

    interface eth0

 

    virtual_router_id 51

 

    priority 100   

 

    advert_int 1

 

    authentication {

 

        auth_typePASS

 

        auth_pass 1111

 

    }

 

    virtual_ipaddress {

 

        172.16.3.13/21 dev eth0 scop global   

 

       

 

    }

 

}

 

 

 

virtual_server 172.16.3.13 80 {

 

    delay_loop 6                  

 

    lb_algo rr                  

 

    lb_kind DR                  

 

   persistence_timeout 60        #60秒内来自同一IP地址的请求将被送到同一台服务器(在真实系统使用中,持久服务时间一般设置好几个小时)

 

    protocol TCP                

 

 

 

    real_server 172.16.3.1 80 {

 

        weight 1               

 

        TCP_CHECK {

 

        connect_timeout 10       

 

        nb_get_retry 3

 

        delay_before_retry 3

 

        connect_port 80

 

        }

 

    }

 

    real_server 172.16.3.4 80 {

 

        weight 1

 

        TCP_CHECK {

 

        connect_timeout 10

 

        nb_get_retry 3

 

        delay_before_retry 3

 

        connect_port 80

 

        }

 

     }

 

}

---------------------------------------------------------------------

cc2@ubuntu2:~$ cat /etc/keepalived/keepalived.conf

 

global_defs {

 

 

 

   router_id ubuntu2                

 

vrrp_sync_group vg1 {

 

   group {

 

      vip_1

 

   }

 

}

 

 

 

vrrp_instance VIP_1 {

 

    state BACKUP               

 

    interface eth0

 

    virtual_router_id 51

 

    priority 99   

 

    advert_int 1

 

    authentication {

 

        auth_typePASS

 

        auth_pass 1111

 

    }

 

    virtual_ipaddress {

 

        172.16.3.13/21 dev eth0 scop global   

 

       

 

    }

 

}

 

 

 

virtual_server 172.16.3.13 80 {

 

    delay_loop 6                  

 

    lb_algo rr                  

 

    lb_kind DR                  

 

   persistence_timeout 60     

 

    protocol TCP                

 

 

 

    real_server 172.16.3.1 80 {

 

        weight 1               

 

        TCP_CHECK {

 

        connect_timeout 10       

 

        nb_get_retry 3

 

        delay_before_retry 3

 

        connect_port 80

 

        }

 

    }

 

    real_server 172.16.3.4 80 {

 

        weight 1

 

        TCP_CHECK {

 

        connect_timeout 10

 

        nb_get_retry 3

 

        delay_before_retry 3

 

        connect_port 80

 

        }

 

     }

 

}

 

再修改/etc/sysctl.conf文件如下:

 

net.ipv4.ip_forward=0

 

net.ipv4.conf.eth0.arp_ignore=1

 

net.ipv4.conf.eth0.arp_announce=2

 

net.ipv4.conf.all.arp_ignore=1

 

net.ipv4.conf.all.arp_announce=2

 

3、  安装ipvsadm

Sudo dpkg-reconfigure ipvsadm

此时跳出安装界面

No—master—ok (另外一台选择backup)

4、  配置

sudo ifconfig eth0:0 172.16.3.13 netmask 255.255.255.255 broadcast 172.16.3.13

sudo route add –host 172.16.3.13 dev eth0:0

sudo ipvsadm –A –t 172.16.3.13:80 –s rr

sudo ipvsadm –a –t 172.16.3.13:80 –r 172.16.3.1 –g

sudo ipvsadm –a –t 172.16.3.13:80 -r 172.16.3.4 –g

sudo ipvsadm –save

注意eth0:0为临时配置,请写入/etc/network/interfaces

auto eth0:0

iface eth0:0 inet static

address 172.16.3.13

netmask 255.255.255.255

修改/etc/sysctl.conf

net.ipv4.ip_forward=0

net.ipv4.conf.all.send_redirects=1

net.ipv4.conf.default.send_redirects=1

net.ipv4.conf.eth0.send_redirects=1

sudo sysctl –p

5、  启动

启动sudo /etc/init.d/keepalived start前先装下apache,keepalived要使用80端口

启动后可查看进程

Ps aux|grep keepalived

查看ipvsadm

sudo ipvsadm –ln

  评论这张
 
阅读(224)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016