Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Globus JpGrid Tutorial JPGRID-TU0201-No.3
1
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus:あなたの知りたいこと教えます
産業技術総合研究所
グリッド研究センター
中田秀基
田中良夫
Advanced Industrial Science and Technology / Tokyo Institute of Technology
おはなしのなかみ
グリッドってなに� グリッドに対する5つの誤解
Globusってなに� もしくはGlobusはなにではないか
Globusでなにができるの� シナリオベースで主要モジュールの機能を解説
Globusのインストール方法� 「使えるようにする」までの手順を詳細に説明
Globusってどう使うの� いくつかの典型的な使い方を紹介
Globus JpGrid Tutorial JPGRID-TU0201-No.3
2
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドってなに?
計算機を接続するだけで、いつでもどこからでも計算パワーがとりだせる� 電力網(Power Grid)からのアナロジー
グリッド
Advanced Industrial Science and Technology / Tokyo Institute of Technology
分散システム(広義のグリッド)
分散システム(広義のグリッド)
コンピューティンググリッド(高速計算サービス)
コンピューティンググリッド(高速計算サービス)
メガコンピューティング(遊休PCの活用)
メガコンピューティング(遊休PCの活用)
グリッド(柔軟な情報サービスの提供、狭義のグリッド)
グリッド(柔軟な情報サービスの提供、狭義のグリッド)
データグリッド(超大規模データ処理サービス)
データグリッド(超大規模データ処理サービス)
自由なプログラミングで複雑な処理が可能
自由なプログラミングで複雑な処理が可能
科学技術への応用
科学技術への応用
ビジネスへの応用
ビジネスへの応用
インターネットで接続
インターネットで接続
イントラネットで接続
イントラネットで接続
単純な並列処理プログラム
単純な並列処理プログラム
易
難
易
難
SETI@HOMEEntropia/DC Grid
ビジネスグリッド(高信頼ウェブサービス)
ビジネスグリッド(高信頼ウェブサービス)
ビジネスグリッド
グリッドデータセンター
メタコンピューティング(スパコンの結合)
仮想計算センターサービス
ライフ・バイオ・天文・加速器等
研究中
Globus JpGrid Tutorial JPGRID-TU0201-No.3
3
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドに対する5つの誤解 (1)「スパコンをつないだものがグリッドである」
� 超高性能計算が目的?
� ごく一部の超高性能計算ユーザにしかインパクトがない
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドに対する5つの誤解 (2)「Seti@Homeのように多数のPCの余っている計算資源を裏で使うのがグリッドである」
� P2P計算システム ⊂ 広義のグリッド
Globus JpGrid Tutorial JPGRID-TU0201-No.3
4
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドに対する5つの誤解 (3)「グリッドは人様の計算機資源を“盗む”ための仕掛けである」
� あくまで“共有”が基本
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドに対する5つの誤解 (4)「グリッド = Web Servicesである」� OGSAの影響?
� OGSA : Open Grid Service Architecture� Grid のプロトコルをWeb Service由来のSOAP, WSDLに置き換えるプロジェクト
� Globusの3.0はOGSAベースになる予定
� 将来的には「誤解」ではなくなるかもしれないが、そのときにはWeb Serviceも今のWeb Serviceとは別物になっているだろう
Globus JpGrid Tutorial JPGRID-TU0201-No.3
5
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドに対する5つの誤解 (5)「グリッド は金を出せば買える」
� まだまだ研究対象の段階
� Globusをインストールすれば「グリッド」なわけではない
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドの「より正確な」定義仮想組織(Virtual Organization)がインターネット上に分散並列 「仮想計算機」(Virtual computer)を動的に形成計算などの資源が「どこにあるか」を抽象化
⇒ サービスの質(QoS)はグリッドが判断計算インフラ・セキュリティインフラ・データインフラなど⇒資源の共用、抽象化された標準のアクセス法 (Webのように)
ストレッジストレッジストレッジストレッジストレッジストレッジストレッジストレッジリソースリソースリソースリソースリソースリソースリソースリソース
超高速超高速超高速超高速超高速超高速超高速超高速ネットワークネットワークネットワークネットワークネットワークネットワークネットワークネットワーク
計算リソース計算リソース計算リソース計算リソース計算リソース計算リソース計算リソース計算リソース
会社B
仮想組織研究所A
仮想計算機
Globus JpGrid Tutorial JPGRID-TU0201-No.3
6
Advanced Industrial Science and Technology / Tokyo Institute of Technology
VOとは
AIST
UCSD
TITECH
Advanced Industrial Science and Technology / Tokyo Institute of Technology
ASPなどの外部機関
大学
グリッドの理想
研究室
Globus JpGrid Tutorial JPGRID-TU0201-No.3
7
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus Toolkit ってなにグリッドシステムの構築を容易にするためのツールキット
米国 アルゴンヌ国立研究所と南カリフォルニア大学の共同開発
デファクトスタンダードとして広く普及
� 世界中のほとんどすべてのグリッドプロジェクトで採用されている
現在 バージョン 2.2 が配布されている来年1月に3.0 のアルファがリリース予定� 新アーキテクチャ OGSA ベースの完全なベツモノ
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globusの「グリッド」もともと科学技術計算を指向
� 比較的クローズドな研究者集団が資源を共有するために開発された
� ひとつのグリッドではリソースの数もユーザの数もそれほど多くないことを前提
�不特定多数は想定していない
Globus JpGrid Tutorial JPGRID-TU0201-No.3
8
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus とは何ではないか (1)Globusは不特定多数のユーザで計算資源を共有する仕掛けではない
� Globusがインストールされていてもそれを使用できるのは以下の条件を満たしたユーザだけ
�そのホスト上にアカウントを持っている
�資源が認める認証局から発行された証明書を持っている
�システム管理者が明示的に許可している
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus とは何ではないか (2)Globusはボランティアコンピューティングシステムではない� SETI@Home などのP2Pとは根本的に発想が異なる� プログラムから計算資源を守る機能はない
� プログラムの権限は通常のユーザと同じ
� P2P系では実行条件を規定するのが一般的
� 計算資源の他のユーザからプログラム(のデータ)を守る仕掛けもない� 通信は暗号化されるが、メモリ上のデータやファイルを暗号化したりはしない
Globus JpGrid Tutorial JPGRID-TU0201-No.3
9
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus とは何ではないか (3)Globusはグリッド計算システムではない� Globusはあくまでグリッド計算システムを構築するためのツールキット
� 実態は低レベルのライブラリとコマンドの集合体
� Globusをインストールしたからといってなにかが解決するわけではない
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus とは何ではないか (4)Globusは完全ではない� ファイアウォールとの親和性が低い
�双方向にコネクションを張りまくるのでNATを介した運用は不可能に近い
� 多数のユーザが使用する場合の管理コストが非常に高い
�各ホストに使用するユーザをいちいち登録しなければならない
� リリースのたびにバグがたくさん見つかり、しかもなかなかなおらない
Globus JpGrid Tutorial JPGRID-TU0201-No.3
10
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globusでなにができるのいままで絶対にできなかったことができるようになる、わけではない
→ あまりに面倒くさくて事実上不可能に近かったことが比較的容易にできるようになるだけ
以降シナリオをベースに解説
Advanced Industrial Science and Technology / Tokyo Institute of Technology
シナリオ
クライアント@上野
データサーバ@大阪大学
計算機A@東工大
計算機B@つくば
データサーバに入ったデータを取り出し、どちらかの計算機で計算し、結果を自分のコンピュータで見たい
すべてのノードは別のサイトにある
Globus JpGrid Tutorial JPGRID-TU0201-No.3
11
Advanced Industrial Science and Technology / Tokyo Institute of Technology
従来の技術でやると。。。
クライアント@上野
データサーバ@大阪大学
計算機A@東工大
計算機B@つくば
1.ロードアベレージ、キュー長を調査、計算機を選択 2.計算機Aに
Sshでログイン
3.データサーバからデータを取得
4.計算を実行
5.計算結果を取り出す
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globusで実装したシステムでは
クライアント@上野
データサーバ@大阪大学
計算機A@東工大
計算機B@つくば
一度パスワードを一度パスワードを一度パスワードを一度パスワードをうちこむだけでうちこむだけでうちこむだけでうちこむだけであとは自動的に!あとは自動的に!あとは自動的に!あとは自動的に!
Globus JpGrid Tutorial JPGRID-TU0201-No.3
12
Advanced Industrial Science and Technology / Tokyo Institute of Technology
実際になにがおきているのか
シングルサインオン認証� GSI資源情報の取得� MDSリモートサーバ上でのプロセス実行� GRAMデータ転送� GridFTP
Advanced Industrial Science and Technology / Tokyo Institute of Technology
シングルサインオン認証Globusのセキュリティ
公開鍵を用いた認証と認可� 認証:相手が誰であるかがわかること
� SSL をベース� 認可:わかった相手に特定の操作を許可すること
シングルサインオン� 一度の操作でグリッド全体に対してログインできること
� プロクシ証明書で実現
Globus JpGrid Tutorial JPGRID-TU0201-No.3
13
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式とは?
Alice Bob
Public
AliceとBobが秘密のコミュニケーションをとりたい場合
� AliceとBobは1組の鍵をもつ� 公開鍵:一般に公開する鍵� 秘密鍵:自分だけが保有する鍵
PublicI love “カップヌードル”
盗聴Private Private
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式とは?
Alice Bob
Public
AliceとBobが秘密のコミュニケーションをとりたい場合
� AliceとBobは1組の鍵をもつ� 公開鍵:一般に公開する鍵� 秘密鍵:自分だけが保有する鍵
Public30
Private Private
Encryption
Globus JpGrid Tutorial JPGRID-TU0201-No.3
14
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式とは?
Alice Bob
Public
AliceとBobが秘密のコミュニケーションをとりたい場合
� AliceとBobは1組の鍵をもつ� 公開鍵:一般に公開する鍵� 秘密鍵:自分だけが保有する鍵
Public60
Private Private
30 x 2 =
AliceAliceの公開鍵にの公開鍵にの公開鍵にの公開鍵にの公開鍵にの公開鍵にの公開鍵にの公開鍵による暗号化が よる暗号化が よる暗号化が よる暗号化が よる暗号化が よる暗号化が よる暗号化が よる暗号化が x2x2 であると仮定であると仮定であると仮定であると仮定であると仮定であると仮定であると仮定であると仮定
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式とは?
Alice Bob
Public
AliceとBobが秘密のコミュニケーションをとりたい場合
� AliceとBobは1組の鍵をもつ� 公開鍵:一般に公開する鍵� 秘密鍵:自分だけが保有する鍵
Public60
Private Private
60データがデータがデータがデータがBobからからからからアリスへ送られる アリスへ送られる アリスへ送られる アリスへ送られる
Globus JpGrid Tutorial JPGRID-TU0201-No.3
15
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式とは?
Alice Bob
Public
AliceとBobが秘密のコミュニケーションをとりたい場合
� AliceとBobは1組の鍵をもつ� 公開鍵:一般に公開する鍵� 秘密鍵:自分だけが保有する鍵
Public
Private Private
60
Decryption
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式とは?
Alice Bob
Public
AliceとBobが秘密のコミュニケーションをとりたい場合
� AliceとBobは1組の鍵をもつ� 公開鍵:一般に公開する鍵� 秘密鍵:自分だけが保有する鍵
Public
Private Private
30
Globus JpGrid Tutorial JPGRID-TU0201-No.3
16
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号方式
ユーザは秘密鍵と公開鍵の1組の鍵を持ち、これらの組み合わせによって暗号化と認証を実現する。
� 暗号化暗号化暗号化暗号化: 相手の公開鍵を用いてデータを暗号化して送る。� 電子署名電子署名電子署名電子署名:自分の秘密鍵を用いてデータに本人しかできない情
報をデータに添付する
この方法によりGlobusの相互認証が実現されている
Advanced Industrial Science and Technology / Tokyo Institute of Technology
公開鍵暗号の問題
巷に出回る公開鍵の信頼性が低くなってしまう。
�友達の友達は他人!?
A
B
C
AAととととととととBBは直接は直接は直接は直接は直接は直接は直接は直接やりとりがあるやりとりがあるやりとりがあるやりとりがあるやりとりがあるやりとりがあるやりとりがあるやりとりがある
D
DDととととととととAAはやりとりがはやりとりがはやりとりがはやりとりがはやりとりがはやりとりがはやりとりがはやりとりがこれまでないこれまでないこれまでないこれまでないこれまでないこれまでないこれまでないこれまでない
This isA’s key
本当にAの公開鍵かしら??
Globus JpGrid Tutorial JPGRID-TU0201-No.3
17
Advanced Industrial Science and Technology / Tokyo Institute of Technology
PKI CA (Certificate Authority)
CA
この鍵は確かにAさんの鍵です。from CA
CAの秘密鍵をつかったの秘密鍵をつかったの秘密鍵をつかったの秘密鍵をつかった電子署名電子署名電子署名電子署名
証明書の作成と配布
ユーザは証明書に含まれている署名をCAの公開鍵で復号し証明書が正しいことを調べる
Advanced Industrial Science and Technology / Tokyo Institute of Technology
シングルサインオンの実現
ここまではSSLと同じ� 起動先から他のサーバへ接続することはできない
プロクシ証明書によるシングルサインオン
� ユーザの証明書を用いて保証された証明書
� 本来は別の独立した証明書と考えるべきものだが、あえてそのユーザの証明書として認定する
Globus JpGrid Tutorial JPGRID-TU0201-No.3
18
Advanced Industrial Science and Technology / Tokyo Institute of Technology
プロクシの実装既存のCAの連鎖の機構を使用
ユーザのアイデンティティ
ユーザのアイデンティティプロクシ証明書
ユーザ証明書
CA
ユーザ証明書
CA サブCA
ユーザのアイデンティティ
ユーザ証明書
CA
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globusを使うには事前にいずれかのCAから証明書を発行してもらう� Globus でもCAを運用している� 他のCAを使用する場合にはそのCAの証明書をインストールする必要がある
使用する際にgrid-proxy-init を実行� Globusによるグリッドにログインするためのコマンド: ここで自分の証明書のパスフレーズを入力
� パスフレーズなしで使用できるプロクシ証明書を作成してテンポラリディレクトリに書き込んでいる
Globus JpGrid Tutorial JPGRID-TU0201-No.3
19
Advanced Industrial Science and Technology / Tokyo Institute of Technology
プロクシ証明書の連鎖
CA
ユーザ証明書
プロキシ証明書2
プロキシ証明書3
プロキシ証明書2‘
プロキシ証明書1
grid-proxy-init
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globusのセキュリティ機構のまとめ
公開鍵暗号を用いた認証
� CAによる証明書の保証
プロクシ証明書を用いたシングルサインオン
� 証明書の連鎖でシングルサインオンを実現
Globus JpGrid Tutorial JPGRID-TU0201-No.3
20
Advanced Industrial Science and Technology / Tokyo Institute of Technology
資源情報管理
MDS (Monitoring and Discovery Service)� Gridの運用やアプリケーションの構成には、システムの情報が必要不可欠�どのリソースが利用可能か?� Gridの “状態” は?�リソースの利用をいかに最適化するか
� これらの疑問に答えるためには汎用の情報インフラが必要
� スケーラビリティ、汎用性
Advanced Industrial Science and Technology / Tokyo Institute of Technology
有用な情報の例
計算リソースの特徴� IP アドレス、使用可能なソフトウェア、システム管理者、接続しているネットワーク、OSバージョン、負荷状態
ネットワークの特徴
� バンド幅,レイテンシ、プロトコル、論理的なトポロジ
Globusインフラストラクチャの特徴� ホスト、リソースマネージャ
Globus JpGrid Tutorial JPGRID-TU0201-No.3
21
Advanced Industrial Science and Technology / Tokyo Institute of Technology
MDS のアーキテクチャ
A A
カスタマイズされた集合ディレクトリ
R RR R
各サーバで稼動するリソースサービス
登録
プロトコル
問い合わせ
Advanced Industrial Science and Technology / Tokyo Institute of Technology
2種類のMDS サーバGrid Resource Information Service (GRIS)� 特定のリソースに関する情報を提供
� 複数の情報プロバイダをサポートするように設定可能
� 問い合わせにはLDAP プロトコルを用いる
Grid Index Information Service (GIIS)� 複数のGRISサーバで集めた情報を提供� 複数のGRISサーバに分散した情報を効率的に問い合わせることを支援
� 問い合わせにはLDAP プロトコルを用いる
Globus JpGrid Tutorial JPGRID-TU0201-No.3
22
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GIIS
MDS の論理的な配置
GIISISI
GRISes
GIIS
GIIS GIISGrads Gusto
1つのGRISが複数のGIISを指すこともできるGRISを複数段積み重ねることも可能
Advanced Industrial Science and Technology / Tokyo Institute of Technology
LDAP の詳細Lightweight Directory Access Protocol� IETF 標準� X.500 DAP プロトコルを軽量化したもの� 分散ストレージへの分散アクセスをサポート(リフェラル)� 認証とアクセス制御をサポート
LDAPは以下を定義する:� ディレクトリの内容へアクセスするネットワークプロトコル
� 情報の形を与える情報モデル
� 情報の参照、構造化に用いる名前空間
Globus JpGrid Tutorial JPGRID-TU0201-No.3
23
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Example: CPU負荷値の検索計算資源のCPU負荷のフィールドを取得
% grid-info-search "(ObjectClass=MdsCpuFree)" dn Mds-Cpu-Free-1minX100
# processors, brain-n.a02.aist.go.jp, local, griddn: Mds-Device-Group-name=processors, Mds-Host-hn=brain-n.a02.aist.go.jp,Mds-Vo-name=local,o=gridMds-Cpu-Free-1minX100: 078
# processors, brain-n.a02.aist.go.jp, local, griddn: Mds-Device-Group-name=processors, Mds-Host-hn=brain-n.a02.aist.go.jp,Mds-Vo-name=local,o=gridMds-Cpu-Free-1minX100: 078
Advanced Industrial Science and Technology / Tokyo Institute of Technology
資源情報管理のまとめ
MDS = GIIS + GRIS� 階層化することで比較的スケーラブルに
プロトコルはLDAP� 条件を指定して絞込みをすることができる
Globus JpGrid Tutorial JPGRID-TU0201-No.3
24
Advanced Industrial Science and Technology / Tokyo Institute of Technology
リモートホスト上でのプログラムの起動
GRAM (Grid Resource Allocation Manager)� リモートサーバ上でプログラムを安全に実行
� GSIを用いた認証、マップファイルを用いた認可� シングルサインオン
� Unixアカウントと連動した認可
� GASSと連動したプログラムの転送と入出力のリダイレクト
�実行ファイルや引数ファイルを自動的にステージング
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GRAMの構成Gatekeeper:� 計算機に常駐し、クライアントからのジョブ要求を待つ
Job manager:� キューイングシステムにジョブを投入、管理
キューイングシステム:� プロセスの実際の起動をつかさどる
� デフォルトでは単純なfork
gatekeeper
Job requestJob-manager
プロセスプロセスプロセスプロセスプロセスプロセスプロセスプロセスキューイングシステム
Globus JpGrid Tutorial JPGRID-TU0201-No.3
25
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Gatekeeper の役割リクエストを受け付ける
� GSIを用いた認証� マップファイルに基づく認可
ユーザの権限でJob Managerを起動� Job Managerが実際にプロセスを起動
Gatekeeper自体は inetd, xinetd などから起動されるようにするのが一般的
Advanced Industrial Science and Technology / Tokyo Institute of Technology
grid-mapfileGlobal Idからからからからlocal accountへのマッピングへのマッピングへのマッピングへのマッピング
このファイルにかかれていなければGRAM経由でプロセスを起動することはできない
"/C=US/O=Globus/O=Electrotechnical Laboratory/CN=Yoshio Tanaka" yoshio"/C=JP/O=AIST GTRC/CN=Sugree Phatanapherom/[email protected]" sugree"/O=Grid/O=Globus/OU=apgrid/CN=Hidemoto Nakada" nakada"/O=Grid/O=Globus/OU=apgrid.org/CN=Osamu Tatebe“ tatebe"/O=Grid/O=Globus/OU=a02.aist.go.jp/CN=Ninf Demonstrator" ninfdemo"/O=Grid/O=Globus/OU=itbrain.co.jp/CN=Hirofumi Miyamoto" gcomp……
"/C=US/O=Globus/O=Electrotechnical Laboratory/CN=Yoshio Tanaka" yoshio"/C=JP/O=AIST GTRC/CN=Sugree Phatanapherom/[email protected]" sugree"/O=Grid/O=Globus/OU=apgrid/CN=Hidemoto Nakada" nakada"/O=Grid/O=Globus/OU=apgrid.org/CN=Osamu Tatebe“ tatebe"/O=Grid/O=Globus/OU=a02.aist.go.jp/CN=Ninf Demonstrator" ninfdemo"/O=Grid/O=Globus/OU=itbrain.co.jp/CN=Hirofumi Miyamoto" gcomp……
Globus JpGrid Tutorial JPGRID-TU0201-No.3
26
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Job Managerの役割プロセスの状態を監視、管理� クライアントからのリクエストで状態を報告
� API上は、自動的にコールバック関数が呼ばれる�キューに入っている、アクティブ、失敗、終了
� プロセスの制御�強制終了
キューイングシステムを抽象化� 同じインターフェイスでさまざまなキューイングシステムが使用できる
� Fork, PBS, Condor, ….
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GRAMのまとめgatekeeper
Job request
Job-manager
プロセスプロセスプロセスプロセスプロセスプロセスプロセスプロセス
Job制御、状態通知キューイングシステム
Job-manager
プロセスプロセスプロセスプロセスプロセスプロセスプロセスプロセス
エラー通知
Globus JpGrid Tutorial JPGRID-TU0201-No.3
27
Advanced Industrial Science and Technology / Tokyo Institute of Technology
SSHとの相違GSIによるシングルサインオン� さらに別のサーバに接続することが可能
� ホストとユーザ名の対応をユーザが管理する必要がない
サーバ側でローカルなスケジューラの使用が可能
リモートジョブの詳細な管理� 状態の検出、ジョブの破棄など。
クライアントとの間にストリームができるわけではない� Globus-IOなどでクライアントにコールバック接続する必要がある
� ファイアウォールとの親和性が低い原因のひとつ
Advanced Industrial Science and Technology / Tokyo Institute of Technology
ホスト間のデータ転送
要請� セキュリティ – シングルサインオン� 高レイテンシ、高スループット環境下での効率的な転送
GridFTP� GSI+FTP 、GGFで標準化� ストライピングによる高速転送、第3者転送をサポート
GASS� GSI+HTTPベースの古いモジュール� GRAMとの連動以外ではあまり使用されなくなりつつある
Globus JpGrid Tutorial JPGRID-TU0201-No.3
28
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GridFTP: 基本的なアプローチFTP プロトコルの標準は、幾つかのIETFのRFCによって規定されている
もっとも良く用いられているサブセットからはじめる� get/put など, サードパーティ転送標準だがあまり用いられていない機能を実装� GSSバインディング, 拡張ディレクトリのリスト, 簡単な(シンプル) リスタート
既存のサーバとの相互運用性を保ちつつ、様様な方向性に拡張� ストライピング/並列データチャンネル、部分ファイルアクセス、自動/手動 TCPバッファの調整、転送状態のモニタリング、拡張リスタート
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GridFTP プロトコル仕様既存の標準� RFC 949: File Transfer Protocol� RFC 2228: FTP Security Extensions (セキュリティ拡張)
� RFC 2389: Feature Negotiation for the File Transfer Protocol
� Draft: FTP Extensions新しいドラフト� GridFTP: グリッド向けのFTPのプロトコル拡張
� グローバルグリッドフォーラム (Global Grid Forum)の Data Working Groupにて議論・標準化
Globus JpGrid Tutorial JPGRID-TU0201-No.3
29
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GridFTP のツール群既存のFTPプログラムコードへのパッチ群� 既存のFTPクライアントやサーバに対するGSI化するためのパッチ。特に、高品質のプロダクションコードが必要な場合のため。
� GridFTPの一部のプロトコルのサポートのみ新たに開発したライブラリ群� フルセットのGridFTPプロトコルの実装。高性能でカスタム化されたアプリケーションをターゲット
新たに開発したツール群� 新たな機能を持ち高性能なGridFTPサーバやクライアント
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GASS (Globus Access to Secondary Storage )ファイル転送コンポーネントのひとつ
GRAMとうまく協調動作� ファイルや実行のステージングやI/Oのリダイレクションをサポート
GSI化されたHTTPプロトコルを使用� 必要に応じてデータ転送を行うキャッシングのアルゴリズムを実装している。
globus_gass, globus_gass_transfer, globus_gass_cache などのAPIがある
Globus JpGrid Tutorial JPGRID-TU0201-No.3
30
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globusで実装したシステムの実態
クライアント@上野
データサーバ@大阪大学
計算機A@東工大
計算機B@つくば
CA
GRIS
GRIS
GRISGIIS
gatekeeper
gatekeeper
ユーザ証明書
プロキシ証明書2
プロキシ証明書3プロキシ
証明書1
grid-proxy-init
資源情報の問い合わせ
GridFTPサーバ
データ転送
プロセスプロセスプロセスプロセスプロセスプロセスプロセスプロセス
プロセスの起動
結果の返送
Advanced Industrial Science and Technology / Tokyo Institute of Technology
注意!
ここで示したのは Globusで実装したシステム例であって、Globus単体でできるわけではありません
→ ミドルウェアが必要
Globus JpGrid Tutorial JPGRID-TU0201-No.3
31
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus Toolkitのインストールインストールについて
� 何をどこにインストールすればいいか
� どうやってインストールすればいいか
他に必要な準備
� 証明書の取得
� gatekeeperの設定、GRIS/GIISの設定
Advanced Industrial Science and Technology / Tokyo Institute of Technology
どこにインストールするか?
Globus Toolkitは基本的にクライアント・サーバモデル。
クライアント サーバ
ジョブ起動の要求
データ検索
grid-proxy-initやglobusrunなどのGlobusのコマンドが(最低)必要
GRAM, MDSなどの機能が必要
クライアント・サーバ双方にクライアント・サーバ双方にクライアント・サーバ双方にクライアント・サーバ双方にGlobus Toolkitををををインストールする必要があるインストールする必要があるインストールする必要があるインストールする必要がある
Globus JpGrid Tutorial JPGRID-TU0201-No.3
32
Advanced Industrial Science and Technology / Tokyo Institute of Technology
パッケージとバンドル
Globus ToolkitGrid Packaging
Toolkit
SGI AIX Linux Solaris
Binary distributions for popular platforms
MDS GSI GridFTP GRAM
Thematic “bundles” of SW componentsVery large SW
Toolkit distribution
NASA IPG Alliance EuropeanDataGrid
Customized SW distributions for projects
Highly-modular SW components (packages)
ソースおよびバイナリパッケージ
� パッケージの例: globus_gram_client-i686-linux-gcc32dbg.tar.gz
パッケージはバンドルに集められている
� カスタマイズされたインストールが可能
� サイト固有なバンドルの生成が可能
Advanced Industrial Science and Technology / Tokyo Institute of Technology
何をインストールすればいいか?ー 提供されているパッケージ -
MDS GridFTPGRAM
MDS GridFTPGRAM
MDS GridFTPGRAM
クライアントバンドルクライアントバンドルクライアントバンドルクライアントバンドル
サーババンドルサーババンドルサーババンドルサーババンドル
SDKバンドルバンドルバンドルバンドル
ソースバンドルソースバンドルソースバンドルソースバンドル
Solaris Solaris Solaris Solaris
Linux Linux Linux Linux
AIXI AIX AIX AIX
Solaris Solaris Solaris Solaris
Linux Linux Linux Linux
AIXI AIX AIX AIX
Solaris Solaris Solaris Solaris
Linux Linux Linux Linux
AIXI AIX AIX AIX
バイナリバンドルバイナリバンドルバイナリバンドルバイナリバンドル
ALLババババンドルンドルンドルンドルSolaris Solaris Solaris Solaris
Linux Linux Linux Linux
AIXI AIX AIX AIX
Globus JpGrid Tutorial JPGRID-TU0201-No.3
33
Advanced Industrial Science and Technology / Tokyo Institute of Technology
何をインストールすればいいか?(cont’d)
どのバンドル?� クライアント側にはクライアントバンドル
� サーバ側にはサーババンドル
� アプリ開発、Globus上の他のミドルウェア(MPICH-G2, Ninf-Gなど)をインストールする場合にはSDKバンドル
ソース・バイナリの使い分け� バイナリバンドルはインストールが楽
� ソースバンドルからのインストールは� ソースの修正、デバッグなどをする場合
� バイナリバンドルが提供されていない場合
� Globus上の他のミドルウェア(MPICH-G2, Ninf-Gなど)をインストールする場合
Advanced Industrial Science and Technology / Tokyo Institute of Technology
もう1つ知らなければいけないことー Flavors ー
Flavorsはコンパイル時の選択をカプセル化する� コンパイラの選択: gcc or vendorcc� 32 または 64bit メモリモデル� デバッグ情報を含めるか?� スレッドの型 – pthreads, その他?ソースバンドルからインストールする場合には、Flavorを指定する� 例: gcc32dbg, vendorcc32dbgpthrバイナリバンドルの場合のFlavor� Linux: gcc32dbg� Solaris, IRIX, Tru64: vendorcc32dbg
Globus JpGrid Tutorial JPGRID-TU0201-No.3
34
Advanced Industrial Science and Technology / Tokyo Institute of Technology
インストールの手順(前準備)
ユーザ globus を作成対象ディレクトリを作成GPT (Grid Packaging Toolkit)をダウンロード&インストール� NCSAが開発したツール� スクリプトとperlモジュールにより構成され、パッケージ化のメタデータを管理
� バージョン5.005以上のPerlが必要� インストールにはbuild_gptコマンドを実行� インストール先はGPT_LOCATIONまたは
GLOBUS_LOCATIONGlobusのバンドルをダウンロード
Advanced Industrial Science and Technology / Tokyo Institute of Technology
インストール
インストール� バイナリバンドルのインストール
� GPT 2: $GPT_LOCATION/sbin/gpt-install� GPT 1: $GPT_LOCATION/sbin/globus-install
� ソースバンドルのインストール� GPT 2: $GPT_LOCATION/sbin/gpt-build� GPT 1: $GPT_LOCATION/sbin/globus-build
後処理� 環境設定
� csh: source $GLOBUS_LOCATION/etc/globus-user-env.csh� sh: . $GLOBUS_LOCATION/etc/globus-user-env.sh
� 後処理スクリプト� $GPT_LOCATION/sbin/gpt-postinstall
Globus JpGrid Tutorial JPGRID-TU0201-No.3
35
Advanced Industrial Science and Technology / Tokyo Institute of Technology
例:バイナリバンドルのインストール
GPT2を使って、を使って、を使って、を使って、i686, Linux上にすべてのパッケー上にすべてのパッケー上にすべてのパッケー上にすべてのパッケージを含むバイナリバンドルをインストールジを含むバイナリバンドルをインストールジを含むバイナリバンドルをインストールジを含むバイナリバンドルをインストール
% $GPT_LOCATION/sbin/gpt-install ¥globus-all-2.2.2-i686-pc-linux-gnu-bin.tar.gz
% source $GLOBUS=LOCATION/etc/globus-user-env.csh
% $GPT_LOCATION/sbin/gpt-postinstall
Advanced Industrial Science and Technology / Tokyo Institute of Technology
例:ソースバンドルのインストールGPT2を使って、を使って、を使って、を使って、GRAM, MDS, DATAのクライアントパッケーのクライアントパッケーのクライアントパッケーのクライアントパッケージをジをジをジをgcc, 32bit, debugモードでモードでモードでモードで/usr/local/globusにインにインにインにインストールストールストールストール
% setenv GLOBUS_LOCATION /usr/local/globus
% $GPT_LOCATION/sbin/gpt-build globus_resource_management_bundle-client-src.tar.gz gcc32dbg
% GPT_LOCATION/sbin/gpt-build globus_information_service_bundle-client-src.tar.gz gcc32dbg
% GPT_LOCATION/sbin/gpt-build globus_data_management_bundle-client-src.tar.gz gcc32dbg
% source $GLOBUS_LOCATION/etc/globus-user-env.csh
% $GLOBUS_LOCATION/sbin/gpt-postinstall
Globus JpGrid Tutorial JPGRID-TU0201-No.3
36
Advanced Industrial Science and Technology / Tokyo Institute of Technology
インストール後の手続きー GSIの設定 -
認証局の証明書等の配備、および証明書を作成するための準備# $GLOBUS_LOCATION/setup/globus/setup-gsiを実行(root権限が必要。root権限がない場合には、-norootオプションを指定)。� /etc/grid-security/の下に以下のファイルを生成
� certificates/42864e48.0� certificates/42864e48.signing_policy� globus-host-ssl.conf� globus-user-ssl.conf� grid-security.conf
証明書を取得するコマンドではない!
Advanced Industrial Science and Technology / Tokyo Institute of Technology
インストール後の手続きー 確認(verify) -
依存関係に従って正しくパッケージがインストールされているかを確認
% GPT_LOCATION/sbin/gpt-verify
“You have a coherent development tree”� インストールしたパッケージの上でコンパイルすることができる
“No packages are missing from your install tree”� 実行時の依存関係を満たしている
Globus JpGrid Tutorial JPGRID-TU0201-No.3
37
Advanced Industrial Science and Technology / Tokyo Institute of Technology
最後のステップー 証明書の取得 -
ユーザ証明書ユーザ証明書ユーザ証明書ユーザ証明書Subject DN公開鍵公開鍵公開鍵公開鍵Issuer (CA)Digital Signature
秘密鍵秘密鍵秘密鍵秘密鍵(暗号化)(暗号化)(暗号化)(暗号化)
サーバユーザ
サーバ証明書サーバ証明書サーバ証明書サーバ証明書Subject DN公開鍵Issuer (CA)Digital Signature
CAの公開鍵
秘密鍵秘密鍵秘密鍵秘密鍵
GSIでは、ユーザとサーバのいずれも(すべての資源は)では、ユーザとサーバのいずれも(すべての資源は)では、ユーザとサーバのいずれも(すべての資源は)では、ユーザとサーバのいずれも(すべての資源は)証明書を取得しておかなければならない証明書を取得しておかなければならない証明書を取得しておかなければならない証明書を取得しておかなければならない
CAの公開鍵
Advanced Industrial Science and Technology / Tokyo Institute of Technology
最後のステップー 証明書の取得方法 -
認証局認証局認証局認証局ユーザユーザユーザユーザ
CSR(CertificateSigning Request)Subject DN公開鍵公開鍵公開鍵公開鍵
grid-cert-requestコマンドで生成
正当性チェック
署名証明書発行
ユーザ証明書ユーザ証明書ユーザ証明書ユーザ証明書Subject DN公開鍵公開鍵公開鍵公開鍵Issuer (CA)Digital Signature
秘密鍵(暗号化)
①①①①
②②②②
③③③③
④④④④秘密鍵は漏れないように!
Globus JpGrid Tutorial JPGRID-TU0201-No.3
38
Advanced Industrial Science and Technology / Tokyo Institute of Technology
証明書の取得ー 具体例 (GT2.2の場合) -
ユーザ証明書ユーザ証明書ユーザ証明書ユーザ証明書% grid-cert-request
~/.globus/usercert_request.pem~/.globus/userkey.pemが生成される
% cat ~/.globus/usercert_request.pem | mail [email protected]ホスト証明書ホスト証明書ホスト証明書ホスト証明書# grid-cert-request –service host -host
/etc/grid-security/hostcert_request.pem/etc/grid-security/hostkey.pemが生成される
% cat /etc/grid-security/hostcert_request.pem | mail [email protected]サーバ証明書サーバ証明書サーバ証明書サーバ証明書% grid-cert-request –service ldap -host
/etc/grid-security/ldap/ldapcert_request.pem/etc/grid-security/ldap/ldapkey.pemが生成される
% cat /etc/grid-security/ldap/ldapcert_request.pem | mail [email protected]証明書がメールで届いたら、メールに書かれている指示に従って置く証明書がメールで届いたら、メールに書かれている指示に従って置く証明書がメールで届いたら、メールに書かれている指示に従って置く証明書がメールで届いたら、メールに書かれている指示に従って置く
Advanced Industrial Science and Technology / Tokyo Institute of Technology
personal-gatekeeperを使ったテストpersonal gatekeeper� ユーザ権限で動くgatekeeper� gatekeeperを起動したユーザしかジョブを実行できない� 起動するジョブはgatekeeperプロセスのowner userの権限で動く
% grid-proxy-initYour Identity: /O=Grid/O=Globus/OU=aist.go.jp/CN=Yoshio TanakaEnter GRID pass phrase for this identity: xxxxx 秘密鍵のパスフレーズ% globus-personal-gatekeeper –startGRAM contact: “:4176:/O=Grid/O=Globus/OU=aist.go.jp/CN=Yoshio Tanaka”
ジョブ実行のテスト% globus-job-run “:4176:/O=Grid/O=Globus/CN=Yoshio Tanaka” /bin/datepersonal gatekeeperのシャットダウン% globus-personal-gatekeeper –killall% grid-proxy-destroy
Globus JpGrid Tutorial JPGRID-TU0201-No.3
39
Advanced Industrial Science and Technology / Tokyo Institute of Technology
ここまでできたこと
Globus Toolkitのインストールユーザ証明書、ホスト証明書の取得
personal gatekeeperを使ったテスト
gatekeeperをinetd経由で動かす� (許可された)複数のユーザがジョブを実行できる
� ジョブを要求したユーザに対応するownerでプロセスが実行される
GRIS/GIISを動かす
次のステップ次のステップ次のステップ次のステップ
Advanced Industrial Science and Technology / Tokyo Institute of Technology
gatekeeperがinetd/xinetd経由で起動するように設定
/etc/servicesにエントリを追加gsigatekeeper 2119/tcp # Globus Gatekeeper
inetdまたはxinetdの設定� inetdの場合
� /etc/inetd.confに以下のエントリを追加gsigatekeeper stream tcp nowait root /usr/bin/env env
LD_LIBRARY_PATH=GLOBUS_LOCATION/libGLOBUS_LOCATION/sbin/globus-gatekeeper-conf GLOBUS_LOCATION/etc/globus-gatekeeper.conf
� # kill –HUP
� xinetdの場合� /etc/xinetd/globus-gatekeeperを作成
service gsigatekeeper { socket_type = stream protocol = tcp wait = no user = root env = LD_LIBRARY_PATH=GLOBUS_LOCATION/lib server = GLOBUS_LOCATION/sbin/globus-gatekeeper server_args = -conf GLOBUS_LOCATION/etc/globus-gatekeeper.conf disable = no }
� # /etc/rc.d/init.d/xinetd restart
Globus JpGrid Tutorial JPGRID-TU0201-No.3
40
Advanced Industrial Science and Technology / Tokyo Institute of Technology
grid-mapfileの編集/etc/grid-security/grid-mapfile� 以下の情報を格納するファイル
�どのユーザにジョブの起動を許可するか
�どのユーザをどのローカルユーザにマップするか
例“/O=Grid/O=Globus/OU=aist.go.jp/CN=Yoshio Tanaka” yoshio
� ユーザ証明書のDNとローカルユーザIDとのマップ� ここにエントリがないユーザからの要求は撥ねる
� ダブルクォートを忘れずに
Advanced Industrial Science and Technology / Tokyo Institute of Technology
globus gatekeeperのテストinetd/xinetd経由でglobus gatekeeperを起動し、ジョブが実行できることを確認する
% grid-proxy-init
% globus-job-run /bin/date
Globus JpGrid Tutorial JPGRID-TU0201-No.3
41
Advanced Industrial Science and Technology / Tokyo Institute of Technology
うまくいかなかったら
gatekeeperのログを見る$GLOBUS_LOCATION/var/globus-gatekeeper.log� ログにアクセスの記録、エラーが残っていればそれを参考にする
ログにアクセスの記録が残っていなければ、gatekeeperが起動していない。� inetd/xinetdの設定に問題� 物理的に接続できない。(firewallなど)� たとえばこんなことをやってみる
% telnet 2119� MLで聞く。([email protected], [email protected])
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GRISの起動GRISを起動するスクリプトを実行% $GLOBUS_LOCATION/sbin/globus-mds start
起動スクリプトにしてもいい
認証つきにするためには、ldap証明書を取得する必要がある。
grid-mapfileはgatekeeperと共有(デフォルト)
Globus JpGrid Tutorial JPGRID-TU0201-No.3
42
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GRISへの検索grid-info-seachコマンドを実行
% grid-info-search –x “objectclass=*”
Advanced Industrial Science and Technology / Tokyo Institute of Technology
より進んだコンフィグレーションjob managerの追加% setup-globus-job-manager-pbs -service-name
jobmanager
信頼する認証局の登録/etc/grid-security/certificates/xxxxxxxx.0/etc/grid-security/certificates/xxxxxxxx.signing_policy
認証局の運営SimpleCA, OpenSSL, …gram-reporterの登録gram-reporterパッケージのインストール等階層的なMDSツリーの構築grid-info-slapd.conf等コンフィグレーションファイルの編集
Globus JpGrid Tutorial JPGRID-TU0201-No.3
43
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GIIS側の設定ー 自組織のGIISにおけるVo-nameを定義 -
$GLOBUS_LOCATION/etc/grid-info-slapd.confに以下の記述を追加に以下の記述を追加に以下の記述を追加に以下の記述を追加
database giissuffix “Mds-Vo-name=AIST, o=Grid”conf /usr/local/gt2/etc/grid-info-site-giis.confpolicyfile /usr/local/gt2/etc/grid-info-site-policy.confanonymousbind yesaccess to * by * write$GLOBUS_LOCATION/etc/grid-info-site-policy.confのののの policydata の変更も必要 の変更も必要 の変更も必要 の変更も必要
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GRIS側の設定ー 例: ApGrid GIIS への登録 -$GLOBUS_LOCATION/etc/grid-info-resource-register.confに以下の記述を追加に以下の記述を追加に以下の記述を追加に以下の記述を追加
dn: Mds-Vo-Op-name=register, Mds-Vo-name=ApGrid, o=Gridregtype: mdsreg2reghn: mds.apgrid.orgregport: 2135regperiod: 600 type: ldaphn: koume.hpcc.jpport: 2135rootdn: Mds-Vo-name=AIST, o=Grid…
Globus JpGrid Tutorial JPGRID-TU0201-No.3
44
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GIISの検索検索するホストと、vo nameを指定する
% grid-info-search –x –h mds.apgrid.org-b “Mds-Vo-Name=ApGrid, o=Grid”
Advanced Industrial Science and Technology / Tokyo Institute of Technology
良くある質問
クラスタへのインストールについて
� すべてのノードにGlobusをインストールする必要があるの?
� 計算ノードはPrivate IPアドレスしか持ってないのだけど、大丈夫?
� 多くのノードに簡単にインストールする方法はある?
Globus JpGrid Tutorial JPGRID-TU0201-No.3
45
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus ToolkitのメンテナンスGlobus Toolkitは完全なソフトウェアではないバグフィックス等のアップデートパッケージが頻繁に提供されているので、それらを随時インストール
globus ML、bugzilla(http://bugzilla.globus.org)などでバグに関する情報が流れるので、ウォッチする
バグを見つけたら報告すべし
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Globus Toolkitの使い方グリッドインフラの構築に使う� すべての計算機にGlobus Toolkitをインストール� 信頼する認証局をどこにするか決定
� (必要に応じ)MDSツリーの構築� grid-mapfileへの登録アプリケーションの開発、実行� Globusを使ってアプリケーションを実行� Globusを使ってアプリケーションを開発
Globus JpGrid Tutorial JPGRID-TU0201-No.3
46
Advanced Industrial Science and Technology / Tokyo Institute of Technology
グリッドにおけるプログラミング
難しいが柔軟な処理が記述できる
使いやすいが
柔軟性に欠けるポータルポータルポータルポータル
高レベルミドルウェア高レベルミドルウェア高レベルミドルウェア高レベルミドルウェア
低レベルミドルウェア低レベルミドルウェア低レベルミドルウェア低レベルミドルウェア
基本機能、プリミティブ基本機能、プリミティブ基本機能、プリミティブ基本機能、プリミティブ
MPICHMPICH--G2G2
コマンドでの操作コマンドでの操作コマンドでの操作コマンドでの操作
Advanced Industrial Science and Technology / Tokyo Institute of Technology
クライアントツール
globus-job-runglobus-job-submitglobusrunすべて接続先のホストと、そこで実行するコマンドを指定する
それでは、何が違うのか?
Globus JpGrid Tutorial JPGRID-TU0201-No.3
47
Advanced Industrial Science and Technology / Tokyo Institute of Technology
globus-job-runglobus-job-runはコマンド行の引数を使って、実行ファイルのステージングや標準入出力のリダイレクトのためにGASSサービスを導入するGRAMクライアントの例
% globus-job-run Pitcairn.ucs.indiana.edu /bin/ls% globus-job-run aries255.ucs.indiana.edu ¥
–s helloc% globus-job-run aries255.ucs.indiana.edu ¥
–stdin –s in.txt –stdout –s out.txt –s helloc
Advanced Industrial Science and Technology / Tokyo Institute of Technology
globus-job-run
フォアグラウンドで実行し、結果を直接出力する� もし-stdinや-stdoutによって結果をリダイレクトしても、フォアグラウンドで実行する
� 最後の例では、もしhellocの実行に5分かかればコマンドの実行が完了するまで待たされる
2119番のポートで待つデフォルトのgatekeeperに接続し、デフォルトのジョブマネージャに要求を出す
Globus JpGrid Tutorial JPGRID-TU0201-No.3
48
Advanced Industrial Science and Technology / Tokyo Institute of Technology
globus-job-submit
$GLOBUS_LOCATION/libexeclsf を例にすると …� globus-script-lsf-submit� globus-script-lsf-poll� globus-script-lsf-rm� globus-script-lsf-signal� globus-script-lsf-queue利用可能なジョブマネージャのリストは$GLOBUS_LOCATION/etc/grid-servicesに置かれている
Advanced Industrial Science and Technology / Tokyo Institute of Technology
コンタクトストリング
標準でないgatekeeperのポートやジョブマネージャにアクセスするために利用される
host[:port][/jobmanager][:subject]� 例, server.test.edu:8188/jobmanager-condor
以下の指定は標準の指定方法と同じことになる:� globus-job-run server.test.edu:2119/jobmanager
/bin/echo “Hello, world!”� globus-job-run
server.test.edu/jobmanager-lsf/home/yoshio/a.out
Globus JpGrid Tutorial JPGRID-TU0201-No.3
49
Advanced Industrial Science and Technology / Tokyo Institute of Technology
globus-job-submitもしフォアグラウンドで実行したくない場合にはどうするか?� 出力はどこかにほぞんしなければならない
globus-job-submit server.test.edu /bin/echo “Hello, world!”ジョブコンタクトを普通の文字列として返す� “https://server.test.edu:2173/21737/1011301465/”
globus-job-get-output � 後日データ(結果)を回収する
globus-job-status � ACTIVE, PENDING, SUSPENDED, DONE, FAILED
globus-job-clean
Advanced Industrial Science and Technology / Tokyo Institute of Technology
GASSキャッシュその出力はどこに置かれるのか?� ~/.globus/.gass_cacheglobus-job-get-outputを実行すると何が起こるのか?� オリジナルのジョブマネージャとジョブは実行を終えているが、いくつかのファイルを残している。
� (globus-gass-serverを使って)残されたファイルを取り出す新しいジョブを要求し、クライアント側に結果を戻す
Globus JpGrid Tutorial JPGRID-TU0201-No.3
50
Advanced Industrial Science and Technology / Tokyo Institute of Technology
globusrun他のジョブ送信ツールの下位レベルに位置する
gatekeeperにジョブを送信するために使う
オプションを指定する際にはリソース指定言語 (RSL) を使うglobusrun -r contact-string “RSL”� globus-job-run host command� globusrun –o –r host
‘&(executable=command)’
Advanced Industrial Science and Technology / Tokyo Institute of Technology
これじゃ、rshに毛がはえたくらいどんなアプリをどんなリソース上で動かしたいのかを考える選択肢� Globusをバックエンドで使うPortalを用意してもらう� Globusをバックエンドで使うミドルウェアを使う
� MPICH-G2, Ninf-G� Globusが提供するAPIを使ってプログラムをガリガリ書く
残りの時間で� MPICH-G2, Ninf-GがどのようにGlobusの機能を使っているかを紹介
� プログラミング方法は別の機会に
Globus JpGrid Tutorial JPGRID-TU0201-No.3
51
Advanced Industrial Science and Technology / Tokyo Institute of Technology
mpich-g2: Grid-enabled MPIこいつを使えば、既存のMPIプログラムがそのままグリッド上で動くmpichをベースに開発Globusの機能を利用� job submission, security, …
mpich-g2をインストールする場合には、GPTもGlobus Toolkitもソースバンドルからインストールする必要がある。� GT2.0, mpich-1.2.3 or later� mpichベースでないvendor supplied (native) mpiと組み合わせる場合のみ、Globusのbuild時にmpiフレーバを指定
Advanced Industrial Science and Technology / Tokyo Institute of Technology
MPICH-G2におけるGlobusの機能Local Machine
mpirun
globusrun
GRAM
ClientGSI
GRAM
ClientGSI
Remote Machine
MPI App
PBS
MPI
grid-proxy-init
X509UserCert
UserProxyCert
Machines
GRAM Gatekeeper
GSI
GRAM Job Manager
GASS Client
Remote Machine
MPI App
Unix Fork
GRAM Gatekeeper
GSI
GRAM Job Manager
GASS Client
RSL string
RSL multi-request
RSL single request
DUROC
GASS Server
RSL parser
MPI
MPI
MPIMPI
MPIGlobus IO
Globus JpGrid Tutorial JPGRID-TU0201-No.3
52
Advanced Industrial Science and Technology / Tokyo Institute of Technology
MPIプログラムの動かし方MPIプログラムを動かしたい計算機にGlobusToolkitとmpich-g2をインストールしておくMPIプログラムを動かしたい各サーバ上で、あらかじめMPIプログラム(アプリケーション)をコンパイルしておく
Globusを使ってジョブを投げるために必要なこと(証明書の取得、grid-proxy-initコマンドの実行など)はやっておく
Advanced Industrial Science and Technology / Tokyo Institute of Technology
MPIプログラムを起動する方法(1)
machineファイルを指定してmpirunコマンドを利用
� machineファイルの例“c1.aist.go.jp” 10“c2.aist.go.jp” 5
� コマンド例% mpirun –machinefile machines –np 24 myapp 123 456
Globus JpGrid Tutorial JPGRID-TU0201-No.3
53
Advanced Industrial Science and Technology / Tokyo Institute of Technology
MPIプログラムを起動する方法(2)
rslを作成・指定して、mpirunコマンドを利用
� コマンド例% mpirun –globusrsl myapp.rsl
Advanced Industrial Science and Technology / Tokyo Institute of Technology
RSLってどんな感じに書けばいい?
rslの見本:mpirunコマンドで-dumprslオプションを指定すれば、rslを見せてくれる% mpirun –dumpsrl –machinefile machines –np 12 myapp 123 456+ ( &(resourceManagerContact=“c1.aist.go.jp") (count=10)
(jobtype=mpi) (label="subjob 0") (environment=(GLOBUS_DUROC_SUBJOB_INDEX 0)) (arguments=" 123 456") (directory=/home/yoshio) (executable=/home/yoshio/myapp) )
( &(resourceManagerContact=“c2.aist.go.jp") (count=2) (jobtype=mpi) (label="subjob 1") (environment=(GLOBUS_DUROC_SUBJOB_INDEX 1)) (arguments=" 123 456") (directory=/home/yoshio) (executable=/home/yoshio/myapp) )
Globus JpGrid Tutorial JPGRID-TU0201-No.3
54
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Utilization of remotesupercomputers
userInternet
①①①① Call remote procedures
②②②② Notify results
Call remote libraries
Large scale computing utilizing multiple supercomputers on the Grid
GridRPC: RPCにもとづくプログラミングモデル
Advanced Industrial Science and Technology / Tokyo Institute of Technology
for (i = 0; i < num_branch; i++) {/* Call search function sequentially */result = search(argv[1], i, &value[i]);
}
for (i = 0; i < num_branch; i++) {/* Call search function sequentially */result = search(argv[1], i, &value[i]);
}
/* Generate handles for RPC */for (i = 0; i < num_branch; i++) grpc_function_handle_default
(&handles[i], “search”);
/* Call remote search functions. Parallelized by using async calls */for (i = 0; i < num_branch; i++) {grpc_call_async(&handles[i],
argv[1], i, &value[i]):}
/* Synchronize here */grpc_wait_all();
/* Generate handles for RPC */for (i = 0; i < num_branch; i++) grpc_function_handle_default
(&handles[i], “search”);
/* Call remote search functions. Parallelized by using async calls */for (i = 0; i < num_branch; i++) {grpc_call_async(&handles[i],
argv[1], i, &value[i]):}
/* Synchronize here */grpc_wait_all();
Sequential Program
Parallel Program using Ninf-Ggrpc_call_asyncgrpc_call_asyncgrpc_call_asyncgrpc_call_async
Client machine Remote machines
grpc_wait_allgrpc_wait_allgrpc_wait_allgrpc_wait_all
Globus JpGrid Tutorial JPGRID-TU0201-No.3
55
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Ninf-G: GridRPCシステム非常に簡単なAPI・ツールを提供� 既存のライブラリのリモートライブラリ化
� 既存のアプリケーションのグリッドへの移植
クライアント側の負担が少ない (no IDL)
’96にVer.1がリリース。様々なグリッド技術の研究に利用。
GlobusGlobus ToolkitToolkitを用いて実装を用いて実装を用いて実装を用いて実装を用いて実装を用いて実装を用いて実装を用いて実装((NinfNinf--G)G)
double A[n][n],B[n][n],C[n][n]; /* Data Decl.*/dmmul(n,A,B,C); /* Call local function*/
Ninf_call(“dmmul”,n,A,B,C); /* Call server side routine*/
double A[n][n],B[n][n],C[n][n]; /* Data Decl.*/dmmul(n,A,B,C); /* Call local function*/
Ninf_call(“dmmul”,n,A,B,C); /* Call server side routine*/
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Ninf - Original
Client
Ninf Server
Invoke Executable
Connect back
IDL file NumericalLibrary
IDL Compiler
RegisterRemote Library
Executable
GenerateInterfaceRequest
Interface Reply
Server sideClient side
fork
Globus JpGrid Tutorial JPGRID-TU0201-No.3
56
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Ninf-G
Client
GRAM
Invoke Executable
Connect back
IDL file NumericalLibrary
IDL Compiler
Remote LibraryExecutable
GenerateInterfaceRequest
Interface Reply
Server sideClient side
fork
GRIS Interface InformationLDIF Fileretrieve
Advanced Industrial Science and Technology / Tokyo Institute of Technology
Ninf-Gの使い方サーバ側� リモートライブラリのためのIDLファイルの記述� IDL Compilerを用いてIDLファイルをコンパイル� 生成されたmakefileを用いてmakeを実行� make -f XXX.mak install を実行してリモートライブラリを登録
クライアント側� Ninf APIを用いてプログラムを記述� Ninfが提供するコンパイラドライバを用いてコンパイル� grid-proxy-init を実行してユーザ認証を行なう
� プログラムを実行する
Globus JpGrid Tutorial JPGRID-TU0201-No.3
57
Advanced Industrial Science and Technology / Tokyo Institute of Technology
まとめ
話の内容� グリッドとは?の説明
� シナリオベースでGlobusの機能の紹介� インストールを詳しく
残っている課題� 認証局の運営
� GRISへのinformation providerの追加� MPICH-G2, Ninf-Gを使ったプログラミング� Condor-G
Globus Toolkit 3質問等は、MLで!� [email protected]� グリッド協議会home pageの「技術情報」ページで登録
Advanced Industrial Science and Technology / Tokyo Institute of Technology
謝辞
Globus Project のスライドを一部使用させていただきました。
大阪大学 伊達進 様のスライドを一部使用させていただきました。