免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1048 | 回复: 0
打印 上一主题 下一主题

基于NAT、DR方式的LVS负载均衡简记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-21 18:42 |只看该作者 |倒序浏览
基于NAT、DR方式的LVS负载均衡简记

2008-11-22 TsengYia#126.com

################################################################
系统环境:RHEL5 [ 2.6.18-8.el5xen ]
软件环境:
    ipvsadm-1.24-8.1.i386
    httpd-2.2.3-6.el5

    在RHEL5系统中,默认已编译好实现IP Virtual Server功能的内核模块,可以使用“modprobe -l | grep ipvs”查看。
##########################################################################

◆ 安装ipvsadm管理工具

shell> mount /dev/cdrom /media/cdrom        #//挂载RHEL5安装光盘
shell> rpm -ivh /media/cdrom/Cluster/ipvsadm-1.24-8.1.i386.rpm


-------------------------------------------------------------
◆ 方式一:基于NAT(地址转换)的负载均衡



    基于地址转换的方式,LVS主节点负责入站数据的负载分配(按一定算法分流到后端的各内容服务器),各内容服务器的出站数据也经过LVS主节点。通常LVS主节点作为各内容服务器的网关。

    1、配置Linux Virtual Server主节点
      1) 修改proc参数
shell> vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
shell> sysctl -p

      2) 添加负载均衡规则
shell> ipvsadm -A -t 173.17.17.1:80 -s rr        #//添加VirtIP虚拟IP,使用轮询算法(Round Robin)分配负载
shell> ipvsadm -a -t 173.17.17.1:80 -r 192.168.1.17:80 -m -w 1 -p 60       #//-m 表示使用nat方式
shell> ipvsadm -a -t 173.17.17.1:80 -r 192.168.1.18:80 -m -w 1 -p 60       #//-w 1 表示服务器的权重
shell> ipvsadm -a -t 173.17.17.1:80 -r 192.168.1.19:80 -m -w 1 -p 60       #//-w 0 将该rserver设置为停止状态,以便于维护
shell> ipvsadm -a -t 173.17.17.1:80 -r 192.168.1.20:80 -m -w 1 -p 60       #//-p 60 设置连接保持超时(同一客户端连接同一个r-server)

      3) 保存规则并设置服务状态(LVS测试正常后再进行此步骤)
shell> ipvsadm-save > /etc/sysconfig/ipvsadm
shell> chkconfig --level 35 ipvsadm on

    2、配置各Real Server节点(以Web服务为例)
        配置多台主机提供httpd服务,网关指向LVS主节点(192.168.1.1),各服务器的Web服务保持镜像同步(过程略)。
        ----测试阶段可以使用不同内容的web服务,以查看效果。


-------------------------------------------------------------
◆ 方式二:基于DR(直接路由)的负载均衡



    基于直接路由的方式,LVS主节点只负责入站数据的负载分配(按一定算法分流到后端的各内容服务器),各内容服务器的出站数据经各自的网关服务器发往Internet(无需再经过LVS主节点)。

    1、配置Linux Virtual Server主节点
      1) 修改proc参数
shell> vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
shell> sysctl -p

      2) 添加负载均衡规则
shell> ipvsadm -A -t 173.17.17.1:80 -s rr        #//添加VirtIP虚拟IP,使用轮询算法(Round Robin)分配负载
shell> ipvsadm -a -t 173.17.17.1:80 -r 173.17.17.17:80 -g -w 1 -p 60       #//-g 表示使用dr方式
shell> ipvsadm -a -t 173.17.17.1:80 -r 173.17.17.18:80 -g -w 1 -p 60
shell> ipvsadm -a -t 173.17.17.1:80 -r 173.17.17.19:80 -g -w 1 -p 60
shell> ipvsadm -a -t 173.17.17.1:80 -r 173.17.17.20:80 -g -w 1 -p 60

      3) 添加虚拟IP地址
shell> vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BROADCAST=173.17.17.255
IPADDR=173.17.17.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
shell> service network restart

      4) 保存规则并设置服务状态(LVS测试正常后再进行此步骤)
shell> ipvsadm-save > /etc/sysconfig/ipvsadm
shell> chkconfig --level 35 ipvsadm on

    2、配置各Real Server节点(以Web服务为例)
        配置多台主机提供httpd服务,各服务器保持镜像同步(过程略)。
        ----测试阶段可以使用不同内容的web服务,以查看效果。

      1) 修改proc参数
shell> vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
shell> sysctl -p

      2) 添加虚拟地址及路由记录
shell> vi /opt/add_vip.sh
#!/bin/bash
ifconfig lo:0 173.17.17.1 netmask 255.255.255.255 up
route add -host 173.17.17.1 dev lo:0
shell> chmod +x /opt/add_vip.sh
shell> /opt/add_vip.sh
shell> echo "/opt/add_vip.sh"  >> /etc/rc.local

-------------------------------------------------------------
◆ 验证LVS
    1、在173.17.17.1服务器上执行“ipvsadm -L -n”命令,
    基于NAT方式时显示如下:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  173.17.17.1:80 rr
  -> 192.168.1.17:80             Masq    1      0          0
  -> 192.168.1.18:80             Masq    1      0          0
  -> 192.168.1.19:80             Masq    1      0          0
  -> 192.168.1.20:80             Masq    1      0          0
    基于DR方式时显示如下:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  173.17.17.1:http rr
  -> 173.17.17.17:80             Masq    1      0          0
  -> 173.17.17.18:80             Masq    1      0          0
  -> 173.17.17.19:80             Masq    1      0          0
  -> 173.17.17.20:80             Masq    1      0          0

    2、使用外部客户端浏览器多次访问
http://173.17.17.1
,并检查4台真实web服务器的访问日志
        如果添加realserver时设置了-p 60参数,则同一个客户端每次刷新页面时,连接的是同一个real server,否则会轮流更替。
        设置连接保持(-p)参数是为了确保ftp、ssl等连接的稳定和可靠性。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/40349/showart_1657701.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP