Page 3 of 41234

STONITH plugin “eject” is out now!

Split Brain is the most awful situation in the cluster world,
and it’s recommended to prepare a hardware management board and setup the STONITH plugin.
But some cheep machine might not have such an expensive board…
So, good news for such users!
STONITH plugin “eject” is out now!
This plugin doesn’t need special devices.
It just needs [...] . . . → 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 [...] . . . → Read More: 月刊あんどりゅーくん(4月号)

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 ~]# uuidgen
036054e3-69b5-472f-852e-4df2047fb27c

UUIDの登録
HA2に新しいUUIDを登録します。これはちゃんとコマンドが用意されているので、以下のコマンドで登録してね。
UUIDはさっき生成したやつをコピペが気合いで写してください。ラップスキャンとかしないでいいです。

[root@ha2 ~]# crm_uuid -w 036054e3-69b5-472f-852e-4df2047fb27c

再度接続
違う電話番号を手に入れたHA2のHeartbeat君はHA1のHeartbeat君と仲良くできるでしょうか。楽しみですね。
両ノードでHeartbeatを起動してcrm_monを監視していましょう。

HA1のHeartbeat:「またきよったんか」
HA2のHeartbeat:「マジ携帯番号(UUID)マジGETしてきましたマジセンパイ!どうっすか?」
HA1のHeartbeat:「マジが多いんだよマジがよぅ。お、ええ番号やん。」(UUID認識中)
HA2のHeartbeat:「これからよろしくッス!センパイぇ」(接続)
HA1のHeartbeat:「わーったから。もう入れや」(クラスタノード参加)
HA2のHeartbeat:「あざす!」(クラスタ情報の同期完了)
 
めでたく仲良く接続できました。
いろいろ失敗したりしていると、UUIDがたくさん登録されちゃったりする場合がありますが、この場合以下のようにオンラインのホスト名とオフラインのホスト名が出てきたりします。
こうなったらcrmのconfigureモードからeditでいらなくなったノードを消してあげましょう。
crmのnodeモードではホスト名が一緒で消せないので注意してね!

============
Last updated: Tue Feb 1 14:31:00 2011
Stack: Heartbeat
Current DC: ha2 (174fdb94-a218-42b4-b3bf-3971d5658a50) – partition with quorum
Version: 1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b
3 Nodes configured, unknown expected votes
0 Resources configured.
============

Node ha1 (95030479-e34d-4ed8-954e-3d4398cc10af): UNCLEAN (offline)
Online: [ ha2 ha1 ]

Migration summary:
* Node ha2:
* Node ha1:

こんな感じ。
で、こんな感じで消すw

node $id=”174fdb94-a218-42b4-b3bf-3971d5658a50″ [...] . . . → 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 to create a DRBD/Pacemaker cluster

翻訳協力 : 伊藤 正宏 (スタジオブックマーク)
. . . → Read More: DRBD-MCを使って10分でクラスタを組もう(動画デモ)

最新のDRBDを使ってみなイカ?

橘べるちぇです。こんにちわ。
この度、DRBD8.3.10rc1が公開されていたので、ソースからコンパイルして使ってみようと思い立ち、そういえばDRBDのコンパイル方法とか記事が無いなぁ…と思ったのでここに公開することにいたしました。
みなさんも、最新のDRBDを使ってみましょう。
あ、ちなみに今回のこの記事ではRPMを作ります。なので開発環境用意してRPM作ってそれをもって別のシステムにインストールするなんていうような感じでやってみてください。

動作環境
もうお約束のCentOS5.5(final)の32bit版を使います。(仮想環境でやったので32bit版なの許してください。)DRBDのバージョンはLINBIT社から公開されている、8.3.10rc1を使います。
仮想環境は、VirtualBoxを使っています。構成としては開発環境1台、ミラーリング環境をインストールする2台の計3台にCentOS5.5をインストールしてためしてみました。

コンパイル環境を整える
開発環境に、コンパイルに必要な環境をインストールします。
# yum install rpm-build gcc libtool automake autoconf kernel-devel
# yum install redhat-rpm-config
# yum install flex libxslt
ここで注意する点は、kernel-develのバージョンが動いてるKernelのバージョンと違う場合、コンパイルされたカーネルモジュールはKernel-develのバージョンになってしまうので、激しく注意してください。もし、バージョンが違う場合は、OS側をアップデートするか、古いバージョンのKernel-Develパッケージを入手してインストールしてください。
パッケージのダウンロードと解凍
LINBITのホームページからソースパッケージをダウンロードしてきます。OSS版のパッケージ(ソース)はイカのアドレスにあるので、最新版をDLしてみてください。
→ http://oss.linbit.com/drbd/
tar.gzのパッケージをダウンロードしてきたら、作業ディレクトリにソースファイルを解凍します。今回は私の個人的な流儀で「/usr/local/src」以下でやろうと思います。
# cd /usr/local/src
# wget http://oss.linbit.com/drbd/8.3/drbd-8.3.10rc1.tar.gz
# tar xzf drbd-8.3.10rc1.tar.gz
# cd drbd-8.3.10rc1
# ls
一杯表示される

いよいよコンパイルしてみる
ここでできたらコンパイルしてみましょう。コンパイルするときにちょっと環境変数を設定する必要があるので、以下のようにKVER(カーネルバージョン)とKDIR(カーネルヘッダの場所)を指定します。
# KVER=2.6.18-194.26.1
# KDIR=/usr/src/redhat/BUILD/ovzkernel-2.6.18/linux-2.6.18.
# export KVER KDIR

ではちょっとビルドしてみましょうかね。Makeはrpm(DRBDの本体ツール群)とkm-rpm(カーネルモジュール)の2つがあります。
# ./configure
# make rpm
# make km-rpm

できあがり
Makeが終わると「/usr/src/redhat/RPMS/i686」にRPMパッケージができてますので、これを用意してあったマシンにインストールしてみましょう。いろいろツール群が個別にRPMパッケージになっているので、全部インストールしちゃってください。
# cd /usr/src/redhat/RPMS/i686
# rpm -ivh *

手抜きな感じですが、これでなんとかなると思います。
質問やご要望は、メーリングリストに投げてください☆
. . . → Read More: 最新のDRBDを使ってみなイカ?

OSC2010 Fukuoka セミナー資料公開

Linux-HA Japan がとうとう九州に上陸!
12月11日(土) 福岡市で オープンソースカンファレンス2010 Fukuoka が開催され、この日は前年を大きく上回る多数の来場者で賑わいました。
Linux-HA Japan では、いつもの如く展示ブースの開設と 「痛い目にあってわかるHAクラスタのありがたさ~Pacemakerで心に安らぎを~」 という題目でセミナーを行ってきました。
セミナー参加者は、HeartbeatまたはPacemakerのどちらかを知っている人がほとんどだったので、次回からは初心者向けではなくよりテクニカルな内容でセミナーをするべきだと感じましたね。興味を持って聞いてくださった方ありがとうございました。
この時のプレゼンテーション資料を公開しますので、参考にしていただければと思います。

プレゼンテーション資料

. . . → Read More: OSC2010 Fukuoka セミナー資料公開

OSC2010 Shimane セミナー資料公開

無事OSC 2010 Shimane を終えました。朝早くにもかかわらず、ご来場ありがとうございました。
早速セミナーのスライドを公開いたします。

2010/11/27  痛い目あってわかるHAクラスタのありがたさ

. . . → Read More: OSC2010 Shimane セミナー資料公開

Pacemaker で扱えるリソースの種類 (Primitive, Clone, Master/Slave)

Pacemakerでは現在、Primitive, Clone, Master/Slave という大きく分けて3つの種類のリソースを定義することができます。これらのリソースの違いについて簡単に説明します。

Primitive
まず、一番よく使われるのがこの Primitive リソースです。これは全てのリソース定義の基礎になります。
これは、通常のAct-Standby構成で用いるリソースで、どこか一カ所のノードで動くことができます。よって、クラスタ全体のある1ノードだけで動いていればよいリソースに使用し、リソースが故障すれば、他のノードにフェールオーバーさせることができます。データベースやメールサーバのようなものをHAクラスタリングする場合は通常このリソースを定義することになります。

Clone
Cloneリソース は、Primitive リソースを複数のノードで動作させたい場合に使用します。そのため定義方法は、まずPrimitive を定義し、それをClone化するという流れになります。
あるアプリケーションを複数のノードで動かしたい場合、Primitiveだけで実現しようとすると、動かしたいノード数分だけ定義する必要がありますが、Cloneの場合は1つのCloneリソースを定義するだけで動かすことができます。
代表的な使用例として、ネットワークの疎通監視に使用するpingd リソースエージェント(以下RA) があります。ネットワーク越しにサービスを提供するAct-Standby 構成において、ActのPrimitiveリソースが故障し、Standby ノードにフェールオーバーしても、Standby ノードのネットワークが切れていては意味がありません。こういった事態を避けるために、pingd RA を全てのノードで動作させ、サービスを提供していないノードでもネットワークを監視し、ネットワークが故障してしまった場合は、そのノードにサービスがフェールオーバーしないようにするのが通常の使い方です。
なお、RAの実装としては、Primitive, Clone に違いはないため、動作が保証されているかは別として、Primitive で定義できる RAはClone化できます。

Master/Slave
Master/Slave リソースは、Clone リソースをさらに発展させたもので、Cloneリソースで親子の関係があるリソースに使用します。定義方法は、まずPrimitive を定義し、それをMaster/Slave化するという流れになります。
代表的な使用例としては、データのレプリケーションに使用するDRBD用のRA があります。DRBDでは、PrimaryとSecondaryと呼ばれる状態があり、Primaryではデータの読み書き、SecondaryではPrimaryからレプリケーション用のデータを受信し、ディスクに書き込みます。そのため、DRBDは複数のノードで動いている必要があり、さらにPrimaryとSecondaryの状態を区別する必要が出てきます。これをPacemakerのMaster/Slave を使って実現しています。
なお、Master/Slave では、Primitive, Clone 用のRAに実装されている、start, stop というリソースの起動・停止操作に追加して、promote, demote という親に昇格、子どもに降格させる操作がRAに実装されている必要があるため、Primitive や Clone 用のRAをそのままMaster/Slave 化することはできません。

以上、簡単に3つのリソースの種類について説明しました。
具体的な定義方法は、動画デモ(part2の4分目) や過去のセミナ資料等を参考にしてみてください。
. . . → Read More: Pacemaker で扱えるリソースの種類 (Primitive, Clone, Master/Slave)

OSC2010 Tokyo/Fall セミナー資料公開

無事OSC 2010 Tokyo/Fall を終えました。ご来場ありがとうございました。
今回は多くの人にPacemakerをより知ってもらおうと、HAクラスタという地味な分野にもかかわらずPacemakerネタだけで2セッションも講演させていただきました。興味持って聞いてくださった方ありがとうございました。
早速ですが、オープンソースカンファレンス2010 Tokyo/Fall で行ったセミナーのスライドを公開いたします。

2010/09/10  Pacemakerを使いこなそう!~HAクラスタで止まらないサービスを~ (松尾 隆利)

スプリットブレイン・クォーラム・STONITH 等

2010/09/11  挑戦!Pacemakerで自由自在にHAクラスタリング(田中 崇幸)

. . . → Read More: OSC2010 Tokyo/Fall セミナー資料公開

Page 3 of 41234