LVS DR模式詳細配置
發貼慶祝一下,順便寫下筆記。
Redhat Linux As下的piranha軟體包實際是以LVS為核心的LB系統。
LVS:用於負載均衡的核心軟體。概念模糊的可以到http://www.linuxvirtualserver.org查看詳細信息。
e文不好的也可以看http://zh.linuxvirtualserver.org
piranha:Redhat做的一個基於Web的配置軟體。(省去手工配置的麻煩,自認為水平可以的也可以手工配)
準備工作:
首先確定你的內核版本。我是在Redhat AS 3 2.4.21上做的。
下載軟體,去baidu/google上找一個Cluster_Suite.ISO.不太好找,但是有。10M左右。
規劃地址:
LB真實地址:192.168.1.110
VIP地址(vistual IP,也就是你的URL需要解析到的地址):192.168.1.111
Real Server IP :192.168.1.112
192.168.1.113
好了,可以開始了。
1、將Cluster_Suite.ISO光碟插入機器(廢話^_^)。運行autorun。不過好像必須在GUI界面下,沒裝Xwindows的可能用不了哦。一步步下去就行了。
如果伺服器沒有安裝apache服務,安裝程序也會自動提示你插入第3張盤安裝Apache。安裝完成後,將/etc/sysconfig/ha/conf目錄下的httpd.conf文件替換/etc/httpd/conf下的配置文件
2、改下登陸密碼先:piranha-passwd
3、啟動LVS服務: service pulse start
4、運行 piranha_gui 啟動Web配置界面。登陸地址是:
http://192.168.1.110:3636 輸入用戶名:piranha。密碼:第2步改的密碼。
有幾個菜單:
CONTROL/MONITORING (看名字就知道幹嗎的啦)
點擊GLOBAL SETTINGS
先點擊「Direct Routing」按鈕,再進行配置
Primary server public IP:192.168.1.110 (運營環境中輸入公網地址)
Primary server private IP: 此例中留空 (運營環境中如果real server是公網地址的話也可以不寫)
(May be blank)
完成點擊「Accept」
下一個菜單REDUNDANCY
(LB的HA用的,暫時還沒做,做了再貼帖子處理)
VIRTUAL SERVERS 菜單
點擊"ADD"。自動增加一條記錄。選中它然後「Edit」。展開後有幾個標籤,先來看看「VIRTUAL SERVER 」標籤
Name: VIP1
Application port: 80 #如果是其它服務就填其它服務埠,可以為http/ftp/mysql等等做均衡
Protocol: tcp
Virtual IP Address:192.168.1.111
Virtual IP Network Mask:255.255.255.255 #這裡還不是很理解為什麼設成這樣,應該與ARP問題有
關,但是必須設成這樣
Firewall Mark: 有硬體防火牆,這裡不設
Device: eth0:1
其它的選項默認好了。需要進一步研究的是Scheduling,對於你的負載轉發機制有影響。
保存一下。看下一個標籤:REAL SERVER 。添加真實伺服器,方法和上面的差不多。
好了,Web頁面的配置就到這裡先。
回到命令行運行:
修改這個文件vi /etc/sysctl.conf 裡面的
net.ipv4.ip_forward = 1
1表示允許包轉發
vi /proc/sys/net/ipv4/ip_forward
將這個值也改成1
重啟伺服器。。。。。。。。。
啟動服務: service pulse start
Direct Server(LB)的配置到這裡就結束了。
#####下面看一下Real Server的配置##########
登陸192.168.1.112和192.168.1.113
首先啟動apache.
然後添加如下兩句,解決2.6內核以下的ARP問題。(但是好像我裝了2.6內核的機器不加這個也不行啊...):
ifconfig lo:0 192.168.1.111 netmask 255.255.255.255 broadcast 192.168.1.111 up
route add -host 192.168.1.111 dev lo:0
也可以新建/etc/sysconfig/network-script/ifcfg-lo:0文件裡面。下次啟動生效。
現在打開http://192.168.1.111 。Web頁面就出現了,拔掉一台機器的網線,測試HA是否生效。
準備接著研究LB的Failover和均衡策略。。。
[ 本帖最後由 littletim 於 2006-8-23 12:09 編輯 ]
《解決方案》
恭喜一下
《解決方案》
正在研究LB的HA,想知道兩台機器的配置有一樣的?包括VIP地址都一樣,那不就衝突了?還是根本不用設VIP地址?哪位做過的?
《解決方案》
我現在也在思考vip衝突問題,應該是用heartbeat啟動vip才行。
《解決方案》
原帖由 littletim 於 2006-8-19 17:58 發表
正在研究LB的HA,想知道兩台機器的配置有一樣的?包括VIP地址都一樣,那不就衝突了?還是根本不用設VIP地址?哪位做過的?
你還是先做的試試,官方有文檔,lvs整體來說不難,vip不衝突,
《解決方案》
vip不會衝突,怎麼會衝突呢。
《解決方案》
原帖由 littletim 於 2006-8-19 05:58 PM 發表
正在研究LB的HA,想知道兩台機器的配置有一樣的?包括VIP地址都一樣,那不就衝突了?還是根本不用設VIP地址?哪位做過的?
什麼配置一樣?
如果只有一台load balancer,用mon就可以。
有多台的時候,可以用heartbeat,最新版本1.2.5隻支持2台load balancers,版本2.0.7測試支持16台。
這種情況下heartbeat自帶的ldirectord可以監控load balancers,ipvsadm以及ldirectord等是由heartbeat控制的。不存在VIP的衝突。
《解決方案》
Piranha的解決方案相對簡單,好像並沒有用到HeartBeat。http://www.linuxvirtualserver.org/docs/ha/piranha.html
但是它的模式不是standby。就是哪台機器alive就hit到那台的VIP地址。不是接管形式。
不知道我理解的對不對。總之是實驗成功了,其中一台down掉,另外一台可以工作。
兩台機器的配置完全一樣,包括VIP地址,由於VIP地址掩碼是255.255.255.255。避免了IP衝突的問題。
這又不明白了,既然VIP 掩碼是192.168.1.118 255.255.255.255。我在192.168.1.0/24這個網段的機器怎麼能夠訪問到這個地址呢?都不在一個子網。
不知道放到運營環境會不會出問題。。。。。
《解決方案》
原帖由 littletim 於 2006-8-23 10:44 AM 發表
Piranha的解決方案相對簡單,好像並沒有用到HeartBeat。http://www.linuxvirtualserver.org/docs/ha/piranha.html
但是它的模式不是standby。就是哪台機器alive就hit到那台的VIP地址。不是接管形式 ...
怎麼會沒用到heartbeat呢:
The piranha monitoring tool has two main features:
Heartbeating between active and backup load balancers.
Checking availability of the services on each of real servers.
《解決方案》
Heartbeating是一種機制而不是Heartbeat軟體吧?:)
因為我在機器上找不到Heartbeat的配置文件和啟動文件