|
|

楼主 |
发表于 2006-6-27 23:33:54
|
显示全部楼层
系統安裝( Red Hat 9 )
我的這個系統使用的是最新的 Red Hat 出版的 Red Hat 9 ,會用這個玩意兒最大的原因是因為 Red Hat 是目前支援的 Linux 軟體最多的一個 Linux Distribution 了,安裝他之後,就比較不會欠東欠西的,此外,很多的軟體都是以 Red Hat 做為測試的平台,因此我就選擇他來做為我的系統平台啊!另外,需要留意的是,由於 Slave 並不需要使用到圖形介面的功能,他單純是用在計算上面,因此我沒有在 slave 上面安裝圖形介面的打算~至於 Master 則安裝了 KDE 這個咚咚喔!好了,Linux 的安裝相信大家應該都要很熟悉了,所以我就不再談安裝的詳細步驟,僅提幾個特別需要注意的地方囉:
Partition 方面:
因為我的硬碟實在是在蠻大的,並且在 Slave 上面也是 120 GB 的硬碟,如果不將 Slave 的硬碟使用的話,實在覺得很浪費,因此,一開始我就規劃將四部主機的硬碟全部都以 NFS 分享到內部網域當中,而為了避免跟系統的檔案放在一起,因此,我就將硬碟分割出除了必要的 partition 之外,其他的就掛載在 /disk1 這個目錄當中,四部主機的 parition 都相同,分別是:
/ : 10 GB
/var : 5 GB
/tmp : 3 GB
Swap : 3 GB ( 因為我每部 Linux 主機上面都有 1.5 GB 的記憶體 )
/disk1: 96 GB
安裝時選擇的套件:
所有的主機都需要底下的套件安裝(註:因為原本的筆記記錄的很亂,所以如果找不到相同的字眼,那就是我寫錯啦!):
Administrattion Tools
Development Tools
Editors
Engineering and Scientific
FTP Server
Kernel Development
Network Servers
Server configuration Tools
Sound and vedio
System Tools
Text-based Internet
Windows File servers
不過, Master 需要額外再增加 X Window 方面的支援,例如 KDE 與 X-Window System 這兩個主要的套件要勾選喔!
系統安裝大致上就是這些吧,如果有疏漏的,請未來在安裝完畢之後,再以原本 Red Hat 9 的光碟來重新安裝他吧!反正 Red Hat 系統都是以 rpm 來安裝的,挺容易安裝的喔!整個安裝完畢後,還花不到幾分鐘呢!
--------------------------------------------------------------------------------
防火牆 ( 含 NAT 主機 ) 與網路設定
由於我們的 Cluster 主要是用在數值運算,因此,當然不需要對外開放網路服務啦!所以,最好就是以私有 IP 來進行網路的設定是比較好的!此外,最好還是要設定好防火牆的啦!我的網域參數預設是這樣的:
Network/netmask:192.168.10.0/255.255.255.0
Master:(對外)140.116.xxx.yyy;(對內)192.168.10.30, Gateway 為對外的 Gateway 喔!並且有設定 NAT 啊!
Slave:192.168.10.10, 192.168.10.20, 192.168.10.40 三部,Gateway 為 192.168.10.30
網路參數的各個檔案是這樣的:
各個主機的主機名稱請修改:/etc/sysconfig/network
各個主機的網路卡設定項目請修改:/etc/sysconfig/network-scripts/ifcfg-eth0
各個主機的 DNS 查尋系統請修改:/etc/resolv.conf
各個主機的內部主機名稱查尋系統請修改:/etc/hosts,我的 /etc/hosts 如下:
127.0.0.1 localhost localhost.localdomain
192.168.10.10 node1.cluster
192.168.10.20 node2.cluster
192.168.10.30 server.cluster
192.168.10.40 node4.cluster
而我的每部主機先將所有的網路服務都給他關掉去,僅剩下 SSH 這個網路協定存在而已~所以,我利用 Red Hat 提供的 ntsysv 這個指令來選擇開機時啟動的項目有:
atd
crond
iptables
keytable
network
random
sshd
syslogd
xinetd
至於防火牆系統的規劃上面,由於 Master 主機 (192.168.10.30) 具有 NAT 的功能,所以必須要修改一下他的防火牆機制,因此,就有兩個不同的防火牆機制 scripts 囉!另外,由於擔心外來的入侵攻擊,因此,在這個 Cluster 的系統當中,我的 iptables 防火牆機制是使用『MAC(網路卡卡號)』來做為設定的基準,而不是使用 IP 啊!為什麼呢?因為反正我僅允許我自己同網域內的幾部電腦連進來而已,當然沒有必要針對 IP 啊!所以囉,就必須要收集四部主機的網路卡來允許他進入囉。此外,由於我可能並不在 Cluster 前面操作,因此會啟用一兩部主機的網路卡卡號,好讓他能夠進入 Cluster 呦!底下就將我的防火牆機制給他列出來一下:
Master: #!/bin/bash
# This program is for iptables' rules
# VBird 2003/05/02
#
# 0. PATH and modules
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
#
# 1. clear the rules and make the policys
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
#
# 2. NAT services
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE
#
# 3. Trust network and conditions
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m mac --mac-source XX:YY:ZZ:WW Q P -j ACCEPT
# 上面這一行就是網路卡的卡號啦!
Slave:
Slave 的防火牆機制跟 Master 幾乎一模一樣,只是因為在內部啊,所以不需要啟動 NAT 的服務即可!上面的給改一改先~
好啦!網路的設定與防火牆就到這裡為止,要記得喔,你的網路必須要已經能夠正確的啟動了!如果還是無法啟動網路,或者是防火牆機制還是有問題,那麼對外的那個網路卡的網路線還是先給他拔掉吧!比較安全一些些的啦!等到都設定妥當,尤其是防火牆,然後才來啟動他吧!
--------------------------------------------------------------------------------
NFS 架設規劃
由於我這裡預計要設定 NIS ,並且每部主機的 /disk1 都要分享出去,因此,每部主機都必須要開放 NFS 的服務喔!並且,每一部主機的設定都可以相同吶!這樣比較容易來設定囉~此外,比較不一樣的地方在於 Master 這一部,由於我的 Cluster 所有的帳號都在 NIS 的管制之中,因此,我將 Master 的 /home 也分享出來,並且每部 Slave 主機都掛載 Master 的 /home 才成!
這個 NFS 在 Cluster 當中是相當重要的,為什麼呢?因為我們不是在四部主機上面工作嗎,而這四部主機會去讀取的『資料』其實都是『在本機上面可以看的到的』資料才行,這還包括底下我們會持續介紹的 mpich 這個軟體的函式庫呢!也就是說:『在 Cluster 裡面,所有的機器會使用到的資料必須都在相同的目錄當中!』所以,這就是為什麼我們要對 /home 進行分享,以及進行 NIS 的設定了!此外,因為我的 Server 這部 Master 機器分享出去的目錄中,已經含有 /disk1 這個 partition,此外,還通通將他掛載在 /cluster/server 底下,因此,可以建議:『未來在安裝所有的 Cluster 需要的套件資料時,例如 Compiler 以及 MPICH 等等,都可以安裝到 /cluster/server 這個目錄底下,以使所有的主機都能夠使用同一個 partition 來源的資料喔!』
設定程序:
Master:
1. 啟動 portmap 並且設定開機啟動:
[root @server root]# /etc/rc.d/init.d/portmap start
[root @server root]# chkconfig --level 35 portmap on
2. 設定 NFS 分享出去:
[root @server root]# vi /etc/exports
/home 192.168.10.0/24(rw,async,no_root_squash)
/disk1 192.168.10.0/24(rw,async,no_root_squash)
[root @server root]# exportfs -rv
[root @server root]# /etc/rc.d/init.d/nfs start
[root @server root]# chkconfig --level 35 nfs on
3. 設定預計的掛載點:
[root @server root]# mkdir -p /cluster/node1
[root @server root]# mkdir -p /cluster/node2
[root @server root]# mkdir -p /cluster/node4
[root @server root]# mkdir -p /cluster/server
Slave:
1. 啟動 portmap 並且設定開機啟動:
[root @node1 root]# /etc/rc.d/init.d/portmap start
[root @node1 root]# chkconfig --level 35 portmap on
2. 設定 NFS 分享出去:
[root @node1 root]# vi /etc/exports
/disk1 192.168.10.0/24(rw,async,no_root_squash)
[root @node1 root]# exportfs -rv
[root @node1 root]# /etc/rc.d/init.d/nfs start
[root @node1 root]# chkconfig --level 35 nfs on
3. 設定預計的掛載點:
[root @node1 root]# mkdir -p /cluster/node1
[root @node1 root]# mkdir -p /cluster/node2
[root @node1 root]# mkdir -p /cluster/node4
[root @node1 root]# mkdir -p /cluster/server
掛載程序:
Master:
將底下這些指令測試執行一下,如果成功後,將指令寫入 /etc/rc.d/rc.local 當中
[root @server root]# mount -t nfs -o bg,intr server.cluster:/disk1 /cluster/server
[root @server root]# mount -t nfs -o bg,intr node1.cluster:/disk1 /cluster/node1
[root @server root]# mount -t nfs -o bg,intr node2.cluster:/disk1 /cluster/node2
[root @server root]# mount -t nfs -o bg,intr node4.cluster:/disk1 /cluster/node4
Slave:
將底下這些指令測試執行一下,如果成功後,將指令寫入 /etc/rc.d/rc.local 當中 [root @node1 root]# mount -t nfs server.cluster:/home /home
[root @node1 root]# mount -t nfs -o bg,intr server.cluster:/disk1 /cluster/server
[root @node1 root]# mount -t nfs -o bg,intr node1.cluster:/disk1 /cluster/node1
[root @node1 root]# mount -t nfs -o bg,intr node2.cluster:/disk1 /cluster/node2
[root @node1 root]# mount -t nfs -o bg,intr node4.cluster:/disk1 /cluster/node4
呵呵!這樣就設定成功了!我們每一部主機『看起來』就好像有 400 GB 的硬碟空間啊!可怕了吧! ^_^
--------------------------------------------------------------------------------
NIS 架設規劃
NIS 的設定也是很簡單,不過主要還是需要分為 NIS Server 與 NIS Client 兩部份來設定的!請注意,在設定0 |
|