淺述架設(shè)基于Linux(2.6內(nèi)核)的服務(wù)器集群論文
淺述架設(shè)基于Linux(2.6內(nèi)核)的服務(wù)器集群論文
服務(wù)器集群就是指將很多服務(wù)器集中起來一起進(jìn)行同一種服務(wù),在客戶端看來就像是只有一個(gè)服務(wù)器。集群可以利用多個(gè)計(jì)算機(jī)進(jìn)行并行計(jì)算從而獲得很高的計(jì)算速度,也可以用多個(gè)計(jì)算機(jī)做備份,從而使得任何一個(gè)機(jī)器壞了整個(gè)系統(tǒng)還是能正常運(yùn)行。以下是學(xué)習(xí)啦小編今天為大家精心準(zhǔn)備的:淺述架設(shè)基于Linux(2.6內(nèi)核)的服務(wù)器集群相關(guān)論文。內(nèi)容僅供參考,歡迎閱讀!
架設(shè)基于Linux(2.6內(nèi)核)的服務(wù)器集群全文如下:
什么是集群?
集群,是一組獨(dú)立的計(jì)算機(jī)系統(tǒng)構(gòu)成一個(gè)松耦合的多處理器系統(tǒng),它們之間通過網(wǎng)絡(luò)實(shí)現(xiàn)進(jìn)程間的通信。應(yīng)用程序可以通過網(wǎng)絡(luò)共享內(nèi)存進(jìn)行消息傳送,實(shí)現(xiàn)分布式計(jì)算機(jī)。集群的工作方式類似于人們之間的協(xié)同工作。
Vs-nat集群是一種最簡單的集群。他的結(jié)構(gòu)類似于linux透明代理服務(wù)器。
這是從網(wǎng)絡(luò)上下載的一幅圖,這是一種典型的nat結(jié)構(gòu)。可以用此種結(jié)構(gòu)作簡單測試。上圖的LVS標(biāo)識(shí)是一臺(tái)linux主機(jī),它負(fù)責(zé)均衡流量。通常稱它為linux虛擬服務(wù)器。RS1標(biāo)識(shí)和RS2標(biāo)識(shí)是實(shí)際的服務(wù)器。虛擬服務(wù)器不處理服務(wù)請(qǐng)求,所有的請(qǐng)求都由實(shí)際服務(wù)器處理。 上圖的nat結(jié)構(gòu)非常簡單,可以根據(jù)實(shí)際情況修改網(wǎng)絡(luò)結(jié)構(gòu)。
LVS上的配置過程
負(fù)載均衡是內(nèi)核級(jí)別的一個(gè)功能模塊,發(fā)行版上一般不會(huì)提供負(fù)載均衡的功能。因此我們需要重新編譯內(nèi)核,使其支持負(fù)載均衡功能。我們選擇的是最新版的內(nèi)核2.6.14版本。
以下是編譯并使新內(nèi)核正確工作的過程。
首先從www.kernel.org上下載源代碼包module-init-tools-3.1.tar.bz2
從名字上就可以看出這是和模塊相關(guān)的一些工具。我們將負(fù)載均衡作為模塊加載到內(nèi)核里。
用tar ?Cjzvf 解壓縮,接著按照README中的步驟安裝即可。
./configure ?Cprefix=/
make moveold
make
make install
此時(shí)module-init-tools安裝完畢。
下面安裝2.6.14內(nèi)核的過程
從www.kernel.org上下載源代碼包linux-2.6.14.2.tar.bz2到/usr/src/目錄
用tar ?Cjxvf linux-2.6.14.2.tar.bz2命令解壓縮
解壓縮之后產(chǎn)生linux-2.6.14 目錄
將此目錄更名 mv linux-2.6.14 linux
然后執(zhí)行 cd /usr/src/linux
make menuconfig 這是一個(gè)圖形化的內(nèi)核配置工具??梢杂眠@個(gè)工具來選擇新內(nèi)核的
功能。在此就不詳細(xì)說明了,只需要選擇exit即可。
make 這是編譯內(nèi)核的命令 這個(gè)命令執(zhí)行的時(shí)間比較長 需要耐心等待了 :-)
make modules 這是編譯內(nèi)核模塊的命令 時(shí)間不會(huì)太長 看你的cpu速度了
make modules_install 當(dāng)然是安裝模塊了
至此一個(gè)嶄新的屬于你自己的內(nèi)核就編譯完成了
接下來還需要做一些工作使新內(nèi)核順利工作
當(dāng)內(nèi)核編譯完成的時(shí)候,新的內(nèi)核的位置是在/usr/src/linux/arch/i386/boot下,其中的bzImage 就是你的新內(nèi)核 : -)
cp bzImage /boot 將新內(nèi)核拷貝到系統(tǒng)的啟動(dòng)分區(qū)
接下來修改grub(如果你裝的是lilo也沒關(guān)系,方法大致上是一樣的)
vi /etc/grub.conf
追加以下內(nèi)容
title linux virtue server
root (hd0,0)
kernel /boot/bzImage root=/dev/hda1
然后保存退出。
Reboot 重起就會(huì)發(fā)現(xiàn)在選擇時(shí)多了一項(xiàng)linux virtue server
選擇該項(xiàng)就可以用你的新內(nèi)核了.
接下來介紹ipvsadm
ipvsadm是配置內(nèi)核流量分配策略的工具。它可以讓我們選擇采用什么策略來轉(zhuǎn)發(fā)數(shù)據(jù)包。
最簡單的策略就是輪循了。就象玩牌時(shí)發(fā)牌一樣。外部的請(qǐng)求輪流發(fā)給實(shí)際服務(wù)器。
它的安裝太簡單了,在README中有說明 : )
安裝完畢執(zhí)行以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
./ipvsadm -C
./ipvsadm ?CA ?Ct 192.168.88.23:80 ?Cs rr
./ipvsadm ?Ca ?Ct 192.168.88.23:80 -r 10.0.0.2:80 - m
./ipvsadm ?Ca ?Ct 192.168.88.23:80 -r 10.0.0.3:80 - m
./ipvsadm ?Ca ?Ct 192.168.88.23:80 -r 10.0.0.4:80 - m
//第一句的意思是使linux主機(jī)支持?jǐn)?shù)據(jù)包轉(zhuǎn)發(fā)
//第二句的意思是清空內(nèi)核虛擬列表
//第三句的意思是加入一項(xiàng)虛擬服務(wù),提供服務(wù)的是192.168.88.23的80端口
//-s 參數(shù) 指定調(diào)度方式 rr 為輪循
//第四句的意思是為上面的虛擬服務(wù)加入一個(gè)實(shí)際服務(wù)器,ip為10.0.0.2,端口為80
//-m參數(shù)指定nat 方式
//接下來的不用我說了吧 : -)
上面是我測試時(shí)用的代碼。簡單說明一下它的結(jié)構(gòu):用一臺(tái)機(jī)器做負(fù)載均衡,它有兩塊網(wǎng)卡,1塊的ip為192.168.88.23,這個(gè)ip是整個(gè)集群對(duì)外的ip.另一塊的ip 為10.0.0.1.這個(gè)ip
的作用當(dāng)然就是連接實(shí)際的服務(wù)器了J 我測試時(shí)用三臺(tái)機(jī)器做實(shí)際服務(wù)器,ip為10.0.0.2
10.0.0.3和10.0.0.3,他們的網(wǎng)關(guān)都設(shè)為10.0.0.1,系統(tǒng)都為redhat9.0,都由apache做服務(wù)。
如果大家有公有ip 的話就把原來ip為 192.168.88.23的網(wǎng)卡設(shè)為你的公有ip就行了。
關(guān)于iptables
我下了新版本的iptables-1.3.4。解壓縮之后按照INSTALL中的說明安裝完畢之后執(zhí)行
./iptables ?Ct nat ?CA POSTROUTING ?Cs 10.0.0.0/24 ?Cd 0.0.0.0/0 -j SNAT ?Cto 192.168.88.23。
測試
在10.0.0.2,10.0.0.3.10.0.0.4上分別布置不同的index.html. redhat9上默認(rèn)的主頁位置在
/var/www/html/.然后執(zhí)行service httpd start就行了。在192.168.88.21上瀏覽
192.168.88.23,會(huì)出現(xiàn)其中的一個(gè)index.html.這里需要注意一下瀏覽器的設(shè)置,需要?jiǎng)h除臨時(shí)文件之后刷新一下才能看到其他的index.html.這是瀏覽器的問題,不是配置出錯(cuò)。能夠看到不同的主頁面說明3個(gè)實(shí)際服務(wù)器都能正常工作,集群就可以工作了。
問題
如果負(fù)責(zé)流量分配的機(jī)器癱瘓了怎么辦或者實(shí)際服務(wù)器出了問題該怎么解決?
第一個(gè)問題采用的方法是熱備份。這也是大多數(shù)集群采用的方法。需要heatbeat軟件
第二個(gè)問題采用的方法是在負(fù)載均衡機(jī)器上配置keepalive軟件。