Page Index
日付 題名 記事の要約
2005.1.8 紗菜☆1144時間 連続稼働記録
2005.1.10 踏めないアクセル なぜかDMA2
2005.1.13 ワンクリック電源 ブラウザから電源操作
2005.1.17 Go RAID 〜セットアップ編〜 RAID0構築記 〜寺突破編〜
2005.1.18 Go RAID 〜パフォーマンス編〜 RAID0構築記 〜ベンチマーク編〜
2005.1.25 IME2002 vs ATOK17 許されざるMS IME
2005.1.29 楽々XPインストール nLite & PE-Builder

紗菜☆1144時間

2005.1.8.Sat

 紗菜がついに連続稼働1000時間を記録しました。おめでとう紗菜たん。
 自宅サーバーとはいえ基本的には非公開であり、アタックもたまに流れ弾が飛んでくる程度なので、Windowsでも充分やれます。というか、上り帯域の狭いADSLに加え、同時接続数が10に制限されている糞OSでは、とても一般公開する気にはなれないだけですけど。(いつの日かFTTHを導入したらLinuxでやろうかと思ってる)

 あんまり存在の意味がなさそうな紗菜だけど、HTTPサーバーだけが仕事ではないのです。WANとLANをつなぐ中心的な存在であり、いわば我が家のネットワークの中枢だったりします。Pen2 / 266MHzでもまだまだやれるゼ!

約束通り再起動してあげた。


踏めないアクセル

2005.1.10.Mon

 千枝のHDは120GBが1台のみです。RAID用のHDを買うまでのつなぎなので。
 でも、なんかやたら遅いんです。いつもスワップしてる感じ。3倍速RAIDを組んでいる旧マシンの雪子に、PhotoshopCSの起動時間競争で勝てません。2.4GHzが0.866GHzに負けるなんて空しい気持ちでドキドキですよ。

 だけど、それにしては遅すぎます。体感できるほど遅いんだから、ちょっとおかしいです。いくら60GBプラッタとはいえ、ここまで遅いのは変ではありませんか?
 そう思ってデバイスマネージャを開いてみると、そこには驚愕の事実が待っておりました。

[ プライマリIDEのプロパティ / 4KB ]

 なんですかウルトラDMAモード2って。モード5じゃないんですか。

参考:転送モードと速度
転送モード 転送速度
ウルトラ DMA モード 0 16.7MB/s
ウルトラ DMA モード 1 25MB/s
ウルトラ DMA モード 2 33.3MB/s (Ultra DMA/33)
ウルトラ DMA モード 3 44.4MB/s
ウルトラ DMA モード 4 66.7MB/s (Ultra DMA/66)
ウルトラ DMA モード 5 100MB/s (Ultra DMA/100)
ウルトラ DMA モード 6 133MB/s (Ultra DMA/133)

 つまりHDが光より速く動いても、そこからOSまでの速度が 33.3MB/s になってしまってるわけですね。これはCD-ROM並みのスピードです。道理で遅すぎるわけだ…。
 原因の究明にはちょっと手間取ったけど、結局はBIOSの設定でした。EnhancedモードをCompatibleモードにして、シリアルATAを無効にしたら無事モード5に戻り、異常な遅さも直りました。認識しないならまだしも、なんでモード2になるのでしょう。わけわからん。

■EnhancedモードとCompatibleモード
※ICH5の場合。BIOSによってモード名は違う。
Enhancedモード … 全6チャンネル。シリアルATA×2+パラレルATA×4を全部使えるが、Win9xを入れられなくなる。
Compatibleモード … 全4チャンネル。パラレルATA×2を潰してシリアルATA×2に割り当てる。シリアルATAを無効にするとパラレルATA×4になる。

 いや、それでも起動時間競争で負けるんですけどね。

それだけRAIDは効果があるということの証明でもあります。3倍速RAIDは伊達じゃありません。
シリアルATAを有効にしてたのは、もうすぐ導入予定だったから。(1.17


ワンクリック電源

2005.1.13.Thu

[ 電源操作ボタン / 8KB ]

 こんなボタンを作ってみました。ブラウザ上からリモートPCの電源を一発操作できるボタン。基本的にはCGI経由で system を実行するだけの単純な代物だけど、その場を動かずリモートデスクトップを起動することもなく、速攻で実行できるのは便利です。
 寝る時とか、いちいち切断処理するのが面倒くさかったのよね。だから作ったんだけど。(雪子はWOLに対応してないので「電源入」がない)

 その気になれば外部からもコントロールできるけど、危ないのでLAN内でのみ有効。


[ 2台のシリアルATAハードディスク / 40KB ]  先日注文したHDが届きました。MaxtorのDiamondMax10 / 6B200M0で、200GB・シリアルATA2・NCQ対応・100GBプラッタという贅沢品ですよ。それでいてお値段も手頃。(11800円)
 でもヘッドのアクセスを最適化して速くするNCQは、千枝のチップセット(ICH5R)では非対応なので使えない。無念。

 この2台を用いて、千枝にRAIDを組みこむのが今回の任務です。本当は静かさに定評のあるSeagateで組みたかったものの、Barracudaはキャッシュのアルゴリズムが特殊で、RAIDでは思うように性能を発揮できない…というのが通説であり、見送りました。単体では素晴らしい性能を発揮するらしいですけどね。日立はちょっと…あんま好かんので。
 いや、もちろんWD740GDで組めれば文句なしだけど、残念ながらそこまで金持ちじゃないのです。

[ 千枝の内部 / 82KB ]  組みつけてみると、早速シリアルATAの恩恵というのを実感。マザーに付属するケーブルがちょっと長すぎたんだけど、取りまわしのしやすさは見た目通りです。これが従来のパラレルATAだったら大変ですよ。(→HD部分の拡大
 また、主従関係(マスター/スレーブ)がないのでジャンパーもない。素晴らしいです。

[ コネクタ部分の比較 / 29KB ] パラレルATAとシリアルATAの比較。初めてシリアルATAのHDに触ったけど、やっぱり全然違いますね。電源コネクタの方がピン数が多いってなんか不思議。

 さて、セットアップなわけですが、ICH5Rを使ったRAIDですから事前にドライバのフロッピーを作っておかないといけません。これはOSを入れる前に必要で、忘れると面倒くさいことになります。PCが複数あるなら問題ないけど。
 千枝にはフロッピードライブがついてなかったりして、雪子のをわざわざ外して移植…などといった余計な作業も。

 フロッピーを用意したらBIOSの設定です。まずはBIOSでシリアルATAのRAIDを有効に設定すると、起動時に Ctrl+I などを押してRAIDのBIOSへ入れるようになります。

[ RAID BIOS / 31KB ] RAIDのBIOSでアレイを組む。英語表記だけど中学生レベルの学力で充分。
最初にRAIDにする2台のHDをひとつのアレイ(ボリューム)でまとめる。
今回はストライピングRAIDを組むので、ボリュームのRAIDレベルを0(Stripe)にセット。
ストライプサイズ(分割サイズ)はパフォーマンス重視の128KBにした。
最後にキャパシティが2台分(379.8GB)になってることを確認。(レベル1の時は1台分)

[ RAID BIOS / 66KB ] ステータスが Normal になってるか確認。HDに異常が出ると、ここのステータスが変わる。
OSもこれに入れるので、BootableがYesになってることも確認。

[ F6待ちの画面 / 24KB ] XPのCD-ROMを突っこんでインストール開始。 最初に「Press F6 if you need to install a third party SCSI or RAID driver...」(他のSCSIまたはRAID用のドライバをインストールしたい時はF6を押してね)と出たら F6 を押す。
チャンスはほんの数秒しかないので、過ぎちゃったら最初からやり直し。
その後、セットアップファイルの読みこみが始まる。

[ セットアップタイプの選択画面 / 28KB ] Select the computer type from the following list, select "Other" if you have a device support disk provided by your computer manufacturer.(コンピュータのタイプを下のリストから選んでね。もしコンピュータの製造元によるデバイスのサポートディスクを持っている時は "Other" を選んでね)に該当するので、Other を選択。先に用意してあるRAIDドライバのフロッピーがそれ。

[ ドライバのインストール画面 / 39KB ] <none> はドライバが入ってない状態。RAIDドライバのフロッピーをセットして S を押すと、読みこみが始まる。

[ ドライバの確認画面 / 15KB ] インストールするドライバを選択。といってもひとつしかない。
表記はチップセットによって違うが、「SATA」と「RAID」の単語でそれとわかる。

[ RAIDドライバのインストール完了 / 35KB ] 先ほど <none> だった部分がRAIDドライバになっている。これで完了。
Enter を押してセットアップを続行する。

[ パーティション作成画面 / 32KB ] パーティションの作成画面に辿りついたら、HDがちゃんと認識されているか確認する。
OSからは1台のHDにしか見えないので、200GB+200GB=400GB(若干少ない数字になる)になってないといけない。
すべて正常であれば、OSを入れるパーティションを作るために C を押す。

 ここまでクリアできれば、あとはウィザードの指示に従うだけ。(なにもトラブルが起きなかったら)簡単です。

[ ディスクの管理画面 / 10KB ]
インストール直後のディスクの管理画面。
2000/XPのダイナミックディスクを使ったRAIDではHDの台数が正確に表示されるが、ICH5RではひとつのRAIDボリュームにまとめられて通知されるので、OSからは1台のHDにしか見えない。(そして容量は2台分になっている)
OSがこのHDを読み書きすると、ICH5RがRAID処理を行う。

 …と、とんとん拍子に進んだような書き方をしたけど、途中で厄介なトラブルに遭遇しちまいました。

[ 挿入したディスクが壊れています / 23KB ]

 「挿入したディスクまたは CD が壊れています。」と出たきり、先に進まなくなってしまったのです。フロッピーを作り直して何度やっても同じで、どうしようもない。
 結局、原因はRAIDドライバを入れ終わった後にフロッピーをすぐ抜いてしまったのが原因で、セットアップを最初からやり直したらあっさり解決。ドライバのインストール後も何度かフロッピーにアクセスするので、パーティションの作成画面に辿りつくまでは抜かないようにしましょう、という教え。

 さて、気になるのはやっぱりパフォーマンス。どれくらいの速度になるのでしょうか。それは明日に続きます。

そして今回の200GB×2によって、我が家のHDの総容量は単位をテラへと移したのでした。
200+200+200+160+160+120+120+120+80+20+3+3=1386GB=1.386TB。
ちょっとHD増えすぎ。


 無事にRAIDの構築が完了したところで、早速パフォーマンスを計ってみます。各PCの基本的なスペックは以下の通りです。

千枝(2倍速)
200GB×2 / シリアルATA / 100GBプラッタ / ICH5R使用 / CeleronD 2.4GHz / メモリ1GB
千枝(通常)
120GB×1 / パラレルATA / 60GBプラッタ
雪子(3倍速)
混在HD×3 / RAIDボード+ダイナミックディスク使用 / Pentium3 866MHz / メモリ512MB
1回戦・ベンチマーク(単位:MB/s)
千枝(2倍速) 千枝(通常) 雪子(3倍速)
読み 118.46 49.02 89.25
書き 128.21 49.27 55.21
ランダム読み(512K) 39.94 26.31 29.19
ランダム書き(512K) 81.95 26.45 35.50
ランダム読み(64K) 8.56 5.96 6.69
ランダム書き(64K) 37.34 7.49 18.23

 いやもうなんというか、かなり劇的に高速化。普通は1.5倍くらいが順当なのに、2倍以上のスコアに。ランダムライト(64K)なんかは5倍近く速くなってるような気がするんだけど?(RAID化前の120GBがちょっと古い型だったせいもあるのかも)
 一方、雪子はダイナミックディスク+混在HDという不利な条件ながら、1チャンネル1台体制(スレーブを使わない)×3台を使った3倍速RAIDのおかげで、ずいぶん健闘してますね。

 次は2回戦です。PhotoshopCSを使って、起動時間をストップウォッチで計ります。ベンチマークが実効速度の比較なら、これは体感速度の比較といったとこです。

2回戦・PhotoshopCS(単位:秒)
千枝(2倍速) 千枝(通常) 雪子(3倍速)
初回起動 12.62 19.20 18.23
2回目起動 6.64 7.65 12.14
ファイルを開く 35.09 59.65 102.31

 これまた順当な結果に。初回起動では3倍速RAIDの効果で雪子は千枝(通常)より速いものの、2回目の起動になるとキャッシュが働くため、HDの速度よりCPUやメモリの方が影響して逆転します。当然、すべてが速い千枝(2倍速)が堂々の1位なわけですが。

 「ファイルを開く」は、190MBのPSDを開くまでの時間。350dpi+レイヤー使いまくりで、メモリが1GBあっても余裕で足りない巨大ファイル。
 雪子はメモリが千枝の半分しかない分だけスワップが早く発生し、しかもシステム全体の遅さが効いた格好ですね。そして、ここでも千枝(2倍速)の速さは圧倒的。
 また、スワップ発生時に起きる描画の遅れや拡大/縮小のもたつきが、見た目にわかるほど軽減されてます。これは精神衛生的に素晴らしいことです。

 というわけでRAID導入の効果は明らかであり、充分に満足のいく結果が得られました。
 ただ、ファイルサーバーとして雪子がいる以上200GB×2なんて大容量は不要であり、そういう意味でも10000回転を誇るWD740GDが理想だったんですが…奴は高すぎでした…。


IME2002 vs ATOK17

2005.1.25.Tue

 XPを使ってる皆さんはIMEなにを使ってますか。Office2003を入れてない限り、デフォルトのIME2002(IME8.1)が大半であろうと思います。俺もその一人です。
 ところで、IME2000は使ったことありますか。Win2000やWinMe、Office2000に入ってるやつです。

 IME2000はATOKに比べて余分な機能は付いてないものの、必要最低限の機能は揃っていて、なかなか使いやすいIMEでした。
 しかし、IME2002になって大幅に弱体化、とんでもなく使いにくくなりました。わかりやすい部分で言えば「言語バー」なる新機能ですね。そうです。タスクバーに居座って、すぐに表示がバグるアレ。

 変換の妙な癖はIME2000からさらに進化し、変換を押すとなにが出てくるか予測不能になりました。たとえば「たいしょう」と入れて変換したら「対象」と出て確定します。おっと間違えた。「対照」と入れたかったんだ。「対象」を消して、また「たいしょう」と入れて変換すると、今度は「対称」が先に出てきたりします。出てこない時もあります。最後に変換したのを最初に出すのが直感的な挙動だと思うんですが、その辺IME2002の開発チームはなにを考えてこのような動作にしたのでしょうか。
 もしかして「今のは間違えたのかな?じゃあ今度は別の候補を先に出してあげよう」とか余計なお世話をしてるのでしょうか。Microsoftなら本当にやりかねません。IEやwordの過親切挙動を見る限り、本当にそうでも全然不思議じゃありません。

 また、俺は「メモ帳をHTMLエディタにする辞書」と称してHTMLを簡単に変換できるシステム辞書を自作してますが、「td」と入れても素直に「<td>」を出しません。td・TDといったスペル候補の最後でやっと出てきます。IME2000はシステム辞書の方を優先して出してくれたのに。かといって、全部が全部そういう挙動をするわけでもなく、素直に出してくれる単語もあります。本当に意味不明です。
 このおかげで、苦労して作ったシステム辞書の実用度が大幅に下がってしまいました。俺は手書きでHTMLを作成してる以上、これは致命的な問題です。

 なので、XPに無理矢理IME2000をインストールして使っていたのですが、ふとしたことで設定が初期化されるという問題が多発(問題ない時は問題ない)、ついにATOK乗り換えを決意した次第です。

 導入したATOKは17。もうすぐ2005が出ますが、まぁいいんです。待ってられないほどIME2002が嫌いになったんです。
 最初はとまどうことばかりでしたが、すぐに確信しました。
 IME2002なんか屁でもねえ。
 タダでついてくるIME2002とは格が違いました。やはり金を払ってまで他のIMEを入れさせるには、それなりの機能がないといけません。設定の細かいこと細かいこと。(この辺でライトユーザーはげんなりしますが、俺にとっては大事ポイントです)

 なにげに大事なのは、ユーザー設定がファイルに保存されることです。これはOSが突然クラッシュしても、設定が失われないことを意味します。
 MS IMEはレジストリを書き出す必要があって初心者お断りですが、ATOKはファイルに保存されるのでOSを入れ直すのも他のPCと設定を共用するのも簡単です。片っぽのPCの設定を変えたら、もう片っぽのPCに設定ファイルを上書きするだけです。(オンメモリ辞書を有効にしてる時は辞書がロックされるので、ログオフしてネットワーク越しに上書きするか、別のアカウントからやらないといけないけど)
 加えて、複数のOSで同じ設定にするのも簡単にできます。XPではIME2000を使えない、MeではIME2002を使えない、なんていうジレンマもありえません。

 ちなみに、別売りの電子辞書を導入すれば

  • 日本語辞書
    [ 候補を日本語辞書で調べる / 3KB ]
  • 和英辞書
    [ 候補を和英辞書で調べる / 10KB ]
  • 英和辞書(スピーカーマークを押すとしゃべる)
    [ 候補を英和辞書で調べる / 5KB ]
  • 連想変換(類語辞書)
    [ 候補を類語辞書で調べる / 5KB ]

 …なんてのが可能になります。
 この他、iATOKと称してインターネットのデータベースを変換に反映させる機能もあったりします。

 と、まぁ利点はいっぱいありますが、欠点もあります。
 まず、辞書ユーティリティの使いにくさがあります。MS IMEみたいに直感的な一覧表示ができません。読みを検索して、そこから修正なり削除なりをする形式です。

[ 辞書ユーティリティダイアログ / 6KB ]

 でも俺はユーザー辞書をテキストファイルで管理していて、そこからインポートする形で辞書を作成するので、あまり問題はないのですけど。(件数が3000件を超えるとテキスト形式の方が管理しやすい)

 痛いポイントとしては、キーのカスタマイズの弱さが挙げられます。あらかじめ用意されたキーセットにしか割り当てできないし、割り当てられる機能もMS IMEに比べて少ないです。特に「空白」がないのはかなり不満です。(入力モードによる全角空白、半角空白の細かい設定ができない)
 さらに、IMEのオン/オフを個別に設定できません。「押すたびに切り替え」のみです。無変換 でIMEをオフに、変換 でIMEをオンに設定してる俺としては本当に痛いポイントです。
 これができないと「今オンなのかオフなのか」を意識せねばならず、かなり面倒です。だからといってIME2002に戻るなんて二度と御免です。

 というわけでCtrlIMEという常駐を導入しました。文字を入れてない時に ひらがな でオン、変換 でオフになるという、ただそれだけのものです。キーのカスタマイズはできませんが、慣れれば充分に代用が効きます。これに加えて 無変換 にオン/オフ切り替えを設定すれば、だいぶ便利に使えますね。

 この辺については普通の人には充分な内容なんでしょうが、キーバインドをフルチューンしてるヘビーユーザーには物足りません。なにせ俺のキーボードは @ を押すと = が出てきますから。Shift+@ では " が出てきますから。@ を入れるには Alt+@ を押さないといけませんから。

 だけど、それらを差し引いてもATOKの総合性能はIME2002をはるかに凌ぎます。MS IMEを使うことはOSのインストールの時だけになるでしょう。グッバイ。

「設定はファイルに保存される」と書きましたが、設定情報は *.aen *.sty という2つのファイルに記録されます。これをテキストエディタで開いてみると、設定情報がなんか日本語で書いてあるんですが…。ますます好きになりました。ATOK。


 nLiteを使って、WinXP統合インストールCDの作成に挑戦してみました。一番最初に入れるRAIDドライバをセットアップに組みこんでおけば、いちいちフロッピーを用意する必要がなくなります。(だって千枝にはフロッピードライブがない)

[ ツリー / 8KB ]  他、Documents and Settings なんていう長ったらしいプロファイルフォルダも好きな名前にできるし、Windowsフォルダ名だって変えられます。
 また、プロダクトキーなどの情報をあらかじめ入力しておくことで、セットアップ中にずっとPCの前に張りついている必要がなくなります。ただ、パーティションはそれだと不都合があるので、そこだけ手動にしましたけど。

 …が、SP2を統合すると必ずインストールに失敗する問題を回避できず、それはあきらめました。代わりにSP2キットやセットアップに必要なドライバをセットアップイメージに梱包し、ブータブルDVDにしました。これならOSインストール後にそのままSP2を入れられるので、時間はかかりますが裸XPでWindowsアップデートを実行するようなリスクは避けられます。(裸XPがネットに接続してウィルスやワームに感染しないでいられる平均時間は20分ほどだそうです)

この他にも、余計なオプションやサービスもあらかじめカットできたりします。

 そうこうしてできたオリジナルのセットアップDVD。ドライバが入ってるので千枝専用です。他のPCでは使えません。ていうかプロダクトキーも入れちゃったので、どっちみち千枝専用なんですが。

[ WinPEデスクトップ / 100KB ]  あと、ついでにBart's PE-BuilderでWinPEのCD-ROMも作ってみました。CD-ROMから起動できるXPです。プロダクトキーとかは存在しませんが、もちろん認証を受けたPCでしか使っちゃいけません。
 Bドライブに一時的な作業ドライブを作ることで、多くのソフトが使えるようになります。他のパーティションもばっちり認識するしネットにも接続できるし、緊急用ディスクとしてこれ以上のものはない大変ありがたい代物です。
 ただし、作成にはそれなりのスキルが必要です。PE-Builderはコックでしかなく、材料は自分で用意しないといけません。正直言って難しいです。写真は雪子で起動してみた例ですが、ストライプボリュームが認識されてないです。まぁ俺には必要のないものなので、解決する気もないんですけど。(遊びで作ってみただけ)