本博客已遷往http://coredumper.cn
前提條件:
共有 5 臺機器,均安裝有
CentOS6.4
系統,主機名分別爲 node0,node1,
node2,
node3,node4。node0
作爲主節點,這裏的主節點是指將 node0
作爲 NFS
的服務器端。
MPICH2 的安裝包:mpich2-1.2.1p1.tar.gz,可以從
MPICH 的官網下載(http://www.mpich.org/downloads/)
以下操作均使用 root
用戶名
1. 配置
5 臺機器的網絡,詳細配置過程見《CentOS
靜態 IP
的網路配置方法》
2. 爲
5 臺機器創建統一的用戶名
cluster
和相同的密碼:
useradd cluster
passwd cluster
修改/etc/sudoers
文件,添加如下一行,使 cluster
具有臨時 root
權限的能力:
cluster ALL=(ALL) ALL
以下操作均使用 cluster
用戶名
3. 配置
SSH,使任何兩臺機器之間均可無需密碼而直接互相登錄,詳細配置過程見《兩臺主機可以無需密碼而直接互相登錄的
SSH 配置方法》
4. 配置 NFS,node0 作爲服務器端,其他 4 臺機器作爲客戶端,所有機器的共享目錄均爲/home/cluster/mirror,詳細配置過程見《CentOS 下 NFS 的安裝過程》
5. 在
node0 上安裝
MPICH2 開發環境
首先確認系統中安裝有 gcc、g++、make
和 python
這些編譯工具
創建 MPICH2
的安裝目錄:
mkdir /home/cluster/mirror/mpich2
將 mpich2-1.2.1p1.tar.gz
上傳到/home/cluster/mirror,並解壓縮:
tar -zxv -f mpich2-1.2.1p1.tar.gz
在/home/cluster/mirror/ mpich2-1.2.1p1
目錄中執行如下命令:
./configure --prefix=/home/cluster/mirror/mpich2
make
make install
創建/home/cluster/mpd.hosts
文件,文件內容如下:
node0
node1
node2
node3
node4
6. 在 5 臺機器上配置環境變量
在/home/cluster/.bashrc 文件中加入:
export PATH=$PATH:/home/cluster/mirror/mpich2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/cluster/mirror/mpich2/lib
使配置文件生效:
source /home/cluster/.bashrc
測試 MPICH2
是否安裝成功:
which mpd
which mpiexec
創建/home/cluster/.mpd.conf 文件,文件內容如下(””中的內容爲任意字符串,但是所有機器都要一樣):
secretword="lab311"
修改.mpd.conf 文件的權限,使得只有用戶 cluster 具有讀寫該文件的權限:
chmod 600 /home/cluster/.mpd.conf
測試各臺機器能否啓動 mpd 管理器,正常情況下 mpdtrace 的執行結果爲本機的主機名,注意測試完畢後一定要用 mpdallexit 命令關閉 mpd,否則後面啓動集羣時會出現連接失敗的錯誤:
mpd &
mpdtrace
mpdallexit
7. 在 node0 測試整個集羣
啓動集羣前需要將所有機器的防火牆關閉:
sudo chkconfig iptables off
啓動集羣(參數-n 5 表示啓動 5 臺機器):
mpdboot -n 5 -f /home/cluster/mpd.hosts
查看已經啓動的機器:
mpdtrace
正常情況下會顯示如下結果:
node0
node1
node2
node3
node4
關閉集羣:
mpdallexit