(57)【要約】      （修正有）【課題】ストレージシステムのパリティ演算処理を、ストレージコントローラに接続されるドライブボックスに移行させることで、処理能力を向上させる。【解決手段】ストレージコントローラは、複数のドライブボックス１４ａ、１４ｂを用いてＲＡＩＤグループを構成する。ドライブボックスは、アクセス情報を含むＤＢ情報と、ＲＡＩＤグループ情報を格納するメモリと、一以上のドライブ１４５ａ、１４５ｂと、処理部２１ａ、２１ｂを有する。第１のドライブボックスの処理部は、第１のドライブに格納されている旧データ３２を更新する新データ３１ａをストレージコントローラから受領すると、旧データを読み出し、新旧データにより、中間パリティ３３ａを生成し、ＤＢ情報とＲＡＩＤグループ情報に基づいて、旧データに対応する旧パリティ３４を格納する複数のドライブボックスの内の第２のドライブボックスに転送し、第１のドライブに新データを格納する。【選択図】図３
2020177501.tif 000002
【特許請求の範囲】
【請求項１】
ＩＯ要求を行う計算機に接続されるストレージコントローラと、前記ストレージコントローラに接続される複数のドライブボックスとを有し、
前記ストレージコントローラは、前記複数のドライブボックスの一部あるいは全部を用いてＲＡＩＤグループを構成し、
前記複数のドライブボックスは、
前記ストレージコントローラに接続される複数のドライブボックスにアクセスするための情報を含むＤＢ情報と、前記ストレージコントローラによって構成されるＲＡＩＤグループの情報であるＲＡＩＤグループ情報を格納するメモリと、
一つまたは複数のドライブと、を有し、
前記複数のドライブボックスの内の第１のドライブボックスは、
前記第１のドライブボックスの第１のドライブに格納されている前記旧データを更新する新データを前記ストレージコントローラから受領すると、前記旧データを前記第１のドライブから読み出し、前記第１のドライブから読み出した前記旧データと前記新データにより、中間パリティを生成し、
前記生成した中間パリティを、前記ＤＢ情報と前記ＲＡＩＤグループ情報に基づいて、前記旧データに対応する旧パリティを格納する前記複数のドライブボックスの内の第２のドライブボックスに、転送し、
前記第１のドライブに前記新データを格納する、第１の処理部を有し、
前記第２のドライブボックスは、
前記旧パリティと、前記第１のドライブボックスから転送された中間パリティにより新パリティを生成し、前記第２のドライブボックスの第２のドライブに前記新パリティを格納する、第２の処理部を有する
ことを特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムにおいて、
前記ＤＢ情報は、
前記複数のドライブボックスの各々を特定するドライブボックス識別情報と、前記ドライブボックス識別情報に対応する、前記複数のドライブボックスの各々に割当てられているＩＰアドレスと、前記複数のドライブボックスの各々に割当てられているポート番号とを含むことを特徴とするストレージシステム。
【請求項３】
請求項２に記載のストレージシステムにおいて、
前記ＲＡＩＤグループ情報は、ＲＡＩＤグループを識別するＲＡＩＤグループ識別情報と、前記ＲＡＩＤグループ識別情報に対応するＲＡＩＤグループのＲＡＩＤ構成を示すＲＡＩＤタイプと、前記ドライブボックスを特定する前記ドライブボックス識別情報と、前記ドライブボックスの各ドライブに割当てられるスロット番号と、各ドライブ内のアドレスを示すアドレス情報とを含む
ことを特徴とするストレージシステム。
【請求項４】
請求項３に記載のストレージシステムにおいて、
前記第１のドライブボックスから前記第２のドライブボックスへの中間パリティの転送は、ＮＭＶｅプロトコルにより行われることを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムにおいて、
前記第２のドライブボックスの前記第２の処理部は、前記新パリティを前記第２のドライブに格納すると、前記第１のドライブボックスの前記第１の処理部に第１の完了応答を送信し、
前記第１のドライブボックスの前記第１の処理部は、前記第１の完了応答を受領し、前記新データを前記第１のドライブに格納すると、前記ストレージコントローラに第２の完了応答を送信し、
前記第２の完了応答を受信した前記ストレージコントローラは、前記第１および第２のドライブボックスに、コミットコマンドを送信し、
前記コミットコマンドを受領した前記第１のドライブボックスの前記第１の処理部は、前記第１のドライブに格納される前記旧データから前記新データに参照先を切換え、
前記コミットコマンドを受領した前記第２のドライブボックスの前記第２の処理部は、前記第２のドライブに格納される前記旧パリティから前記新パリティに参照先を切換える、
ことを特徴とするストレージシステム。
【請求項６】
ＩＯ要求を行う計算機に接続され、複数のドライブボックスでＲＡＩＤグループを構成するストレージコントローラを有するストレージシステムに搭載されるドライブボックスであって、
前記複数のドライブボックスの第１のドライブボックスは、
前記ストレージコントローラに接続される前記複数のドライブボックスにアクセスするための情報を含むＤＢ情報と、前記ストレージコントローラによって構成されるＲＡＩＤグループの情報であるＲＡＩＤグループ情報を格納するメモリと、
一つまたは複数のドライブと、
前記第１のドライブボックスの第１のドライブに格納されている旧データを更新する新データを前記ストレージコントローラから受領すると、前記旧データを前記第１のドライブから読み出し、前記第１のドライブから読み出した旧データと前記新データにより、中間パリティを生成し、
前記生成した中間パリティを、前記ＤＢ情報と前記ＲＡＩＤグループ情報に基づいて、前記旧データに対応する旧パリティを格納する前記複数のドライブボックスの内の第２のドライブボックスに、転送し、
前記第１のドライブに前記新データを格納する、第１の処理部を有する
ことを特徴とするドライブボックス。
【請求項７】
請求項６に記載のドライブボックスにおいて、
前記ＤＢ情報は、
前記複数のドライブボックスの各々を特定するドライブボックス識別情報と、
前記ドライブボックス識別情報に対応する、前記複数のドライブボックスの各々に割当てられているＩＰアドレスと、前記複数のドライブボックスの各々に割当てられているポート番号とを含むことを特徴とするドライブボックス。
【請求項８】
請求項７に記載のドライブボックスにおいて、
前記ＲＡＩＤグループ情報は、ＲＡＩＤグループを識別するＲＡＩＤグループ識別情報と、前記ＲＡＩＤグループ識別情報に対応するＲＡＩＤグループのＲＡＩＤ構成を示すＲＡＩＤタイプと、前記ドライブボックスを特定する前記ドライブボックス識別情報と、前記ドライブボックスの各ドライブに割当てられるスロット番号と、各ドライブ内のアドレスを示すアドレス情報とを含む
ことを特徴とするドライブボックス。
【請求項９】
請求項８に記載のドライブボックスにおいて、
前記第１のドライブボックスから前記第２のドライブボックスへの中間パリティの転送は、ＮＭＶｅプロトコルにより行われることを特徴とするドライブボックス。
【請求項１０】
請求項９に記載のドライブボックスにおいて、
前記第１のドライブボックスの前記第１の処理部は、前記新データを前記第１のドライブに格納すると、前記ストレージコントローラに第２の完了応答を送信し、
前記第２の完了応答を受信した前記ストレージコントローラからのコミットコマンドを受領すると、前記第１のドライブボックスの前記第１の処理部は、前記第１のドライブに格納される前記旧データから前記新データに参照先を切換える、
ことを特徴とするストレージシステム。
【請求項１１】
ＩＯ要求を行う計算機と複数のドライブボックスとに接続され、前記複数のドライブボックスの一部あるいは全部を用いてＲＡＩＤグループを構成するストレージコントローラとを有するストレージシステムのパリティ演算方法であって、
前記複数のドライブボックスの内の第１のドライブボックスは、
前記第１のドライブボックスの第１のドライブに格納されている旧データを更新する新データを前記ストレージコントローラから受領すると、前記旧データを前記第１のドライブから読み出し、前記第１のドライブから読み出した旧データと前記新データにより、中間パリティを生成し、
前記生成した中間パリティを、前記ストレージコントローラに接続される複数のドライブボックスにアクセスするための情報を含むＤＢ情報と、前記ストレージコントローラによって構成されるＲＡＩＤグループの情報であるＲＡＩＤグループ情報とに基づいて、前記旧データに対応する旧パリティを格納する前記複数のドライブボックスの内の第２のドライブボックスに、転送し、
前記第１のドライブに前記新データを格納し、
前記第２のドライブボックスは、
前記旧パリティと、前記第１のドライブボックスから転送された中間パリティにより新パリティを生成し、前記第２のドライブボックスの第２のドライブに前記新パリティを格納する
ことを特徴とするパリティ演算方法。
【請求項１２】
請求項１１に記載のパリティ演算方法において、
前記複数のドライブボックスの内の第２のドライブボックスの第２の処理部は、前記新パリティを前記第２のドライブに格納すると、前記第１のドライブボックスの第１の処理部に第１の完了応答を送信し、
前記第１のドライブボックスの前記第１の処理部は、前記第１の完了応答を受領し、前記新データを前記第１のドライブに格納すると、前記ストレージコントローラに第２の完了応答を送信し、
前記第２の完了応答を受信した前記ストレージコントローラは、前記第１および第２のドライブボックスに、コミットコマンドを送信し、
前記コミットコマンドを受領した前記第１のドライブボックスの前記第１の処理部は、前記第１のドライブに格納される前記旧データから前記新データに参照先を切換え、
前記コミットコマンドを受領した前記第２のドライブボックスの前記第２の処理部は、前記第２のドライブに格納される前記旧パリティから前記新パリティに参照先を切換える、
ことを特徴とするパリティ演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにおけるパリティ演算技術に関する。
【背景技術】
【０００２】
ストレージシステムでは、システムの高信頼化のためデータを保護する技術であるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ Ａｒｒａｙｓ ｏｆ Ｉｎｅｘｐｅｎｓｉｖｅ Ｄｉｓｋｓ）技術を採用し、冗長データであるパリティデータをドライブに書き込む。ＲＡＩＤグループ内に新たなデータの書き込みがあると、ＲＡＩＤグループを構成するパリティデータの更新を行うため、ドライブに対するパリティデータの書き込みが発生する。
このドライブに対するパリティデータの書き込み頻度は高く、パリティを生成するパリティ演算処理を行うストレージコントローラの負荷が大きくなる。そのため、ストレージコントローラの性能低下の要因となる。
ストレージコントローラの負荷を軽減し、ストレージシステムの処理性能を向上させるために、ドライブ側でパリティ演算処理の一部を行わせる技術が特許文献１に開示されている。
【０００３】
この特許文献１に記載のストレージシステムは、複数のフラッシュチップと、複数のフラッシュチップに接続されるデバイスコントローラと、複数のフラッシュパッケージに接続されるＲＡＩＤコントローラとを備える。ＲＡＩＤコントローラは、旧データを格納する第１のフラッシュパッケージと、旧パリティを格納する第２のフラッシュパッケージと、を含む複数のフラッシュパッケージをＲＡＩＤグループとして制御する。ストレージシステムは、第１のフラッシュパッケージに格納された旧データと、ホストコンピュータから送信された新データとに基づき、第１のフラッシュパッケージの第１のデバイスコントローラによって、第１の中間パリティを生成するステップと、第１の中間パリティを、第１のフラッシュパッケージから、旧パリティが格納された第２のフラッシュパッケージへ転送するステップと、第１の中間パリティと旧パリティとに基づき、第２のフラッシュパッケージの第２のデバイスコントローラによって、第１の新パリティを生成するステップと、第１の新パリティが第２のフラッシュパッケージのフラッシュチップに格納された後に、第１のデバイスコントローラによって旧データを無効化するステップと、を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１５−５１５０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のストレージシステムは、第１のフラッシュパッケージで生成された中間パリティを第２のフラッシュパッケージに転送するため、ＲＡＩＤコントローラが第１のフラッシュパッケージに中間パリティを読み出すためのリードコマンドを発行して中間パリティを読み出し、第２のフラッシュパッケージに更新ライトコマンドを発行して中間パリティを転送している。
【０００６】
つまり、中間パリティの転送には、第１のフラッシュパッケージに対するリード処理と、第２のフラッシュパッケージに対するライト処理が必要となり、ＲＡＩＤコントローラの負荷が発生している。
【０００７】
このような処理となる理由は、フラッシュパッケージが他のフラッシュパッケージに直接データ転送を行う技術がなく、フラッシュパッケージはＲＡＩＤコントローラの制御の下、データを読み書きするデバイスであるためである。
【０００８】
また、ＲＡＩＤグループを構成するドライブの情報を有するＲＡＩＤコントローラが、中間パリティの転送先と転送元の情報を有しているため、パリティ演算処理には、システムコントローラの介在が不可避であったと考えられる。
【０００９】
このように、特許文献１に記載された技術では、パリティ演算処理はシステムコントローラ側からフラッシュパッケージ側に移り、ＲＡＩＤコントローラ（機能的にストレージコントーラに相当すると考えられる）側の処理負荷を軽減している。
【００１０】
しかしながら、中間パリティに対し、ＲＡＩＤコントローラが第１のフラッシュパッケージに対するリード処理と第２のフラッシュパッケージに対するライト処理を行う必要があり、パリティ生成の処理負荷の一部がＲＡＩＤコントローラ側に残り、ＲＡＩＤコントローラの処理負荷軽減が不十分なものとなっていると考えられる。
【００１１】
そこで、本発明の目的は、ＲＡＩＤ技術を採用するストレージシステムのパリティ演算処理を、ストレージコントローラに接続されるドライブ筐体側に移行させることで、処理能力を向上させたストレージシステムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のストレージシステム一態様は、ＩＯ要求を行う計算機に接続されるストレージコントローラと、ストレージコントローラに接続される複数のドライブボックスとを有する。ストレージコントローラは、複数のドライブボックスの一部あるいは全部を用いてＲＡＩＤグループを構成する。複数のドライブボックスは、ストレージコントローラに接続される複数のドライブボックスにアクセスするための情報を含むＤＢ情報と、ストレージコントローラによって構成されるＲＡＩＤグループの情報であるＲＡＩＤグループ情報を格納するメモリと、一つまたは複数のドライブと、処理部を有する。
【００１３】
第１のドライブボックスの第1の処理部は、第１のドライブボックスの第１のドライブに格納されている旧データを更新する新データをストレージコントローラから受領すると、旧データを第１のドライブから読み出し、第１のドライブから読み出した旧データと新データにより、中間パリティを生成し、生成した中間パリティを、ＤＢ情報とＲＡＩＤグループ情報に基づいて、旧データに対応する旧パリティを格納する複数のドライブボックスの内の第２のドライブボックスに転送し、第１のドライブに新データを格納する。
【００１４】
第２のドライブボックスの第２の処理部は、旧パリティと、第１のドライブボックスから転送された中間パリティにより新パリティを生成し、第２のドライブボックスの第２のドライブに新パリティを格納する。
【発明の効果】
【００１５】
本発明によれば、ストレージシステムの処理能力を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】実施例における情報処理システムの一例を示す構成図である。
【図２】実施例のドライブボックスのハードウェアブロック図である。
【図３】実施例の中間パリティ転送動作の一例を示す図である。
【図４Ａ】実施例のＲＡＩＤグループ情報の一例を示す図である。
【図４Ｂ】実施例のＤＢ情報の一例を示す図である。
【図５Ａ】実施例のＲＡＩＤ５の場合のデータとパリティの格納状況を示した図である。
【図５Ｂ】実施例のＲＡＩＤ５の場合のデータとパリティの格納状況を示した図である。
【図６】実施例のライト処理シーケンス図である。
【図７Ａ】実施例の構成変更時のＤＢ情報の更新動作を説明する図である。
【図７Ｂ】実施例の構成変更時のＲＡＩＤグループ情報の更新動作を説明する図である。
【発明を実施するための形態】
【００１７】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１８】
以下の説明では、［ＡＡＡテーブル］の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、［ＡＡＡテーブル］を［ＡＡＡ情報］と記載することができる。
【００１９】
また、以下の説明では、プロセッサは、典型的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【００２０】
また、以下の説明では、［プログラム］を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）等を用いながら行うため、実際の処理の主体はプロセッサである。従って、プログラムを動作の主体として説明された処理は、プロセッサを含む装置が行う処理としてもよい。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。
【００２１】
コンピュータプログラムは、プログラムソースから装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであってもよい。
【００２２】
また、実施例において、例えば、ホスト１０ａ、ホスト１０ｂのように符号に添え字を付したものは、基本的に同じ構成を有し、同種のものを総括して記載する場合には、添え字を省略し、ホスト１０のように記載する。
【実施例】
【００２３】
＜１．システム構成＞
図１は、本実施例による情報処理システムの一例を示す構成図である。
【００２４】
この情報処理システム１は、１又は複数のホスト１０と、ホスト１０に接続される１又は複数のスイッチ１１と、スイッチ１１に接続され、ホスト１０からのＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）要求を受信し、ＩＯ要求を処理する１又は複数のストレージコントローラ１２と、１又は複数のストレージコントローラ１２に接続される１又は複数のスイッチ１３と、スイッチ１３に接続される複数のドライブボックス（ドライブ筐体とも呼ぶ）１４とを有する。
【００２５】
ストレージコントローラ１２と複数のドライブボックス１４は、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）又はインターネット等からなるネットワークを介して相互に接続されて構成されている。
【００２６】
ホスト１０は、Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ（ＣＰＵ）及びメモリ等の情報資源を備えたコンピュータ装置であり、例えば、オープン系のサーバや、クラウドサーバ等から構成される。ホスト１０は、ユーザ操作や、実装されたプログラムからの要求に応じてネットワークを介してストレージコントローラ１２にＩＯ要求、即ち、ライトコマンドやリードコマンドを送信する計算機である。
【００２７】
ストレージコントローラ１２は、ストレージとしての機能をホスト１０に提供するための必要なソフトウエアが実装された装置である。通常、ストレージコントローラ１２は、冗長化された複数のストレージコントローラ１２ａ、１２ｂから構成される。
【００２８】
ストレージコントローラ１２は、ＣＰＵ（プロセッサ）１２２、メモリ１２３、ホスト１０との通信インタフェースであるチャネルバスアダプタ１２１及びドライブボックス１４との通信インタフェースであるＮＩＣ１２４と、これらを接続するバスを備える。
【００２９】
ＣＰＵ１２２は、ストレージコントローラ１２全体の動作制御を司るハードウェアである。ＣＰＵ１２２は、ホスト１０から与えられたリードコマンドやライトコマンドに応じて、対応するドライブボックス１４にデータを読み書きする。
【００３０】
またメモリ１２３は、例えば、Ｓｙｎｃｈｒｏｎｏｕｓ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ（ＳＤＲＡＭ）等の半導体メモリから構成され、必要なプログラム（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ（ＯＳ）を含む）やデータを記憶保持するために利用される。メモリ１２３は、ＣＰＵ１２２の主記憶であり、ＣＰＵ１２２が実行するプログラム（ストレージ制御プログラム等）や、ＣＰＵ１２２が参照する管理テーブル等が格納される他、ストレージコントローラ１２のディスクキャッシュ（キャッシュメモリ）としても使用される。
【００３１】
ＣＰＵ１２２によって処理される一部または全部は、Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ(ＡＳＩＣ)やＦｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ(ＦＰＧＡ)のような専用ハードウェアで実現することもできる。
【００３２】
ドライブボックス１４は、データをドライブに書き込み、ドライブに書き込まれたデータを読み出す記憶装置としての機能をストレージコントローラ１２に提供するための必要なソフトウエアが実装された装置である。ドライブボックスの詳細は、図２を用いて説明する。
【００３３】
＜２．ドライブ筐体の構成＞
図２は、ドライブボックスの構成図である。ドライブボックス１４は、ドライブの制御と、外部から記憶装置である一つまたは複数のドライブに読み書きする機能を提供するための必要なソフトウエアが実装された装置である。
【００３４】
ドライブボックス１４は、ＣＰＵ（プロセッサ）１４２、メモリ１４３、ストレージコントローラ１２との通信インタフェースであるＮＩＣ１４１及び各ドライブ１４５とＣＰＵ１４２とを接続するスイッチ１４４と、これらを接続するバスを備える。
【００３５】
ＣＰＵ１４２は、ドライブボックス１４全体の動作制御を司るハードウェアである。ＣＰＵ１４２は、ドライブ１４５にデータを書き込み、読み出す制御を行う。ＣＰＵ１４２が、メモリ１４３に格納されたプログラムを実行することにより、各種機能を実現する。そのため、実際の処理主体はＣＰＵ１４２であっても、各プログラムの処理を分かりやすく説明するため、プログラムを主語にして説明する場合がある。ＣＰＵ１４２によって処理される一部または全部は、ＡＳＩＣやＦＰＧＡのような専用ハードウェアで実現することもできる。
【００３６】
またメモリ１４３は、例えば、Ｓｙｎｃｈｒｏｎｏｕｓ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ（ＳＤＲＡＭ）等の半導体メモリから構成され、必要なプログラム（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ（ＯＳ）を含む）やデータを記憶保持するために利用される。メモリ１４３は、プロセッサ１４２の主記憶であり、ＣＰＵ１４２が実行するプログラム（ストレージ制御プログラム等）や、ＣＰＵ１４２が参照する管理情報等が格納される他、データを一時格納するデータバッファ２４としても使用される。
【００３７】
メモリ１４３に格納される管理情報としては、複数のドライブボックスの一部あるいは全部を用いてＲＡＩＤグループを構成するためのＲＡＩＤグループ情報２２、ＤＢ情報２３がある。ＲＡＩＤグループ情報２２については図４Ａ、ＤＢ情報２３については図４Ｂを用いて後に説明する。また、メモリ１４３には、パリティ演算を行うためのパリティ計算プログラム２５が格納されている。
【００３８】
記憶装置であるドライブ１４５は、各ドライブボックスに一つ又は複数含まれる。ドライブ１４５はＮＡＮＤ フラッシュメモリ（以下、ＮＡＮＤと呼ぶ）の他、複数のＮＡＮＤフラッシュメモリチップを含んでいてもよい。ＮＡＮＤは、メモリセルアレイを含む。このメモリセルアレイは、多数のＮＡＮＤブロック（ブロック）Ｂｍ−１を含む。ブロックＢ０〜Ｂｍ−１は、消去単位として機能する。ブロックは「物理ブロック」または「消去ブロック」と称されることもある。
【００３９】
ブロックは多数のページ（物理ページ）を含む。つまり、ブロックの各々は、ページＰ０〜Ｐｎ−１を含む。ＮＡＮＤにおいては、データのリードおよびデータのライトはページ単位で実行される。データの消去はブロック単位で実行される。
【００４０】
ドライブ１４５は、不揮発性ストレージメディアを接続するための論理デバイスインターフェースの規格であるＮＶＭ Ｅｘｐｒｅｓｓ （ＮＶＭｅ） もしくは ＮＶＭＨＣＩ （Ｎｏｎ−Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ Ｈｏｓｔ Ｃｏｎｔｒｏｌｌｅｒ Ｉｎｔｅｒｆace)に準拠する。ドライブ１４５は、ＮＶＭｅの他、ＳＡＴＡ、ＦＣ等の各種ドライブであっても良い。
【００４１】
ＮＩＣ１４１は、ＮＭＶｅインタフェースとして機能し、ＮＶＭｅプロトコルによってストレージコントローラ１２の介在無しに、ドライブボックス間でデータ転送を行う。尚、ＮＶＭｅプロトコルに限らず、データの転送元のドライブボックスがイニシエータ、データの転送先のドライブボックスがレシーバとなり、他のデバイスの制御無しにドライブ間でデータ転送できるプロトコルであれば良い。
【００４２】
＜パリティ演算処理＞
図３は、実施例の中間パリティ転送動作の一例を示す図である。
ドライブボックス１４ａとドライブボックス１４ｂでＲＡＩＤ５を構成し、データの冗長性が確保されている。図３では、ＲＡＩＤ５の内、データを格納するドライブ１４５ａとパリティデータを格納するパリティドライブ１４５ｂのみを示し、他のデータドライブは省略した。他のデータドライブは、基本的に、データドライブ１４５ａと同様の動作となる。
【００４３】
ドライブボックス１４ａのドライブ１４５ａに旧データ３２が格納され、ドライブボックス１４ｂのドライブ１４５ｂに旧パリティ３４が格納されている状態で、ホスト１０から新データを受領する。
【００４４】
１．新データの受領
ストレージコントローラ１２ａは、ホスト１０から旧データ３２を更新する新データの書込み要求を受領する（Ｓ３０１）。この時、ストレージコントローラ１２ａは、新データ３１ａの複製データをストレージコントローラ１２ｂに転送して、新データをストレージコントローラ上で二重化する（Ｓ３０２）。二重化が完了したら、ストレージコントローラ１２ａは、ホスト１０に対して完了報告を行う（Ｓ３０３）。
【００４５】
２．新データのドライブボックスへの転送
ストレージコントローラ１２ａは、旧データ３２を格納するドライブボックス１４ａに新データを転送する（Ｓ３０４）。
【００４６】
３．中間パリティ生成
新データ３１ａを受領したドライブボックス１４ａのコントローラ２１ａは、旧データ３２を格納するドライブ１４５ａから旧データ３２を読み出し（Ｓ３０５）、新データ３１ａと旧データ３２とで中間パリティ３３ａを生成する（Ｓ３０６）。中間パリティは、（旧データ＋新データ）により計算される。尚、演算子「＋」は排他的論理和を表す。
【００４７】
４．中間パリティ転送
ドライブボックス１４ａのコントローラ２１ａは、新データ３１ａと旧データ３２とで生成された中間パリティ３３ａをドライブボックス１４ｂのコントローラ２１ｂに、ドライブボックス間転送する（Ｓ３０７）。ドライブボックス１４ａとドライブボックス１４ｂとは、Ｅｔｈｅｒｎｅｔ（登録商標）で接続され、ＮＶＭｅプロトコルに準拠しているため、ドライブボックス１４ａのコントローラ２１ａがイニシエータとなり、ドライブボックス１４ｂのコントローラ２１ｂがレシーバとなることで、ストレージコントローラ１２の介在無しに、ドライブ間でデータの転送が可能である。
【００４８】
５．新パリティ生成・書き込み
ドライブボックス１４ｂのコントローラ２１ｂは、ドライブボックス１４ａのコントローラ２１ａから中間パリティ３３ｂを受領すると、ドライブ１４５ｂから旧パリティ３４を読み出す（Ｓ３０８）。コントローラ２１ｂは、中間パリティ３３ｂと旧パリティ３４から新パリティ３５を生成し（Ｓ３０９）、ドライブ１４５ｂに新パリティを書き込む（Ｓ３１０）。また、ドライブボックス１４ａのコントローラ２１ａも新データをドライブ１４５ａに書き込む（Ｓ３１０）。新パリティは、（旧パリティ＋中間データ）により計算される。尚、演算子「＋」は排他的論理和を表す。
【００４９】
ドライブボックス１４ａのコントローラ２１ａは、ドライブ１４５ａに新データが、ドライブ１４５ｂに新パリティが格納されると、ストレージコントローラ１２に完了応答を送信する（Ｓ３１１）。
【００５０】
以上が、ホスト１０からストレージコントローラ１２が新データを受領した場合に、旧データと新データとから中間パリティを生成し、中間パリティと旧パリティから新パリティを生成し、新データと新パリティをそれぞれドライブボックス内のドライブに格納するための基本動作である。このように、ホスト１０から新データを受領したストレージコントローラ１２は、パリティ演算処理や中間パリティの転送処理を行うことなく、ドライブボックス１４の処理で、新データの書込み動作、中間パリティの転送動作、及び新パリティの生成動作を制御することができる。
【００５１】
＜各種管理情報＞
図４Ａは、実施例のＲＡＩＤグループ情報の一例を示す図である。
ＲＡＩＤグループ情報２２は、ドライブボックス１４のコントローラ２１内のメモリ１４３に格納され、図２のＲＡＩＤグループ情報２２に相当し、複数のドライブボックスの一部あるいは全部を用いて構成されるＲＡＩＤグループを管理するための情報である。
【００５２】
ＲＧ＃５１は、ＲＡＩＤグループを識別する識別番号である。尚、ＲＧ＃５１は、ＲＡＩＤグループを識別可能なＲＡＩＤグループ識別情報であれば、必ずしも番号である必要はなく、記号、文字等他の情報であっても構わない。
【００５３】
ＲＡＩＤタイプ５２は、ＲＧ＃５１によって識別されるＲＡＩＤグループのＲＡＩＤ構成である。ＲＡＩＤ構成は、信頼性、速度、予算（ドライブの利用効率も含む）の内どれを重視するかを考え、ＲＡＩＤ１、ＲＡＩＤ２、ＲＡＩＤ５等の内、実情にあわせた導入方法を選択され、格納される。
【００５４】
ＲＩＡＤレベル５３は、ＲＡＩＤタイプ５２に対応するＲＡＩＤ構成を示す情報である。例えば、ＲＧ＃「２」、ＲＡＩＤタイプ「ＲＡＩＤ５」の場合、ＲＡＩＤレベル５３は「３Ｄ＋１Ｐ」となることを示している。
【００５５】
ＤＢ＃５４は、ＤＢ情報を特定するための識別子である。ＤＢ情報については、図４Ｂで説明する。
【００５６】
スロット＃５５は、各ドライブに割当てられるスロット番号を示し、ＬＢＡ５６は、ドライブ中のＬＢＡ、即ち、各ドライブ内のアドレスを示すアドレス情報である論理ブロックアドレスの値が格納される。
【００５７】
ＬＢＡ＃５６は、論理ブロックアドレスの値を示す。
【００５８】
図４Ｂは、実施例のＤＢ情報の一例を示す図である。ＤＢ情報は、図４ＡのＲＡＩＤを構成するドライブボックスの情報で、各ＲＡＩＤグループを構成する記憶領域（ドライブボックス、ドライブボックス内のドライブ、ドライブ内のアドレス）にアクセスするための情報を含んでいる。
ＤＢ情報２３は、ドライブボックス１４のコントローラ２１内のメモリ１４３に格納され、図２のＤＢ情報２３に相当する。
【００５９】
ＤＢ＃５７は、図４ＡのＤＢ＃５４に対応し、ドライブボックス（ＤＢ）情報を特定するための識別子である。尚、ＤＢ＃５７は、ドライブボックス（ＤＢ）情報を特定するドライブボックス識別情報であれば、必ずしも番号である必要はなく、記号、文字等他の情報であっても構わない。
【００６０】
ＩＰアドレス５８は、ＤＢ＃５７で特定されるドライブボックスに割当てられているＩＰアドレス、ポート５７は、ＤＢ＃５７で特定されるドライブボックスに割当てられているポート番号を示し、Ｅｔｈｅｒｎｅｔ上でドライブボックスにアクセスし、データの転送を行うために必要となる情報である。
【００６１】
＜ライド動作＞
図５Ａは、図４Ａに示したＲＡＩＤグループ情報のＲＡＩＤタイプ５２が「ＲＡＩＤ５」の場合のデータとパリティの格納状況を示した図である。図５Ａも図３と同様、データを格納するドライブ１４５ａとパリティデータを格納するパリティドライブ１４５ｂのみを示し、他のデータドライブは省略した。
【００６２】
ドライブボックス１４ａのドライブ１４５ａと、ドライブボックス１４ｂのドライブ１４５ｂでＲＡＩＤグループを構成する。図５ＡのＲＡＩＤグループは、ＲＡＩＤ５である。ドライブ１４５ａには、データ「Ｄ０」、パリティ「Ｐ１」、データ「Ｄ２」、パリティ「Ｐ３」が格納され、ドライブ１４５ｂには、ドライブ１４５ａのデータ「ＤＯ」のパリティデータ「Ｐ０」、データ「Ｄ２」のパリティデータ「Ｐ２」、ドライブ１４５ａのパリティデータ「Ｐ１」に対応するデータ「Ｄ１」、ドライブ１４５ａのパリティデータ「Ｐ３」に対応するデータ「Ｄ３」が、図５Ａのように格納される。
【００６３】
ドライブ１４５ａは、データ「Ｄ０」に対する更新データである新データ「新Ｄ０」３１ａをストレージコントローラ１２が受領すると、図３で説明した動作が行われる。
【００６４】
簡単に説明すると、ドライブボックス１４ａのドライブ１４５ａから新データ「Ｄ０」によって更新される旧データ「旧Ｄ０」３２を読み出し、新データ「新Ｄ０」３１ａと旧データ「旧Ｄ０」から中間パリティ「中Ｐ０」３３ａを生成する。
【００６５】
生成された中間パリティ「中Ｐ０」３３ａは、ドライブボックス１４ａからＲＡＩＤ５を構成するドライブボックス１４ｂに転送される。この転送先のドライブボックス１４ｂやドライブ１４５ｂ、旧パリティ「旧Ｐ０」３４を特定するための情報が、図４ＡのＲＡＩＤグループ情報と、図４ＢのＤＢ情報である。
【００６６】
ドライブボックス１４ｂでは、旧パリティ「旧Ｐ０」３４がドライブ１４５ｂから読み出され、中間パリティ「中Ｐ０」３３ｂと旧パリティ「旧Ｐ０」３４から新パリティ「新Ｐ０」３５を生成する。尚、中間パリティ「中Ｐ０」３３ａと中間パリティ「中Ｐ０」３３ｂは、基本的には同じデータである。
【００６７】
生成された新パリティ「新Ｐ０」３５をドライブ１４５ｂに書き込む。
【００６８】
このように、複数のドライブボックスを跨ってＲＡＩＤグループが構成される場合であっても、各ドライブボックス１４がＲＡＩＤグループ情報とＤＢ情報を管理することにより、ＲＡＩＤグループを構成する他のドライブボックス、ドライブやドライブ内のアドレス情報に基づいて、新データと旧データから生成された中間パリティの転送先を把握することができる。つまり、ストレージコントローラ１２に接続される複数のドライブボックス１４の任意の組合せでＲＡＩＤグループを構成することができ、システム構成の柔軟性及び信頼性を向上させることができる。
【００６９】
また、把握された転送先に対して、ＮＶＭｅプロトコル等、データの転送元から転送先に直接データ転送できるプロトコルを採用することで、ストレージコントローラ１２の介在無しに、ドライブ間で直接データ転送を行うので、ストレージコントローラの処理負荷を低減することができる。
【００７０】
つまり、ストレージコントローラが新データを受領した際のパリティ生成やデータ転送が集中するストレージコントローラの処理を各ドライブに行わせることによって、ストレージシステムとして高速にライト処理を行うことができる。
【００７１】
図５Ｂは、図４Ａに示したＲＡＩＤグループ情報のＲＡＩＤタイプ５２が「ＲＡＩＤ５」の場合の全てのデータドライブとパリティドライブを示した図である。
【００７２】
図５Ｂに示したように、ドライブボックス１４内の各ドライブ１４５で、ＲＡＩＤグループを構成するデータを格納する３つのドライブと、３つのドライブに格納されたデータのパリティデータを格納する一つのドライブ、つまり、３Ｄ＋１ＰでＲＡＩＤグループを構成する。
【００７３】
ストレージコントローラ１２から新データ「新Ｄ０」３１ａを受領し、パリティを生成して、新データ「新Ｄ０」と新パリティ「新Ｐ０」を、各ドライブボックス内のドライブ１４５に格納する動作は、基本的に、図５Ａで示した動作と同じである。
【００７４】
つまり、ドライブボックス１４ａのドライブ１４５ａから新データ「Ｄ０」によって更新される旧データ「旧Ｄ０」３２を読み出し、新データ「新Ｄ０」３１ａと旧データ「旧Ｄ０」から中間パリティ「中Ｐ０」３３ａを生成する。
【００７５】
生成された中間パリティ「中Ｐ０」３３ａは、ドライブボックス１４ａからＲＡＩＤ５を構成し、旧データ「旧Ｄ０」３２に対応する旧パリティ「旧Ｐ０」３４を格納するドライブボックス１４ｄに転送される。この転送先のドライブボックス１４ｄ、ドライブ１４５ｄ及び旧パリティ「旧Ｐ０」３４を特定するための情報が、図４ＡのＲＡＩＤグループ情報と、図４ＢのＤＢ情報である。
【００７６】
ドライブボックス１４ｄでは、旧パリティ「旧Ｐ０」３４がドライブ１４５ｄから読み出され、中間パリティ「中Ｐ０」３３ｄと旧パリティ「旧Ｐ０」３４から新パリティ「新Ｐ０」３５を生成する。尚、中間パリティ「中Ｐ０」３３ａと中間パリティ「中Ｐ０」３３ｄは、基本的には同じデータである。
【００７７】
生成された新パリティ「新Ｐ０」３５をドライブ１４５ｄに書き込む。
【００７８】
このように、複数のドライブボックスを跨ってＲＡＩＤグループが構成される場合であっても、各ドライブボックス１４がＲＡＩＤグループ情報とＤＢ情報を管理することにより、ＲＡＩＤグループを構成する他のドライブボックス、ドライブやドライブ内のアドレス情報に基づいて、新データと旧データから生成された中間パリティの転送先を把握することができる。つまり、ストレージコントローラ１２に接続される複数のドライブボックス１４の任意の組合せでＲＡＩＤグループを構成することができ、システム構成の柔軟性及び信頼性を向上させることができる。  また、把握された転送先に対して、ＮＶＭｅプロトコル等、データの転送元から転送先に直接データ転送できるプロトコルを採用することで、ストレージコントローラ１２の介在無しに、ドライブ間で直接データ転送を行うので、ストレージコントローラの処理負荷を低減することができる。
【００７９】
つまり、ストレージコントローラ新データを受領した際のパリティ生成やデータ転送が集中するストレージコントローラの処理を各ドライブに行わせることによって、ストレージシステムとして高速にライト処理を行うことができる。
【００８０】
＜ライト処理の動作シーケンス＞
図６は、実施例のライト処理シーケンス図である。
図６は、ホスト１０、ストレージコントローラ１２、ドライブボックス１４ａ、ドライブ１４５ａ、ドライブボックス１４ｂ、ドライブ１４５ｂの処理シーケンスを示している。図６に示した例では、ドライブボックス１４ａのドライブ１４５ａとドライブボックス１４ｂのドライブ１４５ｂにより、ＲＡＩＤ  ５が組まれている。ここでも、説明を簡単にするため、データを格納するドライブ１４５ａとパリティデータを格納するパリティドライブ１４５ｂのみを示し、他のデータドライブは省略した。
【００８１】
このシーケンス図では、ドライブ１４は、ＮＡＮＤで構成されることを前提としているため、データの書込みは追記型となるため、ライトデータによってドライブに格納されているデータ更新の場合であっても、旧データとは異なるアドレスに新データは格納される。
【００８２】
まず、ホスト１０で、ドライブ１４５ａに格納された旧データを更新する新データが生成され、新データをストレージシステムに格納するためライトコマンドをストレージコントローラ１２に送信する（Ｓ６０１）。ストレージコントローラ１２では、ライトコマンドにより、ホスト１０から新データを取得する（Ｓ６０２）。ストレージコントローラは、新データを二重化するため、冗長化された他のストレージコントローラに転送する（Ｓ６０３）。二重化の動作は、図３のステップＳ３０２に相当する動作である。
【００８３】
新データの二重化が完了すると、ライトコマンドを受領したストレージコントローラ１２は、ホスト１０に対して完了応答を行う（Ｓ６０４）。
【００８４】
ストレージコントローラ１２は、新データによって更新される旧データを格納するドライブボックス１４ａに対して、ライトコマンドを送信し（Ｓ６０５）、ライトコマンドを受信したドライブボックス１４ａが新データを取得する（Ｓ６０６）。
【００８５】
新データを取得したドライブボックス１４ａのコントローラは、新データによって更新される旧データをドライブ１４ａから取得し（Ｓ６０７）、新データと旧データから中間パリティを生成する（Ｓ６０８）。ドライブ１４５ａは、ＮＡＮＤで構成される追記型デバイスであるため、新データは、ドライブ１４５ａ内において、旧データの格納場所とは異なるアドレスに格納される。
【００８６】
ドライブボックス１４ａは、生成した中間パリティを転送するため、メモリ１４３に格納しているＲＡＩＤグループ情報２２とＤＢ情報２３を参照して、ＲＡＩＤグループを構成する他のドライブボックス１４ｂにライトコマンドを送信する（Ｓ６０９）。ライトコマンドには送信先として、ドライブボックス１４ｂの他、ドライブ１４５ｂ、ドライブ内のアドレスも指定される。このライトコマンドは、ＮＶＭｅ等の転送元と転送先アドレスの指定を行うプロトコルにより、Ｅｔｈｅｒｎｅｔ上でドライブボックス間転送される。
【００８７】
ドライブボックス１４ｂは、ドライブボックス１４ａから転送されたライトコマンドから中間パリティを取得し（Ｓ６１０）、旧データと同じＲＡＩＤグループから旧パリティをドライブ１４５ｄから読み出す（Ｓ６１１）。尚、旧パリティのアドレスは、旧データのアドレスとＲＡＩＤグループ情報、ＤＢ情報から求める。
【００８８】
ドライブボックス１４ｂは、中間パリティと旧パリティから新パリティを計算する（Ｓ６１２）。ドライブ１４５ｂは、ＮＡＮＤで構成される追記型デバイスであるため、計算された新パリティは、ドライブ１４５ｂ内において、旧パリティの格納場所とは異なるアドレスに格納される。
【００８９】
ドライブボックス１４ｂは、ドライブボックス１４ａに対し、完了応答を送信する（Ｓ６１３）。完了応答を受信したドライブボックス１４ａは、ストレージコントローラ１２に対し、完了応答を送信する（Ｓ６１４）。
【００９０】
完了応答を受信したストレージコントローラ１２は、ドライブボックス１４ａに対し、論理アドレスの参照先を旧データが格納された物理アドレスから、新データが格納された物理アドレスに切り替えるためのコミットコマンドを送信する（Ｓ６１５）。
【００９１】
コミットコマンドを受信したドライブボックス１４ａは、データに対応する論理アドレスの参照先を旧データが格納された物理アドレスから新データが格納された物理アドレスに切り替えると共に、ＲＡＩＤグループを構成する他のドライブボックス１４ｂに対し、コミットコマンドを送信する（Ｓ６１６）。
【００９２】
コミットコマンドを受信したドライブボックス１４ｂは、パリティに対応する論理アドレスの参照先を旧パリティが格納された物理アドレスから新パリティが格納された物理アドレスに切り替えを行い、ドライブボックス１４ａに対し、完了応答を行う（Ｓ６１７）。ドライブボックス１４ａは、ドライブボックス１４ｂから完了応答を受領すると、ストレージコントローラに完了応答を行う（Ｓ１６８）。
【００９３】
このように、ストレージコントローラがそれぞれのドライブボックスから新データ、新パリティがドライブに格納された完了報告を受信した後、各ドライブボックスに対し、論理アドレスと物理アドレスの対応関係を切り替えるため、ドライブ１４５ａには旧データと新データの双方、ドライブ１４５ｂには旧パリティと新パリティの双方が同時に格納されるタイミングが存在する。このため、ホストからストレージシステムがライトコマンドを受領して、パリティ生成を行い、新データや新パリティがドライブに格納される間に、電源障害等のシステム障害が発生しても、データを失うことなく、システム普及後に旧データ、旧パリティ、新データを用いて、ライト処理を継続することができる。
【００９４】
図７Ａ、Ｂは、ストレージコントローラ１２に新たにドライブボックスが増設された場合のＲＡＩＤグループ情報２２、ＤＢ情報２３の更新動作を示した図である。
【００９５】
図７Ａに示すように、ドライブボックスが増設されると、既にストレージコントローラ１２に接続されているドライブボックス１４ａに増設されたドライブボックス１４ｆのＤＢ情報が、ストレージコントローラ１２から転送される。また、増設されたドライブボックス１４ｆには既にストレージコントローラ１２に接続されているドライブボックス１４ａのＤＢ情報が転送され、ストレージコントローラ１２に接続される全てのドライブボックスのメモリに全てのドライブボックスのＤＢ情報が格納される。ドライブボックスが減設される場合にも、ストレージコントローラは、残るドライブボックスにＤＢ情報を転送する。
【００９６】
また、図７Ｂに示すようにＲＡＩＤグループを増設したり、変更したりする場合、つまり、ＲＡＩＤ構成を変更する場合、ストレージコントローラ１２から各ドライブボックス１４に対し、変更されたＲＡＩＤ構成を表すＲＡＩＤグループ情報が転送され、各ドライブボックスのメモリに格納される。
【００９７】
このように、ドライブボックスが増減設されても、各ドライブボックスにストレージコントローラに接続されるドライブボックスのＤＢ情報が格納される。また、ＲＡＩＤ構成を変更する場合にも、ストレージコントローラに接続される各ドライブボックスにＲＡＩＤグループ情報が格納される。これにより、ドライブボックスが増減設されたり、ＲＡＩＤ構成を変更した場合であっても、各ドライブは最新のＲＡＩＤグループ情報、ＤＢ情報を格納し、中間パリティを適切なドライブボックス等の転送先に送信することができる。
【００９８】
尚、本実施例は、ＲＡＩＤグループの他、冗長データを遠隔地コピーするリモートコピー機能にも適用でき、リモートコピーを行うためのストレージコントローラの処理を軽減することができる。
【００９９】
以上の通り、本実施例によるストレージシステムによれば、ＲＡＩＤ技術を採用するストレージシステムのパリティ演算処理を、ストレージコントローラに接続されるドライブ筐体側に移行させることで、ストレージコントローラの処理負荷を低減し、ストレージシステムの処理能力を向上させることができる。
【０１００】
また、複数のドライブボックスを跨ってＲＡＩＤグループが構成される場合であっても、各ドライブボックス１４がＲＡＩＤグループ情報とＤＢ情報を管理することにより、ＲＡＩＤグループを構成する他のドライブボックス、ドライブやドライブ内のアドレス情報に基づいて、新データと旧データから生成された中間パリティの転送先を把握することができる。つまり、ストレージコントローラ１２に接続される複数のドライブボックス１４の任意の組合せでＲＡＩＤグループを構成することができ、システム構成の柔軟性及び信頼性を向上させることができる。
【０１０１】
また、把握された転送先に対して、ＮＶＭｅプロトコル等、データの転送元から転送先に直接データ転送できるプロトコルを採用することで、ストレージコントローラ１２の介在無しに、ドライブ間で直接データ転送を行うので、ストレージコントローラの処理負荷を低減することができる。
【０１０２】
つまり、ストレージコントローラ新データを受領した際のパリティ生成やデータ転送が集中するストレージコントローラの処理を各ドライブに行わせることによって、ストレージシステムとして高速にライト処理を行うことができる。
【符号の説明】
【０１０３】
１０：ホスト、
１２：ストレージコントローラ、
１２１：ＣＨＢ、
１２２：ＣＰＵ、
１２３：メモリ、
１２４：ＮＩＣ、
１４：ドライブボックス、
１４１：ＮＩＣ、
１４２：ＣＰＵ、
１４３：メモリ、
１４５：ドライブ、
２２：ＲＡＩＧグループ情報、
２３：ＤＢ情報、
２４：データバッファ、
２５：パリティ計算プログラム。
【図１】
2020177501.tif 000003
【図２】
2020177501.tif 000004
【図３】
2020177501.tif 000005
【図４Ａ】
2020177501.tif 000006
【図４Ｂ】
2020177501.tif 000007
【図５Ａ】
2020177501.tif 000008
【図５Ｂ】
2020177501.tif 000009
【図６】
2020177501.tif 000010
【図７Ａ】
2020177501.tif 000011
【図７Ｂ】
2020177501.tif 000012