JP3782982B2 - 複数の記憶ユニットのそれぞれの記憶媒体を初期化する方法及びシステム - Google Patents
複数の記憶ユニットのそれぞれの記憶媒体を初期化する方法及びシステム Download PDFInfo
- Publication number
- JP3782982B2 JP3782982B2 JP2002136911A JP2002136911A JP3782982B2 JP 3782982 B2 JP3782982 B2 JP 3782982B2 JP 2002136911 A JP2002136911 A JP 2002136911A JP 2002136911 A JP2002136911 A JP 2002136911A JP 3782982 B2 JP3782982 B2 JP 3782982B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- write command
- storage
- written
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1052—RAID padding, i.e. completing a redundancy group with dummy data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、複数の記憶ユニットを備える記憶装置を、ストレージ・コントローラを介して初期化するためのシステム、方法およびプログラムに関する。
【0002】
【従来の技術】
ハイ・エンドのストレージ・コントローラは、ネットワーク化されたホストから、直接アクセス記憶装置(DASD)、RAID Array(Redundant Array of Independent Disks)、JBOD(Just a Bunch of Disks)など1つまたは複数の記憶装置への入力/出力(I/O)要求を管理する。ストレージ・コントローラは、ネットワークを介して1つまたは複数のホストと通信するための1つまたは複数のホスト・バス・アダプタ(HBA)カードと、記憶装置と通信するためのアダプタとを含む。
【0003】
ストレージ・コントローラによって管理されるディスクを使用できるようにする前に、それらを初期化しなければならない。例えば524バイトのセクタを初期化するには、ストレージ・コントローラが、そのセクタの最初の8バイトのヘッダに0データを、続いて512バイトの0データを、続いて論理セクタ番号である2バイトのシーケンス番号、および物理セクタ番号または論理ブロック・アドレス(LBA)をシードとする2バイトの水平冗長コード(LRC)を書込む。0データおよびLBAをシードとする2バイトのLRCコードでそれぞれのセクタを初期化するこの処理は、数時間かかる可能性がある。ほとんどの従来技術のデバイスは、「フル・ストライプ」書込みを実行することによってRAIDアレイなどのアレイ内のディスクを初期化し、この場合、ストレージ・コントローラは、各セクタに対して1つの書込みコマンドを使用してストライプ内の各ディスクにストライプ全体のデータおよびパリティを書込み、そのストライプの各セクタ内のデータを初期化する。
【0004】
多数のストレージ・コントローラが、接続された多数のハード・ディスク・ドライブを初期化しなければならない可能性がある。例えばあるファイバ・チャネル実施例では、ストレージ・コントローラが、ファイバ・チャネル・アービトレイテッド・ループ(Fibre Channel Arbitrated Loop)上の126台程度までのハード・ディスク・ドライブに接続する可能性がある。そのような大きなアレイ内の初期化性能に不利に影響する一要素は、デバイス間のループ上転送レートとハード・ディスク・ドライブ内の内部データ転送レートとの不一致である。アービトレイテッド・ループ技術は毎秒200メガバイト(MB/s)の転送レートをサポートし、ディスク・ドライブは、最大15MB/sのレートで内部的にデータを転送することができる。そのような比率は、ループ・スループットを最大化する前に、ストレージ・コントローラが7つの接続されたディスク・ドライブにしか初期化データを書込めないことを意味する。したがって、ストレージ・コントローラとディスク・ドライブ間の接続のスループットは、10より多いディスク・ドライブがあるときに、システム内の初期化性能に著しく影響する可能性のあるボトルネックである。実際、2.8テラバイトのデータを有する80ディスク・ドライブのシステムでは、初期化処理が完了するのに最大10時間かかる可能性がある。
【0005】
【発明が解決しようとする課題】
これらの理由で、当技術分野では、ディスク・アレイ内のデータを初期化するための改善された手法を提供することが必要とされている。
【0006】
【課題を解決するための手段】
複数の記憶ユニットを備える記憶装置をストレージ・コントローラを介して初期化するための方法、システムおよびプログラムが提供される。記憶ユニットに広がる記憶スペースを初期化するために要求が受け取られる。記憶スペースの連続するデータ・ブロックのセットのレイアウトが記憶ユニット上に決定され、記憶ユニットの全体にわたって連続するデータ・ブロックのセットが書込まれる。連続するデータ・ブロックの各セットについて、連続するデータ・ブロックのそのセット内の第1データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスが決定される。記憶ユニットのそれぞれに対して書込みコマンドが生成され、各書込みコマンドは、記憶ユニットに対して決定されたブロック・アドレスおよびブロック数を示す。1ブロックの初期化データと共に書込みコマンドが記憶ユニットに送信される。書込みコマンドを受け取る記憶ユニットは、示されたブロック・アドレスからその1ブロックの初期化データを書込み、その1ブロックの初期化データを、記憶ユニット内のその後の連続する各ブロックに、ブロック数に等しい回数で書込む。
【0007】
他の実施例では、決定されたレイアウトが、各記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、その複数のセットは、1つの記憶ユニット内の非連続的ブロック・アドレスに書込まれる。
【0008】
特定の実施例では、記憶ユニットが1ディスク・アレイ内にハード・ディスク・ドライブを備える。そのような場合、連続するデータ・ブロックのセットは、記憶ユニット全体にわたって書込まれるデータのストライプの一部を含み、複数のストライプが記憶ユニット全体にわたって書込まれる。
【0009】
ストレージ・コントローラによって管理される複数の記憶ユニットの1つを備える記憶ユニットを初期化するための方法、システムおよびプログラムがさらに提供される。記憶スペース内の連続するブロックのセットを初期化するために書込みコマンドが1ブロックの初期化データと共にストレージ・コントローラから受け取られる。書込みコマンドは、連続するデータ・ブロックのそのセット内の第1データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示す。書込みコマンドと共に送信された初期化データ・ブロックは、示されたブロック・アドレスに書込まれる。さらに、初期化データ・ブロックは、示されたブロック・アドレスに従って記憶ユニット内のその後の連続する各ブロックに、ブロック数に等しい回数書込まれる。
【0010】
本明細書に述べた実施例は、ストレージ・コントローラと初期化されるアレイ内の記憶ユニットの間のチャネル帯域幅の使用を少なくするための方法で、記憶アレイの記憶ユニット内の複数ブロックのデータを初期化する単一書込みコマンドを使用することによって記憶スペースを初期化する手法を提供する。
【0011】
【発明の実施の形態】
次に図面を参照すると、全体を通して同様の参照番号は対応する部分を表す。
【0012】
次の記述では、本明細書の一部を形成し本発明のいくつかの実施形態を示す添付の図面を参照する。本発明の範囲から逸脱することなく、他の実施形態を使用できること、ならびに構造およびオプションの変更を加えることができることを理解されたい。
【0013】
図1は、本発明の態様が実施されるコンピューティング環境を示す。ホスト・システム2は、記憶装置4に対するアクセスを管理する記憶サブシステム6を介して記憶装置4に入力/出力(I/O)要求を送信する。記憶装置4は、当技術分野で知られているRAIDアレイ記憶装置によるハード・ディスク・ドライブ8a、b、c...nのアレイを備える。記憶装置4は、50またはそれより多数のハード・ディスク・ドライブ8a、b、c...nをいくつでも備えることができる。記憶サブシステム6は、ホスト2との通信を可能にするホスト・バス・アダプタ(HBA)10、および記憶装置4内のディスク・ドライブ8a、b、c...nに対するアクセスを可能にする周辺コンポーネント相互接続(PCI)RAIDアダプタ12を含む。記憶サブシステム6は、例えばROM、PROM、EEPROM等の不揮発性記憶ユニット(図に示されていない)内でコード22を実行する制御装置20をさらに含み、当技術分野で知られている方法で記憶サブシステム動作を実行する。さらにPCI RAIDアダプタ12は、ディスク・ドライブ8a、b、c...nをRAIDデバイスとして構成かつ初期化し、当技術分野で知られている方法でディスク・ドライブ8a、b、c...nにデータをストライピングすることができる。
【0014】
図2は、各ディスク・ドライブ8a、b、c...n内のコンポーネントを示し、ディスク制御装置30および記憶媒体32を含む。ディスク・ドライブの実施例では、記憶媒体32は、1つまたは複数のディスクの磁気表面を備える。ディスク制御装置30は、記憶媒体32に対する入力/出力動作を当技術分野で知られている方法で管理するロジックを実施し、さらに本明細書に述べた初期化動作を実行するロジックを含む。ディスク制御装置30は、PROM、EEPROM、ROMなどの不揮発性メモリ内のコードを実行するプロセッサを備えるか、あるいは特定用途向けIC(ASIC)または他の論理デバイスなどの集積回路を備えることができる。
【0015】
本明細書に述べた実施例では、記憶サブシステム6が初期化を実行し、PCIRAIDアダプタ12が初期化データをディスク・ドライブ8a、b、c...nに書込む代わりをする。これは、同時係属中の同一出願人による米国特許出願第 号に述べた通りであり、その出願は、本明細書中で参考としてその全体を援用する。しかし、代替実施例では、PCI RAIDアダプタ12が、本明細書に述べた初期化動作を実行することができる。
【0016】
図3は、特定の実施例によるセクタのフォーマットを示す。特定の実施例では、セクタ50は524バイトであり、8バイトのヘッダ・フィールド52、512バイトのユーザ・データ54、2バイトのシーケンス番号56、および2バイトのLRCフィールド58を含む。特定の実施例では、セクタは様々な数の合計バイト、例えば512、516等を有することができる。さらにセクタは、ヘッダ52、シーケンス番号56、またはLRC値58、あるいはそのすべてを含まなくもよい。
【0017】
RAIDアレイ実施例では、ディスク8a、b、c...n全てにわたって初期化データをストライピングすることによって、制御装置20がアレイを初期化する。制御装置20は、1つのディスクにセクタ深度に等しい数のセクタに対するデータを書込んでから、次のディスクにスイッチして次のセクタ深度を書込む。したがって、ストライプは、アレイ内のディスク数に等しい長さおよびそのストライプ内の次のディスクにスイッチする前にデータが書込まれるセクタ深度に等しい幅を有する。それぞれのストライプはパリティ・セクタを含む。
【0018】
本明細書に述べた実施例では、制御装置20は、セクタに対する単一ブロック、例えば512または524バイト、の初期化データと共に転送された単一の増分書込みコマンド(write increment command)を使用して、アレイ内の各ディスク8a、b、c...nが初期化データをストライプ内のすべてのセクタに書込むようにさせる。初期化データは、そのセクタに対するすべて0のデータを含む。このように、わずか16バイトくらいのおよそセクタ・サイズおよびコマンド・サイズの単一送信を介して、受け取りディスク上の多数のセクタが初期化される。したがって単一の増分書込みコマンドは、以前は初期化する各セクタに対する複数の書込みコマンドを必要とした複数セクタの初期化を可能にする。
【0019】
図4は、本発明の実施例による増分書込みコマンド70内のフィールドのフォーマットを示す。増分書込みコマンド70は、小さなコンピュータ・システム・インタフェース(SCSI)コマンドとして実施することができる。増分書込みコマンドは、
動作コード72:増分書込みコマンドを指定するために使用されるユニークな動作コードを提供する。
PBDATA74:このフィールドが0のとき、ディスク・ドライブ8a、b、c...nはシーケンス番号を無視する。例えば、固定ブロック・アーキテクチャ(FBA)では、カウント・キー・データ(Count-Key-Data)アーキテクチャとは反対にシーケンス番号が使用されない。そうではなくて、このフィールドが非0である場合、初期化中にシーケンス番号がセクタ内に含まれる。
LBDATA76:このフィールドが0であるとき、ディスク・ドライブ8a、b、c...nは水平冗長チェック(LRC:Longitudinal Redundancy Code)誤り訂正コードをセクタに書込まない。そうではなくてこのフィールドが非0である場合、LRCコードが書込まれる。
シーケンス番号78:使用する開始シーケンス番号を含む。
論理ブロック・アドレス(LBA)80:データが書込まれるディスク8a、b、c...n内の開始LBAを含む。
ブロック数82:増分書込みコマンド70に応答してディスクによって初期化されるセクタの数。
を含む。
【0020】
図5は、特定の実施例においてRAIDアレイを備えるディスク・ドライブ8a、b、c...nのアレイ内の論理ボリュームを初期化するために制御装置20によって実行されるコード22内に実施されるロジックを示す。制御は、論理ボリュームを作成する要求を制御装置20が受け取るブロック100で始まる。次いで制御装置20は、RAIDアレイ内のディスク8a、b、c...n全体にわたる論理ボリュームのレイアウトを決定する(ブロック102)。制御装置20は、ディスク・ドライブ8a、b、c...n内のセクタ全体にわたって論理ボリュームのセクタがどのようにストライピングされるかを、当技術分野で知られている方法で決定する。例えばRAIDアレイ実施例では、セクタ深度に等しい数のセクタに対するデータを1つのディスクに書込んでから次のディスクにスイッチして次のセクタ深度を書込むことによって、制御装置20がディスク8a、b、c...n全体にわたってデータをストライピングする。したがってストライプは、アレイ内のディスク数に等しい長さ、およびストライプ内の次のディスクにスイッチする前にデータが書込まれるセクタ深度に等しい幅を有する。シーケンス数(seqNum)は0に初期化される(ブロック104)。
【0021】
ブロック102で決定された各ストライプiに対して、制御装置20はブロック106からブロック126のループを開始する。各ストライプiに対して、制御装置20はさらに、データがストライピングされる記憶装置4アレイ内の各ディスク・ドライブjに対してブロック108から122のループを実行する。ブロック110において制御装置20は、先に決定されたレイアウトからストライプi内のドライブj上の第1セクタの論理ブロック・アドレス(LBAi、j)を決定する。制御装置20は、ディスクj内のストライプiに対するデータを初期化する増分書込みコマンド70を生成する(ブロック112)。LBAフィールド80は決定されたLBAi、jに設定され(ブロック114)、シーケンス番号フィールド78は、ディスクj内のストライプiの第1セクタ番号を示すシーケンス番号変数(seqNum)に設定される(ブロック116)。ブロック数フィールド82は、増分書込みコマンド70に応答してディスクj内で初期化されるセクタ数を示すストライプ深さに設定される(ブロック118)。次いでシーケンス番号変数(seqNum)は、生成されている現在の増分書込みコマンド70に応答して、ディスクj内で初期化されるブロック数であるストライプ深さだけ増分される(ブロック120)。次いで制御は、ブロック108に戻って、ストライプiからアレイ内の次のディスク8a、b、c...nにデータを書込む。
【0022】
特定の実施例では、ストライプi内のすべてのディスク8a、b、c...nに対する増分書込みコマンドを生成した後に、アレイ内のすべてのディスク8a、b、c...n全体にわたってストライプiに対するデータを同時に初期化するために、制御装置20が、接続を介して生成された書込みコマンドをディスク・ドライブ8a、b、c...nに送信する(ブロック124)。特定の実施例では、それぞれの増分書込みコマンド70は、セクタに対するすべて0のデータ・ブロックと共に送信される。次いで制御は、ブロック106に戻って(ブロック126)、次のストライプに対するデータを初期化するための増分書込みコマンド70を生成する。あるいは、制御装置20は、ブロック118でコマンドを生成した直後または複数ストライプに対する増分書込みコマンド70を生成した後に、増分書込みコマンド70を送ることができる。
【0023】
図6は、図5内のブロック124で送信された増分書込みコマンド70の1つを受け取る(ブロック150)ことに応答して記憶媒体32を初期化するためにディスク制御装置30内に実施されるロジックを示す。ディスク制御装置30は、特定の実施例ではストライプ深さであるブロック・フィールド数82に等しい数のブロックに対して、ブロック152から170のループを実行する。次いでディスク制御装置30は、本明細書に述べた実施例では増分書込みコマンド70と共に送信されたセクタに対する1ブロックの0のデータを、LBAフィールド80内に示されるLBAを有するセクタに書込む(ブロック156)。PBDATAフィールド74が非0である場合(ブロック158)、ディスク制御装置30は、セクタ・シーケンス番号56(図2)を、受け取った増分書込みコマンド70のシーケンス番号フィールド78(図3)内の値に設定する(ブロック160)。次いで増分書込みコマンド70内のシーケンス番号78は、次のセクタの初期化で使用するために1だけ増分される(ブロック162)。
【0024】
そうではなくてPBDATAフィールド54が0またはブロック162から来ている場合(ブロック158)、制御装置30はLBDATAフィールド76が0であるかどうかを判断する(ブロック164)。そうでなければ、制御装置30は、セクタLRCバイト58(図2)を、0とLBA値のXORの値に設定する(ブロック166)。このように、セクタのLRCフィールド58には、そのセクタのLBAがシードされる。初期化データがすべて0であるので、セクタ50の非LRC部分内のすべてのビットのXORを取った結果は0となる。LBDATAフィールド54が0またはブロック166から来ている場合(ブロック164)、制御装置30は、ストライプiに対するディスクjの次のセクタに初期化データを書込む際に使用するために、受け取った増分書込みコマンド70内のLBAフィールド60を1だけ増分する(ブロック168)。このようにディスク制御装置は、その後のセクタを初期化するために使用されるLBAおよびシーケンス番号データのための変数として、書込みコマンド70フィールドを使用する。現在のセクタの初期化完了後に、制御は、ブロック・フィールド82の数に等しい数のセクタが初期化されるまで、初期化すべき次のセクタのためにブロック152に戻る(ブロック170)。
【0025】
図5および6のロジックで、制御装置20は、初期化されている各セクタに対する各ディスク・ドライブ8a、b、c...nに0セクタ・データを送信する必要なく、ディスク8a、b、c...n上のデータを初期化することができる。代わりに、制御装置20は、各ストライプ内の各ディスクに対する1ブロックの0データを有するたった1つの書込みコマンドを送信し、それによってディスク・ドライブ8a、b、c...nに対する回線を越えて送信される書込みコマンド数およびデータのバイトを著しく減らす。本明細書に述べた実施例の増分書込みコマンドが従来技術の初期化方式より著しく少ない帯域幅を使用するので、制御装置20は、増分書込みコマンドをすべてのディスク8a、b、c...nに同時に送ることができる。本明細書に述べた実施例は、記憶サブシステム6と記憶装置4の間の接続ボトルネックを取り除く。このように、初期化は、記憶装置8a、b、c...n内の転送容量によってのみ制限される。ファイバ・チャネル・アービトレイテッド・ループ上のストレージ・コントローラに接続された80のディスク・ドライブがあるシステムにおいて、本明細書に述べた実施例の増分書込みコマンド70を使用する初期化は40分かかる可能性があり、これは、従来技術の初期化手法を使用してこの多数のディスク・ドライブを初期化するために必要な数時間よりも著しく少ない、ということが観測された。
【0026】
本明細書に述べた本発明の実施例は、ソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組合わせを生成する標準プログラミングまたはエンジニアリング手法あるいはその両方を使用するための方法、装置または製品として実現することができる。本明細書に使用される「製品」という用語は、ハードウェア論理回路(例えば、ICチップ、フィールド・プログラム可能ゲート・アレイ(FPGA)、特定用途向けIC(ASIC)、複雑なプログラム可能論理回路デバイス(CPLD)など)、複雑なプログラム可能論理回路デバイス(CPLD)またはコンピュータ可読媒体(例えば、磁気記憶媒体(例えばハード・ディスク・ドライブ、フロッピー(登録商標)ディスク、テープなど)、光記憶(CD−ROM、光ディスクなど)、揮発性および不揮発性メモリ・デバイス(例えば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、ファームウェア、プログラム可能論理回路など)に実施されるコードまたは論理回路を指す。コンピュータ可読媒体内のコードは、プロセッサによってアクセスされ実行される。好ましい実施形態が実施されるコードはさらに、送信媒体を介して、またはネットワークを介してファイル・サーバからアクセス可能でよい。そのような場合、コードが実施される製品は、ネットワーク伝送回線、無線伝送媒体、衛星通信信号(signals propagating through space)、高周波、赤外線信号などの伝送媒体を含むことができる。もちろん、本発明の範囲から逸脱することなくこの構成に多数の修正を加えることができること、およびこの製品が当技術分野で知られている任意の情報保有媒体を含むことができること、を当業者は理解するであろう。
【0027】
図5および図6のロジックは特定の順序で行われる具体的動作を述べている。代替実施例では、特定のロジック動作を異なる順序で実行すること、修正すること、または取り除くことが可能である。さらに、上述のロジックにステップを追加し、それでもなお本明細書に述べた実施例に適合することができる。さらに、本明細書に述べた動作を逐次行うこと、または特定の動作を並行して処理することが可能である。
【0028】
本明細書に述べた実施例では、セクタ内のデータが初期化された。代替実施例では、1ブロックだけのためのデータ送信で複数ブロックを初期化する増分書込みコマンドを使用して、セクタ以外のフォーマットのデータ・ブロックを初期化することができる。
【0029】
本明細書に述べた実施例では、RAID記憶装置を初期化する増分書込みコマンドを制御装置20が生成した。さらに、上述の増分書込みコマンドおよびロジックは、非RAID記憶装置を構成するために使用することができる。そのような場合であれば、制御装置20は、1つまたは複数のディスク・ドライブ上のデータのレイアウトを決定し、各デバイスに書込まれたデータの連続するブロックに対する書込みコマンドを生成しなければならない。
【0030】
記憶サブシステム6が制御したアダプタは、PCI RAIDアダプタを含んだ。しかし、本明細書に述べた記憶サブシステム初期化手法は、他のタイプの記憶アダプタ、例えば、小さいコンピュータ・システム・インタフェース(SCS)、ファイバ・チャネルなどのアダプタとともに使用することもできる。
【0031】
本明細書に述べた実施例では、PCI RAIDアダプタは記憶サブシステム内で使用される。さらに、記憶サブシステムは、接続された記憶装置を構成するためにアダプタを使用する任意のデバイス、例えば、ホスト、コンピュータなどを備えることができる。
【0032】
本明細書に述べた実施例では、ディスク・ドライブ8a、b、c...nは磁気ハード・ディスク・ドライブを備えた。代替実施例では、記憶装置4は、光ディスク、テープなど当技術分野で知られている任意の記憶装置を備えることができる。
【0033】
本明細書に述べた実施例では、初期化データは0データを含んだ。さらに、初期化データは0データ以外のデータ値を含むことができる。
【0034】
本明細書に述べた実施例では、セクタに書込まれる誤り訂正コードは、セクタ内のデータおよびセクタのLBAに対する排他的OR演算を実行することによって生成された水平冗長チェック(LRC:Longitudinal Redundancy Code)コードを含む。さらに、誤り訂正コードは、当技術分野で知られている任意の誤り訂正コード化手法を使用して生成することができ、本明細書に述べたLRC手法に限定されない。
【0035】
ストレージ・コントローラは、1つまたは複数のディスク・ドライブを構成し使用することができる任意のプロセッサ、システムまたはアダプタを備えることができる。
【0036】
本発明の好ましい実施形態の前述の記述は、例示および説明の目的で提示された。本発明を網羅または開示された正確な形態に限定するものではない。上記教示に照らして、多数の修正および変形形態が可能である。本発明の範囲は、この詳細な説明ではなく、本明細書に添付された請求の範囲によって限定されるものである。上記仕様、実施例、およびデータは、製造の完全な記述および本発明の構成の使用を提供する。本発明の精神および範囲から逸脱することなく本発明の多数の実施形態を加えることができるので、本発明は、本明細書に添付された請求の範囲にある。
【0037】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0038】
(1)複数の記憶ユニットを備える記憶装置を、ストレージ・コントローラを介して初期化するための方法であって、
前記記憶ユニットに広がる記憶スペースを初期化する要求を受け取ること、
前記記憶スペースの連続するデータ・ブロックのセットのレイアウトを前記記憶ユニット上に決定することであって、連続するデータ・ブロックのセットが前記記憶ユニット全体にわたって書込まれること、
連続するデータ・ブロックの各セットに対して、
(i)連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスを決定すること、
(ii)前記記憶ユニットのそれぞれのための書込みコマンドを生成することであって、前記記憶ユニットに対して決定されたブロック・アドレスおよびブロック数をそれぞれの書込みコマンドが示すこと、および
(iii)前記書込みコマンドを1ブロックの初期化データと共に前記記憶ユニットに送信することであって、前記書込みコマンドを受け取る記憶ユニットが、前記1ブロックの初期化データを前記示されたブロック・アドレスから書込み、前記1ブロックの初期化データを、前記記憶ユニット内のその後の連続するブロックのそれぞれに前記ブロック数に等しい回数書込むこと
を実行すること
を含む方法。
(2)前記決定されたレイアウトが、それぞれの記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、1つの記憶ユニットに書込まれるそれぞれのセットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックに対して非連続である、上記(1)に記載の方法。
(3)前記初期化データが前記ブロックに対する0データを含む、上記(1)に記載の方法。
(4)前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記記憶ユニット全体にわたって書込まれるデータのストライプの一部を含み、前記記憶ユニット全体にわたって複数のストライプが書込まれる、上記(1)に記載の方法。
(5)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る記憶ユニットに行わせるコードを前記書込みコマンド内に示すこと
をさらに含む、上記(1)に記載の方法。
(6)前記書込みコマンド内に示されたコードが、前記書込みコマンドを受け取る記憶ユニットに、
前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること
をさらに実行させる、上記(5)に記載の方法。
(7)前記記憶ユニットによって書込まれた誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに対して排他的OR演算を実行することによって計算される水平冗長チェック(LRC)コードを含む、上記(5)に記載の方法。
(8)前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(1)に記載の方法。
(9)連続するデータ・ブロックのそれぞれのセットに対して、連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる各記憶ユニット内のシーケンス番号を決定することであって、前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にして前記記憶スペース内の位置を示すシーケンス番号を割り当てること、および
初期化データが書込まれる各データ・ブロックに前記記憶スペース内のデータ・ブロックのシーケンス番号を書込むことを、前記記憶ユニットに行わせる前記決定されたシーケンス番号を前記書込みコマンド内に示すこと
をさらに含む、上記(1)に記載の方法。
(10)ストレージ・コントローラによって管理される複数の記憶ユニットの1つを備える記憶ユニットを初期化するための方法であって、
記憶スペース内の連続するブロックのセットを初期化するために前記ストレージ・コントローラから1ブロックの初期化データと共に書込みコマンドを受け取ることであって、前記書込みコマンドが、連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示すこと、
前記書込みコマンドと共に送信された初期化データのブロックを前記示されたブロック・アドレスに書込むこと、および
前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに前記1ブロックの初期化データを前記ブロック数に等しい回数書込むこと
を含む方法。
(11)前記記憶ユニット内の連続するデータ・ブロックの複数のセットを初期化する複数の書込みコマンドを各記憶ユニットが受け取る方法であって、1つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックを基準にして非連続的である、上記(10)に記載の方法。
(12)前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれる、上記(10)に記載の方法。
(13)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むこと
をさらに含む、上記(10)に記載の方法。
(14)前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること、
を前記誤り訂正コードを書込むことがさらに含む、上記(13)に記載の方法。
(15)前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(1)に記載の方法。
(16)複数の記憶ユニットを備える記憶装置を初期化するためのシステムであって、
前記記憶ユニットに広がる記憶スペースを初期化する要求を受け取るための手段と、
前記記憶ユニット上に前記記憶スペースの連続するデータ・ブロックのセットのレイアウトを決定するための手段であって、連続するデータ・ブロックのセットが前記記憶ユニット全体にわたって書込まれる手段と、
連続するデータ・ブロックの各セットに対して、
(i)連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスを決定すること、
(ii)前記記憶ユニットのそれぞれに対する書込みコマンドを生成することであって、各書込みコマンドが、前記記憶ユニットに対して決定されたブロック・アドレスおよびブロック数を示すこと、ならびに
(iii)前記書込みコマンドを1ブロックの初期化データと共に前記記憶ユニットに送信することであって、前記書込みコマンドを受け取る記憶ユニットが、前記示されたブロック・アドレスから前記1ブロックの初期化データを書込み、前記記憶ユニット内のその後の連続する各ブロックに前記1ブロックの初期化データを前記ブロック数に等しい回数書込むこと
を実行するための手段とを備えるシステム。
(17)前記決定されたレイアウトが、各記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、1つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックを基準にして非連続的である、上記(16)に記載のシステム。
(18)前記初期化データが、前記ブロックに対する0データを含む、上記(16)に記載のシステム。
(19)前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれる、上記(16)に記載のシステム。
(20)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る記憶ユニットに行わせるコードを、前記書込みコマンド内に示すための手段
をさらに備える、上記(16)に記載のシステム。
(21)前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせることを、前記書込みコマンド内に示されたコードが、前記書込みコマンドを受け取る記憶ユニットにさらに行わせる、上記(10)に記載のシステム。
(22)前記記憶ユニットによって書込まれた誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに関する排他的OR演算を実行することによって計算される水平冗長チェック(LRC)コードを含む、上記(20)に記載のシステム。
(23)前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(16)に記載のシステム。
(24)連続するデータ・ブロックの各セットに対して、連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる各記憶ユニット内のシーケンス番号を決定するための手段であって、前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にした前記記憶スペース内の位置を示すシーケンス番号が割り当てられる手段と、
初期化データが書込まれる各データ・ブロックに、前記記憶スペース内のデータ・ブロックのシーケンス番号を書込むことを、前記記憶ユニットに行わせるための決定されたシーケンス番号を前記書込みコマンド内に示すための手段とをさらに備える、上記(16)に記載のシステム。
(25)ストレージ・コントローラによって送信されるコマンドに応答してデータを初期化するためのシステムであって、
記憶ユニットと、
記憶スペース内の連続するブロックのセットを初期化するために前記ストレージ・コントローラから1ブロックの初期化データと共に書込みコマンドを受け取るための手段であって、前記書込みコマンドが、連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示す手段と、
前記書込みコマンドと共に送信された初期化データの前記ブロックを前記記憶ユニット内の前記示されたブロック・アドレスに書込むための手段と、
前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに初期化データの前記ブロックを前記ブロック数に等しい回数書込むための手段とを備えるシステム。
(26)前記記憶ユニット内の連続するデータ・ブロックの複数のセットを初期化する複数の書込みコマンドを受け取るための手段であって、1つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックを基準にして非連続的である手段
をさらに備える、上記(25)に記載のシステム。
(27)複数の記憶ユニットを含むディスク・アレイであって、前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の記憶ユニット全体にわたって書込まれたデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれるディスク・アレイ
をさらに備える、上記(25)に記載のシステム。
(28)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むための手段
をさらに備える、上記(25)に記載のシステム。
(29)前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること
を前記誤り訂正コードを書込むための手段がさらに実行する、上記(28)に記載のシステム。
(30)前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(25)に記載のシステム。
(31)ストレージ・コントローラによって実行されるコードを含む製品であって、
記憶ユニットに広がる記憶スペースを初期化する要求を受け取ること、
前記記憶ユニット上に前記記憶スペースの連続するデータ・ブロックのセットのレイアウトを決定することであって、連続するデータ・ブロックのセットが前記記憶ユニット全体にわたって書込まれること、
連続するデータ・ブロックの各セットに対して、
(i)連続するデータ・ブロックのセット内の第1データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスを決定すること、
(ii)前記記憶ユニットのそれぞれに対する書込みコマンドを生成することであって、各書込みコマンドが、前記記憶ユニットに対して決定されたブロック・アドレスおよびブロック数を示すこと、
(iii)1ブロックの初期化データと共に前記書込みコマンドを前記記憶ユニットに送信することであって、前記書込みコマンドを受け取る記憶ユニットが、初期化データの前記ブロックを前記示されたブロック・アドレスから書込み、前記記憶ユニット内のその後の連続する各ブロックに初期化データの前記ブロックを前記ブロック数に等しい回数書込むこと
を実行すること
によって、複数の記憶ユニットを備える記憶装置を初期化するための製品。
(32)前記決定されたレイアウトが、各記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、1つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれる近接セット内の連続するデータ・ブロックを基準にして非連続的である、上記(31)に記載の製品。
(33)前記初期化データが前記ブロックに対する0データを含む、上記(31)に記載の製品。
(34)前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれる、上記(31)に記載の製品。
(35)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る記憶ユニットに行わせるコードを、前記書込みコマンド内に示すこと、
を前記コードが前記ストレージ・コントローラにさらに実行させる、上記(31)に記載の製品。
(36)前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること、
を前記書込みコマンド内に示されたコードが、前記書込みコマンドを受け取る記憶ユニットにさらに実行させる、上記(35)に記載の製品。
(37)前記記憶ユニットによって書込まれた誤り訂正コードが、前記誤り訂正コードが書込まれたブロック内のすべてのデータに関する排他的OR演算を実行することによって計算される水平冗長チェック(LRC)コードを含む、上記(35)に記載の製品。
(38)前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(31)に記載の製品。
(39)連続するデータ・ブロックの各セットに対して、連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる各記憶ユニット内のシーケンス番号を決定することであって、前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にして前記記憶スペース内の位置を示すシーケンス番号を割り当てること、および
前記記憶スペース内のデータ・ブロックのシーケンス番号を、初期化データが書込まれる各データ・ブロックに書込むことを、前記記憶ユニットに行わせる前記決定されたシーケンス番号を前記書込みコマンド内に示すこと
を前記コードが前記ストレージ・コントローラにさらに実行させる、上記(31)に記載の製品。
(40)記憶ユニットによって実行されるコードを含む、前記コードを実行して前記記憶ユニットを初期化するための製品であって、前記記憶ユニットが、ストレージ・コントローラによって管理される複数の記憶ユニットの1つであり、前記コードが、
記憶スペース内の連続するブロックのセットを初期化するために前記ストレージ・コントローラから1ブロックの初期化データと共に書込みコマンドを受け取ることであって、前記書込みコマンドが、連続するデータ・ブロックの前記セット内の第1データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示すこと、
前記書込みコマンドと共に送信された前記1ブロックの初期化データを前記示されたブロック・アドレスに書込むこと、
前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに前記1ブロックの初期化データを前記ブロック数に等しい回数書込むこと
を前記記憶ユニットに実行させる製品。
(41)各記憶ユニットが、前記記憶ユニット内の連続するデータ・ブロックの複数セットを初期化するための複数の書込みコマンドを受け取り、1つの記憶ユニットに書込まれる前記連続するデータ・ブロックの各セットが、前記記憶ユニットに書込まれた近接するセット内の連続するデータ・ブロックを基準にして非連続的である、上記(40)に記載の製品。
(42)前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の前記記憶ユニット全体にわたって書込まれたデータ・ストライプの一部を含み、複数ストライプが前記記憶ユニット全体にわたって書込まれる、上記(40)に記載の製品。
(43)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むこと
を前記コードが前記記憶ユニットにさらに実行させる、上記(40)に記載の製品。
(44)前記誤り訂正コードを書込むことが、
前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること
をさらに含む、上記(43)に記載の製品。
(45)前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(40)に記載の製品。
(46)ストレージ・コントローラによって管理される複数の記憶ユニットの1つを備える記憶ユニットを初期化するために使用されるコマンドを含むコンピュータ可読媒体であって、前記コマンドが次のデータ、すなわち、
記憶スペース内の1組の連続するブロックを初期化するために使用される1ブロックの初期化データと、
前記1組の連続するデータ・ブロック内の第1データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスと、
ブロック数であって、前記1ブロックの初期化データを前記示されたブロック・アドレス、および前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに、前記ブロック数に等しい回数書込むことを、前記コマンドが前記記憶ユニットに行わせるブロック数とに関連付けられるコンピュータ可読媒体。
(47)前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数ストライプが前記記憶ユニット全体にわたって書込まれる、上記(46)に記載のコンピュータ可読媒体。
(48)前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むかどうかを示すデータ、
を前記コマンドがさらに含む、上記(46)に記載のコンピュータ可読媒体。
(49)初期化される前記データ・ブロックがそれぞれ、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記(46)に記載のコンピュータ可読媒体。
(50)前記初期化データが前記ブロックに対する0データを含む、上記(46)に記載のコンピュータ可読媒体。
(51)前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にして前記記憶スペース内の位置を示すシーケンス番号が割り当てられる、決定されたシーケンス番号をさらに含む上記(46)に記載のコンピュータ可読媒体。
【図面の簡単な説明】
【図1】本発明の態様が実施されるコンピューティング環境を示す図である。
【図2】本発明の実施例と共に使用されるディスク・ドライブ内のコンポーネントを示す図である。
【図3】従来技術で知られている方法でセクタのフォーマットを示す図である。
【図4】本発明の実施例にしたがって書込み実施コマンドのフォーマットを示す図である。
【図5】本発明の実施例にしたがって記憶装置のアレイ内のデータを初期化する記憶サブシステムに実施されるロジックを示す図である。
【図6】本発明の実施例にしたがってデータを初期化するためのディスク・ドライブ内に実施されるロジックを示す図である。
【符号の説明】
2 ホスト
4 記憶装置
6 記憶サブシステム
8a ハード・ディスク・ドライブ
8b ハード・ディスク・ドライブ
8c ハード・ディスク・ドライブ
8n ハード・ディスク・ドライブ
10 ホスト・バス・アダプタ
12 PCI RAIDアタプタ
20 制御装置
22 コード
Claims (14)
- ホスト・システムに接続された第1制御装置と、該第1制御装置に接続されそれぞれが記憶媒体及び該記憶媒体を制御する第2制御装置を有する複数の記憶ユニットとを有するシステムの前記複数の記憶ユニットのそれぞれの記憶媒体を初期化する方法であって、
前記第1制御装置が、
(i)前記複数の記憶ユニットの前記記憶媒体に亘る記憶スペースを初期化する要求を受け取るステップと、
(ii)前記複数の記憶ユニットの前記記憶媒体のそれぞれ毎に、連続するデータ・ブロックのセットを決定することにより、前記複数の記憶ユニットの前記記憶媒体に亘る複数の前記セットのレイアウトを決定するステップと、
(iii)前記セット毎に、初期化データを最初に書き込む記憶ユニットの記憶媒体の最初のブロック・アドレスを決定するステップと、
(iv)前記最初のブロック・アドレス及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成するステップと、
(v)前記書込みコマンドを前記初期化データと共に前記複数の記憶ユニットの前記第2制御手段のそれぞれに送信するステップとを行い、
前記複数の記憶ユニットの前記第2制御装置のそれぞれが、
(イ)前記書込コマンド及び前記初期化データを受け取るステップと、
(ロ)前記初期化データを、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込むステップと、
(ハ)前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データを前記ブロック数に等しい回数書込むステップとを行うことを特徴とする、方法。 - 前記初期化データが0データを含む、請求項1に記載の方法。
- ディスク・アレイを構成する前記複数の記憶ユニットがハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記複数の記憶ユニットにわたって書込まれるデータのストライプの一部を含み、前記複数の記憶ユニットにわたって複数のストライプが書込まれる、請求項1に記載の方法。
- 前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る前記第2制御装置に行わせるコードを前記書込みコマンド内に示すこと
をさらに含む、請求項1に記載の方法。 - 前記第2制御装置によって書込まれた前記誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに対して排他的OR演算を実行することによって計算される水平冗長チェック(LRC)コードを含む、請求項4に記載の方法。
- 前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、請求項1に記載の方法。
- 前記ステップ(iii)に続いて、前記第1制御装置が前記セット毎に、該セットの連続するデータ・ブロックのうち最初に前記初期化データが書き込まれるデータ・ブロックのシーケンス番号を決定し、前記ステップ(iv)において、前記最初のブロック・アドレス、前記シーケンス番号及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成し、
前記第2制御装置のそれぞれが、前記ステップ(ロ)において、前記初期化データ及び 前記シーケンス番号を、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込み、前記ステップ(ハ)において、前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データ及び前記シーケンス番号を増分した番号を前記ブロック数に等しい回数書込む、請求項1に記載の方法。 - ホスト・システムに接続された第1制御装置と、該第1制御装置に接続されそれぞれが記憶媒体及び該記憶媒体を制御する第2制御装置を有する複数の記憶ユニットとを有するシステムの前記複数の記憶ユニットのそれぞれの記憶媒体を初期化するシステムであって、
前記第1制御装置が、
(i)前記複数の記憶ユニットの前記記憶媒体に亘る記憶スペースを初期化する要求を受け取り、
(ii)前記複数の記憶ユニットの前記記憶媒体のそれぞれ毎に、連続するデータ・ブロックのセットを決定することにより、前記複数の記憶ユニットの前記記憶媒体に亘る複数の前記セットのレイアウトを決定し、
(iii)前記セット毎に、初期化データを最初に書き込む記憶ユニットの記憶媒体の最初のブロック・アドレスを決定し、
(iv)前記最初のブロック・アドレス及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成し、
(v)前記書込みコマンドを前記初期化データと共に前記複数の記憶ユニットの前記第2制御手段のそれぞれに送信し、
前記複数の記憶ユニットの前記第2制御装置のそれぞれが、
(イ)前記書込コマンド及び前記初期化データを受け取り、
(ロ)前記初期化データを、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込み、
(ハ)前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データを前記ブロック数に等しい回数書込むことを特徴とする、システム。 - 前記初期化データが0データを含む、請求項8に記載のシステム。
- ディスク・アレイを構成する前記複数の記憶ユニットがハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記複数の記憶ユニットにわたって書込まれるデータのストライプの一部を含み、前記複数の記憶ユニットにわたって複数のストライプが書込まれる、請求項8に記載のシステム。
- 前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る前記第2制御装置に行わせるコードを前記書込みコマンド内に示す、請求項8に記載のシステム。
- 前記第2制御装置によって書込まれた前記誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに対して排他的OR演算を実行することによって計算される水平冗長チェック(LRC)コードを含む、請求項11に記載のシステム。
- 前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、請求項8に記載のシステム。
- 前記(iii)に続いて、前記第1制御装置が前記セット毎に、該セットの連続するデ ータ・ブロックのうち最初に前記初期化データが書き込まれるデータ・ブロックのシーケンス番号を決定し、前記(iv)において、前記最初のブロック・アドレス、前記シーケンス番号及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成し、
前記第2制御装置のそれぞれが、前記(ロ)において、前記初期化データ及び前記シーケンス番号を、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込み、前記(ハ)において、前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データ及び前記シーケンス番号を増分した番号を前記ブロック数に等しい回数書込む、請求項8に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/870291 | 2001-05-30 | ||
US09/870,291 US7062644B2 (en) | 2001-05-30 | 2001-05-30 | Method, system, and program for initializing a storage device comprising multiple storage units through a storage controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003058325A JP2003058325A (ja) | 2003-02-28 |
JP3782982B2 true JP3782982B2 (ja) | 2006-06-07 |
Family
ID=25355087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002136911A Expired - Fee Related JP3782982B2 (ja) | 2001-05-30 | 2002-05-13 | 複数の記憶ユニットのそれぞれの記憶媒体を初期化する方法及びシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7062644B2 (ja) |
JP (1) | JP3782982B2 (ja) |
SG (1) | SG112838A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230135020A1 (en) * | 2021-11-02 | 2023-05-04 | Samsung Electronics Co., Ltd. | Controller, storage device and operation method of storage device |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117422B2 (en) * | 2002-01-22 | 2006-10-03 | Sun Microsystems, Inc. | Error detection in storage data |
US7020770B2 (en) * | 2002-07-12 | 2006-03-28 | Lsi Logic Corporation | Method and apparatus for configuration of RAID controllers |
JP2005078596A (ja) | 2003-09-03 | 2005-03-24 | Hitachi Ltd | データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置 |
US7383404B2 (en) * | 2005-02-03 | 2008-06-03 | International Business Machines Corporation | Priority initialization system |
US20060184730A1 (en) * | 2005-02-11 | 2006-08-17 | Brown Joanna K | Drive based sector initialization |
TWI308696B (en) * | 2005-10-07 | 2009-04-11 | Via Tech Inc | Initializing method bus device |
JP4464378B2 (ja) * | 2006-09-05 | 2010-05-19 | 株式会社日立製作所 | 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法 |
US8218947B2 (en) * | 2006-12-04 | 2012-07-10 | Victor Company Of Japan, Ltd. | Video data recording apparatus and method, and video data reproducing apparatus and method |
US20080313364A1 (en) | 2006-12-06 | 2008-12-18 | David Flynn | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
US7979773B2 (en) * | 2007-03-13 | 2011-07-12 | Summit Data Systems Llc | RAID array auto-initialization (RAAI) |
JP2008257360A (ja) * | 2007-04-02 | 2008-10-23 | Toshiba Corp | Raid初期化方法及びraid初期化プログラム |
TWI377577B (en) * | 2007-06-29 | 2012-11-21 | Novatek Microelectronics Corp | Method for memory address arrangement |
KR101517767B1 (ko) | 2009-01-07 | 2015-05-06 | 시게이트 테크놀로지 엘엘씨 | 하이브리드 저장 장치 및 그의 자원 공유 방법 |
JP5218147B2 (ja) * | 2009-02-26 | 2013-06-26 | 富士通株式会社 | ストレージ制御装置,ストレージ制御方法およびストレージ制御プログラム |
US20110029728A1 (en) * | 2009-07-28 | 2011-02-03 | Lsi Corporation | Methods and apparatus for reducing input/output operations in a raid storage system |
US8856501B2 (en) * | 2009-12-14 | 2014-10-07 | Sandisk Technologies Inc. | Method and system for controlling operation of interconnected devices by circulating host capability without a centralized manager |
US8583866B2 (en) * | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
WO2012056491A1 (en) * | 2010-10-26 | 2012-05-03 | Hitachi, Ltd. | Storage apparatus and data control method |
US10826989B2 (en) * | 2014-10-13 | 2020-11-03 | Smart Modular Technologies, Inc. | Data storage system with information exchange mechanism and method of operation thereof |
CN109815169B (zh) * | 2019-01-16 | 2021-02-02 | 浙江大华技术股份有限公司 | 一种存储设备及其存储链路自适应的方法 |
US11803326B2 (en) * | 2021-04-23 | 2023-10-31 | Macronix International Co., Ltd. | Implementing a read setup burst command in 3D NAND flash memory to reduce voltage threshold deviation over time |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0428021B1 (en) * | 1989-11-03 | 1998-09-02 | Compaq Computer Corporation | Method for data distribution in a disk array |
US5375128A (en) | 1990-10-18 | 1994-12-20 | Ibm Corporation (International Business Machines Corporation) | Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders |
JPH07248884A (ja) | 1994-03-11 | 1995-09-26 | Nec Eng Ltd | フォーマット制御装置 |
US5682499A (en) * | 1995-06-06 | 1997-10-28 | International Business Machines Corporation | Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD) |
US5875456A (en) | 1995-08-17 | 1999-02-23 | Nstor Corporation | Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array |
US5657468A (en) | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
US5774641A (en) | 1995-09-14 | 1998-06-30 | International Business Machines Corporation | Computer storage drive array with command initiation at respective drives |
US5978856A (en) | 1996-01-26 | 1999-11-02 | Dell Usa, L.P. | System and method for reducing latency in layered device driver architectures |
US5758187A (en) | 1996-03-15 | 1998-05-26 | Adaptec, Inc. | Method for enhancing performance of a RAID 1 read operation using a pair of I/O command blocks in a chain structure |
US6282671B1 (en) | 1998-11-10 | 2001-08-28 | International Business Machines Corporation | Method and system for improved efficiency of parity calculation in RAID system |
US6105076A (en) | 1999-04-23 | 2000-08-15 | International Business Machines Corporation | Method, system, and program for performing data transfer operations on user data |
US6691209B1 (en) * | 2000-05-26 | 2004-02-10 | Emc Corporation | Topological data categorization and formatting for a mass storage system |
US6779062B1 (en) * | 2000-09-29 | 2004-08-17 | Intel Corporation | Streamlining ATA device initialization |
US6665743B2 (en) * | 2001-04-18 | 2003-12-16 | International Business Machines Corporation | Method, system, and program for initializing a storage space |
-
2001
- 2001-05-30 US US09/870,291 patent/US7062644B2/en not_active Expired - Lifetime
-
2002
- 2002-05-13 JP JP2002136911A patent/JP3782982B2/ja not_active Expired - Fee Related
- 2002-05-16 SG SG200202961A patent/SG112838A1/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230135020A1 (en) * | 2021-11-02 | 2023-05-04 | Samsung Electronics Co., Ltd. | Controller, storage device and operation method of storage device |
US11922037B2 (en) * | 2021-11-02 | 2024-03-05 | Samsung Electronics Co., Ltd. | Controller, storage device and operation method of storage device |
Also Published As
Publication number | Publication date |
---|---|
US7062644B2 (en) | 2006-06-13 |
SG112838A1 (en) | 2005-07-28 |
JP2003058325A (ja) | 2003-02-28 |
US20020184481A1 (en) | 2002-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3782982B2 (ja) | 複数の記憶ユニットのそれぞれの記憶媒体を初期化する方法及びシステム | |
JP3777132B2 (ja) | 記憶装置の設定方法、システム及び製品 | |
JP3358687B2 (ja) | ディスクアレイ装置 | |
US8131922B2 (en) | Storage system | |
US8819338B2 (en) | Storage system and storage apparatus | |
US7979635B2 (en) | Apparatus and method to allocate resources in a data storage library | |
US20040177218A1 (en) | Multiple level raid architecture | |
US7647526B1 (en) | Reducing reconstruct input/output operations in storage systems | |
US7882331B2 (en) | Method and system for simultaneously supporting different block sizes on a single hard drive | |
KR100270751B1 (ko) | 기억장치서브시스템의자동구성방법및장치 | |
US6651154B1 (en) | Method, system, and program for expanding the storage space in an array of storage units | |
US20170228156A1 (en) | Raid set initialization | |
JP2007513435A (ja) | データ組織化を管理するための方法、システム、及びプログラム | |
US9003119B2 (en) | Control apparatus and method, and storage apparatus | |
CN101971148A (zh) | 选择用于数据存储库的重复删除协议 | |
US7454686B2 (en) | Apparatus and method to check data integrity when handling data | |
JP5706808B2 (ja) | 連続的なリモートコピーのためのネットワーク効率の改良 | |
US7962690B2 (en) | Apparatus and method to access data in a raid array | |
US20080195832A1 (en) | Storage controller and storage system | |
US5887199A (en) | Mass storage controller with universal track size adaptability | |
JP6649989B2 (ja) | ストレージシステム及びその制御方法 | |
JP2006507603A (ja) | Bios記憶アレイ | |
JPH0869359A (ja) | ディスクアレイ装置 | |
JPH10124263A (ja) | アレイ・コントローラおよびデータ記憶アレイ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050905 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050908 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060131 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060313 |
|
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 |