歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 如何架構高性價比的分布式計算機集群(1)

如何架構高性價比的分布式計算機集群(1)

日期:2017/2/27 9:41:59   编辑:更多Linux

正如你所看到的一樣,你的機器在絕大多數時間是空閒的,如果你在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 tmpmd5 package_file_nameB,將RedHat 7.2 CD2放入到光驅。參考以下操作確認編譯內核需要的軟件包已經存在:mount /dev/cdrom /mnt/cdromcd /mnt/redhat/RPMrpm -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/srcumount /mnt/cdromC,安裝需要的軟件包,展開所有的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.gzD,如果展開文件沒有錯誤,將各個軟件展開目錄移到正確的位置:mv MOSIX-1.6.0 /usr/src/mv MOSKRN-1.6.0 /usr/src/ mv linux /usr/src/linux-2.4.18E,為了避免以往MOSIX腳本的錯誤,需要確認以下步驟:chmod goa+x /usr/src/MOSIX-1.6.0/inst/add_kernel_to_grub mkdir /usr/local/manF,下面才是真正有趣和讓人著迷的步驟,首先要創建編譯內核配置文件的目錄,這是個好習慣,因為每次的編譯配置不一定相同,後面排錯也會提到相關的問題:cd /usr/src mkdir config.backupcd /usr/src/linux-2.4.7-10/configscp kernel-2.4.7-i686.config /usr/src/config.backup/kernel-2.4.8.configG,將配置文件復制到待編譯內核的目錄:cd /usr/src/cp config.backup/kernel-2.4.18.config linux-2.4.18/.configH,根據你的情況修改Makefiles的EXTRAVERSION部分,原值為18,可改為mosix來標明編譯後的內核版本,並可以區分模塊的版本。cd /usr/src/linux-2.4.18vi MakefileEXTRAVERSION = 18I,開始安裝MOSIX 1.6.0cd /usr/src/MOSIX-1.6.0./mosix.install




J,安裝開始後會有一些問題,除新內核加入LILO或GRUB一問回答為G以外的問題都用回車使用缺省選擇(大寫的字母為缺省值)。問題依次為內核源代碼的路徑,新內核的啟動選項添加在那個啟動程序中,內核所包含的庫文件連接,MOSIX服務的啟動級別,創建MFS裝載目錄,啟動那種內核編譯配置菜單,是否顯示內核編譯詳細過程,是否顯示用戶級編譯詳細過程。隨後系統開始給內核源代碼加補丁,啟動內核編譯配置菜單。

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

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

圖3M,添加塊設備 (Block devices) 的內存虛擬盤的支持 (RAM disk support) 和使用初始化進程初始化內存虛擬盤 (Initial RAM disk (initrd) support)兩項。

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

圖5O,建議除去SCSI的支持,本例中沒采用SCSI設備,並且可以避免內核編譯失敗。建議除去聲卡支持。..

圖6

圖7P,在網絡文件系統 (Network File System) 中增加NFS支持根文件系統(Root file system on NFS)。

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

圖9

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

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

圖12T,系統啟動中會出現若干錯誤,圖中第一個是由於沒有創建/mfs引起的,第二個是由於MOSIX更改了sshd服務的權限,而沒啟動另外的MOSIX的sshd引起的。第一次啟動MOSIX系統,會要求配置mosix.map 文件,回車選擇缺省的編輯器進入編輯。



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

圖14

正如你所看到的一樣,你的機器在絕大多數時間是空閒的,如果你在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 tmpmd5 package_file_nameB,將RedHat 7.2 CD2放入到光驅。參考以下操作確認編譯內核需要的軟件包已經存在:mount /dev/cdrom /mnt/cdromcd /mnt/redhat/RPMrpm -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/srcumount /mnt/cdromC,安裝需要的軟件包,展開所有的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.gzD,如果展開文件沒有錯誤,將各個軟件展開目錄移到正確的位置:mv MOSIX-1.6.0 /usr/src/mv MOSKRN-1.6.0 /usr/src/ mv linux /usr/src/linux-2.4.18E,為了避免以往MOSIX腳本的錯誤,需要確認以下步驟:chmod goa+x /usr/src/MOSIX-1.6.0/inst/add_kernel_to_grub mkdir /usr/local/manF,下面才是真正有趣和讓人著迷的步驟,首先要創建編譯內核配置文件的目錄,這是個好習慣,因為每次的編譯配置不一定相同,後面排錯也會提到相關的問題:cd /usr/src mkdir config.backupcd /usr/src/linux-2.4.7-10/configscp kernel-2.4.7-i686.config /usr/src/config.backup/kernel-2.4.8.configG,將配置文件復制到待編譯內核的目錄:cd /usr/src/cp config.backup/kernel-2.4.18.config linux-2.4.18/.configH,根據你的情況修改Makefiles的EXTRAVERSION部分,原值為18,可改為mosix來標明編譯後的內核版本,並可以區分模塊的版本。cd /usr/src/linux-2.4.18vi MakefileEXTRAVERSION = 18I,開始安裝MOSIX 1.6.0cd /usr/src/MOSIX-1.6.0./mosix.install



J,安裝開始後會有一些問題,除新內核加入LILO或GRUB一問回答為G以外的問題都用回車使用缺省選擇(大寫的字母為缺省值)。問題依次為內核源代碼的路徑,新內核的啟動選項添加在那個啟動程序中,內核所包含的庫文件連接,MOSIX服務的啟動級別,創建MFS裝載目錄,啟動那種內核編譯配置菜單,是否顯示內核編譯詳細過程,是否顯示用戶級編譯詳細過程。隨後系統開始給內核源代碼加補丁,啟動內核編譯配置菜單。

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

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

圖3M,添加塊設備 (Block devices) 的內存虛擬盤的支持 (RAM disk support) 和使用初始化進程初始化內存虛擬盤 (Initial RAM disk (initrd) support)兩項。

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

圖5O,建議除去SCSI的支持,本例中沒采用SCSI設備,並且可以避免內核編譯失敗。建議除去聲卡支持。..

圖6

圖7P,在網絡文件系統 (Network File System) 中增加NFS支持根文件系統(Root file system on NFS)。

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

圖9

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

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

圖12T,系統啟動中會出現若干錯誤,圖中第一個是由於沒有創建/mfs引起的,第二個是由於MOSIX更改了sshd服務的權限,而沒啟動另外的MOSIX的sshd引起的。第一次啟動MOSIX系統,會要求配置mosix.map 文件,回車選擇缺省的編輯器進入編輯。



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

圖14

正如你所看到的一樣,你的機器在絕大多數時間是空閒的,如果你在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 tmpmd5 package_file_nameB,將RedHat 7.2 CD2放入到光驅。參考以下操作確認編譯內核需要的軟件包已經存在:mount /dev/cdrom /mnt/cdromcd /mnt/redhat/RPMrpm -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/srcumount /mnt/cdromC,安裝需要的軟件包,展開所有的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.gzD,如果展開文件沒有錯誤,將各個軟件展開目錄移到正確的位置:mv MOSIX-1.6.0 /usr/src/mv MOSKRN-1.6.0 /usr/src/ mv linux /usr/src/linux-2.4.18E,為了避免以往MOSIX腳本的錯誤,需要確認以下步驟:chmod goa+x /usr/src/MOSIX-1.6.0/inst/add_kernel_to_grub mkdir /usr/local/manF,下面才是真正有趣和讓人著迷的步驟,首先要創建編譯內核配置文件的目錄,這是個好習慣,因為每次的編譯配置不一定相同,後面排錯也會提到相關的問題:cd /usr/src mkdir config.backupcd /usr/src/linux-2.4.7-10/configscp kernel-2.4.7-i686.config /usr/src/config.backup/kernel-2.4.8.configG,將配置文件復制到待編譯內核的目錄:cd /usr/src/cp config.backup/kernel-2.4.18.config linux-2.4.18/.configH,根據你的情況修改Makefiles的EXTRAVERSION部分,原值為18,可改為mosix來標明編譯後的內核版本,並可以區分模塊的版本。cd /usr/src/linux-2.4.18vi MakefileEXTRAVERSION = 18I,開始安裝MOSIX 1.6.0cd /usr/src/MOSIX-1.6.0./mosix.install



J,安裝開始後會有一些問題,除新內核加入LILO或GRUB一問回答為G以外的問題都用回車使用缺省選擇(大寫的字母為缺省值)。問題依次為內核源代碼的路徑,新內核的啟動選項添加在那個啟動程序中,內核所包含的庫文件連接,MOSIX服務的啟動級別,創建MFS裝載目錄,啟動那種內核編譯配置菜單,是否顯示內核編譯詳細過程,是否顯示用戶級編譯詳細過程。隨後系統開始給內核源代碼加補丁,啟動內核編譯配置菜單。

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

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

圖3M,添加塊設備 (Block devices) 的內存虛擬盤的支持 (RAM disk support) 和使用初始化進程初始化內存虛擬盤 (Initial RAM disk (initrd) support)兩項。

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

圖5O,建議除去SCSI的支持,本例中沒采用SCSI設備,並且可以避免內核編譯失敗。建議除去聲卡支持。..

圖6

圖7P,在網絡文件系統 (Network File System) 中增加NFS支持根文件系統(Root file system on NFS)。

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

圖9

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

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

圖12T,系統啟動中會出現若干錯誤,圖中第一個是由於沒有創建/mfs引起的,第二個是由於MOSIX更改了sshd服務的權限,而沒啟動另外的MOSIX的sshd引起的。第一次啟動MOSIX系統,會要求配置mosix.map 文件,回車選擇缺省的編輯器進入編輯。



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

圖14



Copyright © Linux教程網 All Rights Reserved