You are on page 1of 14

如何安裝 Globus Toolkit 4 於 Fedora Core 3

陳松毅

東海大學資訊工程與科學系
高效能計算實驗室
g942805@thu.edu.tw

本文主要對象為 UniGrid 各節點管理者,以下將示範如何安裝 Globus Toolkit 4 於 Fedora Core 3,請依照


貴單位機器實際環境進行安裝,以下圖片僅供參考,請以實際情形為準。由於 Globus Toolkit 到了版本 4 開
始有支援 Fedora Core 3、4 等作業系統的 Binary 安裝版,也就是說,我們現在可以不用像以前一樣裝
Globus Toolkit 3 時要花很多時間編譯原始碼,就可以很快享有網格計算帶來的便利;但是如果使用的作業
系統或 CPU 架構沒有對應的 Binary 安裝版本的話,仍然必須編譯原始碼再安裝,建議使用 NFS、NIS 節省
部署時間。

更新紀錄

• 2006/08/31
− 修改引文
− 修改軟體版本
− 修改安裝步驟部分內容
• 2005/11/26
− 原「/etc/crond.hourly」應為「/etc/cron.hourly」
− 修改一些超連結
− 新增設定「/etc/ld.so.conf」
解決「grid-proxy-init: error while loading shared libraries: libglobus_gsi_proxy_core_gcc32.so.0:
cannot open shared object file: No such file or directory」之問題
• 2005/11/28
− 新增「`」的說明
− 修改 mpich-g2 的安裝方法

前置作業

IP 與 Hostname 設定

要安裝 Globus Toolkit 之前,你必須先安裝好 Fedora Core 3,其中有個該注意的地方是,機器必須有真實


IP,這裡以「demo1.hpc.csie.thu.edu.tw」為例;如果是其他單位或學校的機器,你可以參考自己單位或學
校機器的設定規則,基本上是「機器名字.該單位的 Domain Name」,並記得在「/etc/hosts」設定好 IP 與
Hostname 對應。

執行「hostname」指令確認 Hostname 設定

有需要的話可以編輯「/etc/sysconfig/network」修改 Hostname,重開機後生效
2 陳松毅

需要帳號

• 安裝 Globus Toolkit 的帳號


你可以新增一個帳號比如 globus 或者是直接使用 root 帳號安裝,這邊我們使用 root 帳號來安裝為例。
• 使用 Globus Toolkit 的帳號
這邊使用 test 作為一般使用者為例。

需要軟體

使用 root 於「/opt」下建立子目錄「src」存放所需軟體,我們將安裝所需軟體於「/opt」底下,你可以到各
軟體的官網上下載最新版本。

• J2SE SDK
網址:http://java.sun.com/javase/downloads/index.jsp
說明:版本以 1.4 或 5.0 以上為佳。
• Apache Ant
網址:http://ant.apache.orgs, http://ant.apache.org/bindownload.cgi
說明:這是安裝 Globus Toolkit 必備軟體。
• JUnit
網址:http://www.junit.org
說明:我們需要裡面的「junit-*.jar」。
• Globus Toolkit 4 Installation Package
網址:http://www.globus.org/toolkit/downloads/4.0.3
說明:請依照你的 OS 找相對應的版本,如果找不到的話,
請下載原始碼版本「gt4.0.3-all-source-installer.tar.gz」或是「gt4.0.3-all-source-installer.tar.bz2」。
• Globus Simple CA Package for Client
網址:於附檔
說明:請安裝由清大實驗室所發的 CA Package「globus_simple_ca_hash_setup-0.18.tar.gz」。
• MPICH-G2
網址:http://www-unix.mcs.anl.gov/mpi/mpich, ftp://ftp.mcs.anl.gov/pub/mpi/
說明:這邊我們下載穩定版本 1.2.7 或是最新版本 1.2.7p1。
如何安裝 Globus Toolkit 4 於 Fedora Core 3 3

安裝步驟

準備好上面的軟體及帳號後,請跟著下面的步驟做,我們將所有軟體安裝在「/opt」底下,除了比較方便管理
之外,以後可以更方便的分享已經安裝好的軟體至其他機器上。

設定網路時間校時

執行時間校正可以避免因為機器之間的時間不一致,而產生一些執行上的錯誤,請一定要設定妥當。

以下步驟皆使用 root 帳號執行。

1. 在「/etc/cron.hourly」底下新增一個 cron 檔案,這樣就可以讓系統自動每小時進行時間校正。

# vi /etc/cron.hourly/ntp.cron

輸入以下內容
#!/bin/bash
/usr/sbin/ntpdate time.stdtime.gov.tw
/usr/sbin/hwclock –w

2. 測試執行
如果本來的 NTP Daemon 已經再執行了,必須先關掉 NTP Daemon 這樣才會正常運作,完成後執行該檔案
測試一下,正常的話以後每小時會自動執行校時。

# service ntpd stop


# chkconfig --level 345 ntpd off
# chmod +x /etc/cron.hourly/ntp.cron
# sh /etc/cron.hourly/ntp.cron

網路時間校時執行畫面
4 陳松毅

安裝 J2SE SDK

以下步驟皆使用 root 帳號執行。

1. 在「/opt/src」底下,變更「jdk-1_5_0_08-linux-i586.bin」為可執行屬性

# chmod +x jdk-1_5_0_08-linux-i586.bin

2. 執行「jdk-1_5_0_08-linux-i586.bin」進行解壓縮

# ./ jdk-1_5_0_08-linux-i586.bin

按「Ctrl + c」直接跳到最後面

然後輸入「yes」按 Enter 進行解壓縮

3. 將「jdk1.5.0_08」移到上一層,即「/opt」底下

# mv jdk1.5.0_08 /opt

4. 在「/opt」底下,作一個 Symbolic Link

# cd /opt
# ln -s jdk1.5.0_08/ java
如何安裝 Globus Toolkit 4 於 Fedora Core 3 5

安裝 Apache Ant

以下步驟皆使用 root 帳號執行。

1. 在「/opt/src」底下解壓縮「apache-ant-1.6.5-bin.tar.gz」及「junit4.1.zip」

# tar zxf apache-ant-1.6.5-bin.tar.gz


# unzip -q junit4.1.zip

2. 將「 junit4.1 」底下的「 junit-4.1.jar」 複製到「apache-ant-1.6.5/lib」 底下,完成後將「apache-ant-


1.6.5」移到上一層,即「/opt」底下

# cp junit4.1/junit-4.1.jar apache-ant-1.6.5/lib/
# mv apache-ant-1.6.5 /opt

3. 一樣在「/opt」底下做個 Link

# cd /opt
# ln -s apache-ant-1.6.5/ ant
6 陳松毅

設定環境變數

上面步驟只是把執行檔給放好而已,我們還必須設定環境變數,這樣安裝 Globus Toolkit 時才能抓到 Java 以


及 Ant。

1. 編輯「/etc/profile」加入以下設定,完成後記得匯入環境變數

# vim /etc/profile

略)
(略
If [ -z “$INPUTRC” –a ! –f “$HOME/.inputrc” ]; then
INPUTRC=/etc/inputrc
fi

# Java Home
export JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH

# Ant Home
export ANT_HOME=/opt/ant
PATH=$ANT_HOME/bin:$PATH

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC


略)
(略

# source /etc/profile

設定 Java 以及 Ant 的環境變數

2. 測試 Java 以及 Ant 是否正常,如下圖

# java –version
# ant –version

有出現預期的版本號碼才是正確的
如何安裝 Globus Toolkit 4 於 Fedora Core 3 7

安裝 Globus Toolkit

以下步驟如未特別說明皆使用 root 帳號執行。

1. 在「/opt」底下新增資料夾「globus-4.0.3」並作一個 Link

# cd /opt
# mkdir globus-4.0.3
# ln –s globus-4.0.3/ globus

2. 在「/opt/src」底下解壓縮「gt4.0.3-x86_fc_3-binary-installer.tar.gz」

# cd /opt/src
# tar zxvf gt4.0.3-x86_fc_3-binary-installer.tar.gz

3. 將 Globus Toolkit 裝至「/opt/globus」

# cd gt4.0.3-x86_fc_3-binary-installer
# ./configure --prefix=/opt/globus

檢查抓到的 Java 以及 Ant 是否為自己安裝的路徑

如果 Configure 沒有錯誤的話就可以接著進行 make,如果 make 過程無錯誤的話就繼續進行安裝

# make
# make install

4. 設定環境變數,編輯「/etc/profile」加入以下設定,完成後記得匯入環境變數

# vim /etc/profile

略)
(略
fi

# Java Home
export JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH

# Ant Home
export ANT_HOME=/opt/ant
PATH=$ANT_HOME/bin:$PATH

# Globus Home
export GLOBUS_LOCATION=/opt/globus
PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$PATH

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

. $GLOBUS_LOCATION/etc/globus-user-env.sh

for i in /etc/profile.d/*.sh ; do
略)
(略

# source /etc/profile
8 陳松毅

設定 Globus Toolkit 的環境變數

5. 設定「/etc/ld.so.conf」

# vi /etc/ld.so.conf

於最下面加入「/opt/globus/lib」,完成後執行「ldconfig」

# ldconfig

6. 安裝 Simple CA Package (Client)


進入「/opt/src」底下,使用指令「gpt-build」以及「gpt-postinstall」進行安裝 Simple CA Package,如
果是 64 bit 的 CPU,請使用 gcc64dbg。

# gpt-build globus_simple_ca_hpc_hash_setup-0.19.tar.gz gcc32dbg


# gpt-postinstall

複製畫面中的「/opt/globus/setup/globus_simple_ca_hash_setup/setup-gsi」然後再加上「-defsult」參
數設定 GSI

# /opt/globus/setup/globus_simple_ca_hash_setup/setup-gsi –default

7. 認證
要存取 Grid 資源必須透過 Globus 的認證功能,因此我們必須讓機器以及使用者帳號進行認證動作。
機器的認證每台只需作一次即可,這個步驟使用 root 帳號執行;其中「`」是 quote,與鍵盤左上角的
「~」是同個按鍵,如果你有把 hostname 設定妥當,他會直接填入你設定的 hostname;或是直接在「-
host」參數後面輸入完整的 hostname 也是可以的,例如:「demo1.hpc.csie.thu.edu.tw」。

# grid-cert-request -host `hostname`

簽署完後可在「/etc/grid-security」底下看到三個檔案,其中「hostcert.pem」大小為 0
如何安裝 Globus Toolkit 4 於 Fedora Core 3 9

8. 簽署機器及使用者的金鑰
− 請將各機器的『/etc/grid-security/hostcert_request.pem』收集至一個壓縮檔,建議各檔案命名為
『hostcert_request_hostname.pem』,完成後請將該壓縮檔寄至東海這邊進行簽署,完成簽署後將各檔
案覆蓋『hostcert.pem』即可。
− 使用者的部份不需另外要求簽署,請使用該使用者帳號將附檔解壓縮至『~/.globus』即可。

在使用者家目錄的「.globus」底下可以看到三個檔案,其中「usercert.pem」大小為 0

9. 測試 Proxy
要執行 Globus 相關指令前,該使用者必須先取得授權,因此我們要透過「grid-proxy-init」達到目的。

以下步驟需使用者帳號 test 執行。

# su – test
$ grid-proxy-init –verify –debug

輸入帳號密碼

產生 Proxy 成功

10.設定「/etc/grid-security/grid-mapfile」
Proxy 產生成功後,還不能執行 Globus 的指令,我們還必須做一些其他設定,其中「grid-mapfile」主要是
用來對應使用者的使用權,如果設定不妥當,是無法讓其他人存取機器的資源的。

先使用使用者帳號 test 取得認證檔案的 Subject,然後記得複製下來。

$ grid-cert-info –s
$ exit

接著使用 root 帳號新增或編輯「/etc/grid-security/grid-mapfile」,輸入如下列格式,即將 Subject 使用


引號引起來,然後空一格後面加上使用者的帳號。

# vi /etc/grid-security/grid-mapfile

"your subject" test


10 陳松毅

「grid-mapfile」的設定方式

11.設定 Globus 的兩個 Daemon


這兩個 Daemon 分別為「gsigatekeeper」以及「gsiftp」,一個是負責認證授權用一個是負責 GridFTP 傳
輸使用的。

新增「/etc/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
}

「gsigatekeeper」的內容
如何安裝 Globus Toolkit 4 於 Fedora Core 3 11

新增「/etc/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
}

「gsiftp」的內容

編輯「/etc/services」,替這兩個 Daemon 開啟 TCP Port,新增內容如下:

gsigatekeeper 2119/tcp # Globus Gatekeeper


gsiftp 2811/tcp # Globus GridFTP

「/etc/services」的內容

重新啟動 xinetd 服務,使得 TCP Port 開啟

# service xinetd restart

檢查 TCP Port 是否開啟成功

# netstat -an|grep 2119


# netstat -an|grep 2811

TCP Port 開啟成功


12 陳松毅

12.測試 Globus 設定
前面的設定可以說是為了這一步,如果成功的話,代表你前面的設定正確,如果失敗的話,趕緊往前檢查一
下哪裡有問題吧。

一般來說,執行 Globus 指令有兩個步驟,第一步先產生 Proxy,第二步執行指令,通常 Proxy 產生一次可


以維持 12 小時,所以不用每次執行 Globus 指令前都要再產生一次 Proxy。這裡以 demo1 這台機器為例,
請替換成你自己的機器名字。

# su – test
$ grid-proxy-init –verify –debug
$ globus-job-run demo1 /bin/hostname
$ globus-job-run demo1 /bin/date

本機執行「hostname」以及「date」成功

這裡的「init.sh」為本機端檔案,請自己產生一個任意檔案,而「init2.sh」為你要傳過去存成什麼檔名,
請自行指定,demo1 為機器的名字,請替換成你自己的機器名字。

$ globus-url-copy -vb file:///home/test/init.sh gsiftp://demo1/home/test/init2.sh

本機測試 GridFTP 成功
如何安裝 Globus Toolkit 4 於 Fedora Core 3 13

安裝 MPICH-G2

安裝完 Globus Toolkit 後只不過是把各機器透過 Globus Toolkit 這個中介軟體串起來而已,充其量只能在上面


執行非平行程式,為了達到真正的鉅量運算目的,我們必須在上面安裝 MPICH-G2 [3],這樣才能在網格環境
執行平行程式。

以下步驟使用 root 帳號執行。

1. 先在「/opt」底下建立資料夾「mpich-1.2.7」並做一個 Link

# cd /opt
# mkdir mpich-1.2.7
# ln –s mpich-1.2.7/ mpich

2. 進入「/opt/src」底下,解壓縮「mpich-1.2.7.tar.gz」,然後執行「configure」,如果 CPU 是 64 bit 請使


用 gcc64dbg

# cd /opt/src
# tar zxf mpich-1.2.7.tar.gz
# cd mpich-1.2.7
# ./configure --prefix=/opt/mpich --with-device=globus2:-flavor=gcc32dbg

3. Configure 無誤後執行「make」以及「make install」

# make
# make install

4. 設定環境變數
為了方便使用 MPICH-G2,編輯「/etc/profile」加入以下設定,最後記得匯入環境變數

# vi /etc/profile
# source /etc/profile

略)
(略
fi

# Java Home
export JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH

# Ant Home
export ANT_HOME=/opt/ant
PATH=$ANT_HOME/bin:$PATH

# Globus Home
export GLOBUS_LOCATION=/opt/globus
PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$PATH

# Mpich Home
export MPICH_HOME=/opt/mpich
PATH=$MPICH_HOME/bin:$PATH

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

. $GLOBUS_LOCATION/etc/globus-user-env.sh

for i in /etc/profile.d/*.sh ; do
略)
(略
14 陳松毅

5. 測試 MPICH-G2
以下步驟以使用者帳號 test 執行。

下載以 MPICH 函式庫撰寫的原始碼,可從附檔取得,然後先進行編譯的動作

$ mpicc -o hello3_mpi hello3_mpi.c


$ mpicc -o mmd_mpi mmd_mpi.c

編輯 machines 檔案,指定執行機器以及 CPU 個數,這邊我們以 demo1 為例,格式為:「“hostname”


CPU# 」 , hostname 與 CPU# 中 間 有 空 格 。 你 也 可 以 使 用 「 –machinefile 」 這 個 參 數 來 指 定 其 他 的
machinefile。

$ vi machines

“demo1” 1

執行程式的指令如下,其中「-np」代表要使用幾顆 CPU 來計算,另外,你也可以使用「-machineifle」來


指定其他的 machines 檔案

注意:「mm_mpi」的「-np」以及程式後面接的矩陣大小必須是 2 的冪次方。

$ mpirun -np 1 hello3_mpi


$ mpirun -np 2 mmd_mpi 256

參考資料

[1] The Globus Alliance, http://www.globus.org/alliance


[2] The Globus Toolkit, http://www.globus.org/toolkit
[3] MPICH-G2, http://www3.niu.edu/mpi

You might also like