Sun N1 Grid Engine 6.1 管理ガイド

パスの別名設定の使用

Solaris などのネットワーク UNIX 環境では、ユーザーがいくつかのマシンに同じホームディレクトリ (あるいはその一部) を持つことがよくあります。たとえば、ディレクトリが NFS でアクセス可能になっている場合などです。しかし、すべてのマシンでホームディレクトリのパスが完全には同じでないことがあります。

たとえば NFS と オートマウンタで使用可能なユーザーのホームディレクトリを考えてみます。ユーザーが NFS サーバー上に /home/foo というホームディレクトリを持っている場合、オートマウンタを実行する適切にインストールされたすべての NFS クライアント上では、このパスでこのホームディレクトリはアクセスできます。しかし、クライアントの /home/foo は、/tmp_mnt/home/foo へのシンボリックリンクにすぎません。オートマウンタがディレクトリを物理的にマウントしている NFS サーバー上の実際の場所は、/tmp_mnt/home/foo です。

クライアントホスト上のユーザーが qsub -cwd コマンドを使用してホームディレクトリツリー内のある場所からジョブを発行した場合、-cwd フラグは、そのジョブが現在の作業ディレクトリで実行されることを要求します。ただし、実行ホストが NFS サーバーである場合、Grid Engine システムは、そのホストで現在の作業ディレクトリを見つけられない可能性があります。これは、発行ホスト上の現在の作業ディレクトリが、(発行ホスト上の物理的な位置である) /tmp_mnt/home/foo であるためです。このパスは実行ホストに渡されます。ただし、実行ホストが NFS サーバーである場合、物理的なホームディレクトリパスは /home/foo で、/tmp_mnt/home/foo ではないため、パスが解決できません。

そのほか、同じような問題を引き起こすケースとしては、次のような場合があります。

このような問題を防ぐため、Grid Engine ソフトウェアでは、管理者とユーザーがどちらもパス別名設定ファイルを構成できます。このような 2 つのファイルは、次の場所にあります。

パス別名設定ファイルの形式

パス別名設定ファイルは、両方とも同じ形式です。

パス別名設定ファイルの解釈法

    ファイルは、次のように解釈されます。

  1. qsub が物理的な現在の作業ディレクトリのパスを検索したあとで、グローバルパス別名設定ファイルが存在する場合は、そのファイルが読み取られます。ユーザーパス別名設定ファイルは、グローバルファイルの最後に付加されているかのように、あとで読み取られます。

  2. 無視されないファイルは、ファイルの先頭から1 行ずつ読み取られます。必要に応じて、それらの行により指定された置換内容が格納されます。

    置換内容が保存されるのは、次の条件がいずれも真である場合のみです。

    • 発行ホストの文字列が、qsub コマンドが実行されるホストに一致する。

    • ソースパスが、すでに格納されている現在の作業ディレクトリまたはソースパス置換の先頭部分の構成要素になっている。

  3. 両方のファイルが読み取られると、格納されているパス別名設定情報が、発行されたジョブとともに実行ホストに渡されます。

  4. 実行ホストで、別名設定情報が評価されます。実行ホストの文字列が実行ホストに一致する場合は、現在の作業ディレクトリの先頭部分が、ソースパス置換により置き換えられます。この場合、現在の作業ディレクトリ文字列が変更されます。以降のパス別名は、適用されるためには、置換された作業ディレクトリパスに一致する必要があります。

例 4–1 は、上記の NFS オートマウンタの問題が、別名設定ファイルエントリを使用してどのように解決できるかを示す例です。


例 4–1 パス別名設定ファイルの例


# cluster global path aliases file
# src-path  subm-host   exec-host   dest-path
/tmp_mnt/   *           *           /