频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Linux下负载均衡器LVS简单设置

来源: 作者: 出处:巧巧读书 2006-08-06 进入讨论组

  简单术语:
  
  Director:前端负载均衡器,运行lvs,目前只能为Linux,针对FreeBSD刚刚出来,性能不知道如何。可以针对web、ftp、cache、mms甚至mysql等服务做loadbalance。
  
  RealServer:后段需要负载均衡的服务器,可以为各类系统,Linux、SolarisAix、BSD、Windows都可,甚至Director本身也可以作为RealServer使用
  
  过完春节一直忙的稀里糊涂,脑袋一直转的太快,下午暂时有点空闲,正好最近N多朋友要做web 方式下的负载均衡,简单描述一下lvs的设置(不涉及HA、Mult-homing),当做大脑休息好了:p
  
  lvs Linux Virtual Server,Linux下的负载均衡器,不多作介绍了,跟DNS轮询以及一些商业产品的比较等不做论述,具体看看LVS网站,支持LVS-NAT、 LVS-DR、LVS-TUNL三种不同的方式,nat用的不是很多,这里简单介绍一下DR、TUNL方式。
  
  DR方式适合所有的RealServer同一网段下,即接在同一个交换机
  
  TUNL方式就RealServer可以任意了,完全可以跨地域、空间,只要系统支持Tunnel就成(Win2k3好像已经不支持了……)
  
  方便以后扩充的话直接Tunl方式即可
  
  Director系统为RHEL3+ClusterSuite(偶是懒人,懒得打kernel patch了:p)
  
  RealServer系统为Rhel3+noarp补丁
  
  Director设置:
  
  需要在Director设置的就是/etc/sysconfig/ha/lvs.cf,以及安装ClusterSuite后启动pulse服务(Redhat的lvs服务,当然也可以手动),下面是一个简单的lvs设置(没有设置director HA),man lvs.cf看看详细设置,RHEL3里已经有了详细的手册
  
  203.x.x.a为Director公网ip地址
  
  203.x.x.b为需要Loadbance的域名的Ip地址
  
  203.x.x.c 为第一个RealServer
  
  203.x.x.d为第二个RealServer
  
  #cat /etc/sysconfig/ha/lvs.cf
  
  serial_no = 45
  
  primary = 203.x.x.a
  
  service = lvs
  
  rsh_command = ssh
  
  backup_active = 0
  
  backup = 0.0.0.0
  
  heartbeat = 1
  
  heartbeat_port = 539
  
  keepalive = 10
  
  deadtime = 20
  
  network = direct(Tunl方式改为tunnel)
  
  nat_nmask = 255.255.255.255
  
  reservation_conflict_action = preempt
  
  debug_level = NONE
  
  virtual www.test.com {
  
  active = 1
  
  address = 203.x.x.b eth0:0
  
  vip_nmask = 255.255.255.255
  
  port = 80
  
  send = "GET / HTTP/1.0\r\n\r\n"
  
  expect = "HTTP"
  
  load_monitor = uptime
  
  scheduler = wlc
  
  protocol = tcp
  
  timeout = 10
  
  reentry = 15
  
  quiesce_server = 0
  
  server r1 {
  
  address = 203.x.x.c
  
  active = 1
  
  weight = 1
  
  }
  
  server r2 {
  
  address = 203.x.x.d
  
  active = 1
  
  weight = 1
  
  }
  
  }
  
  上面的设置是对某个域名的web访问进行负载均衡,Director使用ssh定时收集RealServer上的负载,然后决定Loadbalance的分配,分配方式为WLC方式,然后启动pulse服务,看看/var/log/message里有没有什么配置错误,RHEL3里设置已经非常方便、简单
  
  RealServer配置:
  
  RS系统为Rhel3,针对DR、Tunl需要不同的设置,但关键的是arp问题,这里使用的noarp module,当然Rhel3里也提供了arptables来配合lvs(效果可能不是很好),这里介绍一下noarp
  
  noarp编译不做介绍了,configure install后,insmod noarp把noarp加入内核,然后需要执行
  
  noarpctl add 203.x.x.b 203.x.x.a
  
  这是把所有对203.x.x.b的arp请求转向203.x.x.a(Director),然后建立虚拟ip以完成路由
  
  DR的话需要建立网卡,放在eth0或者lo都行
  
  ifconfig eth0:1 203.x.x.b netmask 255.255.255.255 up
  
  Tunl方式的话需要启动tunl虚拟网卡
  
  ifconfig tunl0 203.x.x.b netmask 255.255.255.255 up
  
  同样在RealServer2上同样的设置
  
  在两个RealServer上启动apache
  
  Director上检测一下连接
  
  ipvsadm -Ln
  
  看看当前的负载分配
  
  lvs的稳定性不用置疑,Rhas2.1、Rhel3里的LVS在偶这个懒人的4年使用里极其稳定,访问量从当时的几百人在线到现在的接近10K,只需要根据负载增加后段的RealServer即可,但Rhas2.1的LVS对Tunl支持的不好,建议使用Rhel3进行tunl方式的 Loadbalance
  
  几句题外话:
  
  lvs这两年里已经很稳定了,应用也已经很多了,maillist已经很活跃了,一些问题完全可以在maillist里找到答案,不用象偶当时完全是瞎子摸象:p。
  
  上面只是lvs一个简单的应用,其它的复杂应用完全可以到lvs主页、maillist等查找。本U R L:http://www.qqread.com/linux/2006/08/y587194061.html 更多文章 更多内容请看Linux集群技术体验Linux的音影世界Linux驱动大全专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章