(57)【特許請求の範囲】
【請求項１】
互いに離れたノードにある分散記憶媒体に、別のノードにあるホストコンピュータのデータを通信路を介して分散して蓄積する分散記憶方法であって、
各ノードにおいて、
ホストコンピュータから分散記憶媒体へのデータ書き込み時にはデータを分割し、データ読み込み時にはデータを統合するデータ分割統合手段は、複数種類のデータ保護構成から１種類のデータ保護構成を指定し、
一のノードのホストコンピュータ及び分散記憶媒体のデータを該一のノードから他のノードへ伸びる通信路に転送するデータ転送手段は、該他のノードから到着したデータが該一のノードのホストコンピュータへのデータかあるいは該一のノードに設置された分散記憶媒体へのデータかを判断し、該データを該ホストコンピュータあるいは該分散記憶媒体に振り分け、
該分散記憶媒体と該データ転送手段とを接続する記憶媒体接続手段は、該分散記憶媒体に振り分けられたデータを、データ送出元の該他のノードが複数である場合に該他のノード毎に複数記憶媒体又は単一記憶媒体の複数記憶領域に書き込み、該他のノード毎に読み出す、
ことを特徴とする分散記憶方法。
【請求項２】
前記データ分割統合手段は、
前記データ分割時に、前記データ保護構成により必要があれば冗長データを生成し、
分割された該データと該冗長データの記憶場所を指定する情報、及び前記データ保護構成を指定する情報を保持するデータ分割蓄積情報を生成し、
該冗長データが生成されている場合、該データ統合時にデータ欠損があった際には、該データ分割蓄積情報を参照して残りのデータと該冗長データにより欠損したデータを復元する、
ことを特徴とする請求項１記載の分散記憶方法。
【請求項３】
互いに離れたノードにある分散記憶媒体に、別のノードにあるホストコンピュータのデータを通信路を介して分散して蓄積する分散記憶システムであって、
各ノードにおいて、
ホストコンピュータから分散記憶媒体へのデータ書き込み時にはデータを分割し、データ読み込み時にはデータを統合し、複数種類のデータ保護構成から１種類のデータ保護構成を指定するデータ分割統合手段と、
一のノードのホストコンピュータ及び分散記憶媒体のデータを該一のノードから他のノードへ伸びる通信路に転送し、該他のノードから到着したデータが該一のノードのホストコンピュータへのデータかあるいは該一のノードに設置された分散記憶媒体へのデータかを判断して該データを該ホストコンピュータあるいは該分散記憶媒体に振り分けるデータ転送手段と、
該分散記憶媒体と該データ転送手段とを接続し、該分散記憶媒体に振り分けられたデータを、データ送出元の該他のノードが複数である場合に該他のノード毎に複数記憶媒体又は単一記憶媒体の複数記憶領域に書き込み、該他のノード毎に読み出す記憶媒体接続手段と、
を有することを特徴とする分散記憶システム。
【請求項４】
前記データ分割統合手段は、
前記データ分割時に、前記データ保護構成により必要があれば冗長データを生成する手段と、
分割された該データと該冗長データの記憶場所を指定する情報、及び前記データ保護構成を指定する情報を保持するデータ分割蓄積情報を生成する手段と、
該冗長データが生成されている場合、該データ統合時にデータ欠損があった際には、該データ分割蓄積情報を参照して残りのデータと該冗長データにより欠損したデータを復元する手段と、
を有することを特徴とする請求項３記載の分散記憶システム。
【請求項５】
互いに離れたノードにある分散記憶媒体に、別のノードにあるホストコンピュータのデータを通信路を介して分散して蓄積する分散記憶方法を各ノードのコンピュータに実行させる分散記憶プログラムを記録した記録媒体であって、前記コンピュータを、
ホストコンピュータから分散記憶媒体へのデータ書き込み時にはデータを分割し、データ読み込み時にはデータを統合し、複数種類のデータ保護構成から１種類のデータ保護構成を指定するデータ分割統合手段、
一のノードのホストコンピュータ及び分散記憶媒体のデータを該一のノードから他のノードへ伸びる通信路に転送し、該他のノードから到着したデータが該一のノードのホストコンピュータへのデータかあるいは該一のノードに設置された分散記憶媒体へのデータかを判断して該データを該ホストコンピュータあるいは該分散記憶媒体に振り分けるデータ転送手段、
該分散記憶媒体と該データ転送手段とを接続し、該分散記憶媒体に振り分けられたデータを、データ送出元の該他のノードが複数である場合に該他のノード毎に複数記憶媒体又は単一記憶媒体の複数記憶領域に書き込み、該他のノード毎に読み出す記憶媒体接続手段、
として機能させるための分散記憶プログラムを記録した記録媒体。
【請求項６】
前記データ分割統合手段は、
前記データ分割時に、前記データ保護構成により必要があれば冗長データを生成する手段と、
分割された該データと該冗長データの記憶場所を指定する情報、及び前記データ保護構成を指定する情報を保持するデータ分割蓄積情報を生成する手段と、
該冗長データが生成されている場合、該データ統合時にデータ欠損があった際には、該データ分割蓄積情報を参照して残りのデータと該冗長データにより欠損したデータを復元する手段と、
を有することを特徴とする請求項５記載の分散記憶プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体に係り、特に、地震、洪水等の地域災害に対するデータ保護機能を持ち、該データ保護構成をノード毎に選択できる分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来の技術における耐地域災害性を持つ分散記憶装置の一例が、例えば特開平５−３２４５７９号公報に開示されている。特開平５−３２４５７９号公報に開示されている分散記憶装置においては、
(１) データを格納するファイル装置とパリティデータとしての冗長データを格納する冗長データ格納装置を合わせて３個以上持ち、
（２）冗長データ格納装置を１個以上持つ、
ことを特徴としている。
【０００３】
このような特徴を持つため、自然災害等で、あるノードにあるファイル装置が破壊されても他のノードにある冗長データ格納装置に格納されている冗長データと、正常動作しているファイル装置に格納されているデータとから、破壊されたファイル装置に格納されているデータを復元できる。
パリティデータとしては、例えばファイル装置が４台ある場合、各ファイル装置のストライプａ０、ａ１、ａ２、ａ３からパリティデータｐ０は以下の式で算出される。
【０００４】
ｐ０＝ａ０＋ａ１＋ａ２＋ａ３（ｍｏｄ２）
ここで’＋’はmodulo２の加法を表す。
また、従来の技術における耐地域災害性を持つ分散記憶装置の別の一例として、一般的なＲＡＩＤ（Redundant Array of Independent Disks）装置がある。この装置は、ディスク装置を統括する１個のＲＡＩＤコントローラとデータまたは冗長データを格納する２個以上のディスク装置を使用し、ＲＡＩＤコントローラインターフェースとして例えばFibre Channel SCSI等を使用することにより各装置を広域に分散でき、データ保持についての耐災害性を持つことができる。
【０００５】
図7 は従来の技術による分散記憶装置の第１の例であり、複数のコンピュータからアクセスするために複数のＲＡＩＤを独立に構築した例を示している。同図に示すように、第１の例はノードＡ１０、ノードＢ２０、及びノードＣ３０から構成され、各ノードは通信路5 ３０及び通信路5 ３１によりバス型に接続されている。ノードＡ１０において、ホストコンピュータ5 ００はホスト接続手段5 ０１、ＲＡＩＤ制御手段５０２、データ転送手段５０３を介してバス接続され、記憶媒体５０４は記憶媒体接続手段５０５、データ転送手段５０６を介してバス接続され、記憶媒体５０７は記憶媒体接続手段５０８、データ転送手段５０９を介してバス接続されている。ノードＢ２０及びノードＣ３０における構成もノードＡ１０における構成と同様である。記憶媒体に接続されている記憶媒体接続手段及びデータ転送手段は、１台のコンピュータにより機能が実現されることが多く、ホストコンピュータに接続したホスト接続手段、ＲＡＩＤ制御手段、及びデータ転送手段はホストコンピュータ内に機能が設けられる場合や単独のコンピュータにより機能が実現される場合がある。
【０００６】
本構成において、例えば、ホストコンピュータ５００は記憶媒体５２４と記憶媒体５１７をＲＡＩＤ２を構成する分散記憶媒体として使用し、ホストコンピュータ５１０は記憶媒体５０４と記憶媒体５２７をＲＡＩＤ２を構成する分散記憶媒体として使用し、ホストコンピュータ５２０は記憶媒体５０７と記憶媒体５１４をＲＡＩＤ２を構成する分散記憶媒体として使用する。
【０００７】
図８は従来の技術による分散記憶装置の第２の例であり、これも複数のコンピュータからアクセスするために複数のＲＡＩＤを独立に構築した例である。
同図に示すように、第２の例はノードＡ１０、ノードＢ２０、及びノードＣ３０から構成されている。ノードＡ１０において、ホストコンピュータ5 ００はホスト接続手段5 ０１、ＲＡＩＤ制御手段５０２、データ転送手段５０３を介して通信路５４１に接続され、ノードＣ３０においてデータ転送手段５２６、記憶媒体接続手段５２５を介して記憶媒体５２４に接続される。また、ホストコンピュータ5 ００はホスト接続手段5 ０１、ＲＡＩＤ制御手段５０２、データ転送手段５０３を介して通信路５４０に接続され、ノードＢ２０においてデータ転送手段５１９、記憶媒体接続手段５１８を介して記憶媒体５１７に接続される。ホストコンピュータ５１０及びホストコンピュータ５２０も同様の構成により記憶媒体と接続される。記憶媒体に接続されている記憶媒体接続手段及びデータ転送手段は、１台のコンピュータにより機能が実現されることが多く、ホストコンピュータに接続したホスト接続手段、ＲＡＩＤ制御手段、及びデータ転送手段はホストコンピュータ内に機能が設けられる場合や単独のコンピュータにより機能が実現される場合がある。
【０００８】
本構成において、例えば、ホストコンピュータ５００は記憶媒体５２４と記憶媒体５１７をＲＡＩＤ２を構成する分散記憶媒体として使用し、ホストコンピュータ５１０は記憶媒体５０４と記憶媒体５２７をＲＡＩＤ２を構成する分散記憶媒体として使用し、ホストコンピュータ５２０は記憶媒体５０７と記憶媒体５１４をＲＡＩＤ２を構成する分散記憶媒体として使用する。
【０００９】
【発明が解決しようとする課題】
しかしながら、特開平５−３２４５７９号公報に開示されている装置は、パリティデータを持つ構成を示しており、パリティデータを持たない最も信頼性と可用性の高いＲＡＩＤレベル１（ミラーリング) を構成できない欠点を持つ。
また、高速性と信頼性を高めるために、一般に、ＲＡＩＤレベル０のディスクアレイ装置を複数用意し、それぞれを１つのディスク装置と見立ててそれらをＲＡＩＤレベル１の技術で組み合わせる等、ＲＡＩＤ技術を組み合わせることが行われているが、特開平５- ３２４５７９号公報に開示されている装置は、パリティデータを持つ構成を示しており、高速性の高さで有用なＲＡＩＤレベル０（ストライピング）を構成できない欠点を持つ。また、特開平５- ３２４５７９号公報に開示されている装置は、パリティデータをmodulo2 の加法を用いた演算により算出しているため、Hamming コードを使用しているＲＡＩＤレベル２を構成できない欠点を持つ。
【００１０】
また、１次元冗長度を持つＲＡＩＤレベル６では２種類の冗長データ生成アルゴリズムが必要となるが、１種類目としてmodulo2 の加法を選ぶとしたら２種類目はmodulo2 の加法以外の例えばReed-Solomon誤り訂正符号化方法を選ぶ必要がある。特開平５−３２４５７９号公報に開示されている装置は、modulo2 の加法のみに対応しているため、１次元冗長度を持つＲＡＩＤレベル６を構成できない欠点を持つ。
【００１１】
また、２次元冗長度を持つＲＡＩＤレベル６では１回のデータ書き込みに対して２回の冗長データ生成（例えばmodulo2 の加法）が必要となるが、特開平５- ３２４５７９号公報に開示されている装置は、１回の冗長データの生成しか行わないため、２次元冗長度を持つＲＡＩＤレベル６を構成できない欠点を持つ。
更に、従来の技術によると、一般的なＲＡＩＤ装置は、ＲＡＩＤコントローラを１個しか持たないためＲＡＩＤコントローラのある地域に自然災害等が起こり、ＲＡＩＤコントローラが破壊された場合、システム全体が停止するため、地域災害に対する可用性、すなわち装置が破壊されてもデータアクセス可能である性質を持つことができない欠点を持つ。また、一般的なＲＡＩＤ装置は、ＲＡＩＤコントローラを１個しか持たないため、複数のコンピュータからアクセスできない欠点を持つ。また、一般的なＲＡＩＤ装置は、複数のコンピュータからアクセスするために複数のＲＡＩＤ装置を使用しなければならず、各装置が全く独立して構築されるため、コストが高くなるという欠点を持つ。すなわち、図７及び図８に示したように、ノード毎に異なるファイルシステムを持ち、各ノードのデータを冗長度を持たせながらそれぞれ他のノードに分散蓄積する場合、従来技術ではデータ転送手段と記憶媒体接続手段のコストがノード数の２乗のオーダに比例してかかるため、構築するために多くの投資が必要という問題点がある。
【００１２】
本発明は上記の点に鑑みなされたもので、上記に説明した問題点を解決し、ＲＡＩＤレベル０及びＲＡＩＤレベル１〜６を含むデータ保護機能を各ノード毎で選択して構成でき、地域災害に対して可用性を持ち、複数のコンピュータからのアクセスが可能であり、重複した装置を持たず低コストな分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体を提供することを目的とする。
【００１３】
【課題を解決するための手段】
請求項１に記載の発明は、互いに離れたノードにある分散記憶媒体に、別のノードにあるホストコンピュータのデータを通信路を介して分散して蓄積する分散記憶方法であって、各ノードにおいて、ホストコンピュータから分散記憶媒体へのデータ書き込み時にはデータを分割し、データ読み込み時にはデータを統合するデータ分割統合手段により、複数種類のデータ保護構成から１種類のデータ保護構成が指定され、一のノードのホストコンピュータ及び分散記憶媒体のデータを該一のノードから他のノードへ伸びる通信路に転送するデータ転送手段は、該他のノードから到着したデータが該一のノードのホストコンピュータへのデータかあるいは該一のノードに設置された分散記憶媒体へのデータかを判断し、該データを該ホストコンピュータあるいは該分散記憶媒体に振り分け、該分散記憶媒体と該データ転送手段とを接続する記憶媒体接続手段は、該分散記憶媒体に振り分けられたデータを、データ送出元の該他のノードが複数である場合に該他のノード毎に複数記憶媒体又は単一記憶媒体の複数記憶領域に書き込み、該他のノード毎に読み出すことを特徴とする分散記憶方法である。
【００１４】
請求項２に記載の分散記憶方法は、前記データ分割統合手段が、前記データ分割時に、前記データ保護構成により必要があれば冗長データを生成し、分割された該データと該冗長データの記憶場所を指定する情報、及び前記データ保護構成を指定する情報を保持するデータ分割蓄積情報を生成し、該冗長データが生成されている場合、該データ統合時にデータ欠損があった際には、該データ分割蓄積情報を参照して残りのデータと該冗長データにより欠損したデータを復元する。
【００１５】
請求項３に記載の発明は、互いに離れたノードにある分散記憶媒体に、別のノードにあるホストコンピュータのデータを通信路を介して分散して蓄積する分散記憶システムであって、各ノードにおいて、ホストコンピュータから分散記憶媒体へのデータ書き込み時にはデータを分割し、データ読み込み時にはデータを統合し、複数種類のデータ保護構成から１種類のデータ保護構成を指定するデータ分割統合手段と、一のノードのホストコンピュータ及び分散記憶媒体のデータを該一のノードから他のノードへ伸びる通信路に転送し、該他のノードから到着したデータが該一のノードのホストコンピュータへのデータかあるいは該一のノードに設置された分散記憶媒体へのデータかを判断し、該データを該ホストコンピュータあるいは該分散記憶媒体に振り分けるデータ転送手段と、該分散記憶媒体と該データ転送手段とを接続し、該分散記憶媒体に振り分けられたデータを、データ送出元の該他のノードが複数である場合に該他のノード毎に複数記憶媒体又は単一記憶媒体の複数記憶領域に書き込み、該他のノード毎に読み出す記憶媒体接続手段とを有する分散記憶システムである。
【００１６】
請求項４に記載の分散記憶システムは、前記データ分割統合手段が、前記データ分割時に、前記データ保護構成により必要があれば冗長データを生成する手段と、分割された該データと該冗長データの記憶場所を指定する情報、及び前記データ保護構成を指定する情報を保持するデータ分割蓄積情報を生成する手段と、該冗長データが生成されている場合、該データ統合時にデータ欠損があった際には、該データ分割蓄積情報を参照して残りのデータと該冗長データにより欠損したデータを復元する手段と、を有する。
【００１７】
請求項５に記載の発明は、互いに離れたノードにある分散記憶媒体に、別のノードにあるホストコンピュータのデータを通信路を介して分散して蓄積する分散記憶方法を各ノードのコンピュータに実行させる分散記憶プログラムを記録した記録媒体であって、前記コンピュータを、ホストコンピュータから分散記憶媒体へのデータ書き込み時にはデータを分割し、データ読み込み時にはデータを統合し、複数種類のデータ保護構成から１種類のデータ保護構成を指定するデータ分割統合手段、一のノードのホストコンピュータ及び分散記憶媒体のデータを該一のノードから他のノードへ伸びる通信路に転送し、該他のノードから到着したデータが該一のノードのホストコンピュータへのデータかあるいは該一のノードに設置された分散記憶媒体へのデータかを判断して該データを該ホストコンピュータあるいは該分散記憶媒体に振り分けるデータ転送手段、該分散記憶媒体とデータ転送手段とを接続し、該分散記憶媒体に振り分けられたデータを、データ送出元の該他のノードが複数である場合に該他のノード毎に複数記憶媒体又は単一記憶媒体の複数記憶領域に書き込み、該他のノード毎に読み出す記憶媒体接続手段、として機能させるための分散記憶プログラムを記録した記録媒体である。
【００１８】
請求項６に記載の分散記憶プログラムを記録した記録媒体は、前記データ分割統合手段が、前記データ分割時に、前記データ保護構成により必要があれば冗長データを生成する手段と、分割された該データと該冗長データの記憶場所を指定する情報、及び前記データ保護構成を指定する情報を保持するデータ分割蓄積情報を生成する手段と、該冗長データが生成されている場合、該データ統合時にデータ欠損があった際には、該データ分割蓄積情報を参照して残りのデータと該冗長データにより欠損したデータを復元する手段とを有する。
【００１９】
上記のように、本発明によれば、データ分割統合手段がデータ保護構成を指定し、指定したデータ保護構成に適合した冗長データを生成し、指定したデータ保護構成に適合した場所に該冗長データを格納することができるので、各ノード毎にデータ保護構成機能を選択して実現することができる。また、データ保護構成をＲＡＩＤ０〜６のいずれかとすることにより、各ノード毎にＲＡＩＤ０〜６を選択して実現することができる。
【００２０】
また、本発明によれば、各ノードにデータ分割統合手段があるので、地域災害によりあるノードが破壊されても別のノードのデータアクセス性が保持されるため、可用性が実現できる。また、データ転送手段は、他ノードから到着したデータが自ノードのファイルシステムのものか他ノードのファイルシステムのものかを判断し振り分ける機能を持つため、従来の技術では自ノードと他ノード分用意しなければならなかったデータ転送手段を共有でき、記憶媒体接続手段は、単一または複数媒体に接続でき、ノード別に単一または複数媒体の記憶領域を分割し、ノード別に分割データの書き込みと読み出しを行う機能を持つため、従来の技術では他ノード数分あった記憶媒体接続手段を共有できる。したがって、従来の技術においては重複して必要であった装置を削減することができ、コストの削減ができる。更に、各ノードは１つのデータ転送手段に接続するので、従来技術におけるチャネル型構成ではホストコンピュータと記憶媒体間毎に少なくとも一本ずつ必要であった通信路が、ノードとノードの間に少なくとも１本あればよい構成とすることができ、更なるコスト削減が可能となる。
【００２１】
【発明の実施の形態】
図１は本発明における第１の実施例の構成を示す図である。同図に示すように、第１の実施例はノードＡ１０、ノードＢ２０、及びノードＣ３０から構成され、各ノードは通信路１３０及び通信路１３１によりバス型ネットワーク接続されている。ノードＡ１０はホストコンピュータ１００、ホスト接続手段１０１、データ分割統合手段１０２、データ接続手段１０３、記憶媒体接続手段１０４、記憶媒体１０５、記憶媒体１０６から構成され、ノードＢはホストコンピュータ１１０、ホスト接続手段１１１、データ分割統合手段１１２、データ転送手段１１３、記憶媒体接続手段１１４、記憶媒体１１５、記憶媒体１１６から構成され、ノードＣはホストコンピュータ１２０、ホスト接続手段１２１、データ分割統合手段１２２、データ転送手段１２３、記憶媒体接続手段１２４、記憶装置１２５、記憶装置１２６から構成される。各手段の機能と、本実施例の動作については後述するとして、次に各手段の実現例について説明する。
【００２２】
ホスト接続手段に、例えば、ＳＣＳＩ（Small Computer System Interface ）ターゲット機能を持たせ、ホストコンピュータのインターフェースをＳＣＳＩイニシエータとして働かせることにより、ホストコンピュータとホスト接続手段との接続を行い、記憶媒体接続手段に、例えば、ＳＣＳＩイニシエータ機能を持たせ、ＳＣＳＩターゲット機能を持つ複数の記憶媒体をディジーチェーン方式で記憶媒体接続手段に接続する。また、通信路１３０、１３１としては、例えば、Fibre Channel を用いて、長距離大容量通信を行う。
【００２３】
ホスト接続手段とデータ分割統合手段とデータ転送手段と記憶媒体接続手段は、例えば、１つのＣＰＵ（Central proccessing unit）を持つハードウェアにＳＣＳＩイニシエータ機能とＳＣＳＩターゲット機能とFibre Channel 接続機能を付加して実現する。また、データ分割統合手段には、例えば、ＲＡＩＤ（Redundant Array of Independent Disks）機能を持たせ、記憶媒体には、例えば、ハードディスク装置や光磁気ディスク装置等の記憶装置を使用する。
【００２４】
図２は図１の構成のうち、ノードＡ１０のホストコンピュータ１００からのデータ書き込みと読み出しに関係する構成要素のみを記述した図である。図１に示す構成では、それぞれのノードにホストコンピュータを持ち、それぞれのホストコンピュータは他のノードとは独立にデータへのアクセスができるが、ここからは説明を簡単にするために、図２を用いる。なお、ノードＢ２０、ノードＣ３０におけるそれぞれのホストコンピュータのデータアクセス動作はノードＡ１０のホストコンピュータ１００のデータアクセス動作と同様である。
【００２５】
また、図２においては、ホストコンピュータ１００から見た仮想記憶装置１４１、ノードＡ１０のデータ分割統合手段１０２から見たノードＢ２０の仮想記憶装置１４２、ノードＡ１０のデータ分割統合手段１０２から見たノードＣ３０の仮想記憶装置１４３を記載している。
次に前述した図１における各手段の機能を図２を用いて説明する。なお、以下図２を用いて説明する機能は、図１に示す各手段の機能と同様である。
【００２６】
図２中、ホストコンピュータ１００においてホスト接続手段１０１は、仮想記憶装置１４１の入出力を行うものとみなされるため、ホストコンピュータ１００は、データの書き込みと読み出しを行う際には、仮想記憶装置１４１の論理的なアドレスを指定する。このアドレスは、例えばＳＣＳＩのＬＢＡ（Logical Block Address ）を使用する。ホスト接続手段１０１はこの論理的なアドレスをホストコンピュータ１００から受け、データ分割統合手段１０２に送る機能を有する。
【００２７】
また、ノードＡ１０のデータ分割統合手段１０２においてはノードＢ２０に仮想記憶装置１４２が接続され、ノードＣ３０に仮想記憶装置１４３が接続されているものとみなされるため、ノードＡ１０のデータ分割統合手段１０２は、各仮想記憶装置１４２、１４３へのデータの書き込みと読み出しを行う際には、１４２と１４３の論理的なアドレスを指定する。
【００２８】
したがって、ノードＡ１０のデータ分割統合手段１０２は、データアクセスの際に、ノードＡ１０のホストコンピュータ１００から見た仮想記憶装置１４１の論理的なアドレスをホスト接続手段１０１から受け、そのアドレスをデータ分割統合手段１０２から見たノードＢ２０とノードＣ３０の仮想記憶装置１４２、１４３の論理的なアドレスに変換を行い、変換したアドレスをデータ転送手段に送る機能を有する。また、データ分割統合手段１０２は、仮想記憶装置１４１の論理的なアドレスと仮想記憶１４２、１４３の論理的なアドレスの対応付けや、冗長データを蓄積しておくアドレスのための表または算出式を、データ分割蓄積情報として保持する機能を有し、更に、データ分割蓄積情報のバックアップ情報を蓄積しておくための仮想記憶装置１４２、１４３の論理的なアドレスを保持する機能を有している。
【００２９】
データ転送手段１０３は各ノード宛のパケットのヘッダを作成し、パケットを通信路に送る機能を有する。また、データ転送手段は自ノード宛のパケットを受け取り、アドレスとデータを記憶媒体に送る機能も有する。
ノードＢ２０の記憶媒体接続手段１１４は、データ転送手段１１３からノードＢ２０の仮想記憶装置１４２の論理的なアドレスを受け、そのアドレスを、ノードＢ２０の記憶媒体１１５、１１６のＩＤと論理的なアドレスへの変換を行う機能を有する。ノードＣ３０についてもノードＢ２０と同様に、ノードＣ３０の記憶媒体接続手段１２４では、ノードＣ３０の仮想記憶装置１４３の論理的なアドレスからノードＣ３０の記憶媒体１２５、１２６へのＩＤと論理的なアドレスへの変換を行う。記憶媒体１１５、１１６、１２５、１２６の論理的なＩＤとアドレスとしては、例えば、ＳＣＳＩのＩＤとＬＢＡを使用する。
【００３０】
続いて、図２に示す構成を用いて第１の実施例におけるデータ書き込みの動作を、図３に示すフローチャートを用いて説明する。
ステップ１）ノードＡ１０のホストコンピュータ１００は、ノードＡ１０のホスト接続手段１０１へ、仮想記憶装置１４１の論理的なアドレスとデータを送る。
【００３１】
ステップ２）ノードＡ１０のホスト接続手段１０１は、データ分割統合手段１０２へ仮想記憶装置１４１の論理的なアドレスとデータを送る。
ステップ３）ノードＡのデータ分割統合手段１０２は、データ分割蓄積情報に従って、仮想記憶装置１４１の論理的なアドレスを仮想記憶装置１４２、１４３の論理的なアドレスへ変換する。また、冗長データが必要な場合は冗長なデータを生成し、データ分割蓄積情報に従って、仮想記憶装置１４２、１４３の論理的なアドレスを付与する。その後、仮想記憶装置のＩＤと変換後のアドレスと分割データと冗長データをノードＡ１０のデータ転送手段１０３へ送る。
【００３２】
ステップ４）ノードＡ１０のデータ転送手段１０３は、仮想記憶装置のＩＤを基に各ノード宛のパケットのヘッダを作成し、アドレスと分割データまたは冗長データをつけたパケットを通信路１３０、１３１へ送信する。
ステップ５）ノードＢ２０ではデータ転送手段１１３で、ノードＣ３０ではデータ転送手段１２３で、それぞれ自ノード宛のパケットを受け取る。そして、受け取ったアドレスとデータをそれぞれ記憶媒体接続手段１１４、１２４に送る。
【００３３】
ステップ６）ノードＢ２０の記憶媒体接続手段１１４は仮想記憶装置１４２のアドレスを記憶媒体１１５、１１６のＩＤと論理的なアドレスに変換し、ノードＣ３０の記憶媒体接続手段１２４は仮想記憶装置１４３のアドレスを記憶媒体１２５、１２６のＩＤと論理的なアドレスに変換し、それぞれのＩＤとアドレスに従ってデータをそれぞれの記憶媒体に送り、書き込みを行う。
【００３４】
次に、データを読み出す場合の動作を、図４に示すフローチャートを用いて説明する。
ステップ１１）ノードＡ１０のホストコンピュータ１００は、ノードＡ１０のホスト接続手段１０１へ、読み出したい仮想記憶装置１４１の論理的なアドレスを送る。
【００３５】
ステップ１２）ノードＡ１０のホスト接続手段１０１は、データ分割統合手段１０２へ、読み出したい仮想記憶装置１４１の論理的なアドレスを送る。
ステップ１３）ノードＡ１０のデータ分割統合手段１０２は、データ分割蓄積情報に従って、仮想記憶装置１４１の論理的なアドレスを仮想記憶装置１４２、１４３の論理的なアドレスへ変換する。その後、仮想記憶装置のＩＤと変換後のアドレスをノードＡのデータ転送手段１０３へ送る。
【００３６】
ステップ１４）ノードＡ１０のデータ転送手段１０３は、仮想記憶装置のＩＤを基に各ノード宛のパケットのヘッダを作成し、アドレスをつけたパケットを通信路１３０、１３１へ送信する。
ステップ１５）ノードＢ２０ではデータ転送手段１１３で、ノードＣ３０ではデータ転送手段１２３で、自ノード宛のパケットを受け取る。そして、アドレスをそれぞれ記憶媒体接続手段１１４、１２４に送る。
【００３７】
ステップ１６）ノードＢ２０の記憶媒体接続手段１１４は仮想記憶装置１４２のアドレスを記憶媒体１１５、１１６のＩＤと論理的なアドレスに変換し、ノードＣ３０の記憶媒体接続手段１２４は仮想記憶装置１４３のアドレスを記憶媒体１２５、１２６のＩＤと論理的なアドレスに変換し、それぞれのＩＤとアドレスに従ってデータをそれぞれの記憶媒体から読み出す。記憶媒体１１５、１１６から読み出したデータと仮想記憶装置１４２のアドレスをデータ転送手段１１３へ返し、記憶媒体１２５、１２６から読み出したデータと仮想記憶装置１４３のアドレスをデータ転送手段１２３へ返す。
【００３８】
ステップ１７）ノードＢ２０のデータ転送手段１１３は、仮想記憶装置１４２のＩＤとアドレスとデータから、ノードＡ１０宛に返すパケットを生成し、ノードＣ３０のデータ転送手段１２３は、仮想記憶装置１４３のＩＤとアドレスとデータから、ノードＡ１０宛に返すパケットを生成し、それぞれ通信路１３０、１３１へ返信する。
【００３９】
ステップ１８）ノードＡ１０のデータ転送手段１０３は、ノードＢ２０とノードＣ３０からのパケットを受け取り、ＩＤとアドレスとデータをノードＡ１０のデータ分割統合手段１０２へ返す。
ステップ１９）ノードＡ１０のデータ分割統合手段１０２は、データ分割蓄積情報を使用して仮想記憶装置１４２、１４３のＩＤとアドレスを仮想記憶装置１４１のアドレスに変換し、ノードＢ２０、Ｃ３０から届いた分割データを統合する。統合したデータをノードＡ１０のホスト接続手段１０１へ返す。
【００４０】
ステップ２０）ノードＡ１０のホスト接続手段１０１は受け取ったデータをノードＡ１０のホストコンピュータ１００へ返す。
なお、図２では、各ノードに記憶媒体は２つづつ存在する構成となっているが、各ノードの記憶媒体接続手段１１４、１２４は各ノードの仮想記憶装置の論理的なアドレスを記憶媒体のＩＤとアドレスに変換するだけであるので、記憶媒体の数は２つに限られず、必要な容量にあわせて自由に選ぶことができる。前述したように、上記で説明したホストコンピュータからのデータ書き込みと読み出しの動作は、図１におけるノードＢ２０のホストコンピュータ１１０とノードＣ３０のホストコンピュータ１２０においても同様である。
【００４１】
また、図１に示す構成では、ノード数が３であるが、ノード数が２以上であればノード数が３の場合と同様な動作と効果を得ることができる。
上記で説明したような構成となっているので、ノードごとに異なるファイルシステムを有する分散記憶装置において、各ノードはホスト接続手段とデータ分割統合手段と記憶媒体接続手段とデータ転送手段を１つにでき、また、チャネル型の構成であっても通信路を共有することが可能となる。その効果として、以下に示すようなノード数にほぼ比例したコストで装置を提供することが可能となる。
【００４２】
ＣTotal 
= ｛( ＣHC+ ＣDI+ ＣT + ＣT + ＣMC) ×Ｎ｝+ ｛ＣC ×( Ｎ-1) ｝
= ＮＣHC+ ＮＣDI+ ＮＣT + ＮＣT + ＮＣMC+(Ｎ-1) ＣC 
= ＮＣHC+ ＮＣDI+ 2 ＮＣT + ＮＣMC+(Ｎ-1) ＣC 
ただし、ＣTotal はトータルコスト、ＣHCはホスト接続手段のコスト、ＣDIはデータ分割統合手段のコスト、ＣT はデータ転送手段のコスト、ＣMCは記憶媒体接続手段のコスト、ＣC は通信路のコスト、Ｎはノード数を表す。
【００４３】
比較対象として従来の技術における図７において説明した一般的なＲＡＩＤ装置を使ってバス型ネットワーク接続を使用した同一の機能を実現する構成のコストを以下の式に示す。
0003736134.tif 000002
ただし、ＣTotal はトータルコスト、ＣHCはホスト接続手段のコスト、ＣDIはデータ分割統合手段のコスト、ＣT はデータ転送手段のコスト、ＣMCは記憶媒体接続手段のコスト、ＣC は通信路のコスト、Ｎはノード数を表す。
【００４４】
後者から前者を引いた差をとって、Ｎ（Ｎ−１）ＣT ＋Ｎ（Ｎ−２）ＣMCのコストダウンが図れることがわかる。この結果が示すように、従来の技術にくらべて、コストを低く押さえることができる。
また、データ分割統合手段はＲＡＩＤ０〜６に対応しているため、各ノードはＲＡＩＤ０〜６の機能を実現でき、各ノードにデータ分割統合手段があるので、地域災害によりあるノードが破壊されても別のノードのデータアクセス性は保持され、可用性が実現できる。更に、各ノードにホスト接続手段を持つので、複数コンピュータからのアクセスが可能となる。
【００４５】
次に、可用性を示すためにノード障害による復旧の動作について、図２を用いて、図１の構成においてノードＡ１０のホストコンピュータ１００が分散記憶媒体に蓄積しているデータに対して障害が起こった場合について説明する。
障害の発生場所としては、ノードＢ２０又はノードＣ３０での発生、及びノードＡ１０での発生の２通りある。まず、ノードＢ２０で発生した場合を説明する。なお、ノードＣ３０で発生しても同様である。
【００４６】
データ分割統合手段１０２がＲＡＩＤレベル１を選択している場合、データ分割統合手段１０２がノードＢ２０にアクセスできなくなったことを検知すると、データ分割統合手段１０２はノードＣ３０にのみアクセスをする。これにより
ノードＢ２０障害時においてもデータアクセス可能である。ノードＢ２０が復旧した際には、ノードＢ２０が復旧した旨の情報をノードＡ１０が検知し、データ分割蓄積情報に従ってノードＣ３０のデータを基にノードＢ２０のデータを復元し、ノードＢ２０の記憶媒体に格納することでデータ復旧ができる。復旧中は、ホストコンピュータ１００からのデータ書き込みによるデータの追加や変更もデータ分割統合手段１０２にて復元動作に組み入れるため、復帰中もデータのアクセスが可能である。ＲＡＩＤレベル２〜６についての動作は上記に説明した動作と同様である。
【００４７】
次に、ノードＡ１０で障害が発生し、その障害が復旧した後の動作について説明する。
データ分割統合手段１０２は、分割されたデータの位置情報やＲＡＩＤレベル等が書き込まれたデータ分割蓄積情報が消失しているため、ノードＢ２０又はノードＣ３０から記憶媒体の所定の位置にあるバックアップされたデータ分割蓄積情報を取得する。これによりノードＡ１０から各ノードへのアクセスが可能となる。ノードＡ１０の障害では、ホストコンピュータ１００に対するデータの消失は無いので、ＲＡＩＤレベル０〜６を使用した復旧が可能である。
【００４８】
図５は本発明の第２の実施例の構成を示す図である。同図に示すように、第２の実施例は、第１の実施例と同様にノードＡ１０、ノードＢ２０、及びノードＣ３０から構成され、各ノード内の構成も接続方法にかかわる部分を除いて第１の実施例と同一である。第２の実施例では、第１の実施例と異なり、各ノードがチャネル型ネットワーク接続により接続されている。すなわち、ノードＡ１０とノードＢ２０は通信路１５０により接続され、ノードＡ１０とノードＣ３０は通信路１５１により接続され、ノードＢ２０とノードＣ３０は通信路１５２により接続されている。
【００４９】
図６は図５の構成のうち、ノードＡ１０のホストコンピュータ１００からのデータ書き込みと読み出しに関係する構成要素のみを記述した図である。すなわち、図５に示す構成では、それぞれのノードにホストコンピュータを持ち、それぞれのホストコンピュータは他のノードとは独立にデータへのアクセスができるが、図６に示す構成ではホストコンピュータ１００からのデータ書き込みと読み出しに関係する構成要素のみ抜き出して記述している。なお、ノードＢ２０、ノードＣ３０におけるそれぞれのホストコンピュータのデータアクセス動作はノードＡ１０のホストコンピュータ１００のデータアクセス動作と同様である。
【００５０】
また、図６においては、ホストコンピュータ１００から見た仮想記憶装置１４１、ノードＡ１０のデータ分割統合手段１０２から見たノードＢ２０の仮想記憶装置１４２、ノードＡ１０のデータ分割統合手段１０２から見たノードＣ３０の仮想記憶装置１４３を記載している。
図５に示す各手段の実現例、機能は第１の実施例と同様である。また、図６に示す構成の動作は、図２で説明した第１の実施例における動作と同様である。すなわち、バス型ネットワークあるいはチャネル型ネットワークノードのどちらを接続手段として利用しても、本発明による分散記憶システムは同様の動作を行う。
【００５１】
第２の実施例に示す構成においても第１の実施例と同様に、ノードごとに異なるファイルシステムを有する分散記憶装置においては、各ノードはホスト接続手段とデータ分割統合手段と記憶媒体接続手段とデータ転送手段を１つにでき、また、通信路を共有することが可能となる。ここで、第２の実施例のコスト面の効果を示すと、以下のように、通信路以外はノード数にほぼ比例した低いコストで装置を提供することが可能となる。
【００５２】
ＣTotal 
= ｛( ＣHC+ ＣDI+ ＣT + ＣT + ＣMC) ×Ｎ｝+ ｛ＣC ×N(Ｎ-1) ｝
= ＮＣHC+ ＮＣDI+ ＮＣT + ＮＣT + ＮＣMC+N( Ｎ-1) ＣC 
= ＮＣHC+ ＮＣDI+ 2 ＮＣT + ＮＣMC+N( Ｎ-1) ＣC 
ただし、ＣTotal はトータルコスト、ＣHCはホスト接続手段のコスト、ＣDIはデータ分割統合手段のコスト、ＣT はデータ転送手段のコスト、ＣMCは記憶媒体接続手段のコスト、ＣC は通信路のコスト、Ｎはノード数を表す。
【００５３】
比較対象として従来の技術において図８で説明した一般的なＲＡＩＤ装置を使ってチャネル型ネットワーク接続を使用した同一の機能を実現する構成についてのコストを以下の式に示す。
0003736134.tif 000003
ただし、ＣTotal はトータルコスト、ＣHCはホスト接続手段のコスト、ＣDIはデータ分割統合手段のコスト、ＣT はデータ転送手段のコスト、ＣMCは記憶媒体接続手段のコスト、ＣC は通信路のコスト、Ｎはノード数を表す。
【００５４】
後者から前者を引いた差をとると、Ｎ（Ｎ−１）ＣT ＋Ｎ（Ｎ−２）ＣMCのコストダウンが図れることがわかる。この結果が示すように、従来の技術にくらべて、コストが低く押さえられる。通信路については前者は後者に比較して１／２のコストとなる。
また、第１の実施例と同様に、第２の実施例はデータ分割統合手段はＲＡＩＤ０〜６に対応しているため、各ノードはＲＡＩＤ０〜６の機能を実現でき、各ノードにデータ分割統合手段があるので、地域災害によりあるノードが破壊されても別のノードのデータアクセス性は保持され、可用性が実現できる。更に、各ノードにホスト接続手段を持つので、複数コンピュータからのアクセスが可能となる。
【００５５】
次に、本発明における分散記憶プログラムを記録した記録媒体の実施例について説明する。図９は、ＣＰＵ６００、メモリ６０１、外部記憶装置６０２、ディスプレイ６０３、キーボード６０４、通信処理装置６０５を備えたコンピュータシステムの構成図であり、本発明における分散記憶プログラムを記録した記録媒体は図９に示すメモリ６０１又は外部記憶装置６０２のいずれか又は両方に相当する。また、光磁気ディスク、磁気ディスク、磁気テープ等の可搬媒体、又は電子メモリ、ハードディスク等も本発明の記録媒体に相当し、これらの記録媒体に格納された本発明の手段を有する分散記憶プログラムを、図９に示すコンピュータシステムにローディングし、該コンピュータシステムをホストコンピュータ又は記憶媒体のいずれか又は両方に接続させ、他ノードの本発明による方法を使用したシステムと通信路を介して接続することにより、該コンピュータシステムにおいて上記の分散記憶方法の使用が可能となる。
【００５６】
なお、本発明は上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【００５７】
【発明の効果】
上記のように、本発明によれば、データ分割統合手段がデータ保護構成を指定し、指定したデータ保護構成に適合した冗長データを生成し、指定したデータ保護構成に適合した場所に該冗長データを格納することができるので、各ノード毎にデータ保護構成機能を選択して実現することができる。また、データ保護構成をＲＡＩＤ０〜６のいずれかとすることにより、各ノード毎にＲＡＩＤ０〜６を選択して実現することができる。
【００５８】
また、本発明によれば、各ノードにデータ分割統合手段があるので、地域災害によりあるノードが破壊されても別のノードのデータアクセス性が保持されるため、可用性が実現できる。更に、各ノードにおけるデータ転送手段はデータ振り分け機能を持ち、データ転送手段に接続された記憶媒体接続手段はノード毎に割り当てられた記憶媒体又は記憶領域にデータアクセスすることができるため、単一のデータ転送手段及び記憶媒体接続手段により自ノードのホストコンピュータ及び他ノードの複数ホストコンピュータからのアクセスを受ける複数の記憶媒体を自ノードに設けることが可能となり、コスト削減が可能である。また、チャネル型の構成でも通信路を共有させることができ、更なるコスト削減が可能である。
【図面の簡単な説明】
【図１】本発明における第１の実施例の構成を示す図である。
【図２】本発明における第１の実施例の動作説明のための図である。
【図３】本発明における第１の実施例のホストコンピュータの書き込み動作を示すフローチャートである。
【図４】本発明における第１の実施例のホストコンピュータの読み込み動作を示すフローチャートである。
【図５】本発明における第２の実施例の構成を示す図である。
【図６】本発明における第２の実施例の動作をわかりやすく示すための図である。
【図７】従来の技術における分散記憶装置の第１の例である。
【図８】従来の技術における分散記憶装置の第２の例である。
【図９】本発明の記録媒体の実施例におけるコンピュータシステムの構成図である。
【符号の説明】
１０  ノードＡ
２０  ノードＢ
３０  ノードＣ
１００、１１０、１２０、５００、５１０、５２０  ホストコンピュータ
１０１、１１１、１２１、５０１、５１１、５２１  ホスト接続手段
１０２、１１２、１２２  データ分割統合手段
５０２、５１２、５２２  ＲＡＩＤ制御手段
１０３、１１３、１２３、５０３、５１３、５２３  データ転送手段
５０６、５１６、５２６、５０９、５１９、５２９  データ転送手段
１０４、１１４、１２４、５０５、５１５、５２５  記憶媒体接続手段
５０８、５１８、５２８  記憶媒体接続手段
５０４、５１４、５２４、５０７、５１７、５２７  記憶媒体
１３０、１３１、５３０、５３１  通信路
５４０、５４１、５４２、５４３、５４４  通信路
６００  ＣＰＵ
６０１  メモリ
６０２  外部記憶装置
６０３  ディスプレイ
６０４  キーボード
６０５  通信処理装置
【図１】
0003736134.tif 000004
【図２】
0003736134.tif 000005
【図３】
0003736134.tif 000006
【図４】
0003736134.tif 000007
【図５】
0003736134.tif 000008
【図６】
0003736134.tif 000009
【図７】
0003736134.tif 000010
【図８】
0003736134.tif 000011
【図９】
0003736134.tif 000012