centos下配置MPI,無密碼SSH和NFS

     本文主要包括個節點MPI環境的安裝,各節點無密碼SSH連接,NFS配置。

一、各節點MPI環境的安裝

    準備工作:centos6.2_x64系統,mpich2-1.4.1p1.tar。
    配置三個節點的MPI機羣,三節點分別爲:host1,host2,host3。其中host2爲主控節點。
    每個節點都添加相同的用戶名,有利於SSH無密碼訪問,我這裏使用zll。
    各節點名字最好有規律一點,修改方法有兩種:
  1.用vi打開/etc/sysconfig/network,命令式:vi /etc/sysconfig/network,然後看到裏面有一個hostname =     ***,把後面的   修改爲你想要的     host name即可,需重啓。這是修改單節點的名字。

   爲了各節點間能夠通過節點名順利訪問各節點,需要將各節點的/etc/hosts文件加入各節點的IP和hostname。如下:

   
   準備好,開始安裝。

  1.解壓文件。

     
      
          
 其中mpi是安裝mpi環境的目錄。

   2.配置MPI

進入解壓後的文件夾,執行配置命令,其中prefix後面跟的是安裝目錄,這個用戶可以自己選擇。最新版本mpich2的進程管理默    認使用hydra,而不是mpd。如果想使用mpd,添加with-pm=mpd選擇mpd。

  3.編譯安裝MPI

    
    
    

  4.修改環境變量

     修改用戶主文件夾(添加用戶zll後,會主動在/home下創建用戶主文件夾/home/zll下的.bash_profile文件,在PATH變量後面      添加自己的MPI路徑,例如我把MPI安裝在我的zll用戶主文件夾mpi路徑下,在PATH最後添加“:/home/zll/mpi/bin"。如下圖

保存退出,並執行以下命令:source .bash_profile

測試環境變量設置


如果顯示正確就是安裝完成了。

5.創建文件.mpd.conf

進入用戶主文件夾/home/zll(或者$HOME),
  #創建文件
#設置權限
在.mpd.conf中添加一行:MPD_SECRETWORD=zll,其中zll可以隨意起,但是三個節點要一致。這主要是使用mpd命令必須加入的,爲了機器件的通信,如下圖:

6.修改mpd.hosts文件

在主文件夾編輯mpd.hosts,寫入三個節點的hostname,如下圖

7.關閉防火牆

以root賬戶登錄系統,執行service iptables stop關閉防火牆。

8.然後運行一下命令



其中第一條命令是啓動一個mpd,
mpdtrace -l 查看mpd的主機名和端口號
mpdallexit是退出命令。
如果正常表示沒有發生錯誤。(注意rhel6.2下面,執行程序前要執行mpdboot啓用一組mpd進程,個數和節點個數一樣:mpdboot -n 3 -f mpd.hosts,不然出錯).

9.在其他節點上面執行以上步驟(可以不執行8).

10.測試

在主控節點上面執行以下命令:


在其他節點執行
mpd -h {主控節點ip} -p {主控節點顯示的端口號} &
在主節點執行mpdtrace -l,可以顯示當前ring中的主機。如果順利,各節點同MPI成功互聯了。

二、無密碼SSH

原理Master作爲客戶端,要實現無密碼公鑰認證,連接到服務器Salve上時,需要在Master上生成一個密鑰對,包括一個公鑰和一個私鑰,而後將公鑰複製到所有的Salve上。當Master通過SSH鏈接到Salve上時,Salve會生成一個隨機數並用Master的公鑰對隨機數進行加密,併發送給Master。Master收到加密數之後再用私鑰解密,並將解密數回傳給Salve,Salve確認解密數無誤之後就允許Master進行連接了。這就是一個公鑰認證過程,期間不需要手工輸入密碼,重要的過程是將Master上產生的公鑰複製到Salve上。 

1.主控節點

在主控節點的主文件目錄下,執行如下命令

一路回車,不輸入其他東西。這時目錄下會生成一個.ssh(注意不要自己建立.ssh這個目錄,否則出問題)的目錄,裏面會生成id_rsa和id_ras.pub兩個文件,進去.ssh執行

2.其他節點

然後在其他節點的主文件目錄下執行以下命令

生成.ssh文件夾,不要自己創建.ssh文件夾。

3.複製文件

將主控節點的authorized_keys文件拷貝到其他節點的.ssh目錄下。

4.測試

如果沒有問題,現在可以實現主控節點到其他節點無密碼ssh了,執行
ssh host1和ssh host3(host2和host3是其他兩個節點)
第一次要輸入”yes“,回車,注意不要直接回車。之後連接就直接可以連接了。

5.注意問題

使用rsa不是dsa,每個節點的.ssh目錄要使用命令ssh-keygen -t rsa生成,不要自己建。
首次連接輸入yes,回車,不要直接回車。 
如果不成最好重啓一下重試一次。(在rhel6.2上面我就是第一次沒有成功,第二次成功了)。

三、NFS配置

三臺機子是共享主控節點上主文件目錄下的cluster文件夾,其中host2是nfs服務器,下面1-4在host2上面做。記得最好以root權限關閉防火牆或者在防火牆裏面添加規則。

1.配置文件/etc/exports

配置文件/etc/exports,格式爲:共享目錄 可mount主機IP(參數1,參數2,……)


設置cluster的訪問權限爲777.

執行exportfs -r命令。

2.修改/etc/sysconfig/nfs

  如果不修改後面會出mount.nfs: access denied by server while mounting 10.4.14.211:/home/zll/cluster。
   在文件/etc/sysconfig/nfs添加一行:RPCNFSDARGS="--no-nfs-version 4".
  網上好多解決方法,都不行,最後發現是nfs4的問題,就是nfs版本4有問題,禁止掉就行。

3.開啓相關服務

     
     
    啓動以上命令的時候最好使用超級用戶權限,否則有時候nfs服務打不開。
    注意centos6.2及其以上版本將portmap更換成了rpcbind。

   4.設置nfs開機自動啓動

   

   5.nfs客戶端

   開啓nfs服務:sudo service nfs start
   開機啓動nfs服務:sudo chkconfig nfs on
   可以查看可掛載的目錄:showmount -e 10.4.14.211.
   掛載:mount -t nfs 10.4.14.211:/home/zll/cluster /home/zll/cluster
   開機自動掛載:在文件/etc/fstab最後一行添加:hostname(或者server ip):/directory 本機掛載目錄  nfs defaults 0 0
   例如:host2:/home/zll/cluster  /home/zll/cluster  nfs defaults 0 0
   (如果有問題,可以重啓nfs服務器的nfs一下:sudo service nfs restart).

   6.測試

   可以在server端的cluster裏面創建一個文件,然後在其他節點的掛載目錄下看看有沒有該文件,如果有表示成功。
       以上都是經過本人親自測試過,並且成功的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章