輕便式 LVS 集群架設攻略(原創)

发布于 2022-07-12 16:21:28 字数 1867 浏览 7 评论 9

很多人在架設LVS Load Balancing 都要重新編譯內核,打補丁,十分麻煩而且容易出錯.我在這里給出一個十分簡易的方法去架設LVS.這里以直接路由DR方式為例子.

在負責調度的主機LB上安裝一個內核版本2.6.10或以上的Linux發行版,這里我用的是Mandriva2006.由于2.6.10以上的內核已經集成IPVS,缺省編譯為module,所以不需重新編譯內核.我們可以用modprobe -l 命令查看系統中有哪些module可用.IPVS module在 /lib/modules/2.6.12-12mdksmp/kernel/net/ipv4/ipvs中.

如果我們要手動挂載IPVS,只需要用modprobe <module name>命令就可以,不過我們無須手動挂載.下載ipvsadm管里程序,安裝.在安裝ipvsadm后會自動加入到系統的啟動服務項目中,到系統服務中查看ipvsadm是否已經加入. 點擊啟動后,ipvsadm會自動挂載IPVS module,可以用lsmod查看系統當前所有挂載的module.

設置VIP,然后設置調度算法,算法模塊也會自動加載.加入所有真實服務器IP.以下是我用的腳本(假設用內網IP):
#!/bin/bash
VIP=192.168.0.100
RIP1=192.168.0.11
RIP2=192.168.0.12
RIP3=192.168.0.13
GW=192.168.0.1
# set the Virtual  IP Address
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
#Clear IPVS table
/sbin/ipvsadm –C
#set LVS
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
#Run LVS
/sbin/ipvsadm
#end

有多少台真實服務器主機請自行添加, 並且要安裝web服務器.使用哪種調度算請按情況配置.所有真實服務器主機都要忽略ARP回應,做法是直接修改內核參數,以下是真實服務器上運行的腳本:
#!/bin/bash
VIP=192.168.0.100
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
#end

現在可以測試LVS.找幾台電腦用瀏灠器訪問VIP,看看所出的主頁是否正常.如果用一台電腦訪問的話,訪問完后要清除緩存.先把主頁都做到不同式樣,根據輪轉調度法,每次訪問的請求都會按次序分到真實服器上,所以應該可以依次序看到真實服務器上的主頁.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

红墙和绿瓦 2022-07-22 12:38:01

原帖由 haohaoo 于 2006-4-26 18:12 发表
redhat-as3直接安装个rpm包也能这么做

我上周就用RHAS3做的LB   通过测试。。。

RS 的KERNEL版本低一点没关系的。

还有注意一点就是WIN2000做RS需要安装:

引用论坛上看到的 “VS/DR方式下,支持WindowsNT/2K做为RealServer,提是你必须安装了MS Loopback Adapter。如果你没有在NT/2K上安装MS Loopback Adapter Driver,你可以选择添加新硬件,添加网络适配器,选择Microsoft,选择Loopback Adapter. 你可能会需要NT的安装盘。然后添加VIP (Virtual IP) 地址在 MS Loopback Adapter上, 不要输入网关gateway IP地址。子网掩码 255.255.255.255 在MS NT/2K会被认为是无效的。。。

解决的办法

可以通过修改注册表设置子网掩码为255.255.255.255, 这在我的DR系统中工作良好。而且这比每次启动时删除外部路由的方法要方便的多。

在Windows 2000,中 网络界面(interfaces)在:

HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParametersInterfaces

找到适当的网络界面IP地址,修改它的子网掩码,(注意修改方式)不需要重启,只需重新激活该网络界面即可。

不然APACHE里用Listen 加入虚拟IP之后  服务也启动不了

一点心得,呵呵,说的不对的地方请指教

薄暮涼年 2022-07-22 12:37:23

redhat-as3直接安装个rpm包也能这么做

诗酒趁年少 2022-07-22 12:36:59

session同步应该由后端的web server集群实现。
DR模式下所有的进出流量都经过负载均衡服务器,好处是与后端集群无关,架设起来自然是最简单的,但同时对负载均衡路由器提出了很高的要求,这一点不可忽略。

以可爱出名 2022-07-22 12:36:59

原帖由 ljhb 于 2006-3-29 00:57 发表

lvs只是做网络的转发,保持session同步时不可能的,但是针对ftp,他有一个 ip_vs_ftp的转发策略;针对http,你可以加上persistent的选项来在一定的时间内保证固定的客户端访问固定的服务器。这个策略能保证 ...

http persistent在哪里设置的,带session的系统现在很多了,现在就面临这个问题

以往的大感动 2022-07-22 12:02:04

原帖由 秋风No.1 于 2006-3-28 16:36 发表

有个疑问,这样的load balancing 是否能够保证session的同步?

lvs只是做网络的转发,保持session同步时不可能的,但是针对ftp,他有一个 ip_vs_ftp的转发策略;针对http,你可以加上persistent的选项来在一定的时间内保证固定的客户端访问固定的服务器。这个策略能保证session同步。

影子的影子 2022-07-22 10:45:51

原帖由 jjstephen 于 2006-3-28 01:09 发表
很多人在架設LVS Load Balancing 都要重新編譯內核,打補丁,十分麻煩而且容易出錯.我在這里給出一個十分簡易的方法去架設LVS.這里以直接路由DR方式為例子.

在負責調度的主機LB上安裝一個內核版本2.6.10或以上的 ...

有个疑问,这样的load balancing 是否能够保证session的同步?

审判长 2022-07-18 18:58:17

顶.

幼儿园老大 2022-07-17 20:02:37

楼主可否描述的更详细些。
最好列出每步的详细命令。
方便大家实践。
谢谢!

风月客 2022-07-15 06:41:58

你的real server kernel是多少呀?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文