2012年7月20日にglue 1.0.10がリリースされました!

メーリングリストに投稿されたリリースノートはこちら。

Hello,

The current glue repository has been tagged as 1.0.10.
Please upgrade at the earliest possible opportunity.

The highlights:

- compression modules included and compression handling improved in clplumbing
- one memory leak fixed in clplumbing
- support for asynchronous I/O in sbd
- hb_report performance improvement

You can get the 1.0.10 tarball here:

http://hg.linux-ha.org/glue/archive/glue-1.0.10.tar.bz2

Many thanks to all contributors.

Enjoy!

Lars Ellenberg
Dejan Muhamedagic

大きな変更は4点ですが、その他の修正はチェンジログから参照できます。 では、それぞれの変更点についてもう少し詳しくみてみます。


(1) 通信パケットの圧縮処理が改善されました。

- compression modules included and compression handling improved in clplumbing

チェンジログからの抜粋

clplumbing: ipc: fix message size checks (bnc#752231)
clplumbing: load bz2 compression module by default
clplumbing: cl_msg: try compressing message before rejecting it
clplumbing: cl_msg: don't use traditional compression by default
clplumbing: cl_msg: increase compression threshold

Heartbeatは、ノードの生死やリソースの状態を確認するために、ノード間でパケットをやりとりしていますが、このパケットを圧縮することができます。 今回のリリースでは圧縮処理に関する修正が取り込まれました。 圧縮関連のパラメータはha.cfに設定しますが、詳細はこちらを参照してください。 このパラメータ、普通はデフォルトでも問題ないはずなんですが、いざというときのチューニングパラメータとして頭の片隅においとくと役にたつこともあるかも、です。


(2) メモリリークが解消されました

- one memory leak fixed in clplumbing

チェンジセットのコメントをみてみると、”Which was done only sporadically.” らしいので、発生の頻度は低かったようですが、とにかくメモリリークはなおった。よかったよかった。


(3) sbdに非同期I/Oのサポートが追加されました。

- support for asynchronous I/O in sbd

そもそもsbdとはなんぞや。 「SBD Fencing」にいろいろ書いてありますが、共有ストレージ環境での排他制御を実現する機能です。 共有ストレージ使ってるときに怖いのは、スプリットブレインが発生した際の二重マウントですよね。 sbdは、共有ストレージを監視するデーモンと、STONITHを実行するプラグインを組み合わせて設定し、共有ストレージへのアクセスが途切れたとき、または他のノードからフェンシング要求を受信したとき(つまり二重マウントの可能性が発生したとき)、自分自身に対してSTONITHを実行して、二重マウントを抑止します。 今までは同期I/Oでディスクの監視をしていたので、I/Oがハングしたときにあっぷあっぷしていたようなんですが、非同期I/Oもサポートされたのでハングからの復旧動作が改善されました。

チェンジログからの抜粋

sbd: Use async IO for disk reads to increase resilience against
sbd: Handle IO errors during slot allocation properly (bnc#753559)
sbd: Debug mode added (bnc#753559, bnc#738295)

sbdはSUSEの中の人が開発しているのですが、glueとはべつのリポジトリにわかれちゃうみたいです。 なんかもうhgのリポジトリもできちゃってるし。 パッケージがどんどん増えるのは勘弁してほしいなあ(´・ω・`)


(4) hb_reportのパフォーマンスが改善されました。

- hb_report performance improvement

チェンジログからの抜粋

hb_report: improve performance
hb_report: get corosync blackbox records if available
hb_report: add node time information

hb_reportを使うと、ha-logやha.cf、実行中のクラスタ情報などを収集することができます。 使い方はこちらを参考にしてください。 引数なしで実行するとヘルプがどばーっとでるので、それを見るだけでもなんとなく使い方はわかります。

Pacemakerでクラスタを構築してみたけど、なんかうまくいかないなあ、コミュニティに聞いてみようかな、とそういう時! 今現在の困りっぷりを文章だけで他の人に説明するのって結構大変です。 日本語でも大変なのに英語なんてむーりーということで諦めちゃう人も多いかもしれません。 諦めるまではいかなくてもなんかお腹痛くなってきた…とかそういうのはよくわかります。 ログファイルや設定ファイルをメールに添付して、「添付をみてください。 See attached.」でもいいんですが、実はha-logだけとかha.cfだけとかじゃわからないことって多いんですよね。 hb_reportを使うと、とりあえずそのへんにあるログやら設定ファイルやらさらにはOS情報やらがっつ集めてくれるのでラクチンですよ! 次回からは「hb_reportみてください! See attached hb_report!」を試してみてください。


その他、チェンジセットみて気になったところでいうと、stonith関連でちょいちょい修正が入ってます。

stonith: add CRM stonith resource name to log messages (bnc#728579)
stonith: adjust timeouts in the meta-data template (bnc#733337)
stonith: external/vcenter: return list of configured hosts on
stonith: external/libvirt: add more search strings for domain
stonith: rhcs: pass the action via stdin too
stonith: rhcs: avoid false error if parameter isn't set

それと、lrmdがリソースを起動するときのプロセス数を環境変数で変更できるようになりました。 デフォルトは4なので、リソース数の多い構成の場合、エラーがでちゃったりしてたんですが、環境変数で調整すればちょっとよくなるかもしれません。

LRM: lrmd: if set, get max-children from the LRMD_MAX_CHILDREN