SoftwareRAID 障害復旧 #2

またディスク障害が発生しました 😥

前回障害が発生してからまだ2ヶ月しか経っていません…。

前回交換したディスクとは別のディスクが壊れました。

[root@ns1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdc2[1] hda2[0]
      2096384 blocks [2/2] [UU]
 
md2 : active raid1 hdc3[1] hda3[2](F)
      75762432 blocks [2/1] [_U]
 
md0 : active raid1 hdc1[1] hda1[0]
      264960 blocks [2/2] [UU]
 
unused devices: <none>

壊れたディスクは /dev/hda、つまり1番目のディスクです。

復旧作業は基本的に前回と同じですが、違うところはディスクの物理的な接続を入れ替えるところです。

入れ替えと言っているのは、壊れたディスクは1番目のディスクですが、新しく交換するディスクはセカンダリの IDE に接続して、元々セカンダリ IDE に接続していたディスクをプライマリ IDE に接続します。

入れ替えをしなければならない理由は、1番目のディスクが壊れてしまったからです。
入れ替えをしないで OS を起動しようとすると、MBR が 1 本目のディスクの stage1 を読み込もうとしますが、交換したまっさらなディスクなので stage1 が存在しないので OS の起動に失敗してしまいます。

OS が起動できなければ復旧作業ができません :mrgreen:

ディスクを入れ替えてしまえば後は前回と同じ復旧作業をするだけです。 🙂

前回の記事を見ながら無事復旧できました 🙂

もう壊れないでほしいけど、この暑さじゃまた壊れてしまうかも 🙁

rsyncd.conf ディレクトリ除外

lsyncd でコンテンツの同期を行っていたところ大量のエラーが 😥

rsync error: some files could not be transferred (code 23) at main.c(892) [sender=2.6.8]

php のファイルアップロード処理で一時保存用のディレクトリを同期対象にしているのがエラーの原因と推測しました 💡

そこで、tmp ディレクトリを除外してみたところエラーが収まりました 🙂

ディレクトリの除外ではまったので設定をメモしておきます。

/home/hoge/syncdir/ が同期対象のディレクトリです。
その配下にある cms/tmp ディレクトリを除外します。

rsyncd.conf

[hoge]
        path=/home/hoge/syncdir/
        uid = hoge
        gid = hoge
        read only = false
        exclude from = /etc/rsyncd.exclude

そして/etc/rsyncd.exclude

- cms/tmp
- cms/tmp/*

いろいろ試行錯誤した結果この設定になりました。
これで今のところうまく除外できています。 :mrgreen:

lsyncd 便利ですね 😎