(57)【要約】【課題】ストレージシステムにおけるクロック調整を管理するシステムを提供する。【解決手段】システムは、コンテンツ保持期間を施行するために用いられる現在時刻を提供するように構成されたクロックと、クロックが最後に調整された時刻を表す最終調整時刻および複数の最大調整可能時刻範囲を含むクロック管理情報を記憶するように構成されたメモリと、ストレージアクセスプログラムとを備える。ストレージアクセスプログラムは、クロックに対する新規時刻候補を受信し、現在時刻、最終調整時刻および上記複数の最大調整可能時刻範囲から選択される特定範囲を用いて、新規時刻候補が適正であるかどうかを判定し、新規時刻候補が適正であると判定される場合、クロックの現在時刻を新規時刻候補に調整する。また、ストレージアクセスプログラムは、新規時刻候補が不適正であると判定される場合、新規時刻候補へのクロックの調整を阻止するように構成される。【選択図】図２
2005276207.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムにおけるクロック調整を管理するシステムにおいて、
コンテンツ保持期間を施行するために用いられる現在時刻を提供するように構成されたクロックと、
前記クロックに対する新規時刻候補を受信するように構成された制御ロジックと、
前記新規時刻候補が適正であるかどうかを判定するように構成された制御ロジックと、
前記新規時刻候補が適正であると判定される場合、前記クロックの現在時刻を前記新規時刻候補に調整するように構成された制御ロジックと
を備えたことを特徴とするクロック調整を管理するシステム。
【請求項２】
前記新規時刻候補が不適正であると判定される場合、前記新規時刻候補への前記クロックの調整を阻止するように構成された制御ロジックをさらに備えたことを特徴とする請求項１に記載のシステム。
【請求項３】
前記新規時刻候補が適正であるかどうかを判定するように構成された前記制御ロジックが、前記新規時刻候補が特定範囲内に入るかどうかを判定するように構成された制御ロジックをさらに備え、前記新規時刻候補が前記特定範囲内に入る場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記特定範囲がメモリに記憶されることを特徴とする請求項３に記載のシステム。
【請求項５】
前記特定範囲を計算するように構成された制御ロジックをさらに備えたことを特徴とする請求項３に記載のシステム。
【請求項６】
前記特定範囲が統計的方法を用いて計算されることを特徴とする請求項５に記載のシステム。
【請求項７】
前記新規時刻候補が特定範囲内に入るかどうかを判定するように構成された前記制御ロジックが、
前記新規時刻候補と前記クロックによって提供される現在時刻との差である第１差分を計算するように構成された制御ロジックと、
前記クロックによって提供される現在時刻と前記クロックが最後に調整された時刻を表す最終調整時刻との差である第２差分を計算するように構成された制御ロジックと、
前記第２差分に基づいて前記特定範囲を選択するように構成された制御ロジックと、
前記第１差分と前記特定範囲を比較するように構成された制御ロジックとをさらに備え、前記第１差分が前記特定範囲以下である場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項３に記載のシステム。
【請求項８】
コンテンツ保持期間を施行するために用いられる現在時刻を提供するように構成されたクロックと、
クロック管理情報を記憶するように構成されたメモリと、
前記クロックに対する新規時刻候補を受信し、前記クロック管理情報を用いて前記新規時刻候補が適正であるかどうかを判定し、前記新規時刻候補が適正であると判定される場合、前記クロックの現在時刻を前記新規時刻候補に調整するように構成されたストレージアクセスプログラムとを備えたことを特徴とするストレージシステム。
【請求項９】
前記ストレージアクセスプログラムが、前記新規時刻候補が不適正であると判定される場合、前記新規時刻候補への前記クロックの調整を阻止するようにさらに構成されたことを特徴とする請求項８に記載のストレージシステム。
【請求項１０】
前記ストレージアクセスプログラムが、前記新規時刻候補が特定範囲内に入るかどうかを判定するようにさらに構成され、前記新規時刻候補が前記特定範囲内に入る場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項８に記載のストレージシステム。
【請求項１１】
前記クロック管理情報が複数の最大調整可能時刻範囲を有するテーブルを含み、前記特定範囲が、前記複数の最大調整可能時刻範囲から選択されることを特徴とする請求項１０に記載のストレージシステム。
【請求項１２】
前記複数の最大調整可能時刻範囲が統計的方法を用いて計算されることを特徴とする請求項１１に記載のストレージシステム。
【請求項１３】
前記クロック管理情報が、前記クロックが最後に調整された時刻を表す最終調整時刻をさらに含み、前記ストレージアクセスプログラムが、前記最終調整時刻、前記現在時刻および前記特定範囲を用いて、前記新規時刻候補が適正であるかどうかを判定するようにさらに構成されたことを特徴とする請求項１１に記載のストレージシステム。
【請求項１４】
前記ストレージアクセスプログラムが、前記新規時刻候補と前記現在時刻との差である第１差分を計算し、前記現在時刻と前記最終調整時刻との差である第２差分を計算し、前記第２差分に基づいて前記複数の最大調整可能時刻範囲から前記特定範囲を選択し、前記第１差分と前記特定範囲を比較することにより前記新規時刻候補が適正であるかどうかを判定するようにさらに構成され、前記第１差分が前記特定範囲以下である場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項１３に記載のストレージシステム。
【請求項１５】
前記ストレージアクセスプログラムが、前記特定範囲を計算するようにさらに構成されたことを特徴とする請求項１０に記載のストレージシステム。
【請求項１６】
コンテンツ保持期間を施行するために用いられる現在時刻を提供するように構成されたクロックと、前記クロックが最後に調整された時刻を表す最終調整時刻と、複数の最大調整可能時刻範囲とを含むクロック管理情報を記憶するように構成されたメモリと、前記クロックに対する新規時刻候補を受信し、前記現在時刻、前記最終調整時刻、および前記複数の最大調整可能時刻範囲から選択される特定範囲を用いて前記新規時刻候補が適正であるかどうかを判定し、前記新規時刻候補が適正であると判定される場合、前記クロックの現在時刻を前記新規時刻候補に調整するように構成されたストレージアクセスプログラムとを備えたことを特徴とするストレージシステム。
【請求項１７】
前記ストレージアクセスプログラムが、前記新規時刻候補が不適正であると判定される場合、前記新規時刻候補への前記クロックの調整を阻止するようにさらに構成されたことを特徴とする請求項１６に記載のストレージシステム。
【請求項１８】
前記ストレージアクセスプログラムが、前記新規時刻候補と前記現在時刻との差である第１差分を計算し、前記現在時刻と前記最終調整時刻との差である第２差分を計算し、前記第２差分に基づいて前記複数の最大調整可能時刻範囲から前記特定範囲を選択するようにさらに構成され、前記第１差分が前記特定範囲以下である場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項１６に記載のストレージシステム。
【請求項１９】
前記複数の最大調整可能時刻範囲が統計的方法を用いて計算されることを特徴とする請求項１６に記載のストレージシステム。
【請求項２０】
コンテンツ保持期間を施行するための現在時刻を提供するクロックを有するストレージシステムにおけるクロック調整を管理する方法において、
前記クロックに対する新規時刻候補を受信するステップと、
前記新規時刻候補が適正であるかどうかを判定するステップと、
前記新規時刻候補が適正であると判定される場合、前記クロックの現在時刻を前記新規時刻候補に調整するステップとを含むことを特徴とするクロック調整を管理する方法。
【請求項２１】
前記新規時刻候補が不適正であると判定される場合、前記新規時刻候補への前記クロックの調整を阻止するステップをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記新規時刻候補が適正であるかどうかを判定するステップが、前記新規時刻候補が特定範囲内に入るかどうかを判定するステップをさらに含み、前記新規時刻候補が前記特定範囲内に入る場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項２０に記載の方法。
【請求項２３】
前記特定範囲を計算するステップをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記特定範囲が統計的方法を用いて計算されることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記新規時刻候補が特定範囲内に入るかどうかを判定するステップが、前記新規時刻候補と前記クロックによって提供される現在時刻との差である第１差分を計算するステップと、
前記クロックによって提供される現在時刻と前記クロックが最後に調整された時刻を表す最終調整時刻との差である第２差分を計算するステップと、
前記第２差分に基づいて前記特定範囲を選択するステップと、
前記第１差分と前記特定範囲を比較するステップとをさらに含み、前記第１差分が前記特定範囲以下である場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項２２に記載の方法。
【請求項２６】
コンテンツ保持期間を施行するために用いられる現在時刻を提供するように構成されたクロックと、クロック管理情報を記憶するように構成されたメモリとを有するストレージシステムにおけるクロック調整を管理する方法において、
前記クロックに対する新規時刻候補を受信するステップと、
前記クロック管理情報を用いて前記新規時刻候補が適正であるかどうかを判定するステップと、
前記新規時刻候補が適正であると判定される場合、前記クロックの現在時刻を前記新規時刻候補に調整するステップとを含むことを特徴とするクロック調整を管理する方法。
【請求項２７】
前記新規時刻候補が不適正であると判定される場合、前記新規時刻候補への前記クロックの調整を阻止するステップをさらに含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記新規時刻候補が適正であるかどうかを判定するステップが、前記新規時刻候補が特定範囲内に入るかどうかを判定するステップを含み、前記新規時刻候補が前記特定範囲内に入る場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項２６に記載の方法。
【請求項２９】
前記クロック管理情報が複数の最大調整可能時刻範囲を有するテーブルを含み、前記特定範囲が、前記複数の最大調整可能時刻範囲から選択されることを特徴とする請求項２８に記載の方法。
【請求項３０】
前記複数の最大調整可能時刻範囲が統計的方法を用いて計算されることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記クロック管理情報が、前記クロックが最後に調整された時刻を表す最終調整時刻をさらに含み、前記最終調整時刻、前記現在時刻および前記特定範囲を用いて、前記新規時刻候補が適正であるかどうかを判定するステップをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３２】
前記新規時刻候補と前記現在時刻との差である第１差分を計算するステップと、
前記現在時刻と前記最終調整時刻との差である第２差分を計算するステップと、
前記第２差分に基づいて前記複数の最大調整可能時刻範囲から前記特定範囲を選択するステップと、
前記第１差分と前記特定範囲を比較することにより前記新規時刻候補が適正であるかどうかを判定するステップとをさらに含み、前記第１差分が前記特定範囲以下である場合、前記新規時刻候補が適正であると判定されることを特徴とする請求項３１に記載の方法。
【請求項３３】
コンテンツ保持期間を施行するための現在時刻を提供するクロックを有するストレージシステムにおけるクロック調整を管理する方法において、
前記クロックに対する新規時刻候補を受信するステップと、
前記新規時刻候補が特定範囲内に入る場合、前記クロックの現在時刻を前記新規時刻候補に調整するステップとを含むことを特徴とするクロック調整を管理する方法。
【請求項３４】
前記新規時刻候補が前記特定範囲内に入らない場合、前記新規時刻候補への前記クロックの調整を阻止するステップをさらに含むことを特徴とする請求項３３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的にはストレージシステムのためのクロック調整に関し、より詳細には、ストレージシステムにおけるコンテンツ保持に関連してクロックの管理および調整を行う方法およびシステムに関する。
【背景技術】
【０００２】
今日の慎重なビジネス戦略の重要な要素として、情報の保持（具体的には、長期間にわたる記録の作成、保存、アクセス、管理、および保持のためのプロセス）に対する新たな規制の遵守がある。電子メール、患者記録、あるいは金融取引のいずれかを問わず、企業は、これらの大量の情報に対する無権限のアクセスや破壊を予防するためのポリシー、手続き、およびシステムを整備しなければならない。数年間から永久保存までのさまざまな所定の保持期間の間、事業および経営の重要なコンテンツを保管する必要があることが、政府および業界によって公表されたいくつかの遵守規制の下で規定されている。これらの規制は、会社がデータ保持およびストレージ管理のための自己の方法を迅速に再評価し転換することを要請している。例えば、データ保護に関する米国政府規制は現在、医療（ＨＩＰＡＡ）、金融サービス（ＳＥＣ  １７ａ４）、企業アカウンタビリティ（Sarbanes-Oxley法）、生命科学（２１  ＣＦＲ  Ｐａｒｔ  １１）、および政府（ＤｏＤ  ５０１５．２−ＳＴＤ）に適用される。
【０００３】
具体的には、政府や業界のいくつかの規則が、書き換え不能消去不能フォーマットで事業活動記録を保存することに関して会社を規制している。そのような一例として、米国証券取引委員会（ＳＥＣ）は、すべての取引所会員、ブローカーおよびディーラーが、顧客またはクライアントとのすべての通信の記録を、１９３４年の米国証券取引法規則１７ａ−４に従い書き換え不能消去不能フォーマットで保存することを要求している。もう１つの例として、ＮＡＳＤ（全米証券業協会）は、規則３０１０および３１１０による同様の規制を有する。多くの場合、保存すべき通信は、電子メール、インスタントメッセージおよびボイスメールのような電子通信を含む。
【０００４】
既存の多くのストレージシステムは、時刻照合に基づいてコンテンツの保存の管理をしている。例えば、典型的なストレージシステムでは、満了時刻を関連するファイルに割り当てる。ストレージシステムは、適宜、満了時刻を内部クロックと照合することにより、データが上書き可能かどうかを判定する。この手法は、いくつかの欠点を有する。例えば、内部クロックの無権限の、および／または不法な改竄のため、時刻照合が役に立たなくなることにより、ファイルが当初許可されたよりも早く削除可能になり得る。ストレージシステムが、あるデータを現在から３年間保存し続けることになっているとする。内部クロックを３年進めるように調整すると、ユーザは、意図した保持期間の満了前にそのようなデータを削除することが可能となってしまう。
【０００５】
もう１つの状況として、内部クロックの許可された調整であっても、時刻照合を不用意に無意味にしてしまうことがあり得る。内部クロックには、例えば、クロック障害に由来する不正確さや、クロックの内部機構とは無関係の日常的動作または状況から生じる自然変動等の偶然誤差が生じることがある。その結果、ストレージシステムは、少なくとも権限のあるユーザが、内部クロックを正しい時刻に調整することができるようにする必要がある。しかし、権限のあるユーザが不正確な時刻を入力すると、対応するファイルの保持期間に影響を及ぼす可能性がある。
【０００６】
現在、内部クロックを調整することができるいくつかの方法が存在する。１つの方法では、ネットワークタイムプロトコル（ＮＴＰ）を用いる。ＮＴＰは、形式的構造を規定し、その実装に有用な情報をまとめたものである。ＮＴＰは、通常の同軸ケーブルから光ファイバまでのさまざまなレートおよび媒体で動作する大規模で多様なインターネットにおいて、時刻を同期させ、時刻分布を調和させるためのメカニズムを提供する。ＮＴＰは、後戻り可能な時刻の設計を使用し、自己組織的な、階層化されたマスタ・スレーブ構成で動作する分散したタイムサーバのサブネットが、有線あるいは無線で、サブネット内のローカルクロックを国内時刻基準に同期させる。タイムサーバは、ローカルルーティングアルゴリズムおよびタイムデーモンにより、基準時刻を再配布することも可能である。さらなる情報はＲＦＣ１３０５に見出すことができる。
【０００７】
もう１つの方法として、自立無線クロックの自動調整がタイムマークによって提供される。具体的には、時刻測定方法を、ディジタルクロックまたは準アナログクロックにおける自動レート補正プロセスと組み合わせる。クロックレート偏差データが、所定のロックインレンジ内で繰り返し測定され、送信機から受信されるタイムマークを用いてクロック発振器周波数から導出される。そして、偏差データは記憶され、クロックレートおよび発振器周波数を補正するために用いられ、それにより、次のタイムマークの到着まで、記憶されたデータが維持される。
【０００８】
これらの方法は、基準時刻に基づいて内部クロックを調整する方法のみに注目している。しかし、これらの方法は、基準時刻の適正性をチェックしていない。その結果、基準時刻が不正確である場合、内部クロックもまた不正確に調整されることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、ストレージシステムにおけるデータ保持に関わる正確なクロック調整に関連して、上記の課題およびその他の課題を解決することができる方法およびシステムを提供することが望ましい。
【課題を解決するための手段】
【００１０】
ストレージシステムにおけるクロック調整を管理するシステムが提供される。システムは、コンテンツ保持期間を施行するために用いられる現在時刻を提供するように構成されたクロックと、クロックが最後に調整された時刻を表す最終調整時刻および複数の最大調整可能時刻範囲を含むクロック管理情報を記憶するように構成されたメモリと、ストレージアクセスプログラムとを備える。
【００１１】
ストレージアクセスプログラムは、クロックに対する新規時刻候補を受信し、現在時刻、最終調整時刻および上記複数の最大調整可能時刻範囲から選択される特定範囲を用いて、新規時刻候補が適正であるかどうかを判定し、新規時刻候補が適正であると判定される場合、クロックの現在時刻を新規時刻候補に調整する。ストレージアクセスプログラムは、さらに、新規時刻候補が不適正であると判定される場合、新規時刻候補へのクロックの調整を阻止するように構成される。
【００１２】
一実施形態では、ストレージアクセスプログラムは、新規時刻候補が適正であるかどうかを判定する時に、新規時刻候補と現在時刻の差である第１差分を計算し、現在時刻と最終調整時刻の差である第２差分を計算し、第２差分に基づいて上記複数の最大調整可能時刻範囲から上記特定範囲を選択する。第１差分が上記特定範囲以下である場合、新規時刻候補は適正であると判定される。
【００１３】
本発明のシステムは、不法なクロック調整動作を禁止する方法を提供する。ストレージシステムのユーザがストレージシステム内のクロックを調整しようと試みると、ストレージシステムは、クロック調整候補の適正性を確認する。ストレージシステムがクロック調整候補が適正であると判定した場合、ストレージシステムはクロックを新規時刻候補に調整し、それ以外の場合、ストレージシステムはクロックへの調整を阻止し、エラー処理ルーチンを呼び出す。
【００１４】
一態様では、適正性チェックは、２つの時間差に基づいて実行される。第１の時間差は、新規時刻候補とクロックの現在時刻との時間差である。第２の時間差は、現在時刻と最終調整時刻との時間差である。この第２の時間差を用いて、適切な最大調整時刻範囲を選択する。第１の時間差が、選択された最大調整可能時刻範囲以下である場合、新規時刻候補は適正とみなされ、クロックに対する調整が行われる。それ以外の場合、新規時刻候補は不適正とみなされ、クロックに対する調整は行われない。
【００１５】
明細書の残りの部分、ならびに図面および特許請求の範囲を参照すれば、本発明のその他の特徴および利点が明らかとなるであろう。本発明のさらなる特徴および利点、ならびに本発明の種々の実施形態の構造および動作は、添付図面に関して以下で詳述される。図中、同一参照番号は同一または機能的に類似の要素を示す。
【発明を実施するための最良の形態】
【００１６】
以下、１つまたは複数の例示的実施形態の形式における本発明について説明する。図１は、本発明に関して導入することが可能なシステム構成を示す簡略化したブロック図である。このシステム構成は、複数のホスト１０１０、１０２０、１０３０、インターネットプロトコル（ＩＰ）ネットワーク１０４０、ストレージシステム１０５０およびストレージ管理ホスト１０７０を含む。ホスト１０１０、１０２０、１０３０は、それらのストレージ要求を満たす目的で、ＩＰネットワーク１０４０経由でストレージシステム１０５０と通信する。理解されるべきであるが、ＩＰネットワーク１０４０の代わりに、ファイバチャネル(Fibre Channel)ネットワーク等の他のコンピュータネットワークを用いてもよい。そして、ストレージシステム１０５０は、ストレージ管理ホスト１０７０に接続される。ストレージ管理ホスト１０７０は、ストレージシステム１０５０の種々の機能および動作を管理する。例えば、ストレージ管理ホスト１０７０は、ストレージシステム１０５０のアクセス可能ホストを構成することができる。また、ストレージ管理ホスト１０７０は、ストレージシステム１０５０の内部クロックを調整することもできる。
【００１７】
図２は、本発明によるストレージシステム１０５０の例示的実施形態を示す簡略化したブロック図である。ストレージシステム１０５０は、以下でさらに説明するように、ボリューム２０９０に関するアクセス機能を実行する能力を提供し、指定された期間内にホスト１０１０、１０２０、１０３０がボリューム２０９０に記憶されたデータを上書きしないようにする。一実施形態では、ボリューム２０９０は、ハードディスクドライブのような単一の磁気ディスクドライブを備えた物理デバイスである。しかし、理解されるべきであるが、他の実施形態として、ボリューム２０９０は、複数の物理ディスクドライブを備えた論理デバイスであってもよい。１つの例示的実施形態では、ストレージシステム１０５０によって実行されるべき種々の機能および動作は、ストレージアクセスプログラム２０５０によって処理される。
【００１８】
ストレージシステム１０５０は、ボリューム２０９０に関していくつかの機能を実行する。これらの機能の１つは、ボリューム２０９０の書き込み可能・書き込み不能の管理に関する。ボリューム２０９０を構成するため、ユーザは、ストレージ管理ホスト１０７０を用いてストレージアクセスプログラム２０５０にコマンドを送る。コマンドは、例えば、書き込み可能／書き込み不能の状態および任意の保持期間等、ボリューム２０９０に対する種々の書き込みアクセス条件を指定する。コマンドに応答して、ストレージアクセスプログラム２０５０は、ボリューム２０９０に関連するアクセス状態２１５０および保持時間２１２０を設定する。
【００１９】
ボリューム２０９０を、指定された期間の間、書き込み不能として構成すべき場合、ストレージアクセスプログラム２０５０は、ボリュームコントローラ２０８０を通じて、ボリューム２０９０に関連するアクセス状態２１５０を「書き込み不能」に設定する。また、ストレージアクセスプログラム２０５０は、ユーザによって提供された保持期間を、内部クロック２０７０から取得される現在時刻に加算することによって、書き込み不能期間すなわち保持期間の終了時刻を計算する。そして、保持期間の終了時刻を、ボリューム２０９０に関連する保持時間カウンタ２１２０に記憶する。そして、ストレージアクセスプログラム２０５０は、関連処理情報をストレージ管理ホスト１０７０に返す。
【００２０】
ボリューム２０９０を書き込み可能として構成すべき場合、ストレージアクセスプログラム２０５０は、ボリューム２０９０をそのように構成することができるように、いくつかのチェックを実行する。まず、ストレージアクセスプログラム２０５０は、ボリューム２０９０に関連するアクセス状態２１５０をチェックする。アクセス状態２１５０が、ボリューム２０９０が既に書き込み可能として構成されていることを示す場合、ストレージアクセスプログラム２０５０は、ボリューム２０９０が既に書き込み可能であることを示す関連処理情報をストレージ管理ホスト１０７０に返す。
【００２１】
他方、アクセス状態２１５０が、ボリューム２０９０が現在は書き込み不能として構成されていることを示す場合、ストレージアクセスプログラム２０５０は、ボリューム２０９０に関連する保持時間カウンタ２１２０に記憶されている値を、クロック２０７０から取得される現在時刻と比較する。保持時間カウンタ２１２０の値が現在時刻よりも遅い場合、ストレージアクセスプログラム２０５０は、アクセス状態２１５０を「書き込み可能」に変更しない。すなわち、ストレージアクセスプログラム２０５０は、アクセス状態２１５０を「書き込み不能」のままにしておく。また、ストレージアクセスプログラム２０５０は、例えば、ボリューム２０９０に対して指定された保持期間がまだ満了していないことを示す関連処理情報をストレージ管理ホスト１０７０に返す。これに対して、保持時間カウンタ２１２０の値が現在時刻よりも早い場合、ボリューム２０９０に対して指定された保持期間が既に満了したことを意味しており、ストレージアクセスプログラム２０５０は、アクセス状態２１５０を「書き込み可能」に設定し、保持時間カウンタ２１２０をクリアする。そして、ストレージアクセスプログラム２０５０は、関連処理情報をストレージ管理ホスト１０７０に返す。
【００２２】
ストレージアクセスプログラム２０５０によって実行されるもう１つの機能は、ボリューム２０９０の読み出し／書き込み要求の管理に関する。ホスト１０１０、１０２０、１０３０によって発行される読み出し／書き込み要求は、ホスト用ネットワークインタフェース２０２０を通ってストレージアクセスプログラム２０５０に送られる。
【００２３】
読み出し要求を受信した場合、ストレージアクセスプログラム２０５０は、ボリュームコントローラ２０８０経由でボリューム２０９０から関連データを読み出し、ホスト用ネットワークインタフェース２０２０を通じて要求側ホスト１０１０、１０２０または１０３０にそのデータを返す。
【００２４】
書き込み要求を受信した場合、ストレージアクセスプログラム２０５０は、ボリューム２０９０に関連するアクセス状態２１５０をチェックする。アクセス状態２１５０が、ボリューム２０９０が書き込み不能であることを示している場合、ストレージアクセスプログラム２０５０は書き込み要求を実行しない。すなわち、ボリューム２０９０にデータは書き込まれない。そして、ストレージアクセスプログラム２０５０は、例えば、関連ボリュームが書き込み不能に分類されているために書き込み要求が実行されないことを示す関連処理情報を、ホスト用ネットワークインタフェース２０２０を通じて要求側ホスト１０１０、１０２０または１０３０に返す。
【００２５】
他方、アクセス状態２１５０が、ボリューム２０９０が書き込み可能であることを示している場合、ストレージアクセスプログラム２０５０はボリューム２０９０にデータを書き込み、例えば、書き込み要求が正しく実行されたことを示す関連処理情報を、ホスト用ネットワークインタフェース２０２０を通じて要求側ホスト１０１０、１０２０または１０３０に返す。
【００２６】
一実施形態では、ストレージシステム１０５０は１つのボリューム２０９０を有する。しかし、理解されるべきであるが、他の実施形態では、ストレージシステム１０５０は複数のボリュームを有してもよく、各ボリュームが上記のように書き込み可能または書き込み不能として構成される。
【００２７】
上記のように、ストレージシステム１０５０は、クロック２０７０を利用して、ボリューム２０９０に関連する保持期間の終端を計算しボリューム２０９０を「書き込み可能」として構成することができるかどうかをチェックする際に、現在時刻を提供する。１つの例示的実施形態では、クロック２０７０はユーザにより調整可能である。すなわち、ユーザは、クロック２０７０を新規時刻に調整するようにストレージシステム１０５０に指示するコマンドを発行することができる。コマンドは、ストレージ管理ホスト１０７０を通じて発行され、ストレージアクセスプログラム２０５０によって処理される。
【００２８】
クロック２０７０を新規時刻に調整する前に、ストレージアクセスプログラム２０５０は、まず、クロック管理情報２０６０を用いて、新規時刻の適正性を判定する。新規時刻が適正である場合、ストレージアクセスプログラム２０５０は、クロック２０７０を新規時刻に調整する。これに対して、新規時刻が適正でない場合、ストレージアクセスプログラム２０５０は、クロック２０７０に対する調整を実行せず、それについてユーザに通知する。
【００２９】
一実施形態では、クロック管理情報２０６０は、２つのカテゴリの情報を含む。第１のカテゴリは、最終調整時刻２１００である。好ましくは、最終調整時刻２１００は、電源断にかかわらずデータを保持することができる不揮発性媒体（例えば、フラッシュＲＯＭ、ディスクドライブ等）に記憶される。第２のカテゴリは、調整可能時刻範囲テーブル２１１０である。一実施形態では、調整可能時刻範囲テーブル２１１０は、永久的に変更不可能な媒体（例えばＲＯＭ等）に記憶させてもよい。代替実施形態では、調整可能時刻範囲テーブル２１１０は、ボリューム２０９０または他の不揮発性メモリデバイスに記憶させてもよい。さらに、いくつかの実施形態では、調整可能時刻範囲テーブル２１１０は、例えばストレージ管理ホスト１０７０の制御下で変更可能である。
【００３０】
図３は、調整可能時刻範囲のテーブル２１１０の一例を示している。図３に示されているように、テーブル２１１０は、さらに、２つのテーブル２１３０および２１４０を含む。第１のテーブル２１３０は、最終調整からの期間に関するいくつかのエントリを含む。この例では、最終調整からの期間は月単位である。エントリは、１か月から１２０か月までの月数に対応する。しかし、理解されるべきであるが、他の時間単位、例えば日、週または時も使用可能である。
【００３１】
第２のテーブル２１４０は、最大調整可能時刻範囲に関するエントリを含む。この例では、調整可能時刻範囲は分単位である。第２のテーブル２１４０内の各エントリは、最大調整可能時刻範囲を表し、第１のテーブル２１３０内の関連するエントリに対応する。一実施形態では、調整可能時刻範囲２１４０を表すエントリは、以下でさらに説明するように、統計計算によって得られる。
【００３２】
調整可能時刻範囲テーブル２１１０は、以下のように解釈され使用される。まず、ストレージアクセスプログラム２０５０は、最終調整時刻２１００およびクロック２０７０から取得される現在時刻を用いて、最終調整からの期間を計算する。最終調整からの期間が求められたら、その期間に対する最大調整可能時刻範囲を表す対応するエントリを第２のテーブル２１４０から読み出す。例えば、クロック２０７０が最後に調整されてから１か月経過している場合、クロック調整に対する最大調整可能時刻範囲は１．２分（７２秒）である。したがって、現在のクロック時刻が１２：３４：００である場合、ストレージアクセスプログラム２０５０は、クロック２０７０を、１２：３２：４８〜１２：３５：１２の間の範囲（すなわち、１２：３４：００の前後の７２秒、計１４４秒の範囲）に調整する。
【００３３】
留意すべきであるが、いくつかの実施形態では、クロック２０７０への調整は、付加的条件に従ってもよい。例えば、１つの条件として、クロック２０７０をその現在時刻よりも進めるような調整を禁止することが挙げられる。本明細書に提供される開示および教示に基づいて、当業者は、クロック２０７０の調整に関して課すことができる他の条件について知るであろう。
【００３４】
上記のように、最大調整可能時刻範囲を表す第２のテーブル２１４０内のエントリは、統計計算を用いて導出される。図４は、クロック２０７０の偶然誤差からの時刻分布を示している。上記のように、偶然誤差には、例えば、クロック障害に由来する不正確さや、クロック２０７０の内部機構とは無関係の日常的動作または状況から生じる自然変動がある。ストレージシステム１０５０内のクロック２０７０の偶然誤差分布が統計的標準確率密度分布関数に近似的に等しいと仮定する。統計的標準確率密度分布関数を表す曲線４０２０は、ストレージシステム１０５０内のクロック２０７０の偶然誤差分布を示す。横軸４０３０は、クロック２０７０の偶然誤差から生じるクロック２０７０の時間シフトを表す。縦軸４０１０は、対応する確率密度を表す。
【００３５】
統計的標準確率密度分布関数は次式（式４．１）で表される。
【数１】
2005276207.tif 000003
σ：標準偏差
【００３６】
この場合、標準偏差は、クロック２０７０の月間誤差率に対応する。一般に、クロック２０７０の平均月間誤差率は±１５秒である。
【００３７】
第２のテーブル２１４０に記憶される最大調整可能時刻範囲は、この式（式４．１）を用いて計算される。計算を実行する前に、許容確率を定め、クロック精度を求める。
【００３８】
許容確率とは、ストレージシステム１０５０のユーザが許容することができる偶然誤差の程度を意味する。許容確率が１００％に近いほど、ストレージシステム１０５０のユーザがクロック２０７０を調整するための範囲が大きくなる。好ましくは、許容確率は１００％に等しくない。図４で陰影を付けた領域は、１か月後のずれが（正確な時刻−Ｔ１）と（正確な時刻＋Ｔ１）の間になる確率を表す。
【００３９】
最大調整可能時刻範囲Ｔ１（４０５０）は、次式（式４．２）を解くことによって得られる。
【数２】
2005276207.tif 000004
【００４０】
例えば、第２のテーブル２１４０に示した１．２（分）（これは、最後の調整から１か月の期間に対応する）は、標準偏差が１５（秒）で、許容確率が９９．９９９９％である場合に式４．２を解くことによって得られる。２か月以上後の最大調整可能時刻範囲も式４．２を解くことにより計算されるが、２か月以上の偏差は１か月の偏差とは異なる。この実施態様では、１か月後の最大調整可能時刻範囲（Ｔ１）のｎ倍が、ｎか月後の最大調整可能時刻範囲（Ｔｎ）に等しい（すなわち、ｎ×Ｔ１＝Ｔｎ）と仮定している。
【００４１】
理解されるべきであるが、図３の調整可能時刻範囲テーブル２１１０に示した値は単なる例示のために提供されている。調整可能時刻範囲テーブル２１１０の値は、クロック精度、許容確率および／または統計計算の方法によって異なり得る。本明細書に提供される開示および教示に基づいて、当業者は、例えばシステムの設計、制約および要件等の種々のファクタに応じて、調整可能時刻範囲テーブルのための値を導出する方法を認識するであろう。
【００４２】
一実施形態では、調整可能時刻範囲テーブル２１１０は、ストレージシステム１０５０の一部として記憶され、クロック調整が許容されるかどうかを判定するための適正性情報を提供するために用いられる。調整可能時刻範囲テーブル２１１０は、必要に応じて変更または更新することができる。いくつかの実施形態では、調整可能時刻範囲テーブル２１１０に記憶されるデータに等価な情報が、クロック調整が許容されるかどうかを判定する際に随時必要に応じて計算される。例えば、クロック調整を求める要求を受信するたびごとに、ストレージアクセスプログラム２０５０は、上記のように計算を実行することにより、最大調整可能時刻範囲を導出する。
【００４３】
図５は、クロック調整を実行する動作フローを示している。ストレージアクセスプログラム２０５０は、クロック調整の実行を制御する。図５に示すように、５０２０で、ストレージ管理ホスト１０７０のユーザが、クロック２０７０を調整する際に用いるための新規時刻を入力する。ストレージアクセスプログラム２０５０は、管理ホスト用ネットワークインタフェース２０４０を通じてストレージ管理ホスト１０７０から新規時刻を受信する。
【００４４】
５０３０で、ストレージアクセスプログラム２０５０は、クロック２０７０が調整されるのが初めてであるかどうかをチェックする。一般的に、初期クロック調整は、較正中にストレージシステムベンダによって実行される。ストレージシステム１０５０が市販される前に、クロック２０７０はベンダによって適切な時刻に調整される。ストレージアクセスプログラム２０５０は、最終調整時刻２１００を調べることによって、クロック２０７０が調整されるのが初めてであるかどうかをチェックする。クロック２０７０が一度も調整されたことがない場合、最終調整時刻２１００には値がない（例えば、最終調整時刻２１００が空白、ヌル等である）はずである。ストレージアクセスプログラム２０５０が、クロック２０７０が調整されるのが初めてであると判定した場合、５０５０で、ストレージアクセスプログラム２０５０は、ユーザによって提供された新規時刻を用いてクロック調整を実行する。そして、最終調整時刻２１００も更新される。
【００４５】
クロック２０７０が調整されるのが初めてでないと判定される場合、５０４０で、ストレージアクセスプログラム２０５０は、ユーザによって提供された新規時刻の適正性をチェックする。適正性チェックの詳細については後でさらに説明する。新規時刻が不適正であると判定される場合、５０６０で、エラー処理を呼び出す。エラー処理としては、例えば、エラーメッセージを示し、エラーイベントをログに記録すること等がある。新規時刻が適正であると判定される場合、ストレージアクセスプログラム２０５０は、５０５０で、クロック２０７０を新規時刻に調整し、５０７０で、最終調整時刻２１００を更新する。留意すべきであるが、５０５０および５０７０に関連して実行される動作は、いかなる順序で実施することも可能であり、並列に実施してもよい。
【００４６】
図６は、適正性チェックの動作フローを示している。６０１０で、ユーザによって提供された新規時刻とクロック２０７０から取得される現在時刻との時間差Ａ１を計算する。６０２０で、最終調整時刻２１００とクロック２０７０から取得される現在時刻との時間差Ａ２を計算する。６０３０で、Ａ２に基づいて調整可能時刻範囲テーブル２１１０から適切な最大調整可能時刻範囲Ａ３を選択する。
【００４７】
６０４０で、ストレージアクセスプログラム２０５０は、時間差Ａ１と、選択した最大調整可能時刻範囲Ａ３を比較することにより、ユーザによって提供された新規時刻の適正性を判定する。時間差Ａ１が、選択した最大調整可能時刻範囲Ａ３よりも大きい場合、新規時刻は不適正であると判定される。時間差Ａ１が、選択した最大調整可能時刻範囲Ａ３以下である場合、新規時刻は適正であると判定される。理解されるべきであるが、適正性チェックは、例えばシステムの設計および／または要件に応じて、他の判断基準またはファクタを用いて実行されることも可能である。本明細書に提供される開示および教示に基づいて、当業者は、本発明による適正性チェックを実行するための他の手段および／または方法について知るであろう。
【００４８】
１つの例示的な実施態様では、本発明は、制御ロジックの形態のソフトウェアを用いて実施される。ソフトウェアは一体化されていてもモジュール化されていてもよい。別法として、本発明を実施するために、ハードウェアまたはソフトウェアとハードウェアの組合せを用いてもよい。本明細書に提供される開示および教示に基づいて、当業者は、本発明を実施するための他の手段および／または方法について知るであろう。
【００４９】
本発明は、クロックを用いてコンテンツ保持の管理を行う任意のストレージシステムに導入することができる。本発明は、クロック調整が適正な時刻範囲に制限されることを保証するようにクロック調整を管理するために使用可能である。このような制限は、不法なクロック調整を最小限にすることにより、コンテンツ保持の完全性（インテグリティ）を保証する。
【００５０】
本発明は、ストレージシステムの一体化された部分として実施されてもよく、ストレージシステムと協働するモジュール化されたシステムとして実施されてもよい。本明細書に提供される開示および教示に基づいて、当業者は、本発明を実施するための他の手段および／または方法について認識するであろう。
【００５１】
言うまでもなく、本明細書に記載の例および実施形態は単なる例示目的であり、当業者には、それらを考慮した種々の変更や変形が示唆されるであろうが、それらは本出願の精神および視野ならびに添付の特許請求の範囲に包含される。本明細書に引用されるすべての刊行物、特許、および特許出願は、全体として参照により本明細書に援用される。
【図面の簡単な説明】
【００５２】
【図１】本発明に関して導入することが可能なシステム構成を示す簡略化したブロック図である。
【図２】本発明によるストレージシステムの例示的実施形態を示す簡略化したブロック図である。
【図３】本発明による調整可能時刻範囲のテーブルの一例を示す簡略化したテーブルである。
【図４】クロックの偶然誤差からの時刻分布を示す簡略化したグラフである。
【図５】本発明によるクロック調整を実行する動作フローを示す流れ図である。
【図６】本発明による適正性チェックの動作フローを示す流れ図である。
【符号の説明】
【００５３】
１０１０，１０２０，１０３０  ホスト
１０４０  インターネットプロトコル（ＩＰ）ネットワーク
１０５０  ストレージシステム
１０７０  ストレージ管理ホスト
２０２０  ホスト用ネットワークインタフェース
２０４０  管理ホスト用ネットワークインタフェース
２０５０  ストレージアクセスプログラム
２０６０  クロック管理情報
２０７０  内部クロック
２０８０  ボリュームコントローラ
２０９０  ボリューム
２１００  最終調整時刻
２１１０  調整可能時刻範囲テーブル
２１２０  保持時間
２１５０  アクセス状態
【図１】
2005276207.tif 000005
【図２】
2005276207.tif 000006
【図３】
2005276207.tif 000007
【図４】
2005276207.tif 000008
【図５】
2005276207.tif 000009
【図６】
2005276207.tif 000010
【外国語明細書】
2005276207000001.pdf
2005276207000002.pdf
2005276207000003.pdf
2005276207000004.pdf