C.2. 兄弟開始の順序とリソースの子の順序

サービスリソースは、以下のように子リソースに対して子のタイプ属性を指定するかどうかに応じて子リソースの開始順と停止順を決定します。
  • 子のタイプ属性を指定する (型指定された子リソース) — サービスリソースが子リソースに対して子のタイプ属性を指定すると、子リソースは 型指定 します。子のタイプ属性は明示的に子リソースの開始順と停止順を決定します。
  • 子のタイプ属性を 指定しない (型指定されていない 子リソース) — サービスリソースが子リソースに対して子のタイプ属性を 指定しない と、子リソースは 型指定されません。サービスリソースは型指定されていない子リソースの開始順と停止順を明示的に制御しません。しかし、型指定されていない子リソースは /etc/cluster/cluster.conf 内の順番に従って開始、停止します。また、型指定されていない子リソースは、全ての型指定された子リソースが開始した後に開始し、いずれかの型指定された子リソースが停止する前に停止します。

注記

定義された 子リソースタイプ 順を実装する唯一のリソースはサービスリソースです。
型指定された子リソースの開始と停止の順序に関する詳細情報は、「型指定された子リソースの開始と停止の順序」 を参照してください。型指定されていない子リソースの開始と停止の順序に関する詳細情報は、「型指定されていない子リソースの開始と停止の順序」 を参照してください。

C.2.1. 型指定された子リソースの開始と停止の順序

型指定された子リソースでは、子リソースのタイプ属性は 1 から 100 までの番号を使って各リソースタイプの開始順と停止順を定義します。開始及び停止用の値はそれぞれ 1 つです。数字が低いほど、リソースタイプは早く開始/停止します。例えば、表C.1「子リソースタイプの開始と停止の順序」 は各リソースタイプの開始値と停止値を示しています。例C.2「リソースの開始と停止の値: サービスリソースエージェント service.sh からの抜粋」 は、開始値と停止値がサービスリソースエージェントである service.sh に表示されるとおり示しています。サービスリソースについては、全ての LVM 子群が最初に開始します。次に、全てのファイルシステム子群、その後に全てのスクリプト子群と、開始していきます。

表C.1 子リソースタイプの開始と停止の順序

リソース 子タイプ 開始順の値 停止順の値
LVM lvm 1 9
ファイルシステム fs 2 8
GFS2 ファイルシステム clusterfs 3 7
NFS マウント netfs 4 6
NFS エクスポート nfsexport 5 5
NFS クライアント nfsclient 6 4
IP Address ip 7 2
Samba smb 8 3
スクリプト script 9 1

例C.2 リソースの開始と停止の値: サービスリソースエージェント service.sh からの抜粋

<special tag="rgmanager">
    <attributes root="1" maxinstances="1"/>
    <child type="lvm" start="1" stop="9"/>
    <child type="fs" start="2" stop="8"/>
    <child type="clusterfs" start="3" stop="7"/>
    <child type="netfs" start="4" stop="6"/>
    <child type="nfsexport" start="5" stop="5"/>
    <child type="nfsclient" start="6" stop="4"/>
    <child type="ip" start="7" stop="2"/>
    <child type="smb" start="8" stop="3"/>
    <child type="script" start="9" stop="1"/>
</special>
リソースタイプ内での順番はクラスター設定ファイル、/etc/cluster/cluster.conf に存在する通りに保存されてます。 例えば、例C.3「リソースタイプ内の順序」 内の型指定された子リソースの開始順と停止順を考えてみましょう。

例C.3 リソースタイプ内の順序

<service name="foo">
  <script name="1" .../>
  <lvm name="1" .../>
  <ip address="10.1.1.1" .../>
  <fs name="1" .../>
  <lvm name="2" .../>
</service>

型指定された子リソースの開始順

例C.3「リソースタイプ内の順序」 では、リソースは以下の順序で開始します:
  1. lvm:1 — これは LVM のリソースです。全ての LVM リソースが最初に開始します。lvm:1 (<lvm name="1" .../>) は、/etc/cluster/cluster.conffoo サービス部分でリストされている最初の LVM リソースであるため、LVM リソースの中では最初に開始します。
  2. lvm:2 — これは LVM リソースです。全ての LVM リソースが最初に開始します。lvm:2 (<lvm name="2" .../>) は、/etc/cluster/cluster.conffoo サービス部分の中で lvm:1 の後にリストされているため、lvm:1 の次に開始します。
  3. fs:1 — これはファイルシステムリソースです。foo サービス内に他のファイルシステムリソースがある場合は、/etc/cluster/cluster.conffoo サービス部分にリストされている順序で開始します。
  4. ip:10.1.1.1 — これは IP アドレスリソースです。foo サービス内に他の IP アドレスのリソースがある場合は、/etc/cluster/cluster.conffoo サービス部分にリストされている順序で開始します。
  5. script:1 — これはスクリプトリソースです。foo サービス内に他のスクリプトリソースがある場合は、/etc/cluster/cluster.conffoo サービス部分にリストされている順序で開始します。

型指定された子リソースの停止順

例C.3「リソースタイプ内の順序」 では、リソースは以下の順序で停止します:
  1. script:1 — これはスクリプトリソースです。foo サービス内に他のスクリプトリソースがある場合は、/etc/cluster/cluster.conffoo サービス部分にリストされている逆の順番で停止します。
  2. ip:10.1.1.1 — これは IP アドレスリソースです。foo サービス内に他の IP アドレスのリソースがある場合は、/etc/cluster/cluster.conffoo サービス部分にリストされている逆の順番で停止します。
  3. fs:1 — これはファイルシステムリソースです。foo サービス内に他のファイルシステムリソースがある場合は、/etc/cluster/cluster.conffoo サービス部分にリストされている逆の順番で停止します。
  4. lvm:2 — これは LVM リソースです。全ての LVM リソースは最後に停止します。lvm:2 (<lvm name="2" .../>) は lvm:1 より先に停止します。リソースタイプのグループ内のリソース群は /etc/cluster/cluster.conffoo サービス部分にリストされている逆の順番で停止します。
  5. lvm:1 — これは LVM リソースです。全ての LVM リソースは最後に停止します。lvm:1 (<lvm name="1" .../>) は lvm:2 の後に停止します。リソースタイプのグループ内のリソース群は /etc/cluster/cluster.conffoo サービス部分にリストされている逆の順番で停止します。