欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

用Linux下的LVS軟件怎么實(shí)現(xiàn)Linux集群

今天就跟大家聊聊有關(guān)用Linux下的LVS軟件怎么實(shí)現(xiàn)Linux集群,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)主營袁州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),袁州h5重慶小程序開發(fā)搭建,袁州網(wǎng)站營銷推廣歡迎袁州等地區(qū)企業(yè)咨詢

這里介紹了Linux下的cluster軟件LVS,并舉例介紹一個Linux下的cluster(集群)的安裝和實(shí)現(xiàn)的詳細(xì)過程。  
在各種網(wǎng)絡(luò)服務(wù)普遍應(yīng)用的今天,隨網(wǎng)絡(luò)速度的提高以及用戶的增加,在一些繁忙的場合,單憑一臺機(jī)器已經(jīng)無法就能應(yīng)付所有的網(wǎng)絡(luò)請求了。為了解決這個問題,許多用戶就采用一組cluster(集群)來代替單一的機(jī)器。cluster可以將多臺計(jì)算機(jī)連接起來協(xié)同運(yùn)作以對外提供各種服務(wù),比如Apache、FTP、 Mail等。

在Linux上最常見的、也可能是運(yùn)用最廣泛的cluster方案就是LVS(Linux Virtual  
Server),很高興LVS也是一個中國人創(chuàng)建和開發(fā)的開放源碼項(xiàng)目。LVS自1998年開始,發(fā)展到現(xiàn)在已經(jīng)是一個比較成熟的技術(shù)項(xiàng)目了。有許多比較著名網(wǎng)站和組織都在使用LVS架設(shè)的cluster,比如:  www.linux.com、sourceforge.net、  www.real.com等。

下面就開始介紹一下,筆者是如何利用LVS來架設(shè)一組cluster來對外提供Apache和FTP服務(wù)的。

安裝操作系統(tǒng)

筆者選用的是Red Hat 9.0作為些cluster的director機(jī)器和所有real server機(jī)器的操作系統(tǒng)。RH的安裝過程從略,筆者根據(jù)實(shí)際需要,只安裝了少數(shù)的包。對于成批安裝Linux,建議試試Kickstart來進(jìn)入批理安裝。

編譯支持LVS的內(nèi)核

LVS對Linux的kernel進(jìn)行了修改和增加,所以要重新編譯 linux kernel。我們先從  http://www.linuxvirtualserver.org下載到LVS的內(nèi)核補(bǔ)丁,對原有內(nèi)核源代碼進(jìn)行更新,然后重新編譯Linux的kernel。

下載LVS的內(nèi)核補(bǔ)丁時要注意補(bǔ)丁版本要和kernel版本相一致,對于RH9.0,它的Linux核心版本是2.4.20,所以對應(yīng)內(nèi)核補(bǔ)丁應(yīng)該是  http://www.linuxvirtualserver.org/software/kernel-2.4/linux-2.4.20-ipvs-1.0.9.patch.gz

另外還有一個補(bǔ)丁是用來解決某些情況下ARP協(xié)議不能正常工作問題的,從  http://www.ssi.bg/~ja/hidden-2.4.20pre10-1.diff下載。

把上面下載的兩個補(bǔ)丁復(fù)制到/usr/src目錄下,然后執(zhí)行以下命令:

cd /usr/src  
gzip -cd linux-2.4.20-ipvs-1.0.9.patch.gz  
cd /usr/src/linux  
patch -p1 < ../linux-2.4.20-ipvs-1.0.9.patch  
patch -p1 < ../hidden-2.4.20pre10-1.diff

make mrproper  
make menuconfig

執(zhí)行make menuconfig時,我們將進(jìn)入一個圖形化的界面,在其中可以對Linux Kernel進(jìn)行詳細(xì)設(shè)置。與LVS相關(guān)的kernel選項(xiàng)都在“Networking options”中,進(jìn)入“Networking options”,可以查看到“IP: Virtual Server Configuration”選項(xiàng),將其它所有的子選項(xiàng)都選上:

<M> virtual server support (EXPERIMENTAL)  
[*] IP virtual server debugging  
(12) IPVS connection table size (the Nth power of 2)  
--- IPVS scheduler  
<M> round-robin scheduling  
<M> weighted round-robin scheduling  
<M> least-connection scheduling 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> source hashing scheduling  
<M> shortest expected delay scheduling  
<M> never queue scheduling  
--- IPVS application helper  
<M> FTP protocol helper

另外,“Networking options”中的“IP: Netfilter Configuration"中的選項(xiàng)的所有子項(xiàng),除了以下兩項(xiàng)不要選之外,其它全可以選:

< > ipchains (2.2-style) support  
< > ipfwadm (2.0-style) support

還有,“Networking options”中還有一些關(guān)于網(wǎng)絡(luò)的選項(xiàng),要注意按自己的需要去選擇:

<*> Packet socket  
[ ] Packet socket: mmapped IO  
<*> Netlink device emulation  
[*] Network packet filtering (replaces ipchains)  
[*] Network packet filtering debugging  
[*] Socket Filtering  
<*> Unix domain sockets  
[*] TCP/IP networking  
[*] IP: multicasting  
[*] IP: advanced router  
[*] IP: policy routing  
[ ] IP: use netfilter MARK value as routing key  
[ ] IP: fast network address translation  
<M> IP: tunneling  
對于kernel的其它選項(xiàng),你可以根據(jù)需要進(jìn)行選擇。kernel的配置是一項(xiàng)很需要經(jīng)驗(yàn)、細(xì)心和耐心的工作,不當(dāng)?shù)呐渲每赡軙?dǎo)致編譯過程中出現(xiàn)錯誤或者是新的kernel不能驅(qū)動原有的設(shè)備等問題。

退出保存,然后繼續(xù)執(zhí)行以下命令:

make dep  
make clean  
make bzImage  
make modules  
make modules_install

以上各步可能需要一點(diǎn)時間,如果出錯請重新檢查你的kernel配置,如果沒有出現(xiàn)任何錯誤就繼續(xù)執(zhí)行以下命令:

depmod -a  
cp arch/i386/boot/bzImage /boot/vmlinuz-lvs  
cp System.map /boot/System.map-lvs

cd /boot  
rm System.map  
ln -s System.map-lvs System.map

然后修改你的lilo.conf使用新的kernel啟動,比如在lilo.conf中以增加下幾行以增加關(guān)于新的支持LVS的kernel的啟動項(xiàng):

p_w_picpath=/boot/vmlinuz-lvs  
label=lvs  
read-only  
root=/dev/sda1

注:如果使用Grub做啟動引導(dǎo)程序的,請自行做對應(yīng)的修改,以增加關(guān)于新的支持LVS的kernel的啟動項(xiàng)。

重新啟動Linux,選擇lvs項(xiàng)進(jìn)入Linux。

安裝ipvsadm

如果正常啟動了,就開始安裝IP虛擬服務(wù)器軟件ipvsadm。因?yàn)槲覀冇玫氖荝H,所以我們直接下載RPM包進(jìn)行安裝。RPM包從以下地址下載:  
 http://www.linuxvirtualserver.org/software/kernel-2.4/ipvsadm-1.21-7.src.rpm

用以下命令來安裝ipvsadm:

rpmbuild --rebuild ipvsadm-1.21-7.src.rpm  
rpm -ivh /usr/src/redhat/RPMS/i386/ipvsadm-1.21-7.i386.rpm

至此,LVS的安裝算是完成了一半。就是說,現(xiàn)在的Linux已經(jīng)具備了實(shí)現(xiàn)LVS的能力了,接下來的問題就是如果使用LVS來構(gòu)建一組 cluster了。要想實(shí)現(xiàn)一組cluster,我們就要使用ipvsadm工具進(jìn)行配置,而在我們開始使用ipvsadm進(jìn)行配置之前,我們需要了解一些基本的LVS的知識,特別是以下三個要點(diǎn):LVS的結(jié)構(gòu)、LVS的三種包轉(zhuǎn)發(fā)方式、LVS的八種調(diào)度算法。只有了解了這些知識以后,我們才能理該如何使用ipvsadm來進(jìn)行配置。下面簡單介紹LVS的這三個要點(diǎn):

1. LVS的結(jié)構(gòu)

LVS方式的cluster從結(jié)構(gòu)上可分為兩部分:前端的負(fù)載均衡器(稱之為director)和后端的真實(shí)服務(wù)器(稱之為real server)。cluster前端的director將來自外界的請求調(diào)度到cluster后端不同的real server去執(zhí)行。real server負(fù)責(zé)真正的提供各種應(yīng)用服務(wù),比如:Web、FTP、Mail等服務(wù)。real server的數(shù)量可以根據(jù)實(shí)際需求進(jìn)行增加、減少。

2. LVS的三種包轉(zhuǎn)發(fā)方式

LVS提供了三種包轉(zhuǎn)發(fā)方式:NAT(網(wǎng)絡(luò)地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)。不同的轉(zhuǎn)發(fā)模式?jīng)Q定了不同的cluster的網(wǎng)絡(luò)結(jié)構(gòu),下面對三種轉(zhuǎn)發(fā)方式分別介始:

NAT(網(wǎng)絡(luò)地址映射)

NAT方式可支持任何的操作系統(tǒng),以及私有網(wǎng)絡(luò),并且只需一個Internet IP地址,但是整個系統(tǒng)的性能受到限制。因?yàn)閳?zhí)行NAT每次需要重寫包,有一定的延遲;另外,大部分應(yīng)用有80%的數(shù)據(jù)是從服務(wù)器流向客戶機(jī),也就是用戶的請求非常短,而服務(wù)器的回應(yīng)非常大,對負(fù)載均衡器形成很大壓力,成為了新的瓶頸。

IP Tunneling(IP隧道)

director分配請求到不同的real server。real server處理請求后直接回應(yīng)給用戶,這樣director負(fù)載均衡器僅處理客戶機(jī)與服務(wù)器的一半連接。IP Tunneling技術(shù)極大地提高了director的調(diào)度處理能力,同時也極大地提高了系統(tǒng)能容納的最大節(jié)點(diǎn)數(shù),可以超過100個節(jié)點(diǎn)。real server可以在任何LAN或WAN上運(yùn)行,這意味著允許地理上的分布,這在災(zāi)難恢復(fù)中有重要意義。服務(wù)器必須擁有正式的IP地址用于與客戶機(jī)直接通信,并且所有服務(wù)器必須支持IP隧道協(xié)議。

Direct Routing(直接路由)

與IP Tunneling類似,負(fù)載均衡器僅處理一半的連接,避免了新的性能瓶頸,同樣增加了系統(tǒng)的可伸縮性。Direct Routing與IP Tunneling相比,沒有IP封裝的開銷,但由于采用物理層(修改MAC地址)技術(shù),所有服務(wù)器都必須在一個物理網(wǎng)段。

3. LVS的八種調(diào)度算法

LVS已實(shí)現(xiàn)了以下八種調(diào)度算法:

1.輪叫調(diào)度(Round-Robin Scheduling)  
2.加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling)  
3.最小連接調(diào)度(Least-Connection Scheduling)  
4.加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)  
5.基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)  
6.帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)  
7.目標(biāo)地址散列調(diào)度(Destination Hashing Scheduling)  
8.源地址散列調(diào)度(Source Hashing Scheduling)

注:如果想了解關(guān)于以上幾點(diǎn)的技術(shù)細(xì)節(jié),LVS的主頁查詢。LVS的主頁是:

http://www.LinuxVirtualServer.org/  
 http://www.linux-vs.org/

了解了LVS的三個要點(diǎn)之后,接下來我們來配置一個采用Direct Routing包轉(zhuǎn)發(fā)方式、加權(quán)最小連接調(diào)度算法的cluster。


我們知道Direct Routing包轉(zhuǎn)發(fā)方式是通過改寫請求報文的MAC地址,將請求發(fā)送到real server。前臺的director機(jī)器只需要接收和調(diào)度外界的請求,而不需要負(fù)責(zé)返回這些請求的反饋結(jié)果。director機(jī)器和real server都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。所以我們給出以下的網(wǎng)絡(luò)拓?fù)鋱D:

director機(jī)器上需要進(jìn)行如下配置:

設(shè)置好本機(jī)的IP:192.168.2.1  
然后執(zhí)行以下命令:  
ifconfig lo:0 192.168.2.254 netmask 255.255.255.255 broadcast  
192.168.2.254 up  
route add -host 192.168.2.254 dev lo:0  
echo 1 > /proc/sys/net/ipv4/ip_forward  
echo 1 >/proc/sys/net/ipv4/conf/all/hidden

ipvsadm -C  
ipvsadm -A -t 192.168.2.254:80 -s wlc  
ipvsadm -a -t 192.168.2.254:80 -r 192.168.2.2 -g  
ipvsadm -a -t 192.168.2.254:80 -r 192.168.2.3 -g  
......  
ipvsadm -A -t 192.168.2.254:21 -s wlc  
ipvsadm -a -t 192.168.2.254:21 -r 192.168.2.2 -g  
ipvsadm -a -t 192.168.2.254:21 -r 192.168.2.3 -g  
......

real server機(jī)器上需要進(jìn)行如下配置:

對于第一臺real server(RS1),設(shè)置好本機(jī)的IP:192.168.2.2 然后執(zhí)行以下命令:

ifconfig lo:0 192.168.2.254 netmask 255.255.255.255 broadcast  
192.168.2.254 up  
route add -host 192.168.2.254 dev lo:0

對于其它real server:RS2、RS3、RS4......,做相類的設(shè)定。

完成以上設(shè)置后,所有對192.168.2.254的80端口的訪問都會通過director機(jī)器分配到后面的real server上去,而real server的處理后結(jié)果將直接反饋給客戶。至此,我們完成了一個cluster的例子。通過這個例子,相信您也可以輕松地利用Linux架設(shè)起一組 cluster來。其實(shí)在cluster架設(shè)到這里之后,還并不能達(dá)到正式應(yīng)用的要求,實(shí)際應(yīng)用中還有一些問題需要解決,比如要安裝監(jiān)視軟件,監(jiān)視集群的運(yùn)作,要能及時發(fā)現(xiàn)real server的故障并對應(yīng)調(diào)整real server的列表。還有后臺real server節(jié)點(diǎn)的數(shù)據(jù)一致性等問題。這些在一些商用的cluster軟件產(chǎn)品中就得到了很好的解決,而網(wǎng)絡(luò)也有一些非商用的軟件,比如mon就是這樣的系統(tǒng)資源監(jiān)控程序,可以監(jiān)控網(wǎng)絡(luò)服務(wù)可用性、服務(wù)器問題等,最重要的是mon提供了一個框架,用戶可以自行定義和擴(kuò)展。這些內(nèi)容請參閱其它文章。

看完上述內(nèi)容,你們對用Linux下的LVS軟件怎么實(shí)現(xiàn)Linux集群有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享文章:用Linux下的LVS軟件怎么實(shí)現(xiàn)Linux集群
當(dāng)前地址:http://chinadenli.net/article26/pgjijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站服務(wù)器托管靜態(tài)網(wǎng)站標(biāo)簽優(yōu)化網(wǎng)站設(shè)計(jì)公司App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)