(57)【特許請求の範囲】
【請求項１】
ホスト装置から送信されるデータを冗長化してストレージに書き込むディスクアレイ装置であって、
前記データの読み出しに成功する確率、１回のデータ読出し要求の間に、前記ストレージにアクセスすることができる最大の回数、及び正常稼働状態にあるストレージの数に基づいて、同一のデータを保持するストレージの数を算出する第１の算出部と、
前記第１の算出部により算出された前記同一のデータを保持するストレージの数の前記ストレージに、前記データの書込み指示を行う書込み指示部
を備えることを特徴とするディスクアレイ装置。
【請求項２】
正常稼働状態にあるストレージの数をＮ、１台の前記ストレージに接続される子ストレージの数をｂ、ツリー構造の第１階層から最終階層までの数をｐ、前記最終階層のストレージの数をｑとして、
【数１】
0005429692.tif 000006
を満たすと共に、
前記同一のデータを保持するストレージの数をＩ、前記子ストレージのうち前記データを保持する子ストレージの数をａ、前記第１階層から前記最終階層のうち前記データを保持する子ストレージが存在する階層までの数をｒ、前記最終階層のストレージのうち前記データを保持する子ストレージの数をｓとして、
【数２】
0005429692.tif 000007
を満たすように、ツリー構造の第１階層から最終階層までの数ｐ、前記最終階層のストレージの数を加えた数ｑ、前記子ストレージのうち前記データを保持する子ストレージの数ａ、前記第１階層から前記最終階層のうち前記データを保持する子ストレージが存在する階層までの数ｒ、前記最終階層のストレージのうち前記データを保持する子ストレージの数ｓを算出する第２の算出部と、
１台の前記ストレージに接続される子ストレージの数ｂ、ツリー構造の第１階層から最終階層までの数ｐ、前記最終階層のストレージの数を加えた数ｑ、前記子ストレージのうち前記データを保持する子ストレージの数ａ、前記第１階層から前記最終階層のうち前記データを保持する子ストレージが存在する階層までの数ｒ、前記最終階層のストレージのうち前記データを保持する子ストレージの数ｓに基づいて、所定のストレージを頂点とし、前記同一のデータを保持するストレージにかかる負荷を分散させるようなツリー構造となる同一データ保持ツリー構造を作成するツリー構造作成部
を備え、
前記書込み部指示部は、
前記同一データ保持ツリー構造を参照して、前記所定のストレージに、前記データ及び前記データの書込みコマンドを送信し、
前記所定のストレージは、
前記書込みコマンドに基づいて、前記データを書き込むと共に、前記同一データ保持ツリー構造を参照して、前記所定のストレージに接続されている子ストレージのうち前記データを保持する子ストレージに前記データ及び前記データの書込みコマンドを送信する
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
前記ツリー構造作成部は、
前記所定のストレージのストレージＩＤに基づいて疑似乱数を発生させることにより、
当該所定のストレージによって作成される前記同一データ保持ツリー構造を一意に決定する
ことを特徴とする請求項２に記載のディスクアレイ装置。
【請求項４】
前記第１の算出部は、
前記ホスト装置がレスポンスタイムとして許容することができる最大の時間の情報、及び前記ストレージに対して１回のアクセスに要する時間の情報に基づいて、前記ストレージにアクセスすることができる最大の回数の情報を算出する
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項５】
ホスト装置から送信されるデータを冗長化してストレージに書き込むディスクアレイ装置の制御方法であって、
第１の算出部が、前記データの読み出しに成功する確率の情報、１回のデータ読出し要求の間に、前記ストレージにアクセスすることができる最大の回数の情報、及び正常稼働状態にあるストレージの数の情報に基づいて、同一のデータを保持するストレージの数の情報を算出する第１のステップと、
書込み指示部が、前記第１の算出部により算出された前記同一のデータを保持するストレージの数の前記ストレージに、前記データの書込み指示を行う第２のステップと
を備えることを特徴とするディスクアレイ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージに同一情報を保持させるディスクアレイ装置及びその制御方法に関する。
【背景技術】
【０００２】
情報技術の発展に伴い、ハードディスクドライブ等により構成されるストレージに蓄積されるデータ量は急激に増加している。特に、半永久的に保存するようなデータに関しては、データは増加する一方である。一方、ストレージの障害による大量のデータ消失は多大な損失を生じるため、障害対策としてデータの冗長化は、多くのディスクアレイ装置で採用されている。
【０００３】
従来のディスクアレイ装置におけるデータの冗長化には、主に次の２種類がある。すなわち、（１）全てのストレージに、同一データを保持させることによりデータを冗長化する方法、及び（２）一部のストレージにのみ同一データを保持させ、データに対しそれを保持するストレージを対応付けるための管理サーバを仲介させることによりデータを冗長化する方法である。
【０００４】
また、データを冗長化するディスクアレイ装置として、例えば、ストレージ、又はストレージのグループが属するストレージクラス毎に要求多重度を設定し、要求多重度に基づいてデータの冗長化を行うディスクアレイ装置が開示されている（例えば、特許文献１参照）。なお、ストレージクラスとは、データ、又はデータを格納する領域（ディレクトリ等）に対する入出力応答目標時間（ホストアクセス目標時間）やバックアップの有無等のストレージ属性のリストである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４１３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
（１）の方法は、ストレージにおける耐障害性が高く、サーバがどのストレージからもデータを得ることができるため、データ読み込み時のアクセスを分散することができるという利点がある。しかしながら、（１）の方法は、ストレージの数が増加するほど、データの書き込みに時間がかかる共に、全てのデータを冗長化するのでストレージのディスク使用量が大きくなることから、全体的なパフォーマンスが悪くなるという問題がある。
【０００７】
また、（２）の方法は、データの冗長化を一部のストレージに制限することにより、（１）の方法に比べて、データの書き込みに要する時間やストレージのディスク使用量を節約することができるという利点がある。しかしながら、（２）の方法は、アクセスが一時的に集中した場合に、サーバとストレージを仲介する管理サーバの負荷が急激に高まることや、管理サーバに障害が発生した場合にストレージにアクセスすることができなくなることから、管理サーバに対して障害対策を講じる必要が生じ、コストがかかるという問題がある。
【０００８】
さらに、特許文献１のディスクアレイ装置は、ホストアクセス目標時間やバックアップの有無等により要求多重度を設定してデータの冗長化を行っているが、このような要求多重度ではデータを冗長化するのに適切なストレージの台数を算出することができないおそれがある。データを冗長化するのに適切なストレージの台数以上にデータを保持することは、ストレージの負荷を増大させ、障害発生率を高める原因となるだけでなく、新たなデータを蓄積させるスペースを浪費するおそれがある。
【０００９】
本発明は以上の点を考慮してなされたものであり、信頼性を維持させつつ、データを蓄積させるスペースを増大させ得るディスクアレイ装置及びその制御方法を提案するものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するために本発明は、ホスト装置から送信されるデータを冗長化してストレージに書き込むディスクアレイ装置であって、前記データの読み出しに成功する確率の情報、１回のデータ読出し要求の間に、前記ストレージにアクセスすることができる最大の回数の情報、及び正常稼働状態にあるストレージの数の情報に基づいて、同一のデータを保持するストレージの数の情報を算出する第１の算出部と、前記第１の算出部により算出された前記同一のデータを保持するストレージの数の前記ストレージに、前記データの書込み指示を行う書込み指示部を備えることを特徴とする。
【００１１】
また、本発明は、ホスト装置から送信されるデータを冗長化してストレージに書き込むディスクアレイ装置の制御方法であって、第１の算出部が、前記データの読み出しに成功する確率の情報、１回のデータ読出し要求の間に、前記ストレージにアクセスすることができる最大の回数の情報、及び正常稼働状態にあるストレージの数の情報に基づいて、同一のデータを保持するストレージの数の情報を算出する第１のステップと、書込み指示部が、前記第１の算出部により算出された前記同一のデータを保持するストレージの数の前記ストレージに、前記データの書込み指示を行う第２のステップとを備えることを特徴とする。
【００１２】
従って、同一のデータを保持させるストレージの数を制限しつつも、データの読み出しに成功する確率の情報、１回のデータ読出し要求の間に、ストレージにアクセスすることができる最大の回数の情報、及び正常稼働状態にあるストレージの数の情報に関する要件を満たすディスクアレイ装置及びその制御方法を構築することができる。
【発明の効果】
【００１３】
本発明によれば、信頼性を維持させつつ、データを蓄積させるスペースを増大させ得るディスクアレイ装置及びその制御方法を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】ストレージシステムのハードウェア構成を示すブロック図の一例である。
【図２】コントローラ部５の機能的構成を示すブロック図の一例である。
【図３】同一データ保持ツリー構造作成処理手順を示すフローチャートの一例である。
【図４】同一データ保持ツリー構造を説明するための概念図の一例である。
【図５】データ書込み処理手順を示すフローチャートの一例である。
【図６】データ読出し処理手順を示すフローチャートの一例である。
【図７】他実施形態のディスクアレイ装置の構成を示すブロック図の一例である。
【図８】他実施形態のストレージシステムの構成を示すブロック図の一例である。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施の形態を、図面を参照して詳細に説明する。なお、これにより本発明が限定されるものではない。
【００１６】
図１は、本実施の形態によるストレージシステム１のハードウェア構成の一例を示している。ストレージシステム１は、複数のホスト装置２がネックワーク３を介してディスクアレイ装置４に接続されることにより構成されている。
【００１７】
ホスト装置２は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源、情報入力装置、情報出力装置（図示せず）を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ等として構成される。ネットワーク３は、例えば、ＬＡＮ（Local Area Network）、ＳＡＮ（Storage Area Network）、インターネット、専用回線、公衆回線等を場合に応じて適宜用いることができる。なお、ネットワーク３及びディスクアレイ装置４間には、サーバ装置を設けるようにしても良い。この場合、ホスト装置２は、ネットワーク３及びサーバ装置を仲介してディスクアレイ装置４にアクセスすることができる。
【００１８】
ディスクアレイ装置４は、例えば、コントローラ部５及び記憶部６により構成されている。ディスクアレイ装置４は、コントローラ部５を最低１つ備えている。コントローラ部５は、当該ディスクアレイ装置４全体を制御する。記憶部６は、ホスト装置２から送信されるデータを格納する複数のディスク装置７から構成されている。
【００１９】
コントローラ部５は、ホストインタフェース１１、ＣＰＵ１２、メモリ１３及びディスクインタフェース１４により構成されている。ホストインタフェース１１は、ホスト装置２とネットワーク３を介して接続され、ホスト装置２から送信される各種要求やデータの送受信を制御する。ホストインタフェース１１は、ネットワーク３の種類に応じた種々のインタフェースを用いることができる。
【００２０】
ＣＰＵ１２は、コントローラ部５ごとに１つ備えられる。ＣＰＵ１２は、コントローラ部５全体を制御し、ホストインタフェース１１から送信されるコマンドを解釈して、各構成要素に指示を送信する。メモリ１３は、ホスト装置２から受信したデータを一時的に格納する。また、メモリ１３は、コントローラ部５内部で使用する各種プログラムや、各種テーブルを格納する。
【００２１】
ディスクインタフェース１４は、記憶部６のディスク装置７と接続され、ホスト装置２から送信されるデータの送受信を制御する。ディスクインタフェース１４は、ファイバチャネル、ＳＡＳ（Serial Attached SCSI）、ＳＡＴＡ（Serial ATA）等の種類に応じた種々のインタフェースを用いることができる。
【００２２】
図２は、本実施の形態によるコントローラ部５の機能的構成の一例を示している。コントローラ部５は、例えば、ストレージアクセス手段２１（書込み指示部）、ストレージ認識手段２２（第１の算出部）、ストレージ決定手段２３（第１の算出部）、データ複製方法決定手段２４（第２の算出部）、ツリー構造作成手段２５（ツリー構造作成部）及びツリー構造設定情報記憶部２６により構成されている。ストレージ決定手段２３は、ユーザ要件設定手段３１、システム要件設定手段３２、最大アクセス回数算出手段３３及び限界値算出手段３４により構成されている。
【００２３】
ストレージアクセス手段２１、ストレージ認識手段２２、ストレージ決定手段２３、データ複製方法決定手段２４、ツリー構造作成手段２５は、主にＣＰＵ１２がメモリ１３に格納されるプログラムを実行し、各ハードウェアを制御することによって実現することができる。また、ツリー構造設定情報記憶部２６は、メモリ１３やディスク装置７を用いて実現することができる。
【００２４】
ストレージアクセス手段２１は、読書き要求に基づいて、ディスク装置７（ストレージ）にアクセスし、例えば、ホスト装置２から送信されるデータをストレージに書き込む一方、当該ストレージに格納されているデータを読み出してホスト装置２に送信する。
【００２５】
ストレージ認識手段２２は、ストレージアクセス手段２１を介して正常稼働状態にあるストレージの台数及び当該ストレージのストレージＩＤを認識する。ストレージ認識手段２２は、認識した正常稼働状態にあるストレージの台数情報及びストレージＩＤをストレージ決定手段２３、データ複製方法決定手段２４、及びツリー構造作成手段２５に送信する。ストレージ認識手段２２は、一定時間ごとにストレージの台数及びストレージＩＤの認識を行うため、正常稼働状態にあるストレージの台数及びストレージＩＤの変化を検出することができる。
【００２６】
ストレージ決定手段２３のユーザ要件設定手段３１は、ユーザの入力に基づいて、ホスト装置２がデータ読出し要求を送信したときに、ホスト装置２がレスポンスタイムとして許容することができる最大の時間の情報であるレスポンス許容時間情報、及びデータの読み出しに成功する確率（１００％未満）の情報である読出し成功確率情報を要件として設定する。
【００２７】
ストレージ決定手段２３のシステム要件設定手段３２は、ユーザの入力に基づいて、ストレージに対して１回のアクセスに要する時間の情報であるアクセス時間情報を要件として設定する。当該アクセス時間情報は、ストレージシステム１の構築時に測定される既知の値である。
【００２８】
ストレージ決定手段２３の最大アクセス回数算出手段３３は、ユーザ要件設定手段３１により設定されたレスポンス許容時間情報、及びシステム要件設定手段３２により設定されたアクセス時間情報に基づいて、１回のデータデータ読出しコマンドの間に、ストレージにアクセスすることができる最大の回数の情報である最大アクセス回数情報を算出する。
【００２９】
すなわち、レスポンス許容時間（ｓ）をｔ、アクセス時間（ｓ）をｋとすると、最大アクセス回数（回）であるｍは、以下の計算式により算出される。
【００３０】
【数１】
0005429692.tif 000002
【００３１】
ストレージ決定手段２３の限界値算出手段３４は、上記読出し成功確率情報、最大アクセス回数算出手段３３により算出された最大アクセス回数情報、及び正常稼働状態にあるストレージの台数情報に基づいて、同一のデータを保持するのに適切なストレージの台数の情報である同一データ保持ストレージ台数情報を算出する。
【００３２】
すなわち、読出し成功確率をＰ、最大アクセス回数（回）をｍ、正常稼働状態にあるストレージの台数をＮとすると、同一データ保持ストレージ台数であるＩは、以下の計算式を満たす最小の整数として算出される。
【００３３】
【数２】
0005429692.tif 000003
【００３４】
また、限界値算出手段３４は、算出したストレージ台数情報をデータ複製方法決定手段２４に送信する。
【００３５】
データ複製方法決定手段２４は、ユーザの入力により予め設定された、同一データ保持ツリー構造（後述）の分岐数情報、正常稼働状態にあるストレージの台数情報に基づいて、分岐した子ストレージ（後述）のうちデータを保持する子ストレージの数の情報、同一データ保持ツリー構造の階層数、同一データ保持ツリー構造の最終階層部分の要素数の情報を算出する。
【００３６】
すなわち、正常稼働状態にあるストレージの台数をＮ、同一データ保持ツリー構造の分岐数をｂとすると、分岐した子ストレージのうちデータを保持する子ストレージの数であるａ、同一データ保持ツリー構造の階層数であるｐ、同一データ保持ツリー構造の最終階層部分の要素数であるｑは、以下の計算式を満たす整数として算出される。但し、ａは、ｂ＞ａとなる整数である。
【００３７】
【数３】
0005429692.tif 000004
【００３８】
すなわち、データ複製方法決定手段２４は、１台のストレージに接続される子ストレージの数を、ツリー構造の第１階層から最終階層までの数で順にべき乗し、それぞれべき乗した数の総和に、最終階層部分のストレージの台数を加えた台数が、正常稼働状態にあるストレージの台数となるように、最終階層の数、最終階層のストレージの台数を算出する。
【００３９】
また、データ複製方法決定手段２４は、限界値算出手段３４により算出された同一データ保持ストレージ台数情報に基づいて、分岐した子ストレージのうちデータを保持する子ストレージの数の情報、同一データ保持ツリー構造の階層数のうちデータを保持する子ストレージが存在する階層の数の情報、同一データ保持ツリー構造の最終階層部分の要素数のうちデータを保持する要素数の情報を算出する。
【００４０】
すなわち、同一データ保持ストレージ台数をＩとすると、分岐した子ストレージのうちデータを保持する子ストレージの数ａ、同一データ保持ツリー構造の階層数ｐのうちデータを保持する子ストレージが存在する階層の数であるｒ、同一データ保持ツリー構造の最終階層部分の要素数ｑのうちデータを保持する要素数ｓは、以下の計算式を満たす整数として算出される。
【００４１】
【数４】
0005429692.tif 000005
【００４２】
すなわち、データ複製方法決定手段２４は、子ストレージのうちデータを保持する子ストレージの数を、第１階層から最終階層のうちデータを保持する子ストレージが存在する階層までの数で順にべき乗し、それぞれべき乗した数の総和に、最終階層のストレージのうちデータを保持する子ストレージの数を加えた数が、同一のデータを保持するストレージの数となるように、データを保持する子ストレージの数、最終階層のうちデータを保持する子ストレージが存在する階層、及び最終階層のストレージのうちデータを保持する子ストレージの数を算出する。
【００４３】
そして、データ複製方法決定手段２４は、ｂ及び算出されたａ、ｐ、ｑ、ｒ、ｓをツリー構造設定情報記憶部２６に記憶する。ａ、ｂ、ｐ、ｑ、ｒ、ｓは、同一データ保持ツリー構造を作成するために必要な情報（以下、ツリー構造設定情報と呼ぶ）である。
【００４４】
ツリー構造作成手段２５は、データ書込み時において、選択ストレージ（後述）又は子ストレージ（後述）から選択ストレージのストレージＩＤを受信すると、同一データ保持ツリー構造を作成する。
【００４５】
ここで、ツリー構造作成手段２５の同一データ保持ツリー構造作成処理について、図３のフローチャートを参照して説明する。ツリー構造作成手段２５は、選択ストレージ又は子ストレージから選択ストレージＩＤを受信すると（ステップＳＰ１）、ツリー構造設定情報記憶部２６に記憶されているツリー構造設定情報を読み出す（ステップＳＰ２）。
【００４６】
続いて、ツリー構造作成手段２５は、ツリー構造設定情報記憶部２６から読み出したツリー構造設定情報、又は子ストレージから受信したツリー構造設定情報に基づいて、ツリー構造を決定する（ステップＳＰ３）。続いて、ツリー構造作成手段２５は、受信した選択ストレージＩＤに基づいて、疑似乱数を発生させる（ステップＳＰ４）。
【００４７】
続いて、ツリー構造作成手段２５は、選択ストレージのストレージＩＤを頂点として決定したツリー構造にマッピングすると共に、発生させた疑似乱数に基づいて、ストレージ認識手段２２から受信した正常稼働状態にあるストレージのストレージＩＤをマッピングすることにより、同一データ保持ツリー構造を作成し（ステップＳＰ５）、同一データ保持ツリー構造作成処理を終了する（ステップＳＰ６）。
【００４８】
同一データ保持ツリー構造は、選択ストレージのストレージＩＤを頂点とし、当該ストレージＩＤから一意に決定する木構造を、擬似乱数を用いて作成される。同一データ保持ツリー構造は、選択ストレージＩＤ及び当該選択ストレージＩＤに基づく疑似乱数によって作成されるため、一意に決定される。同一データ保持ツリー構造は、ツリー構造設定情報が変更されるため、それに伴って作成し直される。
【００４９】
図４は、同一データ保持ツリー構造の分岐数であるｂが「３」、分岐した子ストレージのうちデータを保持する子ストレージの数であるａが「２」であるときの同一データ保持ツリー構造の一例を示している。同一データ保持ツリー構造では、親ストレージに対する子ストレージの数が一定であることから、１台のストレージにかかる複製における負荷を分散させることができる。
【００５０】
次に、データ書込み処理について、図５のフローチャートを参照して説明する。
【００５１】
ストレージアクセス手段２１は、ホスト装置２から書込み要求を受信すると、ランダムに所定のストレージ（以下、選択ストレージと呼ぶ）を選択し、当該選択ストレージに書込みコマンド及びデータを送信する（ステップＳＰ１１）。
【００５２】
選択ストレージは、書込みコマンド及びデータを受信すると、書込みコマンドに基づいて、データを自己の記憶領域に書き込むと共に、自己のストレージＩＤ（以下、選択ストレージＩＤと呼ぶ）をツリー構造作成手段２５に送信する（ステップＳＰ１２）。
【００５３】
ツリー構造作成手段２５は、選択ストレージから選択ストレージＩＤを受信すると、上述した同一データ保持ツリー構造作成処理を実行して、同一データ保持ツリー構造を作成し、当該同一データ保持ツリー構造、及びツリー構造設定情報記憶部２６から読み出したツリー構造設定情報を選択ストレージに返信する（ステップＳＰ１３）。
【００５４】
選択ストレージは、データの書込みを終了すると、ストレージアクセス手段２１に書込み終了コマンドを送信する（ステップＳＰ１４）。また、選択ストレージは、ツリー構造作成手段２５から受信した同一データ保持ツリー構造を参照し、同一データ保持ツリー構造における自己の位置を確認した上で、自己と接続されている下層のストレージ（以下、子ストレージと呼ぶ）のうちデータを複製する子ストレージに、書込みコマンド、データ、選択ストレージＩＤ、及びツリー構造作成手段２５から受信したツリー構造設定情報を送信する（ステップＳＰ１５）。
【００５５】
データを複製する子ストレージは、書込みコマンド、データ、選択ストレージＩＤ、及びツリー構造設定情報を受信すると、書込みコマンドに基づいて、データを自己の記憶領域に書き込むと共に、当該選択ストレージＩＤ及びツリー構造設定情報をツリー構造作成手段２５に送信する（ステップＳＰ１６）。
【００５６】
ツリー構造作成手段２５は、子ストレージから選択ストレージＩＤ及びツリー構造設定情報を受信すると、上述した同一データ保持ツリー構造作成処理を実行して、同一データ保持ツリー構造を作成し、当該同一データ保持ツリー構造を、子ストレージに返信する（ステップＳＰ１７）。
【００５７】
子ストレージは、ツリー構造作成手段２５から受信した同一データ保持ツリー構造を参照して、自己と接続されている下層のストレージ（以下、同様に子ストレージと呼ぶ）が存在するか否かをチェックする（ステップＳＰ１８）。
【００５８】
そして、子ストレージは、さらなる子ストレージが存在する場合（ステップＳＰ１８：ＹＥＳ）には、ステップＳＰ１５に戻り、この後、ステップＳＰ１５−ＳＰ１８の処理を繰り返す。これに対して、子ストレージは、さらなる子ストレージが存在しない場合（ステップＳＰ１８：ＮＯ）には、データ書込み処理を終了する（ステップＳＰ１９）。
【００５９】
次に、データ読出し処理について、図６のフローチャートを参照して説明する。
【００６０】
ストレージアクセス手段２１は、ホスト装置２から読出し要求を受信すると、ストレージ決定手段２３の最大アクセス回数算出手段３３から最大アクセス回数情報を読み出す（ステップＳＰ２１）。
【００６１】
続いて、ストレージアクセス手段２１は、ストレージのうち今まで選択されていないストレージをランダムに選択し、当該選択されたストレージに読出しコマンドを送信する（ステップＳＰ２２）。
【００６２】
選択されたストレージは、読出しコマンドを受信すると、読出しコマンドに基づいて、対応するデータが自己の記憶領域に存在するか否かをチェックする（ステップＳＰ２３）。そして、選択されたストレージは、対応するデータが自己の記憶領域に存在しない場合（ステップＳＰ２３：ＮＯ）には、対応するデータが存在しない旨をストレージアクセス手段２１に送信する（ステップＳＰ２４）。
【００６３】
ストレージアクセス手段２１は、対応するデータが存在しない旨を受信すると、ストレージとのアクセス数が、最大アクセス回数算出手段３３から受信した最大アクセス回数情報の最大アクセス回数を超えたか否かをチェックする（ステップＳＰ２５）。
【００６４】
そして、ストレージアクセス手段２１は、ストレージとのアクセス数が最大アクセス回数を超えていない場合（ステップＳＰ２５：ＮＯ）には、ステップＳＰ２２に戻り、この後、ステップＳＰ２２−ＳＰ２５の処理を繰り返す。
【００６５】
これに対して、ストレージアクセス手段２１は、ストレージとのアクセス数が最大アクセス回数を超えた場合（ステップＳＰ２５：ＹＥＳ）には、読出しコマンドに対応するデータが存在しない旨を対応するホスト装置２に送信し（ステップＳＰ２６）、データ読出し処理を終了する（ステップＳＰ２９）。
【００６６】
一方、選択されたストレージは、対応するデータが自己の記憶領域に存在する場合（ステップＳＰ２３：ＹＥＳ）には、当該対応するデータをトレージアクセス手段２１に送信する（ステップＳＰ２７）。そして、ストレージアクセス手段２１は、選択されたストレージから受信した読出しコマンドに対応するデータを、対応するホスト装置２に送信して（ステップＳＰ２７）、データ読出し処理を終了する（ステップＳＰ２８）。
【００６７】
なお、読出しコマンドに対応するデータが存在しない旨を対応するホスト装置２に送信する場合には、実際にストレージに対応するデータが存在しないのか、記憶領域に対応するデータが存在しているストレージアクセスすることができなかったのかを区別することができない。しかしながら、上述のような事象が発生する確率は、ユーザ要件設定手段３１により読出し成功確率情報の読出し成功確率を満たす範囲にとどまるため、ユーザ環境に対する影響が極めて少ない。
【００６８】
このようにして、コントローラ部５は、ストレージ決定手段２３が、データの読み出しに成功する確率の情報、１回のデータ読出し要求の間に、ストレージにアクセスすることができる最大の回数の情報、及び正常稼働状態にあるストレージの台数の情報を算出し、ストレージアクセス手段２１が、同一のデータを保持するのに適切なストレージの台数のストレージに、データを書き込む。
【００６９】
従って、同一のデータを保持させるストレージの台数を制限しつつも、データの読み出しに成功する確率の情報、１回のデータ読出し要求の間に、ストレージにアクセスすることができる最大の回数の情報、及び正常稼働状態にあるストレージの台数の情報に関する要件を満たすコントローラ部５を構築することができる。
【００７０】
すなわち、コントローラ部５は、ストレージの冗長構造を保ちながらも、ストレージの記憶領域の使用量を抑えることができる。また、コントローラ部５は、ストレージの冗長構造を、レスポンス許容時間情報及び読出し成功確率情報を満たす限界値を用いて最適化することができる。
【００７１】
さらに、コントローラ部５は、ストレージ間でのデータ複製過程において、同一データ保持ツリー構造を利用することにより、データ複製処理における負荷を一定の値以下に分散することができる。この場合、コントローラ部５は、１台１台データの複製を行う場合に比して、複製処理の効率を上げることができる。
【００７２】
さらに、コントローラ部５は、レスポンス許容時間情報及び読出し成功確率情報に変更があった場合にも、変更が所定の範囲内であれば、ディスクアレイ装置の装置構成を変更することなく、複製するストレージの台数を変更することによって対応することができる。
【００７３】
なお、本発明は、図７に示すように、ストレージにアクセスするコントローラ部５が複数台存在し、当該コントローラ部５の負荷を調整するロードバランサ（ＬＢ）４１によって、ホスト装置２から送信される各種要求の負荷分散が行われるディスクアレイ装置においても適用することができる。
【００７４】
また、本発明は、図８に示すように、インターネットに接続されたＬＡＮ内部に、本実施形態のディスクアレイ装置４、又はロードバランサ４１によって負荷分散が行われるディスクアレイ装置を複数構築することができる。本発明は、上述のようにディスクアレイ装置を複数構築することにより、ユーザがインターネットを介して、電子化され、半永久的に保存される書籍やニュースのアーカイブなどにアクセスするストレージシステムに有効となる。
【００７５】
さらに、本発明は、ＣＰＵ１２が、ディスク装置７に対して、ＲＡＩＤ（Redundant Arrays of Independent Disks）制御を行うことにより、ディスクアレイ装置４の信頼性、可用性及び性能を向上させる。この場合、ＣＰＵ１２は、ディスク装置７をＲＡＩＤ方式で運用する。ＣＰＵ１２は、１又は複数のディスク装置７により提供される物理的な記憶領域（ＲＡＩＤグループ）上に、１又は複数の論理的なボリュームを設定する。そして、データは、このボリューム内に所定の大きさのブロック単位で記憶される。
【産業上の利用可能性】
【００７６】
本発明は、複数のストレージに同一のデータを保持させる、冗長構造のディスクアレイ装置に適用することができる。
【符号の説明】
【００７７】
１……ストレージシステム、２……ホスト装置、３……ネットワーク、４……ディスクアレイ装置、５……コントローラ部、６……記憶部、７……ディスク装置、１１……ホストインタフェース、１２……ＣＰＵ、１３……メモリ、１４……ディスクインタフェース、２１……ストレージアクセス手段、２２……ストレージ認識手段、２３……ストレージ決定手段、２４……データ複製方法決定手段、２５……ツリー構造作成手段、２６……ツリー構造設定情報記憶部、３１……ユーザ要件設定手段、３２……システム要件設定手段、３３……最大アクセス回数算出手段、３４……限界値算出手段、４１……ロードバランサ
【図１】
0005429692.tif 000008
【図２】
0005429692.tif 000009
【図３】
0005429692.tif 000010
【図４】
0005429692.tif 000011
【図５】
0005429692.tif 000012
【図６】
0005429692.tif 000013
【図７】
0005429692.tif 000014
【図８】
0005429692.tif 000015