« 2010年2月 | トップページ | 2010年7月 »

2010年6月29日 (火)

怖いものなんてなんにもない

1年9ヶ月、振り返ればアッという間だった。
キックオフからリリースまで2年超という大きなシステムの開発のほとんどに参加させてもらい、この4月にはなんとかリリースも迎えた。

学んだことがどんどん血肉となっていく感覚があった。胡乱な自分にげんなりすることもあった。転んでようやく分かったこともあった。

今日は僕なんかのために同じフロアで共に働く仲間たちのほとんどが集まってくれて(サッカーの日本対パラグアイ戦があるというのに!)、わいわいと楽しく飲んだ。

最後はみんなで円陣を組んで気勢をあげた。
ひととひとがつながって円を描くと、こんなにも大きくてあったかい空間ができるのかと、なんともいえない沸き立つ感覚があった。

現場の最後をこんなふうに迎えられて、僕は本当に嬉しい。

人生まだ途上。
感謝と向上心があれば、怖いものなんてなんにもない。

| | コメント (2) | トラックバック (0)

2010年6月26日 (土)

muninプラグインでソフトウェアraidを監視する

うちのサーバはRAID1(ミラーリング)で組んでるので、片方のHDDが落ちても安心です。
本当ですか?

cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[0]
      104320 blocks [2/1] [U_]
      
md1 : active raid1 sda3[1]
      243713984 blocks [2/1] [_U]
      
unused devices: <none>

嘘でした。超あぶなかった。

しかもこれを見ると片方のパーティションはセカンダリのHDDで、もう片方のパーティションはプライマリのHDDでしか動いていないようで、物理的なHDDとしてまともにデータが書き込まれているのは一台もない様子でした。

今もしどちらかのHDDが死んだら復旧できなかったところです。仲良くお互いに依存しあっていた番いのジュウシマツのように、失った伴侶の深い欠落感から立ち直れず、ただこんこんと、後を追うようにこの世を去ったことでしょう。

あぶなかった。

そういえば以前、再起動したらログインできなくて、コンソール接続からfsckで復旧させたことがあるのですが、たぶんそのときにraid構成がおかしくなってしまったのではないかと思いあたりました。


おそるおそる管理者宛のメールを覗いてみると、なんと1/30からmd1のプライマリHDDに対するミラーリングがとまっていて、5/6からmd0のセカンダリHDDに対するミラーリングがとまっていると、膨大なメールで管理者ユーザにお知らせしてくれていました。。

全然見てませんでした。

5/6といえば、だいたいfsckで復旧した時期だったかなと思い当たり、当時はどうしてもう片方のHDDから起動してくれないんだろうと戸惑ったのですが、そういうことだったのかと納得しました。
生きているプライマリHDDからいざ起動とようとしても、その時点ですでに3ヶ月以上片側のパーティションが更新されておらず、ファイルシステムとして矛盾したものになってしまっていたのでしょう。

あわててRAIDの再構築をおこないました。

sudo /sbin/mdadm -a /dev/md0 /dev/sda1
    mdadm: re-added /dev/sda1
cat /proc/mdstat
    Personalities : [raid1]
    md0 : active raid1 sda1[1] sdb1[0]
          104320 blocks [2/2] [UU]
    
    md1 : active raid1 sda3[1]
          243713984 blocks [2/1] [_U]
    
    unused devices: <none>
sudo /sbin/mdadm -a /dev/md1 /dev/sdb2
    mdadm: re-added /dev/sdb2
cat /proc/mdstat
    Personalities : [raid1]
    md0 : active raid1 sda1[1] sdb1[0]
          104320 blocks [2/2] [UU]
    
    md1 : active raid1 sdb2[2] sda3[1]
          243713984 blocks [2/1] [_U]
          [==>..................]  recovery = 10.6% (25936128/243713984) finish=62.8min speed=57724K/sec
    
    unused devices: <none>

※ 本当はmd1のsda3と対にさせるのはsdb3なのですが、fsckのときの影響(?)で本来のセクタ領域が別のデバイスIDに入れ替えられてしまっていたようで、sdb2を指定しなければなりませんでしたが話がそれるので省略します。


で、再構築しているあいだに、また次に同じようなことがあったら怖いので、muninの監視プラグインにraidも追加することにしました。この場合の普通の解は「メールをちゃんと見よう」かもしれませんが、やっぱりどうせならGUIでモニタリングしたい、というのが欲というものです。転んだついでになにか掴んで立ち上がってこそ、ひとは向上していくのです。

・muninプラグイン raid
1. インストール

wget "http://exchange.munin-monitoring.org/plugins/raid/version/2/download" -O ~/raid
sudo chown root:root /usr/local/munin/lib/plugins/raid
sudo chmod a+x /usr/local/munin/lib/plugins/raid
sudo ln -s /usr/local/munin/lib/plugins/raid /etc/munin/plugins/raid

2. 動作確認
コマンドで確認

/etc/munin/plugins/raid
	Name "main::rcpt" used only once: possible typo at /etc/munin/plugins/raid line 71.
	/etc/munin/plugins/raid
	md0.value 100
	md0_rebuild.value 100
	mdadm: cannot open /dev/md1: Permission denied
	md1.value 50
	md1_rebuild.value 0

Name "main::rcpt" used only once: possible typo at /etc/munin/plugins/raid line 71.の対応

vi /usr/local/munin/lib/plugins/raid
    # line71
    $rcpt = 0;
    ↓
    $rpct = 0;

# 利用したのが6/18(1週間くらい前)にあがったばかりのバージョンだったのですが、まだチェックが甘いのでしょうか、変数名にタイポがありました。

mdadm: cannot open /dev/md1: Permission deniedの対応

sudo vi /etc/munin/plugin-conf.d/plugins.conf
    [raid]
    user root

コマンドで再確認

sudo /etc/munin/plugins/raid
	md0.value 100
	md0_rebuild.value 100
	md1.value 50
	md1_rebuild.value 59

munin監視ノードの再起動

sudo /etc/init.d/munin-node.rc restart

munin監視サーバから確認

telnet localhost 4949
    fetch raid localhost
    md0.value 100
    md0_rebuild.value 100
    md1.value 50
    md1_rebuild.value 59
    quit

3. GUIでモニタリング
Munin_raid_20100626

# 再構築途中

がパーティション1(md0)、がパーティション2(md1)。はセカンダリHDDのRAIDがまだ再構築されていないので1/2台の50%ラインを指しています。が再構築の進捗率です。開始から1時間で70%完了。おそらくこれが100%までいったら赤のラインも2/2台で100%へ移動するはずです。

ところで凡例だとmd0がじゃなくてになってますね。なんかこのバージョンは変数のタイポ以外にも間違った変数をどっかであててるところがあるのでは?、といぶかしみ中。


ともあれ、muninみるのがさらに楽しくなりました。

| | コメント (0) | トラックバック (0)

« 2010年2月 | トップページ | 2010年7月 »