如何架構高性價比的分散式運算機叢集(1)

來源:互聯網
上載者:User

正如你所看到的一樣,你的機器在絕大多數時間是閒置,如果你在Windows下用工作管理員或其他的Linux 平台的工具例如top,xload)觀察CPU,你會看到CPU的使用率常見在1~2%。事實上,如果你有更多的電腦,這種浪費會加劇,在一個有 300台電腦的部門裡,CPU的空閑率是驚人的。然而這些部門還是需要強大的伺服器用來編譯或類比計算,這樣的情況還會加劇,不止需要一台,因為隨著使用者的增加,即使是8個CPU的伺服器,滿負荷時也不能把任務交給另外的空閑伺服器,因為使用者很少會改變習慣去登陸另外一台伺服器。如果能利用現有的計算資源,把閒置CPU利用起來,或者能讓伺服器智能的遷移負荷,就是你看下去的理由。
叢集的基本單位是單獨的電腦,稱為節點 (node)。其可增長的特性,稱為延展性(Scale),也就是向叢集中加入電腦。叢集沒有嚴格的定義,可以說就是許多利用高速聯結的,具有高速運算能力的,具有單一使用者介面的電腦群組合。這並不是叢集的定義,而是表面現象的描述。叢集中的節點需要硬體儘可能的一致,不一致的硬體叢集稱為異構叢集,雖然這並不能改變叢集的特性,但是異構導致叢集會花費額外的時間來處理由於異構帶來的延遲,另一方面這也是叢集的優勢,任何其他的多CPU系統都是嚴格要求 CPU是一致的,叢集就有足夠的自由度增減節點,不受類型的限制。
本文選擇MOSIX作為叢集的方案,並使用無盤節點。架構叢集並沒有想象中那樣複雜,參考下面的步驟可以一步步的架構叢集,整個的方案並不是很昂貴,而且便於擴充。使用RedHat是因為在中國這是最有權威的版本,不論是初學者還是專業工作者,都可以在RedHat Linux中定製自己的版本。使用終端伺服器LTSP是因為結構簡單,便於快速擴充。使用的硬體是可以改進的,比如使用雙CPU的主板和至強處理器,這樣單一機櫃中處理器就密集到48塊CPU,本例中可以使用24塊CPU。除了CPU以外,還可以使用千兆網卡或光纖網卡,交換器可以使用光纖交換器,記憶體總數可以達到48GB。但是隨著硬體的升級,整體價格就會過高,而效能的提升並不是按比例的,因此本例的配置是性價比較好的組合。MOSIX是利用給核心原始碼加補丁的辦法,增加核心的功能來達到核心級的叢集支援,通過編譯後的核心啟動的系統間類似SMP多處理器的系統,從外面的角度看只有一台有很多處理器的龐大機器,但是內部是用很多機器架構成的。而MOSIX叢集的特點是對使用者透明,原有的應用程式不需要修改代碼即可以在叢集中分布計算。
有幾種情況是不需要使用叢集系統的,使用類似格線運算的指令碼就可以完成計算,比如三維動畫的渲染,這類計算可以使用不同的節點,不需要對稱的硬體,不需要一致的作業系統需要應用具有支援不同作業系統的版本),只需要按照處理器來分割渲染的任務段,在每個節點上運行相應的任務段,然後合成所有節點的計算結果。因為計算資料是離散的結果的連續是視覺的連續),因此用類似格線運算的指令碼也可以完成。這類計算不需要使用叢集也可以完成。
下面本文將告訴你如何準備硬體和軟機環境。首先是規劃你的計算環境。
硬體環境:
49U標準機櫃,安裝1U的交換器,24台2U機架式機箱。
1U的24口100MB交換器不是集線器)
Intel P4 2GHz CPU,1GB DDR,Intel 845D主板,軟碟機,NVIDIA顯卡能啟動X Windows就可以),2U機架式機箱,3C905B 10/100MB自適應網卡,網關需要配置光碟機,80GB硬碟和雙網卡。
5類線,按照693A壓3米網線24根。
顯示器,鍵盤,滑鼠僅在安裝時使用。
軟體環境和必要的安裝包除特殊說明外,高版本不一定適用):
Redhat 7.2 CD1 和CD2安裝光碟片 www.redhat.com
dhcp-3.0.1rc9-1.i386.rpm是支援啟動核心調用的DHCP版本www.redhat.com
dhcpcd-1.3.22pl1-7.i386.rpm是DHCPD守護進程www.redhat.com
mknbi-1.2-6.noarch.rpm是製作用戶端啟動核心的必要軟體包www.redhat.com
MOSIX-1.6.0.tar.gz是原始的MOSIX檔案,最新的版本是1.7.0 www.mosix.com
MOSKRN-1.6.0.tar.gz是原始MOSIX核心檔案,最新的版本是1.7.0 www.moxis.com
openmosix-kernel-2.4.18-openmosix2.i386.rpm是MOSIX分支版本的通用核心,最新的版本是2.4.19 www.openmosix.org
openmosix-kernel-2.4.18-openmosix2.i686.rpm是MOSIX分支版本的新處理器核心,最新的版本是2.4.19 www.openmosix.org
openmosix-kernel-smp-2.4.18-openmosix2.i686.rpm是MOSIX分支版本的多處理器核心,最新的版本是2.4.19 www.openmosix.org
openmosix-kernel-2.4.18-openmosix2.src.rpm是MOSIX分支版本的原始碼www.openmosix.org
openmosix-tools-0.2.2-1.i386.rpm是MOSIX分支版本的用戶端工具www.openmosix.org
ltsp_core-3.0-11.i386.rpm是LTSP的核心檔案www.ltsp.org
ltsp_kernel-3.0-3.i386.rpm是LTSP的核心www.ltsp.org
ltsp_floppyd-3.0.0-2.i386.rpm是LTSP的磁碟片工具www.ltsp.org
ltsp_initrd_kit-3.0.1-i386.tgz是LTSP的啟動製作工具www.ltsp.org
linux_kernel-2.4.18.tar.gz是需要編譯的核心源碼www.kernel.org
網路設定環境:
網關對外網卡配置10.193.15.169,子網路遮罩255.255.255.0給內部網使用,用於登入和提交進程。網關對內網卡配置192.168.0.254,子網路遮罩255.255.255.0,網關為10.193.15.169給叢集用於DHCP伺服器,NFS 伺服器,LTSP伺服器。
網關對內網卡配置DHCP,分配地址從192.168.0.100到192.168.0.253,子網路遮罩255.255.255.0,都是C類。
當以上條件都具備時,可以開始架構MOSIX叢集。
1.安裝所有硬體,並能確保可以從光碟片啟動閘道伺服器系統,節點可以使用磁碟片啟動,檢查BIOS的啟動設定,並確認可以正確啟動。將所有節點和交換器安裝到機柜上,用網線串連交換器和各節點,網關需要額外的網線串連到區域網路,因為可以稱叢集計算環境為計算場(Computing Farm),因此對應區域網路稱叢集系統的網路為計算網路。串連好電源後,使用兩套顯示器和鍵盤滑鼠,分別串連一台節點機和閘道伺服器。
2.安裝RedHat 7.2版本在具有兩塊網卡的閘道伺服器上,分區使用自動分區比較簡單,本文不討論Linux其他問題),選擇定製安裝,但不要安裝所有的軟體包,除預設的選擇外,需要額外選擇軟體開發和核心開發兩組軟體包,安裝時沒有選擇的軟體包,可以在系統正常啟動後參考“如何編譯核心”中的軟體包來安裝。安裝到網路設定時,按照網路環境配置IP地址,需要配置DNS的需要修改對外網卡的設定,使用小寫mosix為主機名稱。安裝完後需要驗證閘道伺服器可以正常啟動,按照個人喜好來設定系統,推薦使用文字模式,圖形模式資源消耗較大。另外需要串連到RedHat網站升級有缺陷的軟體包,減少系統漏洞,注意別把核心也升級了,並不是因為本文的操作,而是核心升級後,系統很可能啟動失敗,本文將自己編譯核心。升級完成後重啟,再次確認系統沒有任何錯誤。
3.安裝MOSIX包(openmosix的安裝是另外的分支)需要很多步驟,注意操作步驟的準確性:
A,將所有下載的軟體包上傳到伺服器的/usr/src/tmp目錄下,確認下載的軟體包是完整的,確認md5的校正結果一致:
su -
cd /usr/src/
makdir tmp
md5 package_file_name
B,將RedHat 7.2 CD2放入到光碟機。參考以下操作確認編譯核心需要的軟體包已經存在:
mount /dev/cdrom /mnt/cdrom
cd /mnt/redhat/RPM
rpm -Uvh kernel-headers*
rpm -Uvh kernel-source*
rpm -Uvh kernel-doc*
rpm -Uvh dev86*
rpm -Uvh make-*
rpm -Uvh glibc-devel*
rpm -Uvh cpp*
rpm -Uvh ncurses-devel*
rpm -Uvh binutils*
rpm -Uvh gcc-2*
rpm -Uvh tftp*
cd /usr/src
umount /mnt/cdrom
C,安裝需要的軟體包,展開所有的tar.gz軟體包:
tar xvfz MOSIX-1.6.0.tar.gz
tar xvfz MOSKRN-1.6.0.tar.gz
tar xvfz linux-2.4.18.tar.gz
D,如果展開檔案沒有錯誤,將各個軟體展開目錄移到正確的位置:
mv MOSIX-1.6.0 /usr/src/
mv MOSKRN-1.6.0 /usr/src/
mv linux /usr/src/linux-2.4.18
E,為了避免以往MOSIX指令碼的錯誤,需要確認以下步驟:
chmod goa+x /usr/src/MOSIX-1.6.0/inst/add_kernel_to_grub
mkdir /usr/local/man
F,下面才是真正有趣和讓人著迷的步驟,首先要建立編譯核心設定檔的目錄,這是個好習慣,因為每次的編譯配置不一定相同,後面排錯也會提到相關的問題:
cd /usr/src
mkdir config.backup
cd /usr/src/linux-2.4.7-10/configs
cp kernel-2.4.7-i686.config /usr/src/config.backup/kernel-2.4.8.config
G,將設定檔複製到待編譯核心的目錄:
cd /usr/src/
cp config.backup/kernel-2.4.18.config linux-2.4.18/.config
H,根據你的情況修改Makefiles的EXTRAVERSION部分,原值為18,可改為mosix來標明編譯後的核心版本,並可以區分模組的版本。
cd /usr/src/linux-2.4.18
vi Makefile
EXTRAVERSION = 18
I,開始安裝MOSIX 1.6.0
cd /usr/src/MOSIX-1.6.0
./mosix.install

J,安裝開始後會有一些問題,除新核心加入LILO或GRUB一問回答為G以外的問題都用斷行符號使用預設選擇大寫的字母為預設值)。問題依次為核心原始碼的路徑,新核心的啟動選項添加在那個啟動程式中,核心所包含的庫檔案串連,MOSIX服務的啟動層級,建立MFS裝載目錄,啟動那種核心編譯配置菜單,是否顯示核心編譯詳細過程,是否顯示使用者級編譯詳細過程。隨後系統開始給核心原始碼加補丁,啟動核心編譯配置菜單。


圖1
K,在核心編譯配置菜單中,你可以看到新增加的MOSIX選項

 


圖2
L,選擇進入MOSIX選項並添加直接檔案系統訪問 (Direct File-System Access) 和MOSIX檔案系統 (MOSIX File-System)。用ESC鍵推出當前選單。


圖3
M,添加塊裝置 (Block devices) 的記憶體虛擬盤的支援 (RAM disk support) 和使用初始化進程初始化記憶體虛擬盤 (Initial RAM disk (initrd) support)兩項。



圖4
N,在網路選項 (Networking options) 中增加對IP核心級自動設定 (IP: kernel level autoconfiguration),IP動態地址支援 (IP: DHCP support),IP啟動地址綁定支援 (IP: BOOTP support)。


圖5
O,建議除去SCSI的支援,本例中沒採用SCSI裝置,並且可以避免核心編譯失敗。建議除去音效卡支援。..


圖6



圖7
P,在網路檔案系統 (Network File System) 中增加NFS支援根檔案系統(Root file system on NFS)。



圖8
Q,最後多按一次ESC鍵,提示儲存設定檔,選擇Yes。系統將開始編譯核心,編譯模組,安裝核心,安裝模組。該過程可能會產生一些警告,只要編譯沒退出,並正常完成回到提示符狀態就完成了編譯。


圖9


圖10
R,先不要忙於重啟,需要修改/boot/grub/grub.conf檔案中 MOSIX的核心路徑一行,原路徑為/boot/vmlinuz-2.4.18-mosix,修改為/vmlinuz-2.4.18-mosix。修改完後鍵入reboot可以重新啟動。



圖11
S,這時的啟動菜單中出現Mosix 1.6.0 (2.4.18),選擇該項啟動MOSIX系統



圖12
T,系統啟動中會出現若干錯誤,圖中第一個是由於沒有建立/mfs引起的,第二個是由於MOSIX更改了sshd服務的許可權,而沒啟動另外的MOSIX的sshd引起的。第一次啟動MOSIX系統,會要求配置mosix.map 檔案,斷行符號選擇預設的編輯器進入編輯。


圖13
U,設定檔修改完成後,系統會提示節點的IP地址有變化時需要修改mosix.map檔案中的節點號。因為閘道伺服器是192.168.0.254因此定義為節點1,其他的節點從192.168.0.1開始共有253個節點,節點號從2開始。



圖14


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.