(57)【要約】  複数のディスク装置を備えたストレージシステム１に備えられ、複数のディスク装置へのデータの記憶を制御するストレージ制御装置３において、符号化部３２が、複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る。記憶／読出部３３が、パーソナルコンピュータ５からの指示にしたがって、符号化データの複数のディスク装置への格納及び符号化データの複数のディスク装置からの取り出しを行う。送出部が、記憶／読出部３３において複数のディスク装置から取り出した符号化データを、ストレージシステム１Ａとネットワーク１０を介して接続されたストレージシステム１Ｂ宛に送出する。
2009050761.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御装置であって、
前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る符号化手段と、
ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行う記憶手段と、
前記記憶手段により前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出する送出手段と
を備えたことを特徴とするストレージ制御装置。
【請求項２】
前記他のストレージシステム側から送信された、該他のストレージシステム宛のデータについての前記ネットワークにおけるデータの損失率に関わる情報を受信する受信手段と
を更に備え、
前記データの損失率に関わる情報に基づいて、前記符号化手段は、前記送出手段により送出したデータについての新たなパリティデータを作成し、
前記送出手段は、前記パリティデータを前記他のストレージシステム宛に送出する
ことを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記送出手段により前記他のストレージシステム宛のデータが前記ネットワークに送出されると、該データの送信に対するダミーの応答を行うダミー応答手段と
を更に備え、
前記送出手段は、前記ダミー応答手段からダミーの応答がなされたことを認識すると、次に送信すべきデータの送出を行う
ことを特徴とする請求項１または２のいずれかに記載のストレージ制御装置。
【請求項４】
前記符号化手段は、前記他のストレージシステムに送信すべきデータを含むデータ列と、符号化行列のうち該データの損失率に応じて決定される行とについてそれぞれ排他的論理和を求めることにより、前記新たなパリティデータを作成する
ことを特徴とする請求項２記載のストレージ制御装置。
【請求項５】
前記符号化行列は、前記ストレージシステムと前記他のストレージシステムとの間のデータ転送のシミュレーションに基づいて求められ、保持手段に保持されている
ことを特徴とする請求項４記載のストレージ制御装置。
【請求項６】
前記符号化手段は、前記新たなパリティデータを作成するタイミングで乱数を用いて作成した前記符号化行列を用いて、符号化を行う
ことを特徴とする請求項４記載のストレージ制御装置。
【請求項７】
前記符号化手段は、前記データの損失率に関わる情報に基づいて、データの損失が認識されると、リードソロモン符号あるいはコーシー・リードソロモン符号の符号多項式から新たに送信符号を求め
前記送出手段は、前記新たに求めた送信符号を前記他のストレージシステム宛に送出する
ことを特徴とする請求項２記載のストレージ制御装置。
【請求項８】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御装置であって、
他のストレージシステムからネットワークを介して送信された符号化データを受信する受信手段と、
前記前記受信手段において受信した符号化データからデータを復元する復元手段と、
前記復元手段においてデータを復元できた場合には、前記ネットワークの転送に用いた消失訂正符号により該データを符号化する符号化手段と、
前記符号化手段における符号化処理により得られた符号化データを、前記複数のディスク装置に記憶させる記憶手段と
を備えたことを特徴とするストレージ制御装置。
【請求項９】
前記受信手段において受信した符号化データ数の、前記他のストレージシステムから送出された符号化データ数に対する比を求めることにより、前記ネットワークにおけるデータの損失率を測定する測定手段と、
前記測定した損失率に関わる情報を、前記他のストレージシステムに対して送信する送出手段と
を更に備え、
前記測定手段においては、前記他のストレージシステムから送出される符号化データに付されているデータの識別情報を用いて、前記受信手段において受信した符号化データ数を計数することにより、前記データの損失率を求める
ことを特徴とする請求項８記載のストレージ制御装置。
【請求項１０】
前記復元手段は、前記他のストレージシステムから送出されたデータを含むデータ列と、符号化行列のうち前記データの損失率に応じて決定される行とについて、それぞれ排他的論理和を求めることにより作成されたパリティデータを受信したときは、該パリティデータから構成されるデータ列と、前記符号化行列のうち該データの損失率に応じて決定される行とでそれぞれ排他的論理和を求めることにより、データの復元を行う
ことを特徴とする請求項８記載のストレージ制御装置。
【請求項１１】
第１のストレージシステムと、該第１のストレージシステムとネットワークを介して接続された第２のストレージシステムとから構成される統合ストレージシステムであって、
前記第１のストレージシステムに備えられた複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る第１の符号化手段と、
ホストコンピュータからの指示にしたがって、前記符号化データの前記第１のストレージシステムに備えられた前記複数のディスク装置への格納、及び該符号化データの該第１のストレージシステムに備えられた複数のディスク装置からの取り出しを行う記憶手段と、
前記記憶手段により前記第１のストレージシステムに備えられた複数のディスク装置から取り出された前記符号化データを、前記第２のストレージシステム宛に送出する送出手段と、
前記第１のストレージシステムからネットワークを介して送信された符号化データを受信する受信手段と、
前記前記受信手段において受信した符号化データからデータを復元する復元手段と、
前記復元手段においてデータを復元できた場合には、前記ネットワークの転送に用いた消失訂正符号により該データを符号化する第２の符号化手段と、
前記符号化手段における符号化処理により得られた符号化データを、前記第２のストレージシステムに備えられた複数のディスク装置に記憶させる記憶手段と
を備えたことを特徴とする統合ストレージシステム。
【請求項１２】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するストレージ制御方法であって、
前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得るステップと、
ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行うステップと、
前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出するステップと
を含むことを特徴とするストレージ制御方法。
【請求項１３】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御プログラムであって、
前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得るステップと、
ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行うステップと、
前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出するステップと
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【請求項１４】
第１のストレージシステムと、該第１のストレージシステムとネットワークを介して接続された第２のストレージシステムとから構成される統合ストレージシステムであって、
前記第１のストレージシステムに備えられた複数のディスク装置と、
前記第２のストレージシステムに備えられた複数のディスク装置と、
前記第１のストレージシステムに備えられた前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る第１の符号化手段と、
ホストコンピュータからの指示にしたがって、前記符号化データの前記第１のストレージシステムに備えられた前記複数のディスク装置への格納、及び該符号化データの該第１のストレージシステムに備えられた複数のディスク装置からの取り出しを行う記憶手段と、
前記記憶手段により前記第１のストレージシステムに備えられた複数のディスク装置から取り出された前記符号化データを、前記第２のストレージシステム宛に送出する送出手段と、
前記第１のストレージシステムからネットワークを介して送信された符号化データを受信する受信手段と、
前記前記受信手段において受信した符号化データからデータを復元する復元手段と、
前記復元手段においてデータを復元できた場合には、前記ネットワークの転送に用いた消失訂正符号により該データを符号化する第２の符号化手段と、
前記符号化手段における符号化処理により得られた符号化データを、前記第２のストレージシステムに備えられた前記複数のディスク装置に記憶させる記憶手段と
を備えたことを特徴とする統合ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のディスク装置にデータを分散させて格納するストレージシステムに関し、特に、ストレージシステムにデータを格納するときや他のストレージシステムにデータを転送するときにデータの符号化を行う技術に関する。
【背景技術】
【０００２】
近年、ストレージシステムにおいては、データの信頼性を保つために、データの保存に際してはリードソロモン符号（ＲＳ符号、Reed-Solomon Coding）等により符号化を行うと共に、複数の磁気ディスクドライブにデータを分散して記憶するアレイ構成のディスクアレイ装置が用いられることが多くなってきている。更には、ディスクアレイ装置を地理的に分散配置して、各装置間をイーサネット（登録商標）等の通信回線で接続してコピーを取る（ミラーリング）等の、地震や火災等の災厄からデータを保護するための耐ディザスタシステムの構築も始まっている。【０００３】
従来においては、ストレージシステム内にデータを格納するときの符号／復号方式とミラーリングを行うとき等にネットワーク間をデータ転送するときの符号／復号方式とでは別の方式を採用していた。すなわち、ネットワークを介して接続されたストレージシステムにデータを転送するときは、まずディスクドライブから符号化データを読み出して復号し、データ転送時の符号化方式により符号化してからデータを送出していた。【０００４】
ここで、ストレージシステム装置間のデータの送受信については、伝送距離に比例してデータ転送に遅延時間が発生する。また、回線が混雑している場合には、データ転送時間がより長くかかることとなる。従来は、ＴＣＰ（Transmission Control Protocol）によるデータ転送を行っていたため、データ転送時間が長くかかると、データ転送コマンドの応答時間が遅くなり、その結果としてタイムアウトエラー障害となるケースがあった。【０００５】
かかる問題を解決するために、装置間のデータ送受信コマンドの応答時間を監視し、その応答時間に基づいて一定時間内でのコマンドの発行回数、コマンド応答送信データ転送長を調整・設定する方法が提供されている（例えば、特許文献１）。【０００６】
あるいは、データ転送の遅延時間に応じて１回のデータ転送の総量を調整することにより、輻輳や過剰抑制が発生しないようにして転送効率の低下を防止する方法についても提供されている（例えば、特許文献２）。【０００７】
この他には、ストレージシステム装置を構成するディスクアレイ数と同数のネットワーク回線を用意し、対応するディスクアレイごとにデータをそのまま転送することで、元のデータについての復号処理を省略する方法について提供されている（例えば、特許文献３）。
【特許文献１】特開２００２−１９６８９４号公報
【特許文献２】特開２００３−２５６１４９号公報
【特許文献３】特開２００４−１８５４１６号公報
【発明の開示】
【０００８】
上記の特許文献１及び２の方法によれば、遠隔地のストレージシステム装置へのデータ転送時においては、データ転送元は、ストレージシステム内で符号化されていたデータを一旦復元してから転送する。そして、データ転送先においては、データを確実に復元できたことを確認してから再度データを符号化してストレージシステムへ再分配する等を行う。このため、システム全体にかかるオーバーヘッドが増大するという問題がある。
【０００９】
上記の特許文献３の方法によれば、ディスクアレイごとに別個に回線を用意する必要があり、実用性が高いとは言えない。また、ネットワークを介したデータ転送中に発生するパケットロス等のデータロスに関しては、ネットワーク装置側においてデータ補償を行っているために、データロス発生時のオーバーヘッドが大きいという問題がある。
【００１０】
本発明は、ネットワークを介して符号化データを転送するときに、ストレージシステムにかかるオーバーヘッドを軽減してデータ転送効率を向上させることのできる技術を提供することを目的とする。
【００１１】
上記課題を解決するために、本発明に係るストレージ制御装置は、複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御装置であって、前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る符号化手段と、ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行う記憶手段と、前記記憶手段により前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出する送出手段とを備えた構成とする。
【００１２】
上記ストレージ制御装置によれば、ディスク装置にデータを格納するときの符号化方式と、他のストレージシステムにデータを転送するときの符号化方式とでは、同一の消失訂正符号を採用する。ディスク装置に格納されているデータを他のストレージシステムに転送するときは、ディスク装置から読み出した符号化データを一旦復号してから転送用の符号化方式にて符号化を行うことが不要となる。これにより、データ転送の効率化を図ることができる。
【００１３】
前記他のストレージシステム側から送信された、該他のストレージシステム宛のデータについての前記ネットワークにおけるデータの損失率に関わる情報を受信する受信手段とを更に備え、前記データの損失率に関わる情報に基づいて、前記符号化手段は、前記送出手段により送出したデータについての新たなパリティデータを作成し、前記送出手段は、前記パリティデータを前記他のストレージシステム宛に送出する構成としてもよい。
【００１４】
ネットワーク上においてパケットロス等のデータの損失が生じた場合には、パリティデータを符号化して追加して他のストレージシステム宛に送信する。追加して送信するパリティデータ量は、他のストレージシステム側から通知されたデータの損失率に応じて適切に設定される。データの再送は行わずにパリティデータを送信しているため、データの損失率が増大してもこれに比例して送信すべきデータ量が増大することがなく、データの転送効率が低下することを効果的に防止する。
【００１５】
更には、前記符号化手段は、前記他のストレージシステムに送信すべきデータを含むデータ列と、符号化行列のうち該データの損失率に応じて決定される行とについてそれぞれ排他的論理和を求めることにより、前記新たなパリティデータを作成する構成としてもよい。
【００１６】
また、本発明に係るストレージ制御装置は、複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御装置であって、他のストレージシステムからネットワークを介して送信された符号化データを受信する受信手段と、前記前記受信手段において受信した符号化データからデータを復元する復元手段と、前記復元手段においてデータを復元できた場合には、前記ネットワークの転送に用いた消失訂正符号により該データを符号化する符号化手段と、前記符号化手段における符号化処理により得られた符号化データを、前記複数のディスク装置に記憶させる記憶手段とを備えた構成とする。
【００１７】
なお、本発明は、上記のストレージ制御装置に限られない。上記のストレージ制御装置において実行されるストレージを制御する方法及びその方法をコンピュータに実行させるプログラム、上記ストレージ制御装置を備えたストレージシステムであっても、本発明に含まれる。
【００１８】
本発明によれば、データをディスク装置に記憶させるときの符号化方式と、データを他のストレージシステムに転送するときの符号化方式とで同一の消失訂正符号を用いていることにより、ディスク装置からデータを読み出して他のストレージシステム宛にデータを転送するときのストレージシステムにかかるオーバーヘッドを軽減することができ、データ転送の効率化を図ることができる。
【図面の簡単な説明】
【００１９】
【図１】ストレージシステムの構成図である。
【図２】ＲＡＩＤコントローラのブロック図である。
【図３】ダミー応答メッセージの送受信を説明する図である。
【図４】ロス率測定方法を説明する図である。
【図５】データの転送方法ごとの転送速度とパケットロス率との関係を示す図である。
【図６】ディスクアレイ装置の構成を説明する図である。
【図７】従来における符号化データの書き込み処理とＲＰＳ符号による符号化データの書き込み処理とについての各種の比較結果を示したグラフである。
【図８】ＲＰＳ符号における符号化行列を説明する図である。
【図９】ＲＰＳ符号化テーブルの一例を示す図である。
【図１０】パリティデータの作成方法を説明する図である。
【図１１】データ送信側のストレージシステムのデータ転送処理を示したフローチャートである。
【図１２】データ受信側のストレージシステムのデータ受信処理を示したフローチャートである。
【図１３】実施形態に係るデータ転送方法におけるパケットロス率と転送速度との関係を、従来技術におけるパケットロス率と転送速度との関係と比較した図である。
【図１４】実施形態に係るデータ転送方法における転送距離による遅延時間と転送速度との関係を、従来技術における転送距離による遅延時間と転送速度との関係と比較した他の図である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好適な実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態に係るストレージシステムの構成図である。図１においては、公衆網等のネットワーク１０を介して２つのストレージシステム１が互いに接続される構成を示している。２つのストレージシステムのうち、データの送信側をストレージシステム１Ａ、受信側をストレージシステム１Ｂと表記する。以下の説明及び図面においては、データの送信側と受信側とを区別して表すときは、送信側の装置には符合に「Ａ」を、受信側の装置には符合に「Ｂ」を付すこととし、区別が不要の場合は省略して表記することとする。【００２１】
各ストレージシステム１は、ディスクアレイ装置２、ＲＡＩＤ（Redundant Arrays of Inexpensive （あるいはIndependent） Disks）コントローラ３及び送受信装置４を含んで構成される。ストレージシステム１は、例えばＲＡＩＤ６構成からなるが、ＲＡＩＤ５以下の構成であってもよい。【００２２】
ディスクアレイ装置２は、複数のディスク装置を備える。ＲＡＩＤコントローラ３は、図１においては不図示のホストコンピュータからの指示にしたがって、ディスクアレイ装置２に備えられたディスク装置へのデータの格納及び取り出し等を制御する。送受信装置４は、ネットワークアダプタ等の転送装置を備え、ディスクアレイ装置２から取り出したデータの他のストレージシステム１への転送を行う。【００２３】
図１に示す本実施形態に係るストレージシステム１によれば、データをディスクアレイ装置２に格納するときに行う符号化方式と、ミラーリング処理等において他のストレージシステム１に対してデータを転送するときの符号化方式とで同一の方式を採用する。そして、他のストレージシステム１に対してデータを転送する際にネットワーク１０上においてデータパケットの損失が発生したことを送信側のストレージシステム１Ａにおいて認識すると、パケットのロス率に応じてディスクアレイ装置２のディスク装置から符号化データを読み出し、そのまま送出する。【００２４】
送受信装置４は、帯域制御、ＩＰＳｅｃ（Security Architecture for Internet Protocol）暗号化及びＬＦＴ（Long Fat Tunnel）プロトコル変換等の公知技術の各種処理を行い、ＲＡＩＤコントローラ３から転送されたデータをパケット化して送出する。また、ネットワーク１０から転送されてきたデータパケットを受信すると、データを取り出してＲＡＩＤコントローラ３に与える。【００２５】
採用する符号化方式としては、例えば、特開２００６−２７１００６号公報に記載されている符号化方式や、リードソロモン符号、コーシー・リードソロモン符号（Cauchy Reed-Solomon Coding）等が上げられる。【００２６】
以下の説明においては、上記特開２００６−２７１００６号公報に記載されている符号化方式を、ＲＰＳ（Random Parity Stream）符号と呼ぶこととする。ＲＰＳ符号により符号化されたデータをディスク装置に格納する方法や他のストレージシステムに転送する方法については、後述する。【００２７】
ＲＰＳ符号による符号化処理は、ＲＡＩＤコントローラ３において行う。次に、図２を参照して、ＲＡＩＤコントローラの構成について説明する。
図２は、ＲＡＩＤコントローラ３のブロック図である。図２においては、受信側及び送信側のＲＡＩＤコントローラ３Ａ、３Ｂに共通のブロック図を示す。【００２８】
ＲＡＩＤコントローラ３は、ディスクアレイ装置２、パーソナルコンピュータ５及び送受信装置４と接続され、入出力部３１、符号化部３２、記憶／読出部３３、差分抽出／差分復元部３４、ダミー応答部３５及びロス率測定部３６を含んで構成される。【００２９】
入出力部３１は、ホストコンピュータであるパーソナルコンピュータ５からの命令を受けて、データの入出力を実行する。
符号化部３２は、入出力部３１からの指示にしたがって、ディスクアレイ装置２のディスク装置に格納するデータや、他のストレージシステム１Ｂに追加して送信すべきデータについて、符号化を行う。【００３０】
記憶／読出部３３は、符号化部３２において符号化したデータのディスク装置への書き込み及びデータのディスク装置からの読み出しを行う。
差分抽出／差分復元部３４は、他のストレージシステム１にデータを送信するときは、先に送信したデータとこれから送信しようとしているデータの差分を抽出し、また、他のストレージシステム１からデータを受信するときは、先に受信したデータとの差分に基づいて、復元処理を行う。【００３１】
ダミー応答部３５は、ストレージシステム１Ｂに向けて送出するデータを送受信装置４に転送した後、そのデータについてのダミーの応答メッセージを受け付ける。ここで、「ダミー応答メッセージ」とは、データ受信装置であるストレージシステム１Ｂ側から送信される「実際の応答メッセージ」に対するメッセージ、すなわち、ＲＡＩＤコントローラ３Ａにおいて応答を受信したと認識するために使用するメッセージの意で用いている。ダミーの応答メッセージは、データをネットワーク１０に送出する送受信装置４Ａから送信される。ダミー応答メッセージの送受信に関しては、図３を参照して詳説することとする。【００３２】
ロス率測定部３６は、ミラーリング等においてデータを受信するストレージシステム１Ｂにおいて、受信したパケット数を計数することにより、ネットワーク１０上のパケットロス率を測定する。ロス率測定の具体的な方法については、図４を参照して詳説することとする。【００３３】
図３は、ダミー応答メッセージの送受信を説明する図である。図３（ａ）は、従来技術に係るデータの転送処理を示したシーケンスであり、図３（ｂ）は、本実施形態に係るデータの転送処理を示したシーケンスである。【００３４】
図３（ａ）に示すように、従来においては、送信側のＲＡＩＤコントローラ３Ａは、ストレージ装置からデータを取り出すと、送受信装置４Ａを介してデータパケットを送信する。受信側のＲＡＩＤコントローラ３Ｂは、送受信装置４Ｂを介してデータパケットを受信したことを認識すると、データをストレージ装置に格納するとともに、応答メッセージを送信側に向けて送信する。応答メッセージを受信すると、ＲＡＩＤコントローラ３Ａは、次に送信すべきデータを読み出して送信する。【００３５】
これに対し、図３（ｂ）に示すように、本実施形態においては、ストレージ装置からデータを読み出して送信すると、送信側に備えられたダミー応答装置が、ダミー応答メッセージを返す。ダミー応答メッセージを受け取ると、次のデータを読み出して送信する。【００３６】
受信側のストレージシステム１Ｂからは実際の応答メッセージが送信されているが、本実施形態においては、送受信装置４ＡからＲＡＩＤコントローラ３Ａ宛に送信されたダミー応答を受信したことに基づいて、次のデータを送信している。ダミー応答メッセージにしたがってデータを送信することで、受信側からの応答メッセージを待つ時間が短縮されている。【００３７】
従来においては、ＴＣＰによるデータ送信を行っていたため、ストレージシステム１間の距離が大きくなるほどデータ転送に時間を要し、応答メッセージを受信するまでの待ち時間ｔ１も長くなっていた。これに対し、本実施形態に係るデータの転送方法によれば、データの受信側から送信側に対して送信される応答メッセージを待つ必要がなく、転送すべきデータを順次送信していくことができる。すなわち、次のデータを送出するまでの時間ｔ２が上記の待ち時間ｔ１と比較すると短くなる。これにより、データ転送効率が向上する。【００３８】
図４は、本実施形態に係るロス率測定方法を説明する図である。送信側において、転送すべきデータパケットＰのそれぞれに通し番号等を付与しておく。受信側においては、受信側のストレージシステム１Ｂまで届いたデータパケット数を計数する。そして、一定の個数のデータパケットごとに、届いたデータパケット数の送信されたデータパケット数に対する割合をパケットのロス率として算出する。受信側は、各データパケットに付された通し番号を参照して一定の個数のデータパケットを認識する。すなわち、例えば１００個のデータパケットごとにロス率を測定する場合、通し番号が１番から付されているときは、１００番のデータパケットを受信したタイミングでロス率を測定する。１００番のデータパケットがパケットロスにより受信側まで届かない場合は、１００番以降の通し番号すなわち１０１番以降の通し番号のデータパケットを認識すると、ロス率の測定を行う。【００３９】
図４に示すように、例えば、ネットワーク１０に送出された１００個のデータパケットのうち、受信側において受信したデータパケットは８０個であったとする。この例では、ロス率は１００−（８０／１００）×１００＝２０％と求まる。【００４０】
ストレージシステム１Ｂは、測定したロス率をストレージシステム１Ａに送信する。データ送信元であるストレージシステム１Ａは、受信した情報を解析して、ストレージシステム１Ｂにおけるロス率の測定結果をデータ転送に反映させる。すなわち、受信したパケットロス率に応じて、追加して送信するデータ量を決定する。【００４１】
本例では、１００個のデータパケットごとに測定し、定期的に送信側のストレージシステム１Ａ側に求めたロス率を送信している。データ送信元のストレージシステム１Ａは、通し番号がｎ番（ｎは整数）から（ｎ＋９９）番までの１００個のデータパケットについてのロス率にしたがって、これらのデータパケットに含まれていたデータについてのパリティデータを追加して送信する。【００４２】
本実施形態に係るデータの転送方法によれば、パケットロスが検出された場合であっても、データの再送は行わない。再送を行う代わりに、ＲＡＩＤにおけるパリティディスクに格納されているパリティデータを送信する。【００４３】
なお、パリティデータを追加して動的に生成して送信するときに、差分圧縮技術を採用し、追加して送信するデータ量をより小さく抑えることとしてもよい。
図５は、データの転送方法ごとの転送速度とパケットロス率との関係を示す図である。ここでは、帯域が２Ｍｂｐｓ、往復遅延時間（ＲＴＴ、Round Trip Time）が４００ｍｓで公衆網を用いてデータ転送を行った場合に、パケットロス率によるデータの転送速度の変化をデータの転送方法ごとに示している。【００４４】
図中に示す４つのグラフのうち、ＲＰＳ符号により符号化したデータを本実施形態に係るデータ転送方法で転送する場合のグラフがＬ１及びＬ２である。従来のＴＣＰにより転送する場合のグラフがＬ４である。【００４５】
図５に示すように、従来のＴＣＰによるデータ転送方法によれば、パケットロスが認識されると、データの再送を行っている。パケットロス率が高くなるほど再送すべきデータ量も増加するため、パケットロス率の上昇に伴って転送速度は低下する傾向にある。【００４６】
これに対して、本実施形態に係るデータ転送方法によれば、ストレージシステム１Ａは、受信側のストレージシステム１Ｂからの応答メッセージを待たずに順次データパケットを送信してゆく。そして、パケットロス率に応じて追加のパリティデータ生成し、パケット化して送信する。データの再送が不要となることから、パケットロス率が上昇した場合であっても、転送速度は低下しない。【００４７】
上記のとおり、本実施形態に係るストレージシステム１においては、データ転送の際に用いる訂正符号の方式と、ディスク装置にデータを格納するときの訂正符号の方式とで同じ方式を採用している。次に、図６及び図７を参照して、ＲＰＳ符号を用いてディスク装置にデータを格納する方法について説明する。【００４８】
図６は、ディスクアレイ装置の構成を説明する図である。図６（ａ）は、従来におけるディスクアレイ装置の構成を示し、図６（ｂ）は、本実施形態に係るディスクアレイ装置２の構成を示す。【００４９】
図６（ａ）に示すように、従来におけるＲＡＩＤ６の構成では、複数のディスク装置（図に示す例では１４台のディスク装置）のうち２台はパリティディスクＤ２であり、残りの１２台はデータディスクＤ１である。（Ｐ＋Ｑ）方式でデータの書き込みを行う場合は、２台のパリティディスクＤ２のうち、一方にはガロア積演算の結果得られるパリティが、他方にはＸＯＲ演算の結果得られるパリティが格納される。このような構成の下では、２台のディスク装置の故障に対応してデータ補償を行うことができる。【００５０】
これに対し、図６（ｂ）に示すように、本実施形態においては、ＲＰＳ符号により符号化したデータをディスク装置に書き込む。ＲＰＳ符号においてはＸＯＲ演算のみを行う。図６（ｂ）においては、複数のディスク装置のうち２台をパリティディスクＤ２とし、残りはデータディスクＤ１とする構成である。詳しくは後述するが、ＲＰＳ符号によれば、更に追加のパリティディスクＤ３を用意し、パリティディスクを３台以上備える構成も可能である。これにより、３台以上のディスク装置の故障に対応してデータ補償を行うことが可能となる。【００５１】
図７は、従来における（Ｐ＋Ｑ）方式により符号化してデータの書き込みを行う場合及びＲＰＳ符号により符号化してデータの書き込みを行う場合について各種の比較を行った結果を示したグラフである。いずれの場合についても、ＲＡＩＤ６の構成である。図７の左側から順に、ディスク装置への書き込み速度についてのＲＡＩＤ５との比較、符号化行列を保持するためのテーブルサイズ及びデータの冗長度を示す。【００５２】
書き込み速度については、ＲＰＳ符号方式によれば、（Ｐ＋Ｑ）方式とは異なりガロア積演算が不要であるため、より高速に処理することができる。
テーブルサイズについては、従来と比べて同等あるいは従来よりもサイズを小さくすることができる。【００５３】
冗長度については、従来とほぼ同程度の冗長度で符号化を行うことができる。なお、図７に示す冗長度は、パリティデータを含めたディスク装置に書き込むデータ量（総データ量）のディスク装置に格納すべきデータ量（元データ量）に対する比で定義される量である。【００５４】
このように、ディスクアレイ装置２のディスク装置に格納するデータをＲＰＳ符号により符号化することで、符号化行列を保持するために要するメモリサイズは従来と同等あるいは従来以下に抑え、冗長度についても従来と同等の値を保ちつつ、高速な書き込み処理を行うことが可能となる。【００５５】
図８は、ＲＰＳ符号における符号化行列を説明する図である。図８では、ＲＡＩＤ６構成において、１４台のディスク装置のうちデータ用のディスク装置を１２台、パリティデータ用のディスク装置を２台備えた構成を示す。【００５６】
符号化行列のうち１行及び２行（図８においてはＲ１）については、それぞれ２台のパリティディスク装置に格納すべきパリティデータの演算に使用する。
ＲＰＳ符号の符号化行列のうち３行以降の行（図８においてはＲ２）は、実データを割符化するように各行列要素が設定されている。すなわち、３行以降の行を用いて符号化されたデータは、パリティデータを構成する。これにより、上記のとおり、３行以降の行を用いて符号化されたデータを格納するためのパリティディスクを追加することができる。【００５７】
あるいは、パケットロスが検出されると、３行以降の行を用いてパリティデータを新たに生成し、得られた符号化データを追加して送信することもできる。追加のデータパケットを受信したストレージシステムにおいては、送信側と同じ符号化行列を保持しており、パリティデータに基づいて実データを復元する。【００５８】
図８に示すＲＰＳ符号の符号化行列の各行列要素は、予めＲＡＩＤコントローラ２に備えられたメモリ等にＲＰＳ符号化テーブルとして保持されている。パリティデータを生成するとき及び受信したパリティデータを復元するときに、メモリ等に保持されているＲＰＳ符号化テーブルから必要な行列要素が読み出される。【００５９】
図９は、ＲＰＳ符号化テーブルの一例を示す図である。図９に示すＲＰＳ符号化テーブルは、３つのテーブル部Ｔ１、Ｔ２及びＴ３からなる。
第１のテーブルＴ１は、単位行列の行列要素を保持している。第１のテーブルＴ１に保持される行列要素データにより、転送すべきデータをシステマティックに符号化するものであり、ディスク装置ごとにデータを符号化する。【００６０】
第２のテーブルＴ２は、図８に示すＲＰＳ符号により符号化するための行列要素を保持している。各行列要素については、複数のディスク装置のうちいずれかが故障した場合にいずれのディスク装置に格納されているデータについてのパリティデータを送信すべきかの組み合わせをシミュレーション等により求めている。シミュレーションに時間をかけて最適な組み合わせを求めることにより、より確実にデータの復元ができるようになる。【００６１】
第３のテーブルＴ３は、乱数により求めた行列要素の配置を保持している。なお、乱数により求められる行列については、図に示すように、予めテーブルに保持しておく構成としてもよい。【００６２】
あるいは、ディスク装置の故障によりデータの復元を行う必要が生じたときや、データ転送時にパケットロスが発生したことにより、追加してパリティデータを送信する必要が生じたときに乱数を用いて行列を生成する構成としてもよい。ＲＰＳ符号化テーブルのサイズを小さくし、使用メモリ量を抑えることができる。【００６３】
更には、シミュレーションにより求めた行列要素を保持する第２のテーブルＴ２と乱数により求めた行列要素を保持する第３のテーブルのいずれか一方を保持する構成とすることもできる。【００６４】
図１０は、本実施形態に係るパリティデータの作成方法を説明する図である。データディスク装置に格納されている実データを「データ１」から「データ４」とする。ディスク装置の故障やネットワーク１０でのパケットロスが生じたときは、上記のとおり、パリティデータを用いてデータを復元する。パリティデータは、実データを割符化することにより得られる。具体的には、図８に示す割符化用の行列（符号化行列）のうち、値が１の行列要素に対応するデータ同士で排他的論理和（以下においては「ＸＯＲ」と表記）を取り、割符データを得る。【００６５】
図１０に示す行列においては、１行目は（１、０、１、１）からなる。この場合は、データ１、３及び４についてのＸＯＲを取った結果を割符データとする。行列の２行目は（０、１、１、０）からなり、データ２及び３についてのＸＯＲを取った結果を割符データとする。他の行についても同様の方法によりＸＯＲ演算を行うことにより、割符データを生成する。【００６６】
上記の方法で作成した割符データのうち、ネットワーク１０上でロスしたデータの復元処理に使用するデータ量は、パケットロス率に応じて決定される。上記の実施形態に係るデータ転送方法によれば、パケットロスの発生時に追加してデータを送信するとき、送信側のストレージシステム１Ａにおいては受信側に届かなかったデータがどのデータであるかを認識することができない。しかし、追加のデータとして上記の割符データを送信することで、より確実に受信側において損失したデータを復元できるようになる。【００６７】
また、行列の行数を増やし、生成する割符データの数を多くすることで、パリティディスク装置を増設することができる。パリティディスク装置の数を増やすことで、ストレージシステム１内でのディスク故障時におけるデータ補償をより確実に行うことが可能となる。【００６８】
パケットロス及びディスク故障が生じた場合には、割符データ同士についてＸＯＲ演算を行うことで、元のデータを復元することができる。
図１１は、データ送信側のストレージシステム１Ａのデータ転送処理を示したフローチャートである。【００６９】
まず、ステップＳ１で、送信するデータパケットに通し番号を与え、ステップＳ２で、送信データを送信する。ステップＳ３で、データの送信先であるストレージシステム１Ｂから送信されたロス率を受信したか否かを判定する。【００７０】
ロス率を受信した場合は、ステップＳ４に進み、先に受信した場合と比較してロス率が増加しているか否かを判定する。ロス率に変化がない場合及びロス率が減少している場合は、ステップＳ２に戻る。そして、送信すべきデータを全て送信し終えていない場合は、データの送信を行う。【００７１】
ステップＳ４において、ロス率が先に受信したロス率と比較して増加していると判定された場合は、ステップＳ５に進み、部分データを追加で生成し、ステップＳ２に戻り、生成したパリティデータを送信する。なお、部分データとは、受信側においてロスしたデータを復元するためのパリティデータであり、パリティデータは、上記の符号化行列により、ステップＳ２で送信したデータの全体のうち一部について生成した割符データからなる。【００７２】
ステップＳ３においてロス率を受信していないと判定された場合は、ステップＳ６に進む。そして、ステップＳ６で、ストレージシステム１Ｂから送信されたデータ受信完了メッセージを受信したか否かを更に判定する。【００７３】
ステップＳ６においてデータ受信完了メッセージをまだ受信していないと判定された場合は、ステップＳ７に進み、ｎ個の追加の部分データ（パリティデータ）を送信したか否かを判定する。まだ送信してない場合は、ステップＳ２に戻り、データの送信を継続する。ｎ個の追加のデータを送信済みの場合は、ステップＳ５に進み、更に部分データを追加で生成し、ステップＳ２で生成したパリティデータを送信する。【００７４】
ステップＳ６においてデータ受信完了メッセージを受信したと判定された場合は、データの送信処理を終了する。
図１２は、データ受信側のストレージシステム１Ｂのデータ受信処理を示したフローチャートである。【００７５】
まず、ステップＳ１１で、部分データを受信すると、ステップＳ１２で、受信した部分データに付されている通し番号及び受信したパケット数に基づいて、ロス率を測定する。そして、ステップＳ１３で、所定の個数のデータパケットを受信したか否かを判定する。ここで、所定の個数のデータパケットとは、ロス率測定の対象となっているデータパケットをいい、上記の図４の例においては１番から１００番までの１００個のデータパケットをいう。【００７６】
ステップＳ１３において所定の個数のデータパケットを受信したと判定された場合は、ステップＳ１４に進み、受信したパケット数とステップＳ１３の所定の数（パケット数）との比を求めることにより、ロス率を算出し、送信側のストレージシステム１Ａ宛に測定結果を送信し、ステップＳ１５に進む。ステップＳ１３において所定の個数のデータパケットを受信していないと判定された場合は、受信したデータはパリティデータであるとして、ロス率の測定は行わず、ステップＳ１５に進む。【００７７】
ステップＳ１５で、データの復元処理を行う。そして、ステップＳ１６で、データの復元が完了したか否かを判定する。データの復元が完了していないと判定された場合は、ステップＳ１１に戻る。データの復元が完了したと判定された場合は、ステップＳ１７に進む。【００７８】
ステップＳ１７で、データをＲＰＳ符号により再符号化すると、ステップＳ１８で、データをディスクアレイ装置２のディスク装置のそれぞれに記憶させ、処理を終了する。
図１３は、本実施形態に係るデータ転送方法におけるパケットロス率と転送速度との関係を、従来技術におけるパケットロス率と転送速度との関係と比較した図である。同図においては、無線通信環境において、帯域２Ｍｂｐｓ、ＲＴＴ２００ｍｓ、ファイルサイズ４ＭＢの条件の下で比較を行っている。【００７９】
従来のＴＣＰを用いてデータ転送を行う方法によれば、受信側のストレージシステムに届かなかったと認識されたデータパケットについては再送を行う。このため、パケットロス率が上昇すると、再送すべきデータパケット数も増加し、データの転送速度が低下している。【００８０】
これに対し、本実施形態に係るデータ転送方法によれば、上記のとおり、パケットロスが検出されると、ロス率の値に応じた量のパリティデータを追加して送信する。追加して送信するデータ量は、パケットロス率に比例して増加するわけではない。これにより、パケットロス率の値によらずに、転送速度はほぼ一定の値をとることができる。【００８１】
図１４は、本実施形態に係るデータ転送方法における転送距離による遅延時間と転送速度との関係を、従来技術における転送距離による遅延時間と転送速度との関係と比較した他の図である。同図においては、光ファイバによる有線通信環境において、帯域１０Ｍｂｐｓ、ファイルサイズ２００ＭＢの条件下で比較を行っている。【００８２】
有線通信環境下においては、ＴＣＰによる通信を行っていたため、データパケットを送信するごとにその応答メッセージを待ち、応答メッセージを受信しない場合はデータパケットの再送を行っている。距離が遠くるほど応答メッセージを受信するまでに時間を要するため、遅延時間が大きくなるほど転送速度が低下していた。これに対し、本実施形態に係るデータ転送方法によれば、送信側のストレージシステム内においてダミーの応答メッセージを返して順次データパケットを送信していくため、遅延時間が大きくなっても、転送速度は低下せず、ほぼ一定の値をとることができる。【００８３】
以上説明したように、本実施形態に係るデータ転送方法によれば、ディスク装置にデータを記憶させるときの符号化方式と、ディスク装置からデータを読み出して他のストレージシステムにデータを転送するときの符号化方式とで同一の消失訂正符号を採用している。このため、ミラーリング等において他のストレージシステムにデータを転送するときは、ディスク装置から読み出したデータをそのままネットワークに送出することができ、従来のように、一旦復号してからデータ転送用の符号化方式で符号化する処理が不要となり、これにより、データ転送の効率化を図ることができる。【００８４】
また、ネットワーク上においてパケットロス等のデータロスが検出された場合には、データ転送先のストレージシステム宛に、パリティデータを符号化して追加して送信する。データの再送は行わないため、データのロス率が増大しても、送信するデータ量がロス率に応じて増大するということがない。これにより、ロス率が大きい場合であってもデータの転送効率が低下することを効果的に防止することができる。
【図１】
2009050761.tif 000003
【図２】
2009050761.tif 000004
【図３】
2009050761.tif 000005
【図４】
2009050761.tif 000006
【図５】
2009050761.tif 000007
【図６】
2009050761.tif 000008
【図７】
2009050761.tif 000009
【図８】
2009050761.tif 000010
【図９】
2009050761.tif 000011
【図１０】
2009050761.tif 000012
【図１１】
2009050761.tif 000013
【図１２】
2009050761.tif 000014
【図１３】
2009050761.tif 000015
【図１４】
2009050761.tif 000016
【手続補正書】
【提出日】平成22年1月22日(2010.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御装置であって、
前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る符号化手段と、
ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行う記憶手段と、
前記記憶手段により前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出する送出手段と
を備えたことを特徴とするストレージ制御装置。
【請求項２】
前記他のストレージシステム側から送信された、該他のストレージシステム宛のデータについての前記ネットワークにおけるデータの損失率に関わる情報を受信する受信手段と
を更に備え、
前記データの損失率に関わる情報に基づいて、前記符号化手段は、前記送出手段により送出したデータについての新たなパリティデータを作成し、
前記送出手段は、前記パリティデータを前記他のストレージシステム宛に送出する
ことを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記符号化手段は、前記他のストレージシステムに送信すべきデータを含むデータ列と、符号化行列のうち該データの損失率に応じて決定される行とについてそれぞれ排他的論理和を求めることにより、前記新たなパリティデータを作成する
ことを特徴とする請求項２記載のストレージ制御装置。
【請求項４】
前記符号化行列は、前記ストレージシステムと前記他のストレージシステムとの間のデータ転送のシミュレーションに基づいて求められ、保持手段に保持されている
ことを特徴とする請求項３記載のストレージ制御装置。
【請求項５】
前記符号化手段は、前記新たなパリティデータを作成するタイミングで乱数を用いて作成した前記符号化行列を用いて、符号化を行う
ことを特徴とする請求項３記載のストレージ制御装置。
【請求項６】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御装置であって、
他のストレージシステムからネットワークを介して送信された符号化データを受信する受信手段と、
前記前記受信手段において受信した符号化データからデータを復元する復元手段と、
前記復元手段においてデータを復元できた場合には、前記ネットワークの転送に用いた消失訂正符号により該データを符号化する符号化手段と、
前記符号化手段における符号化処理により得られた符号化データを、前記複数のディスク装置に記憶させる記憶手段と
を備えたことを特徴とするストレージ制御装置。
【請求項７】
前記復元手段は、前記他のストレージシステムから送出されたデータを含むデータ列と、符号化行列のうち前記データの損失率に応じて決定される行とについて、それぞれ排他的論理和を求めることにより作成されたパリティデータを受信したときは、該パリティデータから構成されるデータ列と、前記符号化行列のうち該データの損失率に応じて決定される行とでそれぞれ排他的論理和を求めることにより、データの復元を行う
ことを特徴とする請求項６記載のストレージ制御装置。
【請求項８】
第１のストレージシステムと、該第１のストレージシステムとネットワークを介して接続された第２のストレージシステムとから構成される統合ストレージシステムであって、
前記第１のストレージシステムに備えられた複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得る第１の符号化手段と、
ホストコンピュータからの指示にしたがって、前記符号化データの前記第１のストレージシステムに備えられた前記複数のディスク装置への格納、及び該符号化データの該第１のストレージシステムに備えられた複数のディスク装置からの取り出しを行う記憶手段と、
前記記憶手段により前記第１のストレージシステムに備えられた複数のディスク装置から取り出された前記符号化データを、前記第２のストレージシステム宛に送出する送出手段と、
前記第１のストレージシステムからネットワークを介して送信された符号化データを受信する受信手段と、
前記前記受信手段において受信した符号化データからデータを復元する復元手段と、
前記復元手段においてデータを復元できた場合には、前記ネットワークの転送に用いた消失訂正符号により該データを符号化する第２の符号化手段と、
前記符号化手段における符号化処理により得られた符号化データを、前記第２のストレージシステムに備えられた複数のディスク装置に記憶させる記憶手段と
を備えたことを特徴とする統合ストレージシステム。
【請求項９】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するストレージ制御方法であって、
前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得るステップと、
ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行うステップと、
前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出するステップと
を含むことを特徴とするストレージ制御方法。
【請求項１０】
複数のディスク装置を備えたストレージシステムにおいて、該複数のディスク装置へのデータの記憶を制御するためのストレージ制御プログラムであって、
前記複数のディスク装置に格納すべきデータを、消失訂正符号により符号化し、符号化データを得るステップと、
ホストコンピュータからの指示にしたがって、前記符号化データの前記複数のディスク装置への格納、及び該符号化データの該複数のディスク装置からの取り出しを行うステップと、
前記複数のディスク装置から取り出された前記符号化データを、前記ストレージシステムとネットワークを介して接続された他のストレージシステム宛に送出するステップと
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【国際調査報告】
2009050761.tif 000017
2009050761.tif 000018
2009050761.tif 000019
2009050761.tif 000020