サーバのハードウェアを入れ替えました

▶ in ひとりごと posted 2006.01.03 Tuesday / 10:37

昨夜、まあぼうねっとのサービスを提供しているサーバの入れ替えをしました。


今まで使っていたハードウェアはCPUがセレロン800MHzのマシンだったのですが、CGI等のスクリプトを動作させると心持重かったので、足元に転がっていたペンティアム4の1.7GHzが乗っかったマシンをサーバとして利用する事にしました。本来であれば、同一環境を別で構築しておいて動作検証が取れた時点で物理的に入れ替えるという作業を取ればサービス停止時間を最小限にとどめる事ができてベストなのでしょうが、同一環境なんて何かにメモってる訳でもないのにそう簡単に作れる訳ありません。しかもWindows2000 ServerのIIS5のメタファイルはバックアップを取れても、他の構成のIIS5には流し込む事ができないので手設定でいじるしかありません。しかもここは個人運営のWebサイトです。どうせ大して見てないだろう(笑)とたかをくくり、少しでものちのちの構成が楽に出来る方法を取りました。ちなみにこのサーバ、Web・メール・内向きのDNS・DHCPと何でも屋さんです。本稼動のサーバがいない間は音楽を聴くのに使っているこれも足元に転がっているTlhinkPad 570にApache2を乗せて「保守中…」と表示させておきました。メールサーバは予備がいないので放置しておきました。どうせ数時間後にリトライがくるでしょう。
当初考えたのは、HDDをソフトウェアRAID1で構成しているのでミラーリングを一旦解除して、新しいサーバに取り付けるだけで運がよければ動作するのではないかという安直な発想でした。確かにハードウェアの差こそあれ、i815とi850のドライバベースでの違いなんてそうそうあるものではありません(ほんまか?)アーキテクチャが違うわけでもCPUの数が変わるわけでもないのでカーネルの差し替えも必要なさそうだったので、まずはこの方法を試してみる事にしました。

早速、「コンピュータの管理」-「ディスクの管理」でミラーの解除を選択、一旦RAID1を解除しました。Windowsをシャットダウンし、早速ばらし始めました。旧稼動のサーバからHDDとCD-RWドライブ、電源を引っこ抜き、新稼動のサーバに組み込む訳ですが、いつもバックアップを取らないで勢いで作業する僕でも、さすがに全部飛んでしまうのは怖いので、まずはRAID1のディスク1(マスタはディスク0)を取り付け、そのままWindowsを起動しました。案の定、トラブル発生…。「仮想メモリが限界です」というダイアログが出てきてWindowsが起動しません。一旦、強制的にシャットダウンして次はセーフモードで起動してみたのですがやはり結果は同じ。「仮想メモリが限界です」と叱られてしまいました。その時に気づいたのですが、RAID1を解除した時点で本来ディスクをダイナミックディスクからベーシックディスクに降格させるべきだったのです。恐らく、Windowsがもとのディスク0にあるページファイルへのアクセスが出来ないのでこんなエラーを出してしまうのでしょう。しかし、時すでに遅し、もう後には引けません。こうなったらもうやっつけです。ハードウェア的には前回起動時に「仮想メモリが限界です」というエラーこそ出ましたが、GUIまで起動しているのでうまく動作しそうです。ならば、いっその事ディスク0の内容をこのディスクにコピーして動作させれば動くのではないかと考え、セカンダリのCD-RWについているIDEのコネクタを引っこ抜き、ディスク0を取り付けてFDDにNorton Ghost2003の起動ディスクを挿入し、電源を投入し、ディスク0からディスク1へのクローニングを試みました。Norton Ghost2003はWindowsのダイナミックディスクにも対応しているので問題なくディスクを認識しました。

クローニングは約10分で終了、ディスク0を取り外してFDDからディスクを抜いて再度起動、無事Windows2000 Serverが起動しました。が、プラグアンドプレイでドライバの再認識が始まりNICとVGAのドライバを要求されたのですが、当然HDD上にそんなもん、ある訳ありません。しかもDNSサーバが止まっているのでインターネットへ接続も出来ません。ルータとPCの設定を変えれば出来るのですが面倒だったので、メインのPCのHDDに入っていた古いバージョンのドライバをUSBメモリにコピーし、サーバに挿入しました。Windows2000以降はUSBメモリを標準ドライバで「ストレージクラス」として認識するのでこういう時に便利ですよね。あぁ、持ってて良かった。その後はチップセットドライバとATAドライバ(Intel Application Accelerator)を再インストールし、再起動して正常稼動を確認できました。ただ、NICのドライバを認識する際に、同一カードの2枚目として認識していたので、古い認識情報をレジストリから消去しました。この部分は読み取り専用のアクセス権が与えられているハイブで、regeditでは消去できない為、regedt32を利用しました。Windows XP以降はregeditとregedt32は統合されてるんでしたっけ。

無事、動作するようになったので最後にRAID1の再構築をしました。「コンピュータの管理」-「ディスクの管理」で現在の構成を確認、やはりディスク0はRAIDを解除した時点でベーシックディスクになっていたみたいで、現在のステータスはベーシックディスクと表示されていました。その下にディスク1、あとゾンビとなった旧ディスク1のダイナミックディスクの情報が「失敗」として表示されていました。まずはゾンビディスクの情報を削除、その後ディスク1のパーティション情報の削除、続いてディスク0をベーシックディスクからダイナミックディスクへの変換、最後にミラーの開始を選択し、RAIDの構築が始まり作業は終了、約3時間でミラーリングの構成が完了しました。

肝心のパフォーマンスですが、メールサーバは妙に速くなり動作は快適になりました。ただ、CGI等のスクリプトについては思った程は速くなりませんでした。とは言っても、2倍くらいは体感で高速になっているような気がします。この先はperlのチューニングか何かでなんとかならないか一度勉強する事にします。ちなみに、サービスの停止時間は2時間でした。商用サーバだったら間違いなく首切りものでしょうが、まあまあこんなものじゃないでしょうか。

- | -

PAGE TOP