57
GlobusJpGridTutorial JPGRID-TU0201-No.3 1 Advanced Industrial Science and Technology / Tokyo Institute of Technology Globusあなたの知りたいこと教えます 産業技術総合研究所 グリッド研究センター 中田秀基 田中良夫 Advanced Industrial Science and Technology / Tokyo Institute of Technology おはなしのなかみ グリッドってなに T グリッドに対する5つの誤解 Globusってなに T もしくはGlobusはなにではないか Globusでなにができるの T シナリオベースで主要モジュールの機能を解説 Globusのインストール方法 T 「使えるようにする」までの手順を詳細に説明 Globusってどう使うの T いくつかの典型的な使い方を紹介

GlobusGlobus JpGrid Tutorial JPGRID-TU0201-No.3 2 Advanced Industrial Science and Technology / Tokyo Institute of Technology グリッドってなに?計算機を接続するだけで、いつでもどこからでも

  • 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 のスライドを一部使用させていただきました。

    大阪大学 伊達進 様のスライドを一部使用させていただきました。