Provided by: gfarm-client_2.7.20+dfsg-1_amd64 bug

NAME

       gfservice - リモートホストから Gfarm のサーバーを制御する。

SYNOPSIS

       gfservice [オプション] サブコマンド [ホストID] [引数 ...]

DESCRIPTION

       gfservice は、Gfarm の管理者がリモートホスト上の サーバー (gfmdgfsd、PostgreSQL) を操作
       するためのツールです。 今のところ、OpenLDAP には対応していません。 サーバーの実行開始、停
       止、セットアップ (config-gfarmconfig-gfsd の実行)、 サーバー廃止の後始末といったことが
       できます。

       gfservice のコマンド行は、たとえば次のようになります。

                gfservice start-gfmd gfmd2

       ここで、「start-gfmd」はサブコマンド、 「gfmd2」 はホストID をそれぞれ表しています。 この
       コマンド行を実行すると、gfservice は 「gfmd2」と名付けられたホスト上の gfmd の 実行開始を
       試みます。 リモートのサーバーホストを指定する際、gfservice では ホスト名の代わりにホストID
       を用います。 ホストID (gfmd1gfmd2、...) は gfservice 用 の設定ファイルで定義します。 以
       下に、設定ファイルの記述例を載せます。

                gfmd1=metadb1.example.com
                gfmd1_CONFIG_GFARM_OPTIONS="-A $LOGNAME -X"
                gfmd2=metadb2.example.com
                gfmd2_CONFIG_GFARM_OPTIONS="-A $LOGNAME -X"

                gfsd1=spool1.example.com
                gfsd2=spool2.example.com

       gfservice は、読み込むべき設定ファイルのパスを次の要領 で決定します。

        1. 「-f ファイル」オプションが指定 されていれば、そのファイルを読み込みます。

        2. 上記以外の場合で、環境変数 GFSERVICE_CONF が定義され、 かつ値が空文字列でなければ、値
           として記されたファイルを読み込みます。

        3. 上記以外の場合は、$HOME/.gfservice を読み込みます。

       gfservice は設定ファイルの読み込みに失敗すると、 エラーメッセージを出力して、ただちに終了
       します。 設定ファイルそれ自体は Bourne シェルスクリプトで、gfservice はそのファイルを自身
       の一部として取り込みます (正確に言えば、スクリプト として評価します)。 設定ファイルについ
       ての詳しい説明は、gfservice.conf(5) を参照して下さい。

       gfservice は、リモートホストと接続するために、SSH (Secure Shell) を使用します。 サブコマン
       ド 1 個の処理を遂行する間、何度も ssh を実行することがあるので、SSH エージェント (OpenSSH
       の ssh-agent など) を用いるか、パスフレーズが空の 認証キーを用いるなどして、パスフレーズを
       毎回入力しなくて済むように することをお薦めします。

       SSH に加えて、gfservice はリモートホスト上で root 権限を得るために Sudo コマンドを使用しま
       す。 各リモートホストの sudoers ファイル (Sudo の設定 ファイル) に以下のような行を足して下
       さい。

                user ALL=(root, _gfarmfs, _gfarmmd) NOPASSWD: gfservice-agent

       ここで、usergfservice を実行するユーザの名前です。 NOPASSWD は必須ではありませんが、省
       くと sudo は何度も パスワードを訊いてくることがあります。

       gfservice は SSH と Sudo を用いて、リモートホスト上にある gfservice-agent というエージェン
       トコマンドを実行します ので、gfservice コマンドで操作したいホストすべてに、
       gfservice-agent をインストールしておく必要があります。

       gfserviceはユーザが新しくサブコマンドを追加できるよ うに、プラグインシステムを採用していま
       す。 詳しい説明は "PLUG-IN SYSTEM" の節を参照して下さい。

OPTIONS

       -d
           デバッグ情報を出力します。 gfservice は、このオプションを gfservice-agent に渡しますの
           で、 gfservice-agent からもデバッグ情報が出力されます。

       -f ファイル
           デフォルトの設定ファイルの代わりに、「ファイル」を 読み込みます。

       -t 時間
           操作のタイムアウトを、「時間」秒とします。 gfservice がサーバープログラム
           (gfmd、gfsd、バックエンド データベース) の実行開始ないし終了を試みる際、処理が完了する
           か、もしくは gfservice の指定時間が経過するかまで待ちます。 「時間」として 「no」を指
           定すると、タイムアウトは 起きなくなります。 デフォルト値は、「no」です。

       -k
           このオプションがconfig-gfarm サブコマンドもしくは config-gfarm-master サブコマンドと共
           に指定された場合、 gfservicegfkey コマンドを用いて 共有秘密鍵ファイルを作成しま
           す。

SUB-COMMANDS FOR GFMD

       以下に挙げているのは、gfmd を操作するサブコマンドです。 コマンド行に与えるホストID
       は、「gfmdn」 (gfmd1, gfmd2, ...) でなくてはなりません。 それ以外の場合、gfservice はエ
       ラーを通知してただちに 終了します。

       backend-db-status ホストID
           バックエンドデータベースが実行中であれば、終了コード 0 で終了します。 それ以外の場合
           は、1 で終了します。

       gfmd-status ホストID
           gfmd が実行中であれば、終了コード 0 で終了します。 それ以外の場合は、1 で終了します。

       start-backend-db ホストID
           バックエンドデータベースが実行中でなければ、実行を開始します。

       start-gfmd ホストID
           gfmd が実行中でなければ、実行を開始します。

       start-gfmd-master ホストID
           サブコマンド start-gfmd の別名です。

       start-gfmd-slave ホストID
           サブコマンド start-gfmd と同じですが、gfmd には -S オプションが付与されます。

       start-gfarm ホストID
           バックエンドデータベースおよび gfmd が実行中でなければ、 実行を開始します。

       start-gfarm-master ホストID
           サブコマンド start-gfarm の別名です。

       start-gfarm-slave ホストID
           サブコマンド start-gfarm と同じですが、gfmd には -S オプションが付与されます。

       stop-backend-db ホストID
           バックエンドデータベースが実行中なら、実行を停止します。

       stop-gfmd ホストID
           gfmd が実行中なら、実行を停止します。

       stop-gfarm ホストID
           バックエンドデータベースおよび gfmd が実行中なら、 実行を停止します。

       kill-gfmd ホストID
           gfmd が実行中なら、強制停止 (SIGKILL を送付) します。

       restart-backend-db ホストID
           サブコマンド stop-backend-dbstart-backend-db を続けて実行します。

       restart-gfmd ホストID
           サブコマンド stop-gfmd」と 「start-gfmd を続けて実行します。

       restart-gfmd-master ホストID
           サブコマンド restart-gfmd の別名です。

       restart-gfmd-slave ホストID
           サブコマンド stop-gfmdstart-gfmd-slave を続けて実行します。

       restart-gfarm ホストID
           サブコマンド stop-gfarmstart-gfarm を続けて実行します。

       restart-gfarm-master ホストID
           サブコマンド restart-gfarm の別名です。

       restart-gfarm-slave ホストID
           サブコマンド stop-gfarmstart-gfarm-slave を続けて実行します。

       promote ホストID
           gfmd をスレーブからマスターへ昇格させます。

       promote-gfmd ホストID
           サブコマンド promote の別名です。

       set-gfmd-conf ホストID 設定名称 
           リモートホスト上の gfmd.conf ファイルに

                    設定名称 

           という行を加えます。 既に gfmd.conf に 「設定名称」という行が存在している場合、
           gfservice はそれを削除してから、新たに行を追加します。

       set-gfsd-conf ホストID 設定名称 
           リモートホスト上の gfsd.conf ファイルに

                    設定名称 

           という行を加えます。 既に gfsd.conf に 「設定名称」という行が存在している場合、
           gfservice はそれを削除してから、新たに行を追加します。

       unset-gfmd-conf ホストID 設定名称
           リモートホスト上の gfmd.conf ファイルから 「設定名称」行を削除します。 gfmd.conf ファ
           イルに「設定名称」 行がない場合、ファイルは更新されません。

       unset-gfsd-conf ホストID 設定名称
           リモートホスト上の gfsd.conf ファイルから 「設定名称」行を削除します。 gfsd.conf ファ
           イルに「設定名称」 行がない場合、ファイルは更新されません。

       backup-backend-db ホストID
           リモートホスト上のバックエンドデータベースのバックアップを行い、 バックアップデータを
           標準出力へ出力します。

       backup-gfmd-conf ホストID
           リモートホスト上の gfarm2.conf ファイルを、標準出力 へ出力します。

       backup-gfsd-conf ホストID
           リモートホスト上の gfsd.conf ファイルを、標準出力 へ出力します。

       backup-usermap ホストID
           リモートホスト上の usermap ファイルを、標準出力 へ出力します。

       restore-backend-db ホストID
           リモートホスト上のバックエンドデータベースのデータを復旧します。 バックアップデータ
           は、標準入力から読み込みます。

       restore-gfmd-conf ホストID
           リモートホスト上の gfmd.conf ファイルを復旧します。 gfservice は、gfmd.conf の バック
           アップデータを標準入力から読み込みます。

       restore-gfsd-conf ホストID
           リモートホスト上の gfsd.conf ファイルを復旧します。 gfservice は、gfsd.conf の バック
           アップデータを標準入力から読み込みます。

       restore-usermap ホストID
           リモートホスト上の usermap ファイルを復旧します。 gfservice は、usermap の バックアッ
           プデータを標準入力から読み込みます。

       config-gfarm ホストID
           リモートホスト上で config-gfarm コマンドを実行します。 このとき、設定ファイルで変数
           「gfmdn_CONFIG_GFARM_OPTIONS」が宣言されていれば、 その値が config-gfarm にオプション
           として付与されます。 レプリケーション機能を有効にするときは、このサブコマンドは使用せ
           ず、代わりに config-gfarm-master ないし config-gfarm-slave を使って下さい。 -kオプショ
           ンが指定されている場合、 gfservicegfkey コマンドを用いて gfmd ホスト上に共有秘密鍵
           ファイルを作成します。

       config-gfarm-master ホストID
           このサブコマンドは config-gfarm と基本的に同じですが、 gfmd のレプリケーションが自動的
           に有効になります。

       config-gfarm-slave ホストID マスターホストID
           サブコマンド config-gfarm と基本的に同じですが、 レプリケーション機能が自動的に有効に
           なり、 「マスターホストID」上で動作する gfmd のスレーブ として動作します。 gfservicegfmdhost コマンドを 用いてこのスレーブホストをサーバーリストに加えます。 また、マス
           ター gfmd ホスト上の gfarm2.conf ファイル を更新して、metadb_server_list にこのスレー
           ブホストを 加え、設定ファイルで定義されているすべてのホストに配布します。 変数
           「gfmdn_PRIVATE_MODE」の値が「true」に セットされている場合は、同様に gfsd.conf ファイ
           ル を更新し、すべての gfmd ホストと gfsd ホストに配布します。 変数
           「gfmdn_AUTH_TYPE」の値が「sharedsecret」 の場合、共有秘密鍵ファイルをマスター gfmd ホ
           ストからこのスレーブ gfmd ホストへコピーします。

       unconfig-gfarm ホストID
           サブコマンド stop-gfsd を実行して、その後 gfmd や バックエンドデータベースが作成した
           ファイルやディレクトリをすべて削除します。 スレーブ gfmd を廃止する場合は、代わりにサ
           ブコマンド unconfig-gfarm-slave を使用して下さい。

       unconfig-gfarm-master ホストID
           サブコマンド unconfig-gfarm の別名です。

       unconfig-gfarm-slave ホストID マスターホストID
           サブコマンド unonfig-gfarm と基本的に同じですが、 以下の追加処理を行います。 gfmdhost
           コマンドを用いてサーバーリストから、その スレーブホストを削除します。 また、設定ファイ
           ルで定義されているすべてのホストの gfarm2.conf を更新し、 metadb_server_list に設定さ
           れたサーバーリストから、 そのスレーブホストを削除します。 変数「gfmdn_PRIVATE_MODE」の
           値が「true」に セットされている場合は、同様に gfsd.conf ファイル を更新し、すべての
           gfmd ホストと gfsd ホストに配布します。

SUB-COMMANDS FOR GFSD

       以下に挙げているのは、gfsd を操作するサブコマンドです。 コマンド行に与えるホストID
       は、「gfsdn」 (gfsd1, gfsd2, ...) でなくてはなりません。 それ以外の場合、gfservice はエ
       ラーを通知してただちに 終了します。

       gfsd-status ホストID
           gfsd が実行中であれば、終了コード 0 で終了します。 それ以外の場合は、1 で終了します。

       start-gfsd ホストID
           gfsd が実行中でなければ、実行を開始します。

       stop-gfsd ホストID
           gfsd が実行中なら、実行を停止します。

       restart-gfsd ホストID
           サブコマンドstop-gfsdstart-gfsd を続けて実行します。

       set-gfsd-conf ホストID 設定名称 
           gfmd 用の set-gfsd-conf サブコマンドと同じです。

       unset-gfsd-conf ホストID 設定名称
           gfmd 用の unset-gfsd-conf サブコマンドと同じです。

       backup-gfsd-conf ホストID
           gfmd 用の backup-gfsd-conf サブコマンドと同じです。

       backup-usermap ホストID
           gfmd 用の backup-usermap サブコマンドと同じです。

       restore-gfsd-conf ホストID
           gfmd 用の restore-gfsd-conf サブコマンドと同じです。

       restore-usermap ホストID
           gfmd 用の restore-usermap サブコマンドと同じです。

       config-gfsd ホストID
           リモートホスト上で config-gfsd コマンドを実行します。 このとき、設定ファイルで変数
           「gfsdn_CONFIG_GFARM_OPTIONS」が宣言されていれば、 その値が config-gfsd にオプションと
           して付与されます。 また、gfservicegfhost コマンド を用いて、リモートホストをファイ
           ルシステムノードとして登録します。 変数「gfsdn_AUTH_TYPE」の値が「sharedsecret」 の場
           合、共有秘密鍵ファイルを gfmd1 から gfsd ホストへコピーします。

       unconfig-gfsd ホストID
           サブコマンド stop-gfsd を実行して、その後 gfsd が 作成したファイルやディレクトリをすべ
           て削除します。

SUB-COMMANDS FOR CLIENT

       以下に挙げているのは、クライアントを操作するサブコマンドです。 コマンド行に与えるホストID
       は、「gfmdn」 (gfmd1, gfmd2, ...)、「gfsdn」(gfsd1, gfsd2, ...)、 「clientn」(client1,
       client2, ...) のいずれか でなくてはなりません。 それ以外の場合、gfservice はエラーを通知し
       てただちに 終了します。

       mount ホストID ディレクトリ オプション...
           リモートホスト上の「ディレクトリ」に、Gfarm2 ファイルシステムをマウントします。 引数「
           オプション」は gfarm2fs コマンドへの引数とみなされます。

       unmount ホストID ディレクトリ
           リモートホスト上の「ディレクトリ」にマウントされた Gfarm2 ファイルシステムをアンマウン
           トします。

       umount ホストID ディレクトリ
           サブコマンド unmount の別名です。

       set-gfarm-conf ホストID 設定名称 
           リモートホスト上の gfarm2.conf ファイルに

                    設定名称 

           という行を加えます。 既に gfarm2.conf に 「設定名称」という行が存在している場合、
           gfservice はそれを削除してから、新たに行を追加します。

       unset-gfarm-conf ホストID 設定名称
           リモートホスト上の gfarm2.conf ファイルから 「設定名称」行を削除します。 gfarm2.conf
           ファイルに「設定名称」 行がない場合、ファイルは更新されません。

       backup-gfarm-conf ホストID
           リモートホスト上の gfarm2.conf ファイルを、標準出力 へ出力します。

       backup-shared-key ホストID
           リモートホスト上の共有秘密鍵ファイルを、標準出力へ出力します。

       restore-gfarm-conf ホストID
           リモートホスト上の gfarm2.conf ファイルを復旧します。 gfservice は、gfarm2.conf の
           バックアップデータを標準入力から読み込みます。

       restore-shared-key ホストID
           リモートホスト上の共有秘密鍵ファイルを復旧します。 gfservice は、共有秘密鍵のバック
           アップデータを標準入力 から読み込みます。

       config-client ホストID
           変数「clientn_AUTH_TYPE」の値が「sharedsecret」 の場合、共有秘密鍵ファイルを gfmd1 か
           らクライアントホストへコピーします。

       unconfig-client ホストID
           リモートホスト上の gfarm2.conf ファイルおよび 共有秘密鍵ファイルを削除します。

       gfcmd ホストID コマンド名 コマンド引数 ...
           リモートホスト上で Gfarm コマンドを実行します。

       gfcmd-root ホストID コマンド名 コマンド引数 ...
           リモートホスト上にて、root 権限で Gfarm コマンドを実行します。

       grid-proxy-init host-id コマンド引数 ...
           リモートホスト上で grid-proxy-init コマンドを実行します。

SUB-COMMANDS FOR MULTIPLE HOSTS

       以下に挙げているのは、複数のホストを操作するサブコマンドです。 コマンド行で、ホストID を指
       定することはできません。

       start-all
           すべてのバックエンドデータベース、gfmd、gfsd を起動します。

       stop-all
           すべての gfsd、gfmd、バックエンドデータベースを停止します。

       kill-gfmd-all
           すべての gfmd を強制停止 (SIGKILL を送付) します。

       restart-all
           サブコマンド stop-allstart-all を続けて実行します。

       config-all
           gfmd1 に対して "config-gfarm-master" を実行し、それ以外のすべての gfmd に対して
           "config-gfarm-slave" を実行します。 次にすべての gfsd に対して "config-gfsd" を実行し
           ます。 最後にすべてのクライアントに対して、"config-client" を 実行します。

       unconfig-all
           すべてのクライアントに対して、"unconfig-client" を実行 します。 次にすべての gfsd に対
           して "unconfig-gfsd" を実行します。 最後にすべての gfmd に対して "unconfig-gfarm" を
           実行します。

PLUG-IN SYSTEM

       gfserviceはユーザが新しくサブコマンドが追加できるよ うに、プラグインシステムを採用していま
       す。指定されたサブコマンドを gfserviceが提供していない場合、 gfserviceコマンドは
       %%DATADIR%%/gfarm/gfservice 以 下のサブコマンド名のファイルを参照します。

       サブコマンドのファイルは Bourneシェルスクリプトで書きます。 サブコマンド "name" のサブコマ
       ンドファイル は、gfserviceから実行される "subcmd_name"という名 前のシェル関数、
       gfservice-agentから実行される "subcmd_name_agent" という名前のシェル関数が実装されている必
       要があります。

       サブコマンドがユーザが追加した別のサブコマンドに依存している時のために、 サブコマンド
       "name" のサブコマンドファイル は、 "name_depends" と いう名前のシェル関数で、そのサブコマ
       ンドが依存している他のサブコマンド のリストを返す必要があります.サブコマンドのリストはス
       ペースで区切られ たサブコマンドの文字列です.依存している他のサブコマンドがない場合は空文
       字列を返して 下さい。同様に、サブコマンドファイルは "name_agent_depends" という名前のシェ
       ル関数で、そのサブコマンドのエージェントが依存している 他のサブコマンドのリストを返す必要
       があります。