"上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有するディスクアレイ装置であって、前記第1ディスク装置と前記第2ディスク装置とをそれぞれ所定数有し、前記演算部で生成する冗長符号を生成する際に用いられる演算子の種類の数が前記第2ディスク装置の装置数より1つ以上少ないものであり、前記演算部は、前記第1ディスク装置および前記第2ディスク装置のうち、任意の前記所定数以下のディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を生成することを特徴とするディスクアレイ装置。上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有するディスクアレイ装置であって、前記第1ディスク装置と前記第2ディスク装置とをそれぞれ所定数有するディスクアレイ装置に、前記第1ディスク装置および前記第2ディスク装置のうち、任意の前記所定数以下のディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を前記第2ディスク装置の装置数より1つ以上少ない種類の数の演算子を用いて生成する機能を実現させるディスクアレイ制御用プログラム。上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有し、前記データと前記冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むディスクアレイ装置であって、前記演算部で生成する冗長符号を生成する際に用いられる演算子の種類の数が前記nより1つ以上少ないものであり、前記データを書き込んだ第1ディスク装置及び前記第2ディスク装置のうち、任意のn台以下の第1ディスク装置及び第2ディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を生成することを特徴とするディスクアレイ装置。上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有し、前記データと前記冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むディスクアレイ装置に、前記データを書き込んだ第1ディスク装置及び前記第2ディスク装置のうち、任意のn台以下の第1ディスク装置及び第2ディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を、前記nより1つ以上少ない種類の数の演算子を用いて生成する機能を実現させるディスクアレイ制御用プログラム。ディスクアレイ装置では、冗長性を高めることにより装置としての信頼性を高めることが可能であり、このように信頼性を高めることにより、記録された情報が失われるデータ喪失の発生確率を下げることが可能になる。ただし、冗長性は装置の記録容量とトレードオフの関係にあり、冗長性を高めると、実際の情報を記録するのに使用できる容量が削減される。また、冗長性を高めると、冗長符号の演算に必要な演算回路の大規模化および当該演算回路のコストの上昇を招き、結果として、ディスクアレイ装置の単価も上昇する。例えば、RAID1の構成は、冗長性が高く冗長演算がほぼ不要のため、高信頼性用途に用いられる。このRAID1は、同じデータを2台のディスク装置に記録する方式であり、これはミラーリングとも呼ばれる。ただしRAID1では、ミラーリングされた2台のディスク装置が共に故障するような事態が生じた場合、データ喪失が発生する可能性がある。例えば、12台のディスク装置でRAIDを構築する場合、RAID1構成では、ディスク装置が故障する確率をpとすると、6×p×pの確率でデータ喪失が発生する。これは、任意の2台のディスクの組み合わせ数72の内、ミラーリングされたディスクの組み合わせの6通りで故障が発生した場合のみ、データ喪失が発生することを意味している。以上のような複数のディスク装置の故障に対応するためには、非特許文献1の論文に基づく多冗長構成のディスクアレイを構築する必要がある。例えば、RAID6と呼ばれる方式では任意の2台のディスク装置に故障が発生しても、データを復旧することが可能である。ただし、RAID6の方式でも、3台以上のディスクで障害が発生した場合、データ喪失が発生する可能性がある。非特許文献1には、任意のm台のディスク装置に故障が発生しても、データの復元が可能なディスクアレイ装置の構成方法が示されている。より詳細には、非特許文献1では、ガロア拡大体を用いたリードソロモンReedSolomon符号に類似した方法で、冗長符号を付与する方法が示されている。図9は、非特許文献1に記載されている方法を、n台のデータを記録するディスク装置データディスク装置と、同じくn台の冗長符号を記録するディスク装置冗長ディスク装置を有するディスクアレイ装置に実装する方式を説明するための図である。図9において、ガロア拡大体の演算子Tは、ガロア拡大体の原子根に対応し、Tの添え字は他の根に対応する。また、非特許文献1およびリードソロモン符号では、ガロア拡大体の根に対応する演算子を、変換行列TおよびTのべき乗の形で表現する。図10は、非特許文献1に記載されている方法を6台のデータディスク装置に対して、6台の冗長ディスク装置を有するディスクアレイ装置に実装した場合の具体例である。図10に示すように、ガロア拡大体として、gf2^4を使用している。図11は、図10に示すように非特許文献1に記載されている方法をディスクアレイ装置に実装した場合の問題点を説明するための図である。図11においては、データディスク装置d1およびd6、および冗長ディスク装置c2、c3、c5、c6に障害が発生した場合のデータ復旧方法を示している。図11に示すように、冗長ディスク装置が故障している行については、元データの復元に当該冗長ディスク装置に記録されている冗長符号を利用できないため、冗長ディスク装置のある行を用いて、データの復旧を行っている。データの復旧を行うためには、冗長ディスク装置のある行と、故障したデータディスク装置のある行との交点にある演算子を抽出し、部分行列を求める。この求めた部分行列から逆行列を求めることで、故障したデータディスク装置のデータを求めることができる。しかし、図11に示すように、抽出した部分行列の各要素がすべてIとなっており、行列が非正則であるため、逆行列が求められない。即ち、データの復旧が行えなくなっている。このため非特許文献1に記載の方法に基づき、データの復旧が行えないという問題を回避するためには、符号化に用いるガロア拡大体を、より周期の長い体に変更する必要がある。例えば、gf2^8を用いれば、前述の問題は解決するがgf2^8は、gf2^4に比べ演算が複雑になり、装置の回路実装コストが高くなる、および演算負荷が高くなるという問題が発生する。本発明は、上記事情に鑑みてなされたものであり、その目的は、冗長符号の演算を行なう演算装置を低コストにすると共に、当該演算装置の演算負荷を小さくすることができるディスクアレイ装置およびディスクアレイ制御用プログラムを提供することにある。本発明は、上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有するディスクアレイ装置であって、前記第1ディスク装置と前記第2ディスク装置とをそれぞれ所定数有し、前記演算部で生成する冗長符号を生成する際に用いられる演算子の種類の数が前記第2ディスク装置の装置数より1つ以上少ないものであり、前記演算部は、前記第1ディスク装置および前記第2ディスク装置のうち、任意の前記所定数以下のディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を生成することを特徴とする。他の本発明は、上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有するディスクアレイ装置であって、前記第1ディスク装置と前記第2ディスク装置とをそれぞれ所定数有するディスクアレイ装置に、前記第1ディスク装置および前記第2ディスク装置のうち、任意の前記所定数以下のディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を前記第2ディスク装置の装置数より1つ以上少ない種類の数の演算子を用いて生成する機能を実現させるディスクアレイ制御用プログラムである。他の本発明は、上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有し、前記データと前記冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むディスクアレイ装置であって、前記演算部で生成する冗長符号を生成する際に用いられる演算子の種類の数が前記nより1つ以上少ないものであり、前記データを書き込んだ第1ディスク装置及び前記第2ディスク装置のうち、任意のn台以下の第1ディスク装置及び第2ディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を生成することを特徴とする。他の本発明は、上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有し、前記データと前記冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むディスクアレイ装置に、前記データを書き込んだ第1ディスク装置及び前記第2ディスク装置のうち、任意のn台以下の第1ディスク装置及び第2ディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を、前記nより1つ以上少ない種類の数の演算子を用いて生成する機能を実現させるディスクアレイ制御用プログラムである。本発明によると、冗長符号の演算を行なう演算装置を低コストにすると共に、当該演算装置の演算負荷を小さくすることができるディスクアレイ装置およびディスクアレイ制御用プログラムを提供できる。図1は、本発明を適用したディスクアレイ装置の構成を示す図である。同図に示すように、ディスクアレイ装置1は、RAIDコントローラ11、インタフェース111、演算部であるRAIDエンジン13、および複数のディスク装置1211~1243を有している。RAIDコントローラ11は内部エンジン経路131を介してRAIDエンジン13と通信可能に構成されている。また、RAIDコントローラ11はインタフェース111を介して上位装置例えば、サーバ:図示を省略する。と、内部ディスク経路121~124を介してディスク装置1211~1243とそれぞれ通信可能に接続されている。複数のディスク装置1211~1213,1221~1223,1231~1233及び1241~1243は、内部経路121,122,123及び124を介してそれぞれRAIコントローラ11に接続されている。RAIDコントローラ11は、ディスクアレイ装置1内の各装置を制御する。また、RAIDコントローラ11はインタフェース111を介して上位装置からコマンドを受信し、当該コマンドに応じた処理を実行する。例えば、上位装置からインタフェース111を介してライトコマンドを受信した場合、複数のディスク装置1211~1243のうちの所定のディスク装置データディスク装置又は第1ディスク装置ともいうへデータをライトすると共に所定のディスク装置へ当該データから演算した冗長符号を所定のディスク装置冗長ディスク装置又は第2ディスク装置ともいうへ書き込む。本実施の形態においては、データを書き込むディスク装置と、当該データから演算された冗長符号を書き込むディスク装置とは同数となるように構成されている。言い換えれば、データと冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むように構成されている。更に、RAIDコントローラ11は、冗長符号の演算および、ディスク故障時にデータ復旧処理を行なうためRAIDエンジン13を制御する。RAIDエンジン13は、例えば、LSILargeScaleIntegrationであり、内部エンジン経路131を介してRAIDコントローラ11からデータ、冗長符号データ、又は演算指示を受け取り、内部でRAID演算ガロア拡大体演算を実施する。RAIDエンジン13は、RAID演算を実施した後、当該演算結果を再び内部エンジン経路131を介してRAIDコントローラ11に送り返す。図2は、本発明で用いるRAID演算を実施するための冗長符号の演算行列を示している。なお、同図においては、演算子として、Tのべき乗を用いており、Tのべき乗がIと等しくならない限り拡張が可能である。例えば、gf2^4では、Tの15乗未満であれば独立であるため、Tの14乗までの実装、即ち、16台のデータディスクに対して、16台の冗長ディスクを付与する構成が可能である。図3は本実施の形態におけるディスクアレイ装置1が実行する、RAID演算の変換行列演算行列を示している。図3に示すように、変換行列は、演算子として単位演算子Iと、ガロア拡大体の根に対応する演算子TおよびTの2乗から4乗までの、5つの演算子のみで構成されている。これは、図10を参照して説明した従来技術の変換行列の演算子が11種類必要であったことに比べ、大幅に演算子の数が減少している。なお、この実施の形態では、上述のように大幅に演算子の数が減少しているが、演算子は、1つ以上少なくなるように構成すれば演算の負荷を減少する効果を得ることができる。また、図3においては、入力データd1~d6にベクトル変換を施し、冗長符号c1~c6を演算している。図4は、RAIDエンジン13の構成を示す図である。同図に示すように、RAIDエンジン13は、入出力インタフェース132、RAIDエンジン出力バス1321、RAIDバッファ133、RAIDエンジン内部バス1331~1336、演算行列134、RAID演算子13411~13466、RAID加算機1341~1346、演算格納バッファ13417~13467、RAID演算出力バス1351~1356、RAID演算出力バッファ135、および、RAIDエンジン出力バス1322を有している。なお、入出力インタフェース132は、内部エンジン経路131を介してRAIDコントローラ11と通信可能に接続されている。次に、RAIDエンジン13のRAID演算処理を説明する。RAIDエンジン13は、入出力インタフェース132を介してRAIDコントローラ11から受け取ったデータおよびコマンドをRAIDエンジン出力バス1321を介してRAIDバッファ133へ送付する。RAIDバッファ133は、受け取ったデータおよびコマンドを、RAIDエンジン内部バス1331~1336を介して演算行列134内部の、各RAID演算子13411~13466に送付する。RAID演算子13411~13466は、行列状に配置されており、RAIDエンジン内部バス1331~1336を用いて、同一列の演算子にデータをブロードキャストすることが可能である。RAID演算子13411~13466は、個々にガロア拡大体の演算子として機能する。RAIDエンジン内部バス1331~1336より入力されたデータに対して、各々固有の演算子を作用させ、その演算結果をRAIDエンジン加算機1341~1346に出力する。RAIDエンジン加算機1341~1346は、RAID演算子13411~13466から入力されたガロア拡大体の値を加算し、演算格納バッファ13417~13467に出力する。演算格納バッファ13417~13467は、RAIDエンジン加算機1341~1346から入力された演算結果をRAID演算出力バス1351~1356を介して、RAIDエンジン出力バッファ135に出力する。RAIDエンジン出力バッファ135は、RAIDエンジン出力バス1322を介して、入出力インタフェース132へ演算結果を出力する。入出力インタフェース132は、RAIDエンジン出力バッファ135から入力された演算結果をRAIDエンジン経路131経由でRAIDコントローラ11へ送付する。以上のように、RAID演算処理が実施される。なお、図4を参照して説明した変換行列は、6行6列の行列式の場合を示しているが、当該変換行列はあくまで一実施の形態であり、6行6列の行列式に固定されるものではない。また、図4においては、各RAID演算子13411~13466を、変換行列Tのべき乗の形で記述している。本実施の形態ではgf2^4のガロア拡大体を演算するロジックを想定しているが、これは、gf2^4のガロア拡大体のベクトル変換が、ガロア拡大体gf2^4の原始多項式x^4x1=0に基づく同伴行列Tとそのべき乗行列によって演算可能なことが、非特許文献1に示されているからである。また、本実施の形態では、ガロア拡大体2^4を用いているが、他のガロア拡大体を用いることも可能である。図5は、図4の各RAID演算子13411~13466の構成を示す図である。図5においては、一例として、RAID演算子13411の構成を示している。なお、他のRAID演算子13412~13466の構成は、RAID演算子13411の構成と同様であるため詳細な説明を省略する。図5に示すように、RAID演算子RO13411はガロア拡大体gf2^4上の演算子として、4行4列の変換行列RO2として表現される。RAID演算子ROは、入力バッファRO1、演算入力バスRO11~RO14、加算機RO21~RO24、出力バッファRO13、出力バスR131を有している。次に、RAID演算子RO13411の動作について説明する。図5に示すように、データは入力バスRO115を介して入力バッファRO1に入力される。ガロア拡大体gf2^4上では、データは4bitベクトルで表される。入力バッファRO1に入力されたデータは、演算子入力バスRO11~RO14を介して変換行列RO2に入力される。変換行列RO2は入力値を加算機RO21~RO24によりベクトル変換し、当該ベクトル変換した演算結果を出力バッファRO3に出力する。このように出力バッファRO3に加算機RO21~RO24から入力された演算結果は、出力バスRO131により、既述のRAIDエンジン加算機1341に出力される。以上のようにRAID演算子RO13411が動作する。なお、本実施の形態では、変換行列RO2としてガロア拡大体2^4の原始多項式x^4x1=0に基づく同伴行列Tを用いるが、この構成に限定されるものではない。次に、図6を参照して、本実施の形態におけるRAIDエンジン13が実行する冗長符号の演算方法の一例を説明する。同図においては、RAIDエンジン13は、データd1~d6の入力に対して、演算行列134で変換を行い、冗長符号c1~c6を演算し、この演算結果をRAIDコントローラ11へ出力するように構成されている。次に、図7を参照して、既述の図11を参照して説明した従来技術との対比を説明する。この対比を明確にするため、図11と同様に、データd1,d6と冗長符号c2,c3,c5,c6が障害で失われた場合に、当該データd1,d6と冗長符号c2,c3,c5,c6を復旧する方法で説明する。図7に示すように、RAIDエンジン13において、データd2,d3,d4,d5と冗長符号c1,c4が入力された場合、行列変換を行なって、データd1,d6を復旧することができ、この処理と同時に、冗長符号c2,c3,c5,c6を再計算する処理も実施することができる。以上のように構成されたディスクアレイ装置1によると、ディスクアレイ装置1によると、冗長符号を記録するディスク装置の装置数以下、n台ともいう。以下のディスク装置データディスク装置及び冗長ディスク装置のデータが喪失しても、当該データを復旧することが可能になる。他方、ディスクアレイ装置1は、いかなるn台の組み合わせ故障に対してもデータが保証できるため、RAID1構成よりも高い信頼性を保証することが可能である。また、ディスクアレイ装置1は、非特許文献1に記載されている方式より、冗長符号の演算が容易である。特に非特許文献1に記載されている方法では、ディスク装置の冗長度が大きくなると同時に、演算に採用するガロア拡大体も多値対応のものを使用する必要がある。これによりは、同方法では、実演算に対しては演算ビット数の増大となり、演算リソースを浪費する。これに対して、ディスクアレイ装置1は、必要なガロア拡大体を少ないビット数で表示可能であり、演算リソースを削減することが可能である。たとえば、データディスク装置6台、冗長符号ディスク装置6台で構成するディスクアレイ装置の場合、非特許文献1の論文の構成では、図11で示したように、ガロア拡大体としてgf2^5以上の符号を使用しなくてはならない。なぜならば図10の行列式から、周期16以上のガロア拡大体が必要であるからである。gf2^4のガロア拡大体の周期は15=2^4-1であるため、図10の実装には不十分である。また、この技術を実装した場合、ガロア拡大体の値がデータのビット幅に依存するため、gf2^8やgf2^16が用いられる。これらは、gf2^4に比べて、演算が複雑であり、計算リソースを浪費する。これに対して、ディスクアレイ装置1は、gf2^4を使用する場合でも、16台のデータディスク装置と16台の冗長符号ディスク装置まで実装可能であり、演算コストを大幅に削減することが可能である。他の実施の形態図8、本発明の他の実施の形態におけるディスクアレイ装置の構成を示す図である。なお、上述した実施の形態とは、RAIDコントローラ11の内部の構成が異なるのみであるため、他の構成については同一の符号を付し、詳細な説明は省略する。同図に示すように、RAIDコントローラ11は、RAIDプロセッサ112とRAIDエンジンプログラム1121を有している。RAIDエンジンプログラム1121は、既述のRAIDエンジン13が実施するRAID演算処理と同様な処理を行なうためのプログラムである。したがって、ディスクアレイ装置1は、RAIDプロセッサ112がRAIDエンジンプログラム1121を実行することにより、既述のRAIDエンジン13が実行するRAID演算処理を行なうようになっている。このように、RAIDプロセッサ112が、RAIDエンジンプログラム1121に従い、RAID演算処理を実施するように構成しても、ディスクアレイ装置1は、上述の実施の形態と同様な効果を奏することができる。なお、本発明は上述の実施の形態に限定されるものではなく、その実施に際して様々な変形が可能である。上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。付記1上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有するディスクアレイ装置であって、前記第1ディスク装置と前記第2ディスク装置とをそれぞれ所定数有し、前記演算部で生成する冗長符号を生成する際に用いられる演算子の種類の数が前記第2ディスク装置の装置数より1つ以上少ないものであり、前記演算部は、前記第1ディスク装置および前記第2ディスク装置のうち、任意の前記所定数以下のディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を生成することを特徴とするディスクアレイ装置。付記2上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有するディスクアレイ装置であって、前記第1ディスク装置と前記第2ディスク装置とをそれぞれ所定数有するディスクアレイ装置に、前記第1ディスク装置および前記第2ディスク装置のうち、任意の前記所定数以下のディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を前記第2ディスク装置の装置数より1つ以上少ない種類の数の演算子を用いて生成する機能を実現させるディスクアレイ制御用プログラム。付記3上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有し、前記データと前記冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むディスクアレイ装置であって、前記演算部で生成する冗長符号を生成する際に用いられる演算子の種類の数が前記nより1つ以上少ないものであり、前記データを書き込んだ第1ディスク装置及び前記第2ディスク装置のうち、任意のn台以下の第1ディスク装置及び第2ディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を生成することを特徴とするディスクアレイ装置。付記4上位装置から送信されるデータを書き込む第1ディスク装置と、前記第1ディスク装置に書き込むデータおよび演算子に基づいて冗長符号を生成する演算部と、前記演算部で生成した冗長符号を書き込む第2ディスク装置と、を有し、前記データと前記冗長符号とを2×n任意の自然数台のディスク装置にそれぞれ書き込むディスクアレイ装置に、前記データを書き込んだ第1ディスク装置及び前記第2ディスク装置のうち、任意のn台以下の第1ディスク装置及び第2ディスク装置のデータが消失した場合に当該消失したデータの復旧が可能である冗長符号を、前記nより1つ以上少ない種類の数の演算子を用いて生成する機能を実現させるディスクアレイ制御用プログラム。"