JP4667925B2 - 書込み処理管理のための方法、システム、およびプログラム - Google Patents

書込み処理管理のための方法、システム、およびプログラム Download PDF

Info

Publication number
JP4667925B2
JP4667925B2 JP2005097433A JP2005097433A JP4667925B2 JP 4667925 B2 JP4667925 B2 JP 4667925B2 JP 2005097433 A JP2005097433 A JP 2005097433A JP 2005097433 A JP2005097433 A JP 2005097433A JP 4667925 B2 JP4667925 B2 JP 4667925B2
Authority
JP
Japan
Prior art keywords
array
stack
item
write operation
index value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005097433A
Other languages
English (en)
Other versions
JP2005293586A (ja
Inventor
ジョン・ジェイ・ウォルフガング
フィリップ・マシュー・ドウトマス
ケネス・フェアクロー・デイ・ザ・サード
ケネス・ウェイン・ボイド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005293586A publication Critical patent/JP2005293586A/ja
Application granted granted Critical
Publication of JP4667925B2 publication Critical patent/JP4667925B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、記憶装置への書込み処理を管理するための方法、システム、およびプログラムに関する。
コンピューティング・システムは、データを処理し、アプリケーション・プログラムを実行するための1つまたは複数のホスト・コンピュータ(「ホスト」)と、データを保管するための直接アクセス記憶装置(DASD)と、ホストとDASDとの間のデータの転送を制御するための記憶コントローラとを含む場合が多い。制御ユニットまたは記憶ディレクタとも呼ばれる記憶コントローラは、さもなければ直接アクセス記憶装置(DASD)と呼ばれる、ループ・アーキテクチャ内に接続された多数のハード・ディスク・ドライブからなる場合が多い記憶空間へのアクセスを管理する。ホストは、記憶コントローラにより記憶空間に入出力(I/O)要求を伝達することができる。
ディスク状の記憶媒体は複数の物理的部分に細分することができ、そのそれぞれは「パイ状」になっており、「セクタ」と呼ばれることが多い。その円形の媒体をパイ・スライスに分割することは、ドライブの読取り/書込みヘッドによるデータの位置特定を容易にする。また、ディスケットまたはディスクは、概して、いくつかの同心円またはトラックに分割される。各トラックは、概して、読取りまたは書込み操作のためにアドレス可能な最小記憶単位を表す、いくつかのクラスタに分割される。概して、1つのクラスタは256または512バイトの長さである。したがって、データは、そのデータが保管されているセクタ、同心トラック、およびクラスタのうちの1つまたは複数を識別することによって位置を特定することができる。
書込み操作において、データを記憶媒体に書き込むことができる。電源障害または装置の誤動作によって書込み操作が中断された場合、記憶媒体に書き込まれたデータは破壊されるか、さもなければ不完全なものになる可能性がある。したがって、記憶コントローラは、データが書き込まれている宛先位置のリストを頻繁に維持する。書込み操作中の場合の宛先位置のリストは、電力が失われた場合でもリスト情報が維持されるように、不揮発性記憶(NVS)メモリ内に保持される場合が多い。
特定の宛先位置への書込み操作が完了すると、その特定の書込み操作の宛先位置はリストから除去することができる。しかし、完了前に書込み操作が中断された場合、書込み操作中の場合の宛先位置のリストを検査して、不完全なまたは破壊されたデータを収容している可能性のある書込み宛先位置を識別することができる。
図1は、典型的な従来技術の書込み操作中の宛先位置のリスト10の一例を示している。図1の例では、リスト10は複数の項目12a、12b、・・・12nを有し、そのぞれぞれは書込み操作中の宛先位置を保管することができる。図1の例では、宛先位置は、たとえば、リスト項目12cによって示す通り、トラック識別子(「トラックID」)によって識別される。リスト項目12a、12b、・・・12nのうちの1つへの各トラックIDの入力後、リスト10の内容について論理的冗長検査を実行することができ、その検査結果は項目14に保管することができる。
書込み操作の完了時に、その書込み操作の宛先位置のトラックIDは、たとえば、リスト項目12bによって示す通り、リスト10から除去することができる。図1の例では、リスト項目12b、12d、12e、および12nは、トラックIDを保管するために使用可能であるものとして示されている。この場合も、リスト項目12a、12b、・・・12nのうちの1つからのトラックIDの除去後、リスト10の内容について論理的冗長検査を実行することができ、その検査結果は論理的冗長検査項目14に保管することができる。
リスト10の使用可能リスト項目の迅速な識別を容易にするために、リスト10の使用可能な項目のリストが維持される場合が多い。図1の例では、たとえば、項目12b、12d、12eなどの使用可能リスト項目は、それぞれ、リスト項目12a、12b、・・・12nのうちの次の使用可能リスト項目の位置を識別するポインタを収容している。このようなポインタは、たとえば、アドレス・オフセットの形を取ることができる。しかし、たとえば、項目12nなど、リスト10の最後の使用可能な項目は、その最後の項目の後に次の使用可能な項目がまったくないので、ポインタを収容していない可能性がある。書込み操作の開始の前の初期設定時には、リスト10のリスト項目12a、12b、・・・12nのそれぞれが使用可能である可能性がある。このため、リスト10が初期設定されると、リスト10は、最後の項目12nを除くリスト項目12a、12b、・・・のそれぞれのためのポインタを収容している可能性がある。
動作に際しては、書込み操作中という状態がその完了前に中断された場合、書込み操作中の場合、即ち未完の書込み操作のトラックIDのリスト10をトラバースすることができる。このように、書込み操作中の宛先位置のトラックIDは、不完全なまたは破壊されたデータを収容している可能性があり、識別することができる。
書込み操作中の場合の宛先位置IDのリストが、アレイの次の使用可能な項目を識別するアレイ・ポインタを有するアレイ内に維持される、書込み処理を管理するための方法、システム、およびプログラムが提供される。
本発明によれば、書込み操作の宛先の位置IDを取得するステップと、アレイの使用可能な項目に前記位置IDを保管するステップであって、前記項目が第1の値を有するアレイ・ポインタによって識別されるステップと、他の使用可能なアレイ項目を識別するために前記アレイ・ポインタの前記第1の値を第2の値に変更するステップとを有する方法が提供される。
一実施形態では、そのアレイは可変サイズのスタックを含む。書込み操作中の宛先位置IDを追加すると、スタックのサイズが増加する。完了した書込み操作の宛先位置IDを除去すると、スタックのサイズが低減する。スタック・インデックスは、書込み操作の宛先位置IDが追加されると増分することができ、書込み操作の宛先位置IDがスタックから除去されると減分することができる。
次に図面を参照するが、図面全体を通して同様の参照番号は対応する部分を表している。
以下の説明では、本明細書の一部を形成し、いくつかの実施形態を図示する添付図面を参照する。他の諸実施形態を使用することができ、この説明の範囲を逸脱せずに構造上および操作上の変更を行うことができることは言うまでもないことである。
図2は、図示した諸実施形態の諸態様が実現されるコンピューティング・アーキテクチャを示している。1つまたは複数のホスト102a、102b、・・・102nは、記憶コントローラ106を介して、DASDまたは当技術分野で知られている任意のその他の記憶システムなどの記憶システム104とデータ通信状態にある。ホスト102は、サーバ、メインフレーム、ワークステーション、パーソナル・コンピュータ、ハンドヘルド・コンピュータ、ラップトップ、電話装置、ネットワーク・アプライアンスなど、当技術分野で知られている任意のコンピューティング・デバイスにすることができる。記憶コントローラ106とホスト・システム(複数も可)102はネットワーク108を介して通信するが、このネットワークはストレージ・エリア・ネットワーク(Storage Area Network:SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、広域ネットワーク(WAN)などを含むことができる。記憶システム104は、ハード・ディスク・ドライブ、テープ・カートリッジ・ライブラリ、光ディスク、または当技術分野で知られている任意の適切な不揮発性記憶媒体で構成することができる。記憶システム104は、JBOD(Justa Bunch of Disks,単なるディスクの束)、DASD、RAID(Redundant Array of Independent Disks)アレイ、仮想化装置(virtualizationdevice)などの記憶装置のアレイとして配置することができる。記憶コントローラ106は、IBMエンタープライズ・ストレージ・サーバ(EnterpriseStorage Server:ESS,IBMは登録商標)または当技術分野で知られている任意のその他の記憶コントローラなど、当技術分野で知られている任意の記憶コントローラまたはサーバを含むことができる。特定の実現例では、記憶コントローラ104内の記憶空間は、複数の論理装置(LD)110a、110b、・・・110nとして構成される。
記憶コントローラ106は、可用性改善のための冗長性を提供するために、複数のハードウェア・コンポーネントからなる2つの個別のクラスタ120a、120bを含む。図示した実施形態はクラスタを有する記憶コントローラに関して記載されているが、本発明は、1つまたは複数のプロセッサを使用する様々なシステムに適用可能であることは認識されている。
図示した実施形態の各クラスタ120a、120bは、個別の電力境界上で維持することができ、プロセッサ複合体122a、122bと、キャッシュ124a、124bと、不揮発性記憶装置(NVS)126a、126bとを含む。NVS126a、126bは、バッテリ・バックアップ付きRAM、あるいはキャッシュにデータをバックアップするために使用される任意のその他のタイプの不揮発性または揮発性バックアップ・キャッシュを含むことができる。ホスト102a、102b、・・・102nは、ターゲット論理装置(LD)110a、110b、・・・110nが割り当てられているクラスタ120a、120bに対し、書込みデータを含む、ターゲット論理装置(LD)110a、110b、・・・110nに向けられたアプリケーションI/O要求を提示することができる。一方のクラスタ120a、120b内のNVS126a、126bは、もう一方のクラスタ120b、120a内のキャッシュ124b、124a内の書込みデータをバックアップするために使用され、たとえば、NVS126aはキャッシュ124b内の書込みデータをバックアップする。
図3は、書込み操作中の場合の宛先位置のリストを維持することができる論理構造300の一例を示している。この構造300は、複数項目304a、304b、・・・304nのアレイ302を含み、その項目のそれぞれは書込み操作中の宛先位置を保管することができる。図示した実施形態では、書込み操作の宛先位置はトラックIDで識別される。シリンダ、セクタ、クラスタ、アドレスなどを含む、その他の宛先位置IDを使用できることは認識されている。
記載した諸実施形態の一態様によれば、この構造300は、書込み操作中の宛先位置を保管することができるアレイ304の次の使用可能な項目を識別するアレイ・ポインタ306をさらに含む。図示した実施形態では、複数項目304a、304b、・・・304nのアレイ全体の一部分304は、複数の隣接リスト項目304a、304b、・・・304iのスタックを提供し、そこではトラックIDなどの宛先位置が各スタック項目304a、304b、・・・304iに保管される。アレイ・ポインタ306は、アレイ302の次の使用可能な項目を指し示し、したがって、保管されたトラックIDのスタック304の末尾の後の最初の項目を示すスタック・インデックスを有する。図3の例では、スタック304の最後の項目は項目304iであり、最初の使用可能な項目は複数項目304a、304b、・・・304nのアレイのうちの項目304jである。
このような論理構造の一応用例では、書込み操作中の宛先位置を決定するための複数のアレイ項目のトラバーサルは、空のまたは無効な項目304j・・・304nを含む複数項目304a、304b、・・・304nのアレイ302全体ではなく、実際にトラックIDを収容している複数項目304a、304b、・・・304iのスタックに限定することができる。このような論理構造300の他の応用例では、アレイ302に対する変更後の複数のアレイ項目の論理的冗長検査は、空のまたは無効な項目304j・・・304nを含む複数項目304a、304b、・・・304nのアレイ全体ではなく、実際に有効なトラックIDを収容している複数項目304a、304b、・・・304iのスタックに限定することができる。この論理的冗長検査は項目310に保管することができる。スタックと、複数項目のアレイと、使用可能な項目へのアレイ・ポインタがその他の形式で配置できることは認識されている。
図5は、書込み操作中の場合、宛先位置のリストを維持する、図3の構造300などの論理構造を初期設定する際の記憶コントローラ106の動作を示している。図5の実施形態では、論理構造のためのアレイ・ポインタが初期設定される(ブロック402)。図示した実施形態では、図4に示す通り、スタック302をゼロに初期設定することにより、これを容易に達成することができる。この例では、スタック・インデックス306は、空である最初のアレイ項目304aを指し示すように、リセットされる。したがって、論理構造300が図4に示す通りに初期設定されると、スタック304はいかなる項目も持たなくなる。
加えて、論理的冗長検査を初期設定することができる(図5のブロック404)。この場合も、図示した実施形態では、検査310の内容をゼロに設定することにより、図4の論理的冗長検査310を容易に初期設定することができる。
図6は、データが記憶装置104などの記憶装置に書き込まれる書込み操作中の宛先の位置IDを、図3の論理構造300などの論理構造に保管する際の記憶コントローラ106の動作を示している。図6の実施形態では、記憶コントローラ106は、書込み操作から宛先の位置IDを取得する(ブロック502)。図示した実施形態では、書込み操作のための宛先位置IDは、図7に示すデータ構造602a、602b、・・・602nのうちの1つなどのデータ構造へのポインタの形で記憶コントローラ106に提供される。各書込み操作中は、関連データ構造602a、602b、・・・602nをキャッシュ・メモリ124a、124b内に維持する。各データ構造はいくつかのフィールドを有し、そのそれぞれは書込み操作に使用される様々なパラメータの1つを保管する。このようなパラメータの1つは、書込み操作によって記憶装置104に書き込まれるデータの宛先の位置を識別するトラックIDである。トラックIDは、関連データ構造のフィールド604に保管される。したがって、データ構造602a、602b、・・・602nのうちの1つへのポインタの受領に応答して、記憶コントローラ106は、書込み操作で書き込まれるデータの宛先のトラックIDを、示されたデータ構造から取得する(ブロック502)。書込み操作の宛先の位置IDが、書込み操作によって直接、宛先位置IDが提供されることを含む様々な方法で取得可能であることは認識されている。
記憶コントローラ106は、アレイ・ポインタによって識別される使用可能アレイ項目に取得した位置IDを保管する(ブロック504)。図3の実施形態では、アレイ・ポインタは、アレイ302のうちの次の使用可能な項目を指し示すスタック・インデックス306によって実現される。図3の例では、スタック項目304a〜304iのそれぞれは、すでに関連書込み操作のためのトラックIDで充填されている。このため、スタック・インデックス306は、次の使用可能アレイ項目304jを指し示す。したがって、記憶コントローラ106は、スタック・インデックス306によって識別された使用可能アレイ項目304jに取得したトラックIDを保管する(ブロック504)。書込み操作の宛先位置IDで充填されると、アレイ項目304jはスタック304の一部になる。
また、アレイ・ポインタの値は、位置IDが当初、そこから取得されたデータ構造に保管される(ブロック506)。図3の例では、スタック・インデックス306の値は、アレイ項目304jを指し示すオフセットである。このオフセット値は、アレイ項目304jに保管されたトラックIDがそこから取得されたデータ構造602a、602b、・・・602nのフィールド606に保管される(ブロック506)。
さらに、アレイ・ポインタの内容は、使用可能なアレイ項目を識別するために変更される(ブロック508)。図3の例では、スタック・インデックス306は、アレイ項目304jがトラックIDで充填された後にアレイ項目304kになる次の使用可能アレイ項目を指し示すように増分される。アレイ項目304kは、アレイ302内のアレイ項目304jに直接隣接している。
また、論理構造300の内容の論理的冗長検査は更新することができる(ブロック510)。図示した実施形態では、スタック・インデックス306の内容とともに、スタック304の内容について論理的冗長検査を実行することができ、これは図3の例では(アレイ項目304jがトラックIDで充填された後に)アレイ項目304a〜304jの内容になる。更新された論理的冗長検査は論理的冗長検査310に保管することができる(ブロック510)。したがって、応用例によっては、アレイ項目304k〜304nなどの空のアレイ項目は、トラバースする必要がなく、事実上、論理的冗長検査中に無視することができる。
図8は、完了した書込み操作のための宛先位置ID、すなわち、その書込み操作のデータのすべてが記憶装置104内の適切な宛先位置に正常に書き込まれた後の書込み操作のための宛先位置IDを、図3の論理構造300などの論理構造から除去する際の記憶コントローラ106の動作を示している。書込み操作の完了の通知を受領すると(ブロック702)、記憶コントローラ106は、スタック304内で完了した書込み操作の位置IDを突き止め、スタック304からその位置IDを除去する(ブロック704)。
スタック304から位置IDを除去すると、ブランクのまたは空の項目を残すことができる。一実施形態では、スタック304のサイズを低減する(ブロック706)ために、スタック304内の空のまたはブランクのアレイ項目を除去することができる。このようなサイズ低減は、論理的冗長検査更新中またはエラー回復中にスタックのトラバーサルを容易にすることができる。
スタック・サイズの低減後、論理構造300の内容の論理的冗長検査を更新することができる(ブロック710)。この場合も、スタック・インデックス306の内容とともに、スタック304の内容について論理的冗長検査を実行することができ、これは図3の例では(アレイ項目304jが次の使用可能な項目であるときに)アレイ項目304a〜304jの内容になる。更新された論理的冗長検査は論理的冗長検査310に保管することができる(ブロック710)。したがって、応用例によっては、書込み操作中のための位置IDを収容しておらず、スタック304の一部ではないアレイ項目304j〜304nなどのアレイ項目は、トラバースする必要がなく、事実上、論理的冗長検査中に無視することができる。
図示した実施形態では、記憶コントローラは、完了した書込み操作のデータ構造602a、602b、・・・602nのうちの特定のデータ構造へのポインタを受領する(図9のブロック802)ことにより、特定の書込み操作の完了が通知される。次に、記憶コントローラ106は、特定のデータ構造のフィールド606に保管されたスタック・インデックスの値を取得し(ブロック804)、それにより、完了した書込み操作のためのトラックIDが保管される特定のスタック項目の位置を特定することができる。次に、完了した書込み操作のためのデータ構造から取得したスタック・インデックスの値によって識別されたスタック項目に保管されたトラックIDは、後述の通り、スタック304から除去することができる。
書込み操作の完了の通知が多種多様な方法で取得できることは認識されている。さらに、宛先位置IDを収容しているアレイ項目の位置が様々な方法で決定できることも認識されている。たとえば、書込み操作は、完了した書込み操作のトラックIDを直接提供する場合もあれば、そのトラックID用のアレイ項目位置を記憶コントローラ106に直接提供する場合もある。
図示した実施形態では、記憶コントローラ106は、最後の項目をスタック304から除去する(ブロック806)ことにより、スタック304のサイズを低減する。図示した例では、これは、スタック304の前のアレイ項目を指し示すようにスタック・インデックス306を減分することによって達成される。図3の例では、スタック・インデックス306を減分すると、スタック・インデックス306はアレイ項目304jではなくアレイ項目304iを指し示すようになる。したがって、スタック304の最後のアレイ項目は前のアレイ項目304hになる。アレイ項目304iはもはやスタック304の一部ではなくなるが、その代わりに、スタック・インデックス306が示す通り、次の使用可能なアレイ項目として示されることになる。
また、除去した最後の項目が、スタック304から除去すべき完了した書込み操作の宛先位置IDを収容しているかどうかの判定(ブロック808)が行われる。収容している場合、ブロック810に示す通り、スタック304から最後のアレイ項目を除去すると、完了した書込み操作の宛先位置IDが事実上、スタック304からすでに除去されている。図示した実施形態では、除去した最後の項目が完了した書込み操作の宛先位置IDを収容しているかどうかの判定(ブロック808)は、完了した書込み操作によって供給されたポインタによって識別されたデータ構造のフィールド606から取得した(ブロック804)スタック・インデックスの値を、減分したスタック・インデックスの値と比較することによって、行うことができる。一致している場合、すなわち、2つのインデックス値が同じである場合、除去した最後の項目が、その最後の項目をスタック304から除去することによってスタック304から除去される完了した書込み操作の宛先位置IDを収容していると判定される。
図3に示した例では、スタック304の最後の項目は、上記の通り、アレイ項目304iであるものとして示されている。スタック・インデックス306を減分すると、スタック・インデックス306は、アレイ項目304jの代わりに、新しい位置IDを書き込むために使用可能な次の項目としてアレイ項目304iを指し示すことになる。このため、スタック304の最後の項目は前のアレイ項目304hになる。完了した書込み操作によって供給されたポインタによって識別されたデータ構造のフィールド606から取得した(ブロック804)スタック・インデックスの値が同じアレイ項目304iを指し示す場合、正しい位置IDはすでにスタック304から除去されていることになる。換言すれば、一致している場合、すなわち、2つのインデックス値が同じである場合、除去した最後の項目が、その最後の項目をスタック304から除去することによってスタック304から除去される完了した書込み操作の宛先位置IDを収容していると判定される。
これに対して、除去した最後の項目が完了した書込み操作の宛先位置IDを収容していないと判定された場合(ブロック808)、除去したアレイ項目は書込み操作中のための有効な位置IDを収容している。したがって、スタック304から除去されたアレイ項目からの書込み操作の宛先位置IDは、完了した書込み操作の位置IDを収容していたスタック項目に移動する(ブロック812)。除去したアレイ項目から、完了した書込み操作の位置IDを収容しているアレイ項目に、有効な位置IDを移動することにより、完了した書込み操作の位置IDは上書きされ、事実上、スタック304から除去される。
上記の通り、図示した実施形態では、除去した最後の項目が完了した書込み操作の宛先位置IDを収容しているかどうかの判定(ブロック808)は、完了した書込み操作によって供給されたポインタによって識別されたデータ構造のフィールド606から取得した(ブロック804)スタック・インデックスの値を、減分したスタック・インデックスの値と比較することによって、行うことができる。一致していない場合、すなわち、2つのインデックス値が同じではない場合、除去した最後の項目が、依然として完了していない書込み操作の有効な宛先位置IDを収容しており、したがって、その最後の項目をスタック304から除去することによってスタック304から除去してはならないと判定される。したがって、スタック304から除去されたアレイ項目からの書込み操作の宛先位置IDは、完了した書込み操作によって供給されたポインタによって識別されたデータ構造のフィールド606から取得した(ブロック804)スタック・インデックスの値によって識別される通り、完了した書込み操作の位置IDを収容していたスタック項目に移動する(ブロック812)。
書込み操作の宛先位置IDが他のスタック項目に移動するので、その宛先位置IDの書込み操作中のためのデータ構造は、宛先位置IDの移動先である異なるスタック項目の位置を示すように更新される(ブロック814)。図示した実施形態では、スタック304から除去されたアレイ項目からの書込み操作の宛先位置IDは、完了した書込み操作によって供給されたポインタによって識別されたデータ構造のフィールド606から取得した(ブロック804)スタック・インデックスの値によって識別される通り、完了した書込み操作の位置IDを収容していたスタック項目に移動する(ブロック812)。このため、取得したスタック・インデックス値は、移動した宛先位置IDに関する書込み操作中のデータ構造のフィールド606に保管される。
このように、図示した実施形態では、書込み操作中のための位置IDがスタック304に追加されるたびに、アレイ項目がスタック304に追加される。逆に、書込み操作が完了し、完了した書込み操作の位置IDがスタックから除去されるたびに、アレイ項目がスタック304から除去される。その結果、一応用例では、論理的冗長検査を効率よく実行することができる。加えて、他の応用例では、エラー回復操作中に、アレイ302のトラバーサルをスタック304のアレイ項目に限定することができる。スタックの一部ではないアレイ項目は、書込み操作中のための宛先位置IDを収容しておらず、一応用例では無視することができる。スタックの一部ではないアレイ項目が無視されるので、スタック外のアレイ項目内にある完了した書込み操作のための宛先位置は消去する必要がない。
追加の実現例の詳細
書込み処理管理のための上述の技法は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生産するための標準的なプログラミングおよび/またはエンジニアリング技法を使用して、方法、装置、または製品として実現することができる。本明細書で使用する「製品」という用語は、ハードウェア・ロジック(たとえば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途向け集積回路(ASIC)など)または磁気記憶媒体(たとえば、ハード・ディスク・ドライブ、フレキシブル・ディスク、テープなど)、光学記憶装置(CD−ROM、光ディスクなど)、揮発性および不揮発性メモリ・デバイス(たとえば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、ファームウェア、プログラマブル・ロジックなど)などのコンピュータ可読媒体に実現されたコードまたはロジックを指す。コンピュータ可読媒体内のコードは、プロセッサ複合体によってアクセスされ、実行される。好ましい諸実施形態が実現されるコードは、伝送媒体により、またはネットワークを介したファイル・サーバから、さらにアクセス可能である。このような場合、そのコードが実現される製品は、ネットワーク伝送回線、ワイヤレス伝送媒体、空間を伝搬する信号、電波、赤外線信号などの伝送媒体を有することができる。したがって、「製品」は、そのコードが実施される媒体を有することができる。さらに、「製品」は、そのコードが実施され、処理され、実行される、ハードウェア・コンポーネントとソフトウェア・コンポーネントの組合せを有することができる。当然のことながら、当業者であれば、本発明の範囲を逸脱せずに、この構成に対して多くの変更が可能であること、ならびに製品が当技術分野で知られている任意の情報担持媒体を有することができることを認識するであろう。
上述の実現例では、特定の動作は、プロセッサ複合体122aおよび122bによって実行されるものとして記載されている。代替実現例では、プロセッサ複合体によって実行されるものとして記載されている特定の動作は、様々なコンピュータ、プロセッサ、およびコントローラによって実行することができる。
上述の実現例では、特定の動作は、インデックスまたはカウンタを増分および減分するものとして記載されている。カウンタの「カウント」は正である場合もあれば負である場合もあり、カウントを「増分」または「減分」すると、その特定の応用例に応じて、実際のカウントの負または正の程度がより大きくなる場合もあれば小さくなる場合もあることは認識されている。
図5、図6、図8、および図9の図示したロジックは、特定の順序で発生する特定のイベントを示している。代替実現例では、特定の動作は、異なる順序で実行するか、変更するか、または除去することができる。その上、いくつかの動作を上述のロジックに追加することができ、このような動作は依然として上述の実現例に適合するものである。さらに、本明細書に記載した動作は順次発生する場合もあれば、特定の動作が並行して処理される場合もある。さらに、動作は単一処理装置によってまたは複数の分散処理装置によって実行することができる。
変数Nは、上述の諸要素のうちのいくつかに関する任意の整数変数を示すために使用されており、異なる事例で使用する場合は同じ整数値を示す場合もあれば、異なる整数値を示す場合もある。
図10は、図2に示すホストおよび記憶コントローラ・クラスタなどのネットワーク・コンポーネントからなるコンピュータ・アーキテクチャ900の一実現例を示している。アーキテクチャ900は、プロセッサ902(たとえば、マイクロプロセッサ)と、メモリ904(たとえば、揮発性メモリ・デバイス)と、記憶装置906(たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性記憶装置)とを含むことができる。記憶装置906は、内部記憶装置あるいは付加記憶装置またはネットワーク・アクセス可能記憶装置を含むことができる。記憶装置906内のプログラムは、当技術分野で知られている方法で、メモリ904にロードされ、プロセッサ902によって実行される。このアーキテクチャは、ネットワークとの通信を可能にするためにネットワーク・カード908をさらに含む。入力装置910は、プロセッサ902にユーザ入力を提供するために使用され、キーボード、マウス、ペンスタイラス、マイクロホン、タッチ検知表示画面、あるいは当技術分野で知られている任意のその他の起動または入力メカニズムを含むことができる。出力装置912は、プロセッサ902から、または表示モニタ、プリンタ、記憶装置などのその他のコンポーネントから伝送される情報を表現することができる。
様々な実現例に関する上記の記述は、例示および説明のために提示されたものである。網羅的にするか、または開示された正確な形式に範囲を限定するためのものではない。上記の教示を考慮すると、多くの変更および変形が可能である。
書込み操作中即ち未完の書込み操作を追跡するための従来技術の論理構造の概略図である。 図示した諸実施形態の諸態様を実現可能なコンピューティング環境の一例を示す図である。 図示した諸実施形態の一態様により未完の書込み操作を追跡するための論理構造の概略図である。 図示した諸実施形態の一態様により未完の書込み操作を追跡するための論理構造の概略図である。 図3の構造などの論理構造を初期設定する際の記憶コントローラの動作を示す図である。 データが記憶装置に書き込まれている未完の書込み操作の宛先の位置IDを図3の論理構造などの論理構造に保管する際の記憶コントローラの動作を示す図である。 書込み操作で使用される様々なパラメータを保管するデータ構造の一例を示す図である。 完了した書込み操作のための宛先位置IDを図3の論理構造などの論理構造から除去する際の記憶コントローラの動作を示す図である。 完了した書込み操作のための宛先位置IDを論理構造から除去する際の記憶コントローラの動作のより詳細な一例を示す図である。 ホスト、記憶コントローラ、クラスタ、および任意のその他のコンピューティング・デバイスなど、ネットワーク環境内のコンピューティング・コンポーネントのアーキテクチャを示す図である。
符号の説明
102a ホスト
102b ホスト
102n ホスト
104 記憶システム
106 記憶コントローラ
108 ネットワーク
110a 論理装置(LD)
110b 論理装置(LD)
110n 論理装置(LD)
120a クラスタ
120b クラスタ
122a プロセッサ
122b プロセッサ
124a キャッシュ
124b キャッシュ
126a 不揮発性記憶装置(NVS)
126b 不揮発性記憶装置(NVS)

Claims (10)

  1. 複数のホスト装置からの記憶システムへの書込みを制御する記憶コントローラが実行する書込み制御方法であって、
    ネットワークを介して接続されたホスト装置から書込み操作の宛先の位置IDを取得するステップと、
    書込み操作中の宛先位置を維持する配列であるアレイ中の複数のアレイ項目のうち次に使用可能な項目を示す第1の値を有し、インデックス値として用いられるアレイ・ポインタであって、現在書き込み中および書き込み済みの位置IDを保管している複数のアレイ項目がスタックを形成するデータ構造におけるスタック・インデックス項目に保管された当該アレイ・ポインタによって、前記次に使用可能な項目を識別するステップと、
    識別された前記次に使用可能な項目に、前記取得するステップで取得された書込み操作の宛先の位置IDを保管し、前記アレイ中の前記スタックの末尾の次のアレイ項目を前記スタックでの変更後次に使用可能なアレイ項目として識別するため、前記インデックス値を増分することにより、前記複数のアレイ項目がスタックを形成した前記データ構造におけるスタック・インデックス項目に保管された前記アレイ・ポインタの前記第1の値を第2の値に変更するステップと、
    前記書込み操作の完了時に、前記アレイ・ポインタの前記インデックス値を減分して、前記複数のアレイ項目のスタックから、前記完了した書込み操作の宛先の前記位置IDを除去して前記複数のアレイ項目のスタックのサイズを低減するステップと
    を含み、
    前記低減するステップは、前記アレイ中の前記スタックの末尾の項目を前記アレイ中の低減後、次に使用可能な項目として識別するために前記アレイ・ポインタのインデックス値を減分した後、書込み操作中のインデックス値と位置IDとを維持するキャッシュ・メモリの前記インデックス値と、前記減分されたインデックス値とを比較し、前記インデックス値と前記減分されたインデックス値とが一致していない場合には、前記キャッシュ・メモリ内に維持されたアレイ・ポインタで識別される位置IDを前記位置IDを削除した前記アレイ項目に移動することにより、前記スタックから書込み操作が完了した前記複数のアレイ項目のうちの最後の項目を除去するステップと
    を含む、方法。
  2. 書込み操作の完了時に、前記複数のアレイ項目のスタックの前記最後の項目に保管された前記位置IDおよび前記インデックス値を前記キャッシュ・メモリのフィールドに移動し、前記移動した位置IDで前記完了した書込み操作の前記位置IDを上書きするステップと、前記アレイの前記前の項目を前記アレイの前記次に使用可能な項目として識別するために前記アレイ・ポインタのインデックス値を減分し、前記複数のアレイ項目のスタックの前記最後の項目を除去するステップと、
    をさらに有する、請求項1に記載の方法。
  3. 前記低減したスタックの内容の論理冗長検査を更新するステップをさらに有する、請求項1に記載の方法。
  4. 前記アレイは、不揮発性記憶メモリを含むディジタル・データ処理装置の論理的なデータ構造である、請求項1に記載の方法。
  5. ディジタル・データ処理装置が、請求項1〜4のいずれか1項に記載の方法の各ステップを実行するための装置実行可能なプログラム。
  6. 複数のホスト装置からの記憶システムへの書込みを制御するシステムであって、
    書込み操作中の宛先位置を維持する配列であるアレイ中の使用可能な項目を識別する第1の値を有し、インデックス値として用いられるアレイ・ポインタを、現在書き込み中および書き込み済みの位置IDを保管している複数のアレイ項目がスタックを形成するデータ構造におけるスタック・インデックス項目に保管するように適合された記憶装置と、
    前記記憶装置に結合されたディジタル・データ処理装置であって、前記ディジタル・データ処理装置が、
    ネットワークを介して接続された前記ホスト装置から書込み操作の宛先の位置IDを取得し、
    前記アレイの複数のアレイ項目のうち、次に使用可能なアレイ項目を前記第1の値を有するアレイ・ポインタによって識別し、
    識別された前記次に使用可能な項目に、取得された書込み操作の宛先の位置IDを保管し、前記アレイ中の前記スタックの末尾の次のアレイ項目を前記スタックでの変更後次に使用可能なアレイ項目として識別するため、前記インデックス値を増分することにより、前記複数のアレイ項目がスタックを形成した前記データ構造におけるスタック・インデックス項目に保管された前記アレイ・ポインタの前記第1の値を第2の値に変更し、
    前記書込み操作の完了時に、前記アレイ・ポインタの前記インデックス値を減分して、前記複数のアレイ項目のスタックから、前記完了した書込み操作の宛先の前記位置IDを除去して前記複数のアレイ項目のスタックのサイズを低減し、
    前記低減では、前記アレイ中の前記スタックの末尾の項目を前記アレイ中の低減後次に使用可能な項目として識別するために前記アレイ・ポインタのインデックス値を減分した後、書込み操作中のインデックス値と位置IDとを維持するキャッシュ・メモリ内の前記インデックス値と、前記減分されたインデックス値とを比較し、前記インデックス値と前記減分されたインデックス値とが一致していない場合には、前記キャッシュ・メモリ内に維持されたアレイ・ポインタで識別される位置IDを前記位置IDを削除した前記アレイ項目に移動することにより、前記スタックから書込み操作が完了した前記複数のアレイ項目のうちの最後の項目を除去する
    システム。
  7. 前記アレイ・ポインタがインデックス値で指定され、前記変更が、前記アレイの次の項目を前記アレイの前記次の使用可能な項目として識別するために前記アレイ・ポインタのインデックス値を増分することを含む、請求項6に記載のシステム。
  8. 前記ディジタル・データ処理装置が、書込み操作の完了時に、前記複数のアレイ項目のスタックの前記最後の項目に保管された前記位置IDおよび前記インデックス値を前記キャッシュ・メモリのフィールドに移動し、前記移動した位置IDで前記完了した書込み操作の前記位置IDを上書きし、前記アレイの前記前の項目を前記アレイの前記次の使用可能な項目として識別するために前記アレイ・ポインタのインデックス値を減分し、前記複数のアレイ項目のスタックの前記最後の項目を除去するようにさらに構成される、請求項6に記載のシステム。
  9. 前記ディジタル・データ処理装置が、前記低減したスタックの内容の論理冗長検査を更新するようにさらに構成される、請求項6に記載のシステム。
  10. 前記記憶装置が不揮発性記憶メモリである、請求項6に記載のシステム。
JP2005097433A 2004-03-31 2005-03-30 書込み処理管理のための方法、システム、およびプログラム Expired - Fee Related JP4667925B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/815,319 US7529904B2 (en) 2004-03-31 2004-03-31 Storing location identifier in array and array pointer in data structure for write process management

Publications (2)

Publication Number Publication Date
JP2005293586A JP2005293586A (ja) 2005-10-20
JP4667925B2 true JP4667925B2 (ja) 2011-04-13

Family

ID=35049873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005097433A Expired - Fee Related JP4667925B2 (ja) 2004-03-31 2005-03-30 書込み処理管理のための方法、システム、およびプログラム

Country Status (3)

Country Link
US (2) US7529904B2 (ja)
JP (1) JP4667925B2 (ja)
CN (1) CN100361064C (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529904B2 (en) * 2004-03-31 2009-05-05 International Business Machines Corporation Storing location identifier in array and array pointer in data structure for write process management
US20060075185A1 (en) * 2004-10-06 2006-04-06 Dell Products L.P. Method for caching data and power conservation in an information handling system
US20100169572A1 (en) * 2008-07-22 2010-07-01 Lsi Corporation Data storage method, apparatus and system for interrupted write recovery
US8312457B2 (en) * 2009-12-14 2012-11-13 Microsoft Corporation Maintaining a count for lock-free linked list structures
US11003621B2 (en) 2015-11-11 2021-05-11 International Business Machines Corporation Scalable enterprise content management
US10678475B2 (en) 2017-07-27 2020-06-09 Hewlett Packard Enterprise Development Lp Tracking write requests to media controllers
CN110109867B (zh) * 2018-01-18 2023-03-31 伊姆西Ip控股有限责任公司 改进在线模式检测的方法、装置和计算机程序产品
US20210115298A1 (en) * 2019-10-22 2021-04-22 Cabot Microelectronics Corporation, nka CMC Materials, Inc. Composition and method for dielectric cmp
JP2023037883A (ja) * 2021-09-06 2023-03-16 キオクシア株式会社 情報処理装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6289273A (ja) 1985-10-16 1987-04-23 Nec Corp 磁気デイスク装置
JPS62284437A (ja) 1986-05-31 1987-12-10 Nec Corp タスク管理方式
US4942575A (en) * 1988-06-17 1990-07-17 Modular Computer Systems, Inc. Error connection device for parity protected memory systems
US5414826A (en) * 1990-01-31 1995-05-09 Hewlett-Packard Company System and method for memory management in microcomputer
JP3056566B2 (ja) 1991-11-13 2000-06-26 三菱電機株式会社 Fifoテーブルメモリおよびその制御方法
US5394532A (en) * 1992-04-15 1995-02-28 Storage Technology Corporation Disk drive array memory system having instant format capability
US5991775A (en) * 1992-09-23 1999-11-23 International Business Machines Corporation Method and system for dynamic cache allocation between record and track entries
US5530829A (en) * 1992-12-17 1996-06-25 International Business Machines Corporation Track and record mode caching scheme for a storage system employing a scatter index table with pointer and a track directory
US5644784A (en) * 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5720029A (en) * 1995-07-25 1998-02-17 International Business Machines Corporation Asynchronously shadowing record updates in a remote copy session using track arrays
JPH11110266A (ja) 1997-10-06 1999-04-23 Mitsubishi Electric Corp 画像データベース装置
JPH11154058A (ja) 1997-11-20 1999-06-08 Toshiba Corp ディスクアレイ装置及びデータ保守方法
US6370626B1 (en) * 1999-04-30 2002-04-09 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
DE19921232B4 (de) * 1999-05-07 2007-06-21 Giesecke & Devrient Gmbh Verfahren zum gesicherten Schreiben eines Zeigers für einen Ringspeicher, zugehöriger Ringspeicher, Verwendung des Ringspeichers und Chipkarte mit Ringspeicher
US6735207B1 (en) * 2000-06-13 2004-05-11 Cisco Technology, Inc. Apparatus and method for reducing queuing memory access cycles using a distributed queue structure
JP3592640B2 (ja) * 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6766480B2 (en) 2001-03-14 2004-07-20 Hewlett-Packard Development Company, L.P. Using task description blocks to maintain information regarding operations
EP1506482A2 (en) 2002-05-14 2005-02-16 Koninklijke Philips Electronics N.V. Hard disk drive system, method of using such a system and apparatus
JP2004078902A (ja) 2002-06-19 2004-03-11 Tokyo Electron Device Ltd 記憶装置、メモリ管理方法及びプログラム
US6865648B1 (en) * 2002-06-24 2005-03-08 Emc Corporation Data structure for write pending
US7529904B2 (en) * 2004-03-31 2009-05-05 International Business Machines Corporation Storing location identifier in array and array pointer in data structure for write process management

Also Published As

Publication number Publication date
CN100361064C (zh) 2008-01-09
US7529904B2 (en) 2009-05-05
US7818533B2 (en) 2010-10-19
CN1677333A (zh) 2005-10-05
JP2005293586A (ja) 2005-10-20
US20050229166A1 (en) 2005-10-13
US20090177859A1 (en) 2009-07-09

Similar Documents

Publication Publication Date Title
JP4667925B2 (ja) 書込み処理管理のための方法、システム、およびプログラム
US6745212B2 (en) Preferential caching of uncopied logical volumes in an IBM peer-to-peer virtual tape server
US7421535B2 (en) Method for demoting tracks from cache
US9052826B2 (en) Selecting storage locations for storing data based on storage location attributes and data usage statistics
JP5310480B2 (ja) ストレージ制御装置および方法
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
US8423505B2 (en) Catalog reorganization apparatus and method
US7864478B2 (en) Verification of a tape data storage cartridge
US6338114B1 (en) Method, system, and program for using a table to determine an erase operation to perform
US8555025B2 (en) Selective device access control
US7987328B2 (en) Data archive system
JP2007537522A (ja) 仮想テープ内の仮想ボリューム・データの動的ローディング
US7197599B2 (en) Method, system, and program for managing data updates
JP4713951B2 (ja) 仮想テープライブラリシステムおよび仮想テープ書き込み方法
US10923152B2 (en) Partial updates for shingled magnetic recording devices
US20060015696A1 (en) Integrated storage device
JP2006338345A5 (ja)
US8688938B2 (en) Data copying
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US6854038B2 (en) Global status journaling in NVS
JP4641528B2 (ja) データ書き込みプログラム及びデータ書き込み方法
US20180052749A1 (en) Information processing system and information processing method
CN111158586A (zh) 数据读写方法、装置、电子设备及机器可读存储介质
US20050015542A1 (en) Multiple write storage device
JPH04311217A (ja) 外部記憶制御装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070709

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071112

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071217

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101208

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees