(57)【特許請求の範囲】
【請求項１】
複数の記憶装置と、上記記憶装置と転送経路の間のデータ転送を中継するディスクコントローラとを有する複数の記憶デバイスと、
上記転送経路に接続し、上記転送経路を介して上記記憶デバイスから転送されたデータを処理する複数のデータ処理デバイスと、
オペレーティングシステムを実行し、この実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報に基づいて、上記記憶デバイスから読み込んだデータを処理する中央処理装置とを備え、上記転送経路を介して上記記憶デバイスと上記データ処理デバイスとの間でデータ転送するデバイス間データ転送装置において、
上記記憶装置のデータを上記記憶デバイスから上記データ処理デバイスへデータ転送するにあたり、上記オペレーティングシステムの実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報を用いず、
複数の上記記憶装置の組からなる論理ボリュームを特定する論理ボリューム識別情報、この論理ボリューム識別情報で特定される複数の論理ボリュームからなり、複数の上記論理ボリューム間で同一のデータがミラーリングされた冗長ボリュームを特定する冗長ボリューム識別情報、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送の対象となる上記データ処理デバイスを特定するデバイス特定情報、及び上記記憶デバイスと上記データ処理デバイスとの間のデータ転送における各転送経路のデータ転送効率に応じて上記冗長ボリュームの論理ボリュームに付与したデータを転送をすべき優先順位を指定する優先度からなる冗長性情報を格納する冗長性管理テーブルから、上記データの転送元の論理ボリュームを特定する論理ボリューム識別情報及び転送先の上記データ処理デバイスを特定するデバイス特定情報に合致する上記冗長性情報を読み出して、データ転送を優先すべきボリュームを特定する情報として記録するとともに、
上記冗長性管理テーブルから、上記記録した冗長性情報の冗長ボリューム識別情報及びデバイス特定情報に対応する他の冗長性情報を探索し、
上記他の冗長性情報がなければ、上記記録した冗長性情報で特定される冗長ボリュームの論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定し、
上記他の冗長性情報が存在すると、上記記録した冗長性情報の論理ボリュームに付与された優先度と、上記他の冗長性情報の論理ボリュームに付与された上記優先度を比較して優先度の高い論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定するボリューム冗長性管理手段と、
上記記憶装置の物理的位置、複数の上記データ処理デバイスの物理的位置及び複数の上記転送経路のデータ転送効率を記憶するボリューム管理テーブルから読み出した上記記憶装置及び上記データ処理デバイスの物理的位置と上記複数の転送経路のデータ転送効率とから、上記ボリューム冗長性管理手段による判定で得られた上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームを構成する記憶装置のデータ転送の可否を識別し、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送を制御するデータ転送制御手段とを備えたことを特徴とするデバイス間データ転送装置。
【請求項２】
ボリューム冗長性管理手段は、論理ボリュームにデータが書き込まれると、この論理ボリュームに対応する冗長ボリュームの複数の論理ボリュームに対して上記データの複製を自動的に書き込むことを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項３】
ボリューム冗長性管理手段は、新たな論理ボリュームを冗長ボリュームに追加した際、この冗長ボリュームに既存の論理ボリュームのデータの複製を新たな論理ボリュームに書き込むことを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項４】
論理ボリュームの優先度は、転送経路のデータ転送効率に応じて設定した値であることを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項５】
論理ボリュームの優先度は、転送経路の障害率に応じて設定した値であることを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項６】
論理ボリュームの優先度は、記憶デバイスを構成する記憶装置の故障率、論理ボリュームを構成する記憶装置の故障率、及びデータ処理デバイスの故障率に応じて設定した値であることを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項７】
論理ボリュームの優先度は、転送経路のデータ転送効率、記憶デバイスを構成する記憶装置の故障率、論理ボリュームを構成する記憶装置の故障率、データ処理デバイスの故障率、及び上記転送経路の障害率に応じて設定した値であることを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項８】
データ転送制御手段は、転送時のエラー又は転送時の実際の転送効率に合わせて論理ボリュームの優先度を動的に変更することを特徴とする請求項１記載のデバイス間データ転送装置。
【請求項９】
複数の記憶装置と、上記記憶装置と転送経路の間のデータ転送を中継するディスクコントローラとを有する複数の記憶デバイスと、
上記転送経路に接続し、上記転送経路を介して上記記憶デバイスから転送されたデータを処理する複数のデータ処理デバイスと、
オペレーティングシステムを実行し、この実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報に基づいて、上記記憶デバイスから読み込んだデータを処理する中央処理装置とを備えたデバイス間データ転送装置のデバイス間データ転送方法において、
上記デバイス間データ転送装置のボリューム冗長性管理手段が、
上記記憶装置のデータを上記記憶デバイスから上記データ処理デバイスへデータ転送するにあたり、上記オペレーティングシステムの実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報を用いず、
複数の上記記憶装置の組からなる論理ボリュームを特定する論理ボリューム識別情報、この論理ボリューム識別情報で特定される複数の論理ボリュームからなり、複数の上記論理ボリューム間で同一のデータがミラーリングされた冗長ボリュームを特定する冗長ボリューム識別情報、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送の対象となる上記データ処理デバイスを特定するデバイス特定情報、及び上記記憶デバイスと上記データ処理デバイスとの間のデータ転送における各転送経路のデータ転送効率に応じて上記冗長ボリュームの論理ボリュームに付与したデータを転送をすべき優先順位を指定する優先度からなる冗長性情報を格納する冗長性管理テーブルから、上記データの転送元の論理ボリュームを特定する論理ボリューム識別情報及び転送先の上記データ処理デバイスを特定するデバイス特定情報に合致する上記冗長性情報を読み出して、データ転送を優先すべきボリュームを特定する情報として記録するとともに、
上記冗長性管理テーブルから、上記記録した冗長性情報の冗長ボリューム識別情報及びデバイス特定情報に対応する他の冗長性情報を探索し、
上記他の冗長性情報がなければ、上記記録した冗長性情報で特定される冗長ボリュームの論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定し、
上記他の冗長性情報が存在すると、上記記録した冗長性情報の論理ボリュームに付与された優先度と、上記他の冗長性情報の論理ボリュームに付与された上記優先度を比較して優先度の高い論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定するボリューム冗長性管理ステップと、
上記デバイス間データ転送装置のデータ転送制御手段が、
上記記憶装置の物理的位置、複数の上記データ処理デバイスの物理的位置及び複数の上記転送経路のデータ転送効率を記憶するボリューム管理テーブルから読み出した上記記憶装置及び上記データ処理デバイスの物理的位置と上記複数の転送経路のデータ転送効率から、上記ボリューム冗長性管理ステップにおける判定で得られた上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームを構成する記憶装置のデータ転送の可否を識別し、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送を制御するデータ転送制御ステップとを備えたことを特徴とするデバイス間データ転送方法。
【請求項１０】
複数の記憶装置と、上記記憶装置と転送経路の間のデータ転送を中継するディスクコントローラとを有する複数の記憶デバイスと、
上記転送経路に接続し、上記転送経路を介して上記記憶デバイスから転送されたデータを処理する複数のデータ処理デバイスと、
オペレーティングシステムを実行し、この実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報に基づいて、上記記憶デバイスから読み込んだデータを処理する中央処理装置とを備えたコンピュータを、上記転送経路を介して上記記憶デバイスと上記データ処理デバイスとのデバイス間でデータ転送するデバイス間データ転送装置として機能させるためのプログラムであって、
上記記憶装置のデータを上記記憶デバイスから上記データ処理デバイスへデータ転送するにあたり、上記オペレーティングシステムの実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報を用いず、
複数の上記記憶装置の組からなる論理ボリュームを特定する論理ボリューム識別情報、この論理ボリューム識別情報で特定される複数の論理ボリュームからなり、複数の上記論理ボリューム間で同一のデータがミラーリングされた冗長ボリュームを特定する冗長ボリューム識別情報、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送の対象となる上記データ処理デバイスを特定するデバイス特定情報、及び上記記憶デバイスと上記データ処理デバイスとの間のデータ転送における各転送経路のデータ転送効率に応じて上記冗長ボリュームの論理ボリュームに付与したデータを転送をすべき優先順位を指定する優先度からなる冗長性情報を格納する冗長性管理テーブルから、上記データの転送元の論理ボリュームを特定する論理ボリューム識別情報及び転送先の上記データ処理デバイスを特定するデバイス特定情報に合致する上記冗長性情報を、データ転送を優先すべきボリュームを特定する情報として記録するとともに、
上記冗長性管理テーブルから、上記記録した冗長性情報の冗長ボリューム識別情報及びデバイス特定情報に対応する他の冗長性情報を探索し、
上記他の冗長性情報がなければ、上記記録した冗長性情報で特定される冗長ボリュームの論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定し、
上記他の冗長性情報が存在すると、上記記録した冗長性情報の論理ボリュームに付与された優先度と、上記他の冗長性情報の論理ボリュームに付与された上記優先度を比較して優先度の高い論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定するボリューム冗長性管理手段、
上記記憶装置の物理的位置、複数の上記データ処理デバイスの物理的位置及び複数の上記転送経路のデータ転送効率を記憶するボリューム管理テーブルから読み出した上記記憶装置及び上記データ処理デバイスの物理的位置と上記複数の転送経路のデータ転送効率から、上記ボリューム冗長性管理手段による判定で得られた上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームを構成する記憶装置のデータ転送の可否を識別し、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送を制御するデータ転送制御手段として上記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はバス又はネットワークに接続された複数のデバイス間のデータ転送を制御するデバイス間データ転送装置、デバイス間データ転送方法及びプログラムに関するものである。
【０００２】
【従来の技術】
中央処理装置の負荷やデータ転送の負荷を軽減するために、主記憶装置を介さないｐｅｅｒ−ｔｏ−ｐｅｅｒデータ転送（以下、デバイス間データ転送と称する）を行うことがある。デバイス間データ転送において、デバイスの物理的位置やこれらの間に介在するバス、ネットワークの種類によって、データ転送の効率が悪くなったり、データ転送ができない場合がある。
【０００３】
図５は従来のデバイス間データ転送装置を含むシステムの構成を示す図である。図において、１００は中央処理装置１１３と主記憶装置１０９と各デバイスとを接続するバスであって、複数のバスを接続するためのバス結合装置１０２ａ，１０２ｂを介してバス１０１ａ，１０１ｂに接続している。また、バス１００はデバイス間データ転送できず、バス１０１ａ，１０１ｂはｐｅｅｒ−ｔｏ−ｐｅｅｒ転送可能であるものとする。１０２ａ，１０２ｂはバス結合装置で、例えば異なるバスやネットワーク間を中継するブリッジである。磁気ディスク装置１０６ａ，１０７ａは、ディスクコントローラ１０３ａによってバス１０１ａに接続して、１つの記憶デバイス１０５ａを構成している。また、磁気ディスク装置１０６ｂ，１０７ｂも同様に、ディスクコントローラ１０３ｂによってバス１０１ｂに接続して、１つの記憶デバイス１０５ｂを構成している。以下、磁気ディスク装置１０６ａ，１０７ａ，１０６ｂ，１０７ｂは、物理ディスクともいう。
【０００４】
１０４はバス１０１ａに接続するＩ／Ｏプロセッサであって、内部に記憶装置を有するデータ処理デバイスである。このＩ／Ｏプロセッサ１０４が、記憶デバイス１０５ａに関するデバイス間データ転送の際のデータ転送先となる。１０８は論理ボリュームで、磁気ディスク装置１０６ａ，１０７ａ，１０６ｂ，１０７ｂ上の複数のパーティションから構成される。また、論理ボリューム１０８は、物理ディスク１０６ａ，１０７ａ，１０６ｂ，１０７ｂから構成されるミラーディスクであり、物理ディスク１０６ａと物理ディスク１０６ｂに格納される内容がまったく同一である。同様に、物理ディスク１０７ａと物理ディスク１０７ｂに格納される内容がまったく同一である。
【０００５】
ここで、用語「パーティション」は、物理ディスク全体であっても、その一部であってもよい。用語「論理ボリューム」は、複数のパーティションを組み合わせて論理的な１つの記憶装置として扱えるようにしたものである。例えば、用語「論理ボリューム」は、いわゆるソフトウェアＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ）の全てのレベル（０〜５）及び「ｓｐａｎｎｅｄ  ｖｏｌｕｍｅ」も含んでいる。これらの用語の定義は、後述する本発明においても同様である。
【０００６】
１０９は主記憶装置であって、システム全体を制御するオペレーティングシステム１１０を格納する。１１１はオペレーティングシステム１１０に組み込まれたソフトウェアとして実装されるボリューム管理部で、記憶デバイス１０５ａ，１０５ｂの物理的位置やＩ／Ｏプロセッサ１０４の物理的位置などのデバイスに関する情報、及びバス１０１ａ，１０１ｂのデータ転送効率などの転送経路に関する情報に基づいてデータ転送可能な記憶デバイス１０５ａ，１０５ｂの組を特定する。１１２はオペレーティングシステム１１０に組み込まれたソフトウェアとして実装されるデータ転送制御部であって、記憶デバイス１０５ａ，１０５ｂの物理的位置やＩ／Ｏプロセッサ１０４の物理的位置などのデバイスに関する情報、及びバス１０１ａ，１０１ｂのデータ転送効率などの転送経路に関する情報に基づいて記憶デバイス１０５ａ，１０５ｂとＩ／Ｏプロセッサ１０４との間でデータ転送の可否を識別する。１１３は中央処理装置（ＣＰＵ）で、オペレーティングシステム１１０を実行してシステム全体の各装置を制御する。
【０００７】
次に動作について説明する。
先ず、転送の対象となるデータがどのファイルに存在するかは、ユーザの知るところである。また、対象となるファイルがどの論理ボリューム上に存在するかは、ユーザの知るところである。論理ボリュームがどの物理ディスクから構成されているかは、システム管理者の知るところである。しかしながら、ファイルがどの物理ディスク上に存在するかは、オペレーティングシステムの中に隠蔽されているので、通常は、ユーザは知ることができない。
【０００８】
そこで、上述した従来のデバイス間データ転送装置では、ファイル及びデータブロックの物理ディスク上の配置を識別するために、ボリューム管理部１１１及びデータ転送制御部１１２をオペレーティングシステム１１０の中に組み込んでいる。ここで、用語「ファイル」とは、記憶デバイスに格納されたデータ転送の対象となる数値列であり、用語「データブロック」とは、データ転送の単位となる数値列の固まりを意味する。１つのファイルは、複数のデータブロックから構成される。
【０００９】
ボリューム管理部１１１及びデータ転送制御部１１２をオペレーティングシステム１１０の中に組み込むことにより、ボリューム管理部１１１は、オペレーティングシステム１１０中に隠蔽されているファイル及びその内部のデータブロックがどの物理ディスク上に存在するかという情報を得ることができる。具体的には、ボリューム管理部１１１が、データごとに、オペレーティングシステムレベル又はハードウェアレベルでのデバイスに関する情報と転送経路に関する情報を取得し、デバイス及び経路を特定する。
【００１０】
ここで、バス１００はデバイス間データ転送不可能なバスで、バス１０２ａ，１０２ｂはデバイス間データ転送可能なバスである。バス１０２ｂには、データ転送先となるＩ／Ｏプロセッサが接続されていない。論理ボリューム１０８は、物理ディスク１０６ａ，１０７ａ，１０６ｂ，１０７ｂから構成されるミラーディスクである。このようなハードウェア構成である場合、以下に述べるように、データ転送制御部１１２は、物理ディスク１０６ａ，１０７ａ又は物理ディスク１０６ｂ，１０７ｂのどちらか一方の転送可能性から、Ｉ／Ｏプロセッサを選択することができる。
【００１１】
論理ボリューム１０８に格納されるデータをデバイス間データ転送する場合、オペレーティングシステム１１０の内部で転送の対象となるデータがどの物理ディスクに存在するかを識別する。このとき、上述したように、当該物理ディスク及びデータを転送する転送経路は、物理ディスクなどのデバイスに関する情報と転送経路に関する情報のみから特定される。そして、物理ディスク１０６ａ，１０７ａがデータ転送の対象となり、データのミラーである物理ディスク１０６ｂ，１０７ｂに蓄えられているデータが転送の対象とならないことが明確である場合、論理ボリューム１０８とＩ／Ｏプロセッサ１０４との間でデータ転送が可能となる。
【００１２】
このとき、物理ディスク１０６ｂ，１０７ｂに蓄えられているデータが転送の対象となる場合には、バス１００がデバイス間データ転送不可能なバスなので、論理ボリューム１０８とＩ／Ｏプロセッサ１０４との間でデータ転送が不可能となる。
【００１３】
【発明が解決しようとする課題】
従来のデバイス間データ転送装置は以上のように構成されているので、異なる転送経路を介する複数の論理ボリュームからなる冗長なボリュームを転送先又は転送元とした場合、転送効率の良い転送経路にある物理ディスク上のデータを適宜選択することができないという課題があった。
【００１４】
例えば、転送可能な経路を介するデバイスと転送不可能な経路を介するデバイスを組み合わせた論理ボリューム上のデータについては、オペレーティングシステムレベル又はハードウェアレベルでのデバイスに関する情報と転送経路に関する情報（これらをデバイス識別情報と称する）のみからデバイス及び経路を特定していたため、同じ内容のデータを重複して格納する冗長なデータを選択することができなかった。
【００１５】
また、データごとに、オペレーティングシステムレベル又はハードウェアレベルでのデバイス識別情報を取得した場合、必要なデータが存在するデバイスを特定するのは、オペレーティングシステム１１０に依存していたため、効率の良いデバイス間データ転送が行える経路にあるデバイスの選択をすることができなかった。例えば、論理ボリューム１０８がＲＡＩＤやミラーディスクなどの冗長な論理ボリュームである場合、ディスク装置１０６ａ，１０７ａに記憶されるデータの内容と、ディスク装置１０６ｂ，１０７ｂに記憶されるデータの内容とが同一であったとしても、転送の対象となるデータがディスク装置１０６ａ，１０７ａにあるかディスク装置１０６ｂ，１０７ｂにあるかは、オペレーティングシステム１１０任せである。
【００１６】
このため、オペレーティングシステム１１０によっては、例えば物理ディスク１０６ｂ，１０７ｂに蓄えられているデータが転送の対象となった場合においても、データ転送効率の悪い経路にあるディスク装置１０６ｂ，１０７ｂと主記憶装置１０９との間でのデータ転送を行わずに、より効率の良い転送経路にあり同一内容を有するディスク装置１０６ａ，１０７ａとデバイス１０４との間でデータ転送を行うことを選択できなかった。
【００１７】
また、ＲＡＩＤやミラーディスクなどの冗長性を持たせた論理ボリュームは、オペレーティングシステム若しくはハードウェアの機能を使い、その上位層でデバイス間転送を行っている。このため、オペレーティングシステムやハードウェアに異なるディスク装置の複数のパーティションからなる論理ボリュームを生成する機能がない場合や、ネットワークドライブやリムーバブルドライブなどのように、オペレーティングシステムの機能範囲では論理ボリュームとして組み合わせ不可能なパーティションを使った冗長な論理ボリュームを生成したい場合は、冗長性を持たせた論理ボリュームをデバイス間データ転送の対象とすることができない。つまり、オペレーティングシステムの機能範囲を超える冗長な論理ボリュームを、データ転送先又は転送元とすることができないという課題があった。
【００１８】
この発明は上記のような課題を解決するためになされたもので、複数のパーティションからなる論理ボリュームを構成することができないオペレーティングシステムにおいても、冗長性を有する論理ボリュームとデータ転送先又は転送元デバイスとのデバイス間データ転送を実現すると共に、転送効率の良い経路にあるデータを適宜選択することができ、また、データ転送時に故障したディスク装置のデータや転送不可能な経路にデータを流さないデバイス間データ転送装置、デバイス間データ転送方法及びプログラムを得ることを目的とする。
【００１９】
【課題を解決するための手段】
この発明に係るデバイス間データ転送装置は、複数の記憶装置と、上記記憶装置と転送経路の間のデータ転送を中継するディスクコントローラとを有する複数の記憶デバイスと、上記転送経路に接続し、上記転送経路を介して上記記憶デバイスから転送されたデータを処理する複数のデータ処理デバイスと、オペレーティングシステムを実行し、この実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報に基づいて、上記記憶デバイスから読み込んだデータを処理する中央処理装置とを備え、上記転送経路を介して上記記憶デバイスと上記データ処理デバイスとの間でデータ転送するデバイス間データ転送装置において、上記記憶装置のデータを上記記憶デバイスから上記データ処理デバイスへデータ転送するにあたり、上記オペレーティングシステムの実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報を用いず、複数の上記記憶装置の組からなる論理ボリュームを特定する論理ボリューム識別情報、この論理ボリューム識別情報で特定される複数の論理ボリュームからなり、複数の上記論理ボリューム間で同一のデータがミラーリングされた冗長ボリュームを特定する冗長ボリューム識別情報、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送の対象となる上記データ処理デバイスを特定するデバイス特定情報、及び上記記憶デバイスと上記データ処理デバイスとの間のデータ転送における各転送経路のデータ転送効率に応じて上記冗長ボリュームの論理ボリュームに付与したデータを転送をすべき優先順位を指定する優先度からなる冗長性情報を格納する冗長性管理テーブルから、上記データの転送元の論理ボリュームを特定する論理ボリューム識別情報及び転送先の上記データ処理デバイスを特定するデバイス特定情報に合致する上記冗長性情報を読み出して、データ転送を優先すべきボリュームを特定する情報として記録するとともに、上記冗長性管理テーブルから、上記記録した冗長性情報の冗長ボリューム識別情報及びデバイス特定情報に対応する他の冗長性情報を探索し、上記他の冗長性情報がなければ、上記記録した冗長性情報で特定される冗長ボリュームの論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定し、上記他の冗長性情報が存在すると、上記記録した冗長性情報の論理ボリュームに付与された優先度と、上記他の冗長性情報の論理ボリュームに付与された上記優先度を比較して優先度の高い論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定するボリューム冗長性管理手段と、上記記憶装置の物理的位置、複数の上記データ処理デバイスの物理的位置及び複数の上記転送経路のデータ転送効率を記憶するボリューム管理テーブルから読み出した上記記憶装置及び上記データ処理デバイスの物理的位置と上記複数の転送経路のデータ転送効率とから、上記ボリューム冗長性管理手段による判定で得られた上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームを構成する記憶装置のデータ転送の可否を識別し、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送を制御するデータ転送制御手段とを備えるものである。
【００２１】
この発明に係るデバイス間データ転送装置は、ボリューム冗長性管理手段が、論理ボリュームにデータが書き込まれると、この論理ボリュームに対応する冗長ボリュームの複数の論理ボリュームに対して上記データの複製を自動的に書き込むものである。
【００２２】
この発明に係るデバイス間データ転送装置は、ボリューム冗長性管理手段が、新たな論理ボリュームを冗長ボリュームに追加した際、この冗長ボリュームに既存の論理ボリュームのデータの複製を新たな論理ボリュームに書き込むものである。
【００２３】
この発明に係るデバイス間データ転送装置は、論理ボリュームの優先度が転送経路のデータ転送効率に応じて設定した値であるものである。
【００２４】
この発明に係るデバイス間データ転送装置は、論理ボリュームの優先度が転送経路の障害率に応じて設定した値であることを特徴とするものである。
【００２５】
この発明に係るデバイス間データ転送装置は、論理ボリュームの優先度が、記憶デバイスを構成する記憶装置の故障率、論理ボリュームを構成する記憶装置の故障率、及びデータ処理デバイスの故障率に応じて設定した値であることを特徴とするものである。
【００２６】
この発明に係るデバイス間データ転送装置は、論理ボリュームの優先度が、転送経路のデータ転送効率、記憶デバイスを構成する記憶装置の故障率、論理ボリュームを構成する記憶装置の故障率、及びデータ処理デバイスの故障率及び転送経路の障害率に応じて設定した値であることを特徴とするものである。
【００２７】
この発明に係るデバイス間データ転送装置は、データ転送制御手段が、転送時のエラー又は転送時の実際の転送効率に合わせて論理ボリュームの優先度を動的に変更するものである。
【００２８】
この発明に係るデバイス間データ転送方法は、複数の記憶装置と、上記記憶装置と転送経路の間のデータ転送を中継するディスクコントローラとを有する複数の記憶デバイスと、上記転送経路に接続し、上記転送経路を介して上記記憶デバイスから転送されたデータを処理する複数のデータ処理デバイスと、オペレーティングシステムを実行し、この実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報に基づいて、上記記憶デバイスから読み込んだデータを処理する中央処理装置とを備えたデバイス間データ転送装置のデバイス間データ転送方法において、上記デバイス間データ転送装置のボリューム冗長性管理手段が、上記記憶装置のデータを上記記憶デバイスから上記データ処理デバイスへデータ転送するにあたり、上記オペレーティングシステムの実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報を用いず、複数の上記記憶装置の組からなる論理ボリュームを特定する論理ボリューム識別情報、この論理ボリューム識別情報で特定される複数の論理ボリュームからなり、複数の上記論理ボリューム間で同一のデータがミラーリングされた冗長ボリュームを特定する冗長ボリューム識別情報、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送の対象となる上記データ処理デバイスを特定するデバイス特定情報、及び上記記憶デバイスと上記データ処理デバイスとの間のデータ転送における各転送経路のデータ転送効率に応じて上記冗長ボリュームの論理ボリュームに付与したデータを転送をすべき優先順位を指定する優先度からなる冗長性情報を格納する冗長性管理テーブルから、上記データの転送元の論理ボリュームを特定する論理ボリューム識別情報及び転送先の上記データ処理デバイスを特定するデバイス特定情報に合致する上記冗長性情報を読み出して、データ転送を優先すべきボリュームを特定する情報として記録するとともに、上記冗長性管理テーブルから、上記記録した冗長性情報の冗長ボリューム識別情報及びデバイス特定情報に対応する他の冗長性情報を探索し、上記他の冗長性情報がなければ、上記記録した冗長性情報で特定される冗長ボリュームの論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定し、上記他の冗長性情報が存在すると、上記記録した冗長性情報の論理ボリュームに付与された優先度と、上記他の冗長性情報の論理ボリュームに付与された上記優先度を比較して優先度の高い論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定するボリューム冗長性管理ステップと、上記デバイス間データ転送装置のデータ転送制御手段が、上記記憶装置の物理的位置、複数の上記データ処理デバイスの物理的位置及び複数の上記転送経路のデータ転送効率を記憶するボリューム管理テーブルから読み出した上記記憶装置及び上記データ処理デバイスの物理的位置と上記複数の転送経路のデータ転送効率から、上記ボリューム冗長性管理ステップにおける判定で得られた上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームを構成する記憶装置のデータ転送の可否を識別し、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送を制御するデータ転送制御ステップとを備えるものである。
【００３０】
この発明に係るプログラムは、複数の記憶装置と、上記記憶装置と転送経路の間のデータ転送を中継するディスクコントローラとを有する複数の記憶デバイスと、上記転送経路に接続し、上記転送経路を介して上記記憶デバイスから転送されたデータを処理する複数のデータ処理デバイスと、オペレーティングシステムを実行し、この実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報に基づいて、上記記憶デバイスから読み込んだデータを処理する中央処理装置とを備えたコンピュータを、上記転送経路を介して上記記憶デバイスと上記データ処理デバイスとのデバイス間でデータ転送するデバイス間データ転送装置として機能させるためのプログラムであって、上記記憶装置のデータを上記記憶デバイスから上記データ処理デバイスへデータ転送するにあたり、上記オペレーティングシステムの実行に伴って利用される転送対象のデータが存在する記憶装置を特定する識別情報を用いず、複数の上記記憶装置の組からなる論理ボリュームを特定する論理ボリューム識別情報、この論理ボリューム識別情報で特定される複数の論理ボリュームからなり、複数の上記論理ボリューム間で同一のデータがミラーリングされた冗長ボリュームを特定する冗長ボリューム識別情報、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送の対象となる上記データ処理デバイスを特定するデバイス特定情報、及び上記記憶デバイスと上記データ処理デバイスとの間のデータ転送における各転送経路のデータ転送効率に応じて上記冗長ボリュームの論理ボリュームに付与したデータを転送をすべき優先順位を指定する優先度からなる冗長性情報を格納する冗長性管理テーブルから、上記データの転送元の論理ボリュームを特定する論理ボリューム識別情報及び転送先の上記データ処理デバイスを特定するデバイス特定情報に合致する上記冗長性情報を、データ転送を優先すべきボリュームを特定する情報として記録するとともに、上記冗長性管理テーブルから、上記記録した冗長性情報の冗長ボリューム識別情報及びデバイス特定情報に対応する他の冗長性情報を探索し、上記他の冗長性情報がなければ、上記記録した冗長性情報で特定される冗長ボリュームの論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定し、上記他の冗長性情報が存在すると、上記記録した冗長性情報の論理ボリュームに付与された優先度と、上記他の冗長性情報の論理ボリュームに付与された上記優先度を比較して優先度の高い論理ボリュームを、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームと判定するボリューム冗長性管理手段、上記記憶装置の物理的位置、複数の上記データ処理デバイスの物理的位置及び複数の上記転送経路のデータ転送効率を記憶するボリューム管理テーブルから読み出した上記記憶装置及び上記データ処理デバイスの物理的位置と上記複数の転送経路のデータ転送効率から、上記ボリューム冗長性管理手段による判定で得られた上記記憶デバイスと上記データ処理デバイスとの間のデータ転送効率が他より良い転送経路に位置する論理ボリュームを構成する記憶装置のデータ転送の可否を識別し、上記記憶デバイスと上記データ処理デバイスとの間のデータ転送を制御するデータ転送制御手段として上記コンピュータを機能させるものである。
【００３２】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるデバイス間データ転送装置を含むシステムの構成を示す図である。図において、１はネットワーク結合装置３ａ，３ｂによってバス（転送経路）２，２ａに接続されるネットワーク（転送経路）である。２は中央処理装置１５と主記憶装置１０を接続しているバス（転送経路）であり、複数のバスを接続するためのバス結合装置３ｃによってバス（転送経路）２ｂに接続されている。バス結合装置３ｃは、例えばブリッジである。４ａ，４ｂはディスクコントローラであって、ディスクコントローラ４ａによって磁気ディスク装置６ａ，７ａをバス２ａに接続して１つの記憶デバイス９ａを構成する。同様に、ディスクコントローラ４ｂによって磁気ディスク装置６ｂ，７ｂをバス２ｂに接続して１つの記憶デバイス９ｂを構成している。５ａ，５ｂはバス２ａ，２ｂにそれぞれ接続するデータ処理デバイスであり、例えば内部に記憶装置を有するＩ／Ｏプロセッサを含むものとする。バス２ａ，２ｂは、それ自体が内部的に複数のバスが結合されたバスの集合であってもよい。
【００３３】
８は冗長ボリュームであって、デバイス９ａを構成する磁気ディスク装置６ａ，７ａからなる論理ボリューム８ａとデバイス９ｂを構成する磁気ディスク装置６ｂ，７ｂからなる論理ボリューム８ｂとの２つの論理ボリュームにより構成される。この実施の形態１において、冗長ボリュームとは、多重度が任意のミラーディスクを意味する。つまり、冗長ボリューム８は２重の冗長性を持っており、論理ボリューム８ａ上に記憶されるデータと論理ボリューム８ｂ上に記憶されるデータは同一とする。
【００３４】
また、デバイス９ａ，９ｂ及びデバイス５ａ，５ｂは、１システムの中に複数接続されており、相互に直接データ転送が行われる。通常、デバイス９ａ，９ｂの磁気ディスク装置７ａ，７ｂに蓄えられているデータは、主記憶装置１０に転送され中央処理装置１５で処理される。しかしながら、この実施の形態に係るデバイス間データ転送装置では、主記憶装置１０を経由することなく、デバイス５ａ，５ｂの内部にある記憶装置に転送され、デバイス５ａ，５ｂ内のＩ／Ｏプロセッサによって処理されるものとする。
【００３５】
１０は主記憶装置であって、ボリューム管理部１１、データ転送制御部１２及びボリューム冗長性管理部１４や、システムの制御を行うオペレーティングシステム１３などのソフトウェアを格納する。１１はボリューム管理部で、ボリューム管理に要する構成要素を特定するボリューム管理情報を格納し、他の構成要素に適宜提供する。また、ボリューム管理部１１は、オペレーティングシステム１３の初期化後に、ボリューム構成テーブル１６を直接参照するか、若しくは、オペレーティングシステム１３に対して、ボリューム構成情報、バス情報、物理ディスク・パーティション情報、バス接続情報、ネットワーク接続情報やＩ／Ｏプロセッサ情報などの情報の採取を要求して、ボリューム管理テーブル１７を生成する。
【００３６】
１２はデータ転送制御部（データ転送制御手段）であって、ボリューム管理部１１が管理する情報に基づいて磁気ディスクとデータ処理デバイスとの間でのデータ転送の可否を識別する。１３はオペレーションシステムで、システム全体のソフトウェアを制御する。また、オペレーティングシステム１３は、初期時若しくはユーザによるツールの使用時に、デバイスドライバ２０に情報採取を要求し、ボリューム構成テーブル１６及びバス・ネットワーク情報１８を生成する。１４はボリューム冗長性管理部（ボリューム冗長性管理手段）であって、ユーザの指定により冗長性がある論理ボリュームの組（つまり、上述した冗長ボリュームを構成する論理ボリューム群）を特定する情報やデバイスを特定する情報を格納する。
【００３７】
また、ボリューム管理部１１、データ転送制御部１２及びボリューム冗長性管理部１４は、オペレーティングシステム１３とは分離してプログラムされたソフトウェアとして主記憶装置１０上に実装されて、オペレーティングシステム１３に対してシステムの情報を問い合わせることができる。さらに、ボリューム管理部１１、データ転送制御部１２及びボリューム冗長性管理部１４は、ファームウェアとして実現されてもよいし、ハードウェアとして実現されてもよいし、ソフトウェアとファームウェアとハードウェアの組み合わせで実現されてもよい。１５は中央処理装置（ＣＰＵ）で、オペレーティングシステム１３などを実行してシステム内の各構成要素を制御する。
【００３８】
図２は実施の形態１によるデバイス間データ転送装置の構成要素の相互関係を示す図である。図において、１６はボリューム構成テーブルであって、オペレーティングシステム１３が管理するボリュームの構成情報が格納される。１７はボリューム管理部１１に生成・管理されるボリューム管理テーブルで、主にボリューム管理に要する構成要素を特定するボリューム管理情報を格納する。このボリューム管理情報としては、システム内の構成要素の処理性能を特定したり、相互関係を示す指標となる、例えばバス転送情報（転送効率や障害率など）、バス結合装置情報、物理ディスク情報、論理ボリューム情報及びＩ／Ｏプロセッサ情報（例えば、故障率）などがある。１８はバス・ネットワーク情報であって、オペレーティングシステム１３が管理するネットワーク１やバス２，２ａ，２ｂの構成情報が格納される。
【００３９】
１９はボリューム冗長性管理部１４に生成・管理される冗長性管理テーブルで、装置内に構成されている冗長性がある論理ボリュームを特定する情報やこれらに対するデータ転送時における優先度などを冗長性情報として格納する。この冗長性管理テーブル１９に記憶される内容は、後述する図３において詳細に説明する。また、ボリューム冗長性管理部１４は、冗長性管理テーブル１９に格納される情報に基づいて、データの書き込み時に関係する全ての論理ボリュームに同一のデータを書き込む要求をオペレーティングシステム１３に依頼する。２０はデバイスドライバであって、オペレーティングシステム１３と、バス結合装置、物理ディスクやＩ／Ｏプロセッサなどのハードウェアとのデータ送受を中継するソフトウェアである。また、図中の矢印は、問い合わせ、参照、処理要求、生成を行う側から受ける側を指している。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００４０】
図３は図２中の冗長性管理テーブルの構成を示す図である。図において、２１は冗長性情報であって、論理ボリューム名２２、デバイス番号２３、優先度２４及び冗長セット番号２５から構成される。冗長性情報２１は、冗長性管理テーブル１９内に、冗長ボリュームを構成する論理ボリュームの数だけ格納される。２２は論理ボリューム名（ボリューム特定情報）であって、デバイスドライバ２０に対して要求を出す際に各論理ボリュームを識別する識別子に相当する。２３はデバイス番号（デバイス特定情報）で、デバイス間データ転送の対象となるデバイスを特定する番号である。
【００４１】
２４は論理ボリュームのデータを転送すべき優先順位を指定する優先度であって、データの転送効率に相当する情報である。この優先度２４は、論理ボリュームとＩ／Ｏプロセッサとの間の転送経路の最大の転送効率、論理ボリュームとＩ／Ｏプロセッサ間の転送経路の障害率、論理ボリュームの処理性能（例えば、これを構成する記憶デバイスの故障率など）、論理ボリュームの故障率や、Ｉ／Ｏプロセッサの処理性能（故障率など）のいずれから算出するか、これらの組み合わせによる計算で算出しても良い。
【００４２】
例えば、優先度２４を論理ボリュームとＩ／Ｏプロセッサとの最大の転送効率と論理ボリュームの故障率から算出する場合、転送効率を５段階評価とし、故障率を５段階評価として、優先度２４を表す式として（転送効率）×５＋故障率を用いる。この場合、転送効率を重視した論理ボリュームの選択を行うことができる。また、論理ボリュームとＩ／Ｏプロセッサとの最大の転送効率や、論理ボリュームとＩ／Ｏプロセッサ間の転送経路の障害率は、ボリューム管理部１１に問い合わせることにより取得される。このとき、ボリューム管理部１１は、ボリューム管理テーブル１７を参照する。
【００４３】
また、デバイス間データ転送におけるデータ転送効率のよい転送経路に位置する論理ボリュームに対して高い優先度２４が付与される。ここで、ボリューム冗長性管理部１４は、ユーザが優先度２４を指定したとき、若しくは、コンピュータの初期化時、若しくは、データ転送後にデータ転送速度の統計情報をデータ転送制御部１２から受け取って優先度２４の更新を依頼された時、冗長性管理テーブル１９の優先度２４を更新する。
【００４４】
２５は冗長ボリュームを特定する冗長セット番号（ボリューム特定情報）であって、同一の冗長ボリュームに属する論理ボリュームには同一値が与えられる。つまり、同一の冗長セット番号２５で特定されるディスク装置には、互いに同一のデータが格納される。なお、図２と同一構成要素には同一符号を付して重複する説明を省略する。
【００４５】
次に動作について説明する。
データ転送制御部１２は、データ転送前に、転送対象のデータを格納する論理ボリュームを特定する情報である論理ボリューム名２２及びデバイス番号２３をボリューム冗長性管理部１４に送信する。ボリューム冗長性管理部１４では、データ転送制御部１２から受信した論理ボリューム名２２及びデバイス番号２３について冗長性管理テーブル１９の優先度２４を参照して、転送対象のデータを格納しデータ転送がより優先される論理ボリュームを特定する論理ボリューム名２２を返信する。続いて、データ転送制御部１２は、ボリューム管理部１１に情報採取を要求して転送経路の転送可能性若しくは転送効率を取得する。このとき、ボリューム管理部１１は、ボリューム管理テーブル１７を参照して転送経路の転送可能性などをデータ転送制御部１２に提供する。
【００４６】
ここで、転送経路の転送可能性は、ボリューム管理テーブル１７においてバス転送情報として格納される。この転送可能性とは、デバイス間データ転送の可能不可能を含む転送効率である。転送可能性の最も単純な形式は、デバイス間データ転送の可能不可能をＯＮ／ＯＦＦで記憶することである。或いは、転送効率を５段階で表すとすれば、１〜５の値を記憶する。例えば、１は転送効率最大であり、１＞２＞３＞４＞５の順に転送効率を示す。５は転送不可能を示す。バス転送情報には、転送経路となるバスを特定するバス番号とバスの転送可能性の組がバスの数だけ格納される。
【００４７】
データ転送制御部１２は、上記転送経路の情報に基づいてデバイス間データ転送すべきか、主記憶装置１０に転送して中央処理装置１５にて処理すべきかを判断する（データ転送制御ステップ）。このあと、データ転送制御部１２は、オペレーティングシステム１３に対して判断結果の転送経路に沿ったデータ転送の要求を出す。オペレーティングシステム１３では、データ転送制御部１２の要求に従ってデバイスドライバ２０にデータ転送の要求を渡す。これにより、データ転送が開始される。
【００４８】
次に転送対象のデータを格納し、且つデータ転送が最も優先される論理ボリュームを求める動作について詳細に説明する。
図４は図２中のボリューム冗長性管理部の動作を示すフロー図であり、この図及び図３を参照して説明する。
先ず、データ転送制御部１２は、データの転送元の論理ボリュームを特定する論理ボリューム名２２及び転送先のデバイスを特定するデバイス番号２３をボリューム冗長性管理部１４に送信する（ステップＳＴ１）。ボリューム冗長性管理部１４は、受信した論理ボリューム名２２とデバイス番号２３との組に対応する冗長性情報２１を冗長性管理テーブル１９から読み出す。このあと、ボリューム冗長性管理部１４は、データ転送を最優先すべきボリュームを特定する情報として該冗長性情報２１を記録する（ステップＳＴ２）。これらステップＳＴ１及びステップＳＴ２が選別ステップに相当する。
【００４９】
続いて、ボリューム冗長性管理部１４は、上述した最優先すべきボリュームと冗長セット番号２５が同じで且つデバイス番号２３が同じ論理ボリュームが存在するか否かを判定する（ステップＳＴ３）。具体的には、ボリューム冗長性管理部１４が、ステップＳＴ２にて読み出した冗長性情報２１内の冗長セット番号２５及びデバイス番号２３をキーとして、冗長性管理テーブル１９の内容を検索し、同一の冗長セット番号２５及びデバイス番号２３を有する冗長性情報２１を探索する。このとき、同一の冗長セット番号２５及びデバイス番号２３が存在しなければ、ステップＳＴ８の処理に進む。
【００５０】
ステップＳＴ８において、ボリューム冗長性管理部１４は、ステップＳＴ２にて読み出した冗長性情報２１で特定される論理ボリュームが、転送対象のデータを格納し、且つデータ転送が最も優先される論理ボリュームであるものと判断して、該論理ボリュームを特定する論理ボリューム名２２をデータ転送制御部１２に返信する。
【００５１】
一方、ステップＳＴ３において、同一の冗長セット番号２５及びデバイス番号２３を有する論理ボリュームを特定する冗長性情報２１が検出されると、ボリューム冗長性管理部１４は、該冗長性情報２１を冗長性管理テーブル１９から取り出す（ステップＳＴ４）。このあと、ボリューム冗長性管理部１４は、取り出した冗長性情報２１から優先度２４を抽出・保持する（ステップＳＴ５）。
【００５２】
さらに、ボリューム冗長性管理部１４は、取得した優先度２４の値が最優先のボリュームの優先度２４より上か否かを判定する（ステップＳＴ６、優先ボリューム選択ステップ）。ここでは、ステップＳＴ１にてデータ転送制御部１２から指定された論理ボリュームの冗長性情報２１内の優先度２４と、ステップＳＴ５にて抽出・保持された冗長性情報２１内の優先度２４とが大小比較される。このとき、前者の優先度２４の値が後者の優先度２４より高ければ、ステップＳＴ３の処理に戻って、同一の冗長セット番号２５及びデバイス番号２３を有する他の論理ボリュームの優先度２４との比較処理が行われる。
【００５３】
一方、後者の優先度２４が前者の優先度２４より高ければ、ボリューム冗長性管理部１４は、ステップＳＴ５にて抽出・保持した冗長性情報２１で特定される論理ボリュームを、データ転送を最優先すべきボリュームとして記録する（ステップＳＴ７）。
【００５４】
このあと、ステップＳＴ３の処理に戻って、ステップＳＴ７にてデータ転送を最優先すべきボリュームとして記録された論理ボリュームの優先度２４と、これと同一の冗長セット番号２５及びデバイス番号２３を有する他の論理ボリュームの優先度２４とが比較処理される。
【００５５】
以上の処理によって、ボリューム冗長性管理部１４は、ステップＳＴ１にて受信した論理ボリューム名２２及びデバイス番号２３によって特定される論理ボリュームが格納する転送対象のデータと同一のデータを格納する論理ボリュームのうち、データ転送をより優先すべきボリュームが選択される。そして、該論理ボリュームを特定する論理ボリューム名２２が、データ転送制御部１２に返信される。
【００５６】
図１で、例えばＩ／Ｏプロセッサ５ｂが接続されておらず、論理ボリューム８ｂからのデータは、バス２ｂ、バス結合装置３ｃ及びバス２を経由して主記憶装置１０に転送され、中央処理装置１５で処理される場合を考える。この場合、冗長性がある論理ボリューム（冗長ボリューム８）として論理ボリューム８ａ，８ｂを冗長性管理テーブル１９に指定するにあたり、実システムにあった転送効率を反映させた優先度２４によって論理ボリューム８ａの方が論理ボリューム８ｂより優先される。これにより、データ転送効率の悪い経路にあるディスク装置６ｂ，７ｂからなる論理ボリューム８ｂと主記憶装置１０との間でのデータ転送が行われず、より効率の良い転送経路にあるディスク装置６ａ，７ａからなる論理ボリューム８ａとデバイス５ａとの間でのデータ転送を選択することができる。
【００５７】
このように、論理ボリュームを構成するディスクの物理的な位置や転送経路を考慮して優先度２４を設定することで、より効率の良い転送経路にあるディスク装置からなる論理ボリュームとデータ処理デバイスとの間でのデータ転送を選択することができる。
【００５８】
また、データ転送の際、デバイスドライバ２０がデバイスのエラーを検出した場合、そのエラー情報は、データ転送制御部１２に伝えられる。このとき、発生したエラーがハードウェアの致命的なエラーであり、以降エラーが検出されたデバイスが使用できないことが明白な場合、データ転送制御部１２は、ボリューム冗長性管理部１４に対してエラーとなったデバイスが関与する論理ボリュームの冗長性情報２１を冗長性管理テーブル１９より削除することを要求する。
【００５９】
この要求に従い、ボリューム冗長性管理部１４は、対象のボリュームに関する冗長性情報２１を冗長性管理テーブル１９より削除する。このとき、ユーザが当該ボリュームに関する冗長性情報２１を新たに冗長性管理テーブル１９に追加しなければ、削除されたボリューム上のデータがデバイス間データ転送の対象となることはない。
【００６０】
また、データ転送の際、データ転送制御部１２によって転送サイズと転送時間より、実際の転送速度が求められる。データ転送制御部１２は、ボリューム冗長性管理部１４に対して転送速度の統計情報を通知する。ボリューム冗長性管理部１４は、対象の論理ボリューム名２２及びデバイス番号２３の優先度２４の値を更新する。
【００６１】
さらに、ユーザが、既にデータが格納されている論理ボリュームと同一の冗長セット番号２５を有する論理ボリュームを追加する旨をボリューム冗長性管理部１４に対して指定した場合、ボリューム冗長性管理部１４は、冗長性管理テーブル１９に新たな論理ボリュームに係る冗長性情報２１を追加する。続けて、ボリューム冗長性管理部１４は、既にデータが格納されている論理ボリュームのデータを新たに追加された論理ボリュームにコピーする。
【００６２】
さらに、冗長ボリュームを構成する任意の論理ボリュームにデータを追加した場合、ボリューム冗長性管理部１４は自動的に他の構成要素の論理ボリューム（冗長ボリュームを構成する他の論理ボリューム）についても、同じ内容を追加する。
【００６３】
以上のように、この実施の形態１によれば、冗長性管理テーブル１９に記憶した優先度２４に基づいて、転送対象のデータを格納する複数の論理ボリュームからデータ処理デバイスとの間のデータ転送効率がより良い転送経路に位置する論理ボリュームを識別するので、複数の論理ボリュームからなる冗長ボリューム上のデータをデバイス間データ転送の対象とした場合、データ転送効率の良い経路にあるデバイス上のデータが格納される論理ボリュームを選択してデバイス間データ転送を行うことができる。
【００６４】
また、データ転送時に転送効率の悪い経路にデータを流すことを防ぐことができ、データ転送装置全体のパフォーマンスの劣化を回避することができる。
【００６５】
さらに、転送可能な経路を含むデバイスと転送不可能な経路を含むデバイスとを混在させて冗長ボリュームを構成した場合であっても、オペレーティングシステムに組み込むこと無しに効率の良い転送経路を選択してデバイス間データ転送を行うことができる。
【００６６】
つまり、従来の技術で述べたように、転送対象のデータがどの物理ディスク上に存在するかは、オペレーティングシステム１３の中に隠蔽されているので、通常は、ユーザは知ることができない。一方、転送の対象となるデータがどの論理ボリューム上に存在するかは、ユーザの知るところである。また、論理ボリュームがどの物理ディスクから構成されているかは、システム管理者の知るところである。
【００６７】
これにより、冗長ボリューム、論理ボリュームや論理ボリュームを構成する物理ディスク（記憶デバイス）の構造は、ユーザにとって既知である。そこで、上述したボリュームの構造に基づいて、データ処理デバイスとの間のデータ転送効率などに応じた論理ボリュームの優先度２４を設けることで、オペレーティングシステムに隠蔽された情報を要することなく、上記データ転送効率が最も良い転送経路に位置する論理ボリュームを選択することができる。
【００６８】
また、従来ではＲＡＩＤやミラーディスクのようにデータに冗長性を持たせるために、オペレーティングシステムやハードウェアの論理ボリューム生成機能を用いる必要があったが、ボリューム冗長性管理部１４及び冗長性管理テーブル１９によってデータに冗長性を持たせることができる。これにより、オペレーティングシステムに異なるディスク装置の複数のパーティションからなる論理ボリュームを生成する機能がない場合や、組み合わせ不可能なパーティションを使った冗長性のある論理ボリュームを生成したい場合であっても、自由に冗長ボリュームを構成し、デバイス間データ転送の対象とすることができる。
【００６９】
さらに、この実施の形態１によれば、ハードウェア障害などで不良となった論理ボリュームを、エラーの発生と同時に自動的にデバイス間データ転送の対象から除外するので、データ転送時に転送不可能な経路にデータを流すことを防ぐことができ、致命的な障害を回避することができる。
【００７０】
さらに、実際の転送速度を優先度に反映させることにより、実システムにあった転送効率で論理ボリュームを選択する。
【００７１】
さらに、上記実施の形態では、論理ボリュームを構成する記憶デバイスとしてネットワーク１を介したリモートドライブを例にして説明したが、１つのコンピュータ装置に搭載される「物理ディスク」として機能する磁気テープや半導体ディスクなどの記憶媒体であってもよい。
【００７２】
なお、本実施形態では、デバイス間データ転送はネットワークを介したデバイス間データ転送であってもよい。
【００７３】
【発明の効果】
以上のように、この発明によれば、複数の記憶デバイスと複数のデータ処理デバイスとが複数の転送経路を介して接続し、デバイス間で転送経路を介してデータを転送するデバイス間データ転送装置において、複数の記憶デバイスの組からなる論理ボリュームと複数の論理ボリュームの組からなる冗長ボリュームとをそれぞれ特定するボリューム特定情報、デバイス間データ転送の対象となるデバイスを特定するデバイス特定情報、及び各論理ボリュームの優先度を記憶しておき、該冗長性管理テーブルに記憶した優先度に基づいて、ボリューム特定情報及びデバイス特定情報にて選別された論理ボリュームから、デバイス間のデータ転送効率が他よりも良い転送経路に位置する論理ボリュームを識別するので、複数の論理ボリュームからなる冗長ボリューム上のデータをデバイス間データ転送の対象とした場合、データ転送効率の良い経路にあるデバイス上のデータが格納される論理ボリュームを選択することができるという効果がある。
【００７４】
この発明によれば、記憶デバイスの物理的位置、複数のデータ処理デバイスの物理的位置及び複数の転送経路のデータ転送効率を記憶するボリューム管理テーブルに記憶された各デバイスの物理的位置と複数の転送経路のデータ転送効率とに基づいて、優先度が最も高い論理ボリュームを構成する記憶デバイスのデータ転送の可否を識別するので、複数の論理ボリュームからなる冗長ボリューム上のデータをデバイス間データ転送の対象とした場合、データ転送効率の良い経路にあるデバイスのデータが格納される論理ボリュームを選択してデバイス間データ転送を行うことができるという効果がある。
【００７５】
この発明によれば、論理ボリュームにデータが書き込まれると、該論理ボリュームに関連する複数の論理ボリュームに対してデータの複製を自動的に書き込むので、論理ボリュームや冗長ボリュームを構成する際の負担を軽減することができるという効果がある。
【００７６】
この発明によれば、新たな論理ボリュームを冗長なボリュームに追加した際に、自動的に既存の論理ボリュームのデータの複製を新たな論理ボリュームに書き込むので、冗長ボリュームを変更する際の負担を軽減することができるという効果がある。
【００７７】
この発明によれば、論理ボリュームの優先度が、転送経路の障害率に応じて設定した値、論理ボリュームの優先度が、デバイスの故障率に応じて設定した値、若しくは、転送経路のデータ転送効率、デバイスの故障率及び転送経路の障害率に応じて設定した値であるので、実システムにあった転送効率で論理ボリュームを選択することができるという効果がある。
【００７８】
この発明によれば、転送時のエラー又は転送時の実際の転送効率に合わせて論理ボリュームの優先度を動的に変更するので、データ転送時に転送不可能な経路にデータを流すことを防ぐことができ、致命的な障害を回避することができるという効果がある。また、実システムにあった転送効率で論理ボリュームを選択することができるという効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１によるデバイス間データ転送装置を含むシステムの構成を示す図である。
【図２】  実施の形態１によるデバイス間データ転送装置の構成要素の相互関係を示す図である。
【図３】  図２中の冗長性管理テーブルの構成を示す図である。
【図４】  図２中のボリューム冗長性管理部の動作を示すフロー図である。
【図５】  従来のデバイス間データ転送装置を含むシステムの構成を示す図である。
【符号の説明】
１  ネットワーク（転送経路）、２，２ａ，２ｂ  バス（転送経路）、３ａ，３ｂ  ネットワーク結合装置、３ｃ  バス結合装置、４ａ，４ｂ  ディスクコントローラ、５ａ，５ｂ  Ｉ／Ｏプロセッサ（データ処理デバイス）、６ａ，６ｂ，７ａ，７ｂ  磁気ディスク装置、８  冗長ボリューム、８ａ，８ｂ  論理ボリューム、９ａ，９ｂ  記憶デバイス、１０  主記憶装置、１１  ボリューム管理部、１２  データ転送制御部（データ転送制御手段）、１３  オペレーティングシステム、１４  ボリューム冗長性管理部（ボリューム冗長性管理手段）、１５中央処理装置（ＣＰＵ）、１６  ボリューム構成テーブル、１７  ボリューム管理テーブル、１８  バス・ネットワーク情報、１９  冗長性管理テーブル、２０  デバイスドライバ、２１  冗長性情報、２２  論理ボリューム名（ボリューム特定情報）、２３  デバイス番号（デバイス特定情報）、２４  優先度、２５冗長セット番号（ボリューム特定情報）。
【図１】
0004278917.tif 000002
【図２】
0004278917.tif 000003
【図３】
0004278917.tif 000004
【図４】
0004278917.tif 000005
【図５】
0004278917.tif 000006