2011年3月6日日曜日

ハードディスクのコピー作業

ウェブサーバーのハードディスクのコピーを行いました。

深夜になって仕事を全て済ませてから作業を開始しました。

まず最初に現在使用しているハードディスクを IBM IntellStation M Pro から取り出しました。昨年8月から8ヶ月ほど使用していましたが写真のようにホコリが付着していました。このホコリもしっかり落としておきました。


これは新しい 2TB (左)のハードディスクと並べた今まで使用してきた 1TB (右)のハードディスクです。表面部分は写真のように同じもののように見えます。製品ラベルだけが見分ける頼りです。


そして裏側を観察してみるとプリント印刷基盤に違いがありました。新しい 2TB のハードディスクには表面から見える場所に電子部品がありませんでした。結構汚れるハードディスクなのでこうして表面に電子部品がないことは製品の信頼性向上に繋がるものと思われました。


この二つのハードディスクを HP dx6100ST へ接続してコピーの準備を行いました。写真はコピーの準備を済ませた時のものです。手前のハードディスクが新しい 2TB のハードディスクで後ろが今までの 1TB のハードディスクです。


この状態でマシンを立ち上げます。一応この状態でもウェブサーバーとして動作していることを確認した状態で再起動させます。そしてシングルユーザーモードで起動させました。

シングルユーザーモードで起動させることで必要最小限度の動作をするようになります。ウェブサーバーやメールサーバーとしての機能が動かなくなるのでコピー最中に内容が書き換わることがなく好都合でした。

なおコピーはいわゆるコピーコマンドでコピーするのではなく dump & restore (ダンプ&リストア)で行いました。これは再現性の高いハードディスクのコピー方法です。スライス毎に dump & restore を行うのですが、私は何度も dump & restore をすることを繰り替えしてきたので既にスクリプトを作っていて、このスクリプトで作業を進めました。

さて dump & restore の開始です。ハードディスクコピー専用のスクリプトを実行させました。写真はスクリプトを実行しているときにディスプレイ画面です。画面の上部には UFS2 フォーマットが実行された様子が残っています。そして下部には dump と restore が行われている様子が見えます。


開始時刻0時20分 > 終了時刻11時ごろ

およそ10時間30分の作業時間でした。

もちろん作業中は就寝していました。やはりハードディスクにあるファイル容量が大きいので時間が掛かっていました。この調子だと今度 2TB のハードディスクから 3TB のハードディスクへ移行する時には一日がかりの作業になりそうです。

dump & restore の作業が終了したところで今までのハードディスクを取り外して新しい 2TB のハードディスクを所定のソケットへ接続して再起動させました。

無事再起動することを確認してしばらく動作確認を行いました。特に問題はないようでした。

1TB のハードディスクから 2TB へ変更したので 1TB の空き容量が増えると期待していましたが、 /usr 領域の空き容量は 867GB しかありませんでした。もう少しあってもよさそうなものですがこれが現実のようです(笑)。

交換した今までの 1TB のハードディスクはまだまだ使用できますので他のマシンで使用する予定です。ただ現在のハードディスクの稼働状況を一週間程度みた後に内容を消去しようと思っています。何か万が一のことがあったときのための保険です。

2011年3月5日土曜日

次期ウェブサーバーのマシンは

現在 IBM IntelliStation M Pro で稼働しているウェブサーバーですが、これを HP dx6100ST へ交換しようと考えています。大きさの比較のために並べてみました。dx6100ST は筐体のカバーの部分だけです。背面部分の位置を揃えて置いてみました。写真には一緒に HP dc7600US も並べています。随分とコンパクトな感じになりそうです。


この dx6100ST はこのウェブサーバーにすることを前提として中古品をインターネット・オークションで入手したものですが、ここ数日考えるところがあり、いろいろと迷っています。

dx6100ST と同時期に入手した dc7600US のコイル鳴きが結構うるさいのです。耳を近づけて音が発生する場所を探るのですが全然わかりません。コイルやヒートパイプを手で抑えても変化がなく、どうも複数の場所から発生している感じなのです。どうも簡単に対策が出来そうにありません。

そこでこの小さな筐体の dc7600US をウェブサーバーにしてみようかと考えているところなのです。ウェブサーバーであれば近くにマシンを置かないので多少コイル鳴きがあっても気になることはありません。またサーバー用のスペースを縮小したいのでこの筐体の小ささは魅力的です。そこためこの dc7600US をウェブサーバーにすることが急浮上しているわけです。

今回ハードディスクの交換に伴ってマシン自体も入れ替えを予定していますが dx6100ST にするか dc7600US にするか迷っているところです。

ハードディスクのコピーに半日程度の時間が掛かるためこの間にじっくり考えたいと思っています。

ウェブサーバーのハードディスク交換

ウェブサーバーのハードディスクは昨年の夏に交換していました。(この辺りの内容) しかしこの頃仕事が急に忙しくなりウェブサーバーと一緒に設定してある samba による共有ハードディスクスペースが急激に消費されてしまってハードディスクの容量不足の警告が何度も出てくるようになってきました。

ハードディスクの中には不要なファイルもごっそりあるのでこれらを整理すれば容量不足も解消されるはずなのですが、この忙しいときに慌ててハードディスクの中の不要なファイルを消去していると つい必要なファイルも消してしまう危険性があるのでどうしたものかと考えてしまいました。

過去にも同様なことがあったときに本当に必要なファイルを消してしまってかなり困ったことを経験しています。そこで今回は価格も安くなった 2TB のハードディスクへ交換しようと考えました。

容量を増やすのであればハードディスクの追加も考えられます。この方が時間もかかりません。また現在使用しているハードディスクも一年を経過していないのでまだまだ使用しても問題ないものと思われます。

しかし現在のウェブサーバーとして使用している IBM IntelliStation M Pro から HP dx6100ST へ切り替えることを前提として考えるとハードディスクを一つにまとめておく方が便利です。また電力の消費量もハードディスク2台よりは1台の方が安いので24時間運転を前提としているのでハードディスク一台の方が優位です。

そこでパソコンショップへ出かけてハードディスクを購入してきました。さすがに消耗品のハードディスクはインターネット・オークションの中古品を購入したくはないので初期不良にも迅速に対応してもらえる地元のパソコンショップで購入しました。

購入したハードディスクはいつも愛用してる日立のものです。 HDS723020BLA642 の型番のものでした。価格は8,780円でした。地方都市のパソコンショップのため多少高めのようですがこれは仕方のないことです。


最近は日立のハードディスクもしっかりとした箱に入っています。以前は本当にバルク状態で販売されていたことを考えると随分と販売方法が丁寧になったものだと思います。写真は箱から中身を取り出した状態です。取扱説明書と取り付けネジ4本が同封されていました。


さらに密閉された袋からハードディスクを取り出して外観を眺めてみましたが特に目新しいものはありません。逆に以前袋に同封されていた除湿材が無いことが新しい発見でしょうか。袋の中に窒素か何かが充填されていたのでしょうか。


取りあえず dx6100ST のケーブル類を内部から引き出して筐体の上面部分でハードディスクのコピー作業などがしやすいように準備をしてハードディスクを取り付けてみました。
SATA ドライブ用の電源コネクタは2個あり、マザーボード上には2個目の SATA ドライブを接続するためのソケットも用意されています。このためのこのマシン上でコピーが出来るようになっています。


ウェブサーバーを停止させてコピーするにはかなりの時間を要するためすぐに取りかかることができません。ウェブサーバーの中には imap4 のメールサーバーもあるため、停止させると仕事の多くを止めなければならないからです。作業は深夜になってからはじめたいと思っています。翌日のお昼までに終了すればよいものと思っています。

コピーの準備としてハードディスクをフォーマットしてそれぞれ必要なエリアを確保しておくこととしました。FreeBSD のインストールディスクによって起動させてハードディスクのフォーマットなどを行ったついでに仮に FreeBSD 7.4 のシステムをインストールしてみました。動作確認もこれで出来ると考えたからです。

インストールは無事に完了して問題なく動作しています。写真はハードディスクの中のスライス(FreeBSD のパーティションのようなもの)の様子です。自動設定を行ってみましたが SWAP や /var の容量に不安を覚えたため一度取り消して手動で設定しなおしました。肝心の /usr 領域は 1.8TB 程度が確保出来たようです。後はコピー作業の開始を待つだけです。

2011年3月2日水曜日

FreeBSD 7.4 へアップグレードのその後

昨晩行っていた FreeBSD 7.3 から 7.4 へのアップグレードは無事終了しました。

ルーターとして活躍している NetVista M41 (Celerom 1.1GHz) のマシンでのビルド時間は次のような感じでした。

 buildworld = およそ 5h
 buildkernel = 1h 20min

そしてウェブサーバーとして活躍している IntelliStation M Pro (Pentium4 2.2GHz) のマシンのビルド時間は次のような感じでした。

 buildworld = 1h 51min
 buildkernel = 30min

ともに新しいシステムのインストールを行った後、mergemaster で /etc の設定内容を更新しておきました。7.3 から 7.4 へのマイナーアップグレードだったので問題も発生しないことと思って一気に更新しました。これが8系へのメジャーアップグレードだとカーネルだけ更新して再起動させて様子を観察するなどの慎重を期すところです。よい子は真似をしないようにね!

 # make installkernel KERNCONF=MYKERNEL
 # make installworld
 # mergemaster -Ui
 # reboot

システムが新しくなったところで既にインストールされている各ソフトウェアも portupgrade を使って更新しました。

 # portupgrade -af --batch

アクセスの少ない深夜に作業を行っていましたがさすがに眠たくなり就寝へ。

目が覚めるとパソコンがネットに繋がりません。少し慌ててしまいました。眠気も当然吹き飛びました(笑)。

ルーターの dhcpd が更新のために再起動されていない状態になったままだったので当然のことでした。ルーターを再起動させると無事ネットへの接続も出来るようになりました。

やはりアップグレードは時間と精神を消費してしまうもののようです。できるだけ行いたくないものです。

2011年3月1日火曜日

dx6100ST のマイクロコードのアップデート

前回の日記の続きで HP dx6100ST のマイクロプロセッサのマイクロコードのアップデートです。

Windows XP 上でダウンロードしたマイクロコードのファイルを解凍します。そして解凍したファイルのホルダーの中にある UCODE.bat を実行します。フロッピーディスクの挿入を求められますので 1.44MB のフロッピーディスクを挿入します。

そしてコマンドプロンプトで実行中のスクリプトを継続するために何かキーを押します。するとフロッピーディスクへマイクロコードを更新するディスクイメージが書き込まれて行きます。終了したところでもう1枚作るかと尋ねてきますので N で抜けて終了します。

このフロッピーディスクで dx6100ST を再起動させます。すると DOS でシステムが再起動し始めて下記のような案内画面が表示されます。そのまま Enter で次へ進みます。


次に select a device (デバイスの選択)という画面が現れます。ここに HP Microcode Update の選択項目があります。これしか選択項目がありませんのでそのまま Enter キーで次へ進みます。


Please wait ... の画面が数秒表示された後 select an image (フラッシュメモリのイメージの選択)の画面となります。ここでも選択項目は一つしかなく Ver 1.10 のまま Enter キーで次へ進みます。


やはり Please wait ... の画面が表示された後 Coution! (警告!)の画面が表示されて現在の Ver 1.07 から Ver 1.10 へアップデートすることが表示されていました。このままアップデートさせてしまいます。


すぐに Note! (結果)の画面が表示されてマイクロコードの更新が上手く行ったことが案内されていました。


この画面を抜けると他の項目の更新を行うのか尋ねてきます。マイクロコードの更新が終了したのでそのまま終了させるために Cancel = Esc で抜けました。するとリブートするように案内されたのでそのまま再起動させてマイクロコードの更新は終了しました。


マイクロコードについては BIOS 画面などでは表示されないのでちょっと心配ですが多分大丈夫だと思っています。

dx6100ST の BIOS アップデート

HP dx6100ST の BIOS のアップデートをしてみました。


以前にも行っていたのですがすっかり忘れてしまいました。
ただ今回は以前同型機種の dx6100ST で作っていたリカバリされたハードディスクを使って Windows XP から BIOS のアップデートをしました。

とりあえず BIOS のアップデートの前に現在のバージョンを確認しておきました。
 786C1 v01.57 でした。これを 786C1 v02.15 へアップデートします。


さらにメモリも1枚の 333MHz 512MB のメモリからデュアルチャンネル動作させるために 400MHz 256MB を2枚装着しました。本当は同じメーカーで同じ種類のものを2枚用意したかったのですが手元に無かったので別種類のものを使用しました。memtest86+ で確認するとデュアルチャンネルで動作しているようでした。


次に HP ブランドの Windows XP がリカバリされたハードディスクの取り付けです。筐体の前面グリルの鉄板にねじ込まれていた予備のトルクスネジ4本を取り外してハードディスクへ取り付けました。一本のトルクスドライバーで全てのネジの固定が出来るので便利です。


このハードディスクへシリアル ATA ケーブルと電源ケーブルを取り付けて筐体へ設置しました。トルクスネジを溝へ引っ掛けて押し込むだけのものです。緑色の金具の部分がカチンと音をたててハードディスクを固定しました。意外と短時間で終了する簡単な作業でした。


これで電源を投入すると HP のロゴマークのある背景の Windows XP が起動しました。HP のユーティリティーを起動させてみましたが BIOS のアップデートの項目はないようでした。どうも直接 HP の公式ホームページからダウンロードして BIOS のアップデートをすることとしました。


HP 公式ページから BIOS のアップデートデータとマイクロプロセッサ用のマイクロコードの更新データも一緒にダウンロードしました。この二つを更新しますがこの日記では BIOS のアップデートの部分だけを記述します。


BIOS アップデートしたファイルを実行させるとファイルを解凍し始めました。そしてブラウザに BIOS のアップデートの案内が自動的に表示されました。この中を確認すると通常のフロッピーディスクや CD-ROM などからもアップデートできることが記述されていました。しかしすでに Windows XP が起動している環境だったのでそのまま Windows 上から BIOS をアップデートできる Launch HPQFlash を使用することとしました。


この部分をクリックするとセキュリティの勧告があった後 HPQFlash が起動しました。写真は最初に表示される案内です。


次に進むと BIOS の確認画面が表示されました。ここはこれで問題ないのでそのまま進みました。


すると フラッシュ中... ということで稲妻で撃たれるBIOS のフラッシュメモリの画面が出てきました。何かフラッシュメモリを書き換えているというよりは破壊しているイメージのものでちょっとドッキリしました。日本人とは違った感性を持つ外国人には直感的にイメージできる絵柄なのかもしれません(笑)。


BIOS のフラッシュメモリの書き換えが終了しました。すると再起動を促す画面が表示されて自動再起動を知らせるカウントダウンがはじまっていました。私はカウントダウンを待つこともなく手動で再起動させました。


再起動させようとするとおよそ2年ぶりの Windows XP の起動ということで数多くのシステムアップデートが始まっていました。トホホ!たしか67個もあったようです。面倒でしたがせっかくな機会だったのでそのまま更新させることとしました。

再起動のときに BIOS 画面を呼び出してバージョンを確認してみました。ちゃんと 786C1 v02.15 へアップデートされていました。


引き続きマイクロプロセッサのマイクロコードの更新を行いましたが長くなるので後のページで記述したいと思います。

FreeBSD 7.4 へアップグレード

FreeBSD 7.4 がリリースされていたようなので現在の FreeBSD 7.3-RELEASE-p4 からアップグレードしました。正確にはアップグレードのビルド中です。

csup でソースコードを新しいものにしました。supfile の中にあるリリース部分を 7.3 から 7.4 へ変更して csup でソースコードを更新しました。

 *default release=cvs tag=RELENG_7_4

ソースコードを更新した後、ビルドに向けて準備をしました。準備と言ってもしたのは古いオブジェクトコードを事前に消去しておくだけです。古いソースコードが残っていて問題になった経験はないのですが念のための処置です。

 # rm -Rf /usr/obj

結構たくさんのファイルがあったようで消去し終えるのにしばらく時間がかかりました。

続いてシステムのビルドです。world と kernel を && 記号を使って連続して行うようにしておきました。

 # cd /usr/src
 # make buildworld && make buildkernel KERNCONF=MYKERNEL

これでビルドが終了するのを待ちます。現在ビルド中です。