(57)【要約】所望のデータを読み取ることによって、データセットにある所望のデータに対する要求が満たされる第１事前取得ポリシーと、データセットを読み取ることによって、データセットにある所望のデータに対する要求が満たされる第２事前取得ポリシーとから最適事前取得ポリシーを適応的に選択するための方法は、回避可能な読取ミス回数に関する統計値を収集することを含む。この統計値に基づいて、第１しきい値が定義されて頻繁に更新される。不可避な読取ミスが検知されると乱数が生成されて、しきい値と乱数との差の符号に基づいて最適事前取得ポリシーが選択される。
2004513456.tif 000002
【特許請求の範囲】
【請求項１】
所望のデータを読み取ることによってデータセットにある前記所望のデータに対する要求が満たされる第１事前取得ポリシーと、
データセットを読み取ることによって前記データセットにある所望のデータに対する要求が満たされる第２事前取得ポリシーとから最適事前取得ポリシーを適応的に選択するための方法であって、
回避可能な読取ミス回数に関する統計値を収集するステップと、
前記統計値に基づいて前記第１事前取得ポリシーと前記第２事前取得ポリシーとから最適事前取得ポリシーを選択するステップとからなる方法。
【請求項２】
前記第１事前取得ポリシーと前記第２事前取得ポリシーとから最適事前取得ポリシーを選択する前記ステップは、
前記統計値に基づいて第１しきい値を定義するステップと、
不可避な読取ミスが検知されたときに乱数を生成するステップと、
前記しきい値と前記乱数との差の符号に基づいて前記第１事前取得ポリシーと前記第２事前取得ポリシーとから最適事前取得ポリシーを選択するステップとからなる、請求項１に記載の方法。
【請求項３】
前記データセットはディスクのトラックに由来するデータを有し、前記第２事前取得ポリシーを選択するステップは、前記所望のデータと、前記所望のデータと前記トラックの終端との間に記憶されているデータとを含めるように前記トラックにある前記データを選択するステップからなる、請求項１に記載の方法。
【請求項４】
前記メモリ要素に記憶されている前記統計値は回避可能な読取ミスの尤度を表す値を有するランダムウォーク変数からなり、前記ランダムウォーク変数を維持管理するステップは、
不可避な読取ミスが検知されたときに前記ランダムウォーク変数の値を変更するステップからなる、請求項２に記載の方法。
【請求項５】
前記ランダムウォーク変数の値を変更するステップは、
前記最適事前取得ポリシーが、前記第１事前取得ポリシーから前記第２事前取得ポリシーへと推移する限界読取ミス確率を決定するステップと、
前記ランダムウォーク変数の値を前記限界読取ミス確率に依存する数値分だけ変更するステップとからなる、請求項４に記載の方法。
【請求項６】
少なくとも１つのホストコンピュータに所望のデータを提供するための大規模ストレージシステムであって、前記大規模ストレージシステムは、
前記所望のデータを有するデータセットが記憶されているデータストレージ装置と、
前記データストレージ装置と通信しているコントローラからなり、前記コントローラは、
回避可能な読取ミス回数を表す統計値を記憶するためのメモリ要素と、
前記メモリ要素及び前記乱数生成器と通信し、かつ前記統計値に基づいて最適事前取得ポリシーを選択するためのプロセッサとからなり、前記最適事前取得ポリシーは、
所望のデータを読み取ることによってデータセットにある前記所望のデータに対する要求が満たされる第１事前取得ポリシーと、
データセットを読み取ることによって前記データセットにある所望のデータに対する要求が満たされる第２事前取得ポリシーとから選択される大規模ストレージシステム。
【請求項７】
前記コントローラは、
不可避な読取ミスが検知されたときに乱数を生成するための乱数生成器を備え、前記統計値に基づいて最適事前取得ポリシーを選択するための前記プロセッサは、前記統計値に基づいて定義されるしきい値と前記乱数との間の差の符号を基にして最適事前取得ポリシーを選択するためのプロセッサである、請求項６に記載の大規模ストレージシステム。
【請求項８】
前記メモリ要素に記憶されている前記統計値は回避可能な読取ミスの尤度を表す値を有するランダムウォーク変数からなる、請求項７に記載の大規模ストレージシステム。
【請求項９】
所望のデータを読み取ることによってデータセットにある前記所望のデータに対する要求が満たされる第１事前取得ポリシーと、
データセットを読み取ることによって前記データセットにある所望のデータに対する要求が満たされる第２事前取得ポリシーとから最適事前取得ポリシーを適応的に選択するための、コンピュータ上にコード化されているソフトウェアを有するコンピュータ可読媒体であって、
前記ソフトウェアは、
回避可能な読取ミス回数に関する統計値を収集する命令と、
前記統計値に基づいて前記第１事前取得ポリシーと前記第２事前取得ポリシーとから最適事前取得ポリシーを選択する命令からなる媒体。
【請求項１０】
前記統計値に基づいて前記第１事前取得ポリシーと前記第２事前取得ポリシーとから最適事前取得ポリシーを選択する前記命令は、
第１しきい値を定義する命令と、
不可避な読取ミスが検知されたときに乱数を生成させる命令と、
前記しきい値と前記乱数との差の符号に基づいて前記第１事前取得ポリシーと前記第２事前取得ポリシーとから最適事前取得ポリシーを選択する命令とからなる、コンピュータによって読み取り可能な請求項９に記載の媒体。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、ディスクストレージシステムに関し、より詳細には、ユーザーからのディスク内のデータに対する要求の予測に関する。
【０００２】
（背景）
ディスクからデータを要求するユーザーは、データを取得するために複雑かつ時間のかかる一連の事象を開始する。例えば、当該データを取得する際に、ディスクコントローラは、ディスクのアームの位置を調整し、読取ヘッドとデータが記憶されているディスクのシリンダとを揃える必要がある。次に、ディスクコントローラは、所望のデータを記憶しているトラックが読取ヘッドの下を通過し始めるまで待機しなければならない。ディスクコントローラは、ディスクの回転によって読取ヘッドの下に所望のデータが来たら、読取操作を開始しなければならない。ユーザーからのデータ要求を満たすための処理においては、これらの事象によってかなり長い待ち時間が発生する。
【０００３】
読取ヘッドとトラックの先頭との位置合わせに付随する待ち時間は、経済的取引における固定費に相当する。ディスクストレージシステムがトラックの先頭とヘッドとの位置合わせの待ち時間を発生させた場合、所望のデータのみを読み取るのに要する時間は、トラック全体を読み取るのに要する時間と大差なくなる。
【０００４】
トラック全体を読み取るためのわずかな費用の増分は、トラックの先頭とディスクのアームとの位置合わせに要する固定費よりも低いが、可能であれば費用の増加を回避することが望まれる。特に、ディスクストレージシステムが、複数台のディスクにアクセスする複数のユーザーに対してサービスを提供している場合は、トラック全体に対する不要な操作によって多くの帯域幅が消費され、他のユーザーのディスクアクセス操作に大きな支障が生じる。
【０００５】
トラック全体を読み取るべきか、或いは要求されたデータのみをトラックから読み取るべきかの判断を下すためには、当該トラックに存在する他のデータが今後要求されるか否かをディスクストレージシステムが予測する必要がある。これを実現するための公知の方法として、多数のディスクと通信しているホストコンピュータとバックエンドプロセッサとの両方からアクセス可能なグローバルキャッシュメモリをディスクストレージシステムが維持管理する方法がある。グローバルキャッシュメモリは、多数のスロットから構成される論理ボリュームに分割されており、各論理ボリュームは、ディスクにある物理トラックに対応するサイズを有する。ディスクの各トラックは、他の多数のトラックから構成される論理ボリュームに割り当てられている。これらトラックの一部は、グローバルキャッシュメモリ内の対応するスロットに既にコピーされていることがある。上記の構造を有するディスクストレージシステムは、バッチマット（Ｂａｃｈｍａｔ）に付与された米国特許第６，００３，１１４号に記載されている。その内容は、参照によりここに援用される。
【０００６】
ディスクストレージシステムは、データ要求を受け取ると、まずそのデータが既にキャッシュスロットにあるか否かを判定する。データが既にキャッシュスロットにある場合、ディスクストレージシステムはそのデータをキャッシュスロットから直接取得する。この事象は「読取ヒット」と呼ばれる。キャッシュスロットから読み取ることで、物理ディスクドライブからの読込みに付随する待ち時間を回避することができるため、読取ヒットが発生することが望まれる。
【０００７】
時として、ディスクストレージシステムが、所望のデータがグローバルキャッシュメモリに全く存在しないことを検知することがある。所望のデータは、グローバルキャッシュメモリにはなく、ディスクに存在する。このような場合、ディスクストレージシステムは、ディスクコントローラに対し、ディスクの適切なトラックから所望のデータを取得するように指示する。この事象は、「読取ミス」と呼ばれる。この操作によって、ディスクドライブの機械的動作に付随する待ち時間が発生するほか、グローバルキャッシュメモリとディスクドライブとの間のデータ転送に付随する待ち時間が発生する可能性があるため、読取ミスが発生することは望ましくない。
【０００８】
読取ミスが発生すると、バックエンドプロセッサは所望のデータを取得し、そのデータをグローバルキャッシュメモリに転送する。バックエンドプロセッサが、特定の時間間隔の間に当該トラックにあるデータに対する次の要求を受信した場合、トラックの残りを取得してこの要求に応える。
【０００９】
上記の方法の不都合な点は、読取ミスに対処する毎回の処理において、近いうちに同じトラックから別のデータが要求されることが考慮されない点にある。あるトラックを含む論理ボリュームからデータが要求されると、その後同じ論理ボリュームにあるデータに対する要求が確実に再発生しているにもかからわず、この点が考慮されていない。
【００１０】
（概要）
本発明による方法は、回避可能な読取ミス及び不可避な読取ミスの発生頻度の観察に基づいて、最適事前取得ポリシーを適応的に選択する。回避可能な読取ミス及び不可避な読取ミスの相対発生頻度は、時間の経過とともに変動する。このため、本発明による方法では、所望のデータを読み取ることによって、データセットにある所望のデータに対する要求が満たされる第１事前取得ポリシーと、データセットを読み取ることによって、データセットにある所望のデータに対する要求が満たされる第２事前取得ポリシーとの間で事前取得ポリシーを切り替えている。
【００１１】
回避可能な読取ミス回数に関して収集された統計値に基づいて、第１しきい値が定義される。不可避な読取ミスが検知されると、乱数が生成され、しきい値と比較される。しきい値と乱数との差の符号に基づいて、第１及び第２事前取得ポリシーのうちから最適事前取得ポリシーが選択される。
【００１２】
回避可能な読取ミスの発生頻度を決定するための統計値は、回避可能な読取ミスが検知されたときに値が更新されるランダムウォーク変数として実現される。したがって、ランダムウォーク変数の値は、回避可能な読取ミスの尤度を表す。また、ランダムウォーク変数の値は、不可避な読取ミスが検知されたときにも更新される。
【００１３】
限界読取ミス確率を決定することによって、ランダムウォーク変数が変更され得る。この限界値で、最適事前取得ポリシーが、第１事前取得ポリシーから第２事前取得ポリシーに切り替わる。その後、ランダムウォーク変数の値が、限界読取ミス確率に依存した量だけ変更される。
【００１４】
また、本方法は、読取ミスを回避可能な読取ミスと不可避な読取ミスに分類するステップを有することがある。このステップは、データセットに関連するフラグを維持管理することにより実行され得る。このフラグの値は、そのデータセットにあるデータが以前要求されたか否かによって決定される。データセットにあるデータが前に要求されたか否かを表し、データセットに関連するフラグを調べることによって、読取ミスを分類することができる。複数のディスクストレージシステムから構成される分散型ディスクストレージシステムでは、このフラグに、データ要求が発生したシステムの識別子を表す情報を含めることができる。
【００１５】
（詳細説明）
本発明による方法を実行するディスクストレージシステム１０は、複数のホストコンピュータ１６ａ〜１６ｍと通信しているフロントエンド１４と、複数のディスクコントローラ２０ａ〜２０ｎと通信しているバックエンド１８とを有するグローバルメモリ１２を備える。各バックエンド１８は、対応する論理ボリューム２２ａ〜２２ｎからのデータの読取りを制御する。論理ボリューム２２ａは、ディスクコントローラ２０ａの制御下にある多数の物理ボリュームからなることもある。別法として、論理ボリューム２２ａは、少なくとも１つの物理ボリュームに由来するトラックからなることがある。グローバルメモリ１２は、制御部２４とデータ部２６とに区切られている。
【００１６】
データ部２６は、固定サイズのスロット２８ａ〜２８ｍに区切られており、各スロットは、論理ボリューム２２ａ〜２２ｎに由来するトラックを収容するように構成されているいる。これらスロットのうち、２８ａ，２８ｂは、対応する論理ボリューム２２ａ，２２ｂの対応するトラックに記憶されているデータの一部のコピーを有する。別の論理ボリューム２８ｃは、対応する論理ボリュームのトラック全体のコピーを有する。さらに別の論理ボリューム２８ｍは、対応する論理ボリューム２２ｎのトラックの中ほどからトラックの終端まで存在するデータのコピーを有する。
【００１７】
制御部２４は、グローバルメモリ管理部３０と、データ部２６にある固定サイズのスロット２８ａ〜２８ｍの内容を管理するための補助的情報とを含む。
グローバルメモリ管理部３０は、ディスク２２ａ〜２２ｎから頻繁にアクセスされるデータのイメージを、固定サイズのスロット２８ａ〜２８ｍに維持管理している。このため、ホストコンピュータ１６ａは、アクセスが頻繁なデータを容易に取得できる。また、アクセスがあまり頻繁ではないデータも存在する。このようなデータは、論理ボリューム２２ａ〜２２ｎに記憶されているが、グローバルメモリ１２には記憶されていない。このため、このようなデータへのアクセスに要する待ち時間は、既にグローバルメモリ１２にあるデータへのアクセスに要する待ち時間よりも長くなる。
【００１８】
グローバルメモリ管理部３０は、ホストコンピュータ１６ａからのデータ要求に応じるために、グローバルメモリ１２の内容を最初に調べ、そのデータが既に存在するか否かを判定する。この判定の結果は、データがグローバルメモリ１２に存在するか、或いはデータが物理ディスクドライブには存在するが、グローバルメモリ１２には存在しないかのいずれかになる。
【００１９】
データがグローバルメモリ１２に存在する場合、メモリ管理部３０は、当該データをグローバルメモリ１２から取得する。この事象は「読取ヒット」と呼ばれる。
【００２０】
データがグローバルメモリ１２に存在しない場合、グローバルメモリ管理部３０は、適切なディスクコントローラ２０ａに対してメッセージを送信して、論理ボリューム２２ａからデータを取得するようにディスクコントローラ２０ａに要求する。この事象は「読取ミス」と呼ばれる。
【００２１】
グローバルメモリ１２からのデータの読取りは高速で行なわれるため、データ要求のたびに読取ヒットが発生することが好ましい。これは、全論理ボリューム２２ａ〜２２ｎのコピーを記憶できるようグローバルメモリ１２の容量を十分大きくすることで実現される。しかし、大容量のグローバルメモリ１２を備えるには費用がかかるため、この方法は現実的ではない。
【００２２】
通常、ディスクに記憶されている全データのコピーを記憶できるほどグローバルメモリ１２の容量が大きくないため、ディスクストレージシステム１０からデータを取得するための平均待ち時間を短縮するようにグローバルメモリを割り当てる必要がある。これを実現するには、ディスクストレージシステム１０に記憶されている全データを、アクセスが頻繁なデータとアクセスが頻繁ではないデータとの２つに分類する必要がある。アクセスが頻繁なデータはグローバルメモリ１２に記憶するが、アクセスが頻繁ではないデータはグローバルメモリ１２に記憶しない。
【００２３】
時間の経過に伴い、アクセスが頻繁なデータに対する要求が低下し、アクセスが頻繁ではないデータに対する要求が増大することがある。このため、アクセスが頻繁なデータとアクセスが頻繁ではないデータとに分類する処理は、好適には論理ボリュームにあるデータに対する要求の変化を検知する動的な処理である。本発明による方法により、データの分類を実行するための、統計に基づいた処理が提供される。グローバルメモリ１２内の記憶領域が消費されるのを防止するため、本発明による方法は、好適にはディスクコントローラ２０ａによって実行される。
【００２４】
図２において、本発明による方法を実行するディスクコントローラ２０ａは、キャッシュメモリ３２を備える。このほかに、ディスクコントローラ２０ａは、グローバルメモリ１２、キャッシュメモリ３２及び論理ボリューム２２ａと通信しているバックエンドプロセッサ３４を備える。
【００２５】
論理ボリューム２２ａに関連付けられている各トラックは、多数のブロックから構成されている。各ブロックには、そのブロックがグローバルメモリ１２内のキャッシュスロットにコピーされているか否かを表すフラグが存在する。ディスクコントローラ２０ａは、読取ミスの結果ディスクコントローラ２０ａに対する読取要求が発生するたびに、発生した読取ミスを、このフラグを用いて回避可能な読取ミスと不可避な読取ミスとに分類する。
【００２６】
回避可能なトラックの読取ミスは、データを記憶しているブロックのみならず、トラック全体がディスクコントローラ２０ａによって事前取得されていれば回避することができた読取ミスである。トラック全体が事前取得されていたならば、物理ドライブからではなく、グローバルメモリ１２から所望のデータを直接取得することによって、読取ミスを生じさせた読取要求に応じることができたはずである。
【００２７】
当該トラックの前の部分がキャッシュスロットに既に存在することがトラックのフラグの分布からわかる場合、ディスクコントローラ２０ａは、その読取ミスを「回避可能な」読取ミスに分類する。グローバルメモリ１２内のキャッシュスロットに当該トラックの前の部分が存在しないことがフラグからわかる場合、ディスクコントローラ２０ａは、この読取ミスを「不可避な」読取ミスに分類する。回避可能な読取ミスが過度に発生している場合は、ディスクコントローラ２０ａは、一回のトラック全体の事前取得をもっと頻繁に実施すべきである。同様に、不可避な読取ミスが過度に発生している場合は、ディスクコントローラは、トラック全体ではなく該当データのみを取得して、データ要求に応答すべきである。
【００２８】
ディスクコントローラ２０ａは、回避可能な読取ミス及び不可避な読取ミスの発生回数を用いて、所望のデータのみを取得する第１ポリシーと、所望のデータと所望のデータを記憶しているトラックの残りの部分とを取得する第２ポリシーとのいずれかを選択することが可能である。第１ポリシーと第２ポリシーのいずれを選択するかは、ディスクコントローラ２０ａによって収集された統計値から推論されるように、読取ミスが回避可能な読取ミスである場合の確率に基づいている。この事象の確率がポリシー移行確率を上回る場合、ディスクコントローラ２０ａは第２ポリシーを選択する。この事象の確率がポリシー移行確率を超えない場合は、ディスクコントローラ２０ａは第１ポリシーを選択する。
【００２９】
第１ポリシーと第２ポリシーのいずれかを選択する際に用いられるポリシー移行確率は、２つの費用関数の交点となる。これらの費用関数の一般的な形を図３に示す。図３の縦軸は、データ要求に応じるための待ち時間などの費用を表す。横軸は、読取ミスは回避可能な読取ミスである場合の確率であるを表す。図３の第１曲線３８は、コントローラが、ユーザーから要求されたデータのみを取得する第１ポリシーに従う場合の費用を表す。第２曲線４０は、コントローラが、ユーザーから要求されたデータを記憶しているトラックの全データを取得する第２ポリシーに従う場合の費用を表す。
【００３０】
不可避な読取ミスが大半を占める場合、第１ポリシーが最適ポリシーであることが図３から明白である。回避可能な読取ミスの尤度が増大するにつれ、第１ポリシーと第２ポリシーとの費用の差が小さくなる。やがて、ポリシー移行確率４２において第１曲線３８と第２曲線４０とが交わり、第１ポリシーが最適ポリシーではなくなる。
【００３１】
この２つの費用関数の形状と、この２つの交点から導出されるポリシー移行確率４２とは、ディスクストレージシステム１０の特性によって決まる。例えば、ディスクストレージシステム１０の帯域幅が非常に狭い場合、第２曲線４０は図４にみるように上に移動し、その結果、交点４４が右にシフトする。非常に遅いアームを備えたディスクがディスクストレージシステム１０に用いられている場合、図５にみるように第１曲線３８が上に移動し、その結果、交点４４が左にシフトする。
【００３２】
上記の方法は、時間の経過に伴って、論理ボリューム２２ａから事前取得されるトラックが増えるという難点を有する。この結果、当該論理ボリューム２２ａを読み取るための読取ミス回数が減り、読取ヒット数が増える。しかし、ディスクコントローラ２０ａは読取ミスしか検知できない。読取要求の予測を行なわなくても、読取要求に応えれば読取ヒットとなるため、ディスクコントローラ２０ａは読取ヒットを検知できない。この結果、時間がある程度経つと、ディスクコントローラ２０ａは、回避可能な読取ミス回数及び不可避な読取ミス回数の統計値を維持管理することができなくなる。
【００３３】
ディスクコントローラ２０ａによって維持管理される統計値が古くなるのを回避できない結果、グローバルメモリが非効率的に使用されることになる。より詳細には、ディスクコントローラ２０ａは、論理ボリューム２２ａにあるデータに対する要求が低下してからかなり経過したにもかかわらず、関連する論理ボリューム２２ａにあるトラック全体の事前取得を続けていることがある。新たに読取ミスが検知されなくなった場合に、回避可能な読取ミス回数及び不可避な読取ミス回数の変動を検知する方法が存在しないため、ディスクコントローラ２０ａは、最適とは呼べなくなったポリシーに従うことになる。この結果、ディスクコントローラ２０ａは、以前の最適ポリシー（つまり、トラック全体を積極的に事前取得すること）が、最適ポリシーではなくなったとことを知るすべもない。この状態では、ディスクストレージシステム１０の資源が無駄に浪費される。
【００３４】
図２に戻ると、バックエンドプロセッサ３４は、読取ミスを検知し、これを回避可能なミスと不可避なミスとに分類する監視処理を実行することによって統計値を新しい状態に維持している。さらにこの監視処理は、ディスクコントローラのキャッシュメモリ３２内にランダムウォーク変数４８を維持することによって、計測された回避可能な読取ミス及び不可避な読取ミスの相対発生頻度を監視している。
【００３５】
通常、ランダムウォーク変数４８は、下限値と上限値（通常は０と２５５）の間の整数値を取るランダムな変数である。簡潔を記すために、ランダムウォーク変数は０と１の間の値を取るとする。一般にランダムウォーク変数４８には初期値が与えられ、初期値は通常上限値と下限値の中間値である。監視処理３６は、回避可能な読取ミス及び不可避な読取ミスを検知すると、ランダムウォーク変数４８の値を変更する。さらに、バックエンドプロセッサは、トラックを事前取得するか否かを決定するポリシー選択処理５０を実行する。監視処理３６とポリシー選択処理５０とは相互に連携し、図６のアルゴリズムを実施するための命令を実行する。
【００３６】
読取ミスが検知されると（ステップ５２）、監視処理は、この読取ミスを回避可能な読取ミスと不可避な読取ミス（ステップ５４）とに分類する。当該トラックの前の部分が既にグローバルメモリ１２に存在することがそのトラックのフラグの分布からわかる場合、そのトラックのデータに対する読取ミスが回避可能と分類される。そのトラックの前の部分が既にグローバルメモリ１２に存在しない場合、読取ミスは不可避と分類される。
【００３７】
データ収集処理が、読取ミスが回避可能な読取ミスであると判定すると、データ収集処理は、好適には図７に示す方法によりランダムウォーク変数（ステップ５６）を更新する。
【００３８】
次に図７において、監視処理は、ランダムウォーク変数の値を増加させて、この変数の値を更新する（ステップ５８）。ランダムウォーク変数の増分は、ポリシー移行確率Ｘと、大きな整数Ｎとによって決まる。
【００３９】
監視処理は、ランダムウォーク変数を更新する際に、ランダムウォーク変数を増加させた結果、変数の値が上限値以上になるか否かを判定する（ステップ６０）。上限値以上になる場合、監視処理は、ランダムウォーク変数の値を上限値を超えない最大の値に設定して、この変数を更新する（ステップ６２）。これにより、詳細を下に記載するように、回避可能な読取ミスが多く発生した後でも、トラックにあるデータを事前取得するか否かを決定する上でランダムウォーク変数が有用であることが保証される。
【００４０】
図６に戻ると、ポリシー選択処理は、回避可能な読取ミスを検知すると、所望のデータ以外にも、所望のデータを記憶しているトラックの残りの全データも取得するようにディスクコントローラに指示する（ステップ６４）。図６には、ランダムウォーク変数を更新するステップ（ステップ５６）の後にトラックのデータを取得するステップが示されている（ステップ６４）が、ランダムウォーク変数の増分は非常に小さいため（ステップ５８）、これらのステップのいずれが先に実行されても実用上差し支えないことが理解される。
【００４１】
監視処理が、検知された読取ミスが不可避な読取ミスであると判定すると、監視処理は、乱数を生成する（ステップ６６）。これは、均一に分散している乱数で、ランダムウォーク変数の上限値と下限値の間の値を取る。次に、監視処理は乱数の値とランダムウォーク変数の値とを比較する（ステップ６８）。
【００４２】
乱数の値がランダムウォーク変数の値よりも大きい場合、ポリシー選択処理は、所望のデータ以外にも、所望のデータを記憶しているトラックの残りの全データも取得するようにディスクコントローラに指示する（ステップ６４）。乱数の値がランダムウォーク変数の値以下の場合、監視処理はランダムウォーク変数を更新する（ステップ７２）。
【００４３】
次は図８において、監視処理は、ランダムウォーク変数の値を減少させて、この変数の値を更新する（ステップ７４）。ランダムウォーク変数の減分は、図７に示したポリシー移行確率Ｘと、大きな整数Ｎとによって決まる。
【００４４】
監視処理は、ランダムウォーク変数を更新する際に、ランダムウォーク変数を減少させた結果、変数の値が下限値以下になるか否かを判定する（ステップ７６）。下限値以下になる場合、監視処理は、ランダムウォーク変数の値を下限値を下回らない最小の値に設定して、この変数を更新する（ステップ７８）。
【００４５】
図６に戻ると、ポリシー選択処理は、不可避な読取ミスを検知すると、所望のデータのみを取得するようにディスクコントローラに指示する（ステップ８０）。図６には、ランダムウォーク変数を更新するステップ（ステップ７２）の後にトラック上のデータを取得するステップが示されている（ステップ８０）が、ランダムウォーク変数が増加される増分は非常に小さいため（ステップ５８）、これらのステップのいずれが先に実行されても実用上差し支えないことが理解される。これら２つのステップは互いに独立しており、これら２つをどのような順序で実行してもよいし、同時に実行してもよい。
【００４６】
上記のポリシー選択方法においては、回避可能な読取ミスの確率が高い場合、ランダムウォーク変数は１に限りなく近い値を取り続ける。逆に、不可避な読取ミスの確率が低い場合、ランダムウォーク変数は０に限りなく近い値を取り続ける。所望のデータのみの取得が好ましいポリシーから、トラック全体の事前取得が好ましいポリシーに最適ポリシーが遷移した場合、ランダムウォーク変数は約（Ｎ／（ｌ−Ｘ））２ステップ後に１に近づく。逆に、トラック全体の事前取得が好ましいポリシーから、所望のデータのみの取得が好ましいポリシーに最適ポリシーが遷移した場合、ランダムウォーク変数は約（Ｎ／Ｘ）２ステップ後に０に近づく。したがって、Ｎの値の選択は、最適ポリシーの遷移に対する本方法の感受性を決定する。このため、データストレージシステムが、最適ポリシーの変化に対して所望の感受性を有するように、Ｎの値が選択される。
【００４７】
図９に示すように、データを要求しているホストプロセッサ８６が接続されている第１のディスクストレージシステム８４以外の第２のディスクストレージシステム８２に関連するディスク８１に、所望のデータを記憶することが可能である。第１及び第２のディスクストレージシステム８２，８４が遠く隔たっており、使用料金が高額で帯域幅が比較的狭い通信チャネル８８でのみ接続されていることもある。
【００４８】
本発明による方法は、図９に示す構成にも等しく適用することが可能である。図９に示す分散型システムの場合、図３〜５の費用関数を変更しなければならないことがある。また、所望のデータを有するトラックからコピーされたデータを記憶しているキャッシュスロットを、ディスクストレージシステム８２，８４のうちのいずれが有しているかを表す情報をフラグに追加しなければならないことがある。
【００４９】
上に、新規であり、特許により保護されるものとして特許を請求する本発明並びにその好適な実施形態を記載した。
【図面の簡単な説明】
【図１】複数のディスクコントローラを有するディスクストレージシステムを示す図。
【図２】図１のディスクストレージシステムにあるディスクコントローラが動作モードにある状態を示す図。
【図３】ユーザーを誤って分類することによる影響を示す費用関数を示すグラフ図。
【図４】ユーザーを誤って分類することによる影響を示す費用関数を示すグラフ図。
【図５】ユーザーを誤って分類することによる影響を示す費用関数を示すグラフ図。
【図６】本発明による事前取得ポリシーの選択方法を示すフローチャート図。
【図７】ランダムウォーク変数を増加させる図６のステップを示すフローチャート。
【図８】ランダムウォーク変数を減少させる図６のステップを示すフローチャート。
【図９】図１のディスクストレージシステムを少なくとも２つ有する分散型ディスクストレージシステムを示す図。
【図３】
2004513456.tif 000003
【図４】
2004513456.tif 000004
【図５】
2004513456.tif 000005
【図６】
2004513456.tif 000006
【国際公開パンフレット】
2004513456.tif 000007
2004513456.tif 000008
2004513456.tif 000009
2004513456.tif 000010
2004513456.tif 000011
2004513456.tif 000012
2004513456.tif 000013
2004513456.tif 000014
2004513456.tif 000015
2004513456.tif 000016
2004513456.tif 000017
2004513456.tif 000018
2004513456.tif 000019
2004513456.tif 000020
2004513456.tif 000021
2004513456.tif 000022
2004513456.tif 000023
2004513456.tif 000024
2004513456.tif 000025
2004513456.tif 000026
2004513456.tif 000027
2004513456.tif 000028
2004513456.tif 000029
2004513456.tif 000030
2004513456.tif 000031
【国際公開パンフレット（コレクトバージョン）】
2004513456.tif 000032
【国際調査報告】
2004513456.tif 000033
2004513456.tif 000034
2004513456.tif 000035