2008年4月9日水曜日

レンタルサーバの悲劇

ユーザの増減とメールアドレス

レンタルサーバでユーザを作ったり消したりしていると、何故かユーザが消えない(パスワードファイル上では
消えているが、ユーザ名でlocateかけると
ホームディレクトリ等々が残っているように見える)現象に遭遇した。
ついでに、何人かに同報でメールを送ると、「新規で作ったアドレスのメールサーバが100%になる」という、全
く以て不可解な現象もくっついてきた。
試しにユーザをブラウザベースのコンパネ上から消してみると、至って普通に消えるのだけれども、再度作ると
メールボックスは100%。
容量を2倍に増やすと、使用量は50%になるが、再度同報のメールを送ると100%になる。
容量を1/2にすると、使用量は200%(当たり前)になるが、その「容量を使っているファイルが見えない」。
SSH接続のコンソール上からユーザ追加/削除をしてみると、削除時になにやら/var/tmp内のものがunknownと
なって削除スキップしていた。
しかもよりにもよってclamav-とか付いているし。
これによって出た結論は
「無くても良いところにあるファイルを片っ端から消す」。

/tmpの中や、/var/tmpの中身を兎に角消しまくった。
そんなこんなで、最後にユーザを作ったら、何とか普通の挙動をしているようだ。
多分サーバが不用意に落ちたときに作業していたものが残っていたのだろう。

コンソールが使えるサーバだったから良かったものの、コンソールが使えなければと思えば少し焦る。
そもそも根本的な原因が分からないので、非常に怖い。
ねえ、rapidsiteさん。
高い金出してるんだから安定させましょうよ。今でも断続的にサーバ、落ちてますよ。
99.9%の稼働率って、こんなものですか?

9650SEを挿してLINUXをインストールすると、ファーストブートから「Disk read error」と吐いて固まる

9650SEを使ってRAIDを構築し、ファイルサーバを制作しようとマシンを組んでいたのだけれども、
GRUBがエラーを吐いておかしなことになっていた。今回はその話。

3ware 9650SEを挿し、centcentos5を入れたまではよかったのだけれども、再起動させると
どうしても

root(hd1,0)
Error 25:Disk read error

と吐いて止まる。

このエラーが出るときは、大抵当該HDDが御臨終で読めません、という類なのだけれども、
エラーチェックをしても何も出て来ないし、そもそも(何でエラー出すのかさっぱりわからなかったので)
centos5を何度も入れており、壊れている筈が無い。

此処で嵌ったのが、当初はRAIDで作った領域にインストールしていたので、それが壊れているものだと思い込ん
でいたこと。
後々普通にSATAにインストールしている時も,その思い込みから抜け出せなかった。

最終的なトラブルシュート---------------
とりあえずあらゆるカードを取り外してcentos5をインストール
→インストール成功 ブート成功

LANカードを挿してインストール
→インストール成功 ブート成功

3ware 9650SE RAIDカードを挿してインストール
→インストール成功 ブート成功(これではまった。HDDを付けていない状態でinstallすると大丈夫なようだ
が、HDDを付けると下記になる)

LANカード、3ware 9650SE RAIDカード+RAID用HDDを挿してインストール
→インストール成功 ブート失敗
---------------

この状況から察するに、どうやらRAID用のHDDを付けてインストール作業をすると、インストール時のドライブ
構成とは別物で認識するらしい。
エラーを吐いて止まる際、起動のコンフィグレーションができるので、

試しに
root(hd1,0)

root(hd0,0)
としてbootさせると、すんなりbootしてしまった。
(というか、むしろどこに何を入れたのか覚えて置けよという話な気がしないでもないのだが・・・)。

GRUBの設定を書き換える
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/313grubsetting.html
のもありかなあと思ったのだけれども、それはそれで気持ち悪かったので、

centos5のインストール時に、詳細なGRUBの設定で、
MBRではなくファーストパーティションに書き込むようにすると、普通に起動した。

ということで、同じ症状が出た場合の対処法は「GRUBをMBRに書き込まず、ブートドライブのファーストパー
ティションに書き込むことで回避できる。

まさかGRUBで止まるとは思っていなかったので、この問題で散々悩み抜いてしまった。
手間を惜しまず、トラブルシュートの時間を惜しまないようにしなければならない(相対的に解決までの時間が
短くなる)。