JP2017199043A - ストレージ装置とシステム及び方法とプログラム - Google Patents

ストレージ装置とシステム及び方法とプログラム Download PDF

Info

Publication number
JP2017199043A
JP2017199043A JP2014151668A JP2014151668A JP2017199043A JP 2017199043 A JP2017199043 A JP 2017199043A JP 2014151668 A JP2014151668 A JP 2014151668A JP 2014151668 A JP2014151668 A JP 2014151668A JP 2017199043 A JP2017199043 A JP 2017199043A
Authority
JP
Japan
Prior art keywords
storage medium
write
access
storage
chunk
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
JP2014151668A
Other languages
English (en)
Inventor
周吾 小川
Shugo Ogawa
周吾 小川
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014151668A priority Critical patent/JP2017199043A/ja
Priority to PCT/JP2015/003631 priority patent/WO2016013202A1/ja
Publication of JP2017199043A publication Critical patent/JP2017199043A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】応答の遅延、停止が発生した記憶媒体に対するアクセスを回避可能とし、冗長アレイ構成のストレージのアクセス性能の低下を回避可能とする。
【解決手段】複数の記憶媒体と、各記憶媒体に対する書き込みデータ量を計測する書き込み量計測部と、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延、又は前記各記憶媒体の停止状態を監視する記憶媒体監視部と、ストライピングの単位であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する構成変更手段と、新たにアクセス対象となったチャンクに対してアクセス要求を発行するアクセス制御手段を備える。
【選択図】図12

Description

本発明は、ストレージ装置とシステム及び方法とプログラムに関する。
<RAID>
複数の記憶媒体を用いて仮想的に単一の記憶領域を提供し冗長性を持たせ信頼性を向上する技術として、RAID(Redundant Array of Inexpensive Disks)が広く用いられている。記憶媒体間の冗長構成の実現に関して、複数のRAIDレベルが存在する。例えばRAID10、RAID5、RAID6等では、通常、各記憶媒体の記憶領域を、チャンク(chunk)と呼ばれる、予め定められた一定サイズ(チャンクサイズ(chunk size)又はストライプサイズ(stripe size))の領域で区切る。チャンクはストランピング(データを複数の前記記憶媒体に分割して転送する)の単位となる。仮想的なアドレス空間に異なる記憶媒体のチャンクを順番に割り当てるストライピングを行うことで、複数記憶媒体の並列動作による性能向上と、複数記憶媒体の容量を合わせた記憶領域を実現する。4台の記憶媒体で構成されるRAID5では、データは一定サイズのチャンク単位に分割され、例えばチャンク1〜3は記憶媒体1〜3に格納され、チャンク1〜3のパリティは記憶媒体4に格納される。チャンク1〜3(パリティのチャンクを含ませる場合、チャンク1〜4)を「RAIDストライプ」と呼ぶ。チャンクとパリティの順序はストライプごとに変更され、例えば、次のストライプでは、チャンク4〜6は記憶媒体2〜4に格納され、チャンク4〜6のパリティは記憶媒体1に格納される。また、RAID0を除き、記憶媒体間のデータにミラー、パリティ等の冗長性を持たせることで、記憶媒体の障害等によるデータ消失を防止して、信頼性を向上させている。
RAIDは、記憶媒体であるHDD(Hard Disk Drive)の性能、容量、信頼性を伸ばすために用いられているが、近年では、RAIDの記憶媒体として、NANDフラッシュメモリを用いたSSD(Solid State Drive)も用いられつつある。SSDについてその概略を以下に説明する。
<SSD>
HDDと同様のインタフェースを備えたSSDに対して、アクセス元となるホストは、HDDと同様に、読み出し(Read)及び書き込み(Write)アクセスが可能である。しかしながら、よく知られているように、NANDフラッシュメモリは、HDDとは異なる特性を有する。例えばNANDフラッシュメモリは、各領域に対する格納データの更新回数増加に従ってビットエラーの発生率が上昇する。そのため、NANDフラッシュメモリが正しくデータを保持可能な条件下における、格納データの更新回数に制限を持つ。
SSDでは、NANDフラッシュメモリにおける格納データの更新回数(書き換え回数)の増加に伴うエラー発生を防ぐため(SSDの寿命を延ばす)に、各記憶領域に対する更新回数(データ書換回数)を各記憶領域(記憶デバイス)間で均一化する「ウェアレベリング(wear levelling / wear leveling)」と呼ばれる技術が用いられる。SSDで用いられるNANDフラッシュメモリの各記憶領域における更新回数は、SSDに対するWriteの総量で表される。つまり、SSDに対するWriteの総量がSSDの寿命を決定する。
また、SSDは大容量化が進む一方で、その寿命は短くなりつつある。短寿命化は、記憶デバイスであるNANDフラッシュメモリの更新回数制限の減少による。NANDフラッシュメモリは、近年、製造プロセスの微細化、及び、メモリセルに格納される情報量の多値化によって、大容量化が実現されているが、更新可能な回数は減少している。例えば、メモリセルに格納されるビットを多値化したMLC(Multi Level Cell)又はTLC(Triple Level Cell)等のNANDフラッシュメモリは、大容量化、低コスト化を実現しているが、更新可能な回数の制限が特に少ない。したがって、SSDの寿命に直結するWrite可能な総データ量も減少する。つまり、SSDに対するデータの更新頻度、更新量の削減は、寿命の観点から、特に重要性を増している。
<SSDのアクセス特性>
更に、SSDでは、HDDと同様のアクセス手段を提供するために、NANDフラッシュメモリのアクセス特性を隠蔽するための様々な処理が行われる。例えば、NANDフラッシュメモリでは、格納されたデータを更新する場合、一度格納されたデータを消去する消去(Erase)操作が必要である。NANDフラッシュメモリにおいて、読み出し及び書き込みは、該読み出し及び書き込みアクセスの単位であるページ単位に行われ、消去(Erase)は、ページを複数まとめたブロック単位となる。NANDフラッシュメモリにおいて、あるページに格納されたデータを更新する場合、一括消去の対象となるブロックに含まれる有効なページに対するデータの退避、及び、再格納が、SSDによって行われる。NANDフラッシュメモリにおいて、ブロックの消去に伴うデータ退避、及び、再格納のページ数は、SSDに対する、書き込み先のアドレス、及び、アクセスサイズによって変化する。具体的には、書き込みアクセスのサイズが小さくなるほど、NANDフラッシュメモリのブロックにおける更新対象外のページが増加して、当該ブロックの消去に伴い退避が必要とされるページ数が増加する。
また、SSD内部におけるNANDフラッシュメモリの記憶領域に関する使用状況、SSDに対するアクセスの状況等の条件で、消去(Erase)に伴うページの退避、再格納の処理負荷は、増減する。そのため、SSDに対するアクセス要求の状況から、SSDの内部における負荷の状況を正確に把握することは、困難である。SSD内部の負荷の把握が困難であることは、SSDが意図しない状況で高負荷となり、結果として、一時的に応答の遅延、若しくは停止が発生することを意味する。
SSDにおけるアクセスの応答遅延は、情報処理システムの性能低下に加えて、システム全体の動作におけるタイムアウトの形で障害として影響を与える可能性が存在する。
RAIDを構成するSSDにおいて、応答の遅延、若しくは停止が発生した場合、応答遅延又は停止状態のSSDに対する読み出し(Read)、又は書き込み(Write)が行われると、アクセス要求元に対して応答の遅延、停止が顕在化する。
つまり、RAIDを構成する各SSDの応答遅延、停止は、RAIDグループ全体の応答遅延、停止に結び付くことになる。
RAIDグループ全体の応答遅延、停止を回避するためには、応答の遅延、停止が発生したSSDに対するアクセスを避けることが必要である。
<特許文献1>
記憶媒体にSSDを用いたRAID構成として、例えば特許文献1には、複数のストレージデバイスのうちの、読み込み要求が対象とするデータを含む少なくとも第1のストレージデバイスを識別し、第1のストレージデバイスが相対的に長い応答レイテンシ又は相対的に低いスループットの少なくとも一方を含む可変パフォーマンスを示すであろうことを検出又は予測したことに応答して、前記複数のストレージデバイスのうちの前記第1のストレージデバイス以外の1又はそれ以上のデバイスから、前記データを取得するように構成された再構成読み込み要求を生成するように構成されたコンピュータシステムが開示されている。特許文献1では、応答遅延が発生したSSDのデータを、代わりにRAIDグループ内の他のSSDに格納されている、冗長関係にあるデータを読み出すことで、応答の遅延を回避している。
<特許文献2>
また特許文献2には、SSDでRAIDを構成する場合、SSDにおけるウェアレベリングによる書き込み/消去回数の平滑化が行われるとともに、RAID機能による負荷分散によって、各SSDへの書き込み回数が均一化される可能性が高くなり、複数のSSDが同時期に故障する可能性が高くなってしまい、交換保守作業が難しくなるため、データ損失の危険性が生じるという問題に対して、複数の不揮発性の半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、各半導体記憶装置に対してデータと共に誤り訂正符号データをストライプブロック単位で分散させて記録するデータ破損の復元機能にかかるデータおよび誤り訂正符号データの配置情報を記録したマッピング表で管理されているストライプブロックのデータを入れ替えて配置情報を変更する。これにより、各半導体記憶装置に対するデータの書き込み頻度に差がつき、複数の半導体記憶装置が同時期に故障してしまうことを回避させることができるので、データ損失の危険性を低減させるようにした構成が開示されている。
<特許文献3>
なお、HDDのRAIDに関して、特許文献3には、RAID5レベルのディスクアレイのごとく、データの書き込み時にパリティの読み出しを要求するタイプのディスクアレイにおいて、書き込み要求あるいは読み出し要求の実行を高速にするような、ディスクアレイ内の記憶領域の割り当て方法として、論理的に連続する複数ブロックのデータに対して論理ブロックおよびその論理ブロックのパリティを格納するドライブが全て異なるように制御する構成が開示されている。
<特許文献4>
特許文献4には、階層レベルを含む階層構成ルールが変更された場合に、コントローラは、ストレージボリュームの階層の階層構成を変更し、プールが、有効であった階層構成ルールを満たさない場合に生じる、物理ストレージデバイスに対する階層レベルの変化に基づいて、コントローラは、プールを複数の仮想ボリュームに割り当てる構成が開示されている。
<特許文献5>
なお、RAID構成ではないが、メモリの負荷に応じて格納先のメモリを変更する関連技術として、例えば特許文献5には、複数のノードの各々は、高負荷状態と判定された第1メモリの一部のデータを、他のノードの第2メモリに移動し、第1メモリと第2メモリとでインタリーブを行うメモリ制御部を備えた構成が開示されている。
特表2013−541765号公報 特開2010−15516号公報 特開平8−185275号公報 特開2011−65624号公報 特開2009−237709号公報
以下に関連技術の分析を与える。
上記したように、RAIDのHDDをSSDで置き換える場合、SSDのHDDとは異なる特性を考慮する必要がある。例えばSSDの寿命は、接続元ホストからのWrite総量に依存する。このため、Write量が限界に近づいたSSDは、データ損失を防ぐために、交換が必要である。SSDの交換は新たなコストの発生につながる。よって、可能な限り、SSDの交換の発生頻度を減らすことが望ましい。つまり、SSDのWriteデータ量を削減することが望まれる。
また、複数のSSDを使用する環境において、各SSDのWriteデータ量を削減するには、SSDに対するWriteデータ量を、直接減らすだけでなく、各SSDに対するWriteデータ量を均一にすることで、特定のSSDが早く寿命を迎えないようにすることが望まれる。
しかしながら、RAIDを構成するSSDでは、各SSDに対するWriteデータ量の均一化は困難である。その理由として、一般的なRAIDでは、提供するアドレス空間に対する、各SSDの記憶領域のマッピングが固定であることが挙げられる。つまり、RAIDの提供するアドレス空間に対する各Writeデータの格納先は、Write先のアドレス(Writeアクセス対象のアドレス)によって一意に決定される。このため、RAIDを構成するSSD間において、Writeデータ量の偏りを解消するための、Writeデータ量の調整は困難である。
また、記憶媒体間で冗長性を持つRAID5、RAID6等のRAIDレベルを用いる場合には、各記憶媒体のチャンクを組み合わせてパリティを形成するため、データの格納先となる記憶媒体、アドレスを自由に選択することは困難である。
さらに、SSDは、HDDとは異なり、外部から負荷を予測することが困難である。このため、外部からのアクセス要求の負荷が低い状況であっても、一時的に応答の遅延、停止が発生し得る。RAIDを構成するSSDにおいて、応答の遅延、若しくは停止が発生した場合、応答遅延又は停止状態のSSDに対するRead又はWriteが行われると、アクセス要求元に対して、応答の遅延、停止が顕在化する。
RAIDグループ全体の応答遅延、停止を回避するためには、応答の遅延、停止が発生したSSDに対するアクセスを避けることが必要である。
特許文献1によれば、RAIDグループに対するReadアクセスは、応答遅延が発生したSSDのデータを、代わりに、RAIDグループ内の他のSSDに格納された冗長関係にあるデータを読み出すことで、応答遅延等を回避することは可能であるが、特定のSSDに対するWriteアクセスを回避することは困難である。これは、一般的なRAIDでは、
・各SSDに対する記憶領域のマッピングが固定であること、
・固定されたチャンクの集合でパリティを形成すること、による。
また、特許文献2では、RAIDストライプと呼ばれる、複数記憶媒体間でパリティを構成するチャンクの集合において、複数のフラッシュメモリで構成された記憶媒体が同時に寿命を迎えないように、チャンクのマッピングを記憶媒体間で入れ替えることで、各記憶媒体のWriteデータ量を調整している。しかし、データ格納先の変更は、RAIDストライプ内に限定されており、記憶媒体間で、チャンクのマッピングを交換するものである。このため、応答が停止したSSDと他のSSDとの間でデータを入れ替えた場合に、停止したSSDに対するアクセスを避けることは不可能である。
また、特許文献3には、RAIDストライプを動的に形成する方法が開示されている。RAIDストライプを構成するチャンクを動的に選択する際に、先に選んだチャンクが格納された記憶媒体のいずれとも衝突しないように選択することで、冗長性を持ったRAIDストライプの動的な形成を実現する。しかしながら、特許文献3には、構成済みのRAIDストライプに対して、使用する記憶媒体側の状態に基づき、該RAIDストライプを再構成する、ことについて何も記載されていない。
上記特許文献等では、RAIDグループを構成するSSDにおいて発生する、Writeデータ量に依存する寿命、及び、一時的な応答遅延又は停止の問題を同時に解決することはできない。
本発明は、上記課題に鑑みて創案されたものであって、その目的は、応答の遅延、停止が発生した記憶媒体に対するアクセスを回避可能とし、アクセス性能の低下を抑制可能とする装置、システム、方法、プログラムを提供することにある。
本発明の1つの側面によれば、複数の記憶媒体と、前記各記憶媒体に対する書き込みデータ量を計測する書き込み量計測部と、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する記憶媒体監視部と、データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する構成変更手段と、新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行するアクセス制御手段と、を備えたストレージ装置が提供される。
本発明によれば、上記ストレージ装置と、ホストを備えたコンピュータシステムが提供される。
本発明の他の側面によれば、複数の記憶媒体の各々に対する書き込みデータ量を計測し、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視し、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更し、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する、ストレージ制御方法が提供される。
本発明の他の側面によれば、複数の記憶媒体の各々に対する書き込みデータ量を計測する処理と、
前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する処理と、
データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する処理と、
新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する処理と、をコンピュータに実行させるプログラムが提供される。
本発明によれば、該プログラムを記録したコンピュータ読み出し可能な記録媒体(半導体メモリ、磁/光ディスク等)が提供される。
本発明によれば、応答の遅延、停止が発生した記憶媒体に対するアクセスを回避可能とし、冗長アレイ構成のストレージのアクセス性能の低下を回避可能としている。
本発明の一実施形態のシステム構成の一例を例示する図である。 発明の一実施形態のストレージの構成を例示する図である。 本発明の一実施形態におけるアクセス要求テーブルを例示する図である。 本発明の一実施形態におけるアクセステーブルを例示する図である。 本発明の一実施形態におけるRAID管理テーブルを例示する図である。 本発明の一実施形態の動作を説明するフローチャートである。 本発明の一実施形態の動作を説明するフローチャートである。 本発明の一実施形態の動作を説明するフローチャートである。 本発明の一実施形態におけるストレージの記憶媒体の構成を例示する図である。 本発明の一実施形態におけるRAID管理テーブルを例示する図である。 本発明の一実施形態における各記憶媒体のWriteデータ量を例示する図である。 本発明の基本概念を説明する図である。
本発明の基本概念を説明し、つづいて実施形態について説明する。図12を参照すると、本発明に係るストレージ装置は、その一つの形態において、複数の記憶媒体(21)と、前記各記憶媒体(21)に対する書き込みデータ量を計測するWrite量(書き込み量)計測部(26)と、前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する記憶媒体監視部(27)と、ストライピング(データを複数の記憶媒体に分割して並列転送する)の単位である記憶領域(チャンク)について、書き込みアクセス対象の前記チャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体がデータ書き込み先として不適であり、変更が必要であると判断した場合、別の記憶媒体(書き込みデータ量の条件、負荷状態、応答の遅延又は停止のいずれにも該当せず、データ書き込み先としてより適切な別の記憶媒体)を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更(したがって書き込みアクセス先のストライプのチャンク構成を変更)する構成変更手段(30)と、新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行するアクセス制御手段(31)と、を備えている。
なお、本発明の一形態において、Write量計測部(26)、記憶媒体監視部(27)、構成変更手段(30)、アクセス制御手段(31)は、例えばストレージ装置(2)を構成するコンピュータ上で実行されるプログラムによりその機能、処理を実現するようにしてもよい。Write量計測部(26)、記憶媒体監視部(27)、構成変更手段(30)、アクセス制御手段(31)は、RAIDコントローラあるいはRAIDサーバに実装してもよい。
本発明の一形態において、構成変更手段(30)は、後述する図2の記憶媒体アクセス部(23)、RAID構成変更部(28)、チャンク割当部(24)、RAID管理部(25)で構成してもよい。
また、本発明の一形態において、アクセス制御手段(31)は、図2のアクセス実行部(22)とアクセス再発行部(29)で構成してもよい。
本発明によれば、記憶媒体の応答遅延や応答停止等による影響を回避し、複数の記憶媒体に対する書き込みデータ量を調整することで、統合された仮想的な記憶領域を形成する。例えばRAID等による記憶媒体間のデータ冗長化を実現しつつ、各記憶媒体のWriteデータ量の調整、及び記憶媒体の一時的な応答遅延、又は応答停止の影響を受けずに、複数記憶媒体からなる記憶領域を構成可能としている。
前述したように、RAIDを構成する記憶媒体(例えばSSD)において、応答の遅延、又は停止が発生した場合、応答遅延又は停止状態の記憶媒体に対するRead、又はWriteが行われると、アクセス要求元に対して応答の遅延、停止が顕在化する。各記憶媒体の応答遅延、停止がRAIDグループ全体の応答遅延、停止に結び付く。
RAIDグループ全体の応答遅延、停止を回避するためには、応答の遅延、停止が発生した記憶媒体に対するアクセスを避けることが必要である。
そこで、本発明によれば、データの格納先となる記憶媒体(例えばSSD)及びアドレスを、データ格納時点の各記憶媒体(例えばSSD)に対するWriteデータ量、及び、記憶媒体の応答遅延、停止状態に応じて、RAIDストライプの構成を、動的に変更する手段を提供する。
本発明によれば、複数記憶媒体間のデータ冗長化を実現しつつ、各記憶媒体のWriteデータ量の調整、及び記憶媒体の一時的な応答遅延、又は応答停止の影響を受けずに記憶領域を構成する。
一実施形態によれば、ホストからのアクセス要求を記憶媒体(図2の21)に対するアクセスに変換してアクセス処理の実行を管理するアクセス実行部(図2の22)と、
各記憶媒体に対してアクセス要求を行う記憶媒体アクセス部(図2の23)と、
各記憶媒体から記憶領域の割り当てを行うチャンク割当部(図2の24)と、
RAIDストライプの構成を管理するRAID管理部(図2の25)と、
各記憶媒体に対するWriteデータ量を計測するWrite量計測部(図2の26)と、
各記憶媒体の負荷状態、及び応答遅延又は停止状態を監視する記憶媒体監視部(図2の27)と、
Writeアクセス要求を発行する前に、Write先の記憶媒体のWriteデータ量、又は記憶媒体の状態に応じてRAIDストライプの構成を変更するRAID構成変更部(図2の28)と、
RAIDストライプの構成変更によって新たにアクセス対象となったチャンクに対してアクセス要求を発行するアクセス再発行部(図2の29)を備える。
アクセス実行部(図2の22)は、ホストからのアクセス要求を各記憶媒体(図2の21)に対応するRead又はWriteアクセスに変換する。また、Writeアクセスの場合は、同時に、パリティ等の冗長データを更新するために、記憶媒体に対して必要なアクセスを生成する。更に、変換又は生成されたアクセスの実行状況を管理して、アクセス要求に関する処理の実行完了の応答を、ホストに対して行う。
記憶媒体アクセス部(図2の23)は、アクセス実行部(図2の22)によって変換又は生成されたアクセス要求を記憶媒体に対して発行し、結果をアクセス実行部(図2の22)に応答として返す。
チャンク割当部(図2の24)は、各記憶媒体の記憶領域を一定のチャンク単位に分割して、各チャンクの使用状況を管理する。また、チャンク割当部(図2の24)は、RAIDストライプの構成変更に伴うチャンクの割り当て要求に対して、指定された記憶媒体の未使用のチャンクを割り当てる。
RAID管理部(図2の25)は、各RAIDストライプを構成するチャンクの組み合わせ、及び記憶領域全体のアドレス空間に対するチャンクのマッピングを管理する。
Write量計測部(図2の26)は、各記憶媒体に対して実際に発行されたWriteアクセス要求の情報を参照して、記憶媒体毎のWriteデータ量を計測する。
記憶媒体監視部(図2の27)は、記憶媒体アクセス部(図2の23)を通して、各記憶媒体に対する発行待ち、あるいは、発行中のアクセス要求から、負荷を算出し、高負荷状態(算出された負荷が所定の閾値以上)の記憶媒体を検出する。また、記憶媒体監視部(図2の27)は、各記憶媒体のアクセスに対する応答状況を監視して応答遅延、あるいは停止状態の記憶媒体を検出する。
RAID構成変更部(図2の28)は、記憶媒体アクセス部(図2の23)によって各記憶媒体にWriteアクセス要求を発行するにあたり、例えば、発行の直前に、Write先(Writeアクセス対象のアドレス)の記憶媒体のWriteデータ量と、アクセス負荷、応答遅延、あるいは、停止の有無を確認する。Write先の記憶媒体について、他の記憶媒体とのWriteデータ量の差が事前に決定された条件を満たすか、又は、Write先の記憶媒体について、高負荷、応答遅延、応答停止のいずれかの条件を満たした場合は、Writeアクセス要求先となるRAIDストライプについて、Write先の記憶媒体が、前記条件を満たさない他の記憶媒体となるように、チャンクの構成を変更する。
アクセス再発行部(図2の29)は、Write先の記憶媒体において、他の記憶媒体とのWriteデータ量の差が事前に決定された条件を満たすか、又は、Write先の記憶媒体について高負荷、応答遅延、応答停止のいずれかの条件を満たしている場合には、
・記憶媒体アクセス部(図2の23)に対して、Write先の記憶媒体へのWriteアクセス要求のキャンセルを指示し、
・アクセス実行部(図2の22)に対して、割り当てを変更したチャンクに対するアクセス要求の再発行を指示する。
本発明によれば、RAIDによる記憶媒体間のデータ冗長化を実現しつつ、各記憶媒体のWriteデータ量の調整、及び記憶媒体の一時的な応答遅延、又は応答停止の影響を受けずに、複数の記憶媒体からなる記憶領域の構成を実現することができる。以下、実施形態の詳細について図面を参照して説明する。
<システム構成例>
図1は、本発明の一実施形態の構成を例示する図である。図1を参照すると、本発明の一実施形態においてシステム全体の構成はデータにアクセスする1台以上のホスト1、1つ又は複数の記憶媒体から構成されるストレージ2、ホスト1とストレージ2を接続するネットワーク3を含む。ネットワーク3は、ストレージ2に対して複数のホスト1が接続可能な形態であってもよい。あるいは、ホスト1とストレージ2がネットワーク3により直接接続される形態であってもよい。またストレージ2は、ネットワーク3によって接続された複数の装置又はシステム(分散システム等)によって構成してもよい。
<ストレージの構成例>
図1のストレージ2の構成の一例について説明する。図2を参照すると、ストレージ2は、記憶媒体21と、アクセス実行部22と、記憶媒体アクセス部23と、チャンク割当部24と、RAID管理部25と、Write量計測部26と、記憶媒体監視部27と、RAID構成変更部28と、アクセス再発行部29を備える。
記憶媒体21は、ストレージ2の記憶領域全体のデータを格納し、NANDフラッシュメモリで構成されたSSDの複数の記憶媒体(#1、#2、・・・#n、nは2以上の整数)から構成される。複数の記憶媒体の各々は、NANDフラッシュメモリで構成されたSSDからなり(SSD#1〜SSD#n)、RAIDを構成する。
アクセス実行部22は、ホスト1からのアクセス要求を受け取り、RAID管理部25からアクセス先アドレスが含まれるRAIDストライプの構成情報を取得して、対応する記憶媒体21へのアクセス要求に変換する。また、アクセス実行部22は、ホスト1からのアクセス要求がWriteである場合は、RAIDストライプ内の冗長データの更新を行うアクセス要求を生成する。アクセス実行部22は、ホスト1から受け取ったアクセス要求の情報、及び変換、生成された記憶媒体21に対するアクセス要求の対応関係を、アクセス実行部22内のアクセス要求テーブル221に格納する。更に、アクセス実行部22は、ホスト1からの各アクセス要求に対応する処理の実行を管理し、記憶媒体21に対するアクセス要求の発行を記憶媒体アクセス部23に指示し、記憶媒体21に対するアクセス結果を受け取ってホスト1に対して結果を応答する。
図3は、アクセス実行部22に含まれるアクセス要求テーブル221の構成を例示する図である。アクセス要求テーブル221は、アクセスの種類、アクセス先アドレス(先頭の0Xはヘキサデシマル(16進)表示であることを示す)、アクセスサイズ、対応するアクセスIDの各欄を含む。対応するアクセスIDは、変換、又は生成された記憶媒体21に対するアクセスを表すID(識別子)である。アクセス実行部22は、ホスト1からの各アクセス要求に対して、アクセス要求に関する情報をアクセス要求テーブル221に格納する。また、図3においては、図示していないが、Writeアクセス要求に付随するWriteデータは別途管理する。なお、アクセス要求テーブル221のデータ形式は、図3に示した形式に限定されるものでないことは勿論である。例えば記憶媒体21に対するアクセスを表す識別子は数字のIDに限らず、任意の形式であってよい。また、アクセス要求テーブル221は、アクセス実行部22等からアクセスできれば、アクセス実行部22の外部に設ける構成としてもよいことは勿論である。
再び図2を参照すると、記憶媒体アクセス部23は、アクセス実行部22によって変換、生成された記憶媒体21に対するアクセス要求を、実際に記憶媒体21に対して発行する。また、記憶媒体アクセス部23は、記憶媒体21に対する各アクセス要求の情報を、記憶媒体アクセステーブル231に格納し、発行待ちのアクセス要求を管理する。
図4は、記憶媒体アクセス部23に含まれる記憶媒体アクセステーブル231の構成を例示する図である。記憶媒体アクセステーブル231は、アクセスID、記憶媒体ID、アクセス種類、アドレス、サイズの各欄を備えている。アクセスIDは、アクセス実行部22によって変換、生成された記憶媒体21に対するアクセス要求を一意に表すID等の識別子である。記憶媒体IDは、アクセス要求の発行先となる記憶媒体を表すID等の識別子である。アクセス種類は、アクセスの種類(Read,Write)である。アドレス、サイズは、アクセス先アドレスとアクセスサイズである。また、図4においては、図示していないが、Writeアクセス要求に付随するWriteデータは別途管理する。なお、記憶媒体アクセステーブル231のデータ形式は、図4に示した形式に限定されるものでないことは勿論である。例えばアドレス、及びアクセスサイズの表記は、図4に示されるチャンク単位以外に、バイト単位、一般的な記憶媒体のアクセス単位であるセクタ(512B)単位などの任意の形式であって良い。記憶媒体アクセステーブル231は、記憶媒体アクセス部23等からアクセスできれば、記憶媒体アクセス部23の外部に設ける構成としてもよいことは勿論である。
再び図2を参照すると、チャンク割当部24は、各記憶媒体21の記憶領域を一定サイズのチャンクに区切って管理し、各記憶媒体21において、チャンク毎のRAIDストライプに対する割り当て有無を管理する。また、チャンク割当部24は、RAID構成変更部28がRAIDストライプに対して割り当てるチャンクを変更する場合、RAID構成変更部28によって指定された記憶媒体21の記憶領域から、未使用のチャンクを割り当てる。
RAID管理部25は、RAIDストライプに対する各記憶媒体のチャンクの割り当て情報をRAID管理テーブル251として管理する。
図5は、RAID管理部25に含まれるRAID管理テーブル251の構成を例示する図である。RAID管理テーブル251は、アドレス、RAIDレベル、チャンク数、使用チャンク(記憶媒体ID−アドレス)の各欄を含む。アドレスは、ストレージ2がホスト1に対して提供する、記憶領域の空間における、RAIDストライプのマッピング先アドレスである。チャンク数は、RAIDストライプを構成するチャンク数である。使用チャンク(記憶媒体ID−アドレス)は、各RAIDストライプを構成するチャンクの記憶媒体のIDと記憶媒体内のアドレスの組み合わせである。RAIDレベルが一定ではない場合は、RAIDストライプ毎に、前記各情報を追加で記録する。なお、RAID管理テーブル251のデータ形式は、図5に示した形式に限定されるものでないことは勿論である。例えば各RAIDストライプのサイズが一定であり、且つ、ストレージ2の記憶領域の先頭アドレスから順番にマッピングされたRAIDストライプの情報が格納されている場合、RAIDストライプのマッピング先アドレスの情報(第1欄)を省略することが可能である。また、RAID管理テーブル251は、RAID管理部25等からアクセスできれば、RAID管理部25の外部に設ける構成としてもよいことは勿論である。
再び図2を参照すると、Write量計測部26は、記憶媒体アクセス部23から実際に各記憶媒体21に対して発行されたWriteアクセスを監視し、各記憶媒体21に対するWriteデータ量を集計する。
記憶媒体監視部27は、記憶媒体アクセス部23が各記憶媒体21に対して行ったアクセスに対する各記憶媒体21からの応答時間を監視し、応答遅延、あるいは応答停止を検出する。
また記憶媒体監視部27は、応答遅延、応答停止の検出と併せて、アクセス要求の発行待ち状況、発行中のアクセス要求のいずれか、又は両方から各記憶媒体21のアクセス負荷を算出するようにしてもよい。
RAID構成変更部28は、記憶媒体アクセス部23にて記憶媒体21に対して発行直前のWriteアクセス要求に着目し、Write先の記憶媒体21に対して、Write量計測部26、及び記憶媒体監視部27の情報から、データの格納先として、当該Write先の記憶媒体21が適切であるか否かを確認する。
RAID構成変更部28は、確認の結果、Write先の記憶媒体21が、データの格納先として適していないと判断した場合には、RAIDストライプにおける、Write先のチャンクの割り当て元である記憶媒体21を変更する。
具体的には、例えば、Write先の記憶媒体21が、応答遅延、応答停止、又は高負荷のいずれかの状態である場合、新たにデータを格納することは困難であると判断して、Write先のチャンクを、上記応答遅延、応答停止、又は高負荷のいずれにも該当しない別の記憶媒体21のものに変更する。
あるいはRAID構成変更部28は、Write先の記憶媒体21に対するWriteデータ量について、Writeデータ量が最も少ないか、又は、最も多い他の記憶媒体21と比較して、差分が事前に定めた上限値、又は、下限値を超えた場合に、Write先のチャンクを、別の記憶媒体21のものに変更する構成としてもよい。
アクセス再発行部29は、RAID構成変更部28において、RAIDストライプの構成を変更しなかった場合には、記憶媒体アクセス部23に対して、発行直前のWriteアクセス要求に対する実際の発行を許可する。
一方、RAID構成変更部28において、RAIDストライプの構成が変更された場合には、アクセス再発行部29は、
・記憶媒体アクセス部23に対して、発行直前のWriteアクセス要求のキャンセルを指示し、
・アクセス実行部22に対して、割り当てを変更したRAIDストライプ内のチャンクに対するWrite要求の再発行を指示する。
<一実施形態の動作例>
図6は、本発明の一実施形態においてホスト1からストレージ2がアクセス要求を受け取り、結果を応答する動作を説明する流れ図である。以下、図6、及び図1乃至図5を参照して、実施形態の動作を説明する。
<ステップS11>
アクセス実行部22は、ホスト1からストレージ2に対するアクセス要求を受け取り、アクセス要求テーブル221に登録する。
<ステップS12>
アクセス実行部22は、RAID管理部25のRAID管理テーブル251を参照して、アクセス先となるRAIDストライプを決定し、RAIDストライプを構成するチャンクに対するRead、Writeアクセスに変換する。
チャンクに対するRead、Writeアクセスへの変換手順は、一般に知られるRAIDと同様であり、本発明には含まれない。アクセス実行部22は、変換したRead、Writeアクセスの実行を記憶媒体アクセス部23に要求する。
また、アクセス実行部22は、ホスト1からのアクセス要求を変換後の、チャンクに対するアクセスのIDをアクセス要求テーブル221に登録する。
<ステップS13>
記憶媒体アクセス部23は、アクセス実行部22から受け取った、チャンクに対するアクセス要求を記憶媒体21に対して発行する。
<ステップS14>
記憶媒体アクセス部23は、記憶媒体21からのアクセス要求に対する結果(応答)をアクセス実行部22に応答する。
<ステップS15>
アクセス実行部22は、記憶媒体アクセス部23からのアクセス要求の結果を受け取ると、アクセス要求テーブル221を参照して、ホスト1からのアクセス要求に対応した全てのアクセスが完了しているか確認する。
<ステップS16>
ホスト1からのアクセス要求に対応したすべてのアクセスが完了していない場合(ステップS16のNo判定)、アクセス実行部22は他のアクセス完了まで待機して、ステップS14からの処理を実行する。
<ステップS17>
ホスト1からのアクセス要求に対応したすべてのアクセスが完了している場合(ステップS16のYes判定)、アクセス実行部22は、ホスト1にアクセス要求の結果を応答して返し、アクセス要求の情報を、アクセス要求テーブル221から削除し、手順を終了する。
以上のステップS11からS17までの処理を行い、ホスト1からストレージ2がアクセス要求を受け取り、結果を応答する動作が完了する。
<アクセス要求の発行と結果の応答の手順>
図7及び図8は、図6のステップS13において、記憶媒体アクセス部23がアクセス実行部22から各記憶媒体21に対するアクセス要求を受け取り、各記憶媒体21に対するアクセス要求を発行する手順を説明する流れ図である。なお、図7及び図8は、図面作成の都合で分図されている。図7及び図8、図1乃至図6を参照して、アクセス要求の発行と結果の応答の手順を説明する。
<ステップS201>
記憶媒体アクセス部23は、アクセス実行部22から受け取った各記憶媒体21に対するアクセス要求を記憶媒体アクセステーブル231に登録する。
<ステップS202>
記憶媒体アクセス部23は、記憶媒体アクセステーブル231に登録されたアクセス要求から、各記憶媒体21に対して発行するアクセス要求を選択する。
<ステップS203>
記憶媒体アクセス部23は、ステップS202で選択したアクセス要求がReadであるか否かを判定する。
<ステップS204>
ステップS202で選択したアクセス要求がReadである場合(ステップS203のYes判定)、記憶媒体アクセス部23は、選択したアクセス要求を記憶媒体21に発行して手順を終了する。
<ステップS205>
ステップS202で選択したアクセス要求がWriteである場合(ステップS203のNo判定)、記憶媒体アクセス部23は、RAID構成変更部28に対してWrite先の記憶媒体21、及びWriteアドレス、サイズの情報を通知する。
<ステップS206>
RAID構成変更部28は、記憶媒体アクセス部23から通知されたWriteアクセス要求の発行先記憶媒体21について、記憶媒体監視部27に応答遅延、又は応答停止が発生していないか問い合わせる。
また、RAID構成変更部28は、記憶媒体アクセス部23の記憶媒体アクセステーブル231を参照して、Writeアクセス要求先である記憶媒体21が高負荷状態であるか否かを確認する。
<ステップS207>
ステップS206の判断の結果、Write先の記憶媒体21が応答遅延、応答停止、高負荷のいずれかの状態であると判定された場合(ステップS207のYes判定)、ステップS208(図8)に進む。ステップS206の判断の結果、Write先の記憶媒体21が応答遅延、応答停止、高負荷の状態ではない場合(ステップS207のNo判定)、ステップS209(図8)に進む。
<ステップS208(図8)>
RAID構成変更部28は、記憶媒体アクセス部23から通知されたWriteアクセス要求の新たな発行先を現在の発行先以外の記憶媒体21から選択する。
RAID構成変更部28は、記憶媒体監視部27を参照して、応答遅延、応答停止、高負荷のいずれでもない記憶媒体から、Write量計測部26から取得した各記憶媒体21のWriteデータ量を比較して、最もWriteデータ量の少ない記憶媒体を新たなWrite先として選択してステップS211以降の処理を実行する。
<ステップS209(図8)>
RAID構成変更部28は、記憶媒体アクセス部23から通知されたWriteアクセス要求の発行先の記憶媒体21について、Write量計測部26から取得した各記憶媒体21のWriteデータ量を比較して、Write先として、他に適切な記憶媒体21が存在するか判断する。
また、RAID構成変更部28は、上記判断において、記憶媒体監視部27、及び記憶媒体アクセス部23の記憶媒体アクセステーブル231を参照して、応答遅延、応答停止、高負荷の状態ではない記憶媒体21のみを、適切なWrite先として、判断する。
前記手順の一例として、例えばWrite先の記憶媒体のWriteデータ量と、各記憶媒体21のWriteデータ量の最小値とを比較して、Write先の記憶媒体のWriteデータ量が事前に定めたられた閾値を上回る場合に、Writeデータ量が最小の記憶媒体21を、Write先として適切と判断するようにしてもよい。
<ステップS210(図8)>
ステップS209の判断の結果、他に適切なWrite先となる記憶媒体21が存在する場合(ステップS210のYes判定)、RAID構成変更部28は、ステップS209で判断された適切なWrite先となる記憶媒体21を、新たなWrite先としてステップS211以降の処理を継続する。
<ステップS211(図8)>
RAID構成変更部28は、チャンク割当部24に対して、新たなWrite先となる記憶媒体21について未使用のチャンクの割り当てを要求して、チャンク割当部24から割り当てられたチャンクのアドレスを受け取る。また、RAID構成変更部28は、チャンク割当部24に対して、チャンクを新たに割り当てることで使用されなくなった、元のWrite先のチャンクに対する解放を通知する。
<ステップS212(図8)>
RAID構成変更部28は、RAID管理部25に対して、ステップS202で選択されたWriteアクセス要求のWrite先チャンクを、新たなWrite先の記憶媒体21、及びステップS213で割り当てられたチャンクのアドレスに変更する。
<ステップS213(図8)>
RAID構成変更部28は、アクセス再発行部29に対してステップS202で選択されたWriteアクセス要求の再発行を指示する。
アクセス再発行部29は、記憶媒体アクセス部23に対して、ステップS202で選択されたWriteアクセス要求の中止を指示する。また、アクセス再発行部29は、アクセス実行部22に対して、ステップS213で変更したRAIDストライプの構成に従ってステップS202で選択されたWriteアクセス要求の再発行を指示して手順を終了する。
<ステップS214(図8)>
ステップS209の判断の結果、他に適切なWrite先となる記憶媒体21が存在せず、現在のWrite先が最適と判断された場合(ステップS210のNo判定)、RAID構成変更部28は、記憶媒体アクセス部23を通して、ステップS202で選択されたWriteアクセス要求の記憶媒体21に対する発行を行う。また、記憶媒体アクセス部23は、Write量計測部26に対してWrite要求先の記憶媒体21に対して新たにWriteデータのサイズ分のWriteが行われることを通知する。
<ステップS215(図8)>
記憶媒体21に対して発行したWriteアクセスの応答が返らない状態で事前に定められた一定時間を経過した場合(ステップS215のNo判定)、記憶媒体アクセス部23は、前記発行中のアクセスに対して、ステップS208の処理を実行する。
記憶媒体21に対して発行したWriteアクセスについて事前に定められた一定時間内に応答が返ってきた場合(ステップS215のYes判定)、手順を終了する。
以上のステップS201からS215までの処理を行うことで、記憶媒体アクセス部23がアクセス実行部22から各記憶媒体21に対するアクセス要求を受け取り、各記憶媒体21に対するアクセス要求を発行する動作が完了する。
<RAIDストライプの構成変更の一具体例>
図9乃至図11を参照して、Write発行時の記憶媒体間のWriteデータ量の差に応じた、RAIDストライプの構成変更を行う動作例を説明する。図9は、図2の記憶媒体21(図1のストレージ2に含まれる)を表している。ストレージ2は、同種の6個の記憶媒体21A〜11Fを備えている。ストレージ2、ホスト1は、チャンクサイズを単位としたアドレス空間を使用する。記憶媒体21A〜21Fは、この例の初期状態において、いずれも応答遅延、応答停止、高負荷の状態ではないとする。
また、この例では、Write先の記憶媒体と、記憶媒体21A〜21FのWriteデータ量の最小値との差が10チャンク以上である場合に、RAID構成を変更して記憶媒体間のWriteデータ量の差を削減するものとする。
ホスト1からのアクセス要求を受けたストレージ2のアクセス実行部22(図2)において、異なる記憶媒体に分かれたチャンクに対するアクセスに変換される。チャンクに対するアクセスへの変換は、図10に示された、RAID管理テーブル251を参照して行う。
なお、この例では、各RAIDストライプのRAIDレベルは全てRAID5、ストライプを構成するチャンク数は全て5とする。また、使用チャンクのリストの末尾が各RAIDストライプのパリティ情報を格納するチャンクとする。
ホスト1からのアクセス要求が、アドレス0x00000003に対するチャンク1個分のWriteである場合、図10に例示したRAID管理テーブル251の情報から、記憶媒体21Dのアドレス0x0000のチャンクに対するWriteデータ本体のWriteアクセスと、記憶媒体21Eのアドレス0x0000のチャンクに対するパリティを更新するためのWriteアクセスの2つに変換される。
記憶媒体アクセス部23によって、記憶媒体21Dと記憶媒体21Eに対するWriteアクセスが発行される。
まず、記憶媒体アクセス部23は、記憶媒体21Dに対するWriteアクセス発行前に、記憶媒体21Dが応答遅延・応答停止・高負荷状態でないことを確認する。
記憶媒体21Dは、応答遅延・応答停止・高負荷状態のいずれでもないため、次に各記憶媒体のWriteデータ量を、図11に示した、Write量計測部26が取得した各記憶媒体のWriteデータ量情報261(例えばWrite量計測部26の不図示の記憶部に保持される)から取得する。
図11の記憶媒体のWriteデータ量情報261は、各記憶媒体に対するWriteデータ量をチャンク数で表す。
Write先である記憶媒体21DのWriteデータ量は20チャンクである。一方で、最小のWriteデータ量である記憶媒体21FのWriteデータ量は10チャンクである。このため、RAIDストライプに割り当てられた記憶媒体21Dのアドレス0x0000のチャンクを解放して、新たに記憶媒体21Fの未使用のチャンク(0x0010とする)を割り当てる。
また、RAID管理部25は、RAID管理テーブル251のRAIDストライプの構成情報を更新する。記憶媒体21Dのアドレス0x0000のチャンクに対するWriteを中止して、アクセス再発行部29は、新たに記憶媒体21Fのアドレス0x0010のチャンクに対するWriteアクセスを生成する。
そして、RAIDストライプのパリティに相当するチャンクを更新する、記憶媒体21Eのアドレス0x0000のチャンクに対するWriteアクセス、及び新たに生成された記憶媒体21Fのアドレス0x0010のチャンクに対するWriteアクセスは、各記憶媒体が応答遅延、応答停止、高負荷のいずれの状態でもなく、記憶媒体のWriteデータ量情報261から、Write先の各記憶媒体のWriteデータ量がWriteデータ量の最小値を、10以上、上回ることはない。この結果、記憶媒体21Eと記憶媒体21Fに対して、Writeアクセスが発行される。
上記2つのWriteアクセスの完了によって、アドレス0x00000003に対するチャンク1個分のWriteアクセス要求に対するすべてのアクセス(データ書き込みパリティ書き込み)が完了する。ストレージ2のアクセス実行部22は、ホスト1に対してWriteアクセス要求に対する処理の完了を応答する。
以上の動作によってWrite発行時の記憶媒体間のWriteデータ量の差に応じた、RAIDストライプの構成変更を伴ったWriteアクセス処理が完了する。
上記実施形態によれば、書き込み先の記憶媒体のWriteデータ量、及び、該記憶媒体の応答遅延、停止状態に応じて、より適した記憶媒体に変更し、新たにアクセス対象のチャンクを該記憶媒体に割り当てることで、例えばSSDで構成したRAIDシステムのアクセス性能の低下を回避可能としている。
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 ホスト
2 ストレージ
21、21A〜21F 記憶媒体
22 アクセス実行部
221 アクセス要求テーブル
23 記憶媒体アクセス部
231 記憶媒体アクセステーブル
24 チャンク割当部
25 RAID管理部
251 RAID管理テーブル
26 Write量計測部
261 記憶媒体のWriteデータ量情報
27 記憶媒体監視部
28 RAID構成変更部
29 アクセス再発行部
3 ネットワーク
30 構成変更手段
31 アクセス制御手段

Claims (20)

  1. 複数の記憶媒体と、
    前記各記憶媒体に対する書き込みデータ量を計測する書き込み量計測部と、
    前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する記憶媒体監視部と、
    データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象のチャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、前記書き込みアクセス対象のチャンクを、前記別の記憶媒体のチャンクに変更する構成変更手段と、
    新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行するアクセス制御手段と、
    を備えた、ことを特徴とするストレージ装置。
  2. 前記構成変更手段は、書き込みアクセス要求を前記記憶媒体に対して発行する前に、書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の書き込みデータ量と、他の記憶媒体との書き込みデータ量との差が、予め定められた所定の条件を満たしているか、又は、
    前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体について、高負荷、応答遅延、応答停止の少なくともいずれか一つに該当していると判定した場合、
    前記複数の記憶媒体から、前記書き込みデータ量の条件、高負荷、応答遅延、停止に関していずれにも該当しない、別の記憶媒体を選択し、
    前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体から、前記書き込みアクセス対象の前記チャンクを解放し、
    前記別の記憶媒体の未使用のチャンクをアクセス対象として割り当てることで、書き込みアクセス先のストライプの構成を変更する、ことを特徴とする請求項1記載のストレージ装置。
  3. 前記複数の記憶媒体がRAIDを構成し、
    前記アクセス制御手段が、
    ホストからのアクセス要求を各記憶媒体に対するアクセスに変換するアクセス実行部と、
    RAIDストライプの構成変更によって新たにアクセス対象となったチャンクに対してアクセス要求を発行するアクセス再発行部と、
    を備え、
    前記構成変更手段は、
    前記各記憶媒体に対してアクセス要求を行う記憶媒体アクセス部と、
    前記各記憶媒体のチャンクの割り当て、解放を行うチャンク割当部と、
    RAIDのストライプ構成を管理するRAID管理部と、
    書き込みアクセス要求を発行する前に、書き込み先の記憶媒体の書き込みデータ量、又は、前記書き込み先の記憶媒体の状態に応じて、RAIDストライプの構成を変更するRAID構成変更部と、
    を備えた、ことを特徴とする請求項1又は2記載のストレージ装置。
  4. 前記RAID管理部は、前記RAIDのストライプの前記ホスト側からみたアドレス、RAIDのレベル、RAIDのストライプのチャンク数、前記チャンクが割り当てられた記憶媒体の識別情報とアドレス情報の対を含む使用チャンク情報を、対応付けて記憶部で管理する、ことを特徴とする請求項3記載のストレージ装置。
  5. 前記アクセス実行部は、前記ホストからのアクセス要求を前記各記憶媒体に対応するアクセスに変換してアクセスの実行を管理して、前記アクセス要求に関する処理の実行完了の応答を前記ホストに対して行う、ことを特徴とする請求項3又は4記載のストレージ装置。
  6. 前記記憶媒体アクセス部は、前記アクセス実行部によって変換又は生成されたアクセス要求を前記記憶媒体に対して発行し、前記記憶媒体からの結果を、前記アクセス実行部に応答として返す、ことを特徴とする請求項3乃至5のいずれか1項に記載のストレージ装置。
  7. 前記チャンク割当部は、前記各記憶媒体の記憶領域をチャンク単位に分割し、各チャンクの使用状況を管理し、RAIDストライプの構成変更に伴うチャンクの解放、及び、チャンクの割り当てを行う、ことを特徴とする請求項3乃至6のいずれか1項に記載のストレージ装置。
  8. 前記RAID管理部は、RAIDストライプを構成するチャンクの組み合わせ、及び記憶領域全体のアドレス空間に対するチャンクのマッピングを管理する、ことを特徴とする請求項3乃至7のいずれか1項に記載のストレージ装置。
  9. 前記書き込み量計測部は、各記憶媒体に発行された書き込みアクセス要求の情報を参照して、記憶媒体毎の書き込みデータ量を計測する、ことを特徴とする請求項3乃至8のいずれか1項に記載のストレージ装置。
  10. 前記記憶媒体監視部は、前記記憶媒体アクセス部を通して、各記憶媒体に対する発行待ち、又は、発行中のアクセス要求から、負荷を算出し、高負荷状態の記憶媒体を検出し、各記憶媒体のアクセスに対する応答状況を監視して応答遅延又は停止状態の記憶媒体を検出する、ことを特徴とする請求項3乃至9のいずれか1項に記載のストレージ装置。
  11. 前記RAID構成変更部は、前記記憶媒体アクセス部によって各記憶媒体に書き込みアクセス要求を発行する直前に、書き込み先の記憶媒体の書き込みデータ量と、アクセス負荷、応答遅延、又は、停止の有無を確認し、
    書き込み先の記憶媒体について、他の記憶媒体との書き込みデータ量の差が、予め定められた所定の条件を満たしているか、
    書き込み先の記憶媒体について、高負荷、応答遅延又は停止の少なくとも1つの条件を満たしている場合には、書き込みアクセス先のRAIDストライプについて、書き込み先の記憶媒体が、高負荷、応答遅延、応答停止に該当しない、他の記憶媒体となるように、チャンクの構成を変更する、ことを特徴とする請求項3乃至10のいずれか1項に記載のストレージ装置。
  12. 前記アクセス再発行部は、書き込み先の記憶媒体において、他の記憶媒体との書き込みデータ量の差が、予め定められた所定の条件を満たすか、書き込み先の記憶媒体について高負荷、応答遅延、応答停止のいずれかの条件を満たしている場合には、前記記憶媒体アクセス部に対して、書き込み先の記憶媒体への書き込みアクセス要求のキャンセルを指示し、前記アクセス実行部に対して、割り当てを変更したチャンクに対するアクセス要求の再発行を指示する請求項3乃至11のいずれか1項に記載のストレージ装置。
  13. 前記記憶媒体は、ブロック単位で一括消去される書き変え可能な不揮性半導体記憶デバイスからなる、請求項1乃至12のいずれか1項に記載のストレージ装置。
  14. 請求項1乃至13のいずれか1項に記載のストレージ装置と、
    前記ストレージ装置と通信接続され、前記ストレージ装置に対してアクセス要求を行うホストと、
    を備えたコンピュータシステム。
  15. 複数の記憶媒体の各々に対する書き込みデータ量を計測し、
    前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視し、
    データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象のチャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更し、
    新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する、ことを特徴とするストレージのアクセス制御方法。
  16. 書き込みアクセス要求を前記記憶媒体に対して発行する前に、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の書き込みデータ量と、他の記憶媒体との書き込みデータ量との差が、予め定められた所定の条件を満たしているか、又は、
    前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体について、高負荷、応答遅延、応答停止の少なくともいずれか一つに該当していると判定した場合、
    前記複数の記憶媒体から、前記書き込みデータ量の条件、高負荷、応答遅延、停止に関していずれにも該当しない別の記憶媒体を選択し、
    前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体から、前記書き込みアクセス対象の前記チャンクを解放し、
    前記別の記憶媒体の未使用のチャンクをアクセス対象として割り当てることで、書き込みアクセス先のストライプの構成を変更する、ことを特徴とする請求項15記載のストレージのアクセス制御方法。
  17. 前記複数の記憶媒体がRAIDを構成し、
    書き込みアクセス要求を発行する前に、書き込み先の記憶媒体の書き込みデータ量、又は、前記記憶媒体の高負荷、応答遅延、停止状態に応じて、RAIDストライプの構成を変更する、ことを特徴とする請求項15又は16記載のストレージのアクセス制御方法。
  18. 複数の記憶媒体の各々に対する書き込みデータ量を計測する処理と、
    前記各記憶媒体の負荷状態を監視するとともに、前記各記憶媒体に対するアクセスの応答の遅延又は停止状態を監視する処理と、
    データを複数の前記記憶媒体に分割して転送するストライピングの単位となる記憶領域であるチャンクについて、書き込みアクセス対象のチャンクの割り当て元の記憶媒体の書き込みデータ量と、前記記憶媒体の負荷状態、応答の遅延又は停止状態の少なくとも1つに基づき、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の変更が必要であると判断した場合、別の記憶媒体を選択し、書き込みアクセス対象の前記チャンクを、前記別の記憶媒体のチャンクに変更する処理と、
    新たにアクセス対象となったチャンクに対して書き込みアクセス要求を発行する処理と、
    をコンピュータに実行させるプログラム。
  19. 書き込みアクセス要求を前記記憶媒体に対して発行する前に、前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体の書き込みデータ量と、他の記憶媒体との書き込みデータ量との差が、予め定められた所定の条件を満たしているか、又は、
    前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体について、高負荷、応答遅延、応答停止の少なくともいずれか一つに該当していると判定した場合、
    前記複数の記憶媒体から、前記書き込みデータ量の条件、高負荷、応答遅延、停止に関していずれにも該当しない別の記憶媒体を選択し、
    前記書き込みアクセス対象のチャンクの割り当て元の前記記憶媒体から、前記書き込みアクセス対象の前記チャンクを解放し、
    前記別の記憶媒体の未使用のチャンクをアクセス対象として割り当てることで、書き込みアクセス先のストライプの構成を変更する処理を、前記コンピュータに実行させる請求項18記載のプログラム。
  20. 前記複数の記憶媒体がRAIDを構成しており、
    書き込みアクセス要求を発行する前に、書き込み先の記憶媒体の書き込みデータ量、又は、前記記憶媒体の高負荷、応答遅延、停止状態に応じて、RAIDストライプの構成を変更する処理を前記コンピュータに実行させる請求項18又は19記載のプログラム。
JP2014151668A 2014-07-25 2014-07-25 ストレージ装置とシステム及び方法とプログラム Pending JP2017199043A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014151668A JP2017199043A (ja) 2014-07-25 2014-07-25 ストレージ装置とシステム及び方法とプログラム
PCT/JP2015/003631 WO2016013202A1 (ja) 2014-07-25 2015-07-17 ストレージ装置、コンピュータシステム、アクセス制御方法および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014151668A JP2017199043A (ja) 2014-07-25 2014-07-25 ストレージ装置とシステム及び方法とプログラム

Publications (1)

Publication Number Publication Date
JP2017199043A true JP2017199043A (ja) 2017-11-02

Family

ID=55162746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014151668A Pending JP2017199043A (ja) 2014-07-25 2014-07-25 ストレージ装置とシステム及び方法とプログラム

Country Status (2)

Country Link
JP (1) JP2017199043A (ja)
WO (1) WO2016013202A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020021232A (ja) * 2018-07-31 2020-02-06 キオクシア株式会社 情報処理システム
JP2021022121A (ja) * 2019-07-26 2021-02-18 株式会社日立製作所 ストレージ制御システム及び方法
WO2025017802A1 (ja) * 2023-07-14 2025-01-23 日立Astemo株式会社 制御システムのデータ記録方法及び電子制御装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6320439B2 (ja) * 2016-03-10 2018-05-09 株式会社東芝 メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
JP6867586B2 (ja) * 2017-04-24 2021-04-28 富士通株式会社 ストレージ装置、ストレージ装置の制御プログラムおよびストレージ装置の制御方法
CN112882646A (zh) * 2019-11-29 2021-06-01 北京金山云网络技术有限公司 一种资源缓存方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756691A (ja) * 1993-08-12 1995-03-03 Toshiba Corp ストライピングディスクのデータブロック自動再配置機能を持つ情報処理装置
US6237063B1 (en) * 1997-10-06 2001-05-22 Emc Corporation Load balancing method for exchanging data in different physical disk storage devices in a disk array storage device independently of data processing system operation
JP3579389B2 (ja) * 2001-11-30 2004-10-20 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ復旧方法
JP4821448B2 (ja) * 2006-06-14 2011-11-24 富士通株式会社 Raidコントローラおよびraid装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020021232A (ja) * 2018-07-31 2020-02-06 キオクシア株式会社 情報処理システム
JP7053399B2 (ja) 2018-07-31 2022-04-12 キオクシア株式会社 情報処理システム
US11385800B2 (en) 2018-07-31 2022-07-12 Kioxia Corporation Information processing system for controlling storage device
US11922028B2 (en) 2018-07-31 2024-03-05 Kioxia Corporation Information processing system for controlling storage device
JP2021022121A (ja) * 2019-07-26 2021-02-18 株式会社日立製作所 ストレージ制御システム及び方法
WO2025017802A1 (ja) * 2023-07-14 2025-01-23 日立Astemo株式会社 制御システムのデータ記録方法及び電子制御装置

Also Published As

Publication number Publication date
WO2016013202A1 (ja) 2016-01-28

Similar Documents

Publication Publication Date Title
JP5844473B2 (ja) 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
JP6381529B2 (ja) ストレージ装置および記憶制御方法
JP6073471B2 (ja) ストレージ装置
US10459639B2 (en) Storage unit and storage system that suppress performance degradation of the storage unit
JP6279620B2 (ja) ストレージ装置
US20180275894A1 (en) Storage system
US10846231B2 (en) Storage apparatus, recording medium, and storage control method
US10545684B2 (en) Storage device
WO2014141411A1 (ja) ストレージシステムおよびストレージシステム制御方法
TW201314437A (zh) 快閃碟陣列及控制器
JP2012505441A (ja) ストレージ装置およびそのデータ制御方法
JP2017199043A (ja) ストレージ装置とシステム及び方法とプログラム
CN109725838B (zh) 用于管理多个盘的方法、装置以及计算机可读介质
JP2019121129A (ja) 不揮発性メモリモジュール
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
WO2018002999A1 (ja) 記憶デバイス及びストレージ装置
JP2015201231A (ja) 複数のフラッシュパッケージを有するストレージシステム