主題:在 Ubuntu 9.10 環境 ( x86_32 或 x86_64 ) 安裝 Globus Toolkit 4。
***************************
零、環境說明
TKG 網格主機,作業系統的預設使用者:
user008
# user008 的密碼為 TKG 的專用密碼。
# 請詢問老師或學長姐。
---------
TKG Globus 網格使用者名稱:
user008
# user008 的密碼為 TKG 的專用密碼。
# 請詢問老師或學長姐。
---------
「TKG Globus 網格使用者 user008」映對到「TKG 網格主機作業系統使用者 user008」。
「TKG Globus 網格使用者 user008」使用網格主機作業系統中的 user008 帳號存取主機資源。
---------
安裝過程中,需要設定密碼或要求輸入密碼的地方,請都使用 TKG 的專用密碼。
***************************
一、網路設定
執行:
sudo su -
執行:
vim /etc/network/interface
將 eth0 的內容改為如下:
auto eth0
iface eth0 inet static
address 192.168.100.(主機號碼)
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
dns-nameservers (資管系 DNS 主機位址)
執行:
/etc/init.d/networking restart
執行:
vim /etc/hostname
將內容修改為:
im(主機號碼).im.ncue.edu.tw
存檔離開,執行:
reboot
重開機之後,使用以下指令檢查一下主機名稱:
/bin/hostname
使用以下指令檢查一下網路設定:
ifconfig
然後執行:
ping 192.168.100.1
ping (資管系 DNS 主機位址)
***************************
二、下載相關檔案
執行:
cd /opt
執行:
scp -r user008@192.168.100.1:/opt/globus_ubuntu /opt
執行:
cd /opt/globus_ubuntu
執行:
ls -lh
顯示:
apache-ant-1.7.1-bin.tar.gz
globus_simple_ca_502cf2ea_setup-0.19.tar.gz
grid-mapfile
gt4.0.8-all-source-installer.tar.gz
gt4.2.1-all-source-installer.tar.gz
jdk-6u17-linux-i586.bin
jdk-6u17-linux-x64.bin
junit-4.3.1.jar
ld.so.conf
mpich.tar.gz
pre-requisites.sh
profile
xinetd.d_gsiftp
xinetd.d_gsigatekeeper
***************************
三、安裝必備軟體 ( prerequisite softwares )
執行:
cd /opt/globus_ubuntu
執行:
./pre-requisites.sh
系統進行安裝確認時,請輸入:Y
***************************
四、獨立安裝必備軟體:Java 與 Apache Ant
Java 的安裝。
執行:
cd /opt/globus_ubuntu
如果是 x86_32 環境請執行:
./jdk-6u17-linux-i586.bin
如果是 x86_64 環境請執行:
./jdk-6u17-linux-x64.bin
顯示:
Java 的 license terms,請壓一下 q,然後輸入 yes,按 enter。
Java 自解壓縮安裝完成後,請壓幾下 enter 結束安裝。
執行:
mv jdk1.6.0_17 ../java
---------
Apache Ant 的安裝。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf apache-ant-1.7.1-bin.tar.gz
執行:
mv apache-ant-1.7.1 ../ant
執行:
cp junit-4.3.1.jar ../ant/lib/
---------
匯入環境變數。
執行:
cd /opt/globus_ubuntu
執行:
more profile >> /etc/profile
執行:
source /etc/profile
# 先忽略 -su: /opt/globus/etc/globus-user-env.sh: No such file or directory 錯誤。
測試 Java,執行:
java -version
測試 Apache Ant,執行:
ant -version
***************************
五、安裝 Globus Toolkit
# 研究室舊有的網格使用的是 Globus Toolkit 4.0.* 版本的。
# Globus Toolkit 4.0.* 與 Globus Toolkit 4.2.* 是不相通的。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf gt4.0.8-all-source-installer.tar.gz
執行:
mkdir /opt/globus
執行:
cd /opt/globus_ubuntu/gt4.0.8-all-source-installer
執行:
./configure --prefix=/opt/globus
執行:
make | tee gt_make.log
# 編譯如果出現問題,請追蹤一下 gt_make.log 檔案,尋找錯誤訊息。
編譯完成,執行:
make install
安裝完成,執行:
cd /opt/globus_ubuntu
執行:
more ld.so.conf >> /etc/ld.so.conf
執行:
ldconfig
***************************
六、設置 Grid Security Infrastructure
# 由於 TKG 已有架設好的 SimpleCA Server ( 192.168.100.1 ),
# 直接使用 TKG 的 globus_simple_ca_502cf2ea_setup-0.19.tar.gz 檔案。
執行:
cp /opt/globus_ubuntu/globus_simple_ca_502cf2ea_setup-0.19.tar.gz /opt/globus/
執行:
cd /opt/globus
如果是 x86_32 環境,執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc32dbg
如果是 x86_64 環境,執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc64dbg
gpt-build 完成後,執行:
gpt-postinstall
執行:
/opt/globus/setup/globus_simple_ca_502cf2ea_setup/setup-gsi -default
***************************
七、設置 gsiftp 與 gsigatekeeper
執行:
cd /opt/globus_ubuntu
執行:
cp xinetd.d_gsiftp /etc/xinetd.d/gsiftp
執行:
cp xinetd.d_gsigatekeeper /etc/xinetd.d/gsigatekeeper
執行:
/etc/init.d/xinetd restart
***************************
八、主機認證與使用者認證
TKG 網格主機認證:
# TKG 網格 SimpleCA Server 為 192.168.100.1,主機名稱是 im1.im.ncue.edu.tw。
# SimpleCA Server 的管理者為 im1.im.ncue.edu.tw 作業系統中的 root 帳號。
執行:
scp user008@192.168.100.1:/etc/hosts /etc/hosts
執行:
vim /etc/hosts
# 將本機的 IP 與 hostname 對映寫入並存檔。
# 例如:192.168.100.256 im256.im.ncue.edu.tw im256
確認主機名稱符合格式,執行:
hostname
# 以 TKG 網格為例,名稱應該是 im主機號碼.im.ncue.edu.tw 這樣的格式。
# 若主機名稱有出入,請修改 /etc/hostname 並重新開機。
切換到 root 身份,執行:
cd /etc/grid-security/
執行:
grid-cert-request -host `hostname`
以上指令會在 /etc/grid-security 底下產生:
hostcert.pem
hostcert_request.pem
hostkey.pem
將 hostcert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp hostcert_request.pem user008@im1:~/temp/
# 對 hostcert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
# 請另外開啟一個 SSH 連線,以 user008 帳號登入 im1 (192.168.100.1)。
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in hostcert_request.pem -out hostcert.pem
回到認證中的網格主機,切換到 root 身份,執行:
cd /etc/grid-security/
從 SimpleCA Server 將認證產生的 hostcert.pem 取回,執行:
scp user008@im1:~/temp/hostcert.pem /etc/grid-security/hostcert.pem
---------
TKG 網格使用者認證:
# TKG 網格中只有一個「網格使用者 user008」,因此直接取用認證過 user008 身份的驗證檔案即可。
執行:
su - user008
執行:
cd /home/user008
執行:
scp -r user008@im1:~/.globus /home/user008/
執行:
grid-proxy-init
顯示:
Your identity: /O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008
Enter GRID pass phrase for this identity: # 輸入 TKG 專用密碼
grid-proxy-init 順利初始化,代表認證成功。
***************************
九、關於 grid-mapfile
執行:
sudo su -
# 為了讓網格中其他的機器也可以透過作業系統的 user008 帳號來運用本機資源
執行:
cp /opt/globus_ubuntu/grid-mapfile /etc/grid-security/
***************************
十、安裝 MPICH
執行:
cd /opt/globus_ubuntu/
執行:
tar zxvf mpich.tar.gz
執行:
mkdir /opt/mpich
執行:
cd mpich-1.2.7p1/
x86_32 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc32dbg
x86_64 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc64dbg
執行:
make | tee mpich_make.log
執行:
make install
執行:
su - user008
執行:
cp /opt/mpich/examples/cpi.c .
執行:
mpicc cpi.c -o cpi
在同一個目錄底下,執行:
vim machines
編寫 machines 檔,內容是:
"本機的 hostname" 1
編輯完成後,執行:
grid-proxy-init
Grid Proxy 起始化後,執行:
mpirun -np 1 cpi
順利的話,螢幕會印出 Pi 的值與執行的主機名稱。
***************************
附錄:
pre-requisites.sh 內容:
#!/bin/bash
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install \
openssh-server \
libssl-dev \
zlib-bin \
zlib1g \
zlib1g-dev \
gcc \
g++ \
xinetd \
echo "*** DO NOT FORGET JAVA SDK & APACHE-ANT :-) ***"
globus_ubuntu/profile 內容:
export ANT_HOME=/opt/ant
export JAVA_HOME=/opt/java
export MPICH_HOME=/opt/mpich
export GLOBUS_LOCATION=/opt/globus
export PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$MPICH_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
source $GLOBUS_LOCATION/etc/globus-user-env.sh
xinetd.d_gsiftp 內容:
service gsiftp
{
disable = no
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/opt/globus
env += LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gridftp-server
server_args = -i
log_on_success += DURATION
nice = 10
}
xinetd.d_gsigatekeeper 內容:
service gsigatekeeper
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
env = LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gatekeeper
server_args = -conf /opt/globus/etc/globus-gatekeeper.conf
}
***************************
Reference:
01. http://tkg.im.ncue.edu.tw/
沒有留言:
張貼留言