5 / 6« First...23456

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

今月も、先月にひきつづきリリースてんこもり月間でした。
というわけで、まずは各製品のリリース情報を簡単にご紹介します。
知恵袋では、crm シェルを使ってリソースの故障情報を削除する手順を解説します。

  1. リリース情報
  2. 知恵袋

 

1. リリース情報

1.1 Linux-HA Japan Pacemakerリポジトリパッケージ 1.0.10-1.4.2 のリリース(2011/06/06)

以下の拡張パッケージが更新されています。

  • crmファイル編集ツール(pm_crmgen)
  • 拡張リソースエージェント・プラグイン(pm_extras)
  • ログメッセージ制御機能(pm_logconv-hb)

詳細はこちらを参照してください。

1.2 rerource agents 3.9.1 のリリース(2011/06/16)

今回のリリースの特徴は、Linux-HAで開発してきたRAと
Red Hat Cluster Suiteに含まれるrgmanager用のRAが統合された点です。
Linux-HAのRAは前回のリリースが 1.0.4 だったのですが
rgmanager側が 3.1系のブランチを持っていたため
数字の大きなrgmanagerにあわせて、3.9.1 からのリリースとなりました。

rgmanagerは使わないから、Linux-HA用のRAだけインストールしたいなあ
という場合は、ビルド時に –with-ras-set オプションを指定する必要があります。
(with の前のハイフンは2個です)
デフォルトは –with-ras-set=all なので
Linux-HA も rgmanager もインストールされちゃいますが
–with-ras-set=linux-ha    とすると、Linux-HAだけ
–with-ras-set=rgmanager とすると、rgmanagerだけインストールすることができます。

RHEL6.1での操作例

# git clone http://github.com/ClusterLabs/resource-agents/
# cd resource-agents/
# git checkout v3.9.1
# ./autogen.sh
# ./configure –with-ras-set=linux-ha
# make  

# make install
または
# make rpm


Linux-HA用のRAには次の修正が取り込まれています。

Highlights for the LHA resource agents set:

– lxc, symlink: new resource agents
– db2: major rewrite and support for master/slave mode of operation
– exportfs: backup/restore of rmtab is back
– mysql: multiple improvements for master/slave and replication
– ocft: new tests for pgsql, postfix, and iscsi
– CTDB: minor bug fixes
– pgsql: improve configuration check and probe handling

目新しいところでは、Linux Containers用のRA(lxc)とsymlink用のRA(symlink)が新しく追加されています。
リリースノートの全文はこちらを参照してください。

で。
3.9.1 がリリースされてはみたんですが、
iscsi RA と pgsql RA に問題発生!と若干祭りになりまして
(まあこのRA使ってるユーザが局所的に盛り上がってしまっただけですが)
でやんくんが「ちょっともう3.9.2にしちゃおっか」と決心しました。

Linux-HA Japan も6月末にパッケージ群の更新を予定していたので
どうせなら 3.9.2 を待とうということになったのですが、3.9.2、実はまだでていない。
「6月24日にだしたいねー」とでやんくんが言っていたのですが
その後、どみにくさんが「VirtualDomain RA もちょっと修正したい」と
いろいろ揉めてまして、そんなこんなで本日(6月30日)に至っております。
つーか、たぶんあとはタグをふるだけだと思うんですよねー。
今日中にでそうな気がするんだけどなー。

2011年6月30日19時追記
3.9.2 でました!日本時間16時45分にアナウンスがありました。

1.3 Heartbeat 3.0.5 のリリース(2011/06/16)

約半年ぶりに Heartbaet 3系のリリースが行われました。

Changelog:
– do not request retransmission of lost messages from dead members
– fix segfault due to recursion in api_remove_client_pid
– properly cleanup pending delayed rexmit requests before reset of seqtrack
– create HA_RSCTMP on start, if necessary
– improve detection of pacemaker clusters in init script

最初の3つは、発生条件が限られているので、よっぽどのことがない限り
この修正の恩恵にはあずからないかもしれません。
残り2つは、一時ディレクトリの作成や起動スクリプトの改善なので
実行時の動作に大きな影響を与える修正ではありません。

で。
こちらもリリースの翌日にこんな修正がとりこまれています。

コメントをぱっと見た感じ、32ビットだとなにか恐ろしげなことがおこるとか?
実は64ビットのほうがやばいんじゃね?という噂もありますが
どっちにしろ気になる修正です。

Linux-HA Japan のパッケージに含まれる Heartbeat 3.0.5 は
上記の修正も取り込んだ状態でビルドしています。

今回はリリースの直後にばたばた修正が入るパターンが多くて、やれやれでしたわ…。

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

ここ最近、あんどりゅーくんよりふぃりっぷくんが荒ぶってましたなあ。
ということで、今月はDRBDのリリースノートを一生懸命読んでみました。
リリースといってもまだ rc なので、正式版が出た段階で改めてご紹介したいと思います。

今月のお題はこちらのお二つ。

  1. リリース情報
  2. 知恵袋

 

1.リリース情報

drbd-8.4.0rc1のリリース

DRBD 8.4.0rc1がリリースされました。
8.3系からの大きな変更点は、こちら。

The most noticeable change is the support for multiple replicated volumes in a single DRBD connection.

8.3系では、一本の同期LANで複数のリソース(ブロックデバイス)を同期させたい場合
リソースごとに同期用のポート番号を変える必要があったのですが
8.4系では「volumes」というパラメータを使って、同一の同期LANかつ同一のポート番号で
複数のリソースを同期することができるようになりました。
「プロトコルAを使用して遠隔地への同期処理を実行しているユーザにとってもこの機能は重要である(直訳)」
とも書いてありました。

volumesの設定方法はこんな感じ
drbd.confを見慣れてる人は「なるほど!」ですね。

 

drbd-8.4.0rc2のリリース

間をおかず、rc2もリリースされました。
rc2のアナウンスではサポートするカーネルのバージョンが2.6.18となっています。

With this rc we have the compatibility code in place.
It is expected to work on kernels 2.6.18 and newer. I.e. RHEL5.
* Compatibility code down to at least kernel 2.6.18

私が検証用OSとしてRHELしか使っていないので、RHELのバージョンに限って話をさせていただくと
RHEL5 → OK、RHEL6 → NGということになります。
なんでRHEL6がだめかっていうバックグラウンドはこちら

Background: the bio->bi_rw flags have been changed a few times
in the upstream kernel, and RHEL 6.1 changed it again in yet some
different way, so the compat wrappers and ifdefs in DRBD don’t get it
right yet, leading to a compile error.

RHEL 6.1ではbio->bi_rwフラグの取り扱いが変更されており、DRBDはそれに対応できていないとのこと。
(8.3系も8.4系もどっちも未対応です)
なんでRHEL 6.1からそんなん変わるの!というのは
なんかいろいろ大人の事情があるんでしょうねー。もうしらーん。
ちなみに今回の人柱は @bellche さんでした!
さらにちなみにですが、RHEL 6.0+DRBD 8.3.10は動いたので、これはこれで紛らわしい。
あ、この組み合わせはたぶん偶然うまくいったパターンなのでお勧めはしないですよ。
RHEL 6.0はこんなとこではみだしてて大丈夫なのか。
8.4.0の正式リリースでRHEL 6.1も対応してくれるのかなあ。
でも、がっつり修正が入っちゃうようだと、.0はちょっと人柱すぎるという気がしないでもない。


drbd-8.3.11rc1のリリース

こちらは、8.3系のバグフィックスです。
大きな変更点は、こちら。

The most subtlety bug fixed with this release is in the area of the max_bio_size negotiation:

DRBDがローカルのブロックデバイスをプライマリ化して対向ノードと接続した後に
ローカルのディスクを「attach」すると、プライマリのmax_bio_sizeがちっさくなっちゃってたらしいです。
想像するに、絶好調で同期処理をしてる最中に、プライマリで

# drbdadm attach all

を実行したというような状況なんですかね。
で、タイミングによってはmax_bio_sizeがちっさくなる前のブロックI/Oと
ちっさくなっちゃったブロックI/Oがまざっちゃって困ったことが起こる
という意味だと思うんですが、実際どんな困ったことがおこるっていうのがたぶんこれ
リブートしちゃったりとかではなく、ログに「ASSERT」ってでちゃうだけなのかな?
という気もしますが、8.3.11ではこのへんも修正されているようです。
あとちょっと気になったのはこの一行。

* Fixed the behaviour in case ping-timeout and ping-int are set to the same value

ping-timeoutとping-intの値を同じに設定していると、何がおこるんだ…。
それぞれのデフォルト値は

  • ping-timeout 10秒
  • ping-int 500ミリ秒

なので、drbd.confでこれらのパラメータを「設定していない」場合は問題ありません。

 

Hawk (HA Web Konsole) 0.4.1のリリース

Hawk、地味に(失礼)進化を続けています。
が、まだ0.4。
1.0になるのはいつのことやら。

今、Hawkにできることはこちら。

  • クラスタの状態監視
  • クラスタの操作(オンライン化/スタンバイ化/停止)
  • リソースの開始/停止/移動
  • リソースの作成/変更/削除
  • クラスタプロパティの変更
  • location(配置制約),colocation(同居制約),order(順序制約)の作成/変更/削除 ← 0.4.1からの新機能!

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

先月のあんどりゅーくんからはや一ヶ月。
第二回にしてすでにいっぱいいっぱいですが
今回は、4月のメーリングリストから下記の情報を抜粋してご紹介します。

  1. リリース情報
  2. 知恵袋

 

1. リリース情報

4月は下記のリリースが行われました。

 

1-1. Hawk 0.4.0

Hawk (HA Web Konsole) は Tim Serong@Novell が開発を担当しているGUIです。
てぃむが頑張って Wiki に書き込んでくれているので、このページを見ると大体どんなもんかわかります。

そもそも、Pacemakerで構築されたクラスタを管理するためのツールは、Hawk以外にも

  • コマンドラインツール
  • Python GUI
  • DRBD MC

などがあります。

コマンドラインツールの代表的なものとして、crm_standby, crm_resource, cibadmin などがあるわけですが
如何せんこの方々はオプションの指定が複雑で、かなり一見さんお断りな雰囲気を醸し出しておるわけですな。
で、もう少しなんとかしましょうというわけで Dejan Muhamedagic@Novell がもりもりつくっている
crm というコマンドラインツールもあるんですが、こちらはタブキー補完が使えるので、オプション名を忘れがちなお年寄りにも
優しい仕様となっております。
crm はかなりいい。お勧めです。
とは言っても、やっぱりGUIのほうがいいんだよねーというか、他の商用製品と比較したとき「GUIないの?」って
聞かれちゃうことも多いんですよね。
そこで、Python GUI、DRBD MC、Hawkの出番です。

・Python GUI
Pythonでできてます。
クラスタとクライアントの両方にPython GUIをインストールする必要があります。
Hawk視点でいうと「インストールが難しい!(by てぃむ)」というのが欠点なわけですが
最近インストールしてないからなあ、どうなんだろう。
結構昔からあるツールなので機能的にはそこそこてんこ盛りです。
日本語対応しています。

・DRBD MC
Javaでできてます。
クラスタに ssh サーバ、クライアントに DRBD MC をインストールする必要があります。
クラスタとクライアントは ssh で通信します。
どんなツールかっていうとこれはもう、「DRBD-MCを使って10分でクラスタを組もう(動画デモ)」を見ていただくしかないかと。
日本語対応しています。

・Hawk
Rubyでできてます。
クラスタにHawkをインストールし、クライアントはWebブラウザからクラスタに接続します。
クラスタとクライアントは http で通信します。
0.3系ではクラスタの状態表示やノードのスタンバイ/オンライン化、リソースの移動など
設定済みのクラスタに対する操作を実行することができていましたが
先日リリースされた0.4系ではクラスタの設定変更も可能となりました。
今後は、実際のクラスタには影響を与えずに擬似故障を再現する機能(シャドーCIB)も追加されるらしいです。
この機能って運用フェーズでは必要ないだろうけど、故障試験とか障害解析とかやってる人にとってはありがたいっすねー。
てぃむ曰く「インストール簡単!」とのことですが、rubygemsの依存関係がいっぱいあって結構うざいと思うけど。。。
SUSE用にはRPMが用意されていますが、他のディストリビューションはソースからビルドする必要があります。
Hawkはまだまだ発展途上なので、機能的には Python GUI、DRBD MCに負けていますが、
今後の開発で徐々に追いついていくと思われます。

どれがお勧めかというと、今の時点ではやはり DRBD MC がお勧め。
クライアントに余計なソフトウェアをインストールしたくないんだよねえ、とか
ssh 禁止されててさ、とかいう場合であれば、Hawk ですね。
ただし、Hawk はまだユーザ数が少ないので人柱的な香りがします。

第2回やってみようLinux-HA「HAの基本構成」

みなさんおはようございます。こんにちは。こんばんは。前回からまさに半年かかってますが遅ればせながら第2回です。前回はHAクラスタを組む上で必要な知識として、HA環境について考えてみましたが、今回はこれから初めてLinux-HA環境の構築に挑戦しようとしている読者の方に向けて、具体的に最も基本的なHA環境の構築方法を紹介したいと思います。

基本的なHA環境

Linux-HAを学習する上で基本となる構成は、サービスを提供する「アクティブサーバ」と、いざという時のために予備機として待機している「スタンバイサーバ」の2台で構成される「アクティブ/スタンバイ」型のHA環境です。基本的なサーバといっても考えることはたくさんあるので、ちょっとここに列挙してみます。

ハードウェア障害を何処まで想定するか
制御するソフトウェアは何が必要か(適用範囲)
監視するソフトウェアの監視項目
データの共有はどうするか
障害発生から、サービス切り替えまでの所要時間(希望時間)
予期せぬ障害により系が切り替わらなかったときの対処

最低でも以上の事は考慮した上で、HA環境を設計しなくてはなりません。上の項目について考慮した上で基本的なHA環境を設計するとなんとなく次のような感じになります。

電源落ちたらフェイルオーバーしよう
カーネルパニックとかマシンがおかしくなったらフェイルオーバーしよう
ソフトウェアはとりあえずPIDのチェックだけにしてPIDが認識できなかったら再起動しよう
ソフトウェアの再起動が不可能な状態だったらフェイルオーバーしよう
データの共有はDRBDを使ってネットワークミラーリングでやろう
障害発生からサービス切り替え実行までの時間は、5分くらいがいいな
とりあえず今回はサービスが切り替わらない程の問題が発生したら手動で対応しなくちゃいけないな

構成図としては…

こんな感じが基本的な所でしょうか。深く追求していくと、結構きりがないので、有る程度の所で落としどころを見つけて設計しないと…

障害に対して敏感すぎる構成

監視することがサーバに負荷をかけて障害を起こす

という、「健康のためなら死んでも良い」的な構成になってしまいます。よくあるのが、サーバ障害発生時のダウン時間を短くしようとしすぎて、少しでも負荷がかかるとそれに反応してフェイルオーバーしてしまう環境です。くれぐれも、Linux-HA自体が「障害点」になってしまわないように考慮して設計するようにしましょう。

とりあえず設定してみよう

前置きが長くなりましたが、具体的な設定をしてみましょう。今回の環境は前回の予告にも有るとおり以下の環境で構成します。リソースはUnboundだとデータを持たないのでApacheに変更します。

OS
CentOS5.5 x86_84

クラスタソフト
Heartbeat 3.0.4 / Pacemaker 1.0.10

データ同期
DRBD8.3.10

制御対象
仮想IP / Apache

監視用インターフェース
eth1 / . . . → Read More: 第2回やってみようLinux-HA「HAの基本構成」

別冊あんどりゅーくん(第1号)

というわけで「月刊あんどりゅーくん」に引き続き「別冊あんどりゅーくん」もはじめました。


前月分のメーリングリストから抜粋したおもしろ情報を
「月刊あんどりゅーくん」として発行していく予定ですが
月刊からもれたおもしろネタ、もしくは月刊のボリュームがあふれてきちゃったときは
暫定対処として「別冊あんどりゅーくん」を発行します。
月刊のほうは「ほぼ」月刊を目指しますが、別冊のほうが気が向いたときに発行します。
もう一生気が向かないかもしれません。


では、今回は下記2項目をご紹介します。
(1) バグ情報
(2) 知恵袋


(1) バグ情報

■ cloneの動作

Master/Slave、cloneについては、まだまだ動作がビミョーな部分もあるのですが、
Pacemaker 1.1 ではかなり動作が改善されています。
Pacemaker 1.0 へもできる限りバックポートしていますが、うまくバックポートできない場合もありますのでご了承ください。
3月分のメーリングリストでは次の事例が報告されていました。


例1) Pacemaker 1.1 で改善済み、そしてPacemaker 1.0 へのバックポート済みのパターン

crm サンプル

property stonith-enabled=”false”
primitive DummyVM1 ocf:pacemaker:Dummy \
op monitor interval=”60s” timeout=”60s” \
op start on-fail=”restart” interval=”0″ \
op stop on-fail=”ignore” interval=”0″ \
meta is-managed=”true” resource-stickiness=”1000″ migration-threshold=”2″
primitive DummyVM2 ocf:pacemaker:Dummy \
op monitor interval=”60s” timeout=”60s” \
op start on-fail=”restart” interval=”0″ \
op stop on-fail=”ignore” interval=”0″ \
meta is-managed=”true” resource-stickiness=”1000″ migration-threshold=”2″
primitive StorGr1 ocf:heartbeat:Dummy \
op monitor on-fail=”restart” interval=”60s” \
op start on-fail=”restart” interval=”0″ \
op stop on-fail=”ignore” interval=”0″ \
meta is-managed=”true” resource-stickiness=”1000″ migration-threshold=”2″
clone StorGr1-clone StorGr1 \
meta target-role=”Started” interleave=”true” ordered=”true”
location score-DummyVM1 DummyVM1 400: dl380g5c
location score-DummyVM2 DummyVM2 400: dl380g5d
order start-DummyVM1-after-StorGr1-clone inf: StorGr1-clone DummyVM1
order start-DummyVM2-after-StorGr1-clone inf: StorGr1-clone DummyVM2

なんか resource-stickiness とか migration-threshold とかの設定がこだわってんなあという感じですが
メーリングリストからほぼコピペです。
STONITH設定してねぇぞごるぁと怒られるのがめんどかったので「property stonith-enabled=”false”」は
追加で設定しています。でもやっぱりタイムアウト短ぇぞごるぁとは怒られるけどね。


というわけで、リソースを起動させます。
# crm configure load update sample.crm

# crm_mon -i1
============
Last updated: Tue Mar 29 17:06:14 2011
Stack: Heartbeat
Current DC: dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff) – partition with quorum
Version: 1.0.10-47037ab663d7 stable-1.0 tip
2 Nodes configured, unknown expected votes
3 Resources configured.
============
Online: [ dl380g5c dl380g5d ]
DummyVM1 (ocf::pacemaker:Dummy): Started dl380g5c
DummyVM2 (ocf::pacemaker:Dummy): Started dl380g5d
Clone Set: StorGr1-clone
Started: [ dl380g5c dl380g5d ]


メーリングリストへの投稿者曰く
DummyVM1 and DummyVM2 were both started on node goat1.( goat1 は dl380g5c に読み替え)
ということなんですが、そうかあ?という気が。たぶん上記の配置で正しいと思うんですよね。

次にdl380g5d で Pacemaker を停止しました。

# service heartbeat stop

# crm_mon -i1
============
Last updated: Tue Mar 29 17:06:48 2011
Stack: Heartbeat
Current DC: dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff) – partition with quorum
Version: 1.0.10-47037ab663d7 stable-1.0 tip
2 Nodes configured, unknown expected votes
3 Resources configured.
============
Online: [ dl380g5c dl380g5d ]
DummyVM1 (ocf::pacemaker:Dummy): Started dl380g5c
DummyVM2 (ocf::pacemaker:Dummy): Started dl380g5c ← ★ フェイルオーバ
Clone Set: StorGr1-clone
Started: [ dl380g5c ]
Stopped: [ StorGr1:1 ]

投稿者によると、DummyVM2 がフェイルオーバできなかったらしいんですが
あんどりゅーくん曰く、1.1.5 だとフェイルオーバできるはずとのこと。(投稿者の環境は 1.1.2)
1.0.11でも無事フェイルオーバできていることを確認しましたので、今回はめでたしめでたし。


例2) Pacemaker 1.1 で改善済み、だけどPacemaker 1.0 へのバックポートが厳しいパターン

crm サンプル
primitive ClusterIP ocf:heartbeat:IPaddr2 \
params ip=”192.168.101.121″ nic=”bond0″ cidr_netmask=”24″ clusterip_hash=”sourceip” \
op monitor interval=”30s”
primitive HttpProxy ocf:pacemaker:Dummy \
op monitor interval=”60s” timeout=”60s” \
op start on-fail=”restart” interval=”0″ \
op stop on-fail=”ignore” interval=”0″ \
clone HttpProxyClone HttpProxy
clone ProxyIP ClusterIP \
meta globally-unique=”true” clone-max=”2″ clone-node-max=”2″
colocation HttpProxy-with-ClusterIP inf: HttpProxy ProxyIP
order HttpProxyClone-after-ProxyIP inf: ProxyIP HttpProxy
property $id=”cib-bootstrap-options” \
cluster-infrastructure=”openais” \
expected-quorum-votes=”2″ \
stonith-enabled=”false” \
no-quorum-policy=”ignore”

HttpProxy に設定されたリソースは メーリングリストの構成では apache だったんですけどDummy に差し替えました。


リソースを起動させます。
# crm configure load update sample.crm

# crm_mon -i1
============
Last updated: Tue Mar 29 17:34:52 2011
Stack: Heartbeat
Current DC: dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff) – partition with quorum
Version: 1.0.10-47037ab663d7 stable-1.0 tip
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Online: [ dl380g5c dl380g5d ]
HttpProxy (ocf::pacemaker:Dummy): Started dl380g5c
Clone Set: ProxyIP (unique)
ClusterIP:0 (ocf::heartbeat:IPaddr2): Started dl380g5c ← ★ それぞれのノードに
ClusterIP:1 (ocf::heartbeat:IPaddr2): Started dl380g5d ← ★ 分散してます


片方のノードをスタンバイ化します。
# crm node standby dl380g5d

# crm_mon -i1
============
Last updated: Tue Mar 29 17:38:13 2011
Stack: Heartbeat
Current DC: dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff) – partition with quorum
Version: 1.0.10-47037ab663d7 stable-1.0 tip
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Node dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff): standby
Online: [ dl380g5c ]
HttpProxy (ocf::pacemaker:Dummy): Started dl380g5c
Clone Set: ProxyIP (unique)
ClusterIP:0 (ocf::heartbeat:IPaddr2): Started dl380g5c
ClusterIP:1 (ocf::heartbeat:IPaddr2): Started dl380g5c ← ★ フェイルオーバ


スタンバイ化したノードをオンラインに戻します。
# crm node online dl380g5d

# crm_mon -i1
============
Last updated: Tue Mar 29 17:38:45 2011
Stack: Heartbeat
Current DC: dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff) – partition with quorum
Version: 1.0.10-47037ab663d7 stable-1.0 tip
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Online: [ dl380g5c dl380g5d ]
HttpProxy (ocf::pacemaker:Dummy): Started dl380g5c
Clone Set: ProxyIP (unique)
ClusterIP:0 (ocf::heartbeat:IPaddr2): Started dl380g5c
ClusterIP:1 (ocf::heartbeat:IPaddr2): Started dl380g5c ← ★ 居座り。フェイルバックしない。

Pacemaker 1.1.5 だと居座り動作は発生せず、ちゃんともとのノードにフェイルバックできるようです。
しかし、このパッチはPacemaker 1.0.11 にはバックポートできませんでした。

メーリングリストでは居座りリソースをもとのノードの戻す裏技が紹介されていたのでどうしても困ったときは、参考にしてください。


裏技:clone-node-max を一時的に 1 に変更する(初期設定は 2)

# crm resource meta ProxyIP set clone-node-max 1

# crm_mon -i1
============
Last updated: Tue Mar 29 17:47:41 2011
Stack: Heartbeat
Current DC: dl380g5d (498d1812-c867-4534-a5aa-85aff30c8eff) – partition with quorum
Version: 1.0.10-47037ab663d7 stable-1.0 tip
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Online: [ dl380g5c dl380g5d ]
HttpProxy (ocf::pacemaker:Dummy): Started dl380g5c
Clone Set: ProxyIP (unique)
ClusterIP:0 (ocf::heartbeat:IPaddr2): Started dl380g5c
ClusterIP:1 (ocf::heartbeat:IPaddr2): Started dl380g5d ← ★ お!戻った!

設定は元に戻しておいたほうがよいです。
# crm resource meta ProxyIP set clone-node-max 2


では、お次は知恵袋。

STONITH plugin “eject” is out now!

Split Brain is the most awful situation in the cluster world,
. . . → Read More: STONITH plugin “eject” is out now!

新STONITHプラグイン eject をリリース!

皆さんPacemaker使っていますか~?

PacemakerのようなHAクラスタを構築する上で注意しないといけないのがスプリットブレインですよね。PacemakerにはIPMIのように電源を制御できるハードウェアがサーバに搭載されていると、それを使用してスプリットブレインを回避できますが、安いPCにはそんなハードウェア搭載されてないよ!っていう人も多いと思います。

そんな人向けに、特殊なハードウェアを必要としないSTONITHプラグイン “eject” を本日 2011年4月1日にリリースしました!!
本プラグインはスプリットブレイン時に、光学ドライブを開閉させ対向ノードの電源ボタンを押すことで、STONITHの機能を実現します。

本プラグインを使用するには以下の条件が必要になりますのでよーく読んでくださいね。

使用条件

電源ボタンが搭載されていて、カバー等で覆われていないこと
光学ドライブが搭載されていること

光学ドライブのモータ駆動力が弱いと使用できません

2台のPCを向かい合わせで設置できること
BIOSで電源ボタン長押しじゃなくても、PCを再起動もしくは電源OFFできるように設定できること
PCの設置位置を微妙に調整できる繊細さを持っていること

なお、ハードウェアの制約により以下のことは実現できませんのでご注意。

制約

電源OFF、再起動、電源ONを使い分けることはできません
動作結果の確認はできません

ejectできればかならずSTONITHが成功したとみなします

フェイルオーバ後、PCの位置を調整し直す必要があります

インストール方法

インストール方法はいたって簡単。ダウンロードした”eject“を展開後、以下のディレクトリに配置するだけです。

32bit環境の場合

/usr/lib/stonith/plugins/external/

64bit環境の場合

/usr/lib64/stonith/plugins/external/

ファイルのパーミッションは755(rwxr-xr-x)を設定してください、

本プラグインで必要なパラメータは “hostname”のみです。対向ノードのホスト名を設定してください。

本日は2011年4月1日です (^ ^)
使用は自己責任でお願いします。動作報告はメーリングリストまでお願いします。

参考資料

エアコンをリモート操作する仕組みを作った
遠隔操作でハムスターを暑さから救おう!2.0

Presented by eject . . . → Read More: 新STONITHプラグイン eject をリリース!

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

暖かくなってきたので「月刊あんどりゅーくん」はじめました。


Linux-HA 関連のメーリングリスト、リポジトリの更新情報を日々ストーキングしつつ
これは!というおもしろネタをご紹介いたします。
まずは、ほぼ月一更新を目指します。
寒くなったら冬眠します。
ちなみに中の人は絶賛募集中です。
現在、ボットが某情報収集コードに従って作戦実行中であります。


で、そもそも、「あんどりゅーくん」とはなんぞや?
「あんどりゅーくん」とは、Pacemaker の開発者 Andrew Beekhof(Red Hat) のことです。
Heartbeat から Pacemaker が飛び出しちゃったよわっしょい!の火の元だったりとか
メーリングリストの回答があまりにもそっけないとかで
ちょっと付き合いづらい人なのかなあと思っていましたが
実際お会いしてみると意外にお茶目な方でした(右斜め上参照)。


なお、PacemakerでHA環境を構築するためには、他にも必要なコンポーネントがいくつかありますが
それぞれの主要メンバはこちら。

  • Clueter Resource Agents/Reusable Cluster Components

Dejan Muhamedagic(Novell) … メーリングリストの回答が超やさしい。唯一の癒し系。
Florian Haas(Linbit) … たまに日本に来てる。すごい親切なんやけどマシンガントークは勘弁な。
Lars Ellenberg(Linbit)

  • Heartbeat

上に同じ。一応、Linbitメインな感じ。

  • Corosync

Steven Dake(Red Hat) … 声ちっさい。

  • Python GUI

Yan Gao(Novell)

  • Hawk(HA Web Konsole)

Tim Serong(Novell) … 会ったことはあるというか見たことある。けどどんな人かよく覚えていない。。。

  • DRBD MC

Philipp Reisner(Linbit)

  • 上記の荒ぶるメンバをたばねつつ、HAの未来を占う人。

Lars Marowsky-Bree(Novell) … LMB。キホン黒づくめ。


LMBとFlorianの議論が熱くなりすぎて周りがドン引き、そこにAndrewが「もういいじゃーん」てな感じで
仲介に入るイメージで大体あってます。

Lars,Yan,Philippはお会いしたことないのでノーコメント。
あれ?Dejanも会ったことないけど。。。まあよかたい。


以上がいわゆる本家な方々です。
日本サイドでは、ksk_haさんがPacemakerのバックポートなどを担当しています。

あとですね、セミナーや勉強会でたまにご質問をいただくのですが
Pacemakerの応援キャラクター、かなちゃん、かよちゃん、ぺーちゃん、ころちゃんは本家公認です!
2010年11月にボストンで開催された「Linux Plumber Conference」で
minky0さんから上記主要メンバにクリアファイルをお渡ししていただいています。

最近、デビューしたドロシーちゃんとビアンカちゃんはDRBDの応援キャラですが
こちらはLinbit公認なのかどうかボットにはよくわかりません。

DRBDのおもしろネタについては、ttkzwさんが「月刊ふろーりあんくんはやりたいなぁといつも思いつつ。」
とつぶやいていらっしゃるので、もう少し暖かくなったら「月刊ふろーりあんくん」もはじまるのではないかと思われます。


では、いよいよ本題です。


今回は下記2項目をご紹介します。
(1) リリース/アナウンス関連
(2) バージョン互換情報


OSごとコピーしてLinux-HA環境作りTai!

ネタが古くてすみません橘べるちぇです。

今回は、各所でちらほら出ているもので、仮想環境なんかでLinux-HAを組むときに、稼働系1ノードをとりあえずインストールして、それをコピーして待機系にしたいなんて話をしてみようと思います。

目的

仮想環境で1ノード作ってそのディスクイメージをコピーしてHA化したい!
がんがん金太郎飴方式にノードを増やせるようにしたい!
OSのインストールは最近すぐ終わるようになったけどやっぱりめんどい!
UUID重複して怒られちゃったのどうやって対処したらいいの!?対象方法知りたい!
黒髪ロングストレート最高!

以上のことを実現する方法をちょっと試してみたので今回ここでご紹介します。

動作環境

OS : CentOS5.5
Heartbeat3.0.4+Pacemaker1.0.10 (Linux-HA Japanのリポジトリ使って☆)
仮想環境(VMWare または VirtualBox 等)
NIC: eth0をサービス系、eth1を監視用として使う

今回はOSごとコピーするので、ディスクイメージを簡単にコピーできる仮想環境でやります。今回私はVirtualBoxの仮想アプライアンスのエクスポート・インポート機能を使ってみたかったのでそれでやりました。

稼働系のインストール

説明することはございませんw Linux-HA Japanで公開されているリポジトリで簡単にインストールしちゃってください。

新谷良子ちゃんの声をききながらDRBD-MCでインストールしてもOKです。オススメです。

待機系の準備

VMWareだと.vmdkファイルをコピー、VirtualBoxだと仮想アプライアンスとしてエクスポートしてインポートしたりして稼働系と同じものを作ります。

同じ環境が起動したら、ホスト名とIPアドレスだけ変更します。

▼変更するファイル

/etc/sysconfig/network
/etc/sysconfig/network-script/ifcfg-eth1

networkはホスト名のところと、ifcfg-eth1はIPアドレスのところを変えてください。

変更ができたら再起動して先ほどの稼働系のOSも一緒に起動しちゃいます。起動できたらPINGなりでネットワークが疎通しているかどうかの確認をしてください。オチとしては仮想環境の設定ミスっててPINGが通らなくておかしくなっていることが多いです。

ぶつけてみる

はい。じゃここまでできたら、Heartbeatを両ノードで起動してぶつけてみましょう(笑)

事象を確認することって重要ですよね。ぶつかるとどういう症状になって、どういうログが出るかを確認しておくと今後の役に立つと思います。すんごい沢山ログが吐かれるので覚悟してください。

……

はい。ぶつかって後から起動したほうまたは両ノードが再起動されちゃいましたね。

これはこのクラスター環境が保有しているUUIDが同一だからです。ホスト名は違う、でもUUIDは一緒…。Heartbeatは下のような会話をします。

HA1のHeartbeat:「おーおー、HA2やんけ。これからなかよくしてなー。携帯電話の番号(UUID)交換しようや」

HA2のHeartbeat:「いやーHA2さんどうもです。こちらこそよろしくなのですよ。あ、これボクの携帯(UUID)」

HA1のHeartbeat:「あ?おまえこれうちの携帯番号やん。」

HA2のHeartbeat:「え?マジこれボクの携帯番号じゃん」

HA1のHeartbeat:「じゃんって言うなや。」(ログの出力)

HA2のHeartbeat:「いや関西弁とか無理なんですけど」(ログの出力)

HA1のHeartbeat:「わしが先輩や、その番号はわしのだー。氏ねやボケが」(再起動命令)

HA2のHeartbeat:「そ、そんな…」(再起動)

簡単に言うとこんな感じです。

じゃ、HA2のHeartbeat君の電話番号(UUID)を変えればいいということになりますね。

UUIDの生成

これ結構聞かれていたので、橘べるちぇ的やりかたでご紹介します。Heartbeatのソースを眺めていたら普通にUUID作ってるだけっぽいので、uuidgen使いますw

[root@ha2 . . . → Read More: OSごとコピーしてLinux-HA環境作りTai!

DRBD-MCを使って10分でクラスタを組もう(動画デモ)

DRBD-MCと言うGUIツールがあります。

※参考:

Linux-HAをGUIで管理「DRBD Management Console」

これを使って、サーバー2台でDRBD+Pacemaker クラスタを実際に10分と少しで、構築してみました。

動画は、ころちゃんが案内してくれますよ。

画像が小さいと思われる場合、こちらで:HDなので、文字もきちんとみれます。

http://www.youtube.com/watch?v=FXgTBjkR9vA

デモは、仮想環境上で実施していますが、だいたい、こんな構成です。

OS:CentOS5.5 最新版

DISK:40GB  事前に、20GBのroot、4GBのSWAPと、16GBの空白ボリューム

(FDISKを忘れずに)

NIC:3ポート (うち2ポートはインターコネクト用)

DRBD-MC  0.8.12  (http://oss.linbit.com/drbd-mc/ よりダウンロードしてください)

Oracle Java およびそれの動作する環境(本デモでは、Windows7上で実施しています)

本家Linbitの構築デモ(英語) Using DRBDMC . . . → Read More: DRBD-MCを使って10分でクラスタを組もう(動画デモ)

5 / 6« First...23456