この章では、ユーザーアカウント、およびそのほかの関連するアカウントの管理について説明します。この章の内容は次のとおりです。
ユーザーアクセス
プロジェクトおよびプロジェクトアクセス
パスの別名設定
デフォルトの要求
内容説明に加えて、この章では次のタスクの実行方法を詳細に解説します。
Grid Engine システムのユーザーを設定するには、次のタスクを実行する必要があります。
必要なログインの割り当て。
ホスト A から、ホスト B で実行するようジョブを発行するには、ユーザーは両方のホストで同じアカウントを持っている必要があります。このアカウントには、同じユーザー名が必要です。sge_qmaster が動作しているマシンではログインは必要はありません。
アクセス権の設定。
Grid Engine ソフトウェアには、クラスタ全体やキュー、並列環境に対するユーザーアクセスを制限する機能が用意されています。詳細については、「ユーザーの構成」を参照してください。
また、特定のキューを一時停止または使用可能にする権限をユーザーに与えることができます。詳細については、「所有者パラメータの構成」を参照してください。
Grid Engine システムユーザーの宣言。
共有ツリーにユーザーを追加したり、ユーザーに対して機能ポリシーや優先ポリシーを定義するには、これらのユーザーを Grid Engine システムに対して宣言する必要があります。詳細については、「QMON を使用したポリシーに基づくリソース管理の構成」および 「QMON を使用したユーザーオブジェクトの構成」を参照してください。
プロジェクトアクセスの設定。
共有ベース、機能、または優先ポリシーの定義に対してプロジェクトを使用する場合、1 つ以上のプロジェクトに対してユーザーアクセスを与える必要があります。このように設定しないと、ユーザーのジョブは可能なもっとも低い優先順位クラスで終了し、ジョブがアクセスできるリソースは極めて少なくなります。詳細については、「QMON を使用したポリシーに基づくリソース管理の構成」を参照してください。
ファイルアクセス制限の設定。
Grid Engine システムのユーザーは、sge-root/ cell/common ディレクトリに対する読み取りアクセス権を持っている必要があります。
実行デーモンは、ジョブを開始する前にそのジョブ用に一時作業ディレクトリを作成し、そのディレクトリの所有権をジョブの所有者に移します。実行デーモンは root で動作します。この一時ディレクトリは、ジョブが完了するとただちに削除されます。この一時作業ディレクトリは、キュー構成パラメータ tmpdir で定義されたパスの下に作成されます。詳細については、queue_conf(5) の マニュアルページを参照してください。
tmpdir の場所の下に一時ディレクトリを作成できることを確認します。ディレクトリは、Grid Engine システムのユーザー所有権に設定する必要があります。ユーザーは、その一時ディレクトリに書き込みを行える必要があります。
サイト依存の設定。
定義上、バッチジョブには端末接続はありません。このため、コマンドインタプリタの起動リソースファイル (csh に対する .cshrc など) に stty などの UNIX コマンドが含まれていると、エラーになることがあります。起動ファイルに stty がないか調べ、『Sun N1 Grid Engine 6.1 インストールガイド』の第 6 章「インストールの検証」の説明に従って、そのようなコマンドを使用しないようにしてください。
通常、バッチジョブはオフラインで実行されるため、エラーイベントなどをジョブの所有者に通知する方法は 2 つしかありません。1 つはファイルにエラーメッセージを記録する方法、もう1 つは電子メールを送信する方法です。
まれな状況ですが、たとえばエラーログファイルを開けない場合は、電子メールがユーザーに直接通知する唯一の手段になります。この場合でも、エラーメッセージは Grid Engine システムのログファイルに記録されますが、通常、ユーザーはシステムログファイルの内容を見ません。このため、Grid Engine ユーザーのために電子メールシステムを正しくインストールしておくことを推奨します。
Grid Engine システム定義ファイルの設定。
Grid Engine ユーザー用に次の定義ファイルを設定できます。
qmon – Grid Engine システム GUI 用のリソースファイル。『Sun N1 Grid Engine 6.1 ユーザーズガイド』の「QMON のカスタマイズ」を参照してください。
sge_aliases – 現在の作業ディレクトリのパスの別名。「パスの別名設定の使用」を参照してください。
sge_request – デフォルトの要求定義ファイル。「デフォルト要求の構成」を参照してください。
Grid Engine システムには、次の 4 つのユーザーのカテゴリがあります。
管理者。管理者は、Grid Engine システムの操作に関する全権を持ちます。デフォルトでは、マスターホストと、キューのホストとなるマシンのスーパーユーザーが、管理者特権を持ちます。
オペレータ。 オペレータは、キューの追加、削除、変更ができないことを除けば、管理者が実行するのと同じコマンドの多くを実行できます。
所有者。キュー所有者は、所有するキューの一時停止/再開、あるいは使用不可/使用可能操作だけを行うことができます。qidle を正しく使用するには、これらの特権が必要です。一般にユーザーは、使用しているデスクトップワークステーション上のキューインスタンスの所有者として宣言されます。
ユーザー。「ユーザーの構成」で説明されているように、ユーザーにはある種のアクセス権がありますが、ユーザーはクラスタまたはキューを管理できません。
次では、各カテゴリをより詳細に説明します。
QMON またはコマンド行から管理者アカウントを構成できます。
「QMON Main Control」ウィンドウで「User Configuration」ボタンをクリックします。「Manager」タブが表示されます。このタブで、どのアカウントが管理コマンドを実行できるかを宣言できます。
このタブには、管理権限を持っていることがすでに宣言されているすべてのアカウントが表示されます。
新しい管理者アカウントを追加するには、管理者アカウントのリストの上にあるフィールドに名前を入力してから、「Add」をクリックするか、Return キーを押します。
管理者アカウントを削除するには、管理者アカウントを選択してから「Delete」をクリックします。
コマンド行から管理者アカウントを構成するには、適切なオプションを使用して、次のコマンドを入力します。
# qconf オプション |
次のオプションを使用できます。
-am オプション (管理者の追加) を使用すると、Grid Engine システムの管理者のリストに 1 人以上のユーザーが追加されます。デフォルトでは、信頼されたすべてのホストの root アカウントは、Grid Engine システムの管理者になります。詳細については、「ホストとデーモンについて」を参照してください。
-dm オプション (管理者の削除) を使用すると、Grid Engine システムの管理者のリストから、指定したユーザーが削除されます。
-sm オプション (管理者の表示) を使用すると、Grid Engine システムのすべての管理者のリストが表示されます。
QMON またはコマンド行からオペレータアカウントを構成できます。
「QMON Main Control」ウィンドウで「User Configuration」ボタンをクリックしてから「Operator」タブをクリックします。
「Operator」タブでは、アカウントが管理者アカウントとしても宣言されている場合を除き、どのアカウントに制限された管理権限を付与するかを宣言できます。 「QMON を使用した管理者アカウントの構成」を参照してください。
このタブには、オペレータ権限を持っていることがすでに宣言されているすべてのアカウントが表示されます。
新しいオペレータアカウントを追加するには、オペレータアカウントのリストの上にあるフィールドに名前を入力してから、「Add」をクリックするか、Return キーを押します。
オペレータアカウントを削除するには、オペレータアカウントを選択してから「Delete」をクリックします。
コマンド行からオペレータアカウントを構成するには、適切なオプションを使用して、次のコマンドを入力します。
# qconf オプション |
次のオプションを使用できます。
-ao オプション (オペレータの追加) を使用すると、Grid Engine システムのオペレータのリストに 1 人以上のユーザーが追加されます。
-do オプション (オペレータの削除) を使用すると、Grid Engine システムのオペレータのリストから、指定したユーザーが削除されます。
-so オプション (オペレータの表示) を使用すると、Grid Engine システムのすべてのオペレーターのリストが表示されます。
少なくとも 1 つの発行ホストおよび実行ホストで有効なログイン ID を持つユーザーは、Grid Engine システムを使用できます。ただし、Grid Engine システムの管理者は、一部のキューまたはすべてのキューに対する一部のユーザーのアクセスを禁止できます。また、管理者は特定の並列環境などの機能の使用を制限できます。詳細については、「並列環境の構成」を参照してください。
アクセス権を定義するには、ユーザーアクセスリストを定義する必要があります。ユーザーアクセスリストは、名前付きのユーザーのセットで構成されます。ユーザーアクセスリストの定義には、ユーザー名と UNIX グループ名を使用します。ユーザーアクセスリストは、次の任意の構成で、特定のリソースへのアクセスの拒否や許可の指定に使用されます。
クラスタ構成 – 「基本クラスタ構成」を参照
キュー構成 – 「従属キューの構成」を参照
並列環境インタフェースの構成 – 「QMON を使用した並列環境の構成」を参照。
「QMON Main Control」ウィンドウで「User Configuration」ボタンをクリックしてから「Userset」タブをクリックします。「Userset」タブが表示されます。
Grid Engine システムでは、ユーザーセットにはアクセスリストと部署の一方またはその両方を使用できます。「Usersets」リストの下の 2 つのチェックボックスには、選択したユーザーセットの種類が表示されます。このセクションにアクセスリストの詳細が表示されます。部署については、「プロジェクトおよび部署としてのユーザーセットの定義」で説明されています。
「Usersets」リストには、使用可能なすべてのアクセスリストが表示されます。アクセスリストの内容を表示するには、アクセスリストを選択します。内容は「Users/Groups」リストに表示されます。
グループ名の先頭には @ 記号が付いています。
新しいユーザーセットを追加するには「Add」をクリックします。
既存のユーザーセットを変更するには、ユーザーセットを選択してから「Modify」をクリックします。
ユーザーセットを削除するには、ユーザーセットを選択してから「Delete」をクリックします。
「Add」または「Modify」をクリックすると、「Access List Definition」ダイアログボックスが表示されます。
新しいアクセスリストの定義を追加するには、「Userset Name」フィールドにアクセスリストの名前を入力します。既存のアクセスリストを変更している場合は、その名前が「Userset Name」フィールドに表示されます。
アクセスリストに新しいユーザーまたはグループを追加するには、「User/Group」フィールドにユーザー名またはグループ名を入力します。必ず、グループ名の先頭には @ 記号を付けてください。
「Users/Groups」リストには、現在定義されているすべてのユーザーとグループが表示されます。
「Users/Groups」リストからユーザーまたはグループを削除するには、ユーザーまたはグループを選択してから、ゴミ箱のアイコンをクリックします。
変更を保存して、ダイアログボックスを閉じるには、「OK」をクリックします。変更を保存せずにダイアログボックスを閉じるには、「Cancel」をクリックします。
コマンド行からユーザーアクセスリストを構成するには、適切なオプションを使用して、次のコマンドを入力します。
# qconf オプション |
次のオプションを使用できます。
qconf -au user-name[ ,...]access-list-name[,...]
-au オプション (ユーザーの追加) を使用すると、指定したアクセスリストに 1 人以上のユーザーが追加されます。
-Au オプション (ファイルからのユーザーアクセスリストの追加) を使用すると、構成ファイル filename を使用してアクセスリストを追加します。
qconf -du user-name[ ,...] access-list-name [,... ]
-du オプション (ユーザーの削除) を使用すると、指定したアクセスリストから、1 人以上のユーザーが削除されます。
qconf -dul access-list-name [,...]
-dul オプション (ユーザーリストの削除) を使用すると、ユーザーセットのリストが完全に削除されます。
-mu オプション (ユーザーアクセスリストの変更) を使用すると、指定したアクセスリストが変更されます。
-Mu オプション (ファイルからのユーザーアクセスリストの変更) を使用すると、構成ファイル filename を使用して、指定したアクセスリストを変更します。
qconf -su access-list-name [,...]
-su オプション (ユーザーアクセスリストの表示) を使用すると、指定したアクセスリストが表示されます。
-sul オプション (ユーザーアクセスリストの表示) を使用すると、現在定義されているすべてのアクセスリストが表示されます。
ユーザーセットは、Grid Engine システムのプロジェクトと部署の定義にも使用できます。詳細については、「プロジェクトの定義」を参照してください。
部署は、機能ポリシーと優先ポリシーの構成に使用します。ユーザーは 1 つの部署のみのメンバーになることができるのに対し、1 人のユーザーを複数のアクセスリストに含めることができるという点において、部署はアクセスリストと異なります。詳細については、「機能ポリシーの構成」および 「優先ポリシーの構成」を参照してください。
ユーザーセットが部署であることは、図 4–1 と図 4–2 に示す「Department」フラグで示されます。ユーザーセットは、同時に部署とアクセスリストの両方として定義できます。ただし、複数の部署にユーザーを登録できないという制限が適用されます。
ユーザーに共有ベース、機能、または優先ポリシーを定義する前には、ユーザー名を宣言する必要があります。「QMON を使用したポリシーに基づくリソース管理の構成」を参照してください。
ポリシーを定義する前に明示的にユーザー名を宣言したくない場合、Grid Engine システムでは、定義済みのデフォルト値に基づいて、自動的にユーザーを作成できます。自動的にユーザーを作成することで、多くのユーザーを抱えるサイトの管理上の負担を大幅に軽減できます。
システムにユーザーを自動的に作成させるには、「Cluster Settings」ダイアログボックスの「Enforce User」パラメータを「Auto」に設定します。自動的に作成されるユーザーのデフォルト値を設定するには、「Cluster Settings」ダイアログボックスで、次の「Automatic User Defaults」の値を指定します。
「Override Tickets」
「Functional Shares」
「Default Project」
「Delete Time」
クラスタ構成の詳細については、「基本クラスタ構成」を参照してください。
「QMON Main Control」ウィンドウで「User Configuration」ボタンをクリックしてから「User」タブをクリックします。「User」タブは次の図のようになっています。
新しいユーザーを追加するには、「User」リスト上のフィールドにユーザー名を入力してから、「Add」をクリックするか Return キーを押します。
ユーザーを削除するには、「User」リストでユーザー名を選択してから「Delete」をクリックします。
「Delete Time」カラムは読み取り専用です。このカラムには、自動的に作成されたユーザーが Grid Engine システムから削除される時間が表示されます。ゼロは、そのユーザーが削除されないことを示します。
各ユーザーにはデフォルトのプロジェクトを割り当てることができます。ユーザーが、アクセスできる別のプロジェクトを要求する場合を除き、ユーザーが発行する各ジョブにはデフォルトのプロジェクトが関連付けられます。詳細については、「プロジェクトの定義」を参照してください。
デフォルトのプロジェクトを割り当てるには、ユーザーを選択してから、「Default Project」カラムヘッダーをクリックします。「Project Selection」ダイアログボックスが表示されます。
選択状態のユーザーエントリのプロジェクトを選択します。
デフォルトのプロジェクトを割り当て、ダイアログボックスを閉じるには、「OK」をクリックします。デフォルトのプロジェクトを割り当てることなくダイアログボックスを閉じるには、「Cancel」をクリックします。
コマンド行からユーザーオブジェクトを構成するには、適切なオプションを使用して、次のコマンドを入力します。
# qconf オプション |
次のオプションを使用できます。
-auser オプション (ユーザーの追加) を使用すると、エディタでテンプレートユーザー構成が開かれます。user(5) のマニュアルページを参照してください。このエディタは、デフォルトの vi エディタか、EDITOR 環境変数により指定されたエディタのいずれかです。 変更を保存してエディタを終了すると、変更は sge_qmaster に登録されます。
-Auser オプション (ファイルからのユーザーの追加) を使用すると、指定したファイルが解析され、ユーザー構成が追加されます。
このファイルは、ユーザー構成テンプレートの形式を有する必要があります。
-duser オプション (ユーザーの削除) を使用すると、1 つ以上のユーザーオブジェクトが削除されます。
-muser オプション (ユーザーの変更) を使用すると、既存のユーザーエントリを変更できます。このオプションにより、ユーザー構成がエディタに読み込まれます。このエディタは、デフォルトの vi エディタか、EDITOR 環境変数により指定されたエディタのいずれかです。 変更を保存してエディタを終了すると、変更は sge_qmaster に登録されます。
-Muser オプション (ファイルからのユーザーの変更) を使用すると、指定したファイルが解析され、ユーザー構成が変更されます。
このファイルは、ユーザー構成テンプレートの形式を有する必要があります。
-suser オプション (ユーザーの表示) を使用すると、指定したユーザーの構成が表示されます。
-suserl オプション (ユーザーリストの表示) を使用すると、現在定義されているすべてのユーザーのリストが表示されます。
プロジェクトは、複数のユーザーの共同計算タスクをまとめる手段となります。またプロジェクトは、そのようなプロジェクトに属するすべてのジョブに対してリソース使用ポリシーを定義します。
プロジェクトは、次の 3 つのスケジューリングポリシーの領域で使用されます。
共有ベース – プロジェクトに配分が割り当てられます (「共有ベースポリシーの構成」を参照)
機能 – プロジェクトは一定の割合の機能チケットを受け取ります (「機能ポリシーの構成」 を参照)
優先 – 管理者によってプロジェクトに優先チケットが付与されます (「優先ポリシーの構成」 を参照)
これらの 3 つのポリシーでプロジェクトを使用するには、前もってプロジェクトを宣言する必要があります。
Grid Engine システムの管理者は、プロジェクトに名前を付け、いくつかの属性を設定することによってプロジェクトを定義します。Grid Engine のユーザーは、ジョブの発行時に、ジョブをプロジェクトに関連付けることができます。共有ベース、機能、優先チケットのプロジェクトの配分に応じて、プロジェクトへのジョブの関連付けは、ジョブの振り分けに影響します。
Grid Engine システムの管理者は、「Project Configuration」ダイアログボックスを使用して、プロジェクトを定義し、定義を更新することができます。
プロジェクトを定義するには、「QMON Main Control」ウィンドウで「Project Configuration」ボタンをクリックします。 「Project Configuration」ダイアログボックスが表示されます。
現在定義されているプロジェクトは、「Projects」リストに表示されます。
選択したプロジェクトのプロジェクト定義が「Configuration」の下に表示されます。
プロジェクトをただちに削除するには、プロジェクトを選択してから「Delete」をクリックします。
新しいプロジェクトを追加するには「Add」をクリックします。プロジェクトを変更するには、プロジェクトを選択してから「Modify」をクリックします。「Add」または「Modify」をクリックすると、「Add/Modify Project」ダイアログボックスが開きます。
選択したプロジェクトの名前が「Name」フィールドに表示されます。プロジェクトにより、プロジェクトへのアクセスが許可または拒否されているユーザーのアクセスリストが定義されます。
「User Lists」の下のアクセスリストに含まれているユーザーは、プロジェクトにアクセスするアクセス権を持っています。「Xuser Lists」の下のアクセスリストに含まれているユーザーは、プロジェクトへのアクセスを拒否されます。詳細については「ユーザーの構成」を参照してください。
両方のリストが空である場合、すべてのユーザーがプロジェクトにアクセスできます。「User Lists」と「Xuser Lists」の両方に関連付けられている、異なるアクセスリストに含まれるユーザーは、プロジェクトへのアクセスを拒否されます。
「User Lists」または「Xuser Lists」にアクセスリストを追加したり、いずれかのリストからアクセスリストを削除することができます。このためには、「User Lists」または「Xuser Lists」の右側のボタンをクリックします。
「Select Access Lists」ダイアログボックスが表示されます。
「Select Access Lists」ダイアログボックスには、「Available Access Lists」の下で現在定義されているすべてのアクセスリストが表示されます。ダイアログボックスの「Chosen Access Lists」の下には、関連付けられているリストが表示されます。一方のリストでアクセスリストを選択できます。赤い矢印を使用すると、一方のリストからもう一方のリストにアクセスリストを起動できます。
変更を保存するには「OK」をクリックし、ダイアログ ボックスを閉じます。変更を保存せずにダイアログボックスを閉じるには、「Cancel」をクリックします。
コマンド行からプロジェクトを構成するには、適切なオプションを使用して、次のコマンドを入力します。
# qconf オプション |
次のオプションを使用できます。
-aprj オプション (プロジェクトの追加) を使用すると、エディタでテンプレートプロジェクト構成が開かれます。project(5) のマニュアルページを参照してください。このエディタは、デフォルトの vi エディタか、EDITOR 環境変数により指定されたエディタのいずれかです。 変更を保存してエディタを終了すると、変更は sge_qmaster に登録されます。
-Aprj オプション (ファイルからのプロジェクトの追加) を使用すると、指定したファイルが解析され、新しいプロジェクト構成が追加されます。このファイルは、プロジェクト構成テンプレートの形式を有する必要があります。
qconf -dprj project-name[,...]
-dprj オプション (プロジェクトの削除) を使用すると、1 つ以上のプロジェクトが削除されます。
-mprj オプション (プロジェクトの変更) を使用すると、既存のユーザーエントリを変更できます。このオプションにより、プロジェクト構成がエディタに読み込まれます。このエディタは、デフォルトの vi エディタか、EDITOR 環境変数により指定されたエディタのいずれかです。 変更を保存してエディタを終了すると、変更は sge_qmaster に登録されます。
-Mprj オプション (ファイルからのプロジェクトの変更) を使用すると、指定したファイルが解析され、既存のプロジェクト構成が変更されます。このファイルは、プロジェクト構成テンプレートの形式を有する必要があります。
-sprj オプション (プロジェクトの表示) を使用すると、特定のプロジェクトの構成が表示されます。
-sprjl オプション (プロジェクトリストの表示) を使用すると、現在定義されているすべてのプロジェクトのリストが表示されます。
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 ではないため、パスが解決できません。
そのほか、同じような問題を引き起こすケースとしては、次のような場合があります。
マシンによってマウントポイントのパスが異なる固定 NFS マウント。例としては、あるホストでは /usr/people にホームディレクトリをマウントし、別のホストで /usr/users の下にホームディレクトリをマウントする場合があります。
ネットワークから利用可能なファイルシステムへの外部からのシンボリックリンク
このような問題を防ぐため、Grid Engine ソフトウェアでは、管理者とユーザーがどちらもパス別名設定ファイルを構成できます。このような 2 つのファイルは、次の場所にあります。
sge-root/cell/common/sge_aliases — クラスタ用のグローバルクラスタパス別名設定ファイル
$HOME/.sge_aliases — ユーザー別のパス別名設定ファイル
グローバルファイルの変更は、管理者だけが行なってください。
パス別名設定ファイルは、両方とも同じ形式です。
空白行と、先頭に # 記号がある行は無視されます。
空白行と # で始まる行以外の各行には、任意の数の空白文字またはタブで区切った 4 つの文字列が含まれる必要があります。
最初の文字列がソースパス、2 つ目が発行ホスト、3 つ目が実行ホスト、4 つ目がソースパス置換を指定します。
発行ホストおよび実行ホストの文字列には、任意のホストに一致する * (アスタリスク) 記号を使用できます。
ファイルは、次のように解釈されます。
qsub が物理的な現在の作業ディレクトリのパスを検索したあとで、グローバルパス別名設定ファイルが存在する場合は、そのファイルが読み取られます。ユーザーパス別名設定ファイルは、グローバルファイルの最後に付加されているかのように、あとで読み取られます。
無視されないファイルは、ファイルの先頭から1 行ずつ読み取られます。必要に応じて、それらの行により指定された置換内容が格納されます。
置換内容が保存されるのは、次の条件がいずれも真である場合のみです。
発行ホストの文字列が、qsub コマンドが実行されるホストに一致する。
ソースパスが、すでに格納されている現在の作業ディレクトリまたはソースパス置換の先頭部分の構成要素になっている。
両方のファイルが読み取られると、格納されているパス別名設定情報が、発行されたジョブとともに実行ホストに渡されます。
実行ホストで、別名設定情報が評価されます。実行ホストの文字列が実行ホストに一致する場合は、現在の作業ディレクトリの先頭部分が、ソースパス置換により置き換えられます。この場合、現在の作業ディレクトリ文字列が変更されます。以降のパス別名は、適用されるためには、置換された作業ディレクトリパスに一致する必要があります。
例 4–1 は、上記の NFS オートマウンタの問題が、別名設定ファイルエントリを使用してどのように解決できるかを示す例です。
# cluster global path aliases file # src-path subm-host exec-host dest-path /tmp_mnt/ * * / |
通常、バッチジョブは、要求プロファイルを基にキューに割り当てられます。ユーザーは、特定のジョブに対して要求プロファイルを定義します。ユーザーは、ジョブを正しく実行するために満たされなければならない要求のセットを組み立てます。スケジューラは、このジョブに関する要求のセットを満たすキューだけを考慮します。
ユーザーがジョブに関する要求を指定しない場合、スケジューラは、ユーザーがアクセス可能なあらゆるキューを考慮します。この場合、キューがアクセス可能であること以外の制約はありません。ただし、Grid Engine ソフトウェアでは、ユーザーがリソース要求を明示的に指定しなくてもジョブのリソース要求を定義するデフォルト要求を構成することができます。
デフォルト要求は、クラスタのユーザー全員にグローバルに構成することも、任意のユーザーに対して個人用として構成することもできます。デフォルト要求の構成は、デフォルト要求ファイルに格納されます。グローバル要求ファイルは sge-root/cell /common/sge_request にあります。ユーザー別の要求ファイルは、ユーザーのホームディレクトリまたは現在の作業ディレクトリのいずれかに置くことができます。 作業ディレクトリは、qsub コマンドが実行される場所です。ユーザー別の要求ファイルは、.sge_request と呼ばれます。
これらのファイルが存在する場合は、あらゆるジョブでその評価が行われます。評価の順序は次のとおりです。
グローバルデフォルト要求ファイル
ユーザーのホームディレクトリにあるユーザー別デフォルト要求ファイル
現在の作業ディレクトリにあるユーザー別デフォルト要求ファイル
ジョブスクリプトまたは qsub コマンドで指定された要求は、デフォルト要求ファイルの要求より優先されます。ジョブに対する明示的なリソース要求方法についての詳細は、『Sun N1 Grid Engine 6.1 ユーザーズガイド』の第 3 章「ジョブの発行」を参照してください。
(以前の要求の指定を破棄する) qsub -clear コマンドを使用することで、Grid Engine システムがデフォルト要求ファイルを使用しないようにすることができます。
ローカルおよびグローバル両方のデフォルト要求ファイルの形式は次のようになります。
デフォルト要求ファイルには、任意の数の行を含むことができます。空白行と、先頭に # 記号がある行は無視されます。
qsub(1) のマニュアルページで説明されているように、無視する行以外の各行には、任意の qsub オプションを含めることができます。1 行に複数のオプションを指定することができます。バッチスクリプトファイルと、バッチスクリプトに対する引数オプションは、qsub オプションとみなされません。このため、これらはデフォルト要求ファイルでは使用できません。
qsub -clear コマンドは、現在評価されている要求ファイルまたは以前に処理された要求ファイルの、以前のあらゆる要求指定を廃棄します。
あるユーザーのローカルのデフォルト要求ファイルが例 4–2 のスクリプト、test.sh と同じ構成であると仮定します。
# Local Default Request File # exec job on a sun4 queue offering 5h cpu -l arch=solaris64,s_cpu=5:0:0 # exec job in current working dir -cwd |
このスクリプトを実行するには、ユーザーは次のコマンドを入力します。
% qsub test.sh |
次のように、ユーザーが直接コマンド行ですべての qsub オプションを指定した場合、test.sh スクリプトを実行した結果と同じになります。
% qsub -l arch=solaris64,s_cpu=5:0:0 -cwd test.sh |
qsub を使用して発行したバッチジョブ同様、qsh を使用して発行した対話形式のジョブでもデフォルト要求ファイルは考慮されます。QMON を使用して発行した対話形式またはバッチジョブでも、これらの要求ファイルが考慮されます。