1. 配置防火牆 正確配置防火牆的過濾規則,否則會造成NFS文件系統的掛載失敗,NIS賬戶認證的失敗,mpirun遠程任務實例投放的失敗。一般情況下,計算集群是在內部區域網中使用,所以可以不用太顧及安全問題,直接關閉掉所有節點伺服器的防火牆即可。 相關命令如下: 2. 配置集群區域網ip與主機名的映 ...
1. 配置防火牆
正確配置防火牆的過濾規則,否則會造成NFS文件系統的掛載失敗,NIS賬戶認證的失敗,mpirun遠程任務實例投放的失敗。一般情況下,計算集群是在內部區域網中使用,所以可以不用太顧及安全問題,直接關閉掉所有節點伺服器的防火牆即可。
相關命令如下:
service iptables stop #或者 /etc/init.d/iptables stop #以上這兩種方法,即時生效但重啟後複原 #或者 chkconfig iptables on #重啟後永久生效
2. 配置集群區域網ip與主機名的映射
為了方便,可能需要將節點主機名改為node1、node2、node3……的統一形式,修改主機名的命令是:
hostname node1 #將主機名修改成了node1,但機器重啟後會失效
永久修改的方法是修改/etc/sysconfig/network文件中的hostname一行:
HOSTNAME=node1
修改每個節點中的文件/etc/hosts,將集群中各個節點主機名與ip的對應關係寫進去。
3. 配置NFS共用文件系統
分散式並行計算一般要求各個節點伺服器的應用軟體環境和工作目錄環境要保持一致,如果在每個節點上都要配置一遍,會特別麻煩。所以採用NFS共用文件系統,將應用軟體和工作目錄都部署在公共目錄,就能能很好的解決這一困難。只需部署一次,所有的節點伺服器就都能訪問。
首先在所有的節點安裝nfs套件,採用命令:
yum install nfs
然後,選在一臺硬碟存儲較大的節點伺服器,例如node0,將其作為NFS server進行配置。具體做法是,先配置/etc/exports文件,在這個文件中寫入:
/tmp node*(rw,no_root_squash) #將允許主機名為node*(*代表通配符)的伺服器以rw形式掛載tmp目錄。
然後在NFS server節點上執行如下命令:
exportfs –ar #每次修改/etc/exports文件後都要執行一下這個命令。 service nfs start #啟動nfs服務
其它的節點伺服器,作為NFS client進行配置,需要執行如下命令:
service nfs start #啟動nfs服務 mount –t nfs node0:/share /share #強nfs server(即node0)的/share目錄掛載到本地的/share目錄
通過修改/etc/fstab文件可以實現開機自動掛載,在此文件中填入一行:
192.168.44.130:/share /share nfs defaults 0 0
其它一下相關命令:
showmount -e 192.168.0.30 #在客戶端使用此命令檢查NFS SERVER上export出來的目錄 showmount –a #一般在NFS SERVER上用,顯示已經mount上本機nfs目錄的client機器 chkconfig --level 35 nfs on #配置開機自動啟動nfs服務
4. 配置NIS服務
分散式並行計算要求各個節點伺服器上的賬戶信息環境要一直,如果在每台節點伺服器上都配置一遍用戶信息,工作量太大且重覆。這個問題可以通過配置一臺NIS伺服器來解決,所有主機都可以到NIS伺服器上查找用戶信息進行賬戶認證。NIS(Network information service)又叫YP(Yellow Pages,電話簿的意思)。
首先在所有的計算節點上安裝NIS相關套件,命令如下:
yum install yp* yum install xinetd
在所有的節點上修改/etc/xinetd.d/time,使disable=no,然後執行如下命令:
service xinetd restart #啟動xinetd服務 nisdomainname cluster #設置NIS域的名字,在這設成了cluster
在所有的節點上修改/etc/sysconfig/network文件,加入一行:
NISDOMAIN=cluster
選擇一臺節點伺服器,例如node0,作為NIS server進行配置,配置/etc/ypserv.conf文件,添加三行:
127.0.0.0/255.255.255.0 : * : * : none 192.168.0.0/255.255.255.0 : * : * : none * : * : * : deny
其中192.168.0.0代表網段,要根據具體網路配置填寫。
然後創建賬戶資料庫,執行命令:
/usr/lib64/yp/ypinit –m #添加用戶時,只需要在NIS服務端增加,然後執行/usr/lib64/yp/ypinit –m更新一下資料庫即可
創建資料庫,之後要啟動服務ypserv和yppasswdd:
service ypserv start service yppasswdd start chkconfig --level 35 ypserv on #開機啟動服務 chkconfig --level 35 yppasswdd on #開機啟動服務
其他計算節點伺服器作為NIS client進行配置,首先配置/etc/yp.conf 添加兩行:
nisdomain cluster #設置NIS域的名字,在這設成了cluster ypserver node0 #設置NIS server的主機名,在這設成了node0
配置/etc/passwd 添加1行:
+:::::: #註意冒號的數量
配置/etc/nsswitch.conf,添加如下4行:
passwd: files nis nisplus shadow: files nis nisplus group: files nis nisplus hosts: files nis dns
最後執行命令:
service ypbind restart #啟動服務 chkconfig --level 35 ypbind on #開機自動啟動ypbind的方法
5. 配置ssh無密碼登陸
在家目錄沒有配置在共用文件系統中的情況下,若要主機B無密碼登陸主機A,則要配置主機A,在主機A用戶家目錄中建立.ssh目錄,cd進去之後上執行如下:
ssh-keygen -t rsa #然後一直回車鍵,按照預設將生成的密鑰保存在.ssh/id_rsa文件中。 cp id_rsa.pub authorized_keys #這步完成後,正常情況下就可以無密碼登錄本機了。 scp authorized_keys test@B:/homename/.ssh #把剛剛產生的authorized_keys文件拷一份到主機B上. chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 authorized_keys 進入主機B的.ssh目錄,改變authorized_keys文件的許可許可權
按照以上步驟,只能讓B無密碼訪問A, 所以為了讓集群內每個節點都能相互無密碼訪問,就需要把沒兩台節點配對相互按照上面步驟配置,工作量特別大。
如果家目錄配置在了共用文件系統中,則要簡單的多,執行執行以下命令,即可讓集群內每個節點都能相互無密碼訪問
ssh-keygen -t rsa cp id_rsa.pub authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
另外在/etc/ssh/ssh_config文件中添加StrictHostKeyChecking no,這樣在第一次ssh登陸時,系統不會再提示是否將主機加入到known hosts中。
6. 安裝並配置openmpi
安裝openmpi的一版配置如下,如果使用intel的編譯器,需要先安裝intel編譯器,然後執行命令:
./configure CC=icc CXX=icc FC=ifort --prefix=/opt/openmpi/ --enable-static --enable-mpi-cxx ps:一定要新建一個目錄作為安裝目錄
如果使用系統自帶預設編譯器,則執行如下命令:
./configure --prefix=/opt/openmpi/ --enable-static --enable-mpi-cxx ps:一定要新建一個目錄作為安裝目錄
最後編譯openmpi,命令如下:
make all install
7. 安裝配置負載均衡系統(可選)
如果想增加作業調度功能,則還需要安裝lsf等軟體,這些軟體的配置較為負載,而且一般小型集群沒有必要使用,所以這裡不再贅述。