歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

openmpi+NFS+NIS搭建分布式計算集群,openmpinis

openmpi+NFS+NIS搭建分布式計算集群,openmpinis


openmpi+NFS+NIS搭建分布式計算集群,openmpinis


 

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等軟件,這些軟件的配置較為負載,而且一般小型集群沒有必要使用,所以這裡不再贅述。

http://xxxxxx/Linuxjc/1134414.html TechArticle

Copyright © Linux教程網 All Rights Reserved