JP2005293774A - ディスク装置の制御方法 - Google Patents

ディスク装置の制御方法 Download PDF

Info

Publication number
JP2005293774A
JP2005293774A JP2004110413A JP2004110413A JP2005293774A JP 2005293774 A JP2005293774 A JP 2005293774A JP 2004110413 A JP2004110413 A JP 2004110413A JP 2004110413 A JP2004110413 A JP 2004110413A JP 2005293774 A JP2005293774 A JP 2005293774A
Authority
JP
Japan
Prior art keywords
block address
address
physical block
storage medium
host
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.)
Pending
Application number
JP2004110413A
Other languages
English (en)
Inventor
Tetsuya Kamimura
上村  哲也
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.)
HGST Netherlands BV
HGST Inc
Original Assignee
Hitachi Global Storage Technologies Netherlands BV
Hitachi Global Storage Technologies Inc
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 Hitachi Global Storage Technologies Netherlands BV, Hitachi Global Storage Technologies Inc filed Critical Hitachi Global Storage Technologies Netherlands BV
Priority to JP2004110413A priority Critical patent/JP2005293774A/ja
Priority to US11/097,396 priority patent/US7412585B2/en
Publication of JP2005293774A publication Critical patent/JP2005293774A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

【課題】 一つのストレージデバイスしか持たず、巨大なキャッシュメモリも持たないHDDにおいて、論理ブロックアドレスから物理ブロックアドレスへの変換による追記方式のデータ書き込みを実現する。
【解決手段】 ステップ303によりキャッシュメモリ上のアドレス変換テーブルのサイズが閾値を越えていないか検査する。閾値を越えている場合にはステップ304で指定数分のエントリをLRU方式で選択し、ステップ305で選択したエントリをWRITEバッファに追加し、ステップ309でWRITEを実行することでアドレス変換テーブルをHDD上に退避する。
【効果】 本発明により、WRITE時のヘッドのシーク時間を削減することによりWRITE性能を交渉する効果がある。また通常のHDDのボリュームへのアクセスを許したまま過去のHDDの状態であるスナップショットのボリュームにアクセス可能なスナップショットを構築できる効果がある。また、HDDへの書き込みを行った後で書き込みを無効化することで、任意の時点のHDDの状態にロールバックできる効果がある。
【選択図】 図3

Description

本発明はディスク装置の制御方法に関し、障碍に強いディスク装置の制御方法に関する。
従来のディスク装置(以下、HDDという)では、ホストが指定する論理ブロックアドレスをHDD内部の一意な物理ブロックアドレスに変換してHDD内部の記憶媒体にアクセスする。通常は、HDDのシリンダ数、ヘッド数、トラックあたりのセクタ数などをパラメータとした変換式を用いてアドレス変換を行う。このため、HDDに搭載されている処理能力の低いプロセッサや少ないメモリ容量などでも、十分高速に論理ブロックアドレスと物理ブロックアドレスとの間を相互に変換することができる。しかし、このような変換式を用いてアドレス変換を行うと、論理ブロックアドレスと物理ブロックアドレスとを一対一に変換する。これは、同一の論理ブロックアドレスに対して書き込みを行うと、以前書かれた内容を消去することを意味する。
通常はこのような動作で全く問題が無い。しかし、操作ミスやコンピュータウイルスにより消してはいけないデータが上書きされてしまうと、HDD上のデータが消失する。もしも、HDD外部にデータをバックアップしていない場合には、データが永久に失われてしまう。これは、ユーザの意図からすると不正なコマンドであっても、HDDの認識するコマンドとして正しければ、HDDはユーザの意図を解釈せずにコマンドを実行するために発生する。
大型ディスクアレイ装置では上記のような変換式によるアドレス変換とは異なるストレージデバイス上の記憶領域の割り当て方法が提案されている。米国特許第4,467,421号明細書“VIRTUAL STORAGE SYSTEM AND METHOD”では、ホストから書き込み要求を受信するごとに複数のストレージデバイスから必要な領域を確保してデータを記録する。これにより、通常のブロックデバイスのコマンドを使用している場合でも、既存の領域を消去せずに新たな領域へ書き込むことができる。
Pattersonらが提案したRAIDシステム(D. A. Patterson, G. A. Gibson, R. H. Katz, “A Case for Redundant Arrays of Inexpensive Disks (RAID)”, Proceedings of the international Conference on Management of Data(SIGMOD), June 1988, pp.109-116)におけるRAID level 4または5では、書き込みのたびにパリティを読み出して更新した後、パリティを書き戻すというライトペナルティが発生するため、書き込み性能が劣化する問題がある。この問題に対処する解決策として、米国特許第5,124,987号明細書“LOGICAL TRACK WRITE SCHEDULING SYSTEM FOR A PARALLEL DISK DRIVE ARRAY DATA STORAGE SUBSYSTEM”では、新たな書き込みデータとオンザフライで生成したパリティデータとを新たなストレージデバイス上の領域に書き込む提案がされている。
米国特許第4,467,421号明細書や米国特許第5,124,987号明細書では、ホストの指定する論理ブロックアドレスとストレージデバイス上の物理ブロックデバイスとの対応を管理するマッピングテーブルが必要になる。ストレージデバイスに障碍が発生していなくても、マッピングテーブルに障碍が発生するとストレージデバイス上のデータにアクセスできなくなる。マッピングテーブルは高い信頼性が必要であり、仮に何らかの事故によりマッピングテーブルに障碍が発生した場合でも、マッピングテーブルを再構築することが求められる。この問題の解決策として、特開平11-85589号公報に記載の「情報記憶装置および同装置に適用される管理データ再構築方法」が提案されている。
特開平11-85589号公報では、ホストが指定する論理ブロックアドレスの値をユーザデータ記憶領域上に保存し、マッピングテーブルに障碍が発生した場合には、ユーザデータ記憶領域上に記録した全ての論理ブロックアドレスの値を読み出すことで、マッピングテーブルを再構築する方法を提案している。また同時に、同一論理ブロックアドレスに対して複数の書き込みがある場合には、書き込みの順序を示す順序番号を生成し、この順序番号を論理ブロックアドレスの値とともにユーザデータ記憶領域上に保存し、マッピングテーブルに障碍が発生した場合にユーザデータ記憶領域上の順序番号から最新の書き込みを特定する方法を提案している。
米国特許第4,467,421号明細書や米国特許第5,124,987号明細書はホストからは単なるブロックデバイスに見えるストレージサブシステムの内部で新規の領域を割り当てる手法である。別の手法として、Rosenblumらが提案したLog-Structured File System (M. Rosenblum, and J. K. Ousterhout, “The Design and Implementation of a Log-Structured File System”, ACM Transactions on Computer System, Vol. 10, No. 1, Feb 1992, pp.3-25)がある。Log-Structured File System(以下LFS)では、通常のブロックデバイスに対してファイルシステムのレベルで追記書きするようにブロックの配置を行う。LFSはもともとプロセッサや半導体メモリの高速化に対してHDDの高速化が進まないことへの解決策として考えられた手法の一つである。通常のファイルシステムでは、HDDへの書き込み時には、ヘッドのシーク時間の分だけホストからHDDへのデータ転送に使える時間が少なくなる。これに対してLFSでは、ファイルの削除などを管理するファイルシステムの管理情報であるメタ情報も含めてファイルシステムに対するあらゆる処理をHDDにログとして追記書きする。これにより、書き込み時のヘッドシーク時間を削減してシーケンシャル書き込みすることで書き込みの高速化を実現する。
米国特許第4,467,421号明細書 米国特許第5,124,987号明細書 特開平11-85589号公報 Proceedings of the international Conference on Management of Data(SIGMOD), June 1988, pp.109-116 ACM Transactions on Computer System, Vol. 10, No. 1, Feb 1992, pp.3-25
米国特許第 4,467,421号明細書や米国特許第 5,124,987号明細書は大型のディスクアレイ装置を前提としており、複数のストレージデバイスや巨大なキャッシュメモリが必須となる。このため、一つのストレージデバイスしか持たず、巨大なキャッシュメモリも持たないHDDには適用できない。また、LFSのように書き込み時のヘッドシーク時間が少なくなるように領域を確保するように領域を割り当てるような制御をする訳ではないので、必ずしも書き込みが高速にならない。
システムに何らかの障碍が発生した場合などには、復旧のために正常動作していた時点でのストレージのイメージが必要になることがある。しかし、HDDの大容量化に伴いストレージサブシステムからテープなどの外部デバイスへのバックアップ時間と、バックアップからストレージサブシステムへの復旧する時間が増大している。望ましくはストレージサブシステムに全ての更新の履歴を蓄積しておき、任意の時点でのストレージのイメージであるスナップショットを高速に生成し、ホストからアクセス可能にすべきである。しかし、米国特許第4,467,421号明細書や米国特許第5,124,987号明細書には、このようなスナップショットの機能が存在しない。
特開平11-85589号公報によるマッピングテーブルの構築方法では、やはり前提条件としてマッピングテーブル全体を一度に読み込める巨大なメモリが必要になる。このため、このような巨大なメモリを搭載できないHDDには適用できない。さらに、マッピングテーブルの再構築の際にはストレージデバイス上に記録した全ての論理ブロックアドレスの値を読み出さねばならないため、非常に長い処理時間が必要になる。ごく稀に発生するマッピングテーブル障碍からの復帰のために長時間時間をかけて再構築しても良い場合には、この長い処理時間を許容できるかも知れない。しかし、任意の時点でのスナップショットを構築するような処理を考えると、このような処理は頻繁に発生する可能性があるため、長い処理時間を掛けることを許容できない。
LFSはファイルシステムであるためLFSに対応したOSでしか利用できず、任意のOSや任意のファイルシステム、さらにはブロックデータの保存には適用することができない。また、ファイルの消去によりある領域が不要になると、クリーナプロセスがその領域を回収して、再び未使用領域として再利用可能にする。このため、スナップショットの機能を実現することができない。
本発明の第一の目的は、ホストが指定する論理ブロックアドレスの値に関わらず、既存のデータの末尾に追記式にデータを書き込み、論理ブロックアドレスと物理ブロックアドレスとの対応をアドレス変換テーブルで管理する、ディスク装置の制御方法を提供することである。
本発明の第二の目的は、連続した複数の論理ブロックアドレスへの書き込みの場合に、既存のデータの末尾に連続した複数の物理ブロックアドレスを確保して追記式にデータを書き込み、論理ブロックアドレスと物理ブロックアドレスとの対応を連続アドレスへの書き込みであることを利用した符号化を行ったアドレス変換テーブルで管理する、ディスク装置の制御方法を提供することである。
本発明の第三の目的は、一時記憶領域上のアドレス変換テーブルに登録されたエントリ数がある閾値を超えた場合、最も最近使用していないエントリから使用していない順番に退避数分のエントリを、既存のデータの末尾に追記式に書き込んで退避する、ディスク装置の制御方法を提供することである。
本発明の第四の目的は、アドレス変換テーブルを退避する際に、前回アドレス変換テーブルを退避した物理ブロックアドレスの値も一緒に退避する、ディスク装置の制御方法を提供することである。
本発明の第五の目的は、HDDの記憶媒体上の特定の領域において、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブルの管理を行う、ディスク装置の制御方法を提供することである。
本発明の第六の目的は、ホストが指定する論理ブロックアドレスの値によりアドレス変換テーブルを検索して論理ブロックアドレスの値に対応した物理ブロックアドレスの値を読み出し、その物理ブロックアドレスからデータを読み出す、ディスク装置の制御方法を提供することである。
本発明の第七の目的は、ホストが指定した論理ブロックアドレスの値がアドレス変換テーブル上に存在しない場合に、HDDの記憶媒体上に退避したアドレス変換テーブルから論理ブロックアドレスの値に対応した物理ブロックアドレスの値を検索する、ディスク装置の制御方法を提供することである。
本発明の第八の目的は、HDDの記憶媒体上の特定の領域において、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブルを検索して、ホストが指定した論理ブロックアドレスの値に対応した物理ブロックアドレスの値を読み出す、ディスク装置の制御方法を提供することである。
本発明の第九の目的は、最も最後にHDDの記憶媒体上に退避したアドレス変換テーブルと、アドレス変換テーブルを退避した以降に書き込んだ、各ブロックの物理ブロックアドレスの値と、ブロックに対応した管理領域に記録した論理ブロックアドレスの値とから、アドレス変換テーブルの再構築を行う、ディスク装置の制御方法を提供することである。
本発明の第十の目的は、HDDの記憶媒体の先頭アドレスから末尾アドレスに向かって、各ブロックの物理ブロックアドレスの値と、ブロックに対応した管理領域に記録した論理ブロックアドレスの値とから、アドレス変換テーブルの再構築を行う、ディスク装置の制御方法を提供することである。
本発明の第十一の目的は、HDDの記憶媒体の先頭アドレスから末尾アドレスに向かって、退避したアドレス変換テーブルと、最後にアドレス変換テーブルを読み込んだアドレスから末尾アドレスに向かって、各ブロックの物理ブロックアドレスの値と、ブロックに対応した管理領域に記録した論理ブロックアドレスの値とから、アドレス変換テーブルの再構築を行う、ディスク装置の制御方法を提供することである。
本発明の第十二の目的は、HDDの記憶媒体の物理ブロックアドレスの先頭から別途定める物理ブロックアドレスの範囲で、個々のブロックについて同一の論理ブロックアドレスに対して上位の物理ブロックアドレスで書き込みがなされていないか検査し、書き込まれている場合にはそのブロックを上書きするようにデータをシフトすることで、記憶媒体上の領域を再利用する、ディスク装置の制御方法を提供することである。
本発明の第十三の目的は、HDDの過去の状態であるスナップショットへのアクセスが可能な、ディスク装置の制御方法を提供することである。
本発明の第十四の目的は、HDDへの書き込み内容を無効化し、過去の状態に戻すことが可能な、ディスク装置の制御方法を提供することである。
本発明の第十五の目的は、ブロックへの書き込みの際にブロックの管理領域にHDDの稼働時間を書き込む、ディスク装置の制御方法を提供することである。
本発明の第十六の目的は、通常の書き込みコマンドや読み出しコマンドを用いてHDDの管理領域へのアクセスが可能な、ディスク装置の制御方法を提供することである。
本発明の第十七の目的は、HDDの記録媒体に記録した内部データ構造にアクセス可能な、ディスク装置の制御方法を提供することである。
本発明の第十八の目的は、HDDの記録媒体の各ブロックに対応する仮領域に記録した管理データを読み出し可能な、ディスク装置の制御方法を提供することである。
本発明の第十九の目的は、一定期間ホストからの書き込み要求が存在しない場合に、最後に書き込んだブロックの管理領域に識別子を追加可能な、ディスク装置の制御方法を提供することである。
本発明の第二十の目的は、ブロックへの書き込みの際にブロックの管理領域にホストが指定する書き込み時刻を書き込む、ディスク装置の制御方法を提供することである。
本発明では、書き込み要求においてホストが指定する論理ブロックアドレスをHDD内部の記憶媒体の物理ブロックアドレスに変換する際に、既存データの末尾に新規データを追加するようにアドレス変換を行うとともに、論理ブロックアドレスと物理ブロックアドレスの対応表を管理し、読み出し要求において論理ブロックアドレスと物理ブロックアドレスの対応表から要求された論理ブロックアドレスに対して最も最近変換した物理ブロックアドレスからデータを読み出すように制御する。
本発明のディスク装置の制御方法は、記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備え、前記制御部は、ホストからの書き込みコマンドを受信するステップ、書き込みコマンドに含まれる論理ブロックアドレスを読み出し、読み出した論理ブロックアドレスを物理ブロックアドレスに変換する際に、追記方式でデータ書き込みができるように未使用領域であり最も最近書き込みを行った物理ブロックアドレスの次の物理ブロックアドレスに変換し、変換した物理ブロックアドレスに対してホストが指定したデータを書き込み、変換した物理ブロックアドレスに対応した管理領域に、ホストが指定した論理ブロックアドレスの値を書き込む処理を行う。
ホストが連続した複数の論理ブロックアドレスに対して書き込みコマンドを発行していることを検出した場合には、連続した複数の論理ブロックアドレスを連続した複数の物理ブロックアドレスに変換し、連続した複数の物理ブロックアドレスに対応した一つの管理領域を割り当て、一つの管理領域に、復元可能な任意の符号化方式によりホストが指定した連続した複数の論理ブロックアドレスの値を書き込むのが好ましい。符号化方式としては、論理ブロックアドレスの開始アドレスと連続して書き込むサイズを用いることができる。
制御部は、また、論理ブロックアドレスと物理ブロックアドレスとの対応、もしくは連続した複数の論理ブロックアドレスと連続した複数の物理ブロックアドレスとの対応を一つのエントリとして一時記憶領域上のアドレス変換テーブルに保存し、アドレス変換テーブルに保存されたエントリ数を別途定める許容エントリ数と比較し、比較の結果、保存されたエントリ数が許容エントリ数を超えている場合に、別途定める退避数分だけ、最も最近使用していないエントリから使用していない順番にエントリを選択し、最も最近書き込みを行った物理ブロックアドレスの次の物理ブロックアドレスを選択し、選択した物理ブロックアドレスに選択したエントリの内容を書き出すことで一時記憶領域上のアドレス変換テーブルを記憶媒体上に退避し、選択した物理ブロックアドレスに対応した管理領域に、書き出したデータがアドレス変換テーブルのエントリであることを示すフラグを書き出す処理を行う。
選択した物理ブロックアドレスの値を一時記憶領域上に保存し、アドレス変換テーブルを記憶媒体上に退避する際に、選択したエントリの内容に加え、一時記憶領域上に記録されている前回アドレス変換テーブルを記憶媒体上に退避した際に用いた物理ブロックアドレスの値も一緒に書き出してもよい。記憶媒体上の特定の領域上にある、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブルに、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保持してもよい。アドレス変換テーブルは、記憶媒体の管理領域上、あるいはユーザデータ領域上に設けることができる。
制御部は、また、ホストからの読み出しコマンドを受信し、読み出しコマンドに含まれる論理ブロックアドレスを読み出し、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルから論理ブロックアドレスに対応するエントリを読み出し、読み出したエントリから物理ブロックアドレスを読み出し、記憶媒体の物理ブロックアドレスからデータを読み出し、読み出したデータをホストに送信する処理を行う。一時記憶領域上のアドレス変換テーブルに論理ブロックアドレスに対応するエントリが存在しない場合には、記憶媒体上に退避したアドレス変換テーブルから論理ブロックアドレスに対応するエントリを検索する。
本発明によると、制御部は、また、ホストからの読み出しコマンドを受信し、読み出しコマンドに含まれる論理ブロックアドレスを読み出し、記憶媒体上の特定の領域上にある、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブルから、論理ブロックアドレスに対応するエントリを読み出し、読み出したエントリから物理ブロックアドレスを読み出し、記憶媒体の物理ブロックアドレスからデータを読み出し、読み出したデータをホストに送信する処理を行う。
物理ブロックアドレスに対応した管理領域から物理ブロックアドレスにホストが書き込んだ際に指定した論理ブロックアドレスを読み出し、読み出しコマンドから読み出した論理ブロックアドレスと、管理領域から読み出した論理ブロックアドレスとを比較し、比較が一致しない場合に、ホストに対してエラーを返す。
制御部は、また、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化し、最も最近書き込みを行った物理ブロックアドレスを起点に、より小さな物理ブロックアドレス方向にアドレス変換テーブルを退避したブロックを検索し、検索ステップにより発見したアドレス変換テーブルを退避したブロックを読み出して一時記憶領域上のアドレス変換テーブル上に復旧し、退避したブロックの次の物理ブロックアドレスを起点に最も最近書き込みを行った物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、物理ブロックアドレスに対応した管理領域から物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出し、物理ブロックアドレスと論理ブロックアドレスとの対応を一つのエントリにして、一時記憶領域上のアドレス変換テーブルに保存する処理を行う。
制御部は、また、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化し、最も小さな物理ブロックアドレスを起点に、最も最近書き込みを行った物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、物理ブロックアドレスに対応した管理領域から物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出し、物理ブロックアドレスと論理ブロックアドレスとの対応を一つのエントリにして、アドレス変換テーブルに保存する処理を行う。
制御部は、また、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化し、最も小さな物理ブロックアドレスを起点に、最も最近書き込みを行った物理ブロックアドレスに向かって、アドレス変換テーブルを退避したブロックを検索し、検索ステップにより発見したアドレス変換テーブルを退避したブロックを読み出して一時記憶領域上のアドレス変換テーブル上に追加し、アドレス変換テーブルに保存されたエントリ数を別途定める許容エントリ数と比較し、比較の結果、保存されたエントリ数が許容エントリ数を越えている場合に、別途定める削除数分だけ、最も最近使用していないエントリから順番にエントリを選択し、選択したエントリをアドレス変換テーブルから削除し、最も最後に読み込んだ退避したブロックの次の物理ブロックアドレスを起点に最も最近書き込みを行った物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、物理ブロックアドレスに対応した管理領域から物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出し、物理ブロックアドレスと論理ブロックアドレスとの対応を一つのエントリにして、一時記憶領域上のアドレス変換テーブルに保存する処理を行う。
ブロックに保存されたデータがユーザデータである場合にのみ、物理ブロックアドレスと論理ブロックアドレスを読み出す。また、一時記憶領域上に保存したエントリを、記憶媒体上の特定の領域上にある、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブル上の、対応するエントリに保存する。
制御部は、また、処理する上限の物理ブロックアドレスの値を設定し、最も小さな物理ブロックアドレスを起点に、処理上限の物理ブロックアドレスに向かって各ブロックについて、ブロックの物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスの値と同一の論理ブロックアドレスに対して、処理対象の物理ブロックアドレスよりも上位の物理ブロックアドレスにおいてホストが書き込んでいないか検査し、上位の物理ブロックアドレスにおいてホストが書き込んでいる場合に、同一の論理ブロックアドレスへの書き込みが、より上位の物理ブロックアドレスにより上書きされていることを示すダーティ・フラグをブロックに対応した管理領域に書き込み、最も小さな物理ブロックアドレスを起点に、最も最近書き込まれた物理ブロックアドレスに向かって各ブロックについて、ダーティ・フラグの付いたブロックを上書きするように、ダーティ・フラグの付いていないブロックを下位の物理ブロックアドレスの方向に移動する処理を行う。
制御部は、また、処理する上限の物理ブロックアドレスの値を設定し、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上の第二のアドレス変換テーブルを初期化し、最も小さな物理ブロックアドレスを起点に、処理上限の物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、物理ブロックアドレスに対応した管理領域から物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出し、物理ブロックアドレスと論理ブロックアドレスとの対応を一つのエントリにして、第二のアドレス変換テーブルに保存し、ホストからの要求を受信する際に第二のアドレス変換テーブルにより物理ブロックアドレスと論理ブロックアドレスとの変換を行う記憶媒体へのアクセス手段を有効化する処理を行う。
制御部は、また、処理する下限の物理ブロックアドレスの値を設定し、処理下限の物理ブロックアドレスを起点に、最も最近書き込んだ物理ブロックアドレスに向かって、書き込み済みのブロックを無効化して初期化し、論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化し、最も小さな物理ブロックアドレスを起点に、処理下限の物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、物理ブロックアドレスに対応した管理領域から物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出し、物理ブロックアドレスと論理ブロックアドレスとの対応を一つのエントリにして、アドレス変換テーブルに保存する処理を行う。
制御部は、また、装置の稼働時間を読み出し、読み出した稼働時間を、変換した物理ブロックアドレスに対応した管理領域もしくは連続した複数の物理ブロックアドレスに対応した一つの管理領域に書き込む処理を行う。そして、ヘッドの退避時もしくは電源遮断時に、装置の稼働時間を管理領域に保存し、装置の起動時に、管理領域に保存した稼働時間を読み出し、読み出した稼働時間を用いて、装置の稼働時間を初期化する。ホストからの書き込みコマンドから、コマンドの発行時刻を読み出し、読み出したコマンド発行時刻を、変換した物理ブロックアドレスに対応した管理領域もしくは連続した複数の物理ブロックアドレスに対応した一つの管理領域に書き込む。
制御部は、また、記憶媒体上に存在しない論理ブロックアドレスへのホストからの書き込みコマンドもしくは読み出しコマンドを受信し、論理ブロックアドレスが制御コマンド受信用のアドレスかどうかを検査し、制御コマンド受信用アドレスであり、かつ受信したコマンドが書き込みコマンドである場合に、書き込みコマンドのデータ領域中のデータを読み出し、データを制御コマンドかどうかを検査し、制御コマンドである場合に、制御コマンドを実行し、制御コマンド受信用アドレスであり、かつ受信したコマンドが読み出しコマンドである場合に、受信した論理ブロックアドレスに対応した記憶媒体の管理情報を読み出し、読み出した記憶媒体の管理情報をホストに送信する処理を行う。
制御部は、また、ホストからコマンドが記憶媒体の内部データ構造への直接参照を要求する読み出しコマンドかどうかを検査し、直接参照を要求する読み出しコマンドである場合に、ホストが論理ブロックアドレスとして指定したアドレスをHDD内部の物理ブロックアドレスとしてシークし、ブロックに記録したユーザデータと、ブロックに対応した管理領域に記録した管理データとを読み出し、ユーザデータと前記管理データとをホストに送信する。
制御部は、また、ホストからのコマンドが記憶媒体の管理領域に記録した管理データの読み出しコマンドかどうかを検査し、管理データの読み出しコマンドである場合に、ホストが論理ブロックアドレスとして指定したアドレスを記憶媒体内部の物理ブロックアドレスとして、ブロックに対応した管理領域に記録した管理データを読み出し、管理データをホストに送信する処理を行う。
制御部は、また、ホストからの書き込みコマンドの発行間隔を検出し、ホストが最後に書き込みコマンドを発行してから別途定める期間だけ書き込みコマンドを発行していないかどうか検査し、別途定める期間書き込みコマンドを発行していない場合に、最も最近書き込みを行った物理ブロックアドレスに対応した管理領域に、別途定める期間だけ書き込みコマンドを発行していないことを示す識別子を追加する処理を行う。
本発明によると、小さなキャッシュメモリしか持たないHDDにおいても、ホストが指定するLBAの値に関わらずHDDの記憶媒体にデータを上書きすることなく追記式で書き込むディスク制御を実現することが可能となり、障碍に強いディスク装置を提供することができる。
発明の実施の形態について図面を参照して説明する。なお、同一の参照番号は同じ構成要素を示す。
図1は、本発明のデータを上書きすることのない追記方式によるディスク装置の制御方法の第一の実施の形態のソフトウェア処理レイヤのブロック図である。このソフトウェア処理レイヤ100は、ホストとHDDの通信プロトコルであるATAやSCSIを処理するプロトコル処理レイヤ101、ホストが指定する論理ブロックアドレス(LBA)をログ形式でアクセスする物理ブロックアドレス(PBA)に変換するログ変換レイヤ102、指定したPBAが欠陥セクタである場合に予備のセクタと交替するための欠陥セクタ交替レイヤ103、指定したPBAでHDDの記憶媒体上にアクセスする物理アクセス処理104からなる。
図2は、従来の技術によるHDDの制御方法のソフトウェア処理レイヤのブロック図である。図2において、201はホストが指定するLBAを数式処理によりPBAに変換するアドレス変換レイヤである。
図3は、本発明によるディスク装置の制御方法の第一の実施の形態によるWRITE処理のPAD図である。図3において、300は本発明によるディスク装置の制御方法の第一の実施の形態によるWRITE処理のPAD図、301はWRITEコマンド受信ステップ、302はWRITEバッファ初期化ステップ、303はHDDのメモリ上のアドレス変換テーブルのサイズが別途定める閾値を超えているかどうか検査するステップ、304は別途指定するエントリ数分だけ最も使っていないエントリを選択するステップ、305は選択したエントリをWRITEバッファに追加するステップ、306はホストが指定するLBAをHDD内のPBAに変換するステップ、307は変換したアドレスをアドレス変換テーブルに追加するステップ、308はWRITEコマンド中のユーザデータをWRITEバッファに追加するステップ、309はWRITEバッファの内容をHDDの記憶媒体に書き込むステップ、310はWRITEの実行結果をホストに返すステップ、である。
図4は、本発明によるディスク装置の制御方法の第一の実施の形態によるデータフォーマットである。図4において、400は本発明による第一の実施の形態のデータフォーマット、401はHDDの記録媒体のアドレス空間のイメージ、402は一回の書き込み単位、403はユーザデータ、404はフラグ、405はHDDの記録媒体上に退避したアドレス変換テーブルの退避データ、406はフラグ内部のデータ構造、407はHDDのキャッシュメモリ上のアドレス変換テーブル、408はHDDの記憶媒体上に退避したアドレス変換テーブルを管理するHDDのキャッシュメモリ上の物理ブロックアドレス管理テーブル、である。
図5は、本発明によるディスク装置の制御方法の第一の実施の形態によるREAD処理のPAD図である。図5において、500は本発明によるディスク装置の制御方法の第一の実施の形態におけるREAD処理のPAD図、501はREADコマンドの受信ステップ、502はREADバッファの初期化ステップ、503はHDDのメモリ上のアドレス変換テーブルに指定したLBAが存在するか検査するステップ、504はHDDのメモリ上のアドレス変換テーブルからPBAを読み出すステップ、505はHDDの記憶媒体に退避したアドレス変換テーブルからPBAを読み出すステップ、506はREADバッファにHDDの記憶媒体から読み込むステップ、507はREADの実行結果をホストに返すステップ、である。
図14は、本発明による追記方式HDDの第一の実施の形態のハードウェアのブロック図である。図14において、1400は本発明による追記方式HDDの第一の実施の形態のハードウェアのブロック図、1401はフラッシュロム、1402は主記憶、1403はキャッシュメモリ、1404はマイクロプロセッサ(MPU)、1405はハードディスクコントローラ(HDC)およびSCSIプロトコルコントローラ(SPC)、1406はサーボコントローラ、1407はリードライトチャネル、である。
図15は、SCSIのWRITE(16)コマンドである。図15において、1500はSCSIのWRITE(16)コマンド、1501はオペレーションコード(OPERATION CODE)、1502は論理ブロックアドレス(LOGICAL BLOCK ADDRESS:LBA)、1503は転送長(TRANSFER LENGTH)、である。
図16は、SCSIのREAD(16)コマンドである。図16において、1600はSCSIのREAD(16)コマンド、1601はオペレーションコード(OPERATION CODE)、1602は論理ブロックアドレス(LOGICAL BLOCK ADDRESS:LBA)、1603は転送長(TRANSFER LENGTH)、である。
図17は、片方向リンクトリストの概念図である。図17において、1700は片方向リンクトリストの概念図、1701は今回のアドレス変換テーブルの待避ブロックから前回のアドレス変換テーブルの待避ブロックへのリンク、である。
図18は、双方向リンクトリストの概念図である。図18において、1800は双方向リンクトリストの概念図、1801は前回のアドレス変換テーブルの待避ブロックから今回のアドレス変換テーブルの待避ブロックへのリンク、である。
本実施の形態では、ホストが指定する論理ブロックアドレス(LBA)の値に関わらずHDDの記録媒体上で既存データの末尾に追記書きするように記録媒体の物理ブロックアドレス(PBA)を割り当てて、HDDの制御を行う所に特徴がある。
図2の従来の技術によるHDDのソフトウェア処理レイヤは、大きく分けてプロトコル処理101、アドレス変換201、欠陥セクタ交替103、物理アクセス104、の四つからなる。プロトコル処理101は、ホストがHDDとの通信を行う際に用いるプロトコルであるATAやSCSIなどのコマンドの解釈を行ない、HDD内部の制御コマンドへの翻訳を行う。アドレス変換201は、ホストが指定したLBAを数式処理してPBAに変換する。欠陥セクタ交替103では、アドレス変換201により変換したPBAの指定するセクタが欠陥セクタである場合に、代替用の正常なセクタにPBAを入れ換える。そして物理アクセス104は、PBAが指定するセクタに対して読み書きを行う。
これに対して、本実施の形態のHDDのソフトウェア処理レイヤは、図1に示す通り従来の技術に対して、アドレス変換201の代わりにログ変換102によりLBAをPBAに変換する所に特徴がある。ログ変換102ではLBAを、HDDの記憶媒体上で既存のデータの末尾に追記書き方式でアクセスするように変換する。このようにアドレス変換201の代わりに、ログ変換102によりアドレス変換を行うことにより、プロトコル処理101と欠陥セクタ交替103に既存のプログラムを使用できるため、プログラム開発工数を削減できる。
図14により、本発明による追記方式HDDの第一の実施の形態の動作の概要を説明する。追記方式HDDの制御プログラムはフラッシュロム1401に格納されている。MPU1404に電源を投入すると、MPU1404は制御プログラムをフラッシュロム1401から読み出し主記憶1402に展開する。この制御プログラムには図3のWRITE処理や図5のREAD処理などが含まれている。
ホストからのコマンドの受信や応答の送信はHDC/SPC1405が行う。このコマンドには図15のWRITE(16)コマンドや図16のREAD(16)コマンドなどが含まれる。SPCはSCSIプロトコルにおけるコマンドやデータの送受信を行う。図3のWRITE処理ではWRITEコマンド受信ステップ301、WRITEの実行結果をホストに返すステップ310、図5のREAD処理ではREADコマンド受信ステップ501、READの実行結果をホストに返すステップ507、がSPCでの処理になる。
SPCでの処理の終了後、MPU1404に処理が移る。MPU1404では主記憶1402中の制御プログラムに応じてHDDの記録媒体にアクセスするために必要な処理を行う。図3のWRITE処理ではステップ302からステップ308、図5のREAD処理ではステップ502からステップ505、がMPU1404での処理になる。
ホストから受信したWRITEデータやHDDの記録媒体から読み出したREADデータはキャッシュメモリ1403に保存する。またキャッシュメモリ1403には図4のアドレス変換テーブル407やアドレス変換テーブル待避アドレス408も保存する。
主記憶1402には、ステップ303で用いるアドレス変換テーブルのサイズの判定に用いる別途定める閾値、ステップ306で用いるどのPBAまで書き込みを行ったかを管理する変数、などMPU1404での処理に必要な各種変数も保存する。
MPU1404での処理の終了後、HDCに処理が移る。HDCではMPU1404で変換した物理ブロックアドレスに従いサーボコントローラ1406に命令を送りHDDのヘッドを制御する。ヘッドの制御後、HDCはリードライトチャネル1407に命令を送り記録媒体へのデータのWRITEや記録媒体からのデータのREADを行う。図3のWRITE処理ではWRITEバッファの内容をHDDに書き込むステップ309、図5のREAD処理ではREADバッファにHDDの記録媒体から読み込むステップ、がHDCでの処理になる。
図15と図16とにより、SCSIコマンドの構造を説明する。コマンドの1バイト目がオペレーションコードである。WRITEコマンドのオペレーションコード1501では8Ahが格納され、READコマンドのオペレーションコード1601では88hが格納される。2バイト目から9バイト目が論理ブロックアドレス(LBA)1502、1602である。LBA1502は、ステップ306において物理ブロックアドレス(PBA)に変換される。LBA1602は、ステップ503からステップ505においてPBAに変換される。10バイト目から13バイト目が転送長1503、1603である。ステップ302で転送長1503のサイズでWRITEバッファのサイズを決定して初期化を行い、ステップ308で転送長1503のサイズでステップ301で受信したユーザデータをWRITEバッファに転送する。ステップ502で転送長1603のサイズでREADバッファを初期化し、ステップ506で転送長1603のサイズで記録媒体から読み出したデータをREADバッファに格納する。
次に図3に従い、WRITEの手順を説明する。必要なデータ構造については、図4も使い説明する。図3において、ステップ303からステップ307までがログ変換102に相当する。
ステップ301でホストからのWRITEコマンドを受信し、ステップ302でWRITEバッファを初期化し、ステップ303に進む。
本実施の形態でのLBAからPBAへの変換処理は、数式処理ではなく前回割り当てたアドレスの次のアドレスを割り当てるため、HDDの内部状態に応じた処理になる。このため、LBAとPBAとの対応をアドレス変換テーブルにより管理する必要がある。処理の高速化のためには、アドレス変換テーブルを半導体メモリなど高速アクセス可能な媒体上に保存することが望ましい。しかし、指定可能な全てのLBAに対するアドレス変換テーブルのサイズは非常に大きく、HDD上に搭載可能な半導体メモリには格納できない。そこで、本実施の形態では、半導体メモリで構築したキャッシュメモリ上に図4の407のLBAとPBAとのエントリからなるアドレス変換テーブルを構築し、頻繁に使うLBAについてのみLRU制御により管理する。アドレス変換テーブル407から溢れたエントリを記憶媒体上に退避する。
ステップ303では、アドレス変換テーブル407に登録したLBAとPBAとの対応を表すエントリ数が別途指定する閾値を越えていないかどうか検査する。もしも越えている場合にはステップ304に進み、越えていない場合にはステップ306に進む。ステップ304では別途指定するエントリ数分だけ、LRU方式、つまり最も最近使用していないエントリを選択する。アドレス変換テーブル407に登録したエントリは、少なくとも一回はHDDの記憶媒体上に退避することが望ましい。このためLRU方式により使用頻度の低いエントリをアドレス変換テーブル407から削除するために退避する他に、各エントリに記憶媒体に退避したかどうかを管理するフラグを設け、WRITEバッファなどに空き領域がある限り使用頻度が高いが退避していないエントリを退避するように制御する。ステップ304の終了後ステップ305に進む。
ステップ305では、後述するステップ306と同様にしてアドレス変換テーブル407を退避するブロックを確保し、退避用ブロックのPBAの値とステップ305で選択したエントリをWRITEバッファに追加する。また、退避用ブロックのPBAの値をHDDのキャッシュメモリ上にあるアドレス変換テーブルの退避アドレスを管理するテーブル408に登録する。さらに、管理テーブル408から少なくとも前回アドレス変換テーブル407を退避したPBAを読み出し、WRITEバッファに追加する。このようにアドレス変換テーブルを退避したPBAを記録することで、全ての退避データをリンクトリストで接続することになるため、フラグ404のデータ種別を頼りに全データをスキャンせずに、容易に退避データを検索できる。ステップ305の終了後ステップ306に進む。
ここでは、片方向リンクトリストにより退避データを繋げているが、双方向リンクトリストにより退避データを繋げることで、より効率良くかつ自由度を上げて検索できるようになる。
図17は片方向リンクトリストの概念図である。前回アドレス変換テーブルを待避したPBAの値を今回アドレス変換テーブルを待避する際に一緒に保存することで、リンク1701のように現在から過去に向かってアドレス変換テーブルを待避したPBAを辿ることができる。
図18は双方向リンクトリストの概念図である。図17の片方向リンクトリストに加え今回アドレス変換テーブルを待避したPBAの値を前回アドレス変換テーブルを待避したPBAに追加することで、リンク1801のように過去から現在に向かってアドレス変換テーブルを待避したPBAを辿ることができる。リンク1701とリンク1801との両者を用いることで、現在と過去の双方向にアドレス変換テーブルを辿ることができる。
ステップ306では、ホストがWRITEコマンドで指定したLBAを実際にHDDの記憶媒体に書き込む際のPBAに変換する。既存のデータの末尾に追記書きするため、HDDの作業用メモリ上にはどのPBAまで書き込みを行ったか管理する変数がある。その変数から値を読み出し、そのアドレスに続けて書き込みを行うように、PBAを決定する。作業メモリ上の書き込み管理の変数は、ヘッドの退避時や電源遮断時にはHDDの不揮発の管理領域に保存する。電源投入時などには不揮発の管理領域に保存した値を読み出し、作業メモリ上の書き込み管理の変数を初期化する。ステップ306の終了後ステップ307に進む。
ステップ307では、ホストが指定したLBAとステップ306で決定したPBAとの対応を一つのエントリとして、キャッシュメモリ上のアドレス変換テーブル407に登録する。ステップ307の終了後ステップ308に進む。
ステップ308では、ステップ306で変換したPBAとホストがWRITEコマンドで指定したユーザデータをWRITEバッファに追加する。ステップ308の終了後ステップ309に進む。
ステップ309では、WRITEバッファに書かれたPBAとデータの組み合わせを基に記憶媒体上にデータを記録する。ステップ309の終了後ステップ310に進む。
ステップ310では、記録媒体に書き込みを行った結果を、WRITEコマンドの応答としてホストに返す。
ステップ303やステップ304で用いる閾値や退避するエントリ数を指定する方法としては、S.M.A.R.T.の管理エントリに新たなエントリを作成し、そのエントリ経由で指定する方法、ベンダ定義コマンドとして新たなコマンドを定義して、そのコマンドにより指定する方法、通常のWRITEコマンドのデータ領域に管理コマンドをカプセル化して指定する方法、などがある。
通常のWRITEコマンドを用いる方法では、通常アクセスで使用可能な範囲外のLBAに対してWRITEを行うことで、管理用のコマンドであることを識別する。この時に用いるLBAの決定方法としては、HDDに固有なIDを符合化して得られる値や、HDDに固有なIDと実行する管理コマンドのIDとを符合化して得られる値を使用する方法などがある。実行までに複数のシーケンスが必要な管理コマンドの場合、ある一定の規則に従い次々にアクセスするLBAを変えるように制御することで、コマンドの誤実行を防止できる。また、WRITEコマンドのデータ領域にカプセル化されている管理コマンドを暗号化することで、ウイルスなどの不正な手段により管理コマンドを発行される危険を低減できる。
本実施の形態により、ホストが指定するLBAの値に関わらずHDDの記憶媒体に追記式に書き込むことが可能となり、ヘッドのシーク時間を削減することでWRITE性能が向上する効果がある。
また、本実施の形態により、キャッシュメモリの容量が少なくアドレス変換テーブルをキャッシュメモリ上に全て保存できない場合でも、効率良くLBAと対応するPBAを検索できる効果がある。
次に図4を使い、記録媒体上のデータフォーマットについて説明する。401はHDDの記録媒体のアドレス空間のイメージを示す。通常のHDDではユーザデータを記録する際に、検証用のECCコードなどを除くと基本的にユーザデータのみを保存する。これに対し、本実施の形態によるディスク装置の制御方法では、ユーザデータ403の他にフラグ404を保存する所に特徴がある。
HDDの記録媒体への一回の書き込み単位は、ユーザデータ403もしくは退避データ405とフラグ404とを併せた402となる。
フラグ404のデータ構造は406のようになる。LBAはホストが指定したアドレス、PBAはステップ306で変換したアドレスである。データ種別は、ホストが書き込みを指示したユーザデータ403と、アドレス変換テーブルの退避データ405とを識別する識別子である。状態は他の実施の形態で説明する領域の再利用などで、ユーザデータ403や退避データ405の状態管理をする場合に用いる。書き込み時刻は、ユーザデータ403や退避データ405をHDDの記憶媒体上に書き込んだ時刻である。この書き込み時刻は、ユーザデータ403の完全性の検証などに用いることができるのであれば、必ずしも外部と同期した時刻である必要はなく、さらには書き込みごとにカウントアップするシーケンス番号などでも良い。例えば時刻を用いるのであれば、HDDの総稼働時間を用いる手法がある。HDDの初稼働からカウントアップを続けるタイマにより総稼働時間を算出し、ヘッドの退避時や電源遮断時にはHDDの不揮発の管理領域に保存する。電源投入時などには不揮発の管理領域に保存したタイマの値を読み出し、タイマを初期化するようにすると、時計用のバックアップ電池が不要になる。
本実施の形態ではアドレス変換テーブル407が溢れるごとに退避データ405の形でアドレス変換テーブルをユーザデータ403と同様にHDDの記憶媒体上に追記書きしているが、この他の手法を用いても良い。例えば、指定可能な全てのLBAに対するアドレス変換テーブルをHDDの記憶媒体上に保存する方法がある。この時のアドレス変換テーブルの配置場所としては、HDDの不揮発の管理領域やユーザデータ空間などがある。データの安全性のためにはデータが二重化してあることが望ましく、退避データ405をHDDの記憶媒体上に追記書きする方法と、指定可能な全てのLBAに対するアドレス変換テーブルをHDDの記憶媒体上に保存する方法とを併用しても良い。
本実施の形態では、ユーザデータ403もしくはアドレス変換テーブルの退避データ405の直後にフラグ404を配置しているが、この他の配置方法でも同様に本実施の形態は適用できる。その他の配置方法の例としては、ユーザデータ403もしくは退避データ405の前に配置したり、HDDの管理領域中に配置する、などがある。
本実施の形態では、フラグ内部のデータ構造406にブロックのPBAを記録している。これはデバッグ等の便宜のための措置であり、必ずしもPBAをフラグ内部のデータ構造406に記録する必要はない。
HDD内部のデータの検証やデバッグのためには、図4に示したHDD内部のデータ構造、すなわちユーザデータ403、フラグ404、退避データ405の全て、もしくはフラグ404だけを直接参照する必要がある。その際には、前記の閾値や退避するエントリ数の指定と同様に、S.M.A.R.T.、ベンダ定義コマンド、通常のWRITEコマンドのデータ領域に管理コマンドをカプセル化して指定などの方法の他に、例えばSCSIであれば通常のHDDのボリュームとは異なるLUNでアクセスする方法、などがある。これらの手法で内部のデータ構造にアクセスする場合には、ホストが指定するLBAをアドレス変換テーブル407を使ってPBAに変換せず、LBAを直接PBAとして、もしくはLBAを数式変換によりPBAに変換して、内部データ構造にアクセスする。
次に図5を使い、READの手順を説明する。図5において、ステップ503からステップ505が、ログ変換102に相当する。
ステップ501でホストからのREADコマンドを受信し、ステップ502でREADバッファを初期化する。ステップ502に終了後ステップ503に進む。
ステップ503では、アドレス変換テーブル407にホストが指定したLBAのエントリが存在するかどうかを検査する。エントリが存在する場合には、ステップ504でホストが指定したLBAに対応するPBAを読み出す。エントリが存在しない場合には、ステップ505で、HDDの記憶媒体上に退避したアドレス変換テーブル405からホストが指定したLBAに対応したPBAを読み出す。ステップ305での説明のように、アドレス変換テーブルを退避する際に前回退避したブロックのPBAの値も一緒に退避すると、全ての退避データがリンクトリストで繋がることになり、順番に全ての退避ブロックを検索できる。これにより、退避したアドレス変換テーブルのPBAの管理テーブル408の容量が小さく全ての退避ブロックのPBAの値を保持できない場合であっても、フラグ404に書かれたデータ種別を頼りに全データをスキャンせずに、容易に退避データを検索することができる。ステップ504またはステップ505の終了後ステップ506に進む。
ステップ506では読み出したPBAからREADバッファにデータを読み出す。ステップ506の終了後ステップ507に進む。ステップ507ではREADバッファの内容を、READコマンドの応答としてホストに返す。
本実施の形態では、HDD単体の制御方法について説明したが、より強力なプロセッサや大容量メモリを搭載した大型ディスクアレイ装置にも同様に適用可能である。
図6は、本発明によるディスク装置の制御方法の第二の実施の形態によるデータフォーマットである。図6において、600は本発明の第二の実施の形態のデータフォーマット、601はフラグ、602は一回の書き込み単位、603はフラグ内部のデータ構造、である。
本実施の形態では、連続するアドレスへの書き込みに最適化することで、第一の実施の形態に対してフラグに必要なデータ領域を削減する所に特徴がある。
第一の実施の形態では、一つのユーザデータ403に対して一つのフラグ404を割り当てていたのに対し、本実施の形態では複数のユーザデータ403に対して一つのフラグ601を割り当てる。例えばファイルシステムなどで4KB単位でHDDにアクセスする場合、一つのブロックのサイズが512Bの場合にはフラグに必要な領域を1/8にすることができる。
このような制御を実現するため、フラグ内部のデータ構造603に示すように、連続アドレスからなる複数のLBAをLBAのオフセットとブロック数により符合化する。
一回のデータ書き込み単位602は、一つのフラグ601と複数のユーザデータ403となる。フラグ内部のデータ構造603のブロック数で、何ブロック連続して書き込むかを管理するので、一回に書き込むユーザデータ403の個数は可変である。また、フラグ601の書き込み数を削減する分、WRITE性能が向上する効果がある。
本実施の形態により、フラグに必要なデータ領域を削減する効果があるとともに、フラグの書き込み回数を削減することでWRITE性能が向上する効果がある。
図7は、本発明によるディスク装置の制御方法の第三の実施の形態によるアドレス変換テーブルの障碍復帰方法のPAD図である。図7において、700は本発明によるディスク装置の制御方法の第三の実施の形態によるアドレス変換テーブルの障碍復帰方法のPAD図、701はアドレス変換テーブルの初期化ステップ、702は最後に退避したアドレス変換テーブルの検索ステップ、703は検索に成功したかを判定するステップ、704はHDD上に退避した退避データ405をキャッシュメモリ上のアドレス変換テーブル407に復帰するステップ、705は退避データの次のブロックにシークするステップ、706はHDDの先頭にシークするステップ、710はHDDに書き込んだPBAの上限までループするステップ、711はフラグ404を読み込むステップ、712はフラグ内部のデータ構造406からLBAとPBAを読み出し、エントリを作成してアドレス変換テーブル407に登録するステップ、713は現在処理しているブロックの次のブロックにシークするステップ、である。
第一の実施の形態で述べたキャッシュメモリ上のアドレス変換テーブル407はHDDの電源を切ると内容が消えてしまう。このため、ヘッドの退避時や電源遮断時にアドレス変換テーブル407をHDDの不揮発の管理領域に退避しておき、HDDの電源投入時に管理領域から退避したアドレス変換テーブルを読み出してキャッシュメモリ上のアドレス変換テーブル407に復帰する手順が必要になる。しかし、急な電源遮断やホストもしくはHDDのシステムの暴走などによりアドレス変換テーブル407を退避できない場合には、HDDの記憶媒体上に書かれた情報を基にアドレス変換テーブルを再構築する必要がある。本実施の形態では、HDDの記憶媒体上に最後に退避したアドレス変換テーブルとアドレス変換テーブルを退避した以降のユーザデータのフラグ情報を用いて、キャッシュメモリ上のアドレス変換テーブルを再構築する所に特徴がある。
ステップ701では、キャッシュメモリ上のアドレス変換テーブル407を初期化する。ステップ701の終了後ステップ702に進む。
ステップ702では、HDDの記憶媒体上に最後に退避したアドレス変換テーブルを検索する。検索手法の一例は以下のようになる。
(1) HDDの管理領域にある最後に書き込みを行ったPBAの値を読み出し、そのPBAにシークする。
(2) PBAの値が大きくなる方向にシークし、ブロックのフラグ404を読み出しブロックが未使用かどうかを確認する。
(3) (2)を繰返し、HDDに最後に書き込まれたブロックのPBAを調べる。最後に書き込まれたブロックのPBAをLPBAとする。
(4) アドレス変換テーブル407に格納可能なエントリ数分(N ENTRY)、PBAの値が小さくなる方向にシークする。シークしたPBAをSPBAとする。
(5) ブロックのフラグ404を読み出し、ブロックが退避データ405かどうかを検査する。
(6) 退避データ405の場合には処理を終了し、退避データ405でない場合にはPBAの値が大きくなる方向にシークし(5)の処理に戻る。もしも、LPBAまでシークしても退避データが見つからない場合には、SPBAからさらにN ENTRY分だけPBAの値を小さくなる方向にシークし、(5)の処理を繰り返す。
ステップ702の終了後ステップ703に進む。
ステップ703では、退避データ405が見つかったかどうかの条件判断を行う。退避データ405が見つかった場合には、ステップ704に進み、見つからなかった場合にはステップ706に進む。
ステップ704では、発見したHDD上に退避した退避データ405をキャッシュメモリ上のアドレス変換テーブル407に復帰する。そしてステップ705に進む。
ステップ705では、退避データ405の次のブロックにシークする。次にステップ710に進む。
ステップ706では、HDDの先頭のPBAにシークする。退避データ405が記憶媒体上に保存されていない場合、記憶媒体の先頭から全てのブロックフラグを読んでアドレス変換テーブル407を再構築する必要がある。次にステップ710に進む。
以降の処理では、退避データ405が書かれた以降に書かれたユーザデータ403について、アドレス変換テーブル407を再構築する。
ステップ710はLPBAまでステップ711からステップ713を実行するループである。
ステップ711ではブロックのフラグ404を読み込む。次にステップ712に進む。
ステップ712では読み込んだフラグ404のLBAとPBAを一つのエントリにしてアドレス変換テーブル407に登録する。次にステップ713に進む。
ステップ713では、次のブロックへシークする。
本実施の形態により、アドレス変換テーブルの退避データと、そこからの差分であるブロックのフラグを読み込んでアドレス変換テーブルを再構築することにより、高速にアドレス変換テーブルを再構築する効果がある。
図8は、本発明によるディスク装置の制御方法の第四の実施の形態によるアドレス変換テーブルの障碍復帰方法のPAD図である。図8において、800は本発明によるディスク装置の制御方法の第四の実施の形態によるアドレス変換テーブルの障碍復帰方法のPAD図、801は退避したアドレス変換テーブルの次のブロックにシークするステップ、810は退避したアドレス変換テーブルが存在する限りループするステップ、811はHDD上に退避したアドレス変換テーブルである退避データ405を読み込むステップ、812はHDDの記憶媒体上の指定可能な全てのLBAに対するアドレス変換テーブルに読み込んだ退避データ405を追加するステップ、813はキャッシュメモリ上のアドレス変換テーブル407のエントリ数が別途定める閾値を越えていないか検査するステップ、814は閾値を越えている場合に別途定めるエントリ数分だけアドレス変換テーブル407から削除するステップ、815は読み込んだ退避データ405をキャッシュメモリ上のアドレス変換テーブル407に追加するステップ、ステップ816は現在読み込んでいる退避データ405の次に退避した退避データにシークするステップ、である。
本発明の実施の形態では、HDDの記憶媒体上に保存した全ての退避データ405からアドレス変換テーブルを再構築する所に特徴がある。ユーザデータ空間もしくは管理領域などHDDの記憶媒体上に、ホストが指定可能な全てのLBAに対するPBAを記憶する完全なアドレス変換テーブルを高速に構築しなければならない場合に、この方法は特に有用である。
第一の実施の形態では、前回の退避データ405を保存したPBAの値を退避データ405に含めることで、退避データ405を片方向リンクトリストを作る場合について説明した。この片方向リンクトリストではPBAの大きい方から小さい方へと辿るため、時系列順で書き込んだ退避データ405を逆向きに辿ることになる。時系列順に退避データを読み込んだ方がアドレス変換テーブルへの登録アルゴリズムが単純になるため、時系列順にも退避データ405を辿ることが可能な双方向リンクトリストになっているのが好ましい。
片方向リンクトリストから双方向リンクトリストへは以下のような手順で変更できる。
(1) 最後に退避した退避データ405を読み込む
(2) 退避データ405のPBAを記憶
(3) 読み込んだ退避データ405から前回退避した退避データ405のPBAの値を読み込む
(4) 前回退避した退避データ405を読み込む
(5) 読み込んだ前回退避した退避データ405に記憶した退避データ405のPBAの値を記録して、HDDの記憶媒体に書き戻す
(6) 前回読み込んだ退避データ405がある限り(2)に戻る
ステップ701では、キャッシュメモリ上のアドレス変換テーブル407を初期化し、ステップ706に進む。ステップ706では、HDDの記憶媒体の先頭にシークし、ステップ810に進む。
ステップ810では、HDDの記憶媒体上に退避した退避データ405がある限り、ステップ811からステップ816のループを実行する。このループはHDDの記憶媒体に書かれた順番に退避データ405を参照する。もしも、退避データ405が時系列の逆順で辿る片方向リンクトリストになっている場合には、ループ実行前に前記した手順で双方向リンクトリストに変更する。
ステップ811では、アドレス変換テーブルをHDDの記憶媒体に退避した退避データ405を読み込み、ステップ812に進む。
ステップ812では、ホストが指定可能な全てのLBAに対するPBAを記憶する完全なアドレス変換テーブルに、読み込んだ退避データからエントリを追加し、ステップ813に進む。
ステップ813では、キャッシュメモリ上のアドレス変換テーブル407に登録したエントリ数が別途指定する閾値を越えていないか比較する。閾値を越えている場合には、ステップ814に進む。ステップ814終了後もしくは閾値を越えていない場合には、ステップ815に進む。
ステップ814では、アドレス変換テーブル407から別途指定するエントリ数分だけLRU方式でエントリを削除する。
ステップ815では、読み込んだ退避データ405をアドレス変換テーブル407に登録し、ステップ816に進む。
ステップ816では、退避データ405に含まれる双方向リンクトリストのうちPBAの値が大きくなる順方向にリンクを辿り、現在読み込んでいる退避データ405の次に退避した退避データ405を読み込む。
ステップ810のループで全ての退避データ405を読み込んだ後には、退避データ405に含まれていないユーザデータ403からの復帰を行う。
ステップ801では、退避データ405の次のブロックにシークし、ステップ710に進む。ステップ710以降は第三の実施の形態のステップ710以降と同様にしてユーザデータ403からアドレス変換テーブルの復帰を行う。
本実施の形態により、退避データ405をリストで繋いでおき、退避データ405のみを読み込むことで、全てのブロックをスキャンせずとも目的とする退避データ405のみを読み出すことが可能になり、全ブロックをスキャンするよりも高速にアドレス変換テーブルを再構築する効果がある。
ステップ814ではエントリを削除しているが、図3で説明したのと同様に記憶媒体上に退避できる。この場合には、退避用の領域を記憶媒体上に予め確保するため、PBAのアドレス空間上に定期的に未使用領域が出来るようにLBAからPBAへとアドレス変換するのが望ましい。
図9は、本発明によるディスク装置の制御方法の第五の実施の形態によるスナップショット構築方法のPAD図である。図9において、900は本発明によるディスク装置の制御方法の第五の実施の形態によるスナップショット構築方法のPAD図、901はスナップショットを構築するPBAの上限アドレスであるSPBAを指定するステップ、902はスナップショット用アドレス変換テーブルの初期化ステップ、903はSPBAよりも下位アドレスで最後に退避したキャッシュメモリ上のアドレス変換テーブル407の退避データ405を検索するステップ、904は退避データ405をスナップショット用アドレス変換テーブルに復帰するステップ、910はSPBAまでループするステップ、である。
本実施の形態では、処理するPBAに上限を設けてアドレス変換テーブルの再構築を行うことにより、スナップショットを実現する所に特徴がある。
HDDの記憶媒体への書き込みが全て時系列順に行われるため、別途定めるPBAまでの範囲でアドレス変換テーブルを構築すると過去のある時点でのHDDのイメージであるスナップショットが得られることになる。すなわち第三の実施の形態で説明したアドレス変換テーブルの障碍復帰の方法に対して、スナップショットを構築する上限のPBAを指定するステップを追加すると、スナップショットの構築手順になる。
ステップ901では、スナップショットを構築する上限のPBAであるSPBAを指定し、ステップ902に進む。
ステップ902では、キャッシュメモリ上のスナップショット用アドレス変換テーブルを初期化し、ステップ903に進む。通常通りのHDDへのアクセスを許したままスナップショットへのアクセスを可能にするため、通常アクセス用のアドレス変換テーブル407とは別にスナップショット用アドレス変換テーブルを別途用意する。ホストが通常のHDDのボリュームとスナップショットのボリュームとに同時にアクセス可能になるためには、それぞれのボリュームに対するアクセスパスを設ける必要がある。例えばSCSIプロトコルを用いてアクセスする場合には、通常のHDDのボリュームとスナップショットのボリュームに異なるLUNを割り当てる方法などがある。
ステップ903以降の処理は、LPBAがSPBAに変わる以外は図7のステップ702以降の処理と同様である。
ユーザが望んだ時点でのスナップショットを得るためには、HDDに書き込んだ時刻をホストの時刻で知るのが望ましい。このためには、ホストからの書き込みコマンドにホストがコマンドを発行した時刻を含め、ブロックのフラグ404のデータ構造406にそのコマンド発行時刻を追加する手法がある。
本実施の形態により、通常のHDDのボリュームへのアクセスを許したままスナップショットのボリュームへのアクセスが可能なスナップショットを構築できる効果がある。また同時に、アドレス変換テーブルの退避データと、そこからの差分であるブロックのフラグを読み込んでアドレス変換テーブルを再構築することにより、高速にスナップショットを構築できる効果がある。
図10は、本発明によるディスク装置の制御方法の第六の実施の形態によるWRITE無効化方法のPAD図である。図10において、1000は本発明によるディスク装置の制御方法の第六の実施の形態によるWRITE無効化方法のPAD図、1001はHDDの記憶媒体に残すPBAの上限(消去を開始するPBAの下限)であるDPBAを指定するステップ、1002はDPBAにシークするステップ、1003はフラグ404をクリアするステップ、1004はDPBAよりも下位アドレスで最後に退避したキャッシュメモリ上のアドレス変換テーブル407の退避データ405を検索するステップ、1010はDPBAまでループするステップ、である。
本実施の形態では、あるPBA以上の物理ブロックアドレスへの書き込みを無効化し、あるPBA以下の物理ブロックアドレスにおいてアドレス変換テーブルの再構築を行うことにより、ある時点以降のHDDの記憶媒体への書き込みを消去し以前のHDDの記憶媒体の状態にロールバックする所に特徴がある。
HDDの記憶媒体への書き込みが全て時系列順で行われるため、別途定めるPBA以上の物理ブロックアドレスへの書き込みを無効化し、別途定めるPBA以下の物理ブロックアドレスにおいてアドレス変換テーブルを再構築すると、任意の時点でHDDの記憶媒体への書き込みを無効化して、以前の状態にロールバックできる。すなわち第三の実施の形態で説明したアドレス変換テーブルの障碍復帰の方法に対して、WRITEの無効化を開始するPBAを指定するステップと、指定したPBA以降の書き込みを無効化するステップを追加すると、WRITE無効化手順になる。
ステップ1001ではWRITEの無効化を開始する下限、もしくは消去しないデータの上限のPBAであるDPBAを指定し、ステップ1002に進む。
ステップ1002では、DPBAにシークし、ステップ710に進む。
ステップ710のループでは、書き込んだ上限のPBAまでステップ1003とステップ713のループを実行し、HDDの記憶媒体に書き込まれたデータを無効化する。
ステップ1003では、ブロックのフラグ404をクリアすることで、ユーザデータ403ならびに退避データ405を無効化する。ここでは高速化のためフラグ404をクリアするだけでユーザデータ403や退避データ405を無効化しているが、安全のためにはユーザデータ403や退避データ405を記録したブロックにダミーの書き込みを行い、記録されたデータを消去するのが望ましい。
ステップ701以降の処理は、LPBAがDPBAに変わる以外は図7のステップ701以降の処理と同様である。
WRITEの無効化を行う際には、ホストから見たHDD内のデータの整合性が保つように無効化を行うのが望ましい。どの時点であればデータの整合性があるかをホストがデータとしてHDDに書き込んでおくのが最も確かであるが、そうでない場合には以下のような手段でHDDが整合性のあるPBAの候補を判断できる。
(1) ホストが書き込みコマンドを発行する頻度を検出する
(2) 最後に書き込みコマンドを発行してから別途定める期間だけ書き込みコマンドを発行していないかどうか検出する
(3) 別途定める期間だけ書き込みコマンドを発行していない場合に、最も最近書き込みを行った物理ブロックアドレスのフラグ404のデータ構造406に、データの整合性のあるPBAの候補であることを示す識別子を追加する。
この手順は、ホストでのディスクキャッシュのためホストからHDDへのアクセスがバースト性を持つことを利用して、バースト書き込みの終了時をデータの整合性がある候補と見なすことを意味する。この手順ではデータ整合性のあるPBAの候補を選択するので、WRITE無効化を行った場合には別途ホスト側からHDDの整合性検査をするのが望ましい。
本発明の形態により、HDDに書き込みを行った後で書き込みを無効化することで、任意の時点のHDDの状態にロールバックできる効果がある。また同時に、アドレス変換テーブルの退避データと、そこからの差分であるブロックのフラグを読み込んでアドレス変換テーブルを再構築することにより、高速にロールバックできる効果がある。
図11は、本発明によるディスク装置の制御方法の第七の実施の形態による領域再利用方法のPAD図である。図11において、1100は第七の実施の形態による領域再利用方法のPAD図、1101は使用済み領域の回収作業を行うPBAの上限であるGPBAを指定するステップ、1102はキャッシュメモリ内の作業用アドレス変換テーブルを初期化するステップ、1110はGPBAまでループを行うステップ、1111はフラグ404のデータ構造406のデータ種別を調べ、ユーザデータ403かどうかを検査するステップ、1112はユーザデータ403である場合のサブルーチン、1113はフラグ404のデータ構造406の状態をDirtyにするステップ、1121はフラグ404のデータ構造406のデータ種別と状態とを調べ、それぞれユーザデータ403とCleanとであることを検査するステップ、1122はユーザデータ403とCleanとである場合のサブルーチン、1123はフラグ404のデータ構造406のデータ種別が退避データ405かどうかを検査するステップ、1103は作業用アドレス変換テーブルとキャッシュメモリ内のアドレス変換テーブル407とを入れ換えるステップ、である。
図12は、本発明によるディスク装置の制御方法の第七の実施の形態によるサブルーチン1112のPAD図である。図12において、1200は本発明によるディスク装置の制御方法の第七の実施の形態によるサブルーチン1112のPAD図、1201はフラグ404のデータ構造406からのLBAを読み出すステップ、1202はLBAに対応する最新のユーザデータ403を書き込んだブロックのPBAを検索するステップ、1203は現在処理中のブロックが最新のユーザデータ403を保持するPBAかどうかを検査するステップ、である。
図13は、本発明よるディスク装置の制御方法の第七の実施の形態によるサブルーチン1122のPAD図である。図13において、1300は本発明よるディスク装置の制御方法の第七の実施の形態によるサブルーチン1122のPAD図、1301は処理中のブロックを低アドレス方向にコピーするステップ、1302はフラグ404のデータ構造406のPBAをコピーした先のPBAの値に修正するステップ、1303は作業用アドレス変換テーブルのサイズが別途指定する閾値を越えているかどうか検査するステップ、1304は別途指定するエントリ数分だけ最も使っていないエントリを選択するステップ、1305は選択したエントリをHDD上の記憶媒体上に退避するステップ、1306はコピー後のLBAとPBAとの対応を作業用アドレス変換テーブルに追加するステップ、である。
図19は、第七の実施の形態による領域再利用方法の概念図である。図19において、1900は領域再利用前のHDDの記録媒体のアドレス空間のイメージ、1901は使用済み領域の回収作業を行うPBAの上限であるGPBA、1902は領域再利用の対象となる使用済みブロック、1903は領域再利用の対象とならない使用済みブロック、1904は未使用ブロック、1910は領域再利用後のHDDの記録媒体のアドレス空間のイメージ、1911は領域再利用を行ったことで大きさが小さくなった使用済みブロック、である。
本発明によるディスク装置の制御方法では、HDDの記憶媒体への書き込みが時系列順で全て記録される。すなわち同一LBAに繰返し書き込みを行った場合、従来のHDDの制御方法ではブロック一つ分しか容量を消費しないが、本発明によるディスク装置の制御方法では、書き込みを行った回数分のブロックの容量を消費する。このため、HDDの記憶媒体の容量を有効に使用するためには、適宜使用済みの容量を回収して再利用可能にする必要がある。ただし、最新の状態しか残さないように回収するとスナップショットやWRITE無効化の機能が使えなくなるので、あるPBA以下のアドレスでは使用済みの容量を回収し、そのPBA以上のアドレスでは使用済み容量を回収しないように制御する必要がある。
本実施の形態では、あるPBA以下のアドレスでのみ使用済み容量を回収することで、スナップショットやWRITE無効化の機能を有効にしながら、領域を再利用可能にする所に特徴がある。
図19により領域再利用の概念を説明する。使用済み領域回収前の状態1900において、使用済み領域の回収作業を行うPBAの上限であるGPBA1901により使用済みの領域を再利用対象のブロック1902と再利用の対象でないブロック1903とに分ける。再利用対象のブロック1902では、上書きされてDirtyであるブロック、即ち同一のLBAについてより上位のPBAで書き込まれているブロック、を上書きするように残りのブロックを低アドレス側にシフトすることで領域を圧縮してブロック1911にする。再利用の対象でないブロック1903は、ブロック1902がブロック1911になったことで空いたブロックを埋めるように低アドレス側にシフトする。これらにより、未使用ブロック1904の領域を拡張する。
ステップ1101では使用済み領域の回収作業を行うPBAの上限であるGPBAを指定する。次にステップ1102に進む。
ステップ1102では作業用アドレス変換テーブルを初期化する。アドレス変換テーブル407とは別に作業用アドレス変換テーブルを用意するのは、通常のHDDのボリュームへのアクセスを許したまま領域再利用の処理を実行可能にするためである。ステップ1102に終了後ステップ706に進む。
ステップ706ではHDDの先頭にシークし、ステップ1110のループに進む。
ステップ1110のループはHDDの先頭からGPBAに向かってステップ711、ステップ1111からステップ1113、およびステップ713を実行する。ステップ1110のループの実行の終了後、ステップ706に進む。ステップ711ではフラグ404を読み込み、ステップ1111に進む。
ステップ1111ではフラグ404のデータ構造406のデータ種別を読み出し、通常ブロックすなわちユーザデータかどうかを検査する。通常ブロックの場合には、ステップ1112のサブルーチンに進み、そうでない場合には、ステップ1113に進む。ステップ1112もしくはステップ1113の終了後ステップ713に進む。
ステップ1112のサブルーチンはステップ1201からステップ1203、およびステップ1113を実行する。
ステップ1201はフラグ404のデータ構造406からブロックのLBAを読み出し、ステップ1202に進む。
ステップ1202では読み出したLBAに対する最新のPBAを検索し、ステップ1203に進む。
ステップ1203では、現在処理中のPBAと検索したPBAとを比較し、二つのPBAが等しい場合、すなわち現在処理中のPBAが最新データを保存するPBAである場合、サブルーチン1112の実行を終了し、そうでない場合には、ステップ1113に進む。
ステップ1113ではフラグ404のデータ構造406の状態を最新データではないことを意味するDirtyに変更する。
ステップ1111で通常ブロックでない場合はアドレス変換テーブルの退避データであり、領域再利用後には使えなくなるためステップ1113に進み状態をDirtyにする。
ステップ706ではHDDの先頭にシークし、ステップ710に進む。
ステップ710ではステップ1121からステップ1123および、ステップ1113とステップ713のループを実行する。ステップ710のループの実行の終了後、ステップ1103に進む。
ステップ1121では、ブロックのフラグ404のデータ構造406のデータ種別と状態を調べる。データ種別が通常ブロックかつ状態がDirtyではないCleanである場合にステップ1122進み、そうでない場合には、ステップ1123に進む。ステップ1122のサブルーチンの終了後ステップ1123に進む。
ステップ1122のサブルーチンはステップ1301から1306を実行する。
ステップ1301では、現在処理中のブロックを状態がDirtyであるブロックを上書きするようにPBAの先頭アドレスの方向にコピーする。コピー終了後、現在処理中であるコピー元のブロックの状態をDirtyに変更し、ステップ1302に進む。
ステップ1302では、コピーしたブロックのフラグ404のフラグ情報406の中のPBAの値をコピー先のブロックのPBAの値に修正し、ステップ1303に進む。
ステップ1303では、作業用アドレス変換テーブルに登録したエントリ数が別途定める閾値を越えているかどうか検査する。越えている場合にはステップ1304に進み、越えていない場合には1306に進む。
ステップ1304では、別途指定するエントリ数分だけ最も使っていない順番にエントリを選択し、ステップ1305に進む。
ステップ1305では、HDD上の最も最近ブロックをコピーしたブロックの次の状態がDirtyなブロックにステップ1304で選択したエントリを退避し、作業用アドレス変換テーブルから選択したエントリを削除する。ステップ1305の終了後、ステップ1306に進む。
ステップ1306では、コピー後のLBAとPBAとの対応を作業用アドレス変換テーブルに追加する。
ステップ1123では、ブロックのフラグ404のデータ構造406のデータ種別を調べ、データ種別が退避したアドレス変換テーブルである退避データ405である場合にステップ1113に進み、そうでない場合にステップ713に進む。
ステップ713では次のブロックにシークする。
ステップ710のループの終了後、ステップ1103に進む。
ステップ1103では、作業用アドレス変換テーブルとアドレス変換テーブル407とを入れ換え、以後のアクセスにおいて領域再利用処理の終了したアドレス変換テーブルを参照可能にする。
なお、領域再利用処理中にホストからのアクセスに応じてアドレス変換をする場合、以下の手順で変換する。
(1) アドレス変換テーブル407を参照してLBAからPBAへ変換する。
(2) 変換後のPBAがループ1110やループ710で作業中のアドレスよりも大きいか検査する。
(3) 作業中のアドレスよりも大きい場合には、そのPBAを使う。
(4) 作業中のアドレスよりも小さい場合には、作業用アドレス変換テーブルを参照してLBAからPBAに変換したPBAを使う。
本実施の形態により、通常のHDDのボリュームへのアクセスを許したまま領域再利用の処理が可能になる効果がある。
本発明によるディスク装置の制御方法の第一の実施の形態のソフトウェア処理レイヤのブロック図。 従来の技術によるHDDの制御方法のソフトウェア処理レイヤのブロック図。 本発明によるディスク装置の制御方法の第一の実施の形態によるWRITE処理のPAD図。 本発明によるディスク装置の制御方法の第一の実施の形態によるデータフォーマットを示す図。 本発明によるディスク装置の制御方法の第一の実施の形態によるREAD処理のPAD図。 本発明によるディスク装置の制御方法の第二の実施の形態によるデータフォーマットを示す図。 本発明によるディスク装置の制御方法の第三の実施の形態によるアドレス変換テーブルの障碍復帰方法のPAD図。 本発明によるディスク装置の制御方法の第四の実施の形態によるアドレス変換テーブルの障碍復帰方法のPAD図。 本発明によるディスク装置の制御方法の第五の実施の形態によるスナップショット構築方法のPAD図。 本発明によるディスク装置の制御方法の第六の実施の形態によるWRITE無効化方法のPAD図。 本発明によるディスク装置の制御方法の第七の実施の形態による領域再利用方法のPAD図。 本発明によるディスク装置の制御方法の第七の実施の形態によるサブルーチン1112のPAD図。 本発明よるディスク装置の制御方法の第七の実施の形態によるサブルーチン1122のPAD図。 本発明によるディスク装置の第一の実施の形態のハードウェアのブロック図。 SCSIのWRITE(16)コマンドを示す図。 SCSIのREAD(16)コマンドを示す図。 片方向リンクトリストの概念図。 双方向リンクトリストの概念図。 本発明によるディスク装置の第七の実施の形態による領域再利用方法の概念図。
符号の説明
100 本発明によるディスク装置の制御方法の第一の実施の形態のソフトウェア処理レイヤ
101 ホストとHDDの通信プロトコルであるATAやSCSIを処理するプロトコル処理レイヤ
102 ホストが指定する論理ブロックアドレス(LBA)ログ形式でアクセスする物理ブロックアドレス(PBA)に変換するログ変換レイヤ
103 指定したPBAが欠陥セクタである場合に予備のセクタと交替するための欠陥セクタ交替レイヤ
104 指定したPBAでHDDの記憶媒体上にアクセスする物理アクセス処理
201 ホストが指定するLBAを数式処理によりPBAに変換するアドレス変換レイヤ
400 本発明による第一の実施の形態のデータフォーマット
401 HDDの記録媒体のアドレス空間のイメージ
402 一回の書き込み単位
403 ユーザデータ
404 フラグ
405 HDDの記録媒体上に退避したアドレス変換テーブルの退避データ
406 フラグ内部のデータ構造
407 HDDのキャッシュメモリ上のアドレス変換テーブル
408 HDDの記憶媒体上に退避したアドレス変換テーブルを管理するHDDのキャッシュメモリ上の物理ブロックアドレス管理テーブル
600 本発明の第二の実施の形態のデータフォーマット
601 フラグ
602 一回の書き込み単位
603 フラグ内部のデータ構造
1400 本発明によるディスク装置の第一の実施の形態のハードウェアのブロック図
1401 フラッシュロム
1402 主記憶
1403 キャッシュメモリ
1404 マイクロプロセッサ(MPU)
1405 ハードディスクコントローラ(HDC)およびSCSIプロトコルコントローラ(SPC)
1406 サーボコントローラ
1407 リードライトチャネル
1500 SCSIのWRITE(16)コマンド
1501 オペレーションコード(OPERATION CODE)
1502 論理ブロックアドレス(LOGICAL BLOCK ADDRESS)
1503 転送長(TRANSFER LENGTH)
1600 SCSIのREAD(16)コマンド
1601 オペレーションコード(OPERATION CODE)
1602 論理ブロックアドレス(LOGICAL BLOCK ADDRESS)
1603 転送長(TRANSFER LENGTH)
1700 片方向リンクトリストの概念図
1701 今回のアドレス変換テーブルの待避ブロックから前回のアドレス変換テーブルの待避ブロックへのリンク
1800 双方向リンクトリストの概念図
1801 前回のアドレス変換テーブルの待避ブロックから今回のアドレス変換テーブルの待避ブロックへのリンク

Claims (27)

  1. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    ホストからの書き込みコマンドを受信するステップ、
    前記書き込みコマンドに含まれる論理ブロックアドレスを読み出すステップ、
    前記読み出した論理ブロックアドレスを前記記憶媒体の物理ブロックアドレスに変換する際に、追記方式でデータ書き込みができるように、前記記憶媒体の未使用領域であり最も最近書き込みを行った物理ブロックアドレスの次の物理ブロックアドレスに変換するステップ、
    前記変換した物理ブロックアドレスに対して前記ホストが指定したデータを書き込むステップ、
    前記変換した物理ブロックアドレスに対応した管理領域に、前記ホストが指定した前記論理ブロックアドレスの値を書き込むステップ、
    を実行することを特徴とするディスク装置の制御方法。
  2. 請求項1記載のディスク装置の制御方法において、前記制御部は、
    ホストが連続した複数の論理ブロックアドレスに対して書き込みコマンドを発行している否かを検出するステップ、
    連続した複数の論理ブロックアドレスに対する書き込みを検出をした場合に、前記連続した複数の論理ブロックアドレスを連続した複数の物理ブロックアドレスに変換するステップ、
    前記連続した複数の物理ブロックアドレスに対応した一つの管理領域を割り当てるステップ、
    前記一つの管理領域に、復元可能な符号化方式により前記ホストが指定した前記連続した複数の論理ブロックアドレスの値を書き込むステップ、
    を実行することを特徴とするディスク装置の制御方法。
  3. 請求項2記載のディスク装置の制御方法において、前記一つの管理領域に連続する複数の論理ブロックアドレスの値を書き込む際の符号化方式として、論理ブロックアドレスの開始アドレスと、連続して書き込むサイズとを用いること
    を特徴とするディスク装置の制御方法。
  4. 請求項1記載のディスク装置の制御方法において、前記制御部は、
    前記論理ブロックアドレスと前記物理ブロックアドレスとの対応を一つのエントリとして一時記憶領域上のアドレス変換テーブルに保存するステップ、
    前記アドレス変換テーブルに保存されたエントリ数を別途定める許容エントリ数と比較するステップ、
    前記比較の結果、前記保存されたエントリ数が前記許容エントリ数を超えている場合に、別途定める退避数分だけ、最も最近使用していないエントリから使用していない順番にエントリを選択するステップ、
    最も最近書き込みを行った物理ブロックアドレスの次の物理ブロックアドレスを選択するステップ、
    前記選択した物理ブロックアドレスに前記選択したエントリの内容を書き出すことで一時記憶領域上のアドレス変換テーブルを前記記憶媒体上に退避するステップ、
    前記選択した物理ブロックアドレスに対応した管理領域に、書き出したデータがアドレス変換テーブルのエントリであることを示すフラグを書き出すステップ、
    を実行することを特徴とするディスク装置の制御方法。
  5. 請求項4記載のディスク装置の制御方法において、前記制御部は、
    前記選択した物理ブロックアドレスの値を前記一時記憶領域上に保存するステップを実行し、
    前記アドレス変換テーブルを前記記憶媒体上に退避する際に、前記選択したエントリの内容に加え、前記一時記憶領域上に記録されている前回アドレス変換テーブルを前記記憶媒体上に退避した際に用いた物理ブロックアドレスの値も一緒に書き出すこと、
    を特徴とするディスク装置の制御方法。
  6. 請求項4記載のディスク装置の制御方法において、前記制御部は、
    前記記憶媒体上の特定の領域上にある、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブルに、前記論理ブロックアドレスと前記物理ブロックアドレスとの対応を一つのエントリとして保持するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  7. 請求項6のディスク装置の制御方法において、
    前記記憶媒体上の特定の領域上にある前記アドレス変換テーブルが前記記憶媒体の管理領域上にあることを特徴とするディスク装置の制御方法。
  8. 請求項6記載のディスク装置の制御方法において、
    前記記憶媒体上の特定の領域上にある前記アドレス変換テーブルが前記記憶媒体のユーザデータ領域上にあることを特徴とするディスク装置の制御方法。
  9. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    ホストからの読み出しコマンドを受信するステップ、
    前記読み出しコマンドに含まれる論理ブロックアドレスを読み出すステップ、
    論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルから前記論理ブロックアドレスに対応するエントリを読み出すステップ、
    前記読み出したエントリから物理ブロックアドレスを読み出すステップ、
    前記記憶媒体の前記物理ブロックアドレスからデータを読み出すステップ、
    前記読み出したデータを前記ホストに送信するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  10. 請求項9記載のディスク装置の制御方法において、前記制御部は、
    前記一時記憶領域上のアドレス変換テーブルに前記論理ブロックアドレスに対応するエントリが存在しない場合に、前記記憶媒体上に退避したアドレス変換テーブルから前記論理ブロックアドレスに対応するエントリを検索するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  11. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    ホストからの読み出しコマンドを受信するステップ、
    前記読み出しコマンドに含まれる論理ブロックアドレスを読み出すステップ、
    前記記憶媒体上の特定の領域上にある、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブルから、前記論理ブロックアドレスに対応するエントリを読み出すステップ、
    前記読み出したエントリから物理ブロックアドレスを読み出すステップ、
    前記記憶媒体の前記物理ブロックアドレスからデータを読み出すステップ、
    前記読み出したデータを前記ホストに送信するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  12. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化するステップ、
    最も最近書き込みを行った物理ブロックアドレスを起点に、より小さな物理ブロックアドレス方向に前記アドレス変換テーブルを退避した前記記憶媒体のブロックを検索するステップ、
    前記検索ステップにより発見したアドレス変換テーブルを退避したブロックを読み出して前記一時記憶領域上の前記アドレス変換テーブル上に復旧するステップ、
    前記退避したブロックの次の物理ブロックアドレスを起点に前記最も最近書き込みを行った物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、前記物理ブロックアドレスに対応した管理領域から前記物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出すステップ、
    前記物理ブロックアドレスと前記論理ブロックアドレスとの対応を一つのエントリにして、前記一時記憶領域上の前記アドレス変換テーブルに保存するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  13. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化するステップ、
    前記記憶媒体の最も小さな物理ブロックアドレスを起点に、最も最近書き込みを行った物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、前記物理ブロックアドレスに対応した管理領域から前記物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出すステップ、
    前記物理ブロックアドレスと前記論理ブロックアドレスとの対応を一つのエントリにして、前記アドレス変換テーブルに保存するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  14. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化するステップ、
    前記記憶媒体の最も小さな物理ブロックアドレスを起点に、最も最近書き込みを行った物理ブロックアドレスに向かって、前記アドレス変換テーブルを退避したブロックを検索するステップ、
    前記検索ステップにより発見したアドレス変換テーブルを退避したブロックを読み出して前記一時記憶領域上の前記アドレス変換テーブル上に追加するステップ、
    前記アドレス変換テーブルに保存されたエントリ数を別途定める許容エントリ数と比較するステップ、
    前記比較の結果、前記保存されたエントリ数が前記許容エントリ数を越えている場合に、別途定める削除数分だけ、最も最近使用していないエントリから順番にエントリを選択するステップ、
    前記選択したエントリを前記アドレス変換テーブルから削除するステップ、
    最も最後に読み込んだ退避したブロックの次の物理ブロックアドレスを起点に前記最も最近書き込みを行った物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、前記物理ブロックアドレスに対応した管理領域から前記物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出すステップ、
    前記物理ブロックアドレスと前記論理ブロックアドレスとの対応を一つのエントリにして、前記一時記憶領域上の前記アドレス変換テーブルに保存するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  15. 請求項12記載のディスク装置の制御方法において、前記ブロックに保存されたデータがユーザデータである場合にのみ前記物理ブロックアドレスと前記論理ブロックアドレスを読み出すことを特徴とするディスク装置の制御方法。
  16. 請求項12記載のディスク装置の制御方法において、前記制御部は、
    一時記憶領域上に保存した前記エントリを、前記記憶媒体上の特定の領域上にある、ホストが指定可能な全ての論理ブロックアドレスと物理ブロックアドレスとの対応を保持可能なアドレス変換テーブル上の、対応するエントリに保存するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  17. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    前記記憶媒体の処理する上限の物理ブロックアドレスの値を設定するステップ、
    最も小さな物理ブロックアドレスを起点に、前記処理上限の物理ブロックアドレスに向かって各ブロックについて、ブロックの物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスの値と同一の論理ブロックアドレスに対して、前記物理ブロックアドレスよりも上位の物理ブロックアドレスにおいてホストが書き込んでいないか検査するステップ、
    上位の物理ブロックアドレスにおいてホストが書き込んでいる場合に、同一の論理ブロックアドレスへの書き込みが、より上位の物理ブロックアドレスにより上書きされていることを示すダーティ・フラグを前記ブロックに対応した管理領域に書き込むステップ、
    最も小さな物理ブロックアドレスを起点に、最も最近書き込まれた物理ブロックアドレスに向かって各ブロックについて、ダーティ・フラグの付いたブロックを上書きするように、ダーティ・フラグの付いていないブロックを下位の物理ブロックアドレスの方向に移動するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  18. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    前記記憶媒体の処理する上限の物理ブロックアドレスの値を設定するステップ、
    論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上の第二のアドレス変換テーブルを初期化するステップ、
    最も小さな物理ブロックアドレスを起点に、前記処理上限の物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、前記物理ブロックアドレスに対応した管理領域から前記物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出すステップ、
    前記物理ブロックアドレスと前記論理ブロックアドレスとの対応を一つのエントリにして、前記第二のアドレス変換テーブルに保存するステップ、
    ホストからの要求を受信する際に、前記第二のアドレス変換テーブルにより物理ブロックアドレスと論理ブロックアドレスとの変換を行う前記記憶媒体へのアクセス手段を有効化するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  19. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    前記記憶媒体の処理する下限の物理ブロックアドレスの値を設定するステップ、
    前記処理下限の物理ブロックアドレスを起点に、最も最近書き込んだ物理ブロックアドレスに向かって、書き込み済みのブロックを無効化して初期化するステップ、
    論理ブロックアドレスと物理ブロックアドレスとの対応を一つのエントリとして保存する一時記憶領域上のアドレス変換テーブルを初期化するステップ、
    最も小さな物理ブロックアドレスを起点に、前記処理下限の物理ブロックアドレスに向かって、ブロックの物理ブロックアドレスと、前記物理ブロックアドレスに対応した管理領域から前記物理ブロックアドレスに書き込んだ際にホストが指定した論理ブロックアドレスとを読み出すステップ、
    前記物理ブロックアドレスと前記論理ブロックアドレスとの対応を一つのエントリにして、前記アドレス変換テーブルに保存するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  20. 請求項1記載のディスク装置の制御方法において、前記制御部は、
    装置の稼働時間を読み出すステップ、
    前記読み出した稼働時間を、前記変換した物理ブロックアドレスに対応した前記管理領域に書き込むステップ、
    を実行することを特徴とするディスク装置の制御方法。
  21. 請求項20記載のディスク装置の制御方法において、前記制御部は、
    ヘッドの退避時もしくは電源遮断時に、前記装置の稼働時間を前記管理領域に保存するステップ、
    装置の起動時に、前記管理領域に保存した稼働時間を読み出すステップ、
    前記読み出した稼働時間を用いて、前記装置の稼働時間を初期化するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  22. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    前記記憶媒体上に存在しない論理ブロックアドレスへのホストからの書き込みコマンドもしくは読み出しコマンドを受信するステップ、
    前記論理ブロックアドレスが制御コマンド受信用のアドレスかどうかを検査するステップ、
    制御コマンド受信用アドレスであり、かつ前記受信したコマンドが書き込みコマンドである場合に、
    前記書き込みコマンドのデータ領域中のデータを読み出すステップ、
    前記データを当該ディスク装置の制御コマンドかどうかを検査するステップ、
    制御コマンドである場合に、前記制御コマンドを実行するステップ、
    を実行し、
    制御コマンド受信用アドレスであり、かつ前記受信したコマンドが読み出しコマンドである場合に、
    前記受信した論理ブロックアドレスに対応した前記記憶媒体の管理情報を読み出すステップ、
    前記読み出した管理情報を前記ホストに送信するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  23. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    ホストから受信したコマンドが前記記憶媒体の内部データ構造への直接参照を要求する読み出しコマンドかどうかを検査するステップを実行し、
    直接参照を要求する読み出しコマンドである場合に、
    前記ホストが論理ブロックアドレスとして指定したアドレスを前記記憶媒体内部の物理ブロックアドレスとしてシークするステップ、
    ブロックに記録したユーザデータと、前記ブロックに対応した管理領域に記録した管理データとを読み出すステップ、
    前記ユーザデータと前記管理データとを前記ホストに送信するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  24. 記憶媒体と、ホストとの間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込み又は読み出し制御を行う制御部とを備えるディスク装置の制御方法において
    前記制御部は、
    ホストから受信したコマンドが前記記憶媒体の管理領域に記録した管理データの読み出しコマンドかどうかを検査するステップを実行し、
    管理データの読み出しコマンドである場合に、
    前記ホストが論理ブロックアドレスとして指定したアドレスを前記記憶媒体内部の物理ブロックアドレスとして、ブロックに対応した管理領域に記録した管理データを読み出すステップ、
    前記管理データを前記ホストに送信するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  25. 請求項1記載のディスク装置の制御方法において、前記制御部は、
    ホストからの書き込みコマンドの発行間隔を検出するステップ、
    前記ホストが最後に書き込みコマンドを発行してから別途定める期間だけ書き込みコマンドを発行していないかどうか検査するステップ、
    を実行し、
    前記別途定める期間書き込みコマンドを発行していない場合に、
    最も最近書き込みを行った物理ブロックアドレスに対応した管理領域に、前記別途定める期間だけ書き込みコマンドを発行していないことを示す識別子を追加するステップ、
    を実行することを特徴とするディスク装置の制御方法。
  26. 請求項20記載のディスク装置の制御方法において、前記制御部は、
    前記ホストからの前記書き込みコマンドから、コマンドの発行時刻を読み出すステップ、
    前記読み出したコマンド発行時刻を、前記変換した物理ブロックアドレスに対応した前記管理領域に書き込むステップ、
    を実行することを特徴とするディスク装置の制御方法。
  27. 請求項9記載のディスク装置の制御方法において、前記制御部は、
    前記物理ブロックアドレスに対応した管理領域から前記物理ブロックアドレスにホストが書き込んだ際に指定した論理ブロックアドレスを読み出すステップ、
    前記読み出しコマンドから読み出した前記論理ブロックアドレスと、前記管理領域から読み出した前記論理ブロックアドレスとを比較するステップ、
    前記比較が一致しない場合に、ホストに対してエラーを返すステップ、
    を実行することを特徴とするディスク装置の制御方法。
JP2004110413A 2004-04-02 2004-04-02 ディスク装置の制御方法 Pending JP2005293774A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004110413A JP2005293774A (ja) 2004-04-02 2004-04-02 ディスク装置の制御方法
US11/097,396 US7412585B2 (en) 2004-04-02 2005-03-31 Method for controlling disk drive using an address translation table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004110413A JP2005293774A (ja) 2004-04-02 2004-04-02 ディスク装置の制御方法

Publications (1)

Publication Number Publication Date
JP2005293774A true JP2005293774A (ja) 2005-10-20

Family

ID=35055708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004110413A Pending JP2005293774A (ja) 2004-04-02 2004-04-02 ディスク装置の制御方法

Country Status (2)

Country Link
US (1) US7412585B2 (ja)
JP (1) JP2005293774A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243385A (ja) * 2011-05-23 2012-12-10 Hgst Netherlands B V 直列のアドレス間接参照メタデータ記憶を備えた記憶装置
US8363349B2 (en) 2010-05-31 2013-01-29 Kabushiki Kaisha Toshiba Recording medium controller and method thereof
US8402235B2 (en) 2008-12-03 2013-03-19 Fujitsu Limited Backup apparatus, backup method and backup program
US8416518B2 (en) 2010-05-31 2013-04-09 Kabushiki Kaisha Toshiba Magnetic disk drive and method for rewriting data block
JP2015026358A (ja) * 2013-06-20 2015-02-05 株式会社東芝 デバイス、ホスト装置、ホストシステム、及びメモリシステム
JP2022159405A (ja) * 2021-12-30 2022-10-17 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データのアペンド方法、装置、電子機器、記憶媒体およびコンピュータプログラム

Families Citing this family (196)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259683A1 (en) * 2005-05-16 2006-11-16 Oracle International Corporation Method and system for disk stippling
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
WO2008127458A2 (en) * 2006-12-06 2008-10-23 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a shared, front-end, distributed raid
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US7971241B2 (en) * 2006-12-22 2011-06-28 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for providing verifiable security in storage devices
US7721040B2 (en) * 2007-01-18 2010-05-18 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
TWI473116B (zh) * 2008-03-07 2015-02-11 A Data Technology Co Ltd 多通道記憶體儲存裝置及其控制方法
US20110022793A1 (en) * 2008-03-31 2011-01-27 Gaspard Walter A Systems And Methods For Accessing Hard Disk Drives
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
US20100328539A1 (en) * 2009-06-29 2010-12-30 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for memory reuse in image processing
JP5381519B2 (ja) * 2009-09-01 2014-01-08 富士通株式会社 ディスクへの書き込み位置の誤算出を検出するストレージ制御装置、ストレージシステム、及びアクセス方法。
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8554741B1 (en) 2010-06-16 2013-10-08 Western Digital Technologies, Inc. Timeline application for log structured storage devices
US8612831B2 (en) * 2010-06-22 2013-12-17 Cleversafe, Inc. Accessing data stored in a dispersed storage memory
US8576511B1 (en) 2010-08-25 2013-11-05 Western Digital Technologies, Inc. Disk drive executing log structured writes to physical zones based on power mode
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
JP2012128816A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
TWI428758B (zh) * 2011-01-13 2014-03-01 Prolific Technology Inc 電腦系統之操作方法
US9213594B2 (en) * 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
JP2013257679A (ja) * 2012-06-12 2013-12-26 Sony Corp 情報処理装置および方法、並びに、プログラム
US8924832B1 (en) * 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
US20140025921A1 (en) * 2012-07-19 2014-01-23 Jmicron Technology Corp. Memory control method utilizing main memory for address mapping and related memory control circuit
TWI475387B (zh) * 2012-07-19 2015-03-01 Jmicron Technology Corp 記憶體控制方法及記憶體控制電路
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US9436720B2 (en) 2013-01-10 2016-09-06 Pure Storage, Inc. Safety for volume operations
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US12175076B2 (en) 2014-09-08 2024-12-24 Pure Storage, Inc. Projecting capacity utilization for snapshots
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
TWI544335B (zh) * 2014-10-31 2016-08-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
TWI534618B (zh) * 2015-07-13 2016-05-21 群聯電子股份有限公司 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
CN106372000B (zh) * 2015-07-20 2019-10-11 群联电子股份有限公司 映射表更新方法、存储器控制电路单元及存储器存储装置
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10254999B2 (en) * 2016-03-31 2019-04-09 EMC IP Holding Company LLC Method and system for optimistic flow control for push-based input/output with buffer stealing
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
CN106648457B (zh) * 2016-09-27 2019-09-03 华为数字技术(成都)有限公司 更新反向映射元数据的方法及装置
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10574270B1 (en) * 2016-11-09 2020-02-25 Seagate Technology Llc Sector management in drives having multiple modulation coding
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
CN110018784B (zh) 2018-01-09 2023-01-10 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US12135888B2 (en) 2019-07-10 2024-11-05 Pure Storage, Inc. Intelligent grouping of data based on expected lifespan
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US12411962B2 (en) 2019-11-22 2025-09-09 Pure Storage, Inc. Managed run-time environment-based detection of a ransomware attack
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12050683B2 (en) * 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US12153670B2 (en) 2019-11-22 2024-11-26 Pure Storage, Inc. Host-driven threat detection-based protection of storage elements within a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US12204657B2 (en) 2019-11-22 2025-01-21 Pure Storage, Inc. Similar block detection-based detection of a ransomware attack
US12248566B2 (en) 2019-11-22 2025-03-11 Pure Storage, Inc. Snapshot deletion pattern-based determination of ransomware attack against data maintained by a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
CN113076056B (zh) * 2020-01-06 2023-06-27 华为技术有限公司 数据访问方法、硬盘和存储设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467421A (en) 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US5124987A (en) 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
JPH1185589A (ja) 1997-09-12 1999-03-30 Toshiba Corp 情報記憶装置および同装置に適用される管理データ再構築方法
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
US6484234B1 (en) * 1998-06-30 2002-11-19 Emc Corporation Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations
US6467014B1 (en) * 2000-02-29 2002-10-15 Plasmon Lms, Inc. Automatic mapping and efficient address translation for multi-surface, multi-zone storage devices
US6693754B2 (en) * 2000-05-24 2004-02-17 Seagate Technology Llc Method and apparatus for a disc drive adaptive file system
US6735678B2 (en) * 2000-05-24 2004-05-11 Seagate Technology Llc Method and apparatus for disc drive defragmentation
JP3590381B2 (ja) * 2001-12-18 2004-11-17 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ更新方法
US20050144517A1 (en) * 2003-12-30 2005-06-30 Matsushita Electric Industrial Co., Ltd. Systems and methods for bypassing logical to physical address translation and maintaining data zone information in rotatable storage media

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402235B2 (en) 2008-12-03 2013-03-19 Fujitsu Limited Backup apparatus, backup method and backup program
US8363349B2 (en) 2010-05-31 2013-01-29 Kabushiki Kaisha Toshiba Recording medium controller and method thereof
US8416518B2 (en) 2010-05-31 2013-04-09 Kabushiki Kaisha Toshiba Magnetic disk drive and method for rewriting data block
USRE48952E1 (en) 2010-05-31 2022-03-01 Kabushiki Kaisha Toshiba Recording medium controller and method thereof
JP2012243385A (ja) * 2011-05-23 2012-12-10 Hgst Netherlands B V 直列のアドレス間接参照メタデータ記憶を備えた記憶装置
JP2015026358A (ja) * 2013-06-20 2015-02-05 株式会社東芝 デバイス、ホスト装置、ホストシステム、及びメモリシステム
JP2022159405A (ja) * 2021-12-30 2022-10-17 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データのアペンド方法、装置、電子機器、記憶媒体およびコンピュータプログラム
US11947842B2 (en) 2021-12-30 2024-04-02 Beijing Baidu Netcom Science Technology, Co., Ltd. Method for writing data in append mode, device and storage medium

Also Published As

Publication number Publication date
US7412585B2 (en) 2008-08-12
US20050223154A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
US7412585B2 (en) Method for controlling disk drive using an address translation table
US6738863B2 (en) Method for rebuilding meta-data in a data storage system and a data storage system
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
US6151685A (en) System and method for recovering a segment directory for a log structured array
CN104956312B (zh) 存储装置及存储装置的控制方法
JP5066209B2 (ja) コントローラ、データ記憶装置、及びプログラム
EP2329361B1 (en) Aggregation of write traffic to a data store
JP6429963B2 (ja) ストレージ装置及びストレージ装置の制御方法
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
WO1999032977A1 (en) Flash memory system
US9158478B2 (en) Storage system and storage control method
CN112596673A (zh) 具有双重raid数据保护的多活多控存储系统
CN111857540B (zh) 数据存取方法、装置和计算机程序产品
CN110187830A (zh) 一种加速磁盘阵列重建的方法及系统
WO2017068617A1 (ja) ストレージシステム
US7398448B2 (en) Storage system has the function of preventing drive write error
US20180307419A1 (en) Storage control apparatus and storage control method
US8151053B2 (en) Hierarchical storage control apparatus, hierarchical storage control system, hierarchical storage control method, and program for controlling storage apparatus having hierarchical structure
US12073089B2 (en) Storage device and data recovery method by storage device
US20180307615A1 (en) Storage control apparatus and storage control method
JPH06266510A (ja) ディスクアレイシステムおよびそのためのデータ書き込み方法、障害回復方法
JP4989861B2 (ja) データ書き込み方法及びディスク装置
US20250165398A1 (en) Storage device and a method of controlling data storing area
Luo et al. DVS: Dynamic variable-width striping RAID for shingled write disks
JP3861061B2 (ja) ディスクキャッシュ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090526