JP2010055247A - ストレージシステム及び構成管理方法 - Google Patents

ストレージシステム及び構成管理方法 Download PDF

Info

Publication number
JP2010055247A
JP2010055247A JP2008217801A JP2008217801A JP2010055247A JP 2010055247 A JP2010055247 A JP 2010055247A JP 2008217801 A JP2008217801 A JP 2008217801A JP 2008217801 A JP2008217801 A JP 2008217801A JP 2010055247 A JP2010055247 A JP 2010055247A
Authority
JP
Japan
Prior art keywords
storage device
data
storage
predetermined
processor
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
JP2008217801A
Other languages
English (en)
Inventor
Takeki Okamoto
岳樹 岡本
Mikio Fukuoka
幹夫 福岡
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008217801A priority Critical patent/JP2010055247A/ja
Priority to US12/253,570 priority patent/US20100057988A1/en
Publication of JP2010055247A publication Critical patent/JP2010055247A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】複数の記憶デバイスを含むストレージシステムにおいて、データの消去回数に制限のある記憶デバイスの消去回数を平準化する。
【解決手段】データを格納する複数の記憶デバイスを備えるストレージシステムで、複数の記憶デバイスには予備の記憶デバイスが含まれ、各記憶デバイスの識別子及び各記憶デバイスに格納されたデータが消去されたデータ消去回数を含む記憶デバイス構成情報が当該ストレージシステムに記憶され、データ消去回数が所定のしきい値を超えた場合には、データ消去回数が所定のしきい値を超えた記憶デバイスに格納されたデータをスペアの記憶デバイスに複製し、データが複製された予備の記憶デバイスの識別子にデータ消去回数が所定のしきい値を超えた記憶デバイスの識別子を割り当てる。
【選択図】図15

Description

本発明は、複数の記憶デバイスを含むストレージシステムの構成を管理する技術に関する。
フラッシュメモリなどの半導体記憶媒体によって構成される記憶デバイスでは、データを更新するためには、更新対象のデータが格納された領域(ブロック)を一旦すべて消去してから、更新データを書き込む必要がある。このような記憶デバイスの代表的なものとしては、SSD(Solid State Drive)が挙げられる。
また、SSDで利用されるフラッシュメモリには、データの消去回数に制限があり、データの消去回数が制限回数を超えると、データを格納することができなくなる。そこで、SSDによって提供される記憶領域の特定の領域にデータの更新(消去)が集中しないようにデータを配置することによって、消去操作の回数を領域ごとに均一化し、記憶デバイスの長寿命化を図る技術が開示されている(特許文献1参照)。
特開2007−149241号公報
特許文献1に開示された技術では、同じ記憶デバイスによって提供される記憶領域に対する消去回数(書き込み回数)を領域内で平準化することは可能であるが、複数の記憶デバイスを含むストレージシステムにおいて、記憶デバイスごとの消去回数を平準化することは想定されていない。例えば、RAID技術(例えば、RAID5)を適用し、複数のSSDによってRAIDグループが構成される場合には、SSD間の消去回数を平準化することはできない。
例えば、RAIDグループによって提供される記憶領域に格納されたデータは、ストライピングされた複数の記憶デバイスによって記憶されるが、データがストライピングサイズ以下の場合に局所的に読み書きされた場合には、一定の記憶デバイスのみに入出力が集中してしまう。
したがって、ストレージシステムに含まれる記憶デバイス間で消去回数にばらつきが生じると、記憶デバイスによって提供される記憶領域内で消去回数が平準化されていても、記憶デバイスごとの寿命にばらつきが生じてしまう。これにより、ストレージシステム全体の寿命が短期化し、若しくは、ストレージシステムに含まれる記憶デバイスの交換頻度が増加することによって運用コストが増大する可能性がある。
本発明は、ストレージシステムに含まれる記憶デバイスの消去回数の平準化を図ることによって、ストレージシステム全体の長寿命化を図り、運用コストを低減させることを目的とする。
本発明の代表的な一形態では、読み書きされるデータを格納するストレージシステムであって、インターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記データを格納する複数の記憶デバイスと、を備え、前記複数の記憶デバイスには、予備の記憶デバイスが含まれ、前記メモリは、前記各記憶デバイスの識別子及び前記各記憶デバイスに格納されたデータが消去されたデータ消去回数を含む記憶デバイス構成情報を格納し、前記プロセッサは、前記データ消去回数が所定の第1のしきい値を超えた場合には、前記データ消去回数が所定の第1のしきい値を超えた記憶デバイスに格納されたデータを前記予備の記憶デバイスに複製し、前記データが複製された予備の記憶デバイスの識別子に、前記データ消去回数が所定の第1のしきい値を超えた記憶デバイスの識別子を割り当てる。
本発明の一形態によれば、データの消去回数の多い記憶デバイスをスペア記憶デバイスと交換することによって、記憶デバイスの書き込み回数を平準化し、ストレージシステム全体の長寿命化を図ることができる。
本発明は、フラッシュメモリなどの書き込み回数(消去回数)に制限のある半導体記憶媒体によって構成されたストレージシステムにおいて、スペア記憶デバイスを含む記憶デバイスの書き込み回数を平準化することによって、ストレージシステム全体の長寿命化を図る。書き込み回数の平準化の方法としては、記憶デバイスごとに書き込み回数を記録し、書き込み回数の多い記憶デバイスに格納されたデータをスペア記憶デバイスに移行する(ダイナミックスペアリング)。以下、図面を参照しながら本発明の実施の形態について、具体的に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成を示す図である。
本発明の第1の実施の形態の計算機システムには、ホスト計算機10、ストレージシステム20及び保守端末30が含まれる。
ホスト計算機10は、アプリケーションプログラムを実行し、ストレージシステム20に格納されたデータを利用して各種業務を処理する。ストレージシステム20は、ホスト計算機10によって読み書きされるデータを格納する。ホスト計算機10は、汎用計算機(PC)で実現可能なハードウェア構成となっている。
ストレージシステム20は、複数の記憶デバイス500を備え、ホスト計算機10によって読み書きされるデータを格納する。
ストレージシステム20は、チャネルアダプタ100、キャッシュ200、共有メモリ300、ディスクアダプタ400及び記憶デバイス500を備える。
チャネルアダプタ100は、外部機器に接続されるインターフェースを含み、ホスト計算機10とのデータの受け渡しを制御する。チャネルアダプタ100は、キャッシュ200及び共有メモリ300に接続される。チャネルアダプタ100は、プロトコルチップ110、DMA回路120及びMP130を含む。プロトコルチップ110、DMA回路120及びMP130は、相互に接続される。さらに、プロトコルチップ110、DMA回路120及びMP130は、それぞれ多重化されている。共通する機能又は処理について説明する場合には、プロトコルチップ110、DMA回路120及びMP130と表記し、個別の処理について説明する場合には、符号にC1〜Cnを付与する。例えば、MPC1と表記する。
プロトコルチップ110は、ネットワークインタフェースを含み、ホスト計算機10に接続される。プロトコルチップ110は、ホスト計算機10との間でデータを送受信し、プロトコル制御などを行う。
DMA回路120は、ホスト計算機10に対するデータ転送処理を制御する。具体的には、ホスト計算機10に接続されるプロトコルチップ110とキャッシュ200との間のDMA転送を制御する。MP130は、プロトコルチップ110及びDMA回路120を制御する。
キャッシュ200は、ホスト計算機10によって読み書きされるデータを一時的に格納する。ストレージシステム20は、ホスト計算機10によって要求されたデータがキャッシュ200に格納されている場合には、記憶デバイス500に格納されたデータではなく、キャッシュ200に格納されたデータを提供することによって、高速なデータアクセスを可能とする。
共有メモリ300は、チャネルアダプタ100及びディスクアダプタ400による処理又は制御に必要な情報を記憶する。例えば、チャネルアダプタ100又はディスクアダプタ400で処理される通信メッセージ、及びストレージシステム20の構成情報などが記憶される。共有メモリ300に格納された情報の詳細については、図2にて後述する。
ディスクアダプタ400は、記憶デバイス500に接続されるインターフェースを含み、キャッシュ200とのデータの受け渡しを制御する。ディスクアダプタ400は、DMA回路410、プロトコルチップ420、MP430及びDRR440を含む。DMA回路410、プロトコルチップ420、MP430及びDRR440は、相互に接続される。また、DMA回路410、プロトコルチップ420、MP430及びDRR440は、それぞれ多重化されている。共通する機能又は処理について説明する場合には、DMA回路410、プロトコルチップ420及びMP430と表記し、個別の処理について説明する場合には、符号にD1〜Dnを付与する。例えば、MPD1と表記する。
DMA回路410は、プロトコルチップ420とキャッシュ200との間のDMA転送を制御する。プロトコルチップ420は、記憶デバイス500に接続されるインターフェースを含み、記憶デバイス500との間のプロトコル制御を行う。
MP430は、DMA回路410、プロトコルチップ420及びDRR440を制御する。DRR440は、キャッシュ200に記憶されたデータを読み出し、冗長データを作成し、作成された冗長データをキャッシュ200に書き込む。
記憶デバイス500は、ホスト計算機10によって読み書きされるデータを格納する。本発明の第1の実施の形態では、記憶デバイス500は、フラッシュメモリによって構成されるSSDである。各記憶デバイス500に共通の内容を説明する場合には、記憶デバイス500と表記し、個別の記憶デバイス500について説明する場合には、記憶デバイス500Aのように適宜識別子を追加する。
また、本発明の第1の実施の形態のストレージシステム20では、複数の記憶デバイス500によってRAIDグループを構成し、データを冗長化して格納する。さらに、ストレージシステム20には、障害が発生した場合などのために、スペア記憶デバイス550が備えられている。なお、スペア記憶デバイス550は、ダイナミックスペアリングなどによって記憶デバイス500と入れ替えられる。
保守端末30は、ストレージシステム20を保守するための端末であって、ストレージシステム20にネットワーク40を介して接続する。具体的には、ストレージシステム20に含まれるチャネルアダプタ100及びディスクアダプタ400に接続され、ストレージシステム20の保守を行う。なお、保守端末30は、ホスト計算機10と同様に、汎用計算機(PC)で実現可能なハードウェア構成となっている。
図2は、本発明の第1の実施の形態の共有メモリ300に格納された情報を示す図である。
共有メモリ300には、メッセージエリア310、構成情報エリア340及びシステムしきい値エリア370を含む。
メッセージエリア310には、処理を実行するために必要な指示を含むメッセージが格納される。メッセージエリア310には、ホスト計算機10によって要求された処理を実行するためのメッセージの他に、ストレージシステム20を保守又は管理するための処理を実行するためのメッセージが格納される。また、メッセージエリア310に格納されたメッセージは、チャネルアダプタ100又はディスクアダプタ400によって処理される。メッセージエリア310には、具体的には、メッセージテーブル320及び要求応答内容テーブル330が格納される。
メッセージテーブル320は、処理の要求元及び要求先の識別情報、要求内容及び応答内容を示す情報を格納する。メッセージテーブル320の詳細は、図3にて後述する。
要求応答内容テーブル330は、要求内容及び応答内容を示すメッセージの具体的な内容が格納される。要求応答内容テーブル330の詳細は、図4にて後述する。
構成情報エリア340は、記憶デバイス500によって構成されるRAIDグループの構成情報及び記憶デバイス500に関する情報を格納する。具体的には、構成情報エリア340には、記憶デバイス構成情報としてRAIDグループ情報テーブル350及びドライブ情報テーブル360が格納される。
RAIDグループ情報テーブル350は、RAIDグループと当該RAIDグループを構成する記憶デバイス500などの情報を含む。RAIDグループ情報テーブル350の詳細は、図5にて後述する。
ドライブ情報テーブル360は、記憶デバイス500の属性及び状態などの情報を格納する。ドライブ情報テーブル360の詳細は、図6にて後述する。
システムしきい値エリア370は、ダイナミックスペアリング基礎しきい値N1(380)及びダイナミックスペアリング判定差分値N3(390)を含む。
ダイナミックスペアリング基礎しきい値N1(380)は、ダイナミックスペアリングを実行するか否かを判定するためのシステム共通の値である。第1の実施の形態では、RAIDグループの構成及びダイナミックスペアリング基礎しきい値N1(380)に基づいて、RAIDグループごとにしきい値が設定される。
ダイナミックスペアリング判定差分値N3(390)は、記憶デバイス500の消去回数の差異に基づいて記憶デバイス500を切り替える場合に使用されるしきい値である。なお、ダイナミックスペアリング判定差分値N3(390)は、後述する第3の実施の形態で使用される。
なお、ダイナミックスペアリング基礎しきい値N1(380)及びダイナミックスペアリング判定差分値N3(390)は、保守端末30によって更新することができる。
図3は、本発明の第1の実施の形態のメッセージテーブル320の一例を示す図である。
メッセージテーブル320には、メッセージに対応する要求内容と当該要求に対する応答内容が含まれる。具体的には、メッセージテーブル320には、有効/無効フラグ321、メッセージID322、要求元ID323、要求内容アドレス324、要求先ID325及び応答内容アドレス326が含まれる。
有効/無効フラグ321は、メッセージが有効であるか無効であるかを示すフラグである。メッセージID322は、メッセージを一意に識別する識別子である。
要求元ID323は、メッセージに含まれる処理要求の要求元を識別する識別子である。例えば、メッセージの内容がホスト計算機10からストレージシステム20に対するデータの読み出し要求の場合には、要求を受け付けたチャネルアダプタ100のMP130の識別子が格納される。
要求内容アドレス324は、要求内容が記憶された領域のアドレスである。要求内容そのものは、後述する要求応答内容テーブル330に格納され、要求内容アドレス324にはアドレスのみが格納される。
要求先ID325は、メッセージに含まれる処理要求の要求先を識別する識別子である。例えば、前述したように、メッセージの内容がホスト計算機10からストレージシステム20に対するデータの読み出し要求の場合には、要求を処理するディスクアダプタ400のMP430の識別子が格納される。
応答内容アドレス326は、応答内容が記憶された領域のアドレスである。応答内容そのものは、要求内容と同様に、後述する要求応答内容テーブル330に格納されている。
図4は、本発明の第1の実施の形態の要求応答内容テーブル330の一例を示す図である。
要求応答内容テーブル330には、要求内容331及び応答内容332の実体が格納される。メッセージテーブル320には、前述したように、要求内容331及び応答内容332が格納された領域のアドレスが格納される。
要求内容331には、ホスト計算機10などによって要求された処理内容が含まれる。具体的には、要求内容がデータの読み出しか書き込みかを示す情報、当該データが格納されたキャッシュ200のアドレス、記憶デバイス500の論理アドレス及びデータの転送長などが含まれる。応答内容332には、要求元に送信されるデータに関する情報などが含まれる。
図5は、本発明の第1の実施の形態のRAIDグループ情報テーブル350の一例を示す図である。
RAIDグループ情報テーブル350は、ストレージシステム20に含まれる記憶デバイス500よって構成されるRAIDグループの定義情報が格納される。
RAIDグループ情報テーブル350には、RAIDグループ番号351、RAIDレベル352、状態353、コピーポインタ354、しきい値N2(355)、構成DRV台数356、及びドライブID(357〜359)が含まれる。
RAIDグループ番号351は、RAIDグループの識別子である。RAIDレベル352は、RAIDグループ番号351によって識別されるRAIDグループのRAIDレベルである。具体的には、“RAID1”、“RAID5”などが格納される。
状態353は、当該RAIDグループの状態を示す。例えば、正常に運用されている場合には「Normal」、障害が発生したなどの理由で使用できない場合には「使用不可」などが格納される。
コピーポインタ354は、ダイナミックスペアリングが実行されている場合など、RAIDグループに含まれる記憶デバイス500が他の記憶デバイスにコピーされている場合にコピーが完了した領域のアドレスが格納される。
しきい値N2(355)は、RAIDグループごとに設定されるしきい値であって、当該RAIDグループに含まれる記憶デバイス500の消去回数がしきい値N2を超えた当該記憶デバイス500に対してダイナミックスペアリングが実行される。なお、しきい値N2(355)は、保守端末30によって更新することができる。
構成DRV台数356は、RAIDグループを構成する記憶デバイス500の台数である。ドライブID(357〜359)は、RAIDグループを構成する記憶デバイス500の識別子である。
また、RAIDグループ番号351が「Spare」となっているエントリのように、実際にRAIDグループを構成しない記憶デバイス500が含まれるようにしてもよい。このようにすれば、RAIDグループ番号351を識別情報として、RAIDグループに属さない記憶デバイスに対してもダイナミックスペアリングを実行することができる。
図6は、本発明の第1の実施の形態のドライブ情報テーブル360の一例を示す図である。
ドライブ情報テーブル360は、ストレージシステム20に備えられる記憶デバイス500の情報を格納する。ドライブ情報テーブル360には、ドライブID361、ドライブ状態362、ドライブ属性363、コピー関連ID364、消去回数365及び消去単位366を含む。
ドライブID361は、記憶デバイス500の識別子である。ドライブ状態362は、記憶デバイス500の状態を示す情報である。ドライブ状態362には、運用中である「Normal」、ダイナミックスペアリングなどによって他の記憶デバイス500に複製している若しくは他の記憶デバイス500に複製されていることを示す「コピー中」などが格納される。
ドライブ属性363は、記憶デバイス500の属性が格納される。具体的には、データが格納されている場合の「データ」、コピー中の場合には「コピー元」又は「コピー先」が格納される。当該記憶デバイス500が、スペアドライブとなっている場合には「スペア」が格納される。
コピー関連ID364は、ドライブ状態362が「コピー中」となっている場合に、コピーの相手先の記憶デバイス500のドライブIDが記憶される。具体的には、コピー元となっている場合にはコピー先の記憶デバイス500が、コピー先となっている場合には、コピー元の記憶デバイス500のドライブID361が格納される。
消去回数365は、ドライブID361によって識別される記憶デバイス500に対してデータの消去処理が実行された回数が格納される。前述したように、SSDでは、データを書き込む場合には、データを書き込む領域を一旦消去してからデータを書き込むため、消去回数365を書き込み回数としてもよい。
消去単位366は、データ書き込み時などに書き込まれたデータが消去される領域のサイズである。なお、一般的にSSDでは、データの書き込み(消去)単位は、データが読み出される単位よりも大きい。本発明の第1の実施の形態では、データの消去単位はデータの読み出し単位と相違していてもよいし、同じであってもよい。
図7は、本発明の第1の実施の形態のディスクアダプタ400の構成の一例を示す図である。
図7に示すディスクアダプタ400には、それぞれ4つのDMA回路D1〜4(410A〜410D)、DRR1〜4(440A〜440D)、プロトコルチップD1〜4(420A〜420D)及びMPD1〜4(430A〜430D)が搭載されている。
また、記憶デバイス500(500A〜500D)は、3D+1PのRAIDグループが構成されている。記憶デバイス500Aは、ドライブID361が「DRV1−1」であって、さらにRAIDグループ内の識別情報として「D1」が付与されている。同様に、記憶デバイス500Bは、ドライブID361が「DRV1−2」、RAIDグループ内の識別情報が「D2」となっている。記憶デバイス500Cは、ドライブID361が「DRV1−3」、RAIDグループ内の識別情報が「D3」、記憶デバイス500Dは、ドライブID361が「DRV1−4」、RAIDグループ内の識別情報がパリティに対応する「P1」が割り当てられている。
さらに、スペア記憶デバイス550として、ドライブID361が「DRV16−1」の記憶デバイス500が割り当てられている。なお、RAID構成情報は、前述したように、共有メモリ300に含まれる構成情報エリア340のRAIDグループ情報テーブル350に定義されている。
また、記憶デバイス500は、それぞれ、一組のDMA回路410、DRR440、プロトコルチップ420及びMP430によって制御される。例えば、記憶デバイス500A(D1)及びスペア記憶デバイス550(S)は、DMA回路D1(410A)、DRR1(440A)、プロトコルチップD1(420A)及びMPD1(430A)によって制御される。
キャッシュ200には、記憶デバイス500に対応する領域が必要に応じて確保される。例えば、記憶デバイス500Aには、RAIDグループ内の識別情報と対応するように、領域「D1」が確保される。
なお、各記憶デバイス500に対しては、対応するディスクアダプタ400のMP430によって制御され、保守管理などについては、MPD1(430A)によって処理されるとして手順を説明する。
以下、ホスト計算機10によってストレージシステム20に送信されたデータの書き込み要求を処理する手順について説明する。
図8は、本発明の第1の実施の形態のホスト計算機10からデータの書き込み要求を受け付け、記憶デバイス500にデータを書き込む手順を示すフローチャートである。なお、ホスト計算機10によって送信されたデータの書き込み要求をプロトコルチップC1(110)が受け付けたものとして本処理を説明する。
まず、プロトコルチップC1(110)は、ホスト計算機10によって送信されたデータの書き込み要求を受け付けると、MPC1(130)に書き込み要求を受け付けられたことを通知する(S801)。
MPC1(130)は、書き込み要求が受け付けられたことを通知されると、書き込みデータをプロトコルチップC1(110)からDMA回路C1(120)に転送するように、プロトコルチップC1(110)に指示する(S802)。
MPC1(130)は、さらに、書き込みデータをプロトコルチップC1(110)からキャッシュ200の領域D1に転送するように、DMA回路C1(120)に指示する(S803)。前述したように、キャッシュ200の領域D1は、記憶デバイス500A(D1)に対応する。このとき、MPC1(130)は、領域D1のアドレス及び転送長を取得する。
DMA回路C1(120)は、MPC1(130)による指示に基づいて、書き込みデータをキャッシュ200の領域D1に転送する(S804)。そして、書き込みデータの転送が終了した後、MPC1(130)に転送が完了した旨を通知する(S805)。
MPC1(130)は、キャッシュ200への書き込みデータの転送が完了した旨をDMA回路C1(120)から通知されると、共有メモリ300に格納されたメッセージエリア310にキャッシュ200の領域D1に格納された書き込みデータを記憶デバイスD1に書き込む指示を含むメッセージを登録する(S806)。具体的には、メッセージテーブル320及び要求応答内容テーブル330に、S803の処理で取得された領域D1のアドレス及び転送長などの情報を登録する。
MPC1(130)は、書き込み完了ステータスをホスト計算機10に送信するように、プロトコルチップC1(120)に指示する(S807)。
プロトコルチップC1(120)は、書き込み完了ステータスの送信指示を受け付けると、ホスト計算機10に書き込み完了ステータスを送信する(S808)。
ここで、ディスクアダプタ400から記憶デバイス500にデータを書き込む処理について図9を参照しながら概要を説明する。図9に示す処理は、図8のS806の処理によって、共有メモリ300のメッセージエリア310にデータの書き込み指示を含むメッセージが登録された後に実行される。
図9は、本発明の第1の実施の形態の記憶デバイス500にデータを書き込む処理の流れを説明する図である。なお、太線矢印は、データの流れを示している。
図9に示す図では、チャネルアダプタ100によって記憶デバイスD1(500A)に対するデータの書き込み要求を受け付け、キャッシュ200に書き込みデータが格納された状態となっている(S901)。
MPD1(430A)は、共有メモリ300にデータの書き込み要求を含むメッセージを検出すると、DRR1(440A)にパリティデータを作成するように指示する(S902)。
DRR1(440A)は、パリティデータを作成するために、記憶デバイス500B(D2)及び記憶デバイス500C(D3)に格納されたデータの取得を要求する。DMA回路D2(410B)及びD3(410C)は、要求されたデータを読み出し、データが格納されていた記憶デバイスに対応するキャッシュ200の領域D2及びD3に読み出されたデータを書き込む(S903)。
DRR1(440A)は、キャッシュ200に格納されたデータを取得し(S904)、パリティデータを作成する。そして、作成されたパリティデータをキャッシュ200の対応する領域P1に書き込む(S905)。
最後に、DMA回路D1(410A)は、記憶デバイスD1(500A)に書き込みデータを書き込む(S906)。さらに、DMA回路D4(410D)は、作成されたパリティデータを対応する記憶デバイスP1(500D)に書き込む(S907)。
図10では、図9において説明した各手順をフローチャートに示し、さらに詳しく説明する。
図10は、本発明の第1の実施の形態のキャッシュ200に記憶されたデータを記憶デバイス500に格納するために、共有メモリ300にメッセージを書き込む手順を示すフローチャートである。
ディスクアダプタ400のMPD1(430A)は、周期的に、MPD1(430A)によって管理される記憶デバイス500に対するデータの書き込み指示を含むメッセージが共有メモリ300に含まれているか否かを判定する(S1001)。ここでは、記憶デバイスD1(500A)に対する書き込み指示を含むメッセージが共有メモリ300に含まれているか否かを判定する。共有メモリ300にデータの書き込み指示が含まれていない場合には(S1001の結果が「N」)、データの書き込み指示を含むメッセージが共有メモリ300に登録されるまで待機する。
MPD1(430A)は、共有メモリ300に書き込み指示を含むメッセージが含まれている場合には(S1001の結果が「Y」)、データの書き込みによって変更されるパリティデータを更新するために、記憶デバイスD2(500B)及びD3(500C)に格納された対応するデータをキャッシュ200に読み出す(S1002)。具体的には、書き込みデータに対応する記憶デバイスD2(500B)及びD3(500C)に格納されたデータをキャッシュ200に読み出すための読み出し指示メッセージを共有メモリ300に書き込む。
MPD1(430A)は、S1002の処理で共有メモリ300に書き込まれた読み出し指示メッセージに基づいて、MPD2(430B)及びMPD3(430C)によってキャッシュ200に記憶デバイスD2(500B)及びD3(500C)に格納されたデータが書き込まれるまで待機する(S1003)。記憶デバイスD2(500B)及びD3(500C)に格納されたデータが書き込まれると、MPD1(430A)は、DRR1(440A)にパリティデータの作成を指示する(S1004)。
DRR1(440A)は、S1004の処理で指示された内容に基づいて、キャッシュ200の領域D1、D2及びD3に格納されたデータを読み出し、パリティデータを作成する。さらに、作成されたパリティデータをキャッシュ200の領域P1に書き込むように指示する(S1005)。
MPD1(430A)は、キャッシュ200の領域D1及び領域P1に格納されたデータを記憶デバイス500A及び500Dに書き込むために、MPD1(430A)及びMPD4(430D)に対する書き込み指示を含むメッセージを共有メモリ300に書き込む(S1006)。
MPD1(430A)は、キャッシュ200の領域D1及び領域P1に格納されたデータが記憶デバイス500A及び500Dに書き込まれるまで待機する(S1007)。データの書き込み完了後、S1001の処理で取得された書き込み指示に対する書き込み完了を示すメッセージを共有メモリ300に書き込む(S1008)。
図11は、本発明の第1の実施の形態の共有メモリ300に記憶されたメッセージに基づいて、記憶デバイス500に記憶されたデータをキャッシュ200に読み出すための手順を示すフローチャートである。
本処理は、パリティデータを作成する場合などに、記憶デバイス500に格納されたデータをキャッシュ200上に読み出す際に実行される。また、あらかじめ共有メモリ300のメッセージエリア310にデータの読み出しに必要なメッセージが格納され、ディスクアダプタ400のMP430がメッセージを検出して本処理が実行される。
MPDn(n:1〜4)430は、共有メモリ300のメッセージエリア310に、ディスクアダプタ400に対応する記憶デバイス500に格納されたデータの読み出し指示を含むメッセージが含まれているか否かを判定する(S1001)。
MPDn430は、データの読み出し指示を含むメッセージが含まれている場合には(S1001の結果が「Y」)、当該メッセージに基づいて、アドレス及び転送サイズを対応するDMA回路Dn410に設定する。さらに、記憶デバイス500の識別子、LBA(Logical Block Address)及び転送サイズを対応するプロトコルチップDnに設定する(S1102)。
プロトコルチップDn420は、設定された識別子の記憶デバイス500のLBAから設定された転送サイズ分のデータを転送する(S1103)。
DMA回路Dn410は、プロトコルチップDn420から転送されたデータを、設定されたキャッシュ200のアドレスに転送する(S1104)。
MPDn430は、データの読み出し完了後、S1101の処理で取得された読み出し指示に対する読み出し完了を示すメッセージを共有メモリ300に書き込む(S1105)。
図12は、本発明の第1の実施の形態の共有メモリ300に記憶されたメッセージに基づいて、キャッシュ200に記憶されたデータを記憶デバイス500に書き込む手順を示すフローチャートである。
本処理は、図10のS906の処理によって、共有メモリ300のメッセージエリア310に含まれる書き込み指示を含むメッセージに基づいて処理される。
MPDn430は、キャッシュ200に格納されたデータの記憶デバイス500に対する書き込み指示を含むメッセージが共有メモリ300のメッセージエリア310に含まれているか否かを判定する(S1201)。
MPDn430は、記憶デバイス500への書き込み指示を含むメッセージが含まれている場合には(S1201の結果が「Y」)、当該メッセージに基づいて、書き込みデータをキャッシュ200から読み出す。そして、対応する記憶デバイス500にデータを書き込むために、DMA回路Dn410にアドレス及び転送サイズを設定し、プロトコルチップDn420への転送を指示する。さらに、プロトコルチップDn420にデータを書き込む記憶デバイス500の識別子、LBA及び転送サイズを設定し、記憶デバイス500への転送を指示する(S1202)。
DMA回路Dn410は、S1202の処理で設定されたキャッシュ200のアドレスに基づいて、領域Dn又はP1に格納された転送数分のデータを読み出し、プロトコルチップDn420に転送する(S1203)。
プロトコルチップDn420は、DMA回路Dn410から転送データを受け取ると、S1202の処理で設定された転送サイズ分のデータを、設定された記憶デバイス500及び設定されたLBAに基づいて転送する(S1204)。
MPDn430は、共有メモリ300のメッセージエリア310に記憶デバイス500への書き込みの完了を示すメッセージを書き込む(S1205)。
本発明の第1の実施の形態では、記憶デバイス500がSSDであるため、データを格納する領域を一旦消去し、その後、データを書き込む。MPDn430は、記憶デバイス500へのデータの書き込みが完了すると、データが書き込まれた記憶デバイス500に対応するドライブ情報テーブル360のエントリの消去回数365を更新する(S1206)。消去回数365を更新する手順については、図13を参照しながら説明する。
図13は、本発明の第1の実施の形態のドライブ情報テーブル360の消去回数365を更新する手順を示すフローチャートである。
MPDn430は、まず、書き込みのあった記憶デバイス500に対応する消去回数365をドライブ情報テーブル360から取得する(S1301)。続いて、書き込みのあった記憶デバイス500に対応する消去単位366をドライブ情報テーブル360から取得する(S1302)。
SSDでは、前述したようにデータを書き込む場合に、所定の単位(消去単位366)の領域が消去される。したがって、記憶デバイス500に設定された転送長のデータが書き込まれる場合には、書き込みデータの転送長を消去単位366で除算した回数(小数点以下切り上げ)だけ消去が実行される。そこで、MPDn430は、書き込みデータの転送長を消去単位366で除算し、小数点以下を切り上げた回数を実消去回数として算出する(S1303)。さらに、算出された実消去回数を消去回数365に加算し、新たな消去回数365として更新する(S1304)。
ここで、図12のフローチャートの説明に戻る。
MPDn430は、更新された消去回数365をしきい値N2(355)と比較する(S1207)。しきい値N2(355)は、前述したように、RAIDグループごとに設定された値であって、記憶デバイス500の消去回数がしきい値N2(355)を超えるごとにスペア記憶デバイス550に移行させることによって(ダイナミックスペアリング)、RAIDグループを構成する記憶デバイス500の消去回数を平準化させる。したがって、更新された消去回数365がしきい値N2(355)を超えた場合には(S1207の結果が「Y」)、ダイナミックスペアリングを実行する。
MPDn430は、ダイナミックスペアリングを実行する前に、ダイナミックスペアリングを実行する対象の記憶デバイス500が既にダイナミックスペアリングを実行中であるか否かを判定する(S1208)。ダイナミックスペアリングの実行中の記憶デバイス500が更新され、再びダイナミックスペアリングの対象となる可能性があるためである。ダイナミックスペアリングが実行中である場合には(S1208の結果が「Y」)、本処理を終了する。
MPDn430は、更新された消去回数365がしきい値N2(355)を超え、かつ、ダイナミックスペアリングが実行中でない場合には(S1208の結果が「N」)、実際にダイナミックスペアリングを実行する(S1209)。
ダイナミックスペアリングの詳細については、図14及び図15を参照しながら説明する。
図14は、本発明の第1の実施の形態のダイナミックスペアリング実行時のデータの流れを説明する図である。
図14では、一例として、記憶デバイスD2(500B)をスペア記憶デバイス550にコピーするダイナミックスペアリングを実行する場合について示している。
ダイナミックスペアリングが実行されると、まず、記憶デバイスD2(500B)に格納されたデータがキャッシュ200の領域D2に格納される。続いて、スペア記憶デバイス550を制御するDMA回路410Aによってキャッシュ200の領域D2に格納されたデータがスペア記憶デバイス550に転送される。
図15は、本発明の第1の実施の形態のダイナミックスペアリングの手順を示すフローチャートである。
MPD1(430A)は、まず、ダイナミックスペアリングの対象となる記憶デバイス500に対応するドライブ情報テーブル360のエントリを更新する(S1501)。具体的には、ドライブID361が「DRV1−2」の記憶デバイスD2(500B)のドライブ属性363を「コピー元」に変更し、ドライブID361が「DRV16−1」のスペア記憶デバイス550のドライブ属性363を「コピー先」に変更する。さらに、ドライブID361が「DRV1−2」のコピー関連ID364を「DRV16−1」に、ドライブID361が「DRV16−1」のコピー関連ID364を「DRV1−2」に変更する。
MPD1(430A)は、次に、記憶デバイスD2(500B)のデータをスペア記憶デバイス550にコピーするために、共有メモリ300のメッセージエリア310にメッセージを書き込む(S1502)。書き込まれるメッセージには、MPD2(430B)に対し、記憶デバイスD2(500B)に格納されたデータをキャッシュ200に読み込む指示が含まれる。
MPD1(430A)は、MPD2(430B)によるキャッシュ200への読み出しが終了するまで待機する(S1503)。そして、キャッシュ200へのデータの読み出しが終了した後(S1503の結果が「Y」)、スペア記憶デバイス550にキャッシュ200に読み出されたデータを書き込むために、共有メモリ300のメッセージエリア310に書き込み指示を含むメッセージを書き込む(S1504)。
MPD1(430A)は、スペア記憶デバイス550へのデータの書き込みが終了するまで待機する(S1505)。そして、スペア記憶デバイス550へのデータの書き込みが終了すると(S1505の結果が「Y」)、RAIDグループ情報テーブル350のコピーポインタ354を更新する(S1506)。
さらに、MPD1(430A)は、すべてのデータのコピーが完了するまで、S1502からS1506までの処理を実行する(S1507)。
MPD1(430A)は、すべてのデータのコピーが完了すると(S1507の結果がY」)、RAIDグループ情報テーブル350のドライブID(357〜359)の値を更新する(S1508)。具体的には、ドライブID2(358)の値をスペア記憶デバイスであった「DRV16−1」に更新する。さらに、ドライブ情報テーブル360のドライブ状態362、ドライブ属性363及びコピー関連ID364を更新する。同様に、スペア記憶デバイス550に対応するRAIDグループ番号351が「Spare」のDRVID1(357)を「DRV2−1」に更新する。
最後に、MPD1(430A)は、RAIDグループ情報テーブル350のしきい値N2(355)を更新する(S1509)。具体的には、しきい値N2=しきい値N2+(しきい値N1(380)÷構成ドライブ台数(356))となる。このように、ダイナミックスペアリングが完了するたびに段階的にしきい値を大きくすることによって、ストレージシステム20に含まれるすべての記憶デバイス500に対してダイナミックスペアリングが実行された場合であっても、消去回数の大きい記憶デバイス500に対してダイナミックスペアリングを実行することができる。
ここで、ダイナミックスペアリング実行中の記憶デバイス500に対するデータの書き込み処理について説明する。ダイナミックスペアリング実行中であっても、図8に示したフローチャート及び図10に示したフローチャートのS1005までの処理、すなわち、データの書き込む要求を受け付けて、キャッシュ200にパリティデータを書き込むまでの処理は通常の場合と同じである。
MPD1(430A)は、キャッシュ200に記憶されたパリティデータを記憶デバイス500に格納するために、共有メモリ300のメッセージエリア310にデータの書き込み指示を含むメッセージを書き込む。具体的には、MPD4(430D)によって、キャッシュ200に記憶されたパリティデータが記憶デバイスP1(500D)に書き込まれるように、共有メモリ300のメッセージエリア310にメッセージを書き込む。
次に、MPD1(430A)は、キャッシュ200の領域D1に格納されたデータを書き込むアドレスを計算し、RAIDグループ情報テーブル350のコピーポインタ354と比較する。
書き込むアドレスがコピーポインタよりも小さい場合には、領域D1に格納されたデータを記憶デバイスD1(500A)及びスペア記憶デバイス550の両方に書き込むように、共有メモリ300のメッセージエリア310メッセージを書き込む。書き込まれるメッセージには、記憶デバイスD1(500A)及びスペア記憶デバイス550を制御するMPD1(430A)に対し、記憶デバイスD1(500A)及びスペア記憶デバイス550の両方にデータを書き込むように指示する内容が含まれる。
以降の処理については、図10に示したフローチャートのS1007以降の処理、図11及び図12のフローチャートに示した通常の手順と同じである。
最後に、記憶デバイス500を交換する手順について説明する。記憶デバイス500を交換する場合、交換された記憶デバイス500を含むRAIDグループでは、しきい値N2を交換前と同じ値にすると、ダイナミックスペアリングが実行されにくくなり、記憶デバイス500間で消去回数のばらつきが大きくなる可能性がある。そこで、交換された記憶デバイス500を含むRAIDグループのしきい値N2を初期化することによって、記憶デバイス500の消去回数を平準化するようにする。
図16は、本発明の第1の実施の形態のストレージシステムに含まれる記憶デバイスを交換する手順を示すフローチャートである。
MPD1(430A)は、記憶デバイス500を交換するために取り外す記憶デバイス500が指定されると、ドライブ情報テーブル360の指定された記憶デバイスに対応するエントリのドライブ状態362を「閉塞」に更新する(S1601)。取り外す記憶デバイス500は、障害が発生した場合であってもよいし、消去回数が所定の回数を超えた記憶デバイス500が取り外し対象として指定される。
MPD1(430A)は、さらに、ネットワーク40を介して、保守端末30に指定された記憶デバイスを交換するように通知する。そして、保守端末30を参照した保守員などによって、指定された記憶デバイス500が取り外され、新たな記憶デバイス500に交換される(S1602)。
MPD1(430A)は、指定された記憶デバイス500の交換が完了すると、対応する記憶デバイスのドライブ状態362を「Normal」に更新する(S1603)。
最後に、MPD1(430A)は、交換された記憶デバイス500が属するRAIDグループのしきい値N2(355)を更新する(S1604)。具体的には、しきい値N1(380)を、RAIDグループを構成する記憶デバイスの台数で除算した値にしきい値N2(355)を初期化する。
本発明の第1の実施の形態によれば、書き込み回数の多い記憶デバイスに格納されたデータをスペア記憶デバイスに移行させるダイナミックスペアリングを実行することによって、記憶デバイス間の書き込み回数(消去回数)を平準化させることができる。したがって、SSDのように書き込み回数に制限がある記憶デバイスであっても、各記憶デバイスの寿命を平準化させることができ、ストレージシステム全体の長寿命化を図ることができる。
また、本発明の第1の実施の形態によれば、各記憶デバイスの寿命を平準化させることによって、記憶デバイスの交換頻度を少なくすることが可能となり、運用コストを抑えることができる。
さらに、本発明の第1の実施の形態によれば、RAIDグループごとにダイナミックスペアリングを実行するための基準となるしきい値を設定し、段階的にしきい値を大きくすることによって、書き込み頻度の多いRAIDグループに過剰にダイナミックスペアリングが実行されることを防ぐことができる。同様に、RAIDグループ内の特定の記憶デバイスに書き込みが集中する場合にであっても、RAIDグループごとにしきい値が段階的に大きくなるため、特定の記憶デバイスに過剰にダイナミックスペアリングが実行されることを防ぐことができる。
(第2の実施の形態)
本発明の第1の実施の形態では、構成情報エリア340のドライブ情報テーブル360に記憶デバイス500ごとの消去回数が記録される構成としていたが、第2の実施の形態では、記憶デバイス500の内部で消去回数を記憶可能な場合について説明する。
本発明の第2の実施の形態では、各記憶デバイス500が消去回数を記録するため、データの書き込み処理と独立して周期的に記憶デバイス500の消去回数をディスクアダプタ400が収集し、ダイナミックスペアリングを実行することができる。なお、収集された記憶デバイス500ごとの消去回数は、構成情報エリア340に含まれるドライブ情報テーブル360に記憶される。
なお、第2の実施の形態において、第1の実施の形態と共通する内容については適宜説明を省略する。
図17は、本発明の第2の実施の形態の構成情報エリア340に各記憶デバイス500の消去回数を記憶する手順を説明する図である。
MPD1(430A)は、RAIDグループごとに、各記憶デバイス500の内部に記憶された消去回数を周期的にドライブ情報テーブル360の対応するエントリを更新するように指示する。具体的には、MPD1(430A)がメッセージエリア310に消去回数を更新する指示を含むメッセージを書き込み、ディスクアダプタ400に含まれるMP430が管理する記憶デバイス500の消去回数を取得し、ドライブ情報テーブル360の対応するエントリを更新する。
図18は、本発明の第2の実施の形態のダイナミックスペアリングを実行する手順を示すフローチャートである。
MPD1(430A)は、一定周期が経過したか否かを判定する(S1801)。一定周期が経過した場合には(S1801の結果が「Y」)、S1802以降の処理を実行し、ダイナミックスペアリングを実行するか否かを判定する。
MPD1(430A)は、記憶デバイスD1、D2、D3及びP1(500A〜500D)が接続されているMPD1〜D4(430A〜430D)に各記憶デバイスの消去回数を取得するために、共有メモリ300のメッセージエリア310に消去回数の読み込み指示を含むメッセージを書き込む(S1802)。
MPD1(430A)は、共有メモリ300にMPD1〜MPD4(430A〜430D)によって消去情報が読み出されるまで待機する(S1803)。MPD1(430A)は、すべての記憶デバイス500の消去回数の読み出しが完了した場合には(S1803の結果が「Y」)、ドライブ情報テーブル360の消去回数365と、RAIDグループ情報テーブル350のしきい値N2(355)とを比較する(S1804)。
MPD1(430A)は、消去回数がしきい値N2(355)を超える記憶デバイス500がRAIDグループに含まれる場合には(S1805の結果が「Y」)、当該記憶デバイス500に対してダイナミックスペアリングが実行中であるか否かを判定する(S1806)。当該記憶デバイス500がダイナミックスペアリング実行中でない場合には(S1806の結果が「N」)、図15に示したフローチャートに従って、ダイナミックスペアリングを実行する(S1807)。
なお、スペア記憶デバイス550は、ストレージシステム20に共通のスペア記憶デバイス550を設けるようにしてもよいし、RAIDグループごとにスペア記憶デバイス550を設けることによって、RAIDグループごとにスペア記憶デバイス550を含めた消去回数の平準化を行うようにしてもよい。
本発明の第2の実施の形態によれば、第1の実施の形態と同様に、RAIDグループ単位で書き込み回数を平準化させることができる。さらに、データの書き込み時と独立してダイナミックスペアリングを実行させることができるため、データの書き込み時の負荷を抑制することができる。
(第3の実施の形態)
本発明の第2の実施の形態では、RAIDグループごとにダイナミックスペアリングを実行したが、第3の実施の形態では、記憶デバイス500が属するRAIDグループに関わらず書き込み回数の大きい記憶デバイス500に対してダイナミックスペアリングが実行される。
また、第3の実施の形態では、第2の実施の形態と同様に、各記憶デバイス500で消去回数が記憶され、データの書き込み処理と独立してダイナミックスペアリングが実行される。
なお、第3の実施の形態において、第1の実施の形態及び第2の実施の形態と共通する内容については適宜説明を省略する。
図19は、本発明の第3の実施の形態の構成情報エリア340に各記憶デバイス500の消去回数を記憶する手順を説明する図である。
MPD1(430A)は、第2の実施の形態(図17)と同様に、各記憶デバイス500の内部に記憶された消去回数を周期的にドライブ情報テーブル360の対応するエントリを更新するように指示する。本発明の第3の実施の形態では、RAIDグループに関わらず、ストレージシステム20に含まれる記憶デバイス500の消去回数がそれぞれ更新する。
図20は、本発明の第3の実施の形態のダイナミックスペアリングを実行する手順を示すフローチャートである。
MPD1(430A)は、まず、一定周期が経過したか否かを判定する(S2001)。一定周期が経過した場合には(S2001の結果が「Y」)、S2002以降の処理を実行し、ダイナミックスペアリングを実行するか否かを判定する。
MPD1(430A)は、すべての記憶デバイス500が接続されているMPD1〜D4(430A〜430D)に各記憶デバイス500の消去回数を取得するために、共有メモリ300のメッセージエリア310に消去回数の読み込み指示を含むメッセージを書き込む(S2002)。
MPD1(430A)は、共有メモリ300に各MP430によって消去回数が取得されるまで待機する(S2003)。MPD1(430A)は、すべての記憶デバイス500の消去回数の取得が完了した場合には(S2003の結果が「Y」)、記憶デバイス500ごとの消去回数を比較する(S2004)。
MPD1(430A)は、まず、スペア記憶デバイス550の消去回数が、各MP430によって読み出された記憶デバイス500の消去回数の中で最大か否かを判定する(S2005)。スペア記憶デバイス550の消去回数が最大の場合には(S2005の結果が「Y」)、ダイナミックスペアリングを実行せずに、本処理を終了する。
一方、MPD1(430A)は、スペア記憶デバイス550の消去回数が最大でない場合には(S2005の結果が「N」)、読み出された消去回数の最大値と最小値の差をしきい値N3(390)と比較する(S2006)。
MPD1(430A)は、各記憶デバイス500の消去回数の最大値と最小値の差がしきい値N3(390)以下の場合には(S2006の結果が「N」)、各記憶デバイス500の消去回数の差が小さく平準化されていると判断することができるため、本処理を終了する。
MPD1(430A)は、各記憶デバイスの消去回数の最大値と最小値の差がしきい値N3(390)よりも大きい場合には(S2006の結果が「Y」)、各記憶デバイスの消去回数が平準化されていないため、ダイナミックスペアリングを実行する。
MPD1(430A)は、スペア記憶デバイス550の消去回数が最小であるか否かを判定する(S2007)。スペア記憶デバイス550の消去回数が最小の場合には(S2007の結果が「Y」)、消去回数が最大の記憶デバイス500との間でダイナミックスペアリングを実行する(S2009)。
一方、MPD1(430A)は、スペア記憶デバイス550の消去回数が最小でない場合には(S2007の結果が「N」)、消去回数が最小の記憶デバイスと最大の記憶デバイスとの間でダイナミックスペアリングを実行するために、まず、消去回数が最小の記憶デバイス500とスペア記憶デバイス550との間でダイナミックスペアリングを実行する(S2008)。その後、スペア記憶デバイス550と消去回数が最大の記憶デバイス500との間でダイナミックスペアリングを実行する(S2009)。例えば、記憶デバイスD2(500B)の消去回数が最大、記憶デバイスD1(500A)の消去回数が最小の場合には、まず、記憶デバイスD1(500A)とスペア記憶デバイス550との間でダイナミックスペアリングを実行する。その結果、記憶デバイスD1(500A)に格納されたデータがスペア記憶デバイス550に格納され、構成情報エリア340に格納された情報が更新される。さらに、もともと記憶デバイスD1であったスペア記憶デバイスと記憶デバイスD2(500B)との間でダイナミックスペアリングを実行することによって、記憶デバイスD1(500A)と記憶デバイスD2(500B)との間でダイナミックスペアリングを実行することができる。
なお、RAIDグループごとに設定されたしきい値N2に基づくダイナミックスペアリングを並行して実行するようにしてもよいし、しきい値N2を十分に大きな値に設定することによって、記憶デバイス500の消去回数の最大値と最小値に基づくダイナミックスペアリングのみが実行されるようにしてもよい。
本発明の第3の実施の形態によれば、第1の実施の形態の効果に加え、ストレージシステムに搭載されるすべての記憶デバイスを対象に書き込み回数を平準化することができるため、ストレージシステムの寿命をさらに延長させることができる。
本発明の第1の実施の形態の計算機システムの構成を示す図である。 本発明の第1の実施の形態の共有メモリに格納された情報を示す図である。 本発明の第1の実施の形態のメッセージテーブルの一例を示す図である。 本発明の第1の実施の形態の要求応答内容テーブルの一例を示す図である。 本発明の第1の実施の形態のRAIDグループ情報テーブルの一例を示す図である。 本発明の第1の実施の形態のドライブ情報テーブルの一例を示す図である。 本発明の第1の実施の形態のディスクアダプタの構成の一例を示す図である。 本発明の第1の実施の形態のホスト計算機からデータの書き込み要求を受け付け、記憶デバイスにデータを書き込む手順を示すフローチャートである。 本発明の第1の実施の形態の記憶デバイスにデータを書き込む処理の流れを説明する図である。 本発明の第1の実施の形態のキャッシュに記憶されたデータを記憶デバイスに格納するために、共有メモリにメッセージを書き込む手順を示すフローチャートである。 本発明の第1の実施の形態の共有メモリに記憶されたメッセージに基づいて、記憶デバイスに記憶されたデータをキャッシュに読み出す手順を示すフローチャートである。 本発明の第1の実施の形態の共有メモリに記憶されたメッセージに基づいて、キャッシュに記憶されたデータを記憶デバイスに書き込む手順を示すフローチャートである。 本発明の第1の実施の形態のドライブ情報テーブルの消去回数を更新する手順を示すフローチャートである。 本発明の第1の実施の形態のダイナミックスペアリング実行時のデータの流れを説明する図である。 本発明の第1の実施の形態のダイナミックスペアリングの手順を示すフローチャートである。 本発明の第1の実施の形態のストレージシステムに含まれる記憶デバイスを交換する手順を示すフローチャートである。 本発明の第2の実施の形態の構成情報エリアに各記憶デバイスの消去回数を記憶する手順を説明する図である。 本発明の第2の実施の形態のダイナミックスペアリングを実行する手順を示すフローチャートである。 本発明の第3の実施の形態の構成情報エリアに各記憶デバイスの消去回数を記憶する手順を説明する図である。 本発明の第3の実施の形態のダイナミックスペアリングを実行する手順を示すフローチャートである。
符号の説明
10 ホスト計算機
20 ストレージシステム
30 保守端末
40 ネットワーク
100 チャネルアダプタ
110 プロトコルチップ
120 DMA回路
130 MP
200 キャッシュ
300 共有メモリ
310 メッセージエリア
320 メッセージテーブル
330 要求応答内容テーブル
340 構成情報エリア
350 RAIDグループ情報テーブル
360 ドライブ情報テーブル
370 値エリア
400 ディスクアダプタ
410 DMA回路
420 プロトコルチップ
430 MP
440 DRR
500 記憶デバイス
550 スペア記憶デバイス

Claims (15)

  1. データを格納するストレージシステムであって、
    インターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記データを格納する複数の記憶デバイスと、を備え、
    前記複数の記憶デバイスには、予備の記憶デバイスが含まれ、
    前記メモリは、前記各記憶デバイスの識別子及び前記各記憶デバイスに格納されたデータが消去されたデータ消去回数を含む記憶デバイス構成情報を格納し、
    前記プロセッサは、
    前記データ消去回数が所定の第1のしきい値を超えた場合には、前記データ消去回数が所定の第1のしきい値を超えた記憶デバイスに格納されたデータを前記予備の記憶デバイスに複製し、
    前記データが複製された予備の記憶デバイスの識別子に、前記データ消去回数が所定の第1のしきい値を超えた記憶デバイスの識別子を割り当てることを特徴とするストレージシステム。
  2. 前記プロセッサは、前記データ消去回数が前記所定の第1のしきい値を超えた場合には、前記所定の第1のしきい値に所定の値を加算することによって、前記所定の第1のしきい値を更新することを特徴とする請求項1に記載のストレージシステム。
  3. 前記プロセッサは、前記複数の記憶デバイスに含まれる記憶デバイスが閉塞され、かつ、前記閉塞された記憶デバイスが新たな記憶デバイスと交換された場合には、前記更新された所定の第1のしきい値を初期化することを特徴とする請求項2に記載のストレージシステム。
  4. 前記プロセッサは、前記記憶デバイスに格納されたデータが消去されるごとに前記データ消去回数を更新することを特徴とする請求項1に記載のストレージシステム。
  5. 前記データは、RAIDグループを構成する前記複数の記憶デバイスによって冗長的に格納され、
    前記所定の第1のしきい値は、前記RAIDグループごとに設定されていることを特徴とする請求項1に記載のストレージシステム。
  6. 前記記憶デバイスには、当該記憶デバイスの前記データ消去回数が記録され、
    前記プロセッサは、
    前記複数の記憶デバイスから各記憶デバイスのデータ消去回数を収集し、
    前記収集されたデータ消去回数と前記所定の第1のしきい値とを周期的に比較することを特徴とする請求項1に記載のストレージシステム。
  7. 前記プロセッサは、
    前記複数の記憶デバイスのデータ消去回数の最大値及び最小値を取得し、
    前記データ消去回数の最大値と最小値との差が所定の第2のしきい値よりも大きい場合には、前記データ消去回数の最大値である記憶デバイスに格納されたデータと、前記データ消去回数の最小値である記憶デバイスに格納されたデータとを交換し、
    前記データ消去回数の最大値である記憶デバイス識別子と、前記データ消去回数の最小値である記憶デバイス識別子とを交換することを特徴とする請求項1に記載のストレージシステム。
  8. 前記記憶デバイスは、半導体記憶素子によって構成され、
    前記プロセッサは、前記記憶デバイスのデータが記憶されている領域にデータを書き込む場合には、前記データが書き込まれる領域を所定の単位で消去し、前記消去された領域にデータを書き込むことを特徴とする請求項1に記載のストレージシステム。
  9. 読み書きされるデータを格納するストレージシステムにおいて、前記データを格納する記憶デバイスの構成を管理する構成管理方法であって、
    前記ストレージシステムは、インターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、複数の前記記憶デバイスと、を備え、
    前記複数の記憶デバイスには、予備の記憶デバイスが含まれ、
    前記メモリは、前記各記憶デバイスの識別子及び前記各記憶デバイスに格納されたデータが消去されたデータ消去回数を含む記憶デバイス構成情報を格納し、
    前記方法は、
    前記プロセッサが、前記データ消去回数が所定の第1のしきい値を超えた場合には、前記データ消去回数が所定の第1のしきい値を超えた記憶デバイスに格納されたデータを前記予備の記憶デバイスに複製し、
    前記プロセッサが、前記データが複製された予備の記憶デバイスの識別子に、前記データ消去回数が所定の第1のしきい値を超えた記憶デバイスの識別子を割り当てることを特徴とする構成管理方法。
  10. 前記方法は、前記データ消去回数が前記所定の第1のしきい値を超えた場合には、前記プロセッサが、前記所定の第1のしきい値に所定の値を加算することによって、前記所定の第1のしきい値を更新することを特徴とする請求項9に記載の構成管理方法。
  11. 前記方法は、前記複数の記憶デバイスに含まれる記憶デバイスが閉塞され、かつ、前記閉塞された記憶デバイスが新たな記憶デバイスと交換された場合には、前記プロセッサが、前記更新された所定の第1のしきい値を初期化することを特徴とする請求項10に記載の構成管理方法。
  12. 前記方法は、前記プロセッサは、前記記憶デバイスに格納されたデータが消去されるごとに前記データ消去回数を更新することを特徴とする請求項9に記載の構成管理方法。
  13. 前記データは、RAIDグループを構成する前記複数の記憶デバイスによって冗長的に格納され、
    前記所定の第1のしきい値は、前記RAIDグループごとに設定されていることを特徴とする請求項9に記載の構成管理方法。
  14. 前記記憶デバイスには、当該記憶デバイスの前記データ消去回数が記録され、
    前記方法は、
    前記プロセッサが、前記複数の記憶デバイスから各記憶デバイスのデータ消去回数を収集し、
    前記プロセッサが、前記収集されたデータ消去回数と前記所定の第1のしきい値とを周期的に比較することを特徴とする請求項9に記載の構成管理方法。
  15. 前記方法は、
    前記プロセッサが、前記複数の記憶デバイスに含まれる記憶デバイスのデータ消去回数の最大値及び最小値を取得し、
    前記プロセッサが、前記データ消去回数の最大値と最小値との差が所定の第2のしきい値よりも大きい場合には、前記データ消去回数の最大値である記憶デバイスに格納されたデータと、前記データ消去回数の最小値である記憶デバイスに格納されたデータとを交換し、
    前記プロセッサが、前記データ消去回数の最大値である記憶デバイス識別子と、前記データ消去回数の最小値である記憶デバイス識別子とを交換することを特徴とする請求項9に記載の構成管理方法。
JP2008217801A 2008-08-27 2008-08-27 ストレージシステム及び構成管理方法 Pending JP2010055247A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008217801A JP2010055247A (ja) 2008-08-27 2008-08-27 ストレージシステム及び構成管理方法
US12/253,570 US20100057988A1 (en) 2008-08-27 2008-10-17 Storage system and method for managing configuration thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008217801A JP2010055247A (ja) 2008-08-27 2008-08-27 ストレージシステム及び構成管理方法

Publications (1)

Publication Number Publication Date
JP2010055247A true JP2010055247A (ja) 2010-03-11

Family

ID=41726992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008217801A Pending JP2010055247A (ja) 2008-08-27 2008-08-27 ストレージシステム及び構成管理方法

Country Status (2)

Country Link
US (1) US20100057988A1 (ja)
JP (1) JP2010055247A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5362123B1 (ja) * 2012-09-12 2013-12-11 株式会社東芝 アレイにおける誤り訂正符号ブロック配置位置を管理するストレージ装置、ストレージコントローラ及び方法
JP2015194942A (ja) * 2014-03-31 2015-11-05 日本電気株式会社 キャッシュ装置、ストレージ装置、キャッシュ制御方法、及びストレージ制御プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5641900B2 (ja) * 2010-11-29 2014-12-17 キヤノン株式会社 管理装置及びその制御方法、並びにプログラム
WO2012157029A1 (en) * 2011-05-19 2012-11-22 Hitachi, Ltd. Storage control apparatus and management method for semiconductor-type storage device
US10481828B2 (en) * 2017-10-10 2019-11-19 Seagate Technology, Llc Slow drive detection

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP2007149241A (ja) * 2005-11-29 2007-06-14 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
TWI354996B (en) * 2007-12-31 2011-12-21 Phison Electronics Corp Wear leveling method and controller thereof
US8275928B2 (en) * 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5362123B1 (ja) * 2012-09-12 2013-12-11 株式会社東芝 アレイにおける誤り訂正符号ブロック配置位置を管理するストレージ装置、ストレージコントローラ及び方法
US8627181B1 (en) 2012-09-12 2014-01-07 Kabushiki Kaisha Toshiba Storage apparatus, storage controller, and method for managing locations of error correcting code blocks in array
WO2014041638A1 (ja) * 2012-09-12 2014-03-20 株式会社 東芝 アレイにおける誤り訂正符号ブロック配置位置を管理するストレージ装置、ストレージコントローラ及び方法
JP2015194942A (ja) * 2014-03-31 2015-11-05 日本電気株式会社 キャッシュ装置、ストレージ装置、キャッシュ制御方法、及びストレージ制御プログラム
US9459996B2 (en) 2014-03-31 2016-10-04 Nec Corporation Cache device, storage apparatus, cache controlling method

Also Published As

Publication number Publication date
US20100057988A1 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
WO2016051512A1 (ja) 分散型ストレージシステム
JP4990066B2 (ja) 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP5437373B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
US8117409B2 (en) Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
JP6807376B2 (ja) 仮想ストレージシステム
JP4961319B2 (ja) 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
JP4684864B2 (ja) 記憶装置システム及び記憶制御方法
JP6007332B2 (ja) ストレージシステム及びデータライト方法
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
EP1970831A2 (en) Storage apparatus
JP2008181271A (ja) 仮想ボリュームに記憶されたデータをバックアップする記憶制御装置
JP2010020431A (ja) 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法
JP2011076286A (ja) ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法
JP2010152688A (ja) 記憶領域管理装置、記憶領域管理方法
JP4804218B2 (ja) 記憶媒体への書き込み回数を管理する計算機システム及びその制御方法
JP2010055247A (ja) ストレージシステム及び構成管理方法
JP2020154587A (ja) 計算機システム及びデータ管理方法
JP2018181190A (ja) ストレージ装置、およびストレージ制御プログラム
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2022016753A (ja) ストレージシステム、制御方法及びプログラム
JP2007087062A (ja) アレイ型記憶装置
WO2018142622A1 (ja) 計算機
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム