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) |