openMosix の管理 管理の基本 openMosix は、プロセス・マイグレーションという長所を HPC アプリケーション に加えます。 管理者はユーザ空間で動くツールもしくは、/proc/hpc インタフェースを使って openMosix クラスタの設定とチューニングが行えます。詳細を説明していきましょう。 openMosix バージョン 2.4.16 までは、/proc インタフェースは /proc/mosix でした。openMosix バージョン 2.4.17 になって /proc/hpc となりました。 設定 /proc/hpc/admin ディレクトリに並んだファイルの値は、クラスタの現在の設定を 表しています。管理者はこの値自身をこれらのファイルに書き込むことで、動作中に 設定を変更できます。 /proc/hpc パラメタの変更 echo 1 > /proc/hpc/admin/block リモートからのプロセスをブロック する。 echo 1 > /proc/hpc/admin/bring マイグレートしているプロセスを すべてホームノードに持ってくる。
... /proc/hpc/admin/ (binary files) config メイン設定ファイル(setpe ユーティリティが作成) (flat files) block リモート からのプロセスの許可・禁止 bring マイグレート済みのプロセスすべてをホームノードに持ってくる dfsalinks 現状のシンボリック DFSA リンク expel ゲストプロセスをホームノードに送る gateways ゲートウェイの最大数 lstay ローカルプロセスはマイグレートしない mospe openMosix のノード ID が入る nomfs MFS の有効・無効 overheads チューニング用 quiet 負荷分散情報の収集を停止 decay-interval 負荷分散情報の収集の間隔 slow-decay デフォルトは 975 fast-decay デフォルトは 926 speed Pentium III/1GHz との相対速度 stay 自動マイグレーションの有効・無効
/proc/hpc/decay/ にあるファイルに 1 を書き込む clear 分散統計データのクリア cpujob openMosix にプロセスが CPU を掴んでいることを通知 iojob openMosix にプロセスが IO を掴んでいることを通知 slow openMosix に統計を取る間隔を遅くするように通知 fast openMosix に統計を取る間隔を早くするように通知
その他のノードについての情報 /proc/hpc/nodes/[openMosix_ID]/CPUs そのノードが持っている CPU の数 /proc/hpc/nodes/[openMosix_ID]/load このノードの opeMosix の負荷 /proc/hpc/nodes/[openMosix_ID]/mem openMosix が使用可能なメモリ /proc/hpc/nodes/[openMosix_ID]/rmem Linux が使用可能なメモリ /proc/hpc/nodes/[openMosix_ID]/speed Pentium III/1GHz との相対速度 /proc/hpc/nodes/[openMosix_ID]/status ノードの状態 /proc/hpc/nodes/[openMosix_ID]/tmem 利用可能メモリ /proc/hpc/nodes/[openMosix_ID]/util ノードの稼働時間
<!-- Additional Informations about local processes --> ローカルプロセスについての追加情報 /proc/[PID]/cantmove プロセスがマイグレートしない理由 /proc/[PID]/goto プロセスがマイグレートするはずのノード /proc/[PID]/lock プロセスがホームノードにロックされているか /proc/[PID]/nmigs プロセスがマイグレートした回数 /proc/[PID]/where 現在プロセスが演算をしているところ /proc/[PID]/migrate リモートプロセスと同じ /proc/hpc/remote/from プロセスのホームノード /proc/hpc/remote/identity プロセスについての追加情報 /proc/hpc/remote/statm プロセスのメモリ統計 データ /proc/hpc/remote/stats プロセスの CPU 統計データ
ユーザ空間のツール 下記のツールを使うと、openMosix クラスタの管理が楽になります。 migrate :プロセスにマイグレートするように指示を出します。 書式: migrate [PID] [openMosix_ID] mon :ncurses ベースの端末タイプのモニター。棒グラフを表示して 現在の状況についての情報を表示します。 mosctl :は、openMosix のメインの設定ユーティリティです。 書式: mosctl [stay|nostay] [lstay|nolstay] [block|noblock] [quiet|noquiet] [nomfs|mfs] [expel|bring] [gettune|getyard|getdecay] mosctl whois [openMosix_ID|IP-address|hostname] mosctl [getload|getspeed|status|isup|getmem|getfree|getutil] [openMosix_ID] mosctl setyard [Processor-Type|openMosix_ID||this] mosctl setspeed interger-value mosctl setdecay interval [slow fast] 詳細 stay 自動的にプロセスをマイグレートしません。 nostay 自動的にプロセスをマイグレートします(デフォルト)。 lstay ローカルプロセスのままにしておきます。 nolstay ローカルプロセスをマイグレートします。 block ゲストプロセスの受け入れを拒否します。 noblock ゲストプロセスを受け入れます。 quiet 負荷分散情報の収集を無効にします。 noquiet 負荷分散情報の収集を有効にします。 nomfs MFS を無効にします。 mfs MFS を有効にします。 expel ゲストプロセスを送り出します。 bring マイグレートしたプロセスをすべてホームノードに持ってきます。 gettune 現状のオーバーヘッドパラメタを表示します。 getyard 現在の基準を表示します。 getdecay 現在の分散パラメタを表示します。 whois クラスタの openMosix ID、IP アドレス、ホスト名 getload (openMosix)の負荷を表示します。 getspeed (openMosix)の速度を表示します。 status 現在の状況と設定を表示します。 isup ノードの稼動・停止(openMosix の ping のようなもの) getmem 論理メモリの空きを表示します。 getfree 物理メモリの空きを表示します。 getutil 稼働率を表示します。 setyard 新しい基準値を設定します。 setspeed 新しい(openMosix)の速度を設定します。 setdecay 分散間隔を設定します。
mosrun 選択したノードで設定コマンドを動かします。 書式: mosrun [-h|openMosix_ID| list_of_openMosix_IDs] command [arguments]
mosrun コマンドは、コマンドラインのオプションをさらにいくつか付けて実行 できます。 簡単に実行できるように、設定済みの起動スクリプトがあります。設定用途別に (openMosix)ジョブを実行します。 mosrun の追加オプション nomig マイグレートして欲しくないプロセスのコマンドを実行します。 runhome ホームノードにロックされるコマンドを実行します。 runon あるノードにすぐマイグレートし、そこにロックされるコマンドを実行します。 cpujob openMosix クラスタにプロセスが CPU 固定であることを 通知します。 iojob openMosix クラスタにプロセスが IO 固定である ことを伝えます。 nodecay コマンドを実行し、クラスタに負荷分散の状態をリフレッシュするように通知します。 slowdecay 分散間隔を遅くしてコマンドを実行し、負荷分散の 状態を収集します。 fastdecay 分散間隔を速くしてコマンドを実行し、負荷分散の 状態を収集します。
setpe マニュアルでノードを設定するユーティリティ。 書式: setpe -w -f [hpc_map] setpe -r [-f [hpc_map]] setpe -off -w ファイルから openMosix の設定ファイルを読み込みます(通常は /etc/hpc.map)。 -r 現在の openMosix の設定をファイルに書き込みます(通常は /etc/hpc.map)。 -off 現状の openMosix 設定を無効にすします。 tune openMosix の調整と最適化用ユーティリティ。 (詳しい情報は、tune の man を見てください) /proc インタフェースとコマンドラインベースの openMosix ユーティリティ (/proc インタフェースを利用する)に加えて、パッチを当てた「ps」と「top」が 利用できます(「mps」と「mtop」と呼ばれています)。これは、openMosix のノード ID が列に加わります。特定のプロセスが現在どこで演算されているのか見つける のに便利です。 コマンドラインで使うツールを手短に説明してきましたが、openMosixview も 見ておきましょう。よく使う管理作業向けに GUI を利用したツールです。 この後の章で論じるつもりです。
クラスタにマスクをかける (Moshe Bar 氏著) openMosix にある機能を求める人々がいます。 その機能とは、あるプロセスを特定のノードに処理させること、そしてその 子プロセスをマイグレートさせたり、ノードによってはそれができないように したりする機能です。 Simone Ettore 氏は CVS に新しいパッチをコミットして、まさにこの機能を可能 にしました。 どのように動くかここで挙げてみます。 /proc/[pid]/migfilter はマイグレーションのフィルタを有効・無効にします。 /proc/[pid]/mignodes はノードのビット形式のリストです。あるノードのビット 位置は 2^(PE-1) で計算されます。PE はノード番号です。 /proc/[pid]/migpolicy はフィルタの規則です。 0=DENY は mignodes の対応するビットが 1 でなければ、プロセスはすべての ノードでマイグレート可能です。 1=ALLOW は mignodes の対応するビットが 1 であるすべてのノードでプロセスが マイグレート可能です。 まもなくシンプルなユーザ空間のツールをリリースします。そのツールを使えば ノードにマスクがかけられます。しかし openMosix 2.4.20-3 としてリリース される前に、すぐにでも先の方法を試してみてください。