CRM(Cluster Resource Manager, 別名 Pacemaker)はクラスタマネージャです。CRMはCIB(Cluster Information Base)に保存された情報をもとにクラスタを管理します。CIBはXML形式で記述されています。CIBは構文が複雑なので、CIBの情報を変更する手順はかなり煩雑です。

現在、CIBを編集するために下記のツールが提供されています。

  • GUI

  • コマンドラインツール(`crm_resource`など)

  • cibadminコマンド

GUIは特に人気のあるツールで、現在も改良が続けられています。(訳者注:2012年1月時点において三種類のGUIが提供されています。Python GUI, LCMC, Hawk)初めてクラスタを管理する場合はまずGUIを試してみるとよいでしょう。

Pacemakerには`crm_resource`コマンドをはじめとするコマンドラインツールが付属しており、これらを利用してCIBを編集することもできます。しかし、コマンドラインツールはオプションの種類が多く操作も複雑であるため、習熟に時間がかかるという欠点があります。また、コマンドラインツール間でプションが統一されていないものもあり、ユーザが混乱する原因になっています。(訳者注:Pacemaker 1.0.10以降では、オプションの統一が進んでいます。)

コマンドラインツールの一つである`cibadmin`コマンドは優れた管理ツールです。ユーザはCIB全体ではなく、CIBの一部のみを取り出して編集することができます。しかし、`cibadmin`コマンドは操作が難しいため、かなり経験を積んだユーザにしか使いこなせないかもしれません。何度も操作を試してみて慣れていくしかありませんが、コマンドの出力するエラーメッセージがわかりづらいため、難易度は高いといえます。

CRM-CLIの開発目標

CRM-CLIは、CIBの編集およびクラスタの管理を行うためのツールです。CRM-CLIは内部で`cibadmin`コマンドのようなコマンドラインツールを呼び出しており、コマンドラインツールを通してXMLの編集が実行されます。それぞれのコマンドラインツールから実行された結果は互換性を保持しています。

CRM-CLIは、対話式の操作だけではなくバッチ入力方式にも対応しています。標準入力から一連のコマンドを連続して実行することも可能であり、操作をスクリプト化することもできます。クラスタの設定や管理に慣れていないユーザのために、テンプレートも用意されています。

CRM-CLIを操作することによって、CIBそのものを生成することもできます。CRM-CLIのコマンドを記述したスクリプトはXML形式ではありませんが、CIBに反映することが可能です。

最近追加された新しい機能として、シャドウCIBがあります。ユーザは複数のシャドウCIBを作成し、そのうちの一つをクラスタへ反映することができます。 XML形式の設定を直接編集し、ファイルまたはネットワーク経由でクラスタへ反映することも可能です。

ユーザの習熟度に応じて使用可能な機能を限定することもできます。

CRM-CLIのコマンドは、基本的には、改行を含めずに実行してください。コマンドに複数のオプションを追加して文字列が長くなってしまった場合は、継続文字(\)を使用して改行することもできます。

CRM-CLIはクラスタ内のノードで実行してください。

ユーザインターフェースの概要

このツールも最も重要な部分はユーザインターフェースです。この章では形式ばったチュートリアルではなく感覚的に理解できるような例をいくつか紹介します。では、いくつかの例を紹介しましょう。

  1. コマンドラインモード

    # crm resource stop www_app
  2. 対話式モード

    # crm
    crm(live)# resource
    crm(live) resource# unmanage tetris_1
    crm(live) resource# up
    crm(live)# node standby node4
  3. バッチ入力モード

    # crm<<EOF
    configure
      erase
      #
      # resources
      #
      primitive disk0 iscsi \
        params portal=192.168.2.108:3260 target=iqn.2008-07.com.suse:disk0
      primitive fs0 Filesystem \
        params device=/dev/disk/by-label/disk0 directory=/disk0 fstype=ext3
      primitive internal_ip IPaddr params ip=192.168.1.101
      primitive apache apache \
        params configfile=/disk0/etc/apache2/site0.conf
      primitive apcfence stonith:apcsmart \
        params ttydev=/dev/ttyS0 hostlist="node1 node2" \
        op start timeout=60s
      primitive pingd pingd \
        params name=pingd dampen=5s multiplier=100 host_list="r1 r2"
      #
      # monitor apache and the UPS
      #
      monitor apache 60s:30s
      monitor apcfence 120m:60s
      #
      # cluster layout
      #
      group internal_www \
        disk0 fs0 internal_ip apache
      clone fence apcfence \
        meta globally-unique=false clone-max=2 clone-node-max=1
      clone conn pingd \
        meta globally-unique=false clone-max=2 clone-node-max=1
      location node_pref internal_www \
        rule 50: #uname eq node1 \
        rule pingd: defined pingd
      #
      # cluster properties
      #
      property stonith-enabled=true
      commit
    EOF

CRM-CLIを使ったことがなくても、上記の例は直感的に理解することができるのではないでしょうか。CRM-CLIによって、クラスタを効率的に管理し、容易に設定を変更することができます。

コマンドプロンプトに表示される`(live)`という文字列は、操作対象のCIBが実行中のクラスタ(ライブCIB)であることを表しています。ライブCIBではなくシャドウCIBに対して操作を実行することもできます。シャドウCIBとはライブCIBのコピーと考えてよいでしょう。シャドウCIBに対する操作はライブCIBには反映されません。

CIBはXMLの階層構造を保持しており、CRM-CLIは、XMLの階層ごとに特定のコマンドを使用します。

シャドウCIBの使用方法

シャドウCIBは新しく追加された機能です。シャドウCIBはライブCIBと同様の操作が可能ですが、シャドウCIBに対する設定変更はクラスタには反映されません。管理者は複数のシャドウCIBを作成し、そのうちの一つだけをクラスタに反映することができます。シャドウCIBの操作中は、コマンドプロンプトには現在操作を実行中のシャドウCIBの名前が表示されます。シャドウCIBでは、`configure`レベルのコマンドのみ使用可能です。

`configure commit`コマンドを実行してはじめて、シャドウCIBの変更がクラスタ(ライブCIB)に反映されます。クラスタを設定する際、最初はライブCIBを直接編集することが多いかもしれませんが、慣れてきたらまずシャドウCIBで設定を変更し、設定内容が間違っていないことを確認してからクラスタに反映するとよいでしょう。`configure`レベルでの操作例

    crm(live)configure# cib new test-2
    INFO: test-2 shadow CIB created
    crm(test-2)configure# commit

テンプレート

CRM-CLIには、クラスタを設定するための基本的なテンプレートがいくつが用意されています。ユーザはテンプレートを利用することによって、複雑な操作を行わずにクラスタを設定することができます。Pacemakerをはじめて使用する場合は、まずテンプレートを利用してクラスタを設定してみましょう。

Apacheのテンプレートを利用した設定例

    # crm configure
    crm(live)configure# template
    crm(live)configure template# list templates
    apache       filesystem   virtual-ip
    crm(live)configure template# new web <TAB><TAB>
    apache       filesystem   virtual-ip
    crm(live)configure template# new web apache
    INFO: pulling in template apache
    INFO: pulling in template virtual-ip
    crm(live)configure template# list
    web2-d       web2         vip2         web3         vip          web

最初に`configure`レベルに移動して`template`コマンドを実行してください。`list templates`コマンドを実行すると、利用可能なテンプレートの一覧が表示されます。`new`コマンドを実行して、Apacheの設定を作成します。タブキーによる入力補完も使用することができます。Apacheを実行するためには仮想IPも必要となります。テンプレートを使用してApacheの設定を作成すると自動的に仮想IPの設定も作成されます。ここで`list`コマンドを実行すると、先ほど作成した「web」という名前の設定(Apache, 仮想IP)が表示されます。上記の例ではweb以外の設定も表示されていますが、これらは別の機会に作成した設定です。

`show`コマンドを実行すると、設定内容が表示されます。ユーザがそれぞれの環境にあわせて設定を変更する必要のあるパラメータは、エラーメッセージが表示されます。エラーメッセージの表示されたパラメータには、ユーザが値を入力する必要があります。

    crm(live)configure template# show
    ERROR: 23: required parameter ip not set
    ERROR: 61: required parameter id not set
    ERROR: 65: required parameter configfile not set
    crm(live)configure template# edit

edit`コマンドを実行するとテキストエディタが起動します。エディタを使用して先ほどの設定(設定名 web)を手動で編集しましょう。ファイルの先頭に、変更が必要な項目が表示されます。よく作りこまれたテンプレートの場合、ユーザはいくつかのパラメータ値を入力するだけでクラスタの設定を行うことができます。先ほどの設定(設定名 web)の場合、変更する必要のあるパラメータの接頭辞に `%% が追加されています。

    $ grep -n ^%% ~/.crmconf/web
    23:%% ip
    31:%% netmask
    35:%% lvs_support
    61:%% id
    65:%% configfile
    71:%% options
    76:%% envfiles

上記のパラメータはユーザの環境にあわせて変更する必要があります。各行の最後尾にパラメータ値を追記してください。編集しおわった設定を再度検索すると、下記の様な表示が得られるでしょう。netmask, lvs_support, opsions, envfiles は必須パラメータではないので、空欄でもかまいません。

    $ grep -n ^%% ~/.crmconf/web
    23:%% ip                192.168.1.101
    31:%% netmask
    35:%% lvs_support
    61:%% id                websvc
    65:%% configfile        /etc/apache2/httpd.conf
    71:%% options
    76:%% envfiles

パラメータの設定方法は非常に単純です。パラメータの名前と値をスペースで区切って定義してください。

    %% <name> <value>

`edit`コマンドで設定を編集した後、`show`コマンドで設定内容を確認してください。

    crm(live)configure template# show
    primitive virtual-ip ocf:heartbeat:IPaddr \
            params ip="192.168.1.101"
    primitive apache ocf:heartbeat:apache \
            params configfile="/etc/apache2/httpd.conf"
    monitor apache 120s:60s
    group websvc \
            apache virtual-ip

上記の手順で、Apacheと仮想IPを設定したgroupリソースを作成することができました。groupリソースの名前は`websvc`です。

`configure`レベルで`show`コマンドを実行して表示された設定内容がテンプレートとして提供されていた内容に加えて、ユーザ環境に依存するパラメータ値が正しく追加されていることを確認してください。上記の手順は基本的な設定手順となりますので、よく理解しておいてください。

では、いよいよ、設定した内容を適用させます。適用した内容は`template`レベルよりも一つ上の階層である`configure`レベルで確認することができます。

    crm(live)configure template# apply
    crm(live)configure template# cd ..
    crm(live)configure# show
    node xen-b
    node xen-c
    primitive apache ocf:heartbeat:apache \
        params configfile="/etc/apache2/httpd.conf" \
        op monitor interval="120s" timeout="60s"
    primitive virtual-ip ocf:heartbeat:IPaddr \
        params ip="192.168.1.101"
    group websvc apache virtual-ip

ここで中止しなくてはならないのは、`apply`コマンドを実行した時点では、まだクラスタに設定が反映されていないということです。これはライブCIBを直接編集する場合だけではなくシャドウCIBを操作する場合も同じです。設定内容をクラスタに反映するためには`commit`コマンドを実行する必要があります。

次に、リソースが配置制約を設定します。配置制約は、クラスタの初期起動時に、どのノードでリソースが起動するかを定義することができます。

    crm(live)configure# location websvc-pref websvc 100: xen-b

If you are not happy with some resource names which are provided by default, you can rename them now:

    crm(live)configure# rename virtual-ip intranet-ip
    crm(live)configure# show
    node xen-b
    node xen-c
    primitive apache ocf:heartbeat:apache \
            params configfile="/etc/apache2/httpd.conf" \
            op monitor interval="120s" timeout="60s"
    primitive intranet-ip ocf:heartbeat:IPaddr \
            params ip="192.168.1.101"
    group websvc apache intranet-ip
    location websvc-pref websvc 100: xen-b

これまでの手順をおさらいしてみましょう。クラスタの設定を行うためには次の手順が必要です。

タブキーによる入力補完について

CRM-CLIはタブキーによる入力補完が可能です。入力補完は静的にも動的にも実行可能です。後者はクラスらの状態やリソースエージェントの情報を取得するために必要となります。入力補完はコマンドのヘルプ表示やリソースに必要なパラメータを表示するためにも使用することができます。実行例

    crm(live)# resource <TAB><TAB>
    bye         exit        manage      param       show        unmanage
    cd          failcount   meta        quit        start       unmigrate
    cleanup     help        migrate     refresh     status      unmove
    end         list        move        reprobe     stop        up
    crm(live)# configure
    crm(live)configure# primitive fence-1 <TAB><TAB>
    heartbeat:  lsb:        ocf:        stonith:
    crm(live)configure# primitive fence-1 stonith:ipmilan params <TAB><TAB>
    auth=      hostname=  ipaddr=    login=     password=  port=      priv=
    crm(live)configure# primitive fence-1 stonith:ipmilan params auth=<TAB><TAB>
    auth* (string)
        The authorization type of the IPMI session ("none", "straight", "md2", or "md5")
    crm(live)configure# primitive fence-1 stonith:ipmilan params auth=

構文チェック

リソースの定義については、リソースエージェントのmeta-dataに基づいて構文チェックが実行されます。例えば、次のようなチェックが実行されます。

パラメータ値のチェックは一般的なものなので、特に説明する必要はないでしょう。構文チェックでエラーとなった項目は、設定時にもエラーが出力されます。

オペレーションのタイムアウト値は、meta-dataに記述された推奨値よりも大きな値を設定したほうがよいでしょう。パラメータ値が小さいために発生する不具合はよくある設定ミスの一つですが、タイムアウト値が小さすぎる場合でもクラスは正常に起動するため、不具合発生時の原因解析が困難になる場合はあります。オペレーションに設定されたタイムアウト値が小さいと、クラスタはリソースの起動時に警告(warning)を出力します。警告が出力された場合はタイムアウト値を再検討してください。meta-dataで推奨されている場合はあくまで最小のタイムアウト値です。特定の環境によってはさらに大きな値が必要となる場合もありますので注意してください。

構文チェックが実行される頻度はcheck-frequencycheck-modeで定義されています。

`check-frequency`が`always`に設定されており、かつ`check-mode`が`strict`に設定されている場合、エラーは決して許容されないため、エラーを含む設定内容はクラスタに反映されません。

コマンドリファレンス

CRM-CLIによるクラスタの設定手順は非常にシンプルです。クラスタを管理するコマンドを実行する際、いくつかのオプションが必要となる場合もありますが、オプションはそれほど複雑ではありません。`configure`レベルで使用するコマンドに関しては複雑なオプションもいくつか存在しますが、その他のコマンドは総じて直感的に操作することができるでしょう。

コマンドの構文例: <> 文字列を表します。 [] 省略可能であることを意味します。 (...) 繰り返しを意味します。 | 多数の項目からある一項目を選択します。 (strings, :, =) その他の構文要素です。

status

statusコマンドはクラスタの状態を表示します。`crm_mon`コマンドで表示される内容とほぼ同じものです。引数を追加すると、詳細情報の表示や異なるフォーマットでの表示も可能です。詳細は`crm_mon`コマンドのmanを参照してください。

使用方法:

        status [<option> ...]

        option :: bynode | inactive | ops | timing | failcounts

cib (shadow CIBs)

cibコマンドはシャドウCIBの管理を行います。cibコマンドはCRM-CLIのトップレベルとconfigureレベルでのみ実行可能です。

実行時にcib_shadow コマンドを呼び出しているため、環境変数`CIB_shadow`が必要となります。CRM-CLIを実行中、プロンプトにはシャドウCIBもしくはライブCIBの名前が表示されます。

new

newコマンドは新しいシャドウCIBを作成します。newコマンドを実行するとライブCIBがシャドウCIBにコピーされます。シャドウCIBのstatusセクションを編集する場合は、`withstatus`を指定してください。詳細はcibstatus sectionを参照してください。ライブCIBを既存のシャドウCIBに強制的に上書きする場合は、`force`オプションを追加してください。

シャドウCIBをライブCIBからではなく、全く空の状態亜kら作成する場合は、`empty`を指定してください。シャドウCIBはライブCIBが存在していない状態、つまりクラスタが起動していない状態でも作成することができます。

使用方法:

        new <cib> [withstatus] [force] [empty]

delete

deleteコマンドはシャドウCIBを削除します。

使用方法:

        delete <cib>

reset

resetコマンドはシャドウCIBにライブCIBを上書きします。

使用方法:

        reset <cib>

commit

Apply a shadow CIB to the cluster.

使用方法:

        commit <cib>

use

複数のシャドウCIBが存在する場合、編集対象のシャドウCIBをuseコマンドで選択することができます。シャドウCIBのstatusセクションを編集する場合は、`withstatus`を指定してください。詳細はcibstatus sectionを参照してください。シャドウCIBが複数存在している場合、useコマンドを使用して編集中に別のシャドウCIBを選択することもできますし、ライブCIBを選択することもできます。

使用方法:

        use [<cib>] [withstatus]

diff

diffコマンドは現在実行されているクラスタの設定とシャドウCIBの差分を表示します。

使用方法:

        diff

list

listコマンドはシャドウCIBの一覧を表示します。

使用方法:

        list

import

importコマンドはファイルに保存されたCIBの情報をシャドウCIBに取り込みます。CIBの情報はPE(Policy Engine)からファイルに出力されています。importコマンドは、まずプログラムが実行されたローカルファイルを参照した後、/var/lib/pengineを検索します。ファイルのフルパスを指定することも可能です。CIBの情報が保存されたファイルが見つかると、シャドウCIBにファイルの内容がコピーされます。このシャドウCIBは`configure`レベルと`cibstatus`レベルで編集可能となります。

importコマンドの引数としてシャドウCIBの名前が省略された場合は、取り込まれたファイル名がシャドウCIBの名前となります。

PEファイルは複数出力されていることが多いので、ファイル名をしている際は注意してください。

使用方法:

        import {<file>|<number>} [<shadow>]

Examples:

        import pe-warn-2222
        import 2289 issue2

cibstatus

cibstatusコマンドはCIBのstatsuセクションを編集、管理します。詳細はCIB status management sectionを参照してください。

ra

raコマンドはリソースエージェントに関連する情報を表示します。raコマンドはCRM-CLIのトップレベルとconfigureレベルでのみ実行可能です。

classes

classコマンドはリソースエージェントのclassおよびproviderを表示します。

使用方法:

        classes

list

listコマンドは利用可能なリソースエージェントを表示します。classパラメータに`ocf`を指定した場合、利用可能なOCF RAを表示します。

使用方法:

        list <class> [<provider>]

使用例:

        list ocf pacemaker

meta (info)

metaコマンドはリソースエージェントのmeta-dataを表示します。meta-dataにはリソースエージェントの使用方法などが記述されています。

使用方法:

        meta [<class>:[<provider>:]]<type>
        meta <type> <class> [<provider>] (obsolete)

使用例:

        meta apache
        meta ocf:pacemaker:Dummy
        meta stonith:ipmilan

providers

providerコマンドはリソースエージェントのproviderを表示します。デフォルトのclassは`ocf`です。

使用方法:

        providers <type> [<class>]

使用例:

        providers apache

resource

resourceコマンドを使用してリソースを管理することができます。

resourceコマンドによる操作は、`crm_resource`コマンドなどでも代替可能です。

status (show, list)

statusコマンドはリソースの状態を表示します。引数が省略された場合、すべてのリソースの状態が表示されます。

使用方法:

        status [<rsc>]

start

startコマンドはリソースを起動します。startコマンドを実行すると`target-role`属性が設定されます。複数のmeta属性が存在する場合は、すべての属性が設定されます。リソースがgroupリソース、またはcloneリソースの場合、子リソースから`target-role`属性が削除されます。

使用方法:

        start <rsc>

stop

stopコマンドはリソースを停止します。stopコマンドを実行すると`target-role`属性が設定されます。複数のmeta属性が存在する場合は、すべての属性が設定されます。リソースがgroupリソース、またはcloneリソースの場合、子リソースから`target-role`属性が削除されます。

使用方法:

        stop <rsc>

restart

restartコマンドはリソースを再起動します。このコマンドは、startコマンドをstopコマンドを連続して実行します。リソースが完全に停止するまでコマンドは待機状態となります。すべてのリソースが停止した後に起動処理が実行されます。このコマンドが複数の操作を実行するため、実行中にメッセージが出力されることがあります。

使用方法:

        restart <rsc>

使用例:

        # crm resource restart g_webserver
        INFO: ordering g_webserver to stop
        waiting for stop to finish .... done
        INFO: ordering g_webserver to start
        #

promote

promoteコマンドはリソースをスレーブ状態からマスター状態へプロモート(昇格)します。

使用方法:

        promote <rsc>

demote

demoteコマンドはリソースをマスター状態からスレーブ状態へデモート(降格)します。

使用方法:

        demote <rsc>

manage

manageコマンドはリソースを管理対象とみなします。manageコマンドを実行すると`target-role`属性が設定されます。複数のmeta属性が存在する場合は、すべての属性が設定されます。リソースがgroupリソース、またはcloneリソースの場合、子リソースから`target-role`属性が削除されます。

使用方法:

        manage <rsc>

unmanage

unmanageコマンドはリソースを管理対象外とします。unmanageコマンドを実行すると`target-role`属性が設定されます。複数のmeta属性が存在する場合は、すべての属性が設定されます。リソースがgroupリソース、またはcloneリソースの場合、子リソースから`target-role`属性が削除されます。

使用方法:

        unmanage <rsc>

migrate (move)

migrate(move)コマンドはリソースを他のノードへ移動させます。移動先のノードは引数に指定する必要がありますが、この引数が省略された場合は、リソースが現在起動しているノードに対する制約が変更されます。つまり、リソースが現行ノードで起動不可となる制約が追加されるため、リソースは他ノードへ移動することになります。制約にはlifetimeオプションを追加することも可能です。lifetimeが失効すると、現行ノードに追加された制約は無効となります。

使用方法:

        migrate <rsc> [<node>] [<lifetime>] [force]

unmigrate (unmove)

unmigrateコマンドはmigrateコマンドで作成された制約を削除します。

使用方法:

        unmigrate <rsc>

param

paramコマンドはリソースのパラメータを表示、編集、削除します。

使用方法:

        param <rsc> set <param> <value>
        param <rsc> delete <param>
        param <rsc> show <param>

使用例:

        param ip_0 show ip

meta

metaコマンドはリソースのmeta属性を表示、編集、削除します。現在、全てのリソースのmeta属性は、metaコマンド以外、例えば resource stop などでも操作可能となっています。

使用方法:

        meta <rsc> set <attr> <value>
        meta <rsc> delete <attr>
        meta <rsc> show <attr>

使用例:

        meta ip_0 set target-role stopped

failcount

failcountコマンドはリソースのフェイルカウントを表示、編集、削除します。

使用方法:

        failcount <rsc> set <node> <value>
        failcount <rsc> delete <node>
        failcount <rsc> show <node>

使用例:

        failcount fs_0 delete node2

cleanup

cleanupコマンドはリソースの故障履歴(フェイルカウントを含む)を削除します。このコマンドはリソースの故障が発生した後に、リソースの故障履歴を削除するために使用します。ノードを指定する引数を省略した場合、すべてのノードで故障履歴の削除が実行されます。多数のノードで構成されるクラスタの場合、コマンドの実行に時間がかかる可能性がありますので注意してください。

使用方法:

        cleanup <rsc> [<node>]

refresh

refreshコマンドはCIBに含まれるLRMの状態を更新します。

使用方法:

        refresh [<node>]

reprobe

reprobeコマンドはCRMを経由せずに起動したリソースのprobe処理を実行します。

使用方法:

        reprobe [<node>]

node

nodeコマンドはノードの管理を行います。

status

statusコマンドはノードの状態を表示します。引数が省略された場合、すべてのノードの状態が表示されます。

使用方法:

        status [<node>]

show

showコマンドはノードの設定内容を表示します。引数が省略された場合、すべてのノードの状態が表示されます。

使用方法:

        show [<node>]

standby

standbyコマンドはノードをスタンバイ化します。ノードを指定する引数が省略された場合、コマンドを実行したノードがスタンバイ化されます。lifetimeオプションにrebootを指定した場合、スタンバイ状態のノードが再起動した後、ノードはオンライン状態でクラスタに参加します。lifetimeオプションにforeverを指定した場合、スタンバイ状態のノードが再起動した後、ノードはスタンバイ状態でクラスタに参加します。

使用方法:

        standby [<node>] [<lifetime>]

        lifetime :: reboot | forever

online

onlineコマンドはノードをオンライン化します。ノードを指定する引数が省略された場合、コマンドを実行したノードがオンライン化されます。

使用方法:

        online [<node>]

fence

fenceコマンドはノードをフェンス(停止)します。STONITHリソースが利用可能な場合にのみ実行されます。STONITHリソースが設定されていない場合は、フェンス処理も実行されません・

使用方法:

        fence <node>

clearnodestate

clearnodestateコマンドは特定ノードの状態を削除します。このコマンドを実行すると、ノードの故障履歴などが削除され、オフライン状態となります。ノードがフェンスされた状態を手動で再現することができます。

注意!clearnodestateコマンドを実行してもリソースは起動したままとなる場合があります。このとき共有ディスクの二重マウントなどを引き起こす可能性もあるので注意してください。

使用方法:

        clearstate <node>

delete

deleteコマンドはノードの設定を削除します。このコマンドを実行すると、CIBからノードの情報が削除されます。メンバシップレイヤとしてHeartbeatを使用している場合は、内部的にhb_delnodeコマンドが実行されます。

使用方法:

        delete <node>

attribute

attributeコマンドはノードの属性を編集します。ノードに必要なメモリサイズなどを属性値として設定することができます。

使用方法:

        attribute <node> set <attr> <value>
        attribute <node> delete <attr>
        attribute <node> show <attr>

使用例:

        attribute node_1 set memory_size 4096

status-attr

status-attrコマンドはCIBに含まれるノードの属性(クラスタの実行中に変更される属性)を編集します。例えば、`pingd`リソースの属性などを編集することができます。

使用方法:

        status-attr <node> set <attr> <value>
        status-attr <node> delete <attr>
        status-attr <node> show <attr>

使用例:

        status-attr node_1 show pingd

options

optionsコマンドを使用して、CRM-CLIの各種オプションを設定することができます。

skill-level

skill-levelコマンドを使用して、各ユーザが実行可能な操作を制限することができます。ユーザの権限は、operator, administrator, expertの3種類から選択します。operatorはresourceおよびnodeコマンドを使用することができますが、リソースの編集や削除は実行できません。administratorは、operatorの権限に加えて、configureコマンドによるクラスタの設定、およびシャドウCIBの管理を実行することができます。expertはすべての操作を実行することができます。

使用方法:

        skill-level <level>

        level :: operator | administrator | expert

user

CRM-CLIはcrm_verify, crm_resource, cibadmin などのコマンドラインツールを呼び出しているため、rootユーザやCRMのオーナ(通常はhaclusterユーザ)の権限が必要となる場合があります。rootユーザでCRM-CLIを実行している場合は、ユーザの権限について意識する必要はありません。rootユーザ以外のユーザでCRM-CLIを操作する場合は、userコマンドを使用して適切なユーザに切り替えてください。

使用方法:

        user system-user

使用例:

        user hacluster

editor

editorコマンドはエディタを起動します。好みのエディタプログラムを指定することもできます。特定のエディタが設定されていない場合は、環境変数EDITORもしくは標準UNIXエディタ(vi, emacsm nano)がデフォルトで設定されます。

使用方法:

        editor program

使用例:

        editor vim

pager

pagerコマンドはページャを起動します。 好みのページャプログラムを指定することもできます。特定のページャが設定されていない場合は、環境変数EDITORもしくは標準UNIXエディタ(less, more, pg)がデフォルトで設定されます。

sort-elements

CRM-CLIのデフォルトの設定では、CIBの要素を自動的にソートして表示します。CIBの要素を作成された順序に従って表示したい場合、sort-elementsをnoに設定してください。

使用方法:

        sort-elements {yes|no}

使用例:

        sort-elements no

wait

CRM-CLIのデフォルトの設定では、コマンドの実行結果を待たずにプロンプトを復帰します。waitをyesに設定すると、コマンドの実行結果を待ってからプロンプトを復帰させます。対話式モードの場合、待機時間中はプロンプトにドットが表示されます。

使用方法:

        wait {yes|no}

使用例:

        wait yes

output

CRM-CLIにはコンソールの色設定も実装されています。文字を色分けして表示する機能と、キーワードを大文字で表示する機能が利用可能です。設定可能なパラメータは、plain, color, uppercase です。colorとuppercaseは組み合わせて使用することもできます。ここでは、colorとuppercaseを設定してみましょう。

colorscheme

outputoにcolorを設定します。カンマ区切り形式で複数のcolorを指定することもできます。下記の情報を出力した際に文字が色分けされます。

CRM-CLIの出力を色分けするためには、python-cursesがインストールされている必要があります。ターミナルで利用可能な色を設定してください。デフォルトの表示を使用する場合は、normalを指定します。

デフォルト値はyellow, normal, cyan, red, green, magentaです。ターミナルの背景を黒っぽい色にしておくと見やすいでしょう。色設定を保存する方法は、別の章を参考にしてください。

使用例:

    colorscheme yellow,normal,blue,red,green,magenta

check-frequency

CIBの情報が変更された場合、どのタイミングでXMLの構文チェックを実行するかを設定することができます。設定値は、always, on-verify, neverのいずれかです。 check-frequencyのデフォルト値はalwayです。クラスタの管理に慣れた上級者の場合はon-verifyを設定してもよいでしょう。この場合、verifyコマンドが実行されたタイミングで構文がチェックされます。

構文チェックを実行するためにはリソースエージェントが指定のディレクトリに配置されている必要があります。もし、リソースエージェントがインストールされていない環境でCRM-CLIを実行する場合は、check-frequencyをneverに設定してください。

詳細はConfiguration semantic checksを参照してください。

check-mode

CIBの情報が変更された場合、check-modeの設定に応じて構文チェックの結果が出力されます。設定値は、strict, relaxのいずれかです。 構文チェックで誤りが発見された場合、デフォルトでは「エラー」レベルでメッセージが出力されますが、relaxedモードでは「警告」レベルで出力されます。デフォルト値はstrictです。

詳細はConfiguration semantic checksを参照してください。

show

showコマンドはCRM-CLIの設定内容を表示します。

save

saveコマンドはCRM-CLIの設定内容を保存します。保存先は`$HOME/.crm.rc`です。CRM-CLIの実行時に、rcファイルが自動的に読み込まれます。

configure

configureレベルではCIBのオブジェクトに対して設定の変更を行います。

設定内容は「ノードの設定」「リソースの設定」「制約の設定」「属性の設定」の4種類に分類されます。configureレベルのコマンドは、異なるCIBオブジェクトでも共通に使用できるものがあります。

例えば、nodeコマンドは、ノードの設定変更だけではなく、ノードの属性に関する設定変更を実行することができます。

リソースの設定に使用するコマンドは次の通りです。

制約の設定に使用するコマンドは次の通りです。

クラスタ全体の挙動を設定するためのクラスタプロパティやリソースのメタ属性、オペレーションのデフォルト値などをも編集することができます。クラスタプロパティ、リソースのメタ属性、オペレーションのデフォルト値は属性値として処理されます。属性の設定に使用するコマンドは次の通りです。

変更された設定は、configureレベルから別のレベルに移動したとき、または、commitコマンドが実行されたときにCIBに反映されます。

node

nodeコマンドでノードを定義することができます。ノードの情報はCRMによって自動的に生成されます。ノードの属性値を編集する場合を除いて、このコマンドでなにか操作を実行する必要はあまりありません。ノードの属性値もこのコマンドで編集可能です。

使用方法:

        node <uname>[:<type>]
          [attributes <param>=<value> [<param>=<value>...]]

        type :: normal | member | ping

使用例:

        node node1
        node big_node attributes memory=64

primitive

primitiveリソースを定義します。primitiveリソースは、groupリソースやcloneリソース、master/slaveリソースから参照されます。他のリソースから参照されていないprimitiveリソースは単純な一つのリソースとして起動します。

primitiveリソースには三種類に分類することができます。Anonymousリソースはオペレーションが定義されていないリソースです。オペレーションの設定を他のリソースから参照しない場合に使用します。一般的なリソースには、いくつかのオペレーションが定義されます。オペレーションの定義を他のリソースから参照可能な状態とするためには、operationsキーワードを追加し、$id-refパラメータにユニークなIDを設定してください。他のリソースは$id-refの値を参照します。

オペレーションの属性は、instance attributesとして保持されます。オペレーションの属性値として典型的な例は`OCF_CHECK_LEVEL`です。

使用方法:

        primitive <rsc> [<class>:[<provider>:]]<type>
          [params attr_list]
          [meta attr_list]
          [operations id_spec]
            [op op_type [<attribute>=<value>...] ...]

        attr_list :: [$id=<id>] <attr>=<val> [<attr>=<val>...] | $id-ref=<id>
        id_spec :: $id=<id> | $id-ref=<id>
        op_type :: start | stop | monitor

使用例:

        primitive apcfence stonith:apcsmart \
          params ttydev=/dev/ttyS0 hostlist="node1 node2" \
          op start timeout=60s \
          op monitor interval=30m timeout=60s

        primitive www8 apache \
          params configfile=/etc/apache/www8.conf \
          operations $id-ref=apache_ops

        primitive db0 mysql \
          params config=/etc/mysql/db0.conf \
          op monitor interval=60s \
          op monitor interval=300s OCF_CHECK_LEVEL=10

monitor

monitorは最も一般的なオペレーションです。リソースの設定に、monitorオペレーションのみを追加することもできます。primitiveリソースは単純なリソースですが、様々な設定を追加していくと複雑になってしまう場合があります。monitorコマンドは、あくまで単純にmonitorオペレーションを追加することを目的としています。もし、monitorオペレーションに特殊な属性を設定したい場合はprimitiveコマンドを使用してopパラメータを編集してください。

使用方法:

        monitor <rsc>[:<role>] <interval>[:<timeout>]

使用例:

        monitor apcfence 60m:60s

上記の例では、primitiveリソースにmonitorオペレーションのinterval(60分)とtimeout(60秒)を設定しています。intervalはmonitorオペレーションが実行される「間隔」、timeoutはmonitorオペレーションが失敗した場合に故障を検知する「タイムアウト(待ち時間)」です。

group

groupリソースを定義します。

使用方法:

        group <name> <rsc> [<rsc>...]
          [meta attr_list]
          [params attr_list]

        attr_list :: [$id=<id>] <attr>=<val> [<attr>=<val>...] | $id-ref=<id>

使用例:

        group internal_www disk0 fs0 internal_ip apache \
          meta target_role=stopped

clone

clonrリソースを定義します。一つのprimitiveリソース、または一つのgroupリソースで構成されます。

使用方法:

        clone <name> <rsc>
          [meta attr_list]
          [params attr_list]

        attr_list :: [$id=<id>] <attr>=<val> [<attr>=<val>...] | $id-ref=<id>

使用例:

        clone cl_fence apc_1 \
          meta clone-node-max=1 globally-unique=false

ms (master)

master/slaveリソースを定義します。一つのprimitiveリソース、または一つのgroupリソースで構成されます。

使用方法:

        ms <name> <rsc>
          [meta attr_list]
          [params attr_list]

        attr_list :: [$id=<id>] <attr>=<val> [<attr>=<val>...] | $id-ref=<id>

使用例:

        ms disk1 drbd1 \
          meta notify=true globally-unique=false

location

locationはリソースの配置制約を定義します。配置制約は、1つ以上のruleから構成されており、ruleに適合したリソースに対して特定のスコアが割り当てられます。

使用方法:

        location <id> <rsc> {node_pref|rules}

        node_pref :: <score>: <node>

        rules ::
          rule [id_spec] [$role=<role>] <score>: <expression>
          [rule [id_spec] [$role=<role>] <score>: <expression> ...]

        id_spec :: $id=<id> | $id-ref=<id>
        score :: <number> | <attribute> | [-]inf
        expression :: <simple_exp> [bool_op <simple_exp> ...]
        bool_op :: or | and
        simple_exp :: <attribute> [type:]<binary_op> <value>
                      | <unary_op> <attribute>
                      | date <date_expr>
        type :: string | version | number
        binary_op :: lt | gt | lte | gte | eq | ne
        unary_op :: defined | not_defined

        date_expr :: lt <end>
                     | gt <start>
                     | in_range start=<start> end=<end>
                     | in_range start=<start> <duration>
                     | date_spec <date_spec>
        duration|date_spec ::
                     hours=<value>
                     | monthdays=<value>
                     | weekdays=<value>
                     | yearsdays=<value>
                     | months=<value>
                     | weeks=<value>
                     | years=<value>
                     | weekyears=<value>
                     | moon=<value>

Examples:

        location conn_1 internal_www 100: node1

        location conn_1 internal_www \
          rule 50: #uname eq node1 \
          rule pingd: defined pingd

        location conn_2 dummy_float \
          rule -inf: not_defined pingd or pingd number:lte 0

colocation (collocation)

clocationはリソースの同居制約を定義します。二つ以上のリソースに対して、リソース間の制約を定義することができます。同居制約には依存関係の優先度を設定することができます。括弧で囲まれたリソース間の依存関係が優先されます。次の例では、リソースB, Cの依存関係がAとの依存関係よりも優先されます。

使用方法:

        colocation <id> <score>: <rsc>[:<role>] <rsc>[:<role>] ...

使用例:

        colocation dummy_and_apache -inf: apache dummy
        colocation c1 inf: A ( B C )

order

orderはリソースの順序制約を定義します。二つ以上のリソースに対して、リソース間の制約を定義することができます。順序居制約には依存関係の優先度を設定することができます。括弧で囲まれたリソース間の依存関係が優先されます。次の例では、リソースB, Cの依存関係がAとの依存関係よりも優先されます。

使用方法:

        order <id> score-type: <rsc>[:<action>] <rsc>[:<action>] ...
          [symmetrical=<bool>]

        score-type :: advisory | mandatory | <score>

使用例:

        order c_apache_1 mandatory: apache:start ip_1
        order o1 inf: A ( B C )

property

propertyコマンドはクラスタの全体的な設定を行います。CIBのcrm_configセクションに値が保持されます。

使用方法:

        property [$id=<set_id>] <option>=<value> [<option>=<value> ...]

使用例:

        property stonith-enabled=true

rsc_defaults

rsc_defaultsコマンドはリソースに設定するmeta属性のデフォルト値を定義します。

使用方法:

        rsc_defaults [$id=<set_id>] <option>=<value> [<option>=<value> ...]

使用例:

        rsc_defaults failure-timeout=3m

op_defaults

op_defaultsコマンドはオペレーションに設定するmeta属性のデフォルト値を定義します。

使用方法:

        op_defaults [$id=<set_id>] <option>=<value> [<option>=<value> ...]

使用例:

        op_defaults record-pending=true

show

`show`コマンドは設定された値を表示します。エディタを使用して設定値を編集することもできます。変更された値のみを表示することも可能です。CRM-CLI形式ではなくXML形式で表示することもできます。

使用方法:

        show [xml] [<id> ...]
        show [xml] changed

edit

`edit`コマンドを実行するとエディタが起動します。`show`コマンドを同様に、すべての設定値を一括で編集することもできますし、特定の値のみ編集することもできます。

XML形式で編集することも可能ですがリソースや制約に設定されたIDを変更しないように注意してください。

使用方法:

        edit [xml] [<id> ...]
        edit [xml] changed

delete

`delete`コマンドはオブジェクトを削除します。他のオブジェクトに対して依存関係のある設定内容(例:groupリソースの場合はprimitiveリソースに依存関係があります)が削除された場合、依存関係にあるオブジェクトも一緒に削除されます。また、削除するオブジェクトに依存関係のある制約も全て削除されます。

使用方法:

        delete <id> [<id>...]

rename

`rename`コマンドはオブジェクトの名前を変更します。リソースの名前を変更したい場合は、このコマンドを使用してください。renameコマンドを使用すると依存関係にある制約も一括して変更されます。edirコマンドでリソースの名前を変更した場合は、制約の設定が変更されないため、設定内容に矛盾が生じる可能性があります。

リソースの名前を変更したい場合は、リソースが停止した状態でrenameコマンドを実行してください。

使用方法:

        rename <old_id> <new_id>

refresh

`refresh`コマンドはCIBを更新します。変更がcommitコマンドを使用してクラスタに反映されていない場合は、反映前の変更内容はすべて失われます。

使用方法:

        refresh

erase

`erase`コマンドはCIBの「すべての」設定を削除します。ただしノード情報の削除対象外です。CIBからノード情報を削除したい場合は、nodesコマンドの使用方法を参照してください。

実行中のクラスタからノードの情報を削除すると、予想外の動作が発生する可能性があるので十分に注意してください。

使用方法:

        erase [nodes]

ptest

`ptest`コマンドを実行してPE(Policy Engine)の遷移グラフを表示します。

CIBには、ユーザが編集した情報だけではなく、実行中のクラスタ状態が保持されています。ユーザ編集した情報を、実行中のクラスタに反映した場合、クラスタの状態がどのように遷移するかをptestコマンドで確認することができます。

クラスタの情報を保持しているstatusセクションは cibstatus レベルのコマンドで操作することができます。`ptest`コマンドは実際のクラスタ状態を変化させずに、擬似的な遷移グラフを作成します。

`ptest`コマンドの実行結果を図で表示するためには、graphvizをインストールする必要があります。X11環境で`ptest`コマンドを実行すると、dorryが実行され遷移グラフが表示されます。

-vオプションでデバッグレベルを変更することもできます。リソースに割り当てられたスコアを表示することもできます。

使用方法:

        ptest [nograph] [v...] [scores]

Examples:

        ptest scores
        ptest vvvvv

cibstatus

cibstatusコマンドはCIBのstatsuセクションを編集、管理します。詳細はCIB status management sectionを参照してください。

template

templateコマンドは特定のテンプレートをエディタへ取り込みます。ユーザはテンプレートを利用して設定を行うことができます。詳細はtemplate sectionを参照してください。

使用方法:

        template [xml] url

使用例:

        template two-apaches.txt

commit

commitコマンドは変更内容をCIBに反映します。configureレベルで実行したコマンドはCIBに即座に反映されるわけではありません。変更内容がCIBに反映されるタイミングは、`commit`コマンドを実行したとき、またはconfigureレベルを抜けたときのいずれかです。複数のユーザが同時に編集を行っている場合は、設定内容の反映が拒否されることもあります。このような場合あh、`force`オプションを追加して強制的に変更を反映することもできます。

使用方法:

        commit [force]

verify

verifyコマンドを使用して変更内容を検証することができます。

使用方法:

        verify

upgrade

`CIB not supported`というエラーが出力された場合は、CIBのバージョンが古い可能性があります。updateコマンドを実行してCIBのバージョンを更新してください。updateコマンドは、内部的にcibadminコマンドを呼び出します。

    # cibadmin --upgrade --force

エラーが出力されない場合でも、CIBのバージョンが古いということがわかっているのであれば、forceオプションを使用して強制的にバージョンアップしてください。

使用方法:

        upgrade [force]

save

saveコマンドは設定内容をファイルに保存します。XML形式で保存することも可能です。

使用方法:

        save [xml] <file>

使用例:

        save myfirstcib.txt

load

loadコマンドはローカルまたはネットワーク上のファイルを読み込みます。`replace`オプションを使用した場合、現在の設定を削除して新しい設定を読み込みます。`update`オプションを使用した場合、現在の設定は上書きされます。ファイルの形式はCLIまたはXMLです。

使用方法:

        load [xml] <method> URL

        method :: replace | update

使用例:

        load xml update myfirstcib.xml
        load xml replace http://storage.big.com/cibs/bigcib.xml

xml

CRM-CLIはXMLを編集しないことを前提としていますが、CIBの内容が複雑になると、まれにXMLを直接編集しなければならない場合があります。このような場合はxmlコマンドを使用してください。xmlコマンドを使用して、XMLの各要素を直接編集することができます。手動編集によってXMLの構文が冗長になってしまった場合などは、CRM-CLIが自動的に通常の形式へ変換します。ただし、xmlコマンドを使用することはほとんどないはずです。

使用方法:

        xml <xml>

template

事前に準備されたテンプレートを使用してクラスタの設定を行うことができます。テンプレートは典型的なクラスタの雛形です。ユーザはテンプレートの一部のパラメータを変更するだけで容易にクラスタを設定することができます。

このコマンドはtemplateレベルだけではなく、configurationレベルのさらに下の階層(configuration/template)でも実行可能です。

new

newコマンドは新しいテンプレートを作成します。テンプレートは同時に複数作成することもできます。configurationレベルとtemplateレベルの設定内容は別々に保存されます。それぞれのレベルで同じ名前のテンプレートを作成することもできます。

必要なパラメータがすでにわかっている場合は、テンプレートを作成する段階で値を入力することができます。

パラメータのIDはデフォルトで設定名が使用されます。

使用方法:

        new <config> <template> [<template> ...] [params name=value ...]"

Examples:

        new vip virtual-ip
        new bigfs ocfs2 params device=/dev/sdx8 directory=/bigfs

load

loadコマンドは既存のテンプレートを読み込みます。edit, show, apply の各コマンドは読み込まれたテンプレートを参照します。

使用方法:

        load <config>

edit

editコマンドでエディタを起動し、テンプレートを編集することができます。

使用方法:

        edit [<config>]

delete

deleteコマンドでテンプレートを削除することができます。読み込まれた設定は強制的に削除されます。

使用方法:

        delete <config> [force]

list

listコマンドは利用可能なテンプレートを表示します。

使用方法:

        list [templates]

apply

applyコマンドはテンプレートの内容をライブCIBに適用します。デフォルトでは、updateオプションが使用されるためCIBは上書きされます。replaceオプションを指定した場合は、CIBは一度削除されたあと新しい設定が適用されます。

使用方法:

        apply [<method>] [<config>]

        method :: replace | update

show

showコマンドはテンプレートの内容を表示します。

使用方法:

        show [<config>]

cibstatus

CIBのcibstatusセクションは、実行中のノードやリソースの情報を保持しています。このセクションが保持する情報が変更されるのは、リソースのオペレーションが実行されたとき、ノードの状態が変更されたときに限られています。cibstatusセクションはCRMによって変更されますが、CRMはcibstatusセクションを編集するためのユーザインターフェースを提供していません。このため、cibstatusセクションは基本的に読み込み専用領域となります。cibstatusセクションはディスク上のファイルには保存されません。cibstatusセクションの状態は、`cibadmin -Q`コマンドで表示することができます。

cibstatusセクションが変更されるとPolicy Engineの挙動にどのような影響を与えるのかは興味深い点です。cibstatsuレベルで提供されているコマンドは、CIBのstatusセクションに保持された様々な値を表示します。状態遷移の詳細については、ptestを参照してください。

load

loadコマンドはファイルやシャドウCIB、ライブCIBからstatusセクションを読み込みます。デフォルトではライブCIBからstatusセクションを読み込みます。ユーザがファイルやシャドウCIBからstatusセクションを読み込でいる状態では、クラスタの状態遷移がCIBに反映されない場合があります。ユーザの参照している領域をクラスタが上書きしてしまう可能性があるからです。クラスタの状態遷移をCIBに反映するためには、`locad live`コマンドを実行してください。

シャドウCIBも、statusセクションを保持していますが、この情報はシャドウCIBが作成されたときのものです。よってライブCIBとは異なるstatus情報を保持している可能性があります。よって、ptestコマンドはデフォルトでライブCIBのstatusセクションを参照します。

使用方法:

        load {<file>|shadow:<cib>|live}

使用例:

        load bug-12299.xml
        load shadow:test1

save

saveコマンドはstatusセクションの内容をファイルもしくはシャドウCIBへ保存します。

CIBのフォーマットで記述されたファイルが既に存在する場合は、statusセクションの変更内容のみが置換されます、。CIBのフォーマットで記述されたファイルが存在しない場合h、statusセクションだけではなくすべての設定が保存さます。

引数が省略された場合は、statusセクションの変更はオリジナルのCIBに保存されます。オリジナルのCIBとは実行中のクラスタが参照するライブCIBのことです。

使用方法:

        save [<file>|shadow:<cib>]

使用例:

        save bug-12299.xml

origin

originコマンドは実行中のクラスタで使用している設定を表示します。最新の設定が表示さえます。

使用方法:

        origin

show

showコマンドはクラスタの状態をXML形式で表示します。出力された内容を理解するためニアh、XMLやCIBの知識が必要となります。changeオプションを使用すると、いくぶんかは読みやすい出力になるかもしれません。

使用方法:

        show [changed]

node

nodeコマンドはノードの状態を変更します。ノードをクラスタから除外したり、新しいノードをクラスタへ参加させたりするだけではなく、クラスタに参加しているノードの状態をuncleanへ変更することもできます。

online

node_state, crmdの属性をonlineへ変更します。また、expexted, joinの属性をmemberへ変更します。ノードはクラスタへ参加します。

offline

node_state, crmdの属性をofflineへ変更します。また、expextedの属性を削除します。ノードはクラスタから除外されます。

unclean

node_state, crmdの属性をuncleanへ変更します。また、expextedの属性をmemberへ変更します。ノードはクラスタ内でオフライン状態となります。

使用方法:

        node <node> {online|offline|unclean}

使用例:

        node xen-b unclean

op

opコマンドを使用してリソースのオペレーションに設定された名前などを編集することができます。オペレーションが実行されると、通常はリソースエージェントから規定の返り値が戻されます。オペレーションの状態(op_status)を変更することも可能です。オペレーションの状態をdone以外に設定する場合は、リソースエージェントからの返り値は無視されます。

使用方法:

        op <operation> <resource> <exit_code> [<op_status>] [<node>]

        operation :: probe | monitor[:<n>] | start | stop |
           promote | demote | notify | migrate_to | migrate_from
        exit_code :: <rc> | success | generic | args |
           unimplemented | perm | installed | configured | not_running |
           master | failed_master
        op_status :: pending | done | cancelled | timeout | notsupported | error

        n :: the monitor interval in seconds; if omitted, the first
           recurring operation is referenced
        rc :: numeric exit code in range 0..9

使用例:

        op start d1 xen-b generic
        op start d1 xen-b 1
        op monitor d1 xen-b not_running
        op stop d1 xen-b 0 timeout

end (cd, up)

endコマンドは現在のレベルを終了して、一つ上のレベルへ移動します。このコマンドはどのレベルでも利用可能です。

使用方法:

        end

help

helpコマンドは、現在のレベルで実行可能なコマンドや、コマンドのオプションについての情報を表示します。このコマンドはどのレベルでも利用可能です。

使用方法:

        help [<topic>]

quit (exit, bye)

CRM-CLIを終了します。