月刊あんどりゅーくん(5月号)


2. 知恵袋

質問
気づいたら /var/lib/pengine の下に怪しげなファイルがいっぱいできちゃって大変なことに!
どうすればいいの?

回答
「series-max」を設定しましょう。

元ネタ

ちなみに、手元の環境を確認したらこんな感じでした。

# ls /var/lib/pengine | wc -l
585

# ls /var/lib/pengine
pe-input-0.bz2   pe-warn-171.bz2  pe-warn-247.bz2  pe-warn-322.bz2  pe-warn-399.bz2  pe-warn-474.bz2  pe-warn-55.bz2
pe-input-1.bz2   pe-warn-172.bz2  pe-warn-248.bz2  pe-warn-323.bz2  pe-warn-4.bz2    pe-warn-475.bz2  pe-warn-550.bz2
pe-input.last    pe-warn-173.bz2  pe-warn-249.bz2  pe-warn-324.bz2  pe-warn-40.bz2   pe-warn-476.bz2  pe-warn-551.bz2
pe-warn-0.bz2    pe-warn-174.bz2  pe-warn-25.bz2   pe-warn-325.bz2  pe-warn-400.bz2  pe-warn-477.bz2  pe-warn-552.bz2
pe-warn-1.bz2    pe-warn-175.bz2  pe-warn-250.bz2  pe-warn-326.bz2  pe-warn-401.bz2  pe-warn-478.bz2  pe-warn-553.bz2
.
.
.
pe-warn-167.bz2  pe-warn-242.bz2  pe-warn-318.bz2  pe-warn-394.bz2  pe-warn-47.bz2   pe-warn-545.bz2  pe-warn-99.bz2
pe-warn-168.bz2  pe-warn-243.bz2  pe-warn-319.bz2  pe-warn-395.bz2  pe-warn-470.bz2  pe-warn-546.bz2  pe-warn.last
pe-warn-169.bz2  pe-warn-244.bz2  pe-warn-32.bz2   pe-warn-396.bz2  pe-warn-471.bz2  pe-warn-547.bz2
pe-warn-17.bz2   pe-warn-245.bz2  pe-warn-320.bz2  pe-warn-397.bz2  pe-warn-472.bz2  pe-warn-548.bz2
pe-warn-170.bz2  pe-warn-246.bz2  pe-warn-321.bz2  pe-warn-398.bz2  pe-warn-473.bz2  pe-warn-549.bz2

あーあ。。。
放置しすぎると、/var が大変なことになるので、たまに削除してるんですけどね。。。
/var/lib/pengine の下にもりもりできているファイルは、Pacemaker の pengine(Policy Engine)プロセスが出力する
「遷移グラフ」です。
Pacemaker はなにかしらの異常を検知した場合に「今現在のやばい状況をなんとかしなくては!」といろいろ頑張ってくれるわけですが、遷移グラフにはその頑張りっぷりが記録されております。
まあね、たまーに、もちょっとがんばってくれよう。。。という記録が残っていたりとかもしますが、それなりに頑張ってはいる。
異常が発生した場合に限らず、ノードがスタンバイ化/オンライン化したとき、クラスタにノードが追加されたとき
などなど、クラスタの状態が変化すると「遷移グラフ」は作成されるので
まったりと正常運転中のときは、そんなにファイル数が増えたりしないんですが
計画停止の多いシステムやしょっちゅうコケてるシステムとかは気づいたら大変なことになってるわけですね。

出力されるファイルは三種類あります。
・pe-input    正常系の遷移グラフ(初期起動時やノードのスタンバイ化など)
・pe-warn    異常系の遷移グラフ(WARNレベル)
・pe-error    異常系の遷移グラフ(ERRORレベル)

pengine の man でそれぞれのデフォルト値を確認できます。

pe-error-series-max = integer [-1]
The number of PE inputs resulting in ERRORs to save
Zero to disable, -1 to store unlimited.
pe-warn-series-max = integer [-1]
The number of PE inputs resulting in WARNINGs to save
Zero to disable, -1 to store unlimited.
pe-input-series-max = integer [-1]
The number of other PE inputs to save
Zero to disable, -1 to store unlimited.

man がインストールされていないときは、pengine の metadata から確認することもできます。
こちらは64bit環境での実行例です。

# /usr/lib64/heartbeat/pengine metadata
<parameter name=”pe-error-series-max” unique=”0″>
<shortdesc lang=”en”>The number of PE inputs resulting in ERRORs to save</shortdesc>
<content type=”integer” default=”-1″/>
<longdesc lang=”en”>Zero to disable, -1 to store unlimited.</longdesc>
</parameter>
<parameter name=”pe-warn-series-max” unique=”0″>
<shortdesc lang=”en”>The number of PE inputs resulting in WARNINGs to save</shortdesc>
<content type=”integer” default=”-1″/>
<longdesc lang=”en”>Zero to disable, -1 to store unlimited.</longdesc>
</parameter>
<parameter name=”pe-input-series-max” unique=”0″>
<shortdesc lang=”en”>The number of other PE inputs to save</shortdesc>
<content type=”integer” default=”-1″/>
<longdesc lang=”en”>Zero to disable, -1 to store unlimited.</longdesc>
</parameter>

デフォルトは -1 なので、無制限にファイルがぼこぼこできちゃいます。

ファイル数の制限値を設定したい場合は、「クラスタオプション」として

  • pe-error-series-max
  • pe-warn-series-max
  • pe-input-series-max

を設定してください。
pe-xxxx のどれかひとつだけ設定する、というのアリですし、それぞれ別の設定値を指定する、というのもアリです。
次の例では、それぞれファイル数の上限を「2」と設定してみました。
リソースは代わり映えしませんが、いつもの仮想IP(IPaddr2)さんにご登場いただきました。
クラスタはPacemaker/Heartbeatの2ノード構成です。

# cat cib-ipaddr2.crm
### Cluster Option ###
property no-quorum-policy=”ignore” \
stonith-enabled=”false” \
startup-fencing=”false” \
pe-error-series-max=2 \
pe-warn-series-max=2 \
pe-input-series-max=2
### Resource Defaults ###
rsc_defaults resource-stickiness=”INFINITY” \
migration-threshold=”1″
### Operation Defaults ###
op_defaults record-pending=true
### Primitive Configuration ###
primitive ip ocf:heartbeat:IPaddr2 \
params \
ip=”192.168.101.121″ \
nic=”bond0″ \
cidr_netmask=”24″ \
op start interval=”0s” timeout=”60s” on-fail=”restart” \
op monitor interval=”10s” timeout=”60s” on-fail=”restart” \
op stop interval=”0s” timeout=”60s” on-fail=”block”

Pages: 1 2 3 4 5 6

Comments are closed.