Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1185236
  • 博文数量: 128
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 4870
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-19 14:28
文章分类

全部博文(128)

文章存档

2010年(2)

2009年(22)

2008年(104)

我的朋友

分类: LINUX

2008-06-26 13:44:29

rhel5下实现基于DNS的多机均衡负载
 
实现的软件是lbnamed,主要特征介绍如下:
一、基于perl的dns服务端。应用简单。
二、自动检测各个
的负荷。然后再按结果优先分配DNS解析。
三、DNS解析实时生效。不会被DNS
缓存。
四、安装方法简单。
下载地址是:
lbnamed目前最新版本是lbnamed-2.3.2,这里采用lbnamed-1.2.1版本。
官方网站是
1、lbcd是lbnamed所用到的端检测负荷,每个需要均衡负荷的都需要安装、运行它的。上面给出的lbcd是最新版本的,编译安装如下:
   # tar -xvzf lbcd-3.3.0.tar.gz
   # cd lbcd-3.3.0
   # ./configure
   # make;make install
完了后lbcd程序存在与/usr/local/sbin/目录下,不用加什么参数就可以运行,停止则是lbcd -s。
2、lbnamed是由perl编写的,在安装前请确定你安装了perl软件,1.2.1版本里包含了perl4和perl5两种,我这里用的是perl5.
   # tar -xvzf lbnamed-1.2.1.tar.gz
   # cd lbnamed-1.2.1
   # cd perl5
   注意:
   lbnamed是主。提供dns动态解析。严格来说。它已是一个dns了。
   poller是为lbnamed提供各个均衡
的负荷情况。(配合我们之前安装的lbcd使用)
   但二个
可能都需要更改,请看第一行的perl地址。改为你的perl地址。
   下来编辑程序的配置文件:
   1、lbnamed.conf 修改以下几处:
   $hostmaster = "schemers.leland.stanford.edu"; 将schemers.leland.stanford.edu改为你的名字。比如server1.rhel5.net。
   将所有stanford.edu改为你的域名(比如rhel5.net),这个很重要。我建议不要更改best,当然你也可以改,根据具体情况而定吧。
   2、sweet.config
   这个可以是用其它名的,具体在lbnamed.conf有设置。我建议大家清空这个。它的配置方法如下:
   负荷host   负重   组
   例如,我的如下:
   server1.rhel5.net 1 server1
   server2.rhel5.net 2 server2
   找个文件配置完后,在/etc/hosts文件里加入上述两个服务器的地址,如下:
   192.168.1.10 server1.rhel5.net server1
   192.168.1.20 server2.rhel5.net server2
   这样poller程序就能检测192.168.1.10和192.168.1.20的负荷情况了。
到此,配置完毕!分别在server1和server2上运行lbcd程序,完了后启动lbnamed程序,如下:
   # ./lbnamed -l lb.log -d
   -d 意为debug
   -l 在运行时加上logfile文件参数,这里我用的lb.log文件作为lbnamed的日志文件。
   检查下lb.log文件:
   # cat lb.log
   06/26 10:27 7175 lbnamed starting poller
   06/26 10:27 7175 lbnamed load_config
   loading server1 1 server1.rhel5.net
   loading server2 2 server2.rhel5.net
如果你没有那些记录,请查看sweet.config.unreach,这是代表poller无法接收到对方的负荷信息,请检查lbcd是否运行!
   在windows下测试:
C:\Documents and Settings\jacky.lee>nslookup
Default Server:  perl-doc.rhel5.net
Address:  192.168.1.10
> server 192.168.1.20
Default Server:  dns2.rhel5.net
Address:  192.168.1.20
> set type=all
>
Server:  dns2.rhel5.net
Address:  192.168.1.20
   canonical name = www2.rhel5.net
rhel5.net       nameserver = dns1.rhel5.net
rhel5.net       nameserver = dns2.rhel5.net
dns1.rhel5.net  internet address = 192.168.1.10
dns2.rhel5.net  internet address = 192.168.1.20
> mail.rhel5.net
Server:  dns2.rhel5.net
Address:  192.168.1.20
mail.rhel5.net  canonical name = mail2.rhel5.net
rhel5.net       nameserver = dns2.rhel5.net
rhel5.net       nameserver = dns1.rhel5.net
dns1.rhel5.net  internet address = 192.168.1.10
dns2.rhel5.net  internet address = 192.168.1.20
> bind.rhel5.net
Server:  dns2.rhel5.net
Address:  192.168.1.20
bind.rhel5.net  canonical name = bind-doc.rhel5.net
rhel5.net       nameserver = dns1.rhel5.net
rhel5.net       nameserver = dns2.rhel5.net
dns1.rhel5.net  internet address = 192.168.1.10
dns2.rhel5.net  internet address = 192.168.1.20
阅读(1032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~