歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux集群

Linux集群服務LVS概述與安裝配置詳解

LVS項目從成立到現在為止,受到不少關注,LVS集群系統已被應用於很多重負載的站點。安裝LVS和配置LVS的工作比較繁雜,讀者在配置的過程中需要非常細心和耐心。本文對LVS的應用場景進行了簡單介紹,並著重介紹LVS的安裝和配置操作。 (http://os.51cto.com/art/201011/233146.htm)

LVS項目從成立到現在為止,受到不少關注,LVS集群系統已被應用於很多重負載的站點。到目前為止,該系統已在美、英、德、澳等國的幾十個站點上正式使用。目前,一些大型LVS應用實例如下:

英國國家JANET Cache Service(wwwcache.ja.net)是為英國150所以上的大學提供Web Cache服務。他們用28個結點的LVS集群代替了原有現50多台相互獨立的Cache服務器,用他們的話說現在速度就跟夏天一樣,因為夏天是放假期間沒有很多人使用網絡。

Linux的門戶站點(www.linux.com)用LVS將很多台VA Linux SMP服務器組成高性能的WEB服務,已使用將近一年。

SourceForge(sourceforge.net)是在全球范圍內為開發源碼項目提供WEB、FTP、Mailing List和CVS等服務,他們也使用LVS將負載調度到十幾台機器上。

世界上最大的PC制造商之一采用了兩個LVS集群系統,一個在美洲,一個在歐洲,用於網上直銷系統。

以RealPlayer提供音頻視頻服務而聞名的Real公司(www.real.com)使用由20台服務器組成的LVS集群,為其全球用戶提供音頻視頻服務。在2000年3月時,整個集群系統已收到平均每秒20,000個連接的請求流。

NetWalk(www.netwalk.com)用多台服務器構造LVS系統,提供1024個虛擬服務,其中本項目的一個美國鏡像站點(www.us.linuxvirtualserver.org)。

RedHat(www.redhat.com)從其6.1發行版起已經包含LVS代碼,他們開發了一個LVS集群管理工具叫Piranha,用於控制LVS集群,並提供了一個圖形化的配置界面。

VA Linux(www.valinux.com)向客戶提供基於LVS的服務器集群系統,並且提供相關的服務和支持。

安裝LVS

安裝LVS和配置LVS的工作比較繁雜,讀者在配置的過程中需要非常細心和耐心。在本節我們將對其進行詳細地介紹。主要包括如下幾個核心步驟:

1.獲取支持LVS的內核源代碼

如果讀者需要使用LVS,需要下載2.4.23以後版本的內核源代碼。下載地址為http://www.kerner.org。目前主流的Linux內核已經支持LVS,只需要直接使用,不需要進行內核的下載和更新工作。

2.用戶配置工具ipvsadm

該軟件的下載地址為:http://www.linuxvirtualserver.org/software/ipvs.html。

3.調整內核配置選項

讀者在內核配置時應該對下列必選項(用*號表示)進行檢查,如果某些選項的設置不正確,將有可能影響LVS的正常工作和使用。在查看這些選項之前,用戶需要使用make menuconfig命令,進入Networking options選項進行查看:

Networking options  --->
<*> Packet socket
<*> Netlink device emulation
[*] TCP/IP networking
[*] IP: advanced router
[*] Network packet filtering (replaces ipchains)
IP: Netfilter Configuration  --->
<*> Connection tracking (required for masq/NAT)
<*> IP tables support (required for filtering/masq/NAT)
<*> Full NAT
<*> MASQUERADE target support
IP: Virtual Server Configuration  --->
<*> virtual server support (EXPERIMENTAL)
<M>   IPVS connection table size (the Nth power of 2)--- IPVS scheduler
<M>   round-robin scheduling
<M>   weighted round-robin scheduling
<M>   least-connection scheduling
<M>   weighted least-connection scheduling
<M>   locality-based least-connection scheduling
<M>   locality-based least-connection with replication scheduling
<M>   destination hashing scheduling
<M>   shortest expected delay scheduling
<M>   never queue scheduling

配置和使用LVS

在安裝好LVS之後,就可以配置和使用LVS了,在本節我們將以一個具體的例子來對其進行講解。圖2為一個采用LVS系統的實際網絡拓撲圖。它基於NAT機制,具體的配置如下:

一台對外服務的超級服務器:它部署了LVS,也稱為balancer或者director,主要功能為負載均衡和任務調度,其外部IP地址為:210.77.132.8,內部IP地址為:172.168.10.8。外部用戶可以通過路由器(IP地址為:210.77.132.1)訪問它;

兩台內部的服務器:它們為實際的工作機器,通過前述的服務器對其進行調度。一台為RS1,其內部IP地址為:172.168.10.9;另一台為RS2,其內部IP地址為:172.168.10.10。

圖  采用LVS系統的實際網絡拓撲圖

根據上述的網路配置和拓撲,對LVS的配置如下:

1.配置LVS的超級服務器(稱為load balancer或者director)

運行如下命令:

//配置重定向
#echo "1" >/proc/sys/net/ipv4/ip_forward
#echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects
#echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects
#echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects
#echo "0" >/proc/sys/net/ipv4/conf/eth1/send_redirects
//清除ipvsadm表
#/sbin/ipvsadm -C
//使用ipvsadm安裝LVS服務
#add http to VIP with rr scheduling
#/sbin/ipvsadm -A -t 210.77.132.8:80 -s rr
//增加第一台內部服務器RS1
#forward http to realserver 172.168.10.9 using LVS-NAT (-m), with weight=1
/sbin/ipvsadm -a -t 210.77.132.8:80 -r 172.168.10.9:80 -m -w 1
增加第二台內部服務器RS2
#forward http to realserver 172.168.10.10 using LVS-NAT (-m), with weight=1
/sbin/ipvsadm -a -t 210.77.132.8:80 -r 172.168.10.10:80 -m -w 1

2.配置LVS中的內部服務器

在172.168.10.9(RS1)和172.168.10.9(RS2)上分別將其網關設置為172.168.10.8,並分別啟動apache服務。在客戶端使用浏覽器多次訪問:http://210.77.132.8,然後再210.77.132.8上運行ipvsadm命令,應該有類似下面的輸出:

IP Virtual Server version 1.0.12 (size=4096)
Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  210.77.132.8:http rr
  -> 172.168.10.9:http           Masq    1      0          33       
  -> 172.168.10.10:http           Masq    1      0          33

從上面的結果可以看出,我們配置的LVS服務器已經成功運行。

本文出自 “卓越始於足下” 博客,請務必保留此出處http://patterson.blog.51cto.com/1060257/420557

Copyright © Linux教程網 All Rights Reserved