サーバのパーツを全交換しました(追記あり)
以前にこのエントリに記述したサーバ交換ですが、その後、1ヶ月くらいの稼動中に、突然ファイルシステムが崩壊(?)しました。ftpとsshを接続して操作中に、ふとデータベースが停止していることに気づいて調べると、データベースファイルが消えていました。理由がわからず、ディレクトリを見ていると、一部のファイルの日付と内容が、古いものに巻き戻っているのを発見。さらに色々なディレクトリを調べていると、そのうちにサーバからの応答がなくなりました。
なにが起きたのかさっぱりわからなかったのですが、原因がわからないとこの先困るので、それなりに思い当たる点を考えてみました。
- ハードウェアが対応していなかった
- もしそうなら、1ヶ月間も稼動できないはず。/var/dmesg を見てもおかしなエラーはありません。なので、これは考えづらい。
- ハードウェアが故障した
- トラブル後にチェックしたところ、全て正常のようです。
- 電源容量が足りなかった
- これはまるっきり無関係とは言い切れません。AC電源を84w出力の製品に変更したのですが、アイドル時こそ消費電力が少ないものの、フル稼働状態ではギリギリだったのかもしれません。しかし、可能性としては低いような。
- SSDのパーティショニングに失敗した
- SSDはブロック単位でアラインメントをあわせないと遅いので、fdiskでそのようにパーティションを作成した後にRAIDに参加させましたが、この過程でパーティションサイズとか何らかの間違いがあったなど。しかし、ハードもOSもLBAでアクセスするはずなので、ジオメトリ(シリンダ境界の無視)が障害になるとも考えづらい。
- resize2fsの操作やRAIDの再構成に失敗した
- ファイルシステムの壊れ方から見て、この可能性が一番高いように思えます。resize2fsの過程で何らかの操作を間違ったか、その後fsckでチェックをかけるときに、ぼーっとしてマウント状態にもかかわらず修復オプションを切らなかったとか。この可能性が最も高いように思います。
サーバが止まった時点では、これらの原因を特定することは出来なかったので、想定できる上記のトラブル要因を切り離して再構成することにしました。ハードウェアには、世代が古くCentOS5の運用で実績のあるLGA775マザーとCPUを使用、HDD*2のRAID1にファイルシステムをバックアップから戻し、再度サーバーを構成しました。sataコントローラは以前のサーバで使用していたPCIカードをそのまま使用、電源についてはstressで負荷を目いっぱい掛けた状態の最大消費電力が45w程度であることを確認してAC電源84wを使用、ファイルシステムにはパーティション拡大などの余計なことはしないことにしました。その結果、現在ようやく1ヶ月くらいの安定稼動が続いています。
自分でサーバを作ると、いざおかしくなったときに問題の切り分けが難しく、再稼動にも時間がかかるので、クリティカル業務に使用するサーバは、やはりメーカー量産品のほうが安心ではありますね。それほど大規模ではない企業やセクションにおいて、PCの操作が出来る人が自前でサーバを立てて運用するような話も聞きますが、こういう場合の負担やロスも、危機管理として予め考慮しておく必要があるでしょう。詳しい人が、業務命令や好きだからという理由でサーバの構築や運用を行ったとしても、その後にどれだけの負担があるかまでは、初期段階ではなかなか想像できないものですから、組織内での自作サーバ運用は、やっぱりお勧めできないですね。何とでも出来る人がいれば何とでもなるでしょうけれど、トラブル時の負担はかなり重いです。
--
以下が、昨年11月に構成したときの記事です。おそらくハードやOSの動作には問題が無いと思うので、再び構成を戻したいのですが、現状うまく動いているので、今の機器構成でいこうかと思います。※ちなみに、このときに交換したコンデンサが膨れた古いマザーは、コンデンサ交換をしたのですが、今となってはなかなか使い道が無いですね。一応、保守部品として保存することにしました。
--
秋の気配も深まったある夜、これまで使用していたサーバのファンから異音がしているのに気づきました。ファンがダメになってきているなと思いつつも暫く放置していたのですが、以前からsmartdが報告しているハードディスクのsmart値が気になっていたこともあって、サーバを開けてみることにしました。
どのファンだろうと思って調べたところ、電源ユニット(SeaSonic SS-300SFD Super Versatile Plus)のファンが壊れかけているようです。いったんサーバを停止してファンを交換しようと分解したところ、なんと・大きめの電解コンデンサ全部の頭がぽっこりしているのを発見。
こりゃ電源交換か、とにかく気づいてよかったわいと思いつつ、マザーボードを見ると…これまた、CPU脇の大きい電解コンデンサの頭が何本かぽっこりとしています。
危険を感じて、2台のRAID1構成のハードディスクの一つを外してバックアップを行った後に、なんと不良セクタ発生。
当ブログの過去のエントリを見ると、このサーバを立てたのが2008年の1月。ということは、4年半以上の間、ほぼ連続稼動していたわけで、ディスクのsmart値をみると、通電時間が43,000時間以上・ロード/アンロードサイクルは838万回を超えておりました。ある意味、どの部品も非常に良く持ったというべきでしょう。
そこで部品の全交換となるわけですが、こういう場合、通常はOSを新規インストールするのが常道だと思われます。が、なんとかそのままディスクの内容を生かして新しい構成に移行できないかと考えました(※新規インストールして4年以上にわたる環境構築の再現が非常に面倒だったことと、果たしてそれが出来るのか?という興味がありました)。
元のサーバーは、SiS 741GX チップセットにMobile Athlon XP 2100+を搭載したマザーに、PCIでSATA1のディスクを繋げていたという、今時ありえない古さを誇るマシンで、ディスクには、カーネルのアップデートを重ねたCentOS5.8が入っています。ということは、そこそこ新しいチップセットやCPUでも動く可能性がある。そこで、新規インストールも覚悟の上、どうせやるなら今年の夏に発売された最新のチップセットに現在のディスク内容をそのまま載せて使ってみようと考えました。
いきなり闇雲にパーツを買ってきて組み立てて、ディスクをつなげて起動させるのではなく、調査や検証も念のために行いました。検証には、ディスクをそのままVMware Playerに繋げてみたり、Intel LGA775のPCに繋げて動作させてみました。いずれもうまく動作したので、最新のCPU+チップセットでもいけそうだという勘が強くなりました。
いよいよパーツの選定と購入ですが、後継に選んだパーツ構成は、以下の通りです。
- CPU: Celeron G550
安価かつ必要十分なパワー - Mother: MSI B75MA-E33
最新のIvy Bridgeに対応する今夏にリリースされたチップセット。サーバに使うにもってこいといえる、無駄な機能が無い上に32bit PCI がネイティブで接続されている優れもの。安価なのにオール固体コンデンサの製品です。同価格帯のASRockのB75マザーと最後まで迷ったのですが、ASRockの方にはASmedia?外部SATA3が付いているなど、なんかごてごてした感じがありましたので、シンプルな方を選びました - Memory: ADATA DDR3 XPG Gaming series 4GBx2
別にオーバークロックするつもりも無いですが、安かったので購入 - SSD: ADATA SP900
ADATAのSSDを使ったことがなかったので、それだけを理由に購入 - Power supply: AC150-AP04AA
WIndows98の頃、電源の背面からぶしゅーと煙を吹いたことがありました。その記憶もあり、今回もコンデンサの劣化を目の当たりにしたので、固体コンデンサ+ハイブリッドアルミ電解コンデンサ(多分)を使用したこの電源に決定
途中は省いて、結論だけ申し上げますと、動作しました。と言っても、modprobe.confの書き換えとmkinitrdはじめ、調べたりテストしたり、RAIDを作り直したりSSDのalignmentを調整したりと、結構手間は掛かったのですが…基本的には、ディスクをほぼそのまま移動できたような感じです。
そして今回、これまた実験のような感じですが、SSDとHDDでソフトウェアRAID1を構成してみました。しかも、sda=SATA3(6.0Gbps)とsdb=SATA1(1.5Gbps)との組み合わせです。これ、予想通りというか、RAIDの再構築の様子を見ていると、やっぱり遅い方に足を引っ張られますね。RAIDメンバーからHDDを外してSSD単騎で起動すると、凄まじい速さで起動します。
ただ、RAID1では、読み出しには最初のメンバー(例えばsda)を使うという情報もあり、もしかしたら、現在の環境で読み出しは少し早いかもしれないです。体感が出来たわけではありませんが。
ワットチェッカーで電力使用量を計測して見たら、アイドルで23W。Sandy Bridge のセレロンは優秀ですね。予想以上に省電力な構成となりました。
ということで、何世代も前に構築したCentOS5環境を、そっくりそのまま最新のチップセットに持ってくることが出来ました。RHELのロードマップによれば、5シリーズは10年のサポート期間を設け、来年?にリリースされる5.9は、Sandy Bridgeへの更なる対応強化・Ivy Bridgeへの対応等を含むらしいです。