JP6318769B2 - ストレージ制御装置、制御プログラム、および制御方法 - Google Patents

ストレージ制御装置、制御プログラム、および制御方法 Download PDF

Info

Publication number
JP6318769B2
JP6318769B2 JP2014067626A JP2014067626A JP6318769B2 JP 6318769 B2 JP6318769 B2 JP 6318769B2 JP 2014067626 A JP2014067626 A JP 2014067626A JP 2014067626 A JP2014067626 A JP 2014067626A JP 6318769 B2 JP6318769 B2 JP 6318769B2
Authority
JP
Japan
Prior art keywords
data
storage
storage area
error detection
storing
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.)
Active
Application number
JP2014067626A
Other languages
English (en)
Other versions
JP2015191407A (ja
Inventor
圭也 石川
圭也 石川
新菜 塚本
新菜 塚本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014067626A priority Critical patent/JP6318769B2/ja
Priority to US14/645,461 priority patent/US9639417B2/en
Priority to EP15158995.9A priority patent/EP2924576A1/en
Publication of JP2015191407A publication Critical patent/JP2015191407A/ja
Application granted granted Critical
Publication of JP6318769B2 publication Critical patent/JP6318769B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ストレージ制御装置、制御プログラム、および制御方法に関する。
情報処理システムに使用されるストレージ装置として、データアクセスの高速性やデータの障害耐性を高める構成を有するディスクアレイ装置(RAID(Redundant Arrays of Inexpensive Disks)装置ともいう)が多く用いられている。このディスクアレイ装置は、種類の異なる汎用的なオペレーティングシステムによって稼動するオープン系システムで多く利用されるため、固定長レコードのデータフォーマットを有している。
データをストレージ装置に記憶する際には、記憶したデータにエラーが生じていないかを判定するためのエラーチェックコードがデータに付される。たとえば、固定長データフォーマットでは、論理ブロックごとにエラーチェックコードが付される。
特開2006−107311号公報 特開2007−115390号公報
ストレージ制御装置は、ホストからライト要求を受け付けたデータをメモリ上に一旦保持してからストレージ装置に記憶させる。このとき、異常が生じてストレージ装置に正常なデータを書き込むことができなくなることがある。
たとえば、データ異常の態様によっては、ストレージ装置に論理ブロック単位でデータが書き込まれず、書き込み前のデータが更新されずに保持される場合がある。このとき、ストレージ装置は、更新前のデータと、更新前のデータに対応するエラーチェックコードを保持している状態である。ストレージ制御装置は、この状態でステージングをおこなうと、キャッシュメモリに読み出したエラーチェックコードと、キャッシュメモリに読み出したデータから算出したエラーチェックコードとが一致するため正常なデータであると判断する。ストレージ制御装置は、ストレージ装置のデータ書込の失敗を検出することができないことから、更新前のデータをホストに応答して、ホストでデータ化けを生じ得る。
1つの側面では、本発明は、データ書込失敗の検出精度を高めたストレージ制御装置、制御プログラム、および制御方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、制御部を備える。制御部は、書込対象データについてアクセス単位となるデータブロックごとに誤り検出情報を生成し、ディスクドライブ装置メタ情報を格納する第1の記憶領域に誤り検出情報を格納し、ディスクドライブ装置のユーザデータを格納するユーザデータ領域である第2の記憶領域に書込対象データを格納、第1の記憶領域から読み出した誤り検出情報と、第2の記憶領域から読み出した書込対象データとからデータブロックごとの誤り検出をおこなう。
1態様によれば、ストレージ制御装置、制御プログラム、および制御方法において、データ書込失敗の検出精度を高める。
第1の実施形態のストレージ制御装置の構成の一例を示す図である。 第2の実施形態のストレージサーバの構成の一例を示す図である。 第2の実施形態のキャッシュメモリの構成の一例を示す図である。 第2の実施形態のディスクモジュールの構成の一例を示す図である。 第2の実施形態のデータブロックの一例を示す図である。 第2の実施形態のCAのハードウェア構成の一例である。 第2の実施形態のライト要求受付処理のフローチャートを示す図である。 第2の実施形態のライトバック処理のフローチャートを示す図である。 第2の実施形態のブロックライト失敗の一例を示す図である。 ブロックライト失敗の比較例を示す図である(その1)。 第2の実施形態のリード要求受付処理のフローチャートを示す図である。 ブロックライト失敗の比較例を示す図である(その2)。 第3の実施形態のストレージ制御装置の構成の一例を示す図である。 第3の実施形態のライト要求受付処理のフローチャートを示す図である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージ制御装置について図1を用いて説明する。図1は、第1の実施形態のストレージ制御装置の構成の一例を示す図である。
ストレージ制御装置1は、記憶装置5へのデータの書込と、記憶装置5からのデータの読出しを制御する。ストレージ制御装置1は、図示しない外部装置からデータの書込指示を受け付けて記憶装置5にデータを書き込み、また、外部装置からデータの読出指示を受け付けて記憶装置5からデータを読み出して外部装置に応答する。
ストレージ制御装置1は、誤り検出情報格納部2と、データ格納部3と、検出部4とを含む。記憶装置5は、ストレージ制御装置1が制御対象とするストレージ装置であり、第1の記憶領域6と第2の記憶領域7を含む。第1の記憶領域6と第2の記憶領域7は、異なる記憶領域である。なお、記憶装置5は、ストレージ制御装置1にとって外部記憶装置であってもよいし、内部記憶装置であってもよい。また、記憶装置5は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などのディスクドライブであってもよいし、データを一時的に格納するキャッシュメモリなどであってもよい。
誤り検出情報格納部2は、書込対象データについて誤り検出情報として、データブロックごとにECC(Error Check Code)を生成する。データブロックは、記憶装置5のアクセス単位である。たとえば、記憶装置5がHDDであるときに、アクセス単位は、LBA(Logical Block Address:論理ブロックアドレス)である。誤り検出情報格納部2は、書込対象データをデータブロックに分割する。なお、図1は、DB1,DB2,DB3,DB4の4つのデータブロックを示すが、データブロックの数は書込対象データの大きさにしたがうものであり、図示した4つに限らない。
誤り検出情報格納部2は、DB1からECC1を生成し、データブロックDB2からECC2を生成し、データブロックDB3からECC3を生成し、データブロックDB4からECC4を生成する。誤り検出情報格納部2は、生成したECC1からECC4を第1の記憶領域6に格納する。
データ格納部3は、DB1からDB4を第2の記憶領域7に格納する。検出部4は、第1の記憶領域6から読み出した誤り検出情報と、第2の記憶領域7から読み出した書込対象データとからデータブロックごとの誤り検出をおこなう。たとえば、検出部4は、第1の記憶領域6からECC1を読み出し、第2の記憶領域7からDB1を読み出す。検出部4は、第2の記憶領域7から読み出したDB1からECC1を生成し、第1の記憶領域6から読み出したECC1と比較することで、DB1の誤り検出をおこなうことができる。
これにより、ストレージ制御装置1は、第1の記憶領域6が記憶する誤り検出情報と、第2の記憶領域7が記憶する書込対象データのうち少なくともいずれか一方のデータが、対応する記憶領域に正しく書き込まれていないこと(データ書込失敗)を検出できる。したがって、ストレージ制御装置1は、データ書込失敗の検出精度を向上することができる。
[第2の実施形態]
次に、第2の実施形態のストレージサーバについて図2を用いて説明する。図2は、第2の実施形態のストレージサーバの構成の一例を示す図である。
ストレージサーバ10は、複数のHDD25,26を備え、ホスト(ホストコンピュータ)11,12に高速、大容量、高信頼性のディスクシステムを提供する。ストレージサーバ10は、ホスト11,12からライト要求を受け付けてHDD25,26にデータを書き込み、また、ホスト11,12からリード要求を受け付けてHDD25,26からデータを読み出して応答する。HDD25,26は、ストレージ装置の一形態であり、ストレージサーバ10は、ストレージ装置を制御するストレージ制御装置の一形態である。
ストレージサーバ10は、CA(Channel Adapter)13,14、スイッチ15,16,23,24、CM(Controller Module)17,18、キャッシュメモリ19,20、DA(Device Adapter)21,22、HDD25,26を含む。
CA13,14は、ストレージサーバ10のI/F(Interface)制御モジュールである。CA13,14は、FC(Fibre Channel)、iSCSI(Internet Small Computer System Interface)、FCLINK、OCLINKなどの各種インタフェースを制御し、データを内部バスへ転送する、プロトコルチップとして機能する。CA13は、2以上あり、ホスト11とスイッチ15を冗長構成で接続する。CA14は、2以上あり、ホスト12とスイッチ16を冗長構成で接続する。
CA13,14は、ホスト11,12からのコマンドと、キャッシュメモリ19,20へのアクセス処理を担う。CA13は、スイッチ15を介してCM17を接続する。CA14は、スイッチ16を介してCM18を接続する。CA13,14は、ホスト11,12から転送されるユーザデータにディスクフォーマットに応じたデータ保護のためBCC(Block Check Code)を付加する。BCCは、データブロック単位のECCである。また、CA13,14は、HDD25,26から読み出されたデータをチェックし、BCCを外してホスト11,12に転送する。
CM17,18は、データの排他制御、キャッシュメモリの管理、HDDのリード/ライト制御など、ストレージサーバ10を統括的に制御する制御モジュールである。CM17は、キャッシュメモリ19を内蔵し、キャッシュメモリ19を管理する。CM18は、キャッシュメモリ20を内蔵し、キャッシュメモリ20を管理する。ストレージサーバ10は、CM17とCM18とを備える冗長構成を有し、一方に障害が発生した場合に他方が処理を引き継ぐことができる。また、ユーザデータは、CM17とCM18の2系統でミラーリングされ、ミラーリングされたユーザデータは、CM17とCM18で共有される。
DA21,22は、CM17,18と、複数のHDD25,26をスイッチ23,24を介して接続し、HDD25,26を制御する。HDD25,26は、ドライブモジュールの一形態であって、たとえば、SSDなどに置き換えることができる。HDD25,26は、たとえば、DA21,22、およびスイッチ23,24とともにディスクアレイモジュールを構成する。
次に、第2の実施形態のキャッシュメモリについて図3を用いて説明する。図3は、第2の実施形態のキャッシュメモリの構成の一例を示す図である。キャッシュメモリ19とキャッシュメモリ20は、同様の構成であるため、キャッシュメモリ19について説明する。
キャッシュメモリ19は、BCC領域191とユーザデータ領域192を含む。ユーザデータ領域192は、ユーザデータを記憶する記憶領域である。BCC領域191は、メタデータを記憶する記憶領域の1つであり、ユーザデータ領域192と異なる記憶領域である。
ユーザデータ領域192は、データブロックごとにユーザデータを記憶する。ここでいうデータブロックは、HDD25,26のアクセス単位であり、たとえば、LBA(Logical Block Address)である。ユーザデータ領域192は、たとえば、データブロックごとにデータ1、データ2、…、データ8を記憶する。
BCC領域191は、各データブロックのBCCを記憶する。BCCは、誤り検出情報の1つであり、たとえば、6バイトのBID(Block ID)と、2バイトのCRC(Cyclic Redundancy Check)とから構成される。BIDは、データブロックを一意に識別する識別子である。BCC領域191は、たとえば、データ1に対応するBCC1、データ2に対応するBCC2、…、データ8に対応するBCC8を記憶する。
このように、キャッシュメモリ19において、ユーザデータと、ユーザデータのBCCとは、それぞれアクセス単位の異なる記憶領域に記憶される。そのため、ユーザデータと、ユーザデータのBCCとが同一の記憶領域に記憶されることによる、ユーザデータと、ユーザデータのBCCとが同時にデータ書込失敗となる危険を低減する。
次に、第2の実施形態のディスクモジュールについて図4を用いて説明する。図4は、第2の実施形態のディスクモジュールの構成の一例を示す図である。HDD25とHDD26は、ディスクモジュールの一形態であり、より詳しくは、ディスクドライブ装置の一形態である。HDD25とHDD26は、同様の構成であるため、HDD25について説明する。
HDD25は、メタ領域251とユーザデータ領域252を含む。ユーザデータ領域252は、ユーザデータを記憶する記憶領域である。メタ領域251は、メタデータを記憶する記憶領域の1つであり、ユーザデータ領域252と異なる記憶領域である。メタデータは、各データブロックのBCCを含む。また、メタデータは、領域管理に関する領域管理情報を含み、領域管理情報は、たとえば、iノード、Vデータ、ファイルデータなどの割付情報がある。
ユーザデータ領域252は、データブロックごとにユーザデータを記憶する。ここでいうデータブロックは、HDD25,26のアクセス単位であり、たとえば、LBAに対応する物理アドレスである。ユーザデータ領域252は、たとえば、データブロックごとにデータ1、データ2、…、データ8を記憶する。
メタ領域251は、各データブロックのBCCを記憶する。メタ領域251は、たとえば、データ1に対応するBCC1、データ2に対応するBCC2、…、データ8に対応するBCC8を記憶する。
このように、HDD25において、ユーザデータと、ユーザデータのBCCとは、それぞれアクセス単位の異なる記憶領域に記憶される。そのため、ユーザデータと、ユーザデータのBCCとが同一の記憶領域に記憶されることによる、ユーザデータと、ユーザデータのBCCとが同時にデータ書込失敗となる危険を低減する。
次に、第2の実施形態のデータブロックについて図5を用いて説明する。図5は、第2の実施形態のデータブロックの一例を示す図である。
データブロックは、512byteのサイズであり、この512byteごとに8byteのBCCが生成される。データブロックは、一意に特定可能なLBAが付される。たとえば、ユーザデータ領域252は、LBA#1、LBA#2、LBA#3、LBA#4、…を含み、ユーザデータを記憶する。また、メタ領域251は、LBA#mを含み、BCCを記憶する。なお、HDD25,26は、256byte、64byteなど、アクセス単位(512byte)より小さな単位で、データブロック内のデータを区分可能にする。
次に、第2の実施形態のCA13のハードウェア構成について図6を用いて説明する。図6は、第2の実施形態のCAのハードウェア構成の一例である。CA13とCA14は、同様の構成であるため、CA13について説明する。
CA13は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、CA13の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOSのプログラムやファームウェア、アプリケーションプログラム(制御プログラムなど)の少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。また、RAM102は、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
バス109に接続されている周辺機器としては、不揮発性メモリ103、入出力インタフェース104、機器接続インタフェース105、通信インタフェース106、およびDMA(Direct Memory Access)107がある。
不揮発性メモリ103は、CA13の電源遮断時においても記憶内容を保持する。不揮発性メモリ103は、たとえば、EEPROM(Electrically Erasable Programmable Read-Only Memory)やSSDなどである。また、不揮発性メモリ103は、CA13の補助記憶装置として使用される。不揮発性メモリ103には、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
入出力インタフェース104は、入出力装置110と接続して入出力をおこなう。機器接続インタフェース105は、光学ドライブ装置111やメモリ装置112と接続する。通信インタフェース106は、ホスト11と接続する。DMA107は、キャッシュメモリ19との間でデータ転送をおこなう。
CA13は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。CA13に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、CA13に実行させるプログラムを不揮発性メモリ103に格納しておくことができる。プロセッサ101は、不揮発性メモリ103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。またCA13に実行させるプログラムを、図示しない光ディスク、光磁気記録媒体、メモリカードなどの可搬型記録媒体に記録しておくこともできる。
光学ドライブ装置111は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
メモリ装置112は、機器接続インタフェース105との通信機能を搭載した記録媒体である。また、メモリ装置112は、メモリカードへのデータの書き込み、またはメモリカードからのデータの読出しをおこなうメモリリーダライタに代えてもよい。メモリカードは、カード型の記録媒体である。
可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ101からの制御により、不揮発性メモリ103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
以上のようなハードウェア構成によって、第2の実施形態のCA13の処理機能を実現することができる。なお、CA14、CM17,18、第1の実施形態に示したストレージ制御装置1も、図示したCA13と同様のハードウェアにより実現することができる。
次に、第2の実施形態のライト要求受付処理について図7を用いて説明する。図7は、第2の実施形態のライト要求受付処理のフローチャートを示す図である。ライト要求受付処理は、CA13,14がホスト11からライト要求を受け付けて実行する処理である。以下、CA13がライト要求受付処理を実行する場合について説明するが、CA14についても同様である。
[ステップS11]CA13は、ホスト11から書込対象データを受信する。
[ステップS12]CA13は、書込対象データについてデータブロックごとのBCCを生成する。
[ステップS13]CA13は、キャッシュメモリ19のユーザデータ領域192に書込対象データを書き込む。
[ステップS14]CA13は、キャッシュメモリ19のBCC領域191に、生成したBCCを書き込む。
[ステップS15]CA13は、ホスト11に確認応答を送信し、ライト要求受付処理を終了する。
次に、第2の実施形態のライトバック処理について図8を用いて説明する。図8は、第2の実施形態のライトバック処理のフローチャートを示す図である。ライトバック処理は、CA13,14がライト要求受付処理を終了した後に、CM17,18が実行する処理である。以下、CM17がライトバック処理を実行する場合について説明するが、CM18についても同様である。
[ステップS21]CM17は、キャッシュメモリ19のユーザデータ領域192から書込対象データを読み出す。
[ステップS22]CM17は、キャッシュメモリ19のBCC領域191からBCCを読み出す。
[ステップS23]CM17は、HDD25のユーザデータ領域252に書込対象データを書き込む。
[ステップS24]CM17は、HDD25のメタ領域251にBCCを書き込む。
[ステップS25]CM17は、HDD25のユーザデータ領域252からデータブロックごとに書込対象データを読み出してBCCを生成し、HDD25のメタ領域251から読み出したBCCと比較する。CM17は、生成したBCCと、読み出したBCCとが一致するか否かを判定する。CM17は、生成したBCCと、読み出したBCCとが一致しない場合にステップS21にすすみ、リトライ動作をおこなう。一方、CM17は、生成したBCCと、読み出したBCCとが一致する場合にライトバック処理を終了する。
このようなストレージサーバ10は、ステップS23におけるHDD25へのデータの書き込みに失敗した場合があっても、書込対象データとBCCとは異なる領域に記憶されていることから、書込対象データの書込の失敗(ブロックライト失敗)を看過することがない。
ここで、第2の実施形態のブロックライト失敗について図9を用いて説明する。図9は、第2の実施形態のブロックライト失敗の一例を示す図である。
ストレージサーバ10(CA13)は、ホスト11から、DATA1、DATA2、DATA3、およびDATA4を書込対象データとするライト要求を受け付ける。
ストレージサーバ10(CA13)は、DATA1、DATA2、DATA3、およびDATA4をデータブロックサイズに整える。たとえば、ストレージサーバ10(CA13)は、データブロックサイズに満たないDATA4についてパディングをおこなう。ストレージサーバ10(CA13)は、DATA1からBCC1を生成し、DATA2からBCC2を生成し、DATA3からBCC3を生成し、パディングされたDATA4からBCC4を生成する。ストレージサーバ10(CA13)は、DATA1、DATA2、DATA3、およびDATA4をキャッシュメモリ19のユーザデータ領域192に書き込む。ストレージサーバ10(CA13)は、BCC1、BCC2、BCC3、およびBCC4をキャッシュメモリ19のBCC領域191に書き込む。
ストレージサーバ10(CM17)は、キャッシュメモリ19のユーザデータ領域192からDATA1、DATA2、DATA3、およびDATA4を読み出す。ストレージサーバ10(CM17)は、キャッシュメモリ19のBCC領域191からBCC1、BCC2、BCC3、およびBCC4を読み出す。
このとき、HDD25のユーザデータ領域252は、LBA#1にDATA01を記憶し、LBA#2にDATA02を記憶し、LBA#3にDATA03を記憶し、LBA#4にDATA04を記憶する。また、HDD25のメタ領域251は、DATA01に対応するBCC01、DATA02に対応するBCC02、DATA03に対応するBCC03、およびDATA04に対応するBCC04を記憶する。
ストレージサーバ10(CM17)は、元のデータを上書きしてHDD25のユーザデータ領域252を更新する。ここで、ストレージサーバ10(CM17)は、LBA#2でDATA2の書き込みに失敗(ブロックライト失敗)したとする。これにより、LBA#1は、DATA1を記憶し、LBA#2は、DATA02を記憶し、LBA#3は、DATA3を記憶し、LBA#4は、DATA4を記憶する。すなわち、LBA#2は、ブロックライト失敗によりDATA02を記憶したままである。
また、ストレージサーバ10(CM17)は、元のデータを上書きしてHDDのメタ領域251を更新する。これにより、HDD25のメタ領域251は、BCC1、BCC2、BCC3、およびBCC4を記憶する。これにより、LBA#2のBCCは、HDD25のメタ領域251にBCC2が記憶され、LBA#2が記憶するDATA02から生成するBCC02と一致しない。
したがって、ストレージサーバ10(CM17)は、HDD25のユーザデータ領域252におけるブロックライト失敗を検出できる。したがって、ストレージサーバ10は、データ書込失敗の検出精度を向上することができる。
ここで、ブロックライト失敗の比較例について図10を用いて説明する。図10は、ブロックライト失敗の比較例を示す図である(その1)。
ストレージサーバは、ホストから、DATA1、DATA2、DATA3、およびDATA4を書込対象データとするライト要求を受け付ける。
ストレージサーバは、DATA1、DATA2、DATA3、およびDATA4をデータブロックサイズに整える。ストレージサーバは、DATA1からBCC1を生成し、DATA2からBCC2を生成し、DATA3からBCC3を生成し、パディングされたDATA4からBCC4を生成する。ストレージサーバは、DATA1とBCC1、DATA2とBCC2、DATA3とBCC3、およびパディングされたDATA4とBCC4をキャッシュメモリに書き込む。
ストレージサーバは、キャッシュメモリからDATA1とBCC1、DATA2とBCC2、DATA3とBCC3、およびパディングされたDATA4とBCC4を読み出す。
このとき、HDDは、LBA#1にDATA01とBCC01を記憶し、LBA#2にDATA02とBCC02を記憶し、LBA#3にDATA03とBCC03を記憶し、LBA#4にパディングされたDATA04とBCC04を記憶する。
ストレージサーバは、元のデータを上書きしてHDDを更新する。ここで、ストレージサーバは、LBA#2でDATA2とBCC2の書き込みに失敗(ブロックライト失敗)したとする。これにより、LBA#1は、DATA1とBCC1を記憶し、LBA#2は、DATA02とBCC02を記憶し、LBA#3は、DATA3とBCC3を記憶し、LBA#4は、パディングされたDATA4とBCC4を記憶する。すなわち、LBA#2は、ブロックライト失敗によりDATA02とBCC02を記憶したままである。
このような、LBA#2のBCCは、LBA#2が記憶するDATA02から生成するBCC02と、LBA#2が記憶するBCC02とが一致する。
すなわち、ストレージサーバは、HDDのブロックライト失敗を検出できない。このような、ストレージサーバは、データ書込失敗の検出精度が不十分である。一方、第2の実施形態のストレージサーバ10は、図9を用いて説明したように、HDD25のユーザデータ領域252におけるブロックライト失敗を検出できることから、データ書込失敗の検出精度が比較例と比較して高い。
次に、第2の実施形態のリード要求受付処理について図11を用いて説明する。図11は、第2の実施形態のリード要求受付処理のフローチャートを示す図である。リード要求受付処理は、CA13,14がホスト11からリード要求を受け付けて実行する処理である。以下、CA13がリード要求受付処理を実行する場合について説明するが、CA14についても同様である。
[ステップS31]CM17は、HDD25のユーザデータ領域252から読出対象データを読み出して、キャッシュメモリ19のユーザデータ領域192に書き込む(ステージング)。また、CM17は、HDD25のメタ領域251から読出対象データのBCCを読み出して、キャッシュメモリ19のBCC領域191に書き込む。
[ステップS32]CA13は、キャッシュメモリ19のユーザデータ領域192から読出対象データを読み出して、データブロックごとのBCCを生成する。
[ステップS33]CA13は、キャッシュメモリ19のBCC領域191からBCCを読み出す。
[ステップS34]CA13は、ステップS32で生成したBCCと、ステップS33で読み出したBCCとが一致するか否かを判定する。CA13は、生成したBCCと読み出したBCCとが一致する場合にステップS35にすすみ、一致しない場合にステップS36にすすむ。
[ステップS35]CA13は、ホストにリード応答を送信して、リード要求受付処理を終了する。
[ステップS36]CA13は、ホストにエラー応答を送信して、リード要求受付処理を終了する。
このように、ストレージサーバ10は、HDD25のユーザデータ領域252におけるブロックライト失敗を検出できる。したがって、ストレージサーバ10は、データ書込失敗の検出精度を向上することができる。
再び、ブロックライト失敗の比較例について図12を用いて説明する。図12は、ブロックライト失敗の比較例を示す図である(その2)。
ストレージサーバ10は、ホストから、DATA1、DATA2、DATA3、およびDATA4を読出対象データとするリード要求を受け付ける。このとき、HDDは、LBA#2のブロックライト失敗により、LBA#1にDATA1とBCC1を記憶し、LBA#2にDATA02とBCC02を記憶し、LBA#3にDATA3とBCC3を記憶し、LBA#4にDATA4とBCC4を記憶する。
ストレージサーバは、HDDからDATA1とBCC1、DATA02とBCC02、DATA3とBCC3、およびパディングされたDATA4とBCC4をキャッシュメモリに読み出す。
このような、ストレージサーバは、キャッシュメモリが記憶するDATA02から生成するBCC02と、キャッシュメモリが記憶するBCC02とが一致する。すなわち、ストレージサーバは、HDDのブロックライト失敗を検出できない。
そのため、ストレージサーバは、キャッシュメモリから読み出したDATA1、DATA02、DATA3、およびDATA4をホストに応答する。ホストは、DATA2がDATA02に置き換わっていることにより、データ化けを検出することとなる。
一方、第2の実施形態のストレージサーバ10は、図11を用いて説明したように、HDD25のユーザデータ領域252におけるブロックライト失敗を、リード要求応答時においても検出できることから、データ書込失敗の検出精度が比較例と比較して高い。また、ストレージサーバ10は、データ化けに対応するホストの処理負荷を軽減することができる。
[第3の実施形態]
次に、第3の実施形態のストレージ制御装置について図13を用いて説明する。図13は、第3の実施形態のストレージ制御装置の構成の一例を示す図である。
ノード#1、ノード#2、・・・、ノード#8は、それぞれがストレージ制御装置の1形態であり、複数のノードで全体として性能向上を図るスケールアウトストレージを実現する。なお、各ノードは、第2の実施形態のストレージサーバ10と同様のハードウェア構成である。
各ノードは、それぞれキャッシュメモリと1または2以上のHDDを備える。ノード#1は、キャッシュメモリ50とHDD54,55,56を備える。ノード#2は、図示しないキャッシュメモリとHDD60,61,62を備える。ノード#8は、図示しないキャッシュメモリとHDD70,71,72を備える。なお、各ノードは、図示しないCAがホストインタフェース制御部として機能し、CAを介してホストと接続する。また、各ノードは、図示しないCMが接続制御部として機能し、CMを介してノード同士を接続する。
ノード#1は、キャッシュメモリ50に、メタ情報領域51と、BCC領域52と、ユーザデータ領域53とを備える点で、第2の実施形態のストレージサーバ10と異なる。
メタ情報領域51は、HDDがメタ領域に記憶するメタ情報を記憶する領域である。ユーザデータ領域53は、ユーザデータをデータブロックごとに記憶する領域である。BCC領域52は、ユーザデータ領域53が記憶するユーザデータのデータブロックごとのBCCを記憶する領域である。
また、ノード#1は、HDD54のメタ領域にメタ情報を記憶し、ノード#1からノード#8は、データとBCCを分散してHDDに記憶する。メタ情報は、データ位置情報(書込対象データ格納先情報)と、BCC位置情報(誤り検出情報格納先情報)を含む。データ位置情報は、データの記憶位置を示し、たとえば、データ1がノード#1のHDD55の所定アドレスに記憶されていることを示す。BCC位置情報は、BCCの記憶位置を示し、たとえば、データ1からデータ8に対応するそれぞれのBCCがノード#2のHDD60の所定アドレスに記憶されていることを示す。
次に、第3の実施形態のライト要求受付処理について図14を用いて説明する。図14は、第3の実施形態のライト要求受付処理のフローチャートを示す図である。ライト要求受付処理は、ノードがホストからライト要求を受け付けて実行する処理である。以下、図13に示すノード#1がライト要求受付処理を実行する場合について説明するが、ノード#2からノード#7についても同様である。
[ステップS41]ノード#1は、ホストから書込対象データを受信する。
[ステップS42]ノード#1は、HDD54からメタ情報を読み出して、キャッシュメモリ50のメタ情報領域51に書き込む。これにより、ノード#1は、メタ情報領域51に、データ位置情報とBCC位置情報とを記憶する。
[ステップS43]ノード#1は、キャッシュメモリ50のユーザデータ領域53に、ホストから受信した書込対象データを書き込む。これにより、ノード#1は、ユーザデータ領域53に書込対象データ(データ1、データ2、・・・、データ8)を記憶する。
[ステップS44]ノード#1は、書込対象データ(データ1、データ2、・・・、データ8)からデータブロックごとのBCCを生成する。
[ステップS45]ノード#1は、キャッシュメモリ50のBCC領域52に、生成したBCCを書き込む。
[ステップS46]ノード#1は、ライト要求に対する確認応答をホストに送信する。
[ステップS47]ノード#1は、メタ情報のうちのデータアドレス(データ位置情報)を取得する。
[ステップS48]ノード#1は、データアドレスから特定される担当ノードにデータを送信する。たとえば、ノード#1は、ノード#2にデータ2を送信し、ノード#8にデータ8を送信する。データを受信した担当ノードは、データアドレスから特定されるHDDの所定アドレスにデータを書き込む。なお、ノード#1は、データ1の担当ノードであるので、ノード#1がHDD55にデータ1を書き込む。
[ステップS49]ノード#1は、メタ情報のうちのBCCアドレス(BCC位置情報)を取得する。
[ステップS50]ノード#1は、BCCアドレスから特定される担当ノードにBCCを送信する。たとえば、ノード#1は、ノード#2にBCCを送信する。BCCを受信した担当ノードは、BCCアドレスから特定されるHDDの所定アドレスにデータを書き込む。ノード#1は、担当ノードにBCCを送信した後、ライト要求受付処理を終了する。
このように、ノードは、ホストからライト要求を受け付けても、HDDのメタ領域について書き換えをおこなわない。したがって、ノードは、HDDからキャッシュメモリに読み出したメタ情報をメタ領域に書き戻すことを要しない。これにより、ノードは、メタ情報をメタ領域に書き戻すディスクアクセスを削減する。このようなノードは、データ書込失敗の検出精度を向上することができる他、ディスクアクセス性能の向上を図ることができる。
なお、プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 ストレージ制御装置
2 誤り検出情報格納部
3 データ格納部
4 検出部
5 記憶装置
6 第1の記憶領域
7 第2の記憶領域
10 ストレージサーバ
11,12 ホスト
13,14 CA
15,16,23,24 スイッチ
17,18 CM
19,20,50 キャッシュメモリ
21,22 DA
25,26,54,55,56,60,61,62,70,71,72 HDD
101 プロセッサ
102 RAM
103 不揮発性メモリ
104 入出力インタフェース
105 機器接続インタフェース
106 通信インタフェース
107 DMA
109 バス

Claims (6)

  1. 書込対象データについてアクセス単位となるデータブロックごとに誤り検出情報を生成し、ディスクドライブ装置のメタ情報を格納する第1の記憶領域に前記誤り検出情報を格納
    前記ディスクドライブ装置のユーザデータを格納するユーザデータ記憶領域である第2の記憶領域に前記書込対象データを格納
    前記第1の記憶領域から読み出した前記誤り検出情報と、前記第2の記憶領域から読み出した前記書込対象データとから前記データブロックごとの誤り検出をおこなう制御部を備えることを特徴とするストレージ制御装置。
  2. 前記書込対象データは、キャッシュメモリに記憶されていることを特徴とする請求項記載のストレージ制御装置。
  3. 前記キャッシュメモリは、前記誤り検出情報を格納するキャッシュメモリ誤り検出情報格納部と、前記キャッシュメモリの前記誤り検出情報を格納する記憶領域と異なる書込対象データ記憶領域に前記書込対象データを格納するキャッシュメモリデータ格納部と、
    を備えることを特徴とする請求項記載のストレージ制御装置。
  4. 前記制御部は、
    前記誤り検出情報の格納先である誤り検出情報格納先情報と、前記書込対象データの格納先である書込対象データ格納先情報とを、前記第1の記憶領域および前記第2の記憶領域と異なる第3の記憶領域に格納
    記誤り検出情報格納先情報にもとづいて前記第1の記憶領域に前記誤り検出情報を格納し、
    記書込対象データ格納先情報にもとづいて前記第2の記憶領域に前記書込対象データを格納する、
    ことを特徴とする請求項1記載のストレージ制御装置。
  5. ンピュータに、
    書込対象データについてアクセス単位となるデータブロックごとに誤り検出情報を生成し、ディスクドライブ装置メタ情報を格納する第1の記憶領域に前記誤り検出情報を格納し、
    前記ディスクドライブ装置のユーザデータを格納するユーザデータ記憶領域である第2の記憶領域に前記書込対象データを格納し、
    前記第1の記憶領域から読み出した前記誤り検出情報と、前記第2の記憶領域から読み出した前記書込対象データとから前記データブロックごとの誤り検出をおこなう、
    処理を実行させることを特徴とする制御プログラム。
  6. ンピュータが、
    書込対象データについてアクセス単位となるデータブロックごとに誤り検出情報を生成し、ディスクドライブ装置メタ情報を格納する第1の記憶領域に前記誤り検出情報を格納し、
    前記ディスクドライブ装置のユーザデータを格納するユーザデータ記憶領域である第2の記憶領域に前記書込対象データを格納し、
    前記第1の記憶領域から読み出した前記誤り検出情報と、前記第2の記憶領域から読み出した前記書込対象データとから前記データブロックごとの誤り検出をおこなう、
    処理を実行することを特徴とする制御方法。
JP2014067626A 2014-03-28 2014-03-28 ストレージ制御装置、制御プログラム、および制御方法 Active JP6318769B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014067626A JP6318769B2 (ja) 2014-03-28 2014-03-28 ストレージ制御装置、制御プログラム、および制御方法
US14/645,461 US9639417B2 (en) 2014-03-28 2015-03-12 Storage control apparatus and control method
EP15158995.9A EP2924576A1 (en) 2014-03-28 2015-03-13 Storage control apparatus, control program, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014067626A JP6318769B2 (ja) 2014-03-28 2014-03-28 ストレージ制御装置、制御プログラム、および制御方法

Publications (2)

Publication Number Publication Date
JP2015191407A JP2015191407A (ja) 2015-11-02
JP6318769B2 true JP6318769B2 (ja) 2018-05-09

Family

ID=52692465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014067626A Active JP6318769B2 (ja) 2014-03-28 2014-03-28 ストレージ制御装置、制御プログラム、および制御方法

Country Status (3)

Country Link
US (1) US9639417B2 (ja)
EP (1) EP2924576A1 (ja)
JP (1) JP6318769B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112858712B (zh) * 2019-11-28 2024-04-05 深圳市帝迈生物技术有限公司 试剂信息的导入方法、样本检测设备以及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3923563B2 (ja) * 1996-05-20 2007-06-06 株式会社東芝 ディスクキャッシュシステム及びディスクキャッシュ方法
US6216247B1 (en) 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
JP2000089992A (ja) * 1998-09-11 2000-03-31 Fujitsu Ltd 記憶装置
US20030023933A1 (en) * 2001-07-27 2003-01-30 Sun Microsystems, Inc. End-to-end disk data checksumming
JP3892832B2 (ja) 2003-08-11 2007-03-14 株式会社東芝 半導体記憶装置
US20050066230A1 (en) * 2003-09-23 2005-03-24 Bean Robert George Data reliabilty bit storage qualifier and logical unit metadata
JP2006107311A (ja) * 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法
US7676730B2 (en) 2005-09-30 2010-03-09 Quantum Corporation Method and apparatus for implementing error correction coding in a random access memory
KR100644223B1 (ko) 2005-12-06 2006-11-10 삼성전자주식회사 리프레쉬 전류소모를 최소화하는 반도체 메모리 장치 및이에 대한 구동방법
US20070268905A1 (en) * 2006-05-18 2007-11-22 Sigmatel, Inc. Non-volatile memory error correction system and method
CN101685381B (zh) * 2008-09-26 2013-07-24 美光科技公司 固态大容量存储装置的数据串流
KR20120052251A (ko) 2009-08-25 2012-05-23 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 에러 정정
US9003270B2 (en) 2012-06-04 2015-04-07 Marvell World Trade Ltd. Methods and apparatus for temporarily storing parity information for data stored in a storage device

Also Published As

Publication number Publication date
JP2015191407A (ja) 2015-11-02
EP2924576A1 (en) 2015-09-30
US9639417B2 (en) 2017-05-02
US20150278009A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
US9542272B2 (en) Write redirection in redundant array of independent disks systems
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
JP4634157B2 (ja) ストレージシステム
US9104334B2 (en) Performance improvements in input/output operations between a host system and an adapter-coupled cache
CN101571815B (zh) 信息***及i/o处理方法
US10120769B2 (en) Raid rebuild algorithm with low I/O impact
US7966471B2 (en) Storage controller and method for control of a data storage device
JP3682256B2 (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
WO2013160972A1 (en) Storage system and storage apparatus
US20050229033A1 (en) Disk array controller and information processing apparatus
US20060236149A1 (en) System and method for rebuilding a storage disk
US9842024B1 (en) Flash electronic disk with RAID controller
US20060190682A1 (en) Storage system, method for processing, and program
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP2012198639A (ja) 制御装置、制御方法およびストレージ装置
CN109313593B (zh) 存储***
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
US8949528B2 (en) Writing of data of a first block size in a raid array that stores and mirrors data in a second block size
US8418029B2 (en) Storage control device and storage control method
US7921265B2 (en) Data access method, channel adapter, and data access control device
US20180307427A1 (en) Storage control apparatus and storage control method
JP2005107838A (ja) ディスクアレイコントローラ及びログ情報記録方法
US7293193B2 (en) Array controller for disk array, and method for rebuilding disk array
JP6318769B2 (ja) ストレージ制御装置、制御プログラム、および制御方法
JP4544901B2 (ja) 記憶制御システム及びブート制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171130

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: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6318769

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150