ディスクもたまには遅くなる
皆さんはパソコンでどんなことをしているだろうか。音楽聴きながらライブチャット、それともオンラインゲームだろうか。パソコンというものは、あると本当に便利なものだ。そんなパソコンから、たまに「カリカリ」「シャカシャカ」といった音を立てつつ仕事をしているのがハードディスクである。
ハードディスクには、レポートやプレゼンテーション資料、オンラインミュージックストアからダウンロードした音楽ファイルなどがしっかり保存されている。皆さんが普段使っているワープロソフトやMP3プレーヤーといったプログラムは、ハードディスクに保存されたファイルを読み書きしながら、文書を表示したり音楽を再生したりしている。普段気にしなければハードディスクは結構速いのだが、ふと急に遅くなったりする。今回はそんな時のお話を。
今忙しいんで……
普段はデータのアクセスに1秒とかからないハードディスクだが、時としてアクセスタイムが非常に遅くなることがある。アクセスタイムの遅延は、データ量とは無関係だ。それはハードディスク内で何らかの故障が発生し、そこから何とか回復しようとハードディスク自らが頑張っている時である。
例えば、ディスク上のデータが1回できちんと読み取れなかった場合は、何回か読み直しを試み、正しく読めたらディスク上の別の場所にデータを再保管したりする。中にはディスクの駆動モータを停止し、再始動させてから、読み直しや書き直しを行うような回復処理もあり、このような場合のアクセスタイムは30秒以上かかることもある。
パソコンのハードディスクの場合は、ただ黙々と作業している場合が多いのだが、サーバクラスの製品に使われる「ストレージサブシステム」と呼ばれるような高度なディスク装置の場合、サーバからのアクセス要求をそのまま受け付けたりはせず、「忙しい」といって要求を拒否したりする。サーバの方では「忙しい」といわれてもいちいちユーザーに報告することはないが、サーバとディスク装置のやりとりをソバ屋と客に例えてみると、次のような感じになる。
客(サーバ): すいません、出前お願いします
ソバ屋(ディスク): あいにく今忙しいんで、また後でお願いします
少し時間が経ってから
客(サーバ): すいません、出前お願いします
ソバ屋(ディスク): あいにく今忙しいんで、また後でお願いします
また少し時間が経ってから
客(サーバ): すいません、出前お願いします
ソバ屋(ディスク): あいにく今忙しいんで、また後でお願いします
このやりとりは、サーバ(客)が待ちきれなくなり、もう電話をかけなくなるか、あるいはディスクの方が「ご注文をどうぞ」と応答を返すまで繰り返される。
機転の利かないヤツ
ただし、一般に「メインフレーム」と呼ばれるサーバとそれ用のディスク装置間の場合は、次のようなもう少し会話っぽいやりとりがなされる。
客(サーバ): 出前お願いします
ソバ屋(ディスク): 今、立て込んでまして、一段落したら折り返しお電話します
客(サーバ): そうかい、じゃあ電話待ってるよ
少し時間が経ってから
ソバ屋(ディスク): お待たせしました、ご注文は?
これだと注文客は電話を何度もかける必要がなく、無駄がない。同じような手段がUnix/Linux/Windows系サーバで広く使われているSCSIディスクでも使えればよいが、残念ながらこのような気の利いたやり取りはできていない。注文客が適当な間隔をおいてから電話をかけ直しているのだ。
しかし、これではちょっと効率が悪い。例えば、ソバ屋(ディスク)は5秒後に手があくのに、お客さん(サーバ)からの催促の電話は20秒後にしか来ないとなると、ソバ屋は15秒間、無駄に遊んでいることになるからだ。
満足度向上のために
SCSIにおけるこの無駄なやりとりを改善するために、新しい方法が生まれつつある。それは、ディスク装置の方でただ「忙しい」というだけではなく、どれくらい忙しいかを通知しようという試みだ。
客(サーバ): 出前お願いします
ソバ屋(ディスク): あいにく今忙しいんで、5秒後に電話ください
といった具合である。こうなると、注文客は無駄に何回も電話をかける必要がなく、ディスクが遊ぶこともなくなる。
もっと人間らしく?
いかかであろうか。サーバとディスク間のやりとりは、まだまだ人間同士のそれにはおよばないものの、少しは「らしく」振舞っていることがお分かりいただけたと思う。もし、これが本当の人間社会であれば、お客が「いつまで待たせる気だ!」と怒鳴り、恐れをなしたソバ屋が先に注文だけをとる、という顛末も考えられる。
将来のサーバとストレージは、こんなやりとりをも織り込んで、さらに人間らしい会話ができるようになっているかも知れない。
第10回筆者紹介出前、お願いします
朴 亨志 (ぱく ひょんじ)
日本IBM 大和システム開発研究所 先進システムズ開発 開発エンジニア
職務:「頼もしい」ストレージを作ること
一言:メインフレームストレージ製品(ソフトおよびハード)サポートのシステムズエンジニア(SE)として出発し、好奇心ありあまってエンタープライズストレージサブシステムの製品エンジニア(PE)に転身。さらに製品サポート業務から開発をする立場にかわってきました。夢はたった1つ。安心して使っていただける、わかりやすいストレージサブシステムを開発することです。