(57)【要約】【課題】リードレスポンスの速いフラッシュメモリをストレージシステムに搭載し、フラッシュメモリの書き込み回数を制限することでシステムの寿命を延ばすストレージシステム及びデータの保存方法を提案しようとするものである。【解決手段】上位装置からのデータが入出力される第１記憶デバイスと、第１記憶デバイスに対するデータの入出力を制御する第１記憶デバイス制御部と、データのパリティデータを算出する演算回路部と、パリティデータが入出力される第２記憶デバイスと、第２記憶デバイスに対するパリティデータの入出力を制御する第２記憶デバイス制御部と、を備え、第１記憶デバイスは第２記憶デバイスよりリードアクセスの速い記憶デバイスを備えることとした。【選択図】図１
2009238094.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からのデータが入出力される第１記憶デバイスと、
前記第１記憶デバイスに対する前記データの入出力を制御する第１記憶デバイス制御部と、
前記データのパリティデータを算出する演算回路部と、
前記パリティデータが入出力される第２記憶デバイスと、
前記第２記憶デバイスに対する前記パリティデータの入出力を制御する第２記憶デバイス制御部と、を備え、
前記第１記憶デバイスは前記第２記憶デバイスよりリードアクセスの速い記憶デバイスであること
を特徴とするストレージシステム。
【請求項２】
前記第１記憶デバイス制御部と前記第２記憶デバイス制御部とが物理的に一体化されている
ことを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記第２記憶デバイスが複数設けられ、
前記第２記憶デバイス制御部は、複数の前記第２記憶デバイスの記憶領域内に、前記演算回路により算出された前記パリティデータを分散して格納する
ことを特徴とする請求項１記載のストレージシステム。
【請求項４】
前記演算回路部は、前記第２記憶デバイス制御部内に設けられる
ことを特徴とする請求項１記載のストレージシステム。
【請求項５】
前記第１記憶デバイスは、フラッシュメモリである
ことを特徴とする請求項１記載のストレージシステム。
【請求項６】
上位装置からのデータを第２記憶デバイスよりリードレスポンスの速い第１記憶デバイスに入出力するステップと、
前記第１記憶デバイスに対する前記データの入出力を第１記憶デバイス制御部で制御するステップと、
前記データのパリティデータを演算回路部で算出するステップと、
前記パリティデータを第２記憶デバイスに格納するステップと、
前記第２記憶デバイスに対する前記パリティデータの入出力を第２記憶デバイス制御部で制御するステップと、
を備えることを特徴とするデータ保存方法。
【請求項７】
前記第１記憶デバイス制御部と前記第２記憶デバイス制御部とが物理的に一体化されている
ことを特徴とする請求項６記載のデータ保存方法。
【請求項８】
前記第２記憶デバイスが複数設けられ、
前記第２記憶デバイス制御部では、複数の前記第２記憶デバイスの記憶領域内に、前記演算回路により算出された前記パリティデータを分散して格納するステップをさらに有する
ことを特徴とする請求項６記載のデータ保存方法。
【請求項９】
前記演算回路部は、前記第２記憶デバイス制御部内に設けられる
ことを特徴とする請求項６記載のデータ保存方法。
【請求項１０】
前記第１記憶デバイスは、フラッシュメモリである
ことを特徴とする請求項６記載のデータ保存方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及び保存方法に関する。特に記憶デバイスとしてフラッシュメモリが採用されたストレージシステムについて適用する。
【背景技術】
【０００２】
近年では、ストレージシステムの記憶デバイスとしてはハードディスクドライブが主流となっている。これに伴ってハードディスクドライブに関する技術関心が相次いで行われ、ハードディスクにおける単位面積当たりの記憶容量も飛躍的に向上している。また、複数のハードディスクドライブをＲＡＩＤ（Redundant Array of Independent/Inexpensive Disks）方式で管理することで信頼性も向上している。しかし、ハードディスクドライブのリードレスポンスは、数ｍｓ以上と遅く、このリードレスポンスの遅さがハードディスクドライブを使用するストレージシステムの性能のボトルネックとなっている。
【０００３】
このボトルネックを解消するため、近年では、データの書き換えが自由に行なえ、かつ電源を切ってもデータが消滅しない半導体メモリであるフラッシュメモリが記憶デバイスとして広く利用されるようになってきている。フラッシュメモリのリードレスポンスは、ハードディスクドライブのリードレスポンスの３０倍から４０倍もの速さである。そしてこのような普及に伴って、フラッシュメモリの単位ビット当たりのコストも低下してきている。
【０００４】
今後、記憶デバイスとしてフラッシュメモリを搭載したストレージシステムが登場することが予想される。そして、このような構成を採用することによって、アクセス速度が速く、かつ消費電力が少ないストレージシステムを構築できるものと考えられる。
【０００５】
なお、下記特許文献１には、フラッシュメモリとハードディスクドライブとを混載したストレージシステムが提案されている。
【特許文献１】特開２００７−６６１２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
フラッシュメモリは、１０万回程度の書き込み回数しか保証されていない。このためフラッシュメモリをストレージシステムの記憶デバイスとして採用する場合、このようなフラッシュメモリの特性を考慮した対策を講じておかなければ、フラッシュメモリの故障が頻発することが予想される。この結果、対策を講じなければ、フラッシュメモリの交換作業に多くの費用及び労力が必要となって、ストレージシステムの運用コストが激増することになるばかりでなく、データ保護の観点からもストレージシステムの信頼性を失うおそれもある。
【０００７】
そこで、本発明は、リードレスポンスの速いフラッシュメモリをストレージシステムに搭載し、フラッシュメモリの書き込み回数を制限することでシステムの寿命を延ばすストレージシステム及びデータの保存方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、本発明は、上位装置からのデータが入出力される第１記憶デバイスと、第１記憶デバイスに対するデータの入出力を制御する第１記憶デバイス制御部と、データのパリティデータを算出する演算回路部と、パリティデータが入出力される第２記憶デバイスと、第２記憶デバイスに対するパリティデータの入出力を制御する第２記憶デバイス制御部と、を備え、第１記憶デバイスは第２記憶デバイスよりリードアクセスの速い記憶デバイスであることを特徴とする。
【０００９】
その結果、データが更新される度に更新されるパリティデータの格納を第２記憶デバイスに集中して行えるため、通常のデータは第２記憶デバイスよりリードレスポンスの速い第１記憶デバイスから読み出すことができる。
【００１０】
また、本発明においては、上位装置からのデータを第２記憶デバイスよりリードレスポンスの速い第１記憶デバイスに入出力するステップと、第１記憶デバイスに対するデータの入出力を第１記憶デバイス制御部で制御するステップと、データのパリティデータを演算回路部で算出するステップと、パリティデータを第２記憶デバイスに格納するステップと、第２記憶デバイスに対するパリティデータの入出力を第２記憶デバイス制御部で制御するステップと、を備えることを特徴とする。
【００１１】
その結果、データが更新される度に更新されるパリティデータの格納を第２記憶デバイスに集中して行えるため、通常のデータは第２記憶デバイスよりリードレスポンスの速い第１記憶デバイスから読み出すことができる。
【発明の効果】
【００１２】
本発明によれば、リードレスポンスの速いフラッシュメモリをストレージシステムに搭載し、フラッシュメモリの書き込み回数を制限することでシステムの寿命を延ばすことができる。
【発明を実施するための最良の形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）本実施の形態によるストレージシステムの構成
（１−１）ストレージシステムの外観構成
図１において、１は全体として本実施の形態によるストレージシステムを示す。このストレージシステム１は、データの入出力制御を行なうデータ入出力制御機能が搭載された記憶制御装置２と、複数のフラッシュメモリパッケージ１３が収納された記憶装置３とを備えて構成される。
【００１５】
記憶制御装置２は、直方体形状のラックフレーム１０内に、それぞれ複数の冷却ファンユニット１１、ハードディスクドライブユニット１２、フラッシュメモリパッケージ１３及び論理基板１４と、電源バッテリユニット１５とが複数収容されて構成される。
【００１６】
冷却ファンユニット１１は、１又は複数のファンを内蔵するユニットであり、フラッシュメモリパッケージ１３や、ハードディスクドライブユニット１２及び論理基板１４等において発生した熱をラックフレーム１０の外部に排出するために用いられる。
【００１７】
ハードディスクドライブユニット１２は、所定大きさの筐体に例えば3.5インチのハードディスクドライブが収納されて構成される。かかる筐体の後端部側にはコネクタ（図示せず）が設けられており、このコネクタをラックフレーム１０内に配置されたバックボード（図示せず）上のコネクタ（図示せず）に嵌め合わせることにより、当該ハードディスクドライブユニット１２をバックボードに物理的及び電気的に接続した状態に装填することができるようになされている。
【００１８】
フラッシュメモリパッケージ１３は、例えば図２に示すように、それぞれ複数のフラッシュメモリチップ２０が実装された複数のフラッシュメモリモジュール（以下、フラッシュメモリとよぶ）２１が、所定大きさの配線基板２２上に交換自在に装着されて構成される。この配線基板２２の一端側にはフラッシュメモリ制御ＬＳＩ（Large Scale Integration circuit）２３が実装されており、このフラッシュメモリ制御ＬＳＩ２３内に形成された後述のフラッシュメモリ制御部３３によって、そのフラッシュメモリパッケージ１３内の各フラッシュメモリチップ２０に対するデータの入出力を制御し得るようになされている。
【００１９】
またフラッシュメモリパッケージ１３の後端部側にはコネクタ（図示せず）が設けられており、このコネクタをラックフレーム１０内に配置されたバックボード（図示せず）上の対応するコネクタに嵌め合わせることによって、当該フラッシュメモリパッケージ１３をバックボードに物理的及び電気的に接続した状態に装填することができるようになされている。
【００２０】
論理基板１４は、図３で後述するチャネル制御部３１、ディスク制御部３２、キャッシュメモリ３４、キャッシュ制御部３５、接続部３６、プロセッサ制御部３７等が形成されて構成される。これら論理基板１４は、ラックフレーム１０内に配置されたバックボード（図示せず）に挿抜自在に接続されており、このバックボードを介してラックフレーム１０内に装填された他の論理基板１４等と通信を行なえるように構成されている。
【００２１】
電源バッテリユニット１５は、電源ユニット部１５Ａ及びバッテリユニット部１５Ｂから構成される。このうち電源ユニット部１５Ａは、外部から供給される商用交流電力を直流電力に変換し、これを記憶制御装置２内の各部位にそれぞれ供給する。またバッテリユニット部１５Ｂは、停電時や電源ユニット部１５Ａの異常時に、記憶制御装置２内の各部位に電力を供給するための予備電源として用いられる。
【００２２】
ラックフレーム１０は、その内部が仕切り板によって複数段に区分けできるように構成されている。本実施の形態においては、ラックフレーム１０内が全部で９段に区分けされており、その最上段及び上から６段目に冷却ファンユニット１１、上から２段目及び３段目にハードディスクユニット１２、上から４段目及び５段目にフラッシュメモリパッケージ１３、上から７段目及び８段目に論理基板１４、最下段に電源バッテリユニット１５がそれぞれ収納されている。
【００２３】
一方、記憶装置３は、ラックフレーム１６内に、冷却ファンユニット１１、複数のフラッシュメモリパッケージ１３及び電源バッテリユニット１５が収容されて構成される。この記憶装置３は、ファイバーチャネル（Fibre channel）などからなる通信ケーブル（図示せず）を介して記憶制御装置２と接続されており、これにより記憶制御装置２内の論理基板１４が通信ケーブルを介して記憶装置３に搭載された各フラッシュメモリパッケージ１３と通信を行なえるように構成されている。
【００２４】
ラックフレーム１６は、記憶制御装置２のラックフレーム１１とほぼ同様の構成を有する。本実施の形態においては、ラックフレーム１６内が全部で８段に区分けされており、その最上段に冷却ファンユニット１１、最下段に電源バッテリユニット１５がそれぞれ収納され、これら最上段及び最下段以外の各段部にそれぞれフラッシュメモリパッケージ１３が収納されている。
【００２５】
（１−２）ストレージシステムの内部構成
図３は、本実施の形態によるストレージシステム１の内部構成を示す。この図３に示すように、ストレージシステム１は、チャネル制御部３１、ハードディスクドライブ４１、ディスク制御部３２、フラッシュメモリ２０、フラッシュメモリ制御部３３、キャッシュメモリ３４、キャッシュ制御部３５、接続部３６、プロセッサ制御部３７及び共有メモリ３８を備えて構成される。
【００２６】
チャネル制御部３１は、情報処理装置３０との間のインタフェースとして機能し、当該情報処理装置３０との間で各種コマンドやデータを送受する。また、チャネル制御部３１は、情報処理装置３０からのデータに基づいてパリティデータを生成するための演算回路３１０を備える。演算回路３１０の構成は後述で説明する。
【００２７】
ハードディスクドライブ４１は、第２記憶デバイスであって、上述のようにハードディスクドライブユニット１２内に収納された状態でストレージシステム１に搭載され、プロセッサ制御部３７によりＲＡＩＤ方式で運用される。ハードディスクドライブ４１としては、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なハードディスクドライブや、ＳＡＴＡ（Serial AT Attachment）ディスク等の安価なハードディスクが適用される。
【００２８】
ディスク制御部３２は、第２記憶デバイス制御部であって、例えばファイバーチャネルケーブルを介して記憶制御装置２及び記憶装置３にそれぞれ搭載された各ハードディスクドライブと接続されている。ディスク制御部３２は、これらハードディスクドライブ４１に対するインタフェースとして機能し、ハードディスクドライブ４１に対するデータの入出力を制御する。
【００２９】
フラッシュメモリ２1は、第１記憶デバイスであって、書き換え可能な不揮発性の半導体メモリのグループであり、上述のようにフラッシュメモリパッケージ１３としてストレージシステム１に搭載される。
【００３０】
複数のフラッシュメモリ２０、及び、１又は複数のハードディスクドライブ４１により複数のパリティグループＰＧが形成され、このパリティグループＰＧが提供する物理的な記憶領域上に１つの論理的なボリューム（以下、これを論理ボリュームと呼ぶ）ＬＤＥＶが設定される。パリティグループＰＧとは、同一のパリティデータを共有するデータ群と、そのデータ群から算出されるパリティデータと、のグループをいう。
【００３１】
図４には、論理ボリュームを形成させる一例を示している。本実施の形態では、データＤ１−Ｄ４と後述する演算回路３１０によって演算され、算出されたパリティデータＰとは、複数のフラッシュメモリ２１と少なくとも１台のハードディスクドライブ４１が提供する物理的な記憶領域上に形成される論理ボリュームＬＤＥＶに格納される。パリティデータＰは、上位装置である情報処理装置からのデータＤ１−Ｄ４を保護するためのデータであって、データＤ１−Ｄ４のうちいずれかのデータが消失した場合にも、消失したデータを復旧させるために使用するデータのことをいう。
【００３２】
そして、情報処理装置３０からのデータＤ１−Ｄ４は、論理ボリュームＬＤＥＶと対応付けられている複数のフラッシュメモリ２１に格納され、パリティデータＰは、論理ボリュームＬＤＥＶと対応付けられているハードディスクドライブ４１に格納される。
【００３３】
情報処理装置３０からのデータＤ１−Ｄ４及びパリティデータＰは、この論理ボリュームＬＤＥＶに、フラッシュメモリ２１上及びハードディスクドライブ４１上のデータ管理単位である所定大きさのブロックを単位として読み書きされる。
【００３４】
各論理ボリュームＬＤＥＶには、それぞれ固有の識別番号（ＬＵＮ：Logical Unit Number）が割り当てられる。そしてデータの入出力は、このＬＵＮと、各ブロックにそれぞれ割り当てられるそのブロックに固有のブロック番号とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００３５】
フラッシュメモリ制御部３３は、第１記憶デバイス制御部であって、上述のように各フラッシュメモリパッケージ１３にそれぞれ実装されたフラッシュメモリ制御ＬＳＩ２３内に形成される。フラッシュメモリ制御部３３は、フラッシュメモリ２１に対するインタフェースとして機能し、同じフラッシュメモリパッケージ１３内の各フラッシュメモリ２１に対するデータの入出力を制御する。
【００３６】
キャッシュメモリ３４は、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等の揮発メモリから構成される。またキャッシュ制御部３５は、キャッシュメモリ３４に対するデータの入出力を制御する。
【００３７】
接続部３６は、例えば相互接続可能なスイッチ又はバス等で構成される。チャネル制御部３１、ディスク制御部３２、フラッシュメモリ制御部３３、キャッシュ制御部３５、プロセッサ制御部３７及び共有メモリ３８間のデータやコマンドの授受は、この接続部３６を介して行われる。
【００３８】
共有メモリ３８は、チャネル制御部３１、ディスク制御部３２及びフラッシュメモリ制御部３３により共有される記憶メモリである。共有メモリ３８は、主にストレージシステム１の電源投入時に論理ボリュームＬＤＥＶから読み出されたシステム構成情報及び各種制御プログラムや、情報処理装置３０からのコマンドなどを記憶するために利用される。
【００３９】
また、共有メモリ３８には、図５に示すように、管理テーブル３８０、情報処理装置３０からのデータを論理ボリュームＬＤＥＶに書き込むためのライトプログラム３８１、情報処理装置３０に要求されたデータを論理ボリュームＬＤＥＶから読み出すためのリードプログラム３８２、及び、障害が生じた場合に消失したデータを回復させるためのコピーコレクションプログラム３８３、が格納される。
【００４０】
管理端末４０は、例えば、ＣＰＵ（図示せず）、メモリ（図示せず）及び康住する管理画面ＳＣ１等のハードウェア資源を備えるコンピュータシステムである。管理者は、管理端末４０を入力操作することにより、ストレージシステム１を管理するためのコマンドをストレージシステム１に送信する。ストレージシステム１を管理するためのコマンドとしては、例えば、ハードディスクドライブ４１の増設或いは減設、又はＲＡＩＤ構成の変更を指示するためのコマンド、ストレージシステム１の動作状態の確認や故障部位を特定するためのコマンド等がある。
【００４１】
なお、本実施の形態によるストレージシステム１では、冗長性をもたせるため、ディスク制御部３２及びフラッシュメモリ制御部３３がそれぞれ２つずつ設けられている。
【００４２】
また、本実施の形態では、フラッシュメモリ制御部３３とフラッシュメモリ２１とのインタフェース、及び、ハードディスク制御部３２とハードディスクドライブ４１とのインタフェースには、ＳＡＳを使用する。
【００４３】
（１−３）管理テーブルの構成
それでは次に、共有メモリ３８に格納される管理テーブル３８０について説明する。
【００４４】
図６に示すように、管理テーブル３８０は、フラッシュメモリ２１に情報処理装置３０からのデータを格納し、ハードディスクドライブ４１にパリティデータＰを格納するよう管理するためのテーブルである。この管理テーブル３８０は、管理端末４０の画面上に出力される。
【００４５】
管理テーブル３８０は、「データ名」欄３８１０、そのデータをキャッシュメモリ３４上に一時的に格納したアドレスを示す「メモリアドレス」欄３８１１、及び、そのデータの長さを示す「データ長」欄３８１２、「パリティグループ番号」欄３８１３、「論理ボリューム番号」欄３８１４、「フラッシュメモリ番号／ハードディスクドライブ番号」欄３８１５、及び「アドレス」欄３８１６から構成される。
【００４６】
「パリティグループ番号」欄３８１３では、そのデータが所属するパリティグループＰＧの番号が登録される。
【００４７】
「論理ボリューム番号」欄３８１４では、そのデータを格納する論理ボリュームＬＤＥＶの番号が登録される。
【００４８】
また、「フラッシュメモリ番号／ハードディスクドライブ番号」欄３８１５では、そのデータを格納する論理ボリュームＬＤＥＶと対応付けされ、且つ、実際にデータを格納するフラッシュメモリ番号又はハードディスクドライブ番号が登録される。
【００４９】
そして、「アドレス」欄３８１６は、そのデータを格納したフラッシュメモリ２１内又はハードディスクドライブ４１内のアドレスが登録される。
【００５０】
（１−４）ライト処理
ではどのようにデータをフラッシュメモリ２１に格納し、パリティデータＰをハードディスクドライブ４１に格納するかというライト処理について説明する。ライト処理は、プロセッサ制御部３７がライトプログラム６２１に基づいて実行する。
【００５１】
図７は、ストレージシステム１内でのライト処理を示すフローチャートである。
【００５２】
まず、プロセッサ制御部３７は、情報処理装置３０からのデータ（以下、ホストデータ）Ｄ１−Ｄ４をキャッシュメモリに格納後、情報処理装置３０に完了報告を通知するとライトプログラム６２１を起動させて、ライト処理を開始する（Ｓ０）。
【００５３】
次にプロセッサ制御部３７は、キャッシュ制御部３５にホストデータを読み出す旨のリード要求を発行する（Ｓ１）。そうすると、キャッシュ制御部３５がキャッシュメモリからホストデータを読み出し、キャッシュ制御部３５がホストデータＤ１−Ｄ４をプロセッサ制御部３７に送信する（Ｓ２）。
【００５４】
ホストデータＤ１−Ｄ４を受信したプロセッサ制御部３７は、このホストデータＤ１−Ｄ４に対するパリティデータＰを演算回路３１０で演算し、生成する（Ｓ３）。演算回路３１０での演算の説明は後述する。その後、プロセッサ制御部３７は、チャネル制御部３１で演算したパリティデータＰをキャッシュ制御部３５に送信する（Ｓ４）。そうすると、キャッシュ制御部３５がキャッシュメモリ３４に演算したパリティデータＰを格納する（Ｓ５）。同時に、プロセッサ制御部３７は、演算したパリティデータＰを管理テーブル６２０に登録する。
【００５５】
プロセッサ制御部３７は、フラッシュメモリ制御部３３に対してホストデータＤ１−Ｄ４をフラッシュメモリ２１に書き込む旨、及び、ディスク制御部３２に対してパリティデータをハードディスクドライブ４１に書き込む旨のライト要求を発行する（Ｓ６）。
【００５６】
フラッシュメモリ制御部３３は、管理テーブル６２０を参照し、キャッシュ制御部３５にホストデータＤ１−Ｄ４を読み出す旨のリード要求を発行する（Ｓ７）。そうするとキャッシュ制御部３５は、ホストデータＤ１−Ｄ４をキャッシュメモリ３４から読み出して（Ｓ８）、フラッシュメモリ制御部３５に読み出したホストデータＤ１−Ｄ４を送信する（Ｓ９）。その後、フラッシュメモリ制御部３５は、読み出したホストデータＤ１−Ｄ４を複数のフラッシュメモリ２１に格納し（Ｓ１０）、管理テーブルの該当する箇所にホストデータに関する情報を登録する。
【００５７】
また、プロセッサ制御部３７は、管理テーブル６２０を参照し、キャッシュ制御部３５にパリティデータＰを読み出すように、リード要求を発行する（Ｓ１１）。そうするとキャッシュ制御部３５は、パリティデータＰをキャッシュメモリ３４から読み出して（Ｓ１２）、ディスク制御部３５に読み出したパリティデータＰを送信する（Ｓ１３）。ディスク制御部３５がハードディスクドライブ４１にパリティデータＰを格納し（Ｓ１４）、管理テーブルの該当する箇所にパリティデータＰに関する情報を登録する。
【００５８】
プロセッサ制御部３７は、フラッシュメモリ制御部３３から完了報告を受信し（Ｓ１５）、ディスク制御部３２から完了報告を受信すると（Ｓ１６）、ライト処理を終了する（Ｓ１７）。
【００５９】
ここで、図８に示すように、1台のハードディスクドライブ４１の記憶領域にパリティデータＰを保存するのではなく、複数台のハードディスクドライブ４１の記憶領域にパリティデータＰ１−Ｐ３を保存する構成を用いてもよい。この場合、図９に示すように、1台のハードディスクドライブがビジー状態にも関わらず、相次いでパリティデータを書き込もうとすると、最初のパリティデータの書き込み処理が終了して次のパリティデータの書き込み処理が開始される時間が遅延する。しかし、図８及び図１０に示すように、複数台のハードディスクドライブ４１をＲＡＩＤ構成にすれば、1台のハードディスクドライブ４１がビジー状態であっても、他のハードディスクドライブ４１には影響を及ぼさないため、パリティデータＰ１−Ｐ３の書き込みが円滑に行える。加えて、パリティデータＰをパリティデータＰ１−Ｐ３に分散して複数のハードディスクドライブ４１に格納するため、パリティデータＰ１−Ｐ３の書き込む時間が短縮され、ライト性能の向上を図ることができる。
【００６０】
また、図１１に示すように、パリティデータＰ４−Ｐ６を１台のハードディスクドライブ４１に集中して格納するのではなく、複数台のハードディスクドライブ４１を用意して、パリティデータＰ４−Ｐ６が生成されるたびに異なるハードディスクドライブ４１に格納する構成を用いてもよい。この構成によっても、１台のハードディスクドライブ４１がビジー状態であっても、他のハードディスクドライブ４１には影響を及ぼさないため、パリティデータＰ４−Ｐ６の書き込みが円滑に行える。
【００６１】
このようにライト処理の場合には、本実施の形態のストレージシステムは、ホストデータをフラッシュメモリに格納し、パリティデータをハードディスクドライブに格納するように振り分けることができる。これにより、リードレスポンスの速いフラッシュメモリからデータを読み出せ、データを更新する度に書き込まれるパリティデータは書き込み回数の制限がないハードディスクを使用することで、システムの性能が向上する。特に、ＲＡＩＤ３はパリティデータを１台のハードディスクドライブに固定して格納するため、ＲＡＩＤ３を構築するストレージシステムにはもっとも有効である。
【００６２】
（１−５）演算処理
それでは具体的にどのように演算回路３１０でパリティデータＰを演算し、算出するのかという演算処理について説明する。図１２は演算回路３１０の構成図である。
【００６３】
演算回路３１０は、チャネル制御部３１が保持する回路であって、プロセッサ制御部３７からのパラメータに従って演算回路３１０内の各部に指示を行うパラメータ制御部３１１、演算や実行状態の保持に用いられるレジスタ３１２、実際に演算を実行する演算論理部３１３、及び、演算した値を一時的に保存するバッファ・メモリ３１４から主に構成されている。
【００６４】
ここでパラメータの内容を、図１３に示す。例えば、パラメータ「ＣＭＤ」は、演算方式の内容を定義している。具体的な「ＣＭＤ」の内容としては、パリティデータを生成する指示、パーシャルライトを生成する指示、消失データのコレクト指示、が挙げられる。
【００６５】
なお、パーシャルライトとは、あるデータが更新したことに伴って新たなパリティデータを演算することをいう。また、消失データのコレクトとは、あるデータが消失した等で障害が発生した場合に、他のデータとパリティデータとから消失したデータを演算することをいう。
【００６６】
また、図表の内容としては、パラメータ「ＣＣＭＡＤＲ」は、演算元のデータを読み出すアドレスが指示され、パラメータ「ＮＣＭＡＤＲ」は、演算後のデータの書き込みアドレスが指示される。パラメータ「ＬＥＮＧＴＨ」は、読み込むデータ長が指示され、パラメータ「ＳＴＳＡＤＲ」は演算の終了が指示される。パラメータ「ＰＲＭ」は、パティデータの演算の際に用いられる関数の係数が指示され、パラメータ「ＬＲＣ」はパラメータ「ＣＭＤ」が正しいか否かを判断するために保証コードの付与が指示される。なお、列挙したパラメータに限られず、演算に必要なパラメータは適宜設定されるものとする。
【００６７】
それでは、どのようにパリティデータを生成するかについて、具体的に説明する。図１４は、パリティデータを演算するためのフローチャートである。
【００６８】
プロセッサ制御部３７からパラメータ「ＣＭＤ」が書き込まれると（Ｓ２０）、演算回路３１０が起動する（Ｓ２１）。演算回路３１０のパラメータ制御部３１１は、パラメータ「ＣＣＭＡＤＲ」を発行し、キャッシュメモリ３４上のホストデータＤ１−Ｄ４を演算論理部３１３に読み出すよう指示をする（Ｓ２２）。そうすると、演算論理部３１３がキャッシュメモリ３４上のホストデータをキャッシュメモリ３４から読み出す（Ｓ２３）。
【００６９】
引き続きパラメータ制御部３１１は、パラメータ「ＰＲＭ」等の演算に必要なパラメータを発行して、演算論理部３１３に演算制御をするよう指示をすると（Ｓ２４）、演算論理部３１３は、ホストデータＤ１−Ｄ４のパリティデータＰを演算する（Ｓ２５）。パラメータ制御部３１１は、演算したパリティデータＰを、バッファ・メモリ３１４に一時的に格納する（Ｓ２６）。
【００７０】
パラメータ制御部３１１は、パラメータ「ＮＣＭＡＤＲ」を発行し、読み込んだホストデータＤ１−Ｄ４と演算したパリティデータＰとをキャッシュメモリ３４に書き戻すよう指示をする（Ｓ２７）。そうすると、演算論理部３１３が読み込んだホストデータＤ１−Ｄ４と演算したパリティデータＰとをキャッシュメモリ３４に書き戻して（Ｓ２８、Ｓ２９）、演算処理を終了する。
【００７１】
ここで、図１５に示すストレージシステム１００のように、演算回路３２０はディスク制御部３２が保持してもよい。この場合には、キャッシュメモリ３４からデータの読み出しを、ディスク制御部３２とフラッシュメモリ制御部３３とに、２回行わなければならないが、情報処理装置３０とチャネル制御部３１との間のトランザクションに影響を与えなくて済む。
【００７２】
また、図１６に示すストレージシステム１００´のように、演算回路３２０はディスク制御部３２が保持しつつ、さらにブロードキャスト機能をもつ接続部３６´の構成としてもよい。この場合には、接続部３６´がキャッシュメモリ３４から読み出したデータをディスク制御部３２とフラッシュメモリ制御部３３とに送信することができるので、キャッシュメモリ３４からデータの読み出しを複数回行う必要がない。このため、情報処理装置３０とチャネル制御部３１との間だけではなく、キャッシュメモリ３４と接続部３６´との間のトランザクションに影響を与えなくて済む。
【００７３】
（１−６）リード処理
では次に、どのようにデータをフラッシュメモリ２１から読み出すかというリード処理について説明する。リード処理は、プロセッサ制御部３７がリードプログラム６２２に基づいて実行する。
【００７４】
図１７は、ストレージシステム１内でのリード処理を示すフローチャートである。
【００７５】
まず、プロセッサ制御部３７は、情報処理装置３０から、あるデータＤの取得要求を受信すると（Ｓ３０）、リード処理を開始する（Ｓ３１）。
【００７６】
次にプロセッサ制御部３７は、管理テーブルを参照して、データを読み出すフラッシュメモリと読み出しアドレスとを確認する（Ｓ３２）。確認後、プロセッサ制御部３７は、データを読み出すフラッシュメモリ２１と読み出しアドレスとの指示をフラッシュメモリ制御部に送信する（Ｓ３３）。
【００７７】
プロセッサ制御部３７からの指示を受信したフラッシュメモリ制御部３３は、指定されたフラッシュメモリ２１のアドレスから、情報処理装置３０が要求するデータを読み出す（Ｓ３４）。その後、プロセッサ制御部３７は、読み出したデータを、キャッシュメモリに一時的に格納する。
【００７８】
プロセッサ制御部３７は、キャッシュメモリ３４に格納したデータを、情報処理装置３０に送信するように、チャネル制御部に指示をする（Ｓ３５）。
【００７９】
チャネル制御部３１は、キャッシュメモリ３４に格納したデータを、情報処理装置３０に送信すると（Ｓ３６）、プロセッサ制御部３７に送信完了報告を行う（Ｓ３７）。プロセッサ制御部３７は、送信完了報告を受け取ると、リード処理を終了する（Ｓ３８）。
【００８０】
このようにリード処理の場合には、ハードディスクドライブ４１に格納されたパリティデータＰを読み出す必要はなく、リードレスポンスの速いフラッシュメモリ２１からデータを読み出せば足りるので、リードレスポンスがフラッシュメモリ２１より遅いハードディスドライブ４１を使用する必要がない。
【００８１】
（１−７）コレクションコピー処理
次に、コレクションコピー処理について説明する。コレクションコピーとは、図１８の概念図に示すように、あるデータが消失した等で障害が発生した場合に、他のデータとパリティデータとから消失したデータを演算し、スペアのフラッシュメモリに演算後のデータを格納する（コピーする）処理をいう。
【００８２】
コレクションコピー処理は、プロセッサ制御部３７がコレクションコピープログラム６２３に基づいて実行する。
【００８３】
具体的には、管理者が、データが消失したフラッシュメモリ２１を管理端末４０の管理画面で確認すると、管理者がストレージシステム１に対してコレクションコピーの指示を出す。この指示を受けたプロセッサ制御部３７が、コレクションコピー処理を開始する。
【００８４】
ここで、管理画面について説明する。
【００８５】
図１９は、データを消失した等で障害が発生した場合のフラッシュメモリ２１又はハードディスクドライブ４１を管理者に通知する画面ＳＣ１を示す。
【００８６】
障害が発生すると、フラッシュメモリ制御部３３又はディスク制御部３２が障害を検出し、プロセッサ制御部３７に通知する。通知を受けたプロセッサ制御部３７が、管理端末４０に、障害が発生したフラッシュメモリ２１の情報、又は、障害が発生したハードディスクドライブ４１の情報を送信する。管理端末４０を管理する管理者が、管理画面ＳＣ１に基づいて、障害が発生した情報を確認することができる。
【００８７】
画面左欄ＳＣ１０には、ストレージシステム１内に構成される全てのパリティグループＰＧの番号が表示される。障害が発生した場合には、障害が発生したパリティグループ番号を点滅させる等で、管理者に視覚的に通知する。
【００８８】
そして、画面右欄ＳＣ２０には、画面左欄Ｓ１０で選択したパリティグループＰＧ２に所属するフラッシュメモリ２１の情報やハードディスクドライブ４１の情報が表示される。画面右欄ＳＣ２０は、例えば、上段には障害が発生した論理構成の情報、下段には障害が発生した物理構成の情報、が表示される。
【００８９】
論理構成の情報としては、障害が発生している「論理ボリューム番号」欄２００、その論理ボリュームＬＤＥＶは回復しているかのコレクション要否を示す「ステータス」欄２０１、及び、その論理ボリュームＬＤＥＶに関する管理情報等を示す「etc」欄２０３がある。
【００９０】
物理構成の情報としては、「フラッシュメモリ番号又はハードディスクドライブ番号」欄２０３、その物理デバイス番号がどの筐体の何段目かを示す「ロケーション」欄２０４、及び、その物理デバイス番号は回復しているかのコレクション要否を示す「etc」欄２０５がある。
【００９１】
なお、これらの構成情報は一例であるので、上述した構成情報には限られない。
【００９２】
障害が発生した場合には、障害が発生したフラッシュメモリ２１の情報又はハードディスクドライブ４１の情報を点滅させる等で、管理者に視覚的に通知する。
【００９３】
それでは、具体的なコピーコレクション処理について説明する。図２０は、コピーコレクション処理を示すフローチャートである。
【００９４】
管理端末４０からのコレクションコピー指示をストレージシステム１で受信すると（Ｓ４０）、プロセッサ制御部３７がコレクションコピー処理を開始する（Ｓ４１）。本実施の形態では、フラッシュメモリ２１の1つに障害が発生した場合について説明する。
【００９５】
プロセッサ制御部３７は、データを消失したフラッシュメモリ２１以外のフラッシュメモリ２１からデータＤ１、Ｄ２、Ｄ４を読み出すようフラッシュメモリ制御部３３に指示を送信し（Ｓ４２）、データを消失したフラッシュメモリ２１が所属するパリティグループＰＧと同じパリティグループＰＧを持つパリティデータＰを読み出すようディスク制御部３２に指示を送信する（Ｓ４３）。
【００９６】
フラッシュメモリ制御部３３は、データを消失したフラッシュメモリ２１が所属するパリティグループＰＧを持つその他のフラッシュメモリ２１からデータＤ１、Ｄ２、Ｄ４をキャッシュメモリ３４に読み出す（Ｓ４４）。また、ディスク制御部３２は、データを消失したフラッシュメモリ２１が所属するパリティグループＰＧと同じパリティグループＰＧを持つハードディスクドライブ４１からパリティデータＰをキャッシュメモリ３４に読み出す（Ｓ４５）。
【００９７】
その後、プロセッサ制御部３７は、パラメータ「ＣＭＤ」を演算回路３１０に書き込むと、消失したデータの演算処理を行う。パラメータ「ＣＭＤ」の具体的な内容は、消失データのコレクトである。演算回路３１０のパラメータ制御部３１１が、キャッシュメモリ３４上のデータＤ１、Ｄ２、Ｄ４とパリティデータＰとを読み出し（Ｓ４６）、演算ステップＳ２２からＳ２８に従って、消失したデータの演算を行う（Ｓ４７）。
【００９８】
なお、ステップＳ２３とステップＳ２８では、データＤ３をキャッシュメモリ３４から読み出しているが、コピーコレクション処理においては、消失したデータＤ３は読み出さずに、パリティデータＰを読み出すものとする。また、ステップＳ２６では、演算したパリティデータＰをバッファ・メモリ３１４に格納しているが、コピーコレクション処理においては、演算したデータＤ３を格納するものとする。
【００９９】
演算回路３１０は、データを再構築させると、バッファ・メモリ３１４に一時的に格納する。そして演算回路３１０は、再構築したデータをバッファ・メモリ３１４から読み出して、キャッシュメモリ３４に再構築したデータを送信して、演算処理を終了させる。
【０１００】
プロセッサ制御部３７は、キャッシュメモリ３４から再構築したデータを読み出し（Ｓ４８）、スペア用のフラッシュメモリ２１´に格納する（Ｓ４９）。そしてプロセッサ制御部３７は、再構築したデータに関する情報を管理テーブル６２０に登録すると、コピーコレクション処理を終了する（Ｓ５０）。
【０１０１】
（１−８）本実施の形態の効果
本実施の形態によれば、リードレスポンスの速いフラッシュメモリをストレージシステムに搭載し、フラッシュメモリの書き込み回数を制限することでシステムの寿命を延ばすことができる。
【０１０２】
（２）第２の実施の形態
次に、第２の実施の形態によるストレージシステム２００について以下に説明する。
【０１０３】
（２−１）システム構成
本実施の形態によるストレージシステム２００のシステム構成は、図２１に示すように、第１の実施の形態のストレージシステム１で説明をしたフラッシュメモリ制御部３３とディスク制御部３２とを一体にしたフラッシュメモリ・ディスク制御部３９を備える。
【０１０４】
フラッシュメモリ・ディスク制御部３９は、第３記憶デバイス制御部であって、フラッシュメモリ２１に対してデータＤ１−Ｄ４の入出力を制御するとともに、ハードディスクドライブ４１に対してパリティデータＰの入出力を制御する。
【０１０５】
本実施の形態では、フラッシュメモリ・ディスク制御部３９とフラッシュメモリ２１、フラッシュメモリ・ディスク制御部３９とハードディスクドライブ４１とのインタフェースには、ＳＡＳを使用する。フラッシュメモリ２１とハードディスクドライブ４１とのアクセスに同一のプロトコルを用いることで、制御部を一体とすることができる。これにより、ストレージシステム２００を構築する際にかかるコストを削減でき、管理を簡易にすることができる。
【０１０６】
ここで、図２２に示すストレージシステム２００´のように、演算回路３９０はフラッシュメモリ・ディスク制御部３９´が保持してもよい。図１５で説明をした第１の実施の形態の変形例では、キャッシュメモリ３４からデータの読み出しを、ディスク制御部３２とフラッシュメモリ制御部３３とに、２回行わなければならなかった。しかし、本実施の形態の変形例では、ディスク制御部３２とフラッシュメモリ制御部３３とを一体化しているため、キャッシュメモリ３４からデータの読み出しは１回で済む。ストレージシステム２００´は、情報処理装置３０とチャネル制御部３１との間のトランザクションに影響を与える必要がない。
【０１０７】
なお、その他の構成要件は、第１の実施の形態で説明した構成要件と同じであるため、説明を省略する。第１の実施の形態で説明した構成と同じ構成には、第１の実施の形態で付与した図番と同一の図番を付与する。
【０１０８】
（２−２）ライト処理
では、どのようにデータＤ１−Ｄ４をフラッシュメモリ２１に格納し、パリティデータＰをハードディスクドライブ４１に格納するのか、というライト処理について説明する。ライト処理は、プロセッサ制御部３７がライトプログラム６２１に基づいて実行する。
【０１０９】
図２３に示すように、プロセッサ制御部３７は、ステップＳ６０からステップＳ７５までの処理をステップＳ０からステップＳ１５までの処理と同様の手順で実行する。ただし、プロセッサ制御部３７がフラッシュメモリ制御部３３とディスク制御部３２とのそれぞれに指示をしていたステップＳ６、ステップＳ９、及びステップＳ１３においては、フラッシュメモリ・ディスク制御部３９に一括して指示を出すものとする（Ｓ６６、Ｓ６９、Ｓ７３）。
【０１１０】
プロセッサ制御部３７は、フラッシュメモリ・ディスク制御部３９から完了報告を受信すると（Ｓ７５）、ライト処理を終了する（Ｓ７６）。
【０１１１】
本実施の形態におけるライト処理は、プロセッサ制御部３７が指示するデータの転送先アドレスが第１の実施の形態で説明をしたライト処理とは異なる。フラッシュメモリ・ディスク制御部３９として一体にしても、ホストデータをフラッシュメモリに格納し、パリティデータをハードディスクドライブに格納するように振り分けることができる。これにより、リードレスポンスの速いフラッシュメモリからデータを読み出せ、データを更新する度に書き込まれるパリティデータは書き込み回数の制限がないハードディスクを使用することで、システムの性能が向上する。
【０１１２】
（２−３）本実施の形態の効果
本実施の形態によれば、リードレスポンスの速いフラッシュメモリをストレージシステムに搭載し、フラッシュメモリの書き込み回数を制限することでシステムの寿命を延ばすことができる。
【０１１３】
（３）その他の実施の形態
第１の実施の形態では、フラッシュメモリ制御部とフラッシュメモリとのインタフェース、及び、ディスク制御部とハードディスクドライブとのインタフェースには、ＳＡＳを使用したが、フラッシュメモリ制御部とフラッシュメモリとのインタフェースにはＳＡＳを使用し、ディスク制御部とハードディスクドライブとのインタフェースにはファイバーチャネルを使用しても良い。ファイバーチャネルを使用すれば高性能なプロトコルを用いることができるので、ライト性能の向上を図ることができる。
【０１１４】
プロセッサ制御部がストレージシステム１内の各制御部に対して指示を出したが、これは一例であり、例えば、チャネル制御部３１内のマイクロプロセッサが各制御部に対して指示をしてもよい。
【０１１５】
第２の実施の形態では、フラッシュメモリ・ディスク制御部とフラッシュメモリとのインタフェース、及び、フラッシュメモリ・ディスク制御部とハードディスクドライブとのインタフェースには、ＳＡＳを使用したが、フラッシュメモリとハードディスクドライブとのアクセスに同一のプロトコルを用いればよく、ＳＡＳのインタフェースに限られない。
【産業上の利用可能性】
【０１１６】
本発明は、複数のストレージシステムや、その他の形態のストレージシステムに広く適用することができる。
【図面の簡単な説明】
【０１１７】
【図１】第１の実施の形態におけるストレージシステムの外観構成を示す斜視図である。
【図２】第１の実施の形態におけるフラッシュメモリの構成を示す斜視図である。
【図３】第１の実施の形態におけるストレージシステムを示すブロック図である。
【図４】第１の実施の形態における論理ボリュームを説明する概念図である。
【図５】第１の実施の形態における共有メモリの内容を示す図表である。
【図６】第１の実施の形態における管理テーブルを示す図表である。
【図７】第１の実施の形態におけるライト処理を示すフローチャートである。
【図８】第１の実施の形態におけるストレージシステムの変形例を示す概念図である。
【図９】第１の実施の形態におけるパリティデータのライト処理を示す説明図である。
【図１０】第１の実施の形態の変形例において、パリティデータのライト処理を示す説明図である。
【図１１】第１の実施の形態におけるストレージシステムの別の変形例を示す概念図である。
【図１２】第１の実施の形態における演算回路を示すブロック図である。
【図１３】第１の実施の形態におけるパラメータを説明する図表である。
【図１４】第１の実施の形態におけるパリティデータを演算するためのフローチャートである。
【図１５】第１の実施の形態における演算回路の変形例を示すブロック図である。
【図１６】第１の実施の形態における接続部の変形例を示すブロック図である。
【図１７】第１の実施の形態におけるリード処理を示すフローチャートである。
【図１８】第１の実施の形態におけるコピーコレクションを説明する説明図である。
【図１９】第１の実施の形態において、障害が発生した場合の管理画面図である。
【図２０】第１の実施の形態におけるコピーコレクション処理を示すフローチャートである。
【図２１】第２の実施の形態におけるストレージシステムを示すブロック図である。
【図２２】第２の実施の形態におけるストレージシステムの変形例を示すブロック図である。
【図２３】第２の実施の形態におけるライト処理を示すフローチャートである。
【符号の説明】
【０１１８】
１、１００、１００´、２００、２００´……ストレージシステム、３０……情報処理装置、３１、３１´……チャネル制御部、３１０、３１０´、３９０……演算回路、３２……ディスク制御部、３３……フラッシュメモリ制御部、３４……キャッシュメモリ、３５……キャッシュ制御部、３６、３６´……接続部、３７……プロセッサ制御部、３８……共有メモリ、３８０……管理テーブル、３９……フラッシュメモリ・ディスク制御部、Ｐ……パリティデータ、Ｄ……データ、２１、２１´……フラッシュメモリ、４１……ハードディスクドライブ。
【図１】
2009238094.tif 000003
【図２】
2009238094.tif 000004
【図３】
2009238094.tif 000005
【図４】
2009238094.tif 000006
【図５】
2009238094.tif 000007
【図６】
2009238094.tif 000008
【図７】
2009238094.tif 000009
【図８】
2009238094.tif 000010
【図９】
2009238094.tif 000011
【図１０】
2009238094.tif 000012
【図１１】
2009238094.tif 000013
【図１２】
2009238094.tif 000014
【図１３】
2009238094.tif 000015
【図１４】
2009238094.tif 000016
【図１５】
2009238094.tif 000017
【図１６】
2009238094.tif 000018
【図１７】
2009238094.tif 000019
【図１８】
2009238094.tif 000020
【図１９】
2009238094.tif 000021
【図２０】
2009238094.tif 000022
【図２１】
2009238094.tif 000023
【図２２】
2009238094.tif 000024
【図２３】
2009238094.tif 000025