(57)【要約】【課題】複数のストレージ装置を用いて、大容量かつリアルタイムアクセスが可能な仮想ストレージを実現するストレージ制御装置およびストレージシステムを提供する。【解決手段】ストレージ制御装置３は、２以上のストレージ装置が有するそれぞれの記憶領域について、記憶領域の種別ごとに、それぞれの記憶領域のうち有効とする領域を決定することで、有効と決定した領域を記憶領域とする仮想ストレージを構成する領域制御部３５２と、２以上のストレージ装置が有するそれぞれの属性情報を参照して、それぞれの属性情報に含まれるリードおよびライトの最低保証速度のうち、最も低い値を前記仮想ストレージの速度情報として選択する属性制御部３５１と、仮想ストレージに対してリードおよびライトを行うホスト装置へ、仮想ストレージの記憶領域に関する情報および速度情報を送信するアクセス制御部３５４とを備える。【選択図】図２Ｃ
2014179066.tif 000002
【特許請求の範囲】
【請求項１】
２以上のストレージ装置を制御するストレージ制御装置であって、
前記２以上のストレージ装置が有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、前記それぞれの記憶領域のうちの有効とする領域を決定することで、有効と決定した領域の集合を記憶領域として有する仮想ストレージを構成する領域制御部と、
前記２以上のストレージ装置が有するそれぞれの属性情報を参照して、前記それぞれの属性情報に含まれるリードおよびライトの最低保証速度のうち、最も低い値を前記仮想ストレージの速度情報として選択する属性制御部と、
前記仮想ストレージに対してリードおよびライトを行うホスト装置へ、前記仮想ストレージの記憶領域に関する情報および前記速度情報を送信するアクセス制御部とを備える
ストレージ制御装置。
【請求項２】
前記属性制御部は、さらに、前記それぞれの属性情報を参照して、前記それぞれの属性情報に含まれるリードおよびライト時の転送単位のうち、最も大きい値を前記速度情報として選択する
請求項１記載のストレージ制御装置。
【請求項３】
前記属性制御部は、さらに、前記それぞれの属性情報を参照して、前記それぞれの属性情報に含まれる速度保証単位サイズのうち、最も大きい値を前記速度情報として選択する
請求項１または２に記載のストレージ制御装置。
【請求項４】
前記領域制御部は、前記２以上のストレージ装置が準拠する規格または標準に準拠するよう前記仮想ストレージの記憶領域を構成し、
前記属性制御部は、前記２以上のストレージ装置が準拠する規格または標準に準拠するよう前記仮想ストレージの属性情報を構成する
請求項１〜３のいずれか１項に記載のストレージ制御装置。
【請求項５】
前記領域制御部は、前記仮想ストレージの記憶領域を管理する論理アドレスを前記２以上のストレージ装置が有するそれぞれの記憶領域に対応させる場合に、前記それぞれの記憶領域に前記仮想ストレージのリードおよびライト単位と同じサイズのオーバーラップ領域を設け、常に前記ホスト装置からの前記仮想ストレージへのリードおよびライトを前記２以上のストレージ装置にリードおよびライト単位で振り分ける
請求項１〜４のいずれか１項に記載のストレージ制御装置。
【請求項６】
前記ストレージ制御装置は、さらに、
前記２以上のストレージ装置を初期化し、前記２以上のストレージ装置が有する前記それぞれの記憶領域へのリード、ライト、および属性情報の取得が可能な状態とする初期化制御部を備える
請求項１〜５のいずれか１項に記載のストレージ制御装置。
【請求項７】
前記領域制御部は、前記仮想ストレージの記憶領域を管理する論理アドレスを前記２以上のストレージ装置が有するそれぞれの記憶領域に対応させる場合に、同一のストレージ装置の同一種別の領域について、前記論理アドレスが連続するように対応づける
請求項１〜６のいずれか１項に記載のストレージ制御装置。
【請求項８】
前記領域制御部は、前記仮想ストレージの記憶領域を管理する論理アドレスを前記２以上のストレージ装置が有するそれぞれの記憶領域に対応させる場合に、連続する前記論理アドレスが前記仮想ストレージのリードおよびライト単位毎に異なるストレージ装置の記憶領域に対応するよう対応づける
請求項１〜６のいずれか１項に記載のストレージ制御装置。
【請求項９】
前記領域制御部は、さらに、前記仮想ストレージの記憶領域の論理アドレスと、前記２以上のストレージ装置が有するそれぞれの記憶領域の論理アドレスとを対応付けるアドレス変換テーブルを作成し、
前記ストレージ制御装置は、さらに、
前記領域制御部によって作成された前記アドレス変換テーブルを保持する管理情報保持部を備える
請求項１〜８のいずれか１項に記載のストレージ制御装置。
【請求項１０】
前記アクセス制御部は、前記ホスト装置から送信されたコマンドに応じて、前記仮想ストレージの記憶領域に関する情報および前記速度情報を前記ホスト装置へ送信する
請求項１〜９のいずれか１項に記載のストレージ制御装置。
【請求項１１】
ストレージ制御装置と、２以上のストレージ装置とを備えたストレージシステムであって、
前記ストレージ制御装置は、
前記２以上のストレージ装置が有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、前記それぞれの記憶領域のうちの有効とする領域を決定することで、有効と決定した領域の集合を記憶領域して有する仮想ストレージを構成する領域制御部と、
前記２以上のストレージ装置が有するそれぞれの属性情報を参照して、前記それぞれの属性情報に含まれるリードおよびライトの最低保証速度のうち、最も低い値を前記仮想ストレージの速度情報として選択する属性制御部と、
前記仮想ストレージに対してリードおよびライトを行うホスト装置へ、前記仮想ストレージの記憶領域に関する情報および前記速度情報を送信するアクセス制御部とを備える
ストレージシステム。
【請求項１２】
前記ストレージ制御装置と前記２以上のストレージ装置とはリング接続されている
請求項１１記載のストレージシステム。
【請求項１３】
２以上のストレージ装置を制御するストレージ制御方法であって、
前記２以上のストレージ装置が有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、前記それぞれの記憶領域のうちの有効とする領域を決定することで、有効と決定した領域の集合を記憶領域として有する仮想ストレージを構成する領域制御ステップと、
前記２以上のストレージ装置が有するそれぞれの属性情報を参照して、前記それぞれの属性情報に含まれるリードおよびライトの最低保証速度のうち、最も低い値を前記仮想ストレージの速度情報として選択する属性制御ステップと、
前記仮想ストレージに対してリードおよびライトを行うホスト装置へ、前記仮想ストレージの記憶領域に関する情報および前記速度情報を送信するアクセス制御ステップとを含む
ストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数のストレージ装置を組み合わせ大容量の仮想ストレージを構成するストレージ制御装置およびストレージシステム等に関する。
【背景技術】
【０００２】
特許文献１は、メインフレーム及び他の記憶制御装置に接続されるメインフレーム用記憶制御装置を開示している。このメインフレーム用記憶制御装置は、メインフレームから受信したコマンド及びデータを他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータへ送信する。これにより、複数の実ボリュームを一つの仮想ボリュームとしてメインフレームに提供することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１７５８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、複数のストレージ装置を用いて、大容量かつリアルタイムアクセスが可能な仮想ストレージを実現するストレージ制御装置およびストレージシステム等を提供する。
【課題を解決するための手段】
【０００５】
本開示におけるストレージ制御装置は、２以上のストレージ装置を制御するストレージ制御装置であって、２以上のストレージ装置が有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、それぞれの記憶領域のうちの有効とする領域を決定することで、有効と決定した領域の集合を記憶領域として有する仮想ストレージを構成する領域制御部と、２以上のストレージ装置が有するそれぞれの属性情報を参照して、それぞれの属性情報に含まれるリードおよびライトの最低保証速度のうち、最も低い値を仮想ストレージの速度情報として選択する属性制御部と、仮想ストレージに対してリードおよびライトを行うホスト装置へ、仮想ストレージの記憶領域に関する情報および速度情報を送信するアクセス制御部とを備える。
【発明の効果】
【０００６】
本開示におけるストレージ制御装置およびストレージシステムによれば、複数のストレージ装置を用いて、ホスト装置からの制御が容易であり、大容量かつリアルタイムアクセスが可能な仮想ストレージを実現することができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施の形態１におけるストレージシステムの構成を示すブロック図である。
【図２Ａ】図２Ａは、実施の形態１におけるホスト装置の構成を示すブロック図である。
【図２Ｂ】図２Ｂは、実施の形態１におけるストレージ装置の構成を示すブロック図である。
【図２Ｃ】図２Ｃは、実施の形態１におけるストレージ制御装置の構成を示すブロック図である。
【図３Ａ】図３Ａは、実施の形態１におけるストレージ装置の備えるレジスタ群が保持する属性情報の一例を示す図である。
【図３Ｂ】図３Ｂは、実施の形態１におけるストレージ装置の不揮発性メモリにおける記憶領域の構成を示す図である。
【図４Ａ】図４Ａは、実施の形態１におけるストレージ制御装置が行うストレージ装置の初期化処理を示すフローチャートである。
【図４Ｂ】図４Ｂは、実施の形態１におけるホスト装置が行うストレージシステムの初期化処理を示すフローチャートである。
【図４Ｃ】図４Ｃは、実施の形態１におけるホスト装置が行うストレージシステムの初期化処理、および、ストレージシステム内でストレージ制御装置が行うストレージ装置の初期化処理のシーケンスを示す図である。
【図５Ａ】図５Ａは、実施の形態１におけるストレージ制御装置が行う、ストレージ装置を用いて仮想ストレージを構成する制御を示す模式図である。
【図５Ｂ】図５Ｂは、実施の形態１におけるストレージ制御装置が保持するアドレス変換テーブルの一例を示す図である。
【図５Ｃ】図５Ｃは、ストレージ制御装置がストレージ装置のレジスタ群から仮想ストレージのレジスタ群を構成する制御を説明する模式図である。
【図６Ａ】図６Ａは、実施の形態１におけるストレージ制御装置がホスト装置からの仮想ストレージへのアクセスを検知した場合の処理を示すフローチャートである。
【図６Ｂ】図６Ｂは、実施の形態１におけるホスト装置とストレージシステムとの間の通信フローを示すシーケンス図である。
【図６Ｃ】図６Ｃは、実施の形態１におけるホスト装置からのメモリアクセスがストレージ装置のいずれか一方のみである場合のホスト装置とストレージシステムとの間の通信フローを示すシーケンス図である。
【図６Ｄ】図６Ｄは、実施の形態１におけるホスト装置からのメモリアクセスの対象がストレージ装置の両方の記憶領域を含む場合のホスト装置とストレージシステムとの間の通信フローを示すシーケンス図である。
【図６Ｅ】図６Ｅは、実施の形態１におけるホスト装置のメモリアクセスの対象がストレージ装置の両方の記憶領域を含む場合のホスト装置とストレージシステムとの間の通信フローを示すシーケンス図である。
【図６Ｆ】図６Ｆは、実施の形態１におけるホスト装置とストレージ制御装置との間の送受信、および、ストレージ制御装置とストレージ装置との間の送受信を独立して制御する場合の通信フローを示すシーケンス図である。
【図６Ｇ】図６Ｇは、実施の形態１におけるホスト装置のアクセスがレジスタアクセスでもメモリアクセスでもない場合の制御フローを示すシーケンス図である。
【図７Ａ】図７Ａは、実施の形態２におけるストレージ制御装置が仮想ストレージの記憶領域を構成する方法を説明する模式図である。
【図７Ｂ】図７Ｂは、実施の形態２におけるストレージ制御装置が保持するアドレス変換テーブルの一例を示す図である。
【図８Ａ】図８Ａは、実施の形態２におけるストレージ制御装置がオーバーラップ領域を管理するためのオーバーラップ領域管理テーブルの一例を示す図である。
【図８Ｂ】図８Ｂは、実施の形態２におけるオーバーラップ領域の状態の一例を示す模式図である。
【図８Ｃ】図８Ｃは、実施の形態２におけるストレージ制御装置がオーバーラップ領域を管理するためのオーバーラップ領域管理テーブルの一例を示す図である。
【図８Ｄ】図８Ｄは、実施の形態２におけるオーバーラップ領域の状態の一例を示す模式図である。
【図９Ａ】図９Ａは、その他の実施の形態におけるストレージ制御装置が仮想ストレージの記憶領域を構成する方法を説明する模式図である。
【図９Ｂ】図９Ｂは、その他の実施の形態におけるストレージ制御装置が管理情報保持部に保持する、仮想ストレージのレジスタ群を構成する制御を説明する模式図である。
【図１０Ａ】図１０Ａは、その他の実施の形態におけるストレージシステムの構成の第１の例を示すブロック図である。
【図１０Ｂ】図１０Ｂは、その他の実施の形態におけるストレージシステムの構成の第２の例を示すブロック図である。
【発明を実施するための形態】
【０００８】
本開示におけるストレージ制御装置は、２以上のストレージ装置を制御するストレージ制御装置であって、前記２以上のストレージ装置が有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、前記それぞれの記憶領域のうちの有効とする領域を決定することで、有効と決定した領域の集合を記憶領域として有する仮想ストレージを構成する領域制御部と、前記２以上のストレージ装置が有するそれぞれの属性情報を参照して、前記それぞれの属性情報に含まれるリードおよびライトの最低保証速度のうち、最も低い値を前記仮想ストレージの速度情報として選択する属性制御部と、前記仮想ストレージに対してリードおよびライトを行うホスト装置へ、前記仮想ストレージの記憶領域に関する情報および前記速度情報を送信するアクセス制御部とを備える。
【０００９】
これにより、２以上のストレージ装置の有するそれぞれの記憶領域を用いて仮想ストレージを構成することができる。また、２以上のストレージ装置を個別に制御することなく、仮想ストレージへアクセスすることができる。さらに、仮想ストレージに対するリアルタイムアクセスも可能となるため、容易にリアルタイムアクセス可能な大容量ストレージを実現することができる。
【００１０】
また、前記属性制御部は、さらに、前記それぞれの属性情報を参照して、前記それぞれの属性情報に含まれるリードおよびライト時の転送単位のうち、最も大きい値を前記速度情報として選択するとしてもよい。
【００１１】
これにより、２以上のストレージ装置の有するそれぞれの記憶領域へのリード、ライト、および属性情報の取得を可能とすることができる。
【００１２】
また、前記属性制御部は、さらに、前記それぞれの属性情報を参照して、前記それぞれの属性情報に含まれる速度保証単位サイズのうち、最も大きい値を前記速度情報として選択するとしてもよい。
【００１３】
また、前記領域制御部は、前記２以上のストレージ装置が準拠する規格または標準に準拠するよう前記仮想ストレージの記憶領域を構成し、前記属性制御部は、前記２以上のストレージ装置が準拠する規格または標準に準拠するよう前記仮想ストレージの属性情報を構成するとしてもよい。
【００１４】
これにより、仮想ストレージに対するリアルタイムアクセスをより確実に行うことができる。
【００１５】
また、前記領域制御部は、前記仮想ストレージの記憶領域を管理する論理アドレスを前記２以上のストレージ装置が有するそれぞれの記憶領域に対応させる場合に、前記それぞれの記憶領域に前記仮想ストレージのリードおよびライト単位と同じサイズのオーバーラップ領域を設け、常に前記ホスト装置からの前記仮想ストレージへのリードおよびライトを前記２以上のストレージ装置にリードおよびライト単位で振り分けるとしてもよい。
【００１６】
これにより、ホスト装置からすると、例えば、２以上のストレージ装置で構成される仮想ストレージを、既知の規格または標準に準拠するストレージとして扱うことができる。
【００１７】
また、前記ストレージ制御装置は、さらに、前記２以上のストレージ装置を初期化し、前記２以上のストレージ装置が有する前記それぞれの記憶領域へのリード、ライト、および属性情報の取得が可能な状態とする初期化制御部を備えるとしてもよい。
【００１８】
これにより、２以上のストレージ装置の有するそれぞれの記憶領域を用いて仮想ストレージを構成することができる。
【００１９】
また、前記領域制御部は、前記仮想ストレージの記憶領域を管理する論理アドレスを前記２以上のストレージ装置が有するそれぞれの記憶領域に対応させる場合に、同一のストレージ装置の同一種別の領域について、前記論理アドレスが連続するように対応づけるとしてもよい。
【００２０】
これにより、ホスト装置とのデータ転送をリードおよびライト単位毎に２以上のストレージ装置へ順次に並列実行することができ、ホスト装置が仮想ストレージへアクセスする性能を向上することができる。
【００２１】
また、前記領域制御部は、前記仮想ストレージの記憶領域を管理する論理アドレスを前記２以上のストレージ装置が有するそれぞれの記憶領域に対応させる場合に、連続する前記論理アドレスが前記仮想ストレージのリードおよびライト単位毎に異なるストレージ装置の記憶領域に対応するよう対応づけるとしてもよい。
【００２２】
これにより、ホスト装置からの仮想ストレージへの読み出し或いは書き込みが異なるストレージ装置をまたぐ場合であっても、ストレージ装置それぞれに対してはリードおよびライト単位でアクセスを振り分けることができる。つまり、ホスト装置がストレージ装置を個別に認識することなく、アクセスを行うことができる。
【００２３】
また、前記領域制御部は、さらに、前記仮想ストレージの記憶領域の論理アドレスと、前記２以上のストレージ装置が有するそれぞれの記憶領域の論理アドレスとを対応付けるアドレス変換テーブルを作成し、前記ストレージ制御装置は、さらに、前記領域制御部によって作成された前記アドレス変換テーブルを保持する管理情報保持部を備えるとしてもよい。
【００２４】
これにより、２以上のストレージ装置を個別に制御することなく、仮想ストレージへアクセスすることができる。
【００２５】
また、前記アクセス制御部は、前記ホスト装置から送信されたコマンドに応じて、前記仮想ストレージの記憶領域に関する情報および前記速度情報を前記ホスト装置へ送信するとしてもよい。
【００２６】
これにより、ホスト装置が仮想ストレージにアクセスするための情報を、ホスト装置へ、適切なタイミングで送信することができる。
【００２７】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【００２８】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００２９】
なお、発明者（ら）は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００３０】
（実施の形態１）
［１−１．ストレージシステムの構成］
図１は、実施の形態１に係るストレージシステムの構成を示すブロック図である。
【００３１】
ストレージシステム２は、図１に示すようにストレージ制御装置３、および複数のストレージ装置４Ａ、４Ｂを含んで構成され、ホスト装置１と接続されている。なお、本実施の形態の説明に用いられる構成要素以外は図示していない。また、以降においてストレージ装置４Ａ、４Ｂに共通の構成要素や動作を説明する場合はストレージ装置４と記すこととする。
【００３２】
図１において、ストレージ制御装置３とホスト装置１とは、コマンド、応答およびデータ等の送受信を行うためのＢＵＳ１ａで接続されている。また、ストレージ制御装置３とストレージ装置４Ａ、４Ｂとは、コマンド、応答およびデータ等の送受信を行うためのＢＵＳ２ａで接続されている。ＢＵＳ１ａおよびＢＵＳ２ａは、物理的に異なる信号線で構成されているが、同じ仕様のバスである。また、本実施の形態１においては、ストレージ制御装置３とストレージ装置４Ａ、４Ｂとはリング接続されているものとする。これによりストレージ制御装置３は、一組のＢＵＳ２ａを備えるだけで複数のストレージ装置４Ａ、４Ｂと接続することができる。
【００３３】
以下、図２Ａは本実施の形態１に係るストレージシステム２と接続されるホスト装置１の構成を示すブロック図であり、図２Ｂはストレージシステム２を構成するストレージ装置４の構成を示すブロック図であり、図２Ｃはストレージシステム２を構成するストレージ制御装置３の構成を示すブロック図である。
【００３４】
［１−１−１．ホスト装置の構成］
ホスト装置１は、図２Ａに示すようにＣＰＵ１０、ＤＭＡＣ１１、ＲＯＭ／ＲＡＭ１２、各種機能ブロック１３、およびホスト側ストレージ制御部１４を含む。
【００３５】
ＣＰＵ１０は、ホスト装置１全体の制御を行う。ＤＭＡＣ１１は、ＲＯＭ／ＲＡＭ１２、機能ブロック１３、ホスト側ストレージ制御部１４との間でのデータ転送を実行するＤＭＡコントローラである。ＲＯＭ／ＲＡＭ１２は、ＣＰＵが実行する命令および使用するデータを保持するためのメモリである。機能ブロック１３は、例えばネットワークインタフェース、ディスプレイ制御、動画および静止画のコーデック、キーボードおよびタッチパネル等のユーザインタフェースなどをホスト装置１の実現する機能に応じて備える。
【００３６】
ホスト側ストレージ制御部１４は、ＢＵＳ１ａを介してストレージシステム２へのコマンド送信、応答受信およびデータの送受信を行うために、ＣＰＵ１０の指示に従ってストレージシステム２とアクセスを行う。ここでアクセスとは、ストレージシステム２の初期化、レジスタ情報取得、データのリードおよびライト（以下、リード・ライトとも記す）を含むストレージシステム２との間の通信制御を意味する。このようなホスト機器には、例えばＰＣ(パーソナルコンピュータ)、デジタルカメラ、スマートフォン、およびカーナビなどがある。
【００３７】
［１−１−２．ストレージ装置の構成］
ストレージ装置４は、図２Ｂに示すようにコントローラ４１および不揮発性メモリ４２を含む。
【００３８】
コントローラ４１は、図２Ｂに示すようにＣＰＵ４１０、ＲＯＭ／ＲＡＭ４１１、レジスタ群４１２、ホストＩ／Ｆ部４１３、バッファメモリ４１４、および不揮発性メモリ制御部４１５を備えている。
【００３９】
ホストＩ／Ｆ部４１３は、ＢＵＳ２ａを介してストレージ制御装置３または他のストレージ装置４と接続され、コマンド受信、応答送信およびデータの送受信を行う。なお、本実施の形態においては、ストレージ制御装置３がストレージ装置４のホスト装置として動作するため、以下のストレージ装置４の構成の説明ではホスト装置１とストレージ制御装置３とを区別せず単に「ホスト装置」として説明する。
【００４０】
バッファメモリ４１４は、ホスト装置が不揮発性メモリ４２へ書き込むデータまたは不揮発性メモリ４２から読み出すデータを一時保持するためのメモリである。また、バッファメモリ４１４としては、通常は揮発性のスタティックＲＡＭが用いられるが、近年ではＭＲＡＭ等の不揮発性メモリを使用することが増えてきている。不揮発性メモリ制御部４１５は、不揮発性メモリ４２とバッファメモリ４１４との間でデータの転送を行う。
【００４１】
レジスタ群４１２は、ストレージ装置４の属性情報および制御情報を保持するための複数のレジスタである。図３Ａは本実施の形態１に係るストレージ装置４の備えるレジスタ群４１２が保持する属性情報の一例を示す図である。
【００４２】
属性情報には、図３Ａに示すようにベンダＩＤ、製品名、シリアル番号のような製品情報、ブロック長およびリード・ライト時の転送単位（Ｒ／Ｗ単位）のようなホスト装置との間のデータ転送に関する情報、通常領域サイズ（ユーザデータ領域サイズ）、保護領域サイズのような不揮発性メモリの記憶領域に関する情報、速度保証性能および速度保証単位サイズのようなリード・ライトの性能に関する情報等が含まれる。
【００４３】
ここでＲ／Ｗ単位とは、リード・ライトを行う場合にデータを何ブロック単位で送るかを示す値である。本実施の形態に係るストレージ装置４は、ホスト装置との間でのリード・ライト時のデータ転送を開始アドレスによらずＲ／Ｗ単位で行い、ホスト装置の指示する転送サイズがＲ／Ｗ単位未満の場合及びリード・ライトの最終転送がＲ／Ｗ単位未満の場合のみ、Ｒ／Ｗ単位未満のサイズでの転送を行う。例えばＲ／Ｗ単位が４ブロックのとき、１０ブロックの転送を４ブロック、４ブロック、２ブロックと分割して転送を行う。
【００４４】
これらの属性情報は、一つ或いは複数のレジスタに保持され、ストレージ装置４の初期化時にホスト装置が発行するコマンドにより読み出される。ホスト装置は、読み出した属性情報を参照してストレージ装置４が何らかの規格または標準に準拠しているかを判定し、ストレージ装置４へアクセスする。このような規格または標準には例えばＳＤメモリーカード、ＭＭＣ、およびコンパクトフラッシュ（登録商標）などがある。
【００４５】
制御情報には、不揮発性メモリ４２の個数、容量、および、ホスト装置がリード・ライトを指示する論理アドレスを不揮発性メモリ４２のアドレスに変換および対応させるためのアドレス変換テーブルなどが含まれる。これらの制御情報は、ホスト装置からストレージ装置４に対するリード・ライトコマンドを処理するためにＣＰＵ４１０により使用される。
【００４６】
ＲＯＭ／ＲＡＭ４１１は、ＣＰＵ４１０が実行する命令および使用するデータを保持するメモリである。ＣＰＵ４１０は、ホスト装置から受信したコマンドに基づいてレジスタ群４１２、ホストＩ／Ｆ部４１３、バッファメモリ４１４、および不揮発性メモリ制御部４１５のすべて或いは一部を制御してホスト装置との間でデータおよびレジスタ情報の送受信を行う。
【００４７】
このようにストレージ装置４を構成することで、ホスト装置は不揮発性メモリ４２の種別または世代を問わず、特定の規格または標準の規定に基づいてストレージ装置４を制御しデータを読み出し、書き込むことが可能となる。
【００４８】
不揮発性メモリ４２は、ホスト装置がリードまたはライトを行うデータを保持する記憶媒体であり、たとえばＮＡＮＤフラッシュメモリ、ＭＲＡＭ、ＰＣＭ、およびＲｅＲＡＭなどが用いられる。
【００４９】
図３Ｂはコントローラ４１が不揮発性メモリ４２の記憶媒体を使用して構成する記憶領域の構成を示す図である。ここで記憶領域とは、ホスト装置が論理アドレスを指定してデータをリードまたはライト可能な領域を意味する。
【００５０】
図３Ｂにおいてコントローラ４１は、ストレージ装置４の記憶領域を通常領域４２１と保護領域４２２とで構成し、それぞれの領域をホスト装置がデータのリード或いはライトを指示する論理アドレスで管理する。コントローラ４１は、ホスト装置が指示する論理アドレスを、レジスタ群４１２に保持されるアドレス変換テーブルを参照して不揮発性メモリ４２の物理アドレスへ変換し、データのリードおよびライトを行う。このようなアドレス変換のための様々な方法が開示されているが、本実施の形態においては特定の方法に限定されることはなく、任意の方法を用いることが可能である。
【００５１】
なお、ストレージ装置４等が有する記憶領域における通常領域および保護領域は、記憶領域に含まれる互いに種別が異なる領域の一例である。
【００５２】
さらに通常領域４２１は、コントローラ４１によりファイルシステム管理領域４２１１とユーザデータ領域４２１２とに分けて管理される。ファイルシステム管理領域４２１１は、ファイルシステム管理情報を保持する領域で、サイズＳＩＺＥ１１＝ｍバイトは通常領域４２１のサイズＳＩＺＥ１＝ｎバイトとファイルシステム種別により決定される。
【００５３】
ストレージ装置４が準拠する規格または標準で使用するファイルシステムが規定されている場合は、ファイルシステム管理領域４２１１のサイズは一意に定まる。前述した速度保証性能は、ファイルシステム管理領域４２１１への読み出しおよび書き込み、ユーザデータ領域４２１２への読み出しおよび書き込みの性能を示す情報であり、それぞれの領域について保証性能および性能測定条件が異なる。速度保証単位サイズは、ユーザデータ領域４２１２への読み出しおよび書き込みの性能測定条件であり、このサイズのデータを連続的に読み出し或いは書き込んだ場合の性能が属性情報として保持される。
【００５４】
［１−１−３．ストレージ制御装置の構成］
ストレージ制御装置３は、２以上のストレージ装置を制御する装置であり、図２Ｃに示すようにホストＩ／Ｆ部３１、バッファメモリ３２、ストレージＩ／Ｆ部３３、ＲＯＭ／ＲＡＭ３４、ストレージ制御部３５、および管理情報保持部３６を含む。
【００５５】
ホストＩ／Ｆ部３１は、ＢＵＳ１ａを介してホスト装置１と接続され、コマンド受信、応答送信およびデータの送受信を行う。ストレージＩ／Ｆ部３３は、ＢＵＳ２ａを介してストレージ装置４と接続され、コマンド受信、応答送信およびデータの送受信を行う。バッファメモリ３２は、ホストＩ／Ｆ部３１およびストレージＩ／Ｆ部３３と接続され、ホスト装置１とストレージ装置４との間で送受信されるデータを一時保持するメモリである。ＲＯＭ／ＲＡＭ３４は、ストレージ制御部３５が実行する命令および使用するデータを保持するメモリである。
【００５６】
管理情報保持部３６は、ＢＵＳ２ａを介して接続される複数のストレージ装置４から読み出したレジスタ情報、および複数のストレージ装置４をホスト装置１に対して１つの仮想ストレージにみせるための管理情報を保持する。
【００５７】
ストレージ制御部３５は、図２Ｃに示すようにさらに属性制御部３５１、領域制御部３５２、初期化制御部３５３、およびアクセス制御部３５４を含む。ストレージ制御部３５は、複数のストレージ装置４をホスト装置１に対して単一の仮想ストレージに見せる制御を行うとともに、ホスト装置１から受信したコマンドに基づいてホスト装置１と複数のストレージ装置４との間のデータの送受信制御を行う。
【００５８】
属性制御部３５１は、複数のストレージ装置４から読み出したレジスタに含まれるそれぞれの属性情報を参照し、仮想ストレージの属性情報を構成して管理情報保持部３６に保持する。具体的には、属性制御部３５１は、それぞれの属性情報に含まれるリードおよびライトの最低保証速度（速度保証性能）のうち、最も低い値を仮想ストレージの最低保証速度として選択する。
【００５９】
また、属性制御部３５１は、それぞれの属性情報に含まれるリードおよびライト時の転送単位のうち、最も大きい値を仮想ストレージのリードおよびライト時の転送単位として選択する。
【００６０】
さらに、属性制御部３５１は、それぞれの属性情報に含まれる速度保証単位サイズのうち、最も大きい値を仮想ストレージの速度保証単位サイズとして選択する。
【００６１】
なお、本実施の形態における最低保証速度、リードおよびライト時の転送単位、ならびに速度保証単位サイズのそれぞれは、速度情報の一例である。
【００６２】
領域制御部３５２は、複数のストレージ装置４の有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、前記それぞれの記憶領域のうちの有効とする領域を決定することで、有効と決定した領域の集合を記憶領域として有する仮想ストレージを構成する。そして、領域制御部３５２は、ホスト装置１が仮想ストレージへリード或いはライトを行う論理アドレスを複数のストレージ装置４の論理アドレスに対応づけるアドレス変換テーブルを構成し、管理情報保持部３６に保持する。
【００６３】
初期化制御部３５３は、複数のストレージ装置４の初期化を行う。ここで初期化とは、ストレージ装置４を、ストレージ装置４の備える記憶領域へデータをリードおよびライト可能な状態へ遷移させる処理である。
【００６４】
アクセス制御部３５４は、ホスト装置１からホストＩ／Ｆ部３１を介して受信したコマンドに応じて、管理情報保持部３６に保持した仮想ストレージの属性情報およびアドレス変換テーブルを参照する。アクセス制御部３５４はさらに、ホストＩ／Ｆ部３１、バッファメモリ３２、およびストレージＩ／Ｆ部３３を制御し、ホスト装置１とストレージ装置４との間でデータの送受信制御を行う。また、アクセス制御部３５４は、ホスト装置１から受信したコマンドに応じて、管理情報保持部３６に保持した仮想ストレージの属性情報（仮想ストレージの記憶領域に関する情報および速度情報）をホスト装置１へ送信する。
【００６５】
このようにストレージ制御装置３を構成することで、複数のストレージ装置４の属性情報および記憶領域を参照し、ホスト装置１からデータのリード及びライトが可能な仮想ストレージを構成することができる。
【００６６】
［１−２．ストレージシステムの動作］
以上のように構成された図１のストレージシステム２について、その動作を以下説明する。ストレージシステム２は、初期化、仮想ストレージの構成およびホスト装置１からのアクセス処理を行う。以下、それぞれの動作について説明する。
【００６７】
［１−２−１．初期化］
図４Ａはストレージシステム２内でストレージ制御装置３が行うストレージ装置４Ａ、４Ｂの初期化処理を示すフローチャートである。
【００６８】
図４Ａにおいてストレージ制御装置３のストレージ制御部３５は、まずＩ／Ｆ初期化を行う（Ｓ３０１）。これはストレージ制御装置３とストレージ装置４Ａ、４Ｂとを接続するＢＵＳ２ａを起動してコマンド、応答、データの送受信を可能とする処理であり、クロック周波数の設定およびビット／シンボル同期を含む。本実施の形態では、ストレージ制御装置３とストレージ装置４Ａ、４ＢとはＢＵＳ２ａでリング接続されており、ストレージ制御装置３のＩ／Ｆ初期化が完了すると、ストレージ制御装置３、ストレージ装置４Ａ、４ＢのすべてのＢＵＳ２ａが初期化され、コマンド、応答、データの送受信が可能となる。
【００６９】
次に、ストレージ制御装置３の初期化制御部３５３は、ストレージ初期化を行う（Ｓ３０２）。これはストレージ装置４Ａ、４Ｂを、ストレージ装置４Ａ、４Ｂ内部のレジスタ群４１２および通常領域４２１へアクセスできるようにする処理であり、ストレージ制御装置３がストレージ装置４Ａ、４Ｂへリセットまたは初期化動作を指示するためのコマンドを送信して実施する。
【００７０】
次に、ストレージ制御装置３の属性制御部３５１は、レジスタ群取得をおこなう（Ｓ３０３）。これはストレージ装置４Ａ、４Ｂのレジスタ群４１２から属性情報および制御情報を取得する処理である。
【００７１】
次に、ストレージ制御装置３の領域制御部３５２は、領域合成を行う（Ｓ３０４）。これはストレージ装置４Ａ、４Ｂから読み出したレジスタ群に含まれる属性情報のうち、通常領域サイズ、保護領域サイズのような不揮発性メモリの記憶領域に関する情報を参照して、仮想ストレージの通常領域および保護領域を構成し領域管理情報を管理情報保持部３６に保持する処理である。
【００７２】
次に、ストレージ制御装置３の属性制御部３５１は、属性情報合成を行う（Ｓ３０５）。これはストレージ装置４Ａ、４Ｂから読み出した属性情報、および前述の領域合成により構成した仮想ストレージの領域管理情報に基づき、仮想ストレージの属性情報を構成し管理情報保持部３６に保持する処理である。
【００７３】
このようにして、ストレージ制御装置３の初期化処理によりストレージ装置４Ａ、４Ｂの初期化と仮想ストレージの領域管理情報、属性管理情報の構成および保持が行われると、ストレージシステム２はホスト装置１との間でコマンド、応答、データの送受信が可能となる。
【００７４】
図４Ｂはホスト装置１が行うストレージシステム２の初期化処理を示すフローチャートである。
【００７５】
図４Ｂにおいてホスト装置１は、Ｉ／Ｆ初期化（Ｓ１０１）、ストレージ初期化（Ｓ１０２）、レジスタ群取得（Ｓ１０３）を順に実行した後、ストレージシステム２が構成する仮想ストレージの記憶領域を読み出してマウント処理を行う（Ｓ１０４）。
【００７６】
ここで、Ｉ／Ｆ初期化（Ｓ１０３）、ストレージ初期化（Ｓ１０２）、レジスタ群取得（Ｓ１０３）はそれぞれ前述した図４Ａに示すＩ／Ｆ初期化（Ｓ３０１）、ストレージ初期化（Ｓ３０２）、レジスタ群取得（Ｓ３０３）でストレージ制御装置３が行うのと同じ処理をホスト装置１がストレージシステム２に対して行う。すなわち、ホスト装置１は、ストレージ装置４が直接接続されている場合と同じ初期化処理を行い、ストレージシステム２が構成する仮想ストレージへのリード及びライトを行うことができるようになる。
【００７７】
図４Ｃは、ホスト装置１が行うストレージシステム２の初期化処理、および、ストレージシステム２内でストレージ制御装置３が行うストレージ装置４Ａ、４Ｂの初期化処理のシーケンスを示す図である。図４Ｃでは、ホスト装置１のＩ／Ｆ初期化（Ｓ１０１）、ストレージ初期化（Ｓ１０２）を受けてストレージ制御装置３がストレージ装置４Ａ、４Ｂの初期化（Ｓ３０１〜Ｓ３０５）を行った後に、ホスト装置１へストレージ初期化（Ｓ１０２）処理の完了を通知する。その後ホスト装置１はレジスタ群取得（Ｓ１０３）、マウント（Ｓ１０４）を行いストレージシステム２の初期化を完了する。
【００７８】
なお、ストレージ制御装置３が行うストレージ装置４Ａ、４Ｂの初期化処理は、ホスト装置１のＩ／Ｆ初期化（Ｓ１０１）、ストレージ初期化（Ｓ１０２）を待たずに開始することも可能である。このようにするとストレージ制御装置３が行うストレージ装置４Ａ、４Ｂの初期化処理を早く完了することができ、ホスト装置１がストレージシステム２へ行う初期化処理時間を短縮することができる。
【００７９】
［１−３．仮想ストレージの構成］
図５Ａは、本実施の形態１に係るストレージ制御装置３が行う、ストレージ装置４Ａ、４Ｂを用いて仮想ストレージを構成する制御を示す模式図である。
【００８０】
ストレージ制御装置３の領域制御部３５２は、例えば図５Ａに示すようにストレージ装置４Ａの通常領域４２１Ａおよび保護領域４２２Ａと、ストレージ装置４Ｂの通常領域４２１Ｂおよび保護領域４２２Ｂとから、仮想ストレージの通常領域４２１Ｕおよび保護領域４２２Ｕを構成する。通常領域４２１Ａ、４２１Ｂ、４２１Ｕは、それぞれサイズはＡＡバイト、ＢＢバイト、ＦＵバイトである。また通常領域４２１Ａ、４２１Ｂ、４２１Ｕの先頭ＡＦバイト、ＢＦバイト、ＦＳバイトはファイルシステム管理領域である。保護領域４２２Ａ、４２２Ｂ、４２２Ｕは、それぞれサイズはＡＳバイト、ＢＳバイト、ＰＵバイトである。
【００８１】
まず、ストレージ制御装置３の領域制御部３５２は、通常領域４２１Ａ、４２１Ｂから仮想ストレージの通常領域４２１Ｕを、ストレージ装置４Ａ、４Ｂが準拠する規格または標準に適合するよう構成する。すなわち、ストレージ制御装置３の領域制御部３５２は、ストレージ装置４Ａ、４Ｂの通常領域の合計（ＡＡ＋ＢＢ）バイトのうち、所定のサイズの整数倍となるＦＵバイトを仮想ストレージの通常領域４２１Ｕとして使用する。ここで「所定のサイズ」とは後述する速度保証単位サイズを使用してもよく、或いは１Ｍバイトや５１２Ｋバイト等の固定値を用いてもよい。
【００８２】
仮想ストレージの通常領域４２１Ｕの先頭は、ファイルシステム管理領域である。このファイルシステム管理領域のサイズＦＳバイトは、通常領域のサイズＦＵバイトと使用するファイルシステムで決まる。なお、本実施の形態に係るストレージシステム２で使用するファイルシステムは、ストレージ装置４Ａ、４Ｂが準拠するストレージの規格または標準で規定されるものとするが、これに限られるものではない。例えば、ホスト装置１からコマンド等の手段によりストレージ制御装置３へ使用するファイルシステムを通知するようにしてもよい。
【００８３】
次に、ストレージ制御装置３の領域制御部３５２は、保護領域４２２Ａ、４２２Ｂから仮想ストレージの保護領域４２２Ｕを、ストレージ装置４Ａ、４Ｂが準拠する規格または標準に適合するよう構成する。すなわち、ストレージ制御装置３は、ストレージ装置４Ａ、４Ｂの保護領域の合計（ＡＳ＋ＢＳ）バイトのうち、ＰＵバイトを仮想ストレージの保護領域として使用する。ここでＰＵバイトは、ストレージ装置４Ａ、４Ｂが準拠する規格または標準で規定されるサイズであり、通常領域サイズＦＵバイトによって規定してもよく、或いは通常領域サイズによらず固定値としてもよい。
【００８４】
本実施の形態に係るストレージシステム２においては、仮想ストレージの通常領域（ＦＵバイト）をストレージ装置４Ａの通常領域全部とストレージ装置４Ｂの通常領域の一部とで構成している。また、仮想ストレージの保護領域（ＰＵバイト）をストレージ装置４Ｂの保護領域全部（ＢＳバイト）で構成し、ストレージ装置４Ａの保護領域は使用していない。すなわち、図５Ａに示す斜線でハッチングした領域を仮想ストレージの記憶領域として使用する。
【００８５】
図５Ｂは、ストレージ制御装置３が保持するアドレス変換テーブルの一例を示す図である。
【００８６】
ストレージ制御装置３は、図５Ｂに示すアドレス変換テーブルを管理情報保持部３６に保持し、ホスト装置１の指示する仮想ストレージの記憶領域の論理アドレスと、図５Ａを用いて説明した仮想ストレージの構成をアドレス変換テーブルで対応付け、アクセスをストレージ装置４Ａ、４Ｂのユーザデータ領域及び保護領域へ振り分ける。これにより、ホスト装置１は、ストレージ装置４Ａ、４Ｂを認識することなく、仮想ストレージの通常領域或いは保護領域の論理アドレスを指定するだけでアクセスすることができるようになる。
【００８７】
上記のように、ストレージ制御装置３の領域制御部３５２は、２以上のストレージ装置４が有するそれぞれの記憶領域について、記憶領域に含まれる領域の種別ごとに、それぞれの記憶領域のうちの有効とする領域を決定する。これにより、有効と決定された領域の集合を記憶領域として有する仮想ストレージが構成される。
【００８８】
より詳細には、領域制御部３５２は、ホスト装置１が仮想ストレージの通常領域へアクセスする場合において、アクセスする領域が仮想ストレージのファイルシステム管理領域の場合はストレージ装置４Ａ或いは４Ｂのファイルシステム管理領域へのアクセスに変換するように仮想ストレージの記憶領域を構成している。また、領域制御部３５２は、ホスト装置１がアクセスする領域が仮想ストレージのユーザデータ領域の場合は、ストレージ装置４Ａ或いは４Ｂのユーザデータ領域へのアクセスに変換するように仮想ストレージの記憶領域を構成している。
【００８９】
よって、ホスト装置１からの仮想ストレージのファイルシステム管理領域およびユーザデータ領域へのリード或いはライトにおいても、ストレージ装置４Ａ、４Ｂのファイルシステム管理領域およびユーザデータ領域へのリード或いはライト時と同じ最低保証速度が実現できる。また、ホスト装置１は、ストレージ装置４Ａ、４Ｂの記憶領域の構成を意識することなく、仮想ストレージに対して一定の速度以上でのリード及びライトすること、すなわちリアルタイムアクセスを行うことができる。
【００９０】
このようにして仮想ストレージの通常領域４２１Ｕを、ストレージ装置４Ａ、４Ｂが準拠する規格または標準に適合するよう構成すると、ストレージ制御装置３は続いてストレージ装置４Ａ、４Ｂのレジスタ群４１２Ａ、４１２Ｂから仮想ストレージのレジスタ群４１２Ｕを構成し、管理情報保持部３６に保持する。
【００９１】
図５Ｃは、ストレージ制御装置３がストレージ装置４Ａ、４Ｂのレジスタ群４１２Ａ、４１２Ｂから仮想ストレージのレジスタ群４１２Ｕを構成する制御を説明する模式図である。
【００９２】
ストレージ制御装置３の属性制御部３５１は、例えば図５Ｃに示すように属性情報毎にストレージ装置４Ａ、４Ｂのレジスタ群４１２Ａ、４１２Ｂが保持するいずれかの属性情報を仮想ストレージの属性情報として使用する。すなわち、図５Ｃに示す例では、属性情報のうちベンダＩＤ、製品名、シリアル番号のような製品情報については、ストレージ装置４Ｂの属性情報を用いる。
【００９３】
ブロック長、ライトプロテクト設定、ストレージ種別は、ストレージ装置４Ａ、４Ｂで共通の値なので、その値を使用する。また、Ｒ／Ｗ単位（ＲＷＵ）、機能サポート情報、コマンドサポート情報、速度保証性能、速度保証単位サイズは、ストレージ装置４Ａ、４Ｂ両方が満たす値を設定する。ＲＷＵは、リード、ライト時の転送単位である必要があるためストレージ装置４Ａ、４Ｂの値のうち大きい値である１６ブロックを選択する。
【００９４】
また、機能サポート情報、コマンドサポート情報は、サポートする機能、コマンドをビット単位で指定しており、ストレージ装置４Ａ、４Ｂ両方がサポートする機能、コマンドのみを選択し、それぞれ“０００１”、“１０００”を仮想ストレージの属性情報として使用する。
【００９５】
また、速度保証性能は、ストレージ装置４Ａ，４Ｂ両方が満たす保証性能である必要があるため、ストレージ装置４Ａ，４Ｂの値のうち、低い値を選択し６ＭＢ／ｓを使用する。速度保証単位サイズは、ストレージ装置４Ａ、４Ｂ両方が満たすサイズである必要があるため、ストレージ装置４Ａ、４Ｂの値のうち、大きい値を選択し６４ＭＢを使用する。通常領域サイズ、保護領域サイズは、図５Ａを用いて説明したようにＦＵバイト、ＰＵバイトを使用する。
【００９６】
このようにしてストレージ制御装置３が仮想ストレージのレジスタ群４１２Ｕを構成しホスト装置１から読み出し可能とする。これにより、ホスト装置１はストレージ装置４Ａ、４Ｂの属性情報を認識することなく仮想ストレージをストレージ装置４Ａ、４Ｂと同じ規格または標準に準拠するストレージとして認識することができる。
【００９７】
［１−４．仮想ストレージへのアクセス制御］
［１−４−１．レジスタアクセス］
図６Ａ〜図６Ｇを用いて、本実施の形態に係るストレージシステム２において、ストレージ制御装置３がホスト装置１からの仮想ストレージへのアクセスを振り分ける制御について説明する。
【００９８】
図６Ａは、ストレージ制御装置３がホスト装置１からの仮想ストレージへのアクセスを検知した場合の処理を示すフローチャートである。
【００９９】
ストレージ制御装置３のアクセス制御部３５４は、ホスト装置１からのアクセスを検知すると、まずアクセスがレジスタアクセスであるかどうかを判定する（Ｓ６００）。これは例えばコマンドの種別または引数などで判定することができる。この判定の結果、アクセスがレジスタアクセスであると判定した場合（Ｓ６００でＹｅｓ）、ストレージ制御装置３のアクセス制御部３５４は、管理情報保持部３６に保持するレジスタ群から属性情報を読み出しホスト装置１へ転送する（Ｓ６０１）。
【０１００】
図６Ｂは、ホスト装置１とストレージシステム２との間の通信フローを示すシーケンス図である。
【０１０１】
ストレージ制御装置３は、例えば図６Ｂの（ｂ−１）に示すようにコマンドへの応答に属性情報を含めて送信するようにしてもよいし、図６Ｂの（ｂ−２）に示すようにコマンドに対する応答を送信した後、属性情報をデータとして送信するようにしてもよい。ここで、属性情報を応答に含めるかデータとして送信するかはホスト装置１の発行するコマンドに応じて一意に決まる。なお、属性情報をデータとして送信した場合、ストレージ制御装置３は、リード完了をホスト装置１へ送信する。これは後述するメモリアクセスがリードであった場合のリード完了と同じ通知である。
【０１０２】
［１−４−２．メモリアクセス］
次に、ホスト装置１のアクセスがレジスタアクセスではない場合（Ｓ６００でＮｏ）、ストレージ制御装置３のアクセス制御部３５４は、アクセスがメモリアクセスであるかどうかを判定する（Ｓ６０２）。これは例えばコマンドが仮想ストレージの記憶領域への書き込みまたは読み出しを指示するコマンドかどうかで判定することができる。この判定の結果、アクセスがメモリアクセスであると判定した場合（Ｓ６０２でＹｅｓ）、ストレージ制御装置３のアクセス制御部３５４は、管理情報保持部３６からアドレス変換テーブルを読み出して、コマンドに含まれるアドレスと転送サイズをストレージ装置４Ａまたは４Ｂのアドレスへ変換し、変換したアドレスを含むコマンドをアクセス対象のストレージ装置へ送信する（Ｓ６０３）。そして、ホスト装置１と対象ストレージ装置との間の応答、データ、およびメッセージを中継し、転送する（Ｓ６０４）。
【０１０３】
［１−４−２−１．１つのストレージ装置へのアクセス］
図６Ｃは、ホスト装置１からメモリアクセスがストレージ装置４Ａまたは４Ｂいずれか一方のみである場合のホスト装置１とストレージシステム２との間の通信フローを示すシーケンス図である。
【０１０４】
ホスト装置１からのアクセスが仮想ストレージからのリードであり、対象がストレージ装置４Ａの通常領域或いは保護領域であると識別した場合には、ストレージ制御装置３は、例えば図６Ｃの（ｃ−１）に示すようにホスト装置１から受信したコマンド（リードＣＭＤ）に含まれる仮想ストレージの論理アドレスを、ストレージ装置４Ａの記憶領域の論理アドレスに変換してストレージ装置４Ａへコマンドを送信する。その後、ストレージ装置４Ａからの応答、およびデータ送信要求をホスト装置１へ送信する。次に、ホスト装置１からのデータ送信許可をストレージ装置４Ａへ送信する。次に、ストレージ装置４Ａからのリードデータをホスト装置１へ送信し、最後にリード完了を送信する。リード完了はコマンド、応答、データとは異なる制御メッセージとして送信する。
【０１０５】
ホスト装置１からのアクセスが仮想ストレージへのライトであり、対象がストレージ装置４Ｂの通常領域或いは保護領域であると識別した場合には、ストレージ制御装置３は、例えば図６Ｃの（ｃ−２）に示すようにホスト装置から受信したコマンド（ライトＣＭＤ）に含まれる仮想ストレージの論理アドレスを、ストレージ装置４Ｂの記憶領域の論理アドレスに変換してストレージ装置４Ｂへコマンドを送信する。その後、ストレージ制御装置３は、ストレージ装置４Ｂからの応答をホスト装置１へ送信する。次にストレージ制御装置３は、ホスト装置１からのデータ送信要求をストレージ装置４Ｂへ送信する。次に、ストレージ制御装置３は、ストレージ装置４Ｂからのデータ送信許可をホスト装置１へ送信する。次に、ストレージ制御装置３は、ホスト装置１からのライトデータをストレージ装置４Ｂへ送信し、最後にストレージ装置４Ｂからのライト完了を送信する。ライト完了はコマンド、応答、データとは異なる制御メッセージとして送信し、リード完了と同じ通知でも或いは異なる通知としてもよい。
【０１０６】
［１−４−２−２．複数のストレージ装置へのアクセス］
図６Ｄおよび図６Ｅは、ホスト装置１のメモリアクセスの対象がストレージ装置４Ａ、４Ｂ両方の記憶領域を含む場合のホスト装置１とストレージシステム２との間の通信フローを示すシーケンス図である。
【０１０７】
ホスト装置１からのアクセスが、アクセス対象が図５Ｂに示すアドレス変換テーブルの論理アドレス０ｘ（ＦＳ＋ＡＡ−１）および０ｘ（ＦＳ＋ＡＡ）を含むリードの場合、図６Ｄに示すようにストレージ制御装置３は、ホスト装置１から受信したコマンド（リードＣＭＤ）に含まれる仮想ストレージの論理アドレスを、アクセスを開始するストレージ装置であるストレージ装置４Ａの論理アドレスに変換してストレージ装置４Ａへコマンドを送信する。
【０１０８】
ここで、アクセスを開始するストレージ装置はホスト装置１から受信したコマンドに含まれる論理アドレスで決まり、ストレージ装置４Ｂの場合もある。その後、ストレージ制御装置３は、仮想ストレージの論理アドレス０ｘ（ＦＳ＋ＡＡ−１）であるストレージ装置４Ａのユーザデータ領域終端０ｘ（ＡＡ−１）までデータを読み出してホスト装置１へ送信する。ストレージ制御装置３はさらに、ストレージ装置４Ｂへコマンドを送信し、ストレージ装置４Ｂから読み出したデータをホスト装置１へ送信する。ストレージ制御装置３はストレージ装置４Ｂからリード完了を受信すると、ホスト装置１へリード完了を送信する。
【０１０９】
また、アクセス対象が図５Ｂに示すアドレス変換テーブルの論理アドレス０ｘ（ＦＳ−１）、０ｘＦＳを含むライトの場合、図６Ｅに示すようにストレージ制御装置３は、ホスト装置１から受信したコマンド（ライトＣＭＤ）に含まれる仮想ストレージの論理アドレスを、アクセスを開始するストレージ装置であるストレージ装置４Ｂの論理アドレスに変換してストレージ装置４Ｂへコマンドを送信する。ここで、アクセスを開始するストレージ装置はホスト装置１から受信したコマンドに含まれる論理アドレスで決まり、ストレージ装置４Ａの場合もある。その後、ストレージ制御装置３は仮想ストレージの論理アドレス０ｘ（ＦＳ−１）であるストレージ装置４Ｂのファイル管理領域０ｘ（ＦＳ−ＡＦ―１）までホスト装置１から受信したデータを書き込む。ストレージ制御装置３はさらに、ストレージ装置４Ａへコマンドを送信し、ホスト装置１から受信したデータをストレージ装置４Ａへ書き込む。ストレージ制御装置３はストレージ装置４Ａ、４Ｂ両方からライト完了を受信した後、ホスト装置１へライト完了を送信する。
【０１１０】
なお、図６Ｄおよび図６Ｅでは、ストレージ制御装置３はホスト装置１とストレージ装置４Ａ、４Ｂとの間でデータ送信要求、データ送信許可、データを受信するたびに都度送信するようにしたが、図６Ｆに示すように、ストレージ制御装置３内のバッファメモリ３２を介して、ホスト装置１とストレージ制御装置３、ストレージ制御装置３とストレージ装置４Ａ、４Ｂとの間の送受信を独立して制御することも可能である。この場合でもホスト装置１からは図６Ｄおよび図６Ｅと同じ制御で仮想ストレージへのメモリアクセスを行うことができる。
【０１１１】
［１−４−３．レジスタアクセス、メモリアクセス以外のアクセス］
アクセスがレジスタアクセスでもメモリアクセスでもない場合（Ｓ６０２でＮｏ）には、例えばリセットコマンドが含まれ、このような場合、ストレージ制御装置３は受信したコマンドをストレージ装置４Ａ、４Ｂ両方へ送信し（Ｓ６０５）、ストレージ装置４Ａ、４Ｂとの間のコマンド処理結果をホスト装置１へ送信する（Ｓ６０６）。
【０１１２】
図６Ｇは、ホスト装置１のアクセスがレジスタアクセスでもメモリアクセスでもない場合の制御フローを示すシーケンス図である。
【０１１３】
ストレージ制御装置３は、ホスト装置１から受信したコマンドがレジスタアクセスでもメモリアクセスでもないことを認識すると、図６Ｇの（ｇ−１）に示すように受信したコマンド（ＣＭＤ）をストレージ装置４Ａ、４Ｂにそれぞれ送信する。その後、ストレージ装置４Ａ、４Ｂから応答を受信するとホスト装置１へ応答を送信し、さらにストレージ装置４Ａ、４Ｂから処理完了を受信するとホスト装置１へ処理完了を送信する。
【０１１４】
なお、本実施の形態に係るストレージシステム２では、ストレージ制御装置３、ストレージ装置４Ａ、４Ｂがリング接続されている。そのため、図６Ｇの（ｇ−２）に示すようにストレージ制御装置３はホスト装置１から受信したコマンドをリング接続された全ストレージ装置が対象となるブロードキャストコマンド（ＢＲＣＭＤ）としてストレージ装置４Ａへ送信してもよい。この場合、ストレージ装置４Ａは、受信したコマンドを処理し、かつ、同じコマンドをストレージ装置４Ｂへ送信し、ストレージ装置４Ｂは同様に受信したコマンドを処理し、かつ、同じコマンドをストレージ制御装置３へ送信する。
【０１１５】
このときストレージ装置４Ａ，４Ｂが送信するコマンドは受信したコマンドとまったく同じコマンドの場合、或いは引数やペイロードの一部または全部を更新する場合がある。ストレージ制御装置３は、コマンドを受信すると、ホスト装置１へ応答を返して処理を終了する。
【０１１６】
［１−５．効果等］
以上図を用いて説明したように、ストレージ制御装置３は、ストレージ装置４Ａ、４Ｂの記憶領域およびレジスタ群を用いて仮想ストレージを構成し、ホスト装置１からのアクセスを振り分けている。よって、ホスト装置１は、ストレージ装置４Ａ、４Ｂを個別に制御することなく、ストレージ装置４Ａ、４Ｂと同じ規格、標準に準拠するストレージとして仮想ストレージへアクセスすることができる。さらに、仮想ストレージに対するリアルタイムアクセスも可能となるため、容易にリアルタイムアクセス可能な大容量ストレージを実現することができる。
【０１１７】
（実施の形態２）
本実施の形態２は、ストレージ制御装置３がストレージ装置４Ａ、４Ｂの記憶領域から構成する仮想ストレージの記憶領域が、実施の形態１と相違する。
【０１１８】
［２−１．仮想ストレージの構成］
図７Ａは、実施の形態２に係るストレージシステム２において、ストレージ制御装置３が仮想ストレージの記憶領域を構成する方法を説明する模式図であり、図７Ｂは、ストレージ制御装置３が保持するアドレス変換テーブルの一例を示す図である。
【０１１９】
本実施の形態に係るストレージシステム２において、ストレージ制御装置３はストレージ装置４Ａ、４Ｂの記憶領域から仮想ストレージの記憶領域を構成する場合に、仮想ストレージのＲ／Ｗ単位（ＲＷＵ）と同じサイズのオーバーラップ領域４２１１Ｕをストレージ装置４Ａに設けるよう構成する。すなわち、図７Ａ（ｂ）に示すように、仮想ストレージの論理アドレス０ｘ（ＦＳ＋ＡＡ−ＲＷＵ）〜０ｘ（ＦＳ＋ＡＡ−１）に対して、ストレージ装置４Ａ、４Ｂ両方の記憶領域を割り当てる。また、管理情報保持部３６に保持するアドレス変換テーブルも図７Ｂに示すようにオーバーラップ領域４２１１Ｕに該当する論理アドレスをストレージ装置４Ａ、４Ｂ両方の記憶領域に割り当てるように構成する。
【０１２０】
このようにして構成したオーバーラップ領域４２１１Ｕについて、ストレージ制御装置３の領域制御部３５２は、オーバーラップ領域を管理するためのオーバーラップ領域管理テーブルを作成し、管理情報保持部３６に保持する。
【０１２１】
図８Ａおよび図８Ｃは、オーバーラップ領域を管理するためのオーバーラップ領域管理テーブルの一例を示す図であり、図８Ｂおよび図８Ｄは、オーバーラップ領域の状態の一例を示す模式図である。
【０１２２】
オーバーラップ領域管理テーブルには、図８Ａに示すようにオーバーラップ領域内のオフセットアドレスについてデータの有無を管理する情報を保持し、例えば図８Ｂに示すような初期状態では、データステータスは「データ無し」（ｅｍｐｔｙ）である。
【０１２３】
［２−２．オーバーラップ領域を含むアクセス］
例えば図８Ｄに示すように、本実施の形態に係るストレージ制御装置３が構成する仮想ストレージに対してホスト装置１がライトを行う場合において、対象がオーバーラップ領域を含む場合、ストレージ制御装置３は書き込みデータのうちオーバーラップ領域を含むＲＷＵ分のデータを０ｘＸから０ｘＹ（＝０ｘＸ＋ＲＷＵ−１）までストレージ装置４Ａの記憶領域へ書き込み、続くデータをストレージ装置４Ｂの記憶領域へ書き込む。このとき、オーバーラップ領域へ書き込まれたＺブロックについて、図８Ｃに示すようにオーバーラップ領域管理テーブルの０ｘ０から０ｘ（Ｚ−１）までのデータステータスを「データ有り」（ｖａｌｉｄ）に更新する。
【０１２４】
オーバーラップ領域を含む論理アドレスからホスト装置１がデータをリードする場合は、ストレージ制御装置３はオーバーラップ領域管理テーブルに基づき「データ有り」の場合はストレージ装置４Ａから、「データ無し」の場合はストレージ装置４Ｂから、それぞれＲ／Ｗ単位でデータを読み出してホスト装置１へ送信する。
【０１２５】
［２−３．効果等］
このようなオーバーラップ領域を設け、オーバーラップ領域管理テーブルを用いてデータの有無を管理することで、ホスト装置１からの仮想ストレージへの読み出し或いは書き込みがストレージ装置４Ａ、４Ｂをまたぐ場合でもストレージ装置４Ａ、４Ｂそれぞれに対してはＲ／Ｗ単位でアクセスを振り分けることができ、ホスト装置１がストレージ装置４Ａ、４Ｂを認識することなく、ストレージ装置４Ａ、４Ｂに対して規格、標準に従ったアクセスを行うことができる。
【０１２６】
なお、本実施の形態で説明したオーバーラップ領域の配置は一例であり、仮想ストレージの論理アドレスを対応させるストレージ装置の記憶領域がストレージ装置４Ａと４Ｂをまたぐ任意の境界に同様の制御が適用可能である。
【０１２７】
（その他の実施の形態）
以上のように、本出願において開示する技術の例示として、実施の形態１〜２を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。
【０１２８】
図９Ａは、本発明のその他の実施の形態に係るストレージシステム２において、ストレージ制御装置３が仮想ストレージの記憶領域を構成する方法を説明する模式図である。
【０１２９】
図９Ａに示すように、本実施の形態に係るストレージ制御装置３は、仮想ストレージの連続する論理アドレスを、仮想ストレージのＲ／Ｗ単位毎にストレージ装置４Ａ、４Ｂに交互に割り当てるように構成する。本実施の形態においては図９Ａに示すように仮想ストレージの通常領域および保護領域を構成するためのストレージ装置４Ａ、４Ｂの通常領域および保護領域のサイズは同じである。
【０１３０】
図９Ｂは、当該他の実施の形態に係るストレージ制御装置３が管理情報保持部３６に保持する、仮想ストレージのレジスタ群４１２Ｕを構成する制御を説明する図である。仮想ストレージのレジスタ群４１２Ｕでは、実施の形態１〜２と異なり、速度保証単位サイズがストレージ装置４Ａ、４Ｂの速度保証単位サイズのうちの大きい値の２倍となる。また、Ｒ／Ｗ単位についてもストレージ装置４Ａ、４ＢのＲ／Ｗ単位のうちの大きい値の２倍となる。その他は実施の形態１〜２と同じである。
【０１３１】
このように構成することで、ホスト装置１とのデータ転送をＲ／Ｗ単位毎にストレージ装置４Ａ、４Ｂへ交互に並列実行することができ、ホスト装置が仮想ストレージへアクセスする性能を向上することが可能となる。
【０１３２】
また図１０Ａおよび図１０Ｂは、その他の実施の形態に係るストレージシステム２の構成例を示すブロック図である。
【０１３３】
ストレージ装置４Ａ、４Ｂの備えるＢＵＳ２ａの仕様および構成によっては、図１０Ａに示すような個別バスでの接続、または図１０Ｂに示すような共有バス接続も可能である。このような接続においても、ストレージ制御装置３が実施の形態１〜２で説明したように仮想ストレージを構成することで同様の効果を得ることが可能となる。
【０１３４】
なお、実施の形態１〜２ではストレージシステム２に含まれるストレージ装置４の数を２として説明したが、ストレージ装置４の数を３以上とすることも可能である。さらに、ストレージ装置４は、着脱可能なリムーバブルストレージ、半田等で固定するエンベデッドストレージいずれも利用可能である。また、実施の形態１〜２で説明したストレージ制御装置３は全てハードウェアで実現しても、ハードウェアとソフトウェアを組み合わせて実現してもよい。ただし、ストレージ装置４の準拠する規格、標準がバージョンアップされた場合でも、更新された内容に基づいて仮想ストレージを構成できるように、ストレージ制御装置３の一部を、更新可能なソフトウェアで実現することが望ましい。
【０１３５】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【０１３６】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１３７】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１３８】
本開示は、複数のストレージ装置を用いて仮想ストレージを構成するストレージ制御装置およびストレージシステムに適用可能である。具体的には、ＰＣ（パーソナルコンピュータ）、デジタルカメラ、スマートフォン、およびカーナビ等で使用するストレージシステムなどに、本開示は適用可能である。
【符号の説明】
【０１３９】
１      ホスト装置
１ａ、２ａ  ＢＵＳ
２      ストレージシステム
３      ストレージ制御装置
３１    ホストＩ／Ｆ部
３２    バッファメモリ
３３    ストレージＩ／Ｆ部
３４    ＲＯＭ／ＲＡＭ
３５    ストレージ制御部
３５１  属性制御部
３５２  領域制御部
３５３  初期化制御部
３５４  アクセス制御部
３６    管理情報保持部
４、４Ａ、４Ｂ  ストレージ装置
４１    コントローラ
４１０  ＣＰＵ
４１１  ＲＯＭ／ＲＡＭ
４１２  レジスタ群
４１３  ホストＩ／Ｆ部
４１４  バッファメモリ
４１５  不揮発性メモリ制御部
４２    不揮発性メモリ
４２１  通常領域
４２２  保護領域
【図１】
2014179066.tif 000003
【図２Ａ】
2014179066.tif 000004
【図２Ｂ】
2014179066.tif 000005
【図２Ｃ】
2014179066.tif 000006
【図３Ａ】
2014179066.tif 000007
【図３Ｂ】
2014179066.tif 000008
【図４Ａ】
2014179066.tif 000009
【図４Ｂ】
2014179066.tif 000010
【図４Ｃ】
2014179066.tif 000011
【図５Ａ】
2014179066.tif 000012
【図５Ｂ】
2014179066.tif 000013
【図５Ｃ】
2014179066.tif 000014
【図６Ａ】
2014179066.tif 000015
【図６Ｂ】
2014179066.tif 000016
【図６Ｃ】
2014179066.tif 000017
【図６Ｄ】
2014179066.tif 000018
【図６Ｅ】
2014179066.tif 000019
【図６Ｆ】
2014179066.tif 000020
【図６Ｇ】
2014179066.tif 000021
【図７Ａ】
2014179066.tif 000022
【図７Ｂ】
2014179066.tif 000023
【図８Ａ】
2014179066.tif 000024
【図８Ｂ】
2014179066.tif 000025
【図８Ｃ】
2014179066.tif 000026
【図８Ｄ】
2014179066.tif 000027
【図９Ａ】
2014179066.tif 000028
【図９Ｂ】
2014179066.tif 000029
【図１０Ａ】
2014179066.tif 000030
【図１０Ｂ】
2014179066.tif 000031