JPH07261945A - ディスクアレイ装置およびディスクアレイの区分け方法 - Google Patents
ディスクアレイ装置およびディスクアレイの区分け方法Info
- Publication number
- JPH07261945A JPH07261945A JP6072655A JP7265594A JPH07261945A JP H07261945 A JPH07261945 A JP H07261945A JP 6072655 A JP6072655 A JP 6072655A JP 7265594 A JP7265594 A JP 7265594A JP H07261945 A JPH07261945 A JP H07261945A
- Authority
- JP
- Japan
- Prior art keywords
- data
- group
- parity
- drive
- disk array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
(57)【要約】
【目的】RAIDレベルやパリティグループの構成ごと
に異なる特性、例えばデータ消失確率や障害時の性能低
下の度合に応じて、分散して障害回復処理を行うディス
クアレイ装置、およびディスクアレイの区分け方法を提
供することを目的とする。 【構成】ディスクアレイを構成するドライブの論理グル
ープに、複数の種類のパリティグループが混在するよう
にする。障害回復処理は、データ消失する確率が高く、
障害時の性能低下が大きいパリティグループから、回復
処理を行う時間を分散して順次行う。 【効果】分散して回復処理を行っても、回復処理を行う
毎にデータ消失確率は低下し、また、障害時の性能低下
も解消していく。これにより、分散して回復処理が可能
となり、回復処理により長時間システムを停止する必要
がない。
に異なる特性、例えばデータ消失確率や障害時の性能低
下の度合に応じて、分散して障害回復処理を行うディス
クアレイ装置、およびディスクアレイの区分け方法を提
供することを目的とする。 【構成】ディスクアレイを構成するドライブの論理グル
ープに、複数の種類のパリティグループが混在するよう
にする。障害回復処理は、データ消失する確率が高く、
障害時の性能低下が大きいパリティグループから、回復
処理を行う時間を分散して順次行う。 【効果】分散して回復処理を行っても、回復処理を行う
毎にデータ消失確率は低下し、また、障害時の性能低下
も解消していく。これにより、分散して回復処理が可能
となり、回復処理により長時間システムを停止する必要
がない。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
などに適用して好適なディスクファイルシステムに関
し、特に、高性能な入出力動作を可能とするディスクア
レイ装置およびディスクアレイの区分け方法に関する。
などに適用して好適なディスクファイルシステムに関
し、特に、高性能な入出力動作を可能とするディスクア
レイ装置およびディスクアレイの区分け方法に関する。
【0002】
【従来の技術】現在のコンピュータシステムにおいて
は、CPUなどの上位側が必要とするデ−タは2次記憶
装置に格納され、CPUなどが必要とするときに応じて
2次記憶装置に対してデ−タの書き込みおよび読み出し
を行っている。この2次記憶装置としては、一般に不揮
発な記憶媒体が使用され、代表的なものとして磁気ディ
スク装置(以下、ドライブとする)や、光ディスクなど
があげられる。
は、CPUなどの上位側が必要とするデ−タは2次記憶
装置に格納され、CPUなどが必要とするときに応じて
2次記憶装置に対してデ−タの書き込みおよび読み出し
を行っている。この2次記憶装置としては、一般に不揮
発な記憶媒体が使用され、代表的なものとして磁気ディ
スク装置(以下、ドライブとする)や、光ディスクなど
があげられる。
【0003】近年高度情報化に伴い、コンピュータシス
テムにおいて、この種の2次記憶装置の高性能化が要求
されてきた。その一つの解として、多数の比較的容量の
小さなドライブにより構成されるディスクアレイが考え
られている。
テムにおいて、この種の2次記憶装置の高性能化が要求
されてきた。その一つの解として、多数の比較的容量の
小さなドライブにより構成されるディスクアレイが考え
られている。
【0004】公知の文献として、「D.Patterson,G.Gibs
on,and R.H.Kartz;A Case for Redundant Arrays of In
expensive Disks(RAID),in ACM SIGMOD Conference,Chi
cago,IL,(June1988)」がある。この文献においては、デ
ータを二重化するディスクアレイ(レベル1)と、デー
タを分割して並列に処理を行うディスクアレイ(レベル
3)と、データを分散して独立に扱うディスクアレイ
(レベル4、5)について、その性能および信頼性の検
討結果が報告されている。現在この論文に書かれている
方式が、最も一般的なディスクアレイと考えられてい
る。
on,and R.H.Kartz;A Case for Redundant Arrays of In
expensive Disks(RAID),in ACM SIGMOD Conference,Chi
cago,IL,(June1988)」がある。この文献においては、デ
ータを二重化するディスクアレイ(レベル1)と、デー
タを分割して並列に処理を行うディスクアレイ(レベル
3)と、データを分散して独立に扱うディスクアレイ
(レベル4、5)について、その性能および信頼性の検
討結果が報告されている。現在この論文に書かれている
方式が、最も一般的なディスクアレイと考えられてい
る。
【0005】まず、レベル3のディスクアレイについて
簡単に説明する。レベル3のディスクアレイでは、上位
から与えられた1つのデータを分割し、複数のドライブ
に振り分けて格納する。そのデータを読み出す場合は、
複数のドライブから分割されたデータ片を集めて結合
し、上位へ転送する。このため、レベル3では複数ドラ
イブでの並列処理が可能となり、転送速度の向上を図る
ことができる。
簡単に説明する。レベル3のディスクアレイでは、上位
から与えられた1つのデータを分割し、複数のドライブ
に振り分けて格納する。そのデータを読み出す場合は、
複数のドライブから分割されたデータ片を集めて結合
し、上位へ転送する。このため、レベル3では複数ドラ
イブでの並列処理が可能となり、転送速度の向上を図る
ことができる。
【0006】次に、データを分割せずに個々のデータを
分散して、独立に扱うディスクアレイ(レベル5)につ
いて説明する。レベル4は、レベル5においてディスク
アレイを構成する各ドライブに分散しているパリティ
を、パリティのみを格納する1台のドライブに格納する
ようにしたものである。
分散して、独立に扱うディスクアレイ(レベル5)につ
いて説明する。レベル4は、レベル5においてディスク
アレイを構成する各ドライブに分散しているパリティ
を、パリティのみを格納する1台のドライブに格納する
ようにしたものである。
【0007】レベル4、5のディスクアレイでは、個々
のデータを分割せずに独立に扱い、多数の比較的容量の
小さなドライブに分散して格納する。現在、一般に使用
されている汎用大型コンピュータシステムの2次記憶装
置では、1ドライブ当りの容量が大きいため、他の読み
出し/書き込み要求に当該ドライブが使用されて、その
ドライブを使用できずに待たされることが多く発生し
た。このレベル5(または4)のディスクアレイでは、
汎用大型コンピュータシステムの2次記憶装置で使用さ
れている大容量のドライブを、多数の比較的容量の小さ
なドライブで構成し、データを分散して格納してあるた
め、読み出し/書き込み要求が増加してもディスクアレ
イの複数のドライブで分散して処理することが可能とな
り、読み出し/書き込み要求が待たされることが減少す
る。
のデータを分割せずに独立に扱い、多数の比較的容量の
小さなドライブに分散して格納する。現在、一般に使用
されている汎用大型コンピュータシステムの2次記憶装
置では、1ドライブ当りの容量が大きいため、他の読み
出し/書き込み要求に当該ドライブが使用されて、その
ドライブを使用できずに待たされることが多く発生し
た。このレベル5(または4)のディスクアレイでは、
汎用大型コンピュータシステムの2次記憶装置で使用さ
れている大容量のドライブを、多数の比較的容量の小さ
なドライブで構成し、データを分散して格納してあるた
め、読み出し/書き込み要求が増加してもディスクアレ
イの複数のドライブで分散して処理することが可能とな
り、読み出し/書き込み要求が待たされることが減少す
る。
【0008】次に、ディスクアレイにおけるパリティに
ついて説明する。ディスクアレイは従来の大容量のドラ
イブを、比較的容量の小さな多数のドライブで構成する
ため、部品点数が増加し障害が発生する確率が高くな
る。このため、ディスクアレイでは、パリティを用意す
る。
ついて説明する。ディスクアレイは従来の大容量のドラ
イブを、比較的容量の小さな多数のドライブで構成する
ため、部品点数が増加し障害が発生する確率が高くな
る。このため、ディスクアレイでは、パリティを用意す
る。
【0009】図5はレベル5(レベル4でも同様)にお
けるパリティの作成方法を示し、図3は従来のディスク
アレイのレベル5におけるこれらのデータおよびパリテ
ィの格納状態を示す。
けるパリティの作成方法を示し、図3は従来のディスク
アレイのレベル5におけるこれらのデータおよびパリテ
ィの格納状態を示す。
【0010】図5に示すように、パリティ(Parit
y)は、データ#1(Data#1)からデータ#5
(Data#5)の各データ間で、対応する各ビット毎
に排他的論理和をとることにより、作成される。このよ
うにして作成されたパリティは、このパリティの作成に
関与したデータが格納されているドライブ以外のドライ
ブに格納される。
y)は、データ#1(Data#1)からデータ#5
(Data#5)の各データ間で、対応する各ビット毎
に排他的論理和をとることにより、作成される。このよ
うにして作成されたパリティは、このパリティの作成に
関与したデータが格納されているドライブ以外のドライ
ブに格納される。
【0011】具体的には、図3に示すように、各々独立
したデータ#1からデータ#5は、ドライブ#1からド
ライブ#6の何れかのドライブにそれぞれ格納され、こ
れらのデータから作成されたパリティは、それらのデー
タが格納されたドライブ以外のドライブに格納されてい
る。
したデータ#1からデータ#5は、ドライブ#1からド
ライブ#6の何れかのドライブにそれぞれ格納され、こ
れらのデータから作成されたパリティは、それらのデー
タが格納されたドライブ以外のドライブに格納されてい
る。
【0012】なお、図3はレベル5のディスクアレイを
示しているので、パリティは6台のドライブ#1〜#6
に分散されて格納される。レベル4では、1台のドライ
ブにパリティを格納するから、例えば、ドライブ#6に
まとめてパリティを格納することになる。
示しているので、パリティは6台のドライブ#1〜#6
に分散されて格納される。レベル4では、1台のドライ
ブにパリティを格納するから、例えば、ドライブ#6に
まとめてパリティを格納することになる。
【0013】図3において、ディスクアレイを構成する
ドライブ#1から#6を論理グループと呼ぶ。また、論
理グループ内で、パリティを作成するデータの集合(図
5においては、データ#1〜#5)とこれらのデータか
ら作成されたパリティとを合わせたデータの集合をパリ
ティグループと呼ぶ。図3では、6台のドライブ#1〜
#6により論理グループが構成され、この論理グループ
内の全パリティグループは5個のデータと1個のパリテ
ィで構成されている。
ドライブ#1から#6を論理グループと呼ぶ。また、論
理グループ内で、パリティを作成するデータの集合(図
5においては、データ#1〜#5)とこれらのデータか
ら作成されたパリティとを合わせたデータの集合をパリ
ティグループと呼ぶ。図3では、6台のドライブ#1〜
#6により論理グループが構成され、この論理グループ
内の全パリティグループは5個のデータと1個のパリテ
ィで構成されている。
【0014】論理グループを構成するドライブ#1から
#6の任意の1台のドライブに障害が発生した場合、障
害が発生したドライブ内の各データは、正常なドライブ
のデータを用いて復元することができる。すなわち、障
害が発生したドライブ内の各データが所属するパリティ
グループ毎に、正常なドライブ内のデータとパリティと
の排他的論理和をとれば、障害が発生したドライブ内の
各データを復元することができる。
#6の任意の1台のドライブに障害が発生した場合、障
害が発生したドライブ内の各データは、正常なドライブ
のデータを用いて復元することができる。すなわち、障
害が発生したドライブ内の各データが所属するパリティ
グループ毎に、正常なドライブ内のデータとパリティと
の排他的論理和をとれば、障害が発生したドライブ内の
各データを復元することができる。
【0015】一方、特開平5−257611号には、論
理グループを複数の領域(パーティション)に分け、こ
のように分割した各領域に対し、異なるRAIDのレベ
ルを設定する方法が開示されている。この方法では、例
えば、論理グループを6台のドライブで構成した場合、
各領域は6台のドライブにまたがるか、または各ドライ
ブ毎に6個の領域に分割する。そして、そのような領域
を用いて論理ユニットを構成することにより、単一のデ
ィスクドライブセット上に複数の論理ユニットを構成す
る。
理グループを複数の領域(パーティション)に分け、こ
のように分割した各領域に対し、異なるRAIDのレベ
ルを設定する方法が開示されている。この方法では、例
えば、論理グループを6台のドライブで構成した場合、
各領域は6台のドライブにまたがるか、または各ドライ
ブ毎に6個の領域に分割する。そして、そのような領域
を用いて論理ユニットを構成することにより、単一のデ
ィスクドライブセット上に複数の論理ユニットを構成す
る。
【0016】
【発明が解決しようとする課題】従来のディスクアレイ
では以下に示す2つの問題点が生じる。
では以下に示す2つの問題点が生じる。
【0017】まず、第1の問題点は、可用性に関してで
ある。ディスクアレイでは、ある論理グループ内の任意
の1台のドライブに障害が発生しても、パリティにより
回復することが可能なため、データ消失とはならない。
しかし、1台目の障害ドライブを回復する前に、同一論
理グループにおいて残りの任意のドライブで障害が発生
した場合、パリティによる回復は不可能でありデータ消
失となる。
ある。ディスクアレイでは、ある論理グループ内の任意
の1台のドライブに障害が発生しても、パリティにより
回復することが可能なため、データ消失とはならない。
しかし、1台目の障害ドライブを回復する前に、同一論
理グループにおいて残りの任意のドライブで障害が発生
した場合、パリティによる回復は不可能でありデータ消
失となる。
【0018】このため、論理グループを構成するドライ
ブ数(パリティグループを構成するデータ数)が多い
と、2台目の障害が発生する確率が高くなり、データ消
失を起こす確率が高くなる。そこで、このようなデータ
消失を避けるため、ドライブに障害が発生した場合、ど
んなに重要な処理を行っていても、その処理を中止し、
なるべく早くデータ回復を行なう必要がある。
ブ数(パリティグループを構成するデータ数)が多い
と、2台目の障害が発生する確率が高くなり、データ消
失を起こす確率が高くなる。そこで、このようなデータ
消失を避けるため、ドライブに障害が発生した場合、ど
んなに重要な処理を行っていても、その処理を中止し、
なるべく早くデータ回復を行なう必要がある。
【0019】特願平3−94728号では、パリティグ
ループで2個のパリティを設け、1台のドライブに障害
が発生した場合と2台のドライブに障害が発生した場合
とで、回復処理を行う仕方を変える方法が開示されてい
る。これは、論理グループにおいて、1台目のドライブ
に障害が発生した場合は、もう1台ドライブが壊れても
データ消失にならないため比較的ゆっくり回復処理を行
ない、2台のドライブに障害が発生した場合は、もう1
台のドライブに障害が発生するとデータ消失になるため
早急に回復処理を行なうようにしたものである。
ループで2個のパリティを設け、1台のドライブに障害
が発生した場合と2台のドライブに障害が発生した場合
とで、回復処理を行う仕方を変える方法が開示されてい
る。これは、論理グループにおいて、1台目のドライブ
に障害が発生した場合は、もう1台ドライブが壊れても
データ消失にならないため比較的ゆっくり回復処理を行
ない、2台のドライブに障害が発生した場合は、もう1
台のドライブに障害が発生するとデータ消失になるため
早急に回復処理を行なうようにしたものである。
【0020】この方法では、1台のドライブ障害では早
急な回復を行わなくても済むため、可用性は向上する。
しかし、論理グループを構成する全てのパリティグルー
プに対し一律に2個ずつのパリティを用意しなければな
らないため、パリティのために使用する容量がさらに1
ドライブ分必要となり、コストアップとなる。
急な回復を行わなくても済むため、可用性は向上する。
しかし、論理グループを構成する全てのパリティグルー
プに対し一律に2個ずつのパリティを用意しなければな
らないため、パリティのために使用する容量がさらに1
ドライブ分必要となり、コストアップとなる。
【0021】今後、ディスクアレイの有力な適用先であ
るファイルサーバでは、大規模化が進み、1台のファイ
ルサーバを多数のユーザが使用するようになる。このよ
うな環境では、ファイルサーバに対し、高い可用性が要
求されるため、ドライブに障害が発生しても、すぐに長
時間ディスクアレイを停止してデータ回復を行なうこと
が難しくなる。さらに、ファイルサーバでは、このよう
な可用性に対し払うコストをなるべく低くする必要があ
る。
るファイルサーバでは、大規模化が進み、1台のファイ
ルサーバを多数のユーザが使用するようになる。このよ
うな環境では、ファイルサーバに対し、高い可用性が要
求されるため、ドライブに障害が発生しても、すぐに長
時間ディスクアレイを停止してデータ回復を行なうこと
が難しくなる。さらに、ファイルサーバでは、このよう
な可用性に対し払うコストをなるべく低くする必要があ
る。
【0022】第2の問題点は、障害時の性能低下に関し
てである。先に述べたように、ディスクアレイでは、パ
リティグループにおいて1個のパリティを用意した場
合、論理グループ内の1台のドライブの障害に対して
は、この障害が発生したドライブ内のデータはパリティ
グループ単位で残りの正常なドライブ内のデータおよび
パリティにより回復することが可能である。この機能を
使用し、論理グループ内の任意のドライブに障害が発生
し、この障害が発生したドライブ内のデータに対しCP
Uから読み出しまたは書き込み要求が発行された場合、
回復処理の機能を用いることで、受け付けることが可能
である。
てである。先に述べたように、ディスクアレイでは、パ
リティグループにおいて1個のパリティを用意した場
合、論理グループ内の1台のドライブの障害に対して
は、この障害が発生したドライブ内のデータはパリティ
グループ単位で残りの正常なドライブ内のデータおよび
パリティにより回復することが可能である。この機能を
使用し、論理グループ内の任意のドライブに障害が発生
し、この障害が発生したドライブ内のデータに対しCP
Uから読み出しまたは書き込み要求が発行された場合、
回復処理の機能を用いることで、受け付けることが可能
である。
【0023】具体的には、CPUから障害ドライブのデ
ータの読み出し要求が発行された場合は、当該論理グル
ープ内の正常なドライブの全てのデータとパリティとか
ら障害ドライブ内の当該データを復元し、CPUへ転送
する。また、CPUから障害ドライブ内に書き込み要求
が発行された場合は、読み出しと同様に当該パリティグ
ループ内の正常なドライブの全てのデータと書き込みデ
ータとからパリティを作成し、パリティが格納されてい
るドライブに格納することで、パリティの更新を行な
う。
ータの読み出し要求が発行された場合は、当該論理グル
ープ内の正常なドライブの全てのデータとパリティとか
ら障害ドライブ内の当該データを復元し、CPUへ転送
する。また、CPUから障害ドライブ内に書き込み要求
が発行された場合は、読み出しと同様に当該パリティグ
ループ内の正常なドライブの全てのデータと書き込みデ
ータとからパリティを作成し、パリティが格納されてい
るドライブに格納することで、パリティの更新を行な
う。
【0024】このように、回復処理を行なう前に障害が
発生したドライブへ読み出しまたは書き込み要求が発行
されると、論理グループ内の全てのドライブに対し読み
出し要求が発行されるため、大きく性能が低下する。特
に、論理グループを構成するドライブ数(パリティグル
ープを構成するデータ数)が多いほど、発行される読み
出し要求の数が増えるため、性能低下が大きくなる。
発生したドライブへ読み出しまたは書き込み要求が発行
されると、論理グループ内の全てのドライブに対し読み
出し要求が発行されるため、大きく性能が低下する。特
に、論理グループを構成するドライブ数(パリティグル
ープを構成するデータ数)が多いほど、発行される読み
出し要求の数が増えるため、性能低下が大きくなる。
【0025】一方、上述の特開平5−257611号の
方法によれば、論理グループを構成する複数のドライブ
に異なるRAIDレベルの複数の論理ユニットを構成す
ることが可能である。
方法によれば、論理グループを構成する複数のドライブ
に異なるRAIDレベルの複数の論理ユニットを構成す
ることが可能である。
【0026】しかし、1つの論理グループ中に、例え
ば、5つのデータと1つのパリティとからなるパリティ
グループ、3つのデータと1つのパリティとからなるパ
リティグループ、5つのデータと2つのパリティとから
なるパリティグループなど、種々の構成のパリティグル
ープを混在させることはできないという問題がある。ま
た、障害回復は論理グループを単位として行うので、論
理グループ中に設定した種々のRAIDレベルの複数の
論理ユニットに対し、各RAIDレベルの特性(データ
消失確率、障害時の性能)に応じた障害回復処理を行う
ことなども示されていない。
ば、5つのデータと1つのパリティとからなるパリティ
グループ、3つのデータと1つのパリティとからなるパ
リティグループ、5つのデータと2つのパリティとから
なるパリティグループなど、種々の構成のパリティグル
ープを混在させることはできないという問題がある。ま
た、障害回復は論理グループを単位として行うので、論
理グループ中に設定した種々のRAIDレベルの複数の
論理ユニットに対し、各RAIDレベルの特性(データ
消失確率、障害時の性能)に応じた障害回復処理を行う
ことなども示されていない。
【0027】本発明の目的は、ディスクアレイの改良に
ある。また、本発明の目的は、1つの論理グループ中に
種々の構成のパリティグループを混在させることのでき
るディスクアレイ装置およびディスクアレイの区分け方
法を提供することにある。さらに、本発明の目的は、R
AIDレベルやパリティグループの構成ごとに異なる特
性、例えばデータ消失確率や障害時の性能低下の度合に
応じて、分散して障害回復処理を行うディスクアレイ装
置およびディスクアレイの区分け方法を提供することに
ある。
ある。また、本発明の目的は、1つの論理グループ中に
種々の構成のパリティグループを混在させることのでき
るディスクアレイ装置およびディスクアレイの区分け方
法を提供することにある。さらに、本発明の目的は、R
AIDレベルやパリティグループの構成ごとに異なる特
性、例えばデータ消失確率や障害時の性能低下の度合に
応じて、分散して障害回復処理を行うディスクアレイ装
置およびディスクアレイの区分け方法を提供することに
ある。
【0028】
【課題を解決するための手段】本発明は、論理グループ
を構成する複数台のドライブを含むディスク装置と、該
ディスク装置を管理する制御装置とを備えたディスクア
レイ装置において、i(iはi≧1の整数)個のデータ
と該データから作成したj(jはj≧1の整数)個のエ
ラー訂正用データとから構成される第1のパリティグル
ープを格納するための領域と、上記第1のパリティグル
ープとは異なる構成の第2のパリティグループを格納す
るための領域とが、前記論理グループ中に混在している
ことを特徴とする。上記パリティグループは、二重化の
パリティグループ(i=j=1)も含む。
を構成する複数台のドライブを含むディスク装置と、該
ディスク装置を管理する制御装置とを備えたディスクア
レイ装置において、i(iはi≧1の整数)個のデータ
と該データから作成したj(jはj≧1の整数)個のエ
ラー訂正用データとから構成される第1のパリティグル
ープを格納するための領域と、上記第1のパリティグル
ープとは異なる構成の第2のパリティグループを格納す
るための領域とが、前記論理グループ中に混在している
ことを特徴とする。上記パリティグループは、二重化の
パリティグループ(i=j=1)も含む。
【0029】また、本発明は、論理グループを構成する
n台のドライブを含むディスク装置と、該ディスク装置
を管理する制御装置とを備えたディスクアレイ装置にお
いて、前記論理グループ内の各ドライブをパーティショ
ンで区切り、n台以下のm台の任意のドライブの任意の
パーティションを任意の数選択し、該選択したパーティ
ションによりパーティショングループを設定し、前記論
理グループは、互いにmが異なる複数のパーティション
グループにより構成されることを特徴とする。
n台のドライブを含むディスク装置と、該ディスク装置
を管理する制御装置とを備えたディスクアレイ装置にお
いて、前記論理グループ内の各ドライブをパーティショ
ンで区切り、n台以下のm台の任意のドライブの任意の
パーティションを任意の数選択し、該選択したパーティ
ションによりパーティショングループを設定し、前記論
理グループは、互いにmが異なる複数のパーティション
グループにより構成されることを特徴とする。
【0030】さらに、上位装置からのデ−タの入出力要
求に対する、当該デ−タを格納してある、または格納す
るディスク装置と、該ディスク装置を管理する制御装置
とからなるディスクアレイ装置において、前記ディスク
装置を多数のドライブにより構成し、これらのドライブ
を2台以上のn台のドライブの論理グループにグループ
分けし、各論理グループ内の各ドライブをパーティショ
ンで区切るとともに、n台以下のm台の任意のドライブ
の任意のパーティションを任意の数選択し、該選択した
パーティションによりパーティショングループを設定
し、前記論理グループは、互いにmが異なる複数のパー
ティショングループにより構成されることを特徴とす
る。
求に対する、当該デ−タを格納してある、または格納す
るディスク装置と、該ディスク装置を管理する制御装置
とからなるディスクアレイ装置において、前記ディスク
装置を多数のドライブにより構成し、これらのドライブ
を2台以上のn台のドライブの論理グループにグループ
分けし、各論理グループ内の各ドライブをパーティショ
ンで区切るとともに、n台以下のm台の任意のドライブ
の任意のパーティションを任意の数選択し、該選択した
パーティションによりパーティショングループを設定
し、前記論理グループは、互いにmが異なる複数のパー
ティショングループにより構成されることを特徴とす
る。
【0031】
【作用】以上のように、本発明では、論理グループを構
成する各パリティグループ間でパリティグループレベル
を可変とし、論理グループをいくつかのパリティグルー
プレベルで構成する。すなわち、論理グループ内には、
複数の種類のパリティグループが混在することができ
る。各パリティグループは、信頼性および性能に対し特
徴がある。そこで、パリティグループの構成により、2
台目のドライブに障害が発生することによりデータ消失
する確率が異なり、パリティグループレベルとして分類
する。このことは、障害時における性能低下においても
同様なことがいえる。
成する各パリティグループ間でパリティグループレベル
を可変とし、論理グループをいくつかのパリティグルー
プレベルで構成する。すなわち、論理グループ内には、
複数の種類のパリティグループが混在することができ
る。各パリティグループは、信頼性および性能に対し特
徴がある。そこで、パリティグループの構成により、2
台目のドライブに障害が発生することによりデータ消失
する確率が異なり、パリティグループレベルとして分類
する。このことは、障害時における性能低下においても
同様なことがいえる。
【0032】そこで、1台目のドライブに障害が発生し
た場合、例えば、パリティグループレベルの低い(2台
目の障害が発生した場合にデータ消失となる確率の高
い)パリティグループから順次回復処理を行なうという
ようにする。
た場合、例えば、パリティグループレベルの低い(2台
目の障害が発生した場合にデータ消失となる確率の高
い)パリティグループから順次回復処理を行なうという
ようにする。
【0033】このように論理ボリュームを構成する各パ
リティグループ間でパリティグループレベルを可変と
し、論理グループをいくつかのパリティグループレベル
で構成し、パリティグループレベルの低い順に順次回復
処理を行なうことにより、信頼性を確保し、効率良く回
復処理を行なうことが可能となり、しかも、障害時の性
能低下を抑えることが可能となる。
リティグループ間でパリティグループレベルを可変と
し、論理グループをいくつかのパリティグループレベル
で構成し、パリティグループレベルの低い順に順次回復
処理を行なうことにより、信頼性を確保し、効率良く回
復処理を行なうことが可能となり、しかも、障害時の性
能低下を抑えることが可能となる。
【0034】
【実施例】以下、図面を用いて、本発明の実施例を説明
する。
する。
【0035】[実施例1]図1は、本発明の第1の実施
例に係るディスクアレイ装置の全体構成を示す。
例に係るディスクアレイ装置の全体構成を示す。
【0036】本実施例のディスクアレイは、大まかに
は、RAIDのレベル5の制御を行うディスクアレイコ
ントローラ(以下、ADCと呼ぶ)2、および論理グル
ープ10から構成される。CPU1は、ディスクアレイ
に読み出し命令や書き込み命令を発行する上位装置であ
る。
は、RAIDのレベル5の制御を行うディスクアレイコ
ントローラ(以下、ADCと呼ぶ)2、および論理グル
ープ10から構成される。CPU1は、ディスクアレイ
に読み出し命令や書き込み命令を発行する上位装置であ
る。
【0037】論理グループ10は、m台のドライブ12
と、各々のドライブ12とADC2とを接続するドライ
ブユニットパス11−1,11−2により、構成され
る。なお、このドライブ12の数は、本発明の効果を得
るには、特に制限は無い。
と、各々のドライブ12とADC2とを接続するドライ
ブユニットパス11−1,11−2により、構成され
る。なお、このドライブ12の数は、本発明の効果を得
るには、特に制限は無い。
【0038】論理グループ10内で、パリティを作成す
るデータの集合とこれらのデータから作成されたパリテ
ィとを合わせた集合が、パリティグループである。従
来、この論理グループ10がドライブ障害の回復単位で
あった。本実施例では、この論理グループ10中に異な
る構成のパリティグループが混在し、それらパリティグ
ループごとの特性に応じた障害回復を行うようにしてい
る。これについては、後に詳しく説明する。
るデータの集合とこれらのデータから作成されたパリテ
ィとを合わせた集合が、パリティグループである。従
来、この論理グループ10がドライブ障害の回復単位で
あった。本実施例では、この論理グループ10中に異な
る構成のパリティグループが混在し、それらパリティグ
ループごとの特性に応じた障害回復を行うようにしてい
る。これについては、後に詳しく説明する。
【0039】次に、図1を参照して、ADC2の内部構
造について説明する。
造について説明する。
【0040】ADC2は、大まかには、チャネルパスデ
ィレクタ3と、チャネルパス8−1,8−2と、キャッ
シュメモリ16と、ドライブパス9−1,9−2とから
なる。また、パスは大きく2つのクラスタ7−1,7−
2に分けられている。
ィレクタ3と、チャネルパス8−1,8−2と、キャッ
シュメモリ16と、ドライブパス9−1,9−2とから
なる。また、パスは大きく2つのクラスタ7−1,7−
2に分けられている。
【0041】チャネルパス8−1,8−2は、チャネル
パスディレクタ3とキャッシュメモリ16との間のパス
である。キャッシュメモリ16は、バッテリバックアッ
プ等により不揮発化された半導体メモリである。ドライ
ブパス9−1,9−2は、キャッシュメモリ16とドラ
イブ12との間のパスである。それぞれのチャネルパス
8−1,8−2とドライブパス9−1,9−2とは、キ
ャッシュメモリ16を介して接続されている。
パスディレクタ3とキャッシュメモリ16との間のパス
である。キャッシュメモリ16は、バッテリバックアッ
プ等により不揮発化された半導体メモリである。ドライ
ブパス9−1,9−2は、キャッシュメモリ16とドラ
イブ12との間のパスである。それぞれのチャネルパス
8−1,8−2とドライブパス9−1,9−2とは、キ
ャッシュメモリ16を介して接続されている。
【0042】キャッシュメモリ16には、データとアド
レステーブルが格納され、パリティの作成時にはワーク
エリアにもなる。このキャッシュメモリ16およびその
中のアドレステーブルは、ADC2内の全てのクラスタ
7において共有で使用される。アドレステーブルの詳細
は、図4を参照して後に説明する。
レステーブルが格納され、パリティの作成時にはワーク
エリアにもなる。このキャッシュメモリ16およびその
中のアドレステーブルは、ADC2内の全てのクラスタ
7において共有で使用される。アドレステーブルの詳細
は、図4を参照して後に説明する。
【0043】この、アドレステーブルは、システムの電
源をオンしたときに、チャネルパス8内のマイクロプロ
セッサ(MP)20により、論理グループ10内のある
特定の1台またはそれ以上のドライブ12から、キャッ
シュメモリ16に、CPU1の関知無しに自動的に読み
込まれる。一方、電源をオフするときは、MP20によ
り、キャッシュメモリ16内のアドレステーブルを、読
み込んできたドライブ12内の所定の場所に、CPU1
の関知無しに自動的に格納する。
源をオンしたときに、チャネルパス8内のマイクロプロ
セッサ(MP)20により、論理グループ10内のある
特定の1台またはそれ以上のドライブ12から、キャッ
シュメモリ16に、CPU1の関知無しに自動的に読み
込まれる。一方、電源をオフするときは、MP20によ
り、キャッシュメモリ16内のアドレステーブルを、読
み込んできたドライブ12内の所定の場所に、CPU1
の関知無しに自動的に格納する。
【0044】CPU1より発行されたコマンドは、外部
インターフェースパス4を通ってADC2のチャネルパ
スディレクタ3に入力する。CPU1からコマンドが発
行された場合、まずADC2内のチャネルパスディレク
タ3により、そのコマンドの受付が可能かどうか判断す
る。
インターフェースパス4を通ってADC2のチャネルパ
スディレクタ3に入力する。CPU1からコマンドが発
行された場合、まずADC2内のチャネルパスディレク
タ3により、そのコマンドの受付が可能かどうか判断す
る。
【0045】具体的には、図1に示すように、CPU1
からADC2に送られてきたコマンドは、まずインター
フェースアダプタ(以下、IF Adpと呼ぶ)5によ
り取り込まれる。次に、MP20は、外部インターフェ
ースパス4の中で使用可能なパスがあるか否かを調べ
る。使用可能な外部インターフェースパス4がある場
合、MP20は、チャネルパススイッチ6を切り換えて
コマンドの受付け処理を行なう。コマンドを受け付ける
ことができない場合は、受付不可の応答をCPU1へ送
る。
からADC2に送られてきたコマンドは、まずインター
フェースアダプタ(以下、IF Adpと呼ぶ)5によ
り取り込まれる。次に、MP20は、外部インターフェ
ースパス4の中で使用可能なパスがあるか否かを調べ
る。使用可能な外部インターフェースパス4がある場
合、MP20は、チャネルパススイッチ6を切り換えて
コマンドの受付け処理を行なう。コマンドを受け付ける
ことができない場合は、受付不可の応答をCPU1へ送
る。
【0046】このようにしてコマンドの受付が可能にな
った後に、後で説明するような読み出し処理または書き
込み処理(新規または更新)を開始する。具体的な読み
出しまたは書き込み処理を説明する前に、まず、初期設
定におけるパリティグループレベルの設定法とアドレス
変換法について説明する。
った後に、後で説明するような読み出し処理または書き
込み処理(新規または更新)を開始する。具体的な読み
出しまたは書き込み処理を説明する前に、まず、初期設
定におけるパリティグループレベルの設定法とアドレス
変換法について説明する。
【0047】(パリティグループレベルの設定法)
【0048】図2は、本実施例における論理グループ1
0内のデータ配置図である。本実施例では、この図に示
すように、SD#1からSD#6の6台のドライブ12
により論理グループ10を構成する。
0内のデータ配置図である。本実施例では、この図に示
すように、SD#1からSD#6の6台のドライブ12
により論理グループ10を構成する。
【0049】図2において、論理グループ10内には、
5個のデータと1個のパリティ(5D+1Pとする)で
レベル5を構成するパリティグループと、3個のデータ
と1個のパリティ(3D+1P)でレベル5を構成する
パリティグループと、二重化によるパリティグループと
の、3種類のパリティグループが混在している。これら
の3種類のパリティグループに対し、5D+1P,3D
+1P,二重化の順に、信頼性は向上し、また障害時の
性能低下はこの順に小さくなる。そこで、このようにパ
リティグループによる信頼性、性能の良い順に、パリテ
ィグループレベルが高いとして分類する。
5個のデータと1個のパリティ(5D+1Pとする)で
レベル5を構成するパリティグループと、3個のデータ
と1個のパリティ(3D+1P)でレベル5を構成する
パリティグループと、二重化によるパリティグループと
の、3種類のパリティグループが混在している。これら
の3種類のパリティグループに対し、5D+1P,3D
+1P,二重化の順に、信頼性は向上し、また障害時の
性能低下はこの順に小さくなる。そこで、このようにパ
リティグループによる信頼性、性能の良い順に、パリテ
ィグループレベルが高いとして分類する。
【0050】ユーザは、所望の使用環境を得るために、
初期設定の段階で、論理グループ10内に、どのレベル
のパリティグループをどれだけ用意するかを予め設定す
る。この設定は、ユーザが、ADC2に対し指示する。
この指示は、ADC2では、MP20が受け取る。その
指示に応じて、MP20は、キャッシュメモリ16内に
アドレステーブルを作成する。
初期設定の段階で、論理グループ10内に、どのレベル
のパリティグループをどれだけ用意するかを予め設定す
る。この設定は、ユーザが、ADC2に対し指示する。
この指示は、ADC2では、MP20が受け取る。その
指示に応じて、MP20は、キャッシュメモリ16内に
アドレステーブルを作成する。
【0051】図4は、キャッシュメモリ16内に作成さ
れるアドレステーブルの構造を示す。ここでは、図2の
ように5D+1P,3D+1P,二重化の3種類のパリ
ティグループを設けた場合のアドレステーブルを示して
いる。アドレステーブルは、図4の(a)(b)(c)
に示すように、パリティグループレベルに対応して作成
される。
れるアドレステーブルの構造を示す。ここでは、図2の
ように5D+1P,3D+1P,二重化の3種類のパリ
ティグループを設けた場合のアドレステーブルを示して
いる。アドレステーブルは、図4の(a)(b)(c)
に示すように、パリティグループレベルに対応して作成
される。
【0052】各パリティグループレベル21に対応した
アドレステーブルは、データ名22、キャッシュアドレ
ス23、データドライブ番号(DDrive No.)
24、障害フラグ25、パリティドライブ番号(PDr
ive No.)26、およびSCSI内Addr27
の各フィールドで構成される。
アドレステーブルは、データ名22、キャッシュアドレ
ス23、データドライブ番号(DDrive No.)
24、障害フラグ25、パリティドライブ番号(PDr
ive No.)26、およびSCSI内Addr27
の各フィールドで構成される。
【0053】データ名22には、CPU1が指定する論
理アドレスが登録される。データ名22が登録されてい
ない部分が空き領域を示すことになる。キャッシュアド
レス23には、このデータ名22に対応するデータがキ
ャッシュメモリ16内に存在する場合は、キャッシュメ
モリ16内のアドレスが登録される。逆に、キャッシュ
アドレス23が登録されていない(空欄)場合は、この
データ名22のデータがキャッシュメモリ16内に存在
していないことを示す。
理アドレスが登録される。データ名22が登録されてい
ない部分が空き領域を示すことになる。キャッシュアド
レス23には、このデータ名22に対応するデータがキ
ャッシュメモリ16内に存在する場合は、キャッシュメ
モリ16内のアドレスが登録される。逆に、キャッシュ
アドレス23が登録されていない(空欄)場合は、この
データ名22のデータがキャッシュメモリ16内に存在
していないことを示す。
【0054】データドライブ番号(DDrive N
o.)24には、このデータ名22のデータが格納され
ているドライブ12の番号が登録してある。障害フラグ
25は、このデータが格納されているドライブ12に障
害が発生している場合に、オン(1)となる。当該ドラ
イブが正常であれば、障害フラグ25はオフ(0)であ
る。パリティドライブ番号(PDrive No.)2
6には、パリティグループ内において、データ名22の
データが関与しているパリティの格納されているドライ
ブ12の番号が登録されている。
o.)24には、このデータ名22のデータが格納され
ているドライブ12の番号が登録してある。障害フラグ
25は、このデータが格納されているドライブ12に障
害が発生している場合に、オン(1)となる。当該ドラ
イブが正常であれば、障害フラグ25はオフ(0)であ
る。パリティドライブ番号(PDrive No.)2
6には、パリティグループ内において、データ名22の
データが関与しているパリティの格納されているドライ
ブ12の番号が登録されている。
【0055】SCSI内Addr27には、データ名2
2のデータおよびこれが関与したパリティが格納されて
いるドライブ12内の物理的なアドレスが登録されてい
る。このSCSI内Addr27が示す物理的なアドレ
スは、図17に示すように、当該データが格納されてい
るトラックが所属するシリンダの位置と、そのシリンダ
内において当該データが格納されているトラックを決定
するヘッドアドレスと、そのトラック内のレコードの位
置で表される。
2のデータおよびこれが関与したパリティが格納されて
いるドライブ12内の物理的なアドレスが登録されてい
る。このSCSI内Addr27が示す物理的なアドレ
スは、図17に示すように、当該データが格納されてい
るトラックが所属するシリンダの位置と、そのシリンダ
内において当該データが格納されているトラックを決定
するヘッドアドレスと、そのトラック内のレコードの位
置で表される。
【0056】具体的には、要求データが格納されている
当該ドライブ12の番号がデータドライブ番号(DDr
ive No.)24に登録されており、当該ドライブ
12内のシリンダ番号であるシリンダアドレスと、シリ
ンダにおいてトラックを選択するヘッドの番号であるヘ
ッドアドレスと、トラック内の当該レコードの位置を示
すレコードアドレスとが、SCSI内Addr27に登
録されている。
当該ドライブ12の番号がデータドライブ番号(DDr
ive No.)24に登録されており、当該ドライブ
12内のシリンダ番号であるシリンダアドレスと、シリ
ンダにおいてトラックを選択するヘッドの番号であるヘ
ッドアドレスと、トラック内の当該レコードの位置を示
すレコードアドレスとが、SCSI内Addr27に登
録されている。
【0057】本実施例では、論理グループ10を構成す
る各ドライブ12において、パリティグループを構成す
るデータと、これらのデータから作成されたパリティと
は、同一のSCSI内Addr27の位置に格納され
る。
る各ドライブ12において、パリティグループを構成す
るデータと、これらのデータから作成されたパリティと
は、同一のSCSI内Addr27の位置に格納され
る。
【0058】具体的には、例えば図4(a)において、
データ名22がData#1からData#5のデータ
に対してはSCSI内Addr27がDADR1である
が、これは、ドライブSD#1に格納されているDat
a#1と、ドライブSD#2に格納されているData
#2と、ドライブSD#3に格納されているData#
3と、ドライブSD#4に格納されているData#4
と、ドライブSD#5に格納されているData#5
と、ドライブSD#6に格納されているパリティとが、
それぞれのドライブのアドレスDADR1の位置に格納
されているということを示している。これらのデータの
集合が、パリティグループを構成する。
データ名22がData#1からData#5のデータ
に対してはSCSI内Addr27がDADR1である
が、これは、ドライブSD#1に格納されているDat
a#1と、ドライブSD#2に格納されているData
#2と、ドライブSD#3に格納されているData#
3と、ドライブSD#4に格納されているData#4
と、ドライブSD#5に格納されているData#5
と、ドライブSD#6に格納されているパリティとが、
それぞれのドライブのアドレスDADR1の位置に格納
されているということを示している。これらのデータの
集合が、パリティグループを構成する。
【0059】なお、本実施例では、パリティグループを
構成するデータおよびパリティを同一のSCSI内Ad
dr27に格納するようにしたが、SCSI内Addr
27がドライブごとに異なっていてもよい。その場合
は、ドライブ番号24,26に、ドライブ番号に加えて
各ドライブ内のSCSI内Addrを格納するようにす
ればよい。
構成するデータおよびパリティを同一のSCSI内Ad
dr27に格納するようにしたが、SCSI内Addr
27がドライブごとに異なっていてもよい。その場合
は、ドライブ番号24,26に、ドライブ番号に加えて
各ドライブ内のSCSI内Addrを格納するようにす
ればよい。
【0060】本実施例では、パリティグループの設定は
シリンダ単位とする。図17に示すように、ドライブ1
2のディスクには同心円上にトラックが設定されてい
る。このトラック上にデータは記録される。各ディスク
に対応した読み書きヘッドは全て1個のアクチュエータ
に取り付けられており、このアクチュエータの移動にと
もない全ての読み書きヘッドは一様に移動する。アクチ
ュエータの一回の移動で位置付けられる各ディスク上の
トラックの集合をシリンダと言う。
シリンダ単位とする。図17に示すように、ドライブ1
2のディスクには同心円上にトラックが設定されてい
る。このトラック上にデータは記録される。各ディスク
に対応した読み書きヘッドは全て1個のアクチュエータ
に取り付けられており、このアクチュエータの移動にと
もない全ての読み書きヘッドは一様に移動する。アクチ
ュエータの一回の移動で位置付けられる各ディスク上の
トラックの集合をシリンダと言う。
【0061】各パリティグループレベルに対し、パリテ
ィグループを設定する場合は、図18に示すように、こ
のシリンダの集合単位で設定する。図18では、外周側
のシリンダの集合(斜線部分)にパリティグループレベ
ルが5D+1Pのパリティグループを設定し、内周側の
シリンダの集合(黒く塗り潰した部分)にパリティグル
ープレベルが3D+1Pおよび二重化のパリティグルー
プを混在して設定している。
ィグループを設定する場合は、図18に示すように、こ
のシリンダの集合単位で設定する。図18では、外周側
のシリンダの集合(斜線部分)にパリティグループレベ
ルが5D+1Pのパリティグループを設定し、内周側の
シリンダの集合(黒く塗り潰した部分)にパリティグル
ープレベルが3D+1Pおよび二重化のパリティグルー
プを混在して設定している。
【0062】ユーザは、初期設定する際に、各パリティ
グループレベルに割り当てる領域(シリンダの集合)に
対応したDDrive No.24とPDrive N
o.26とそれらのSCSI内Addr27とを、図4
のアドレステーブル上に確保する。
グループレベルに割り当てる領域(シリンダの集合)に
対応したDDrive No.24とPDrive N
o.26とそれらのSCSI内Addr27とを、図4
のアドレステーブル上に確保する。
【0063】なお、本実施例では、このようにシリンダ
単位でパリティグループの設定をおこなったが、トラッ
ク単位、レコード単位で設定しても本発明の効果が得ら
れることは明らかであり、設定する単位の制約は無い。
単位でパリティグループの設定をおこなったが、トラッ
ク単位、レコード単位で設定しても本発明の効果が得ら
れることは明らかであり、設定する単位の制約は無い。
【0064】また、本実施例ではパリティグループレベ
ルを5D+1P、3D+1P、および二重化の3通りと
したが、この設定は使用環境等により自由に設定するこ
とが可能である。例えば、より高信頼なパリティグルー
プが必要であれば4D+2Pのパリティグループレベル
を設定したり、2D+1Pのようなパリティグループレ
ベルを設定することも可能である。4D+2Pのよう
に、2つのパリティを設ける場合は、図4のパリティド
ライブ番号(PDrive No.)26のフィールド
を2つ設ければよい。
ルを5D+1P、3D+1P、および二重化の3通りと
したが、この設定は使用環境等により自由に設定するこ
とが可能である。例えば、より高信頼なパリティグルー
プが必要であれば4D+2Pのパリティグループレベル
を設定したり、2D+1Pのようなパリティグループレ
ベルを設定することも可能である。4D+2Pのよう
に、2つのパリティを設ける場合は、図4のパリティド
ライブ番号(PDrive No.)26のフィールド
を2つ設ければよい。
【0065】また、論理グループ10を構成するパリテ
ィグループにおけるパリティグループレベルの割合の設
定も使用環境等により自由に設定することが可能であ
る。例えば、図2において、5D+1Pのパリティグル
ープレベルのパリティグループの数(割当て量)を減ら
し、3D+1Pと二重化のパリティグループの割当て量
を増やしたり、代わりに4D+2Pのパリティグループ
を設定したりすることも可能である。
ィグループにおけるパリティグループレベルの割合の設
定も使用環境等により自由に設定することが可能であ
る。例えば、図2において、5D+1Pのパリティグル
ープレベルのパリティグループの数(割当て量)を減ら
し、3D+1Pと二重化のパリティグループの割当て量
を増やしたり、代わりに4D+2Pのパリティグループ
を設定したりすることも可能である。
【0066】以上のように、本発明では、初期設定の際
にディスクアレイの使用される環境を考慮して、ディス
クアレイの論理グループ10を構成するパリティグルー
プのパリティグループレベルの種類や、構成内容、さら
には、割合を自由に設定することが可能である。
にディスクアレイの使用される環境を考慮して、ディス
クアレイの論理グループ10を構成するパリティグルー
プのパリティグループレベルの種類や、構成内容、さら
には、割合を自由に設定することが可能である。
【0067】(アドレス変換法)
【0068】次に、図4のアドレステーブルを用いたア
ドレスの変換法について説明する。
ドレスの変換法について説明する。
【0069】図1のCPU1は、論理アドレスとしてデ
ータ名22を指定して、書き込み命令や読み出し命令を
発行する。これに応じて、ADC2のMP20は、指定
された論理アドレスで図4のアドレステーブルを参照す
ることにより、そのデータが実際に格納されているドラ
イブ番号24、SCSI内Addr27、およびキャッ
シュアドレス23を決定する。
ータ名22を指定して、書き込み命令や読み出し命令を
発行する。これに応じて、ADC2のMP20は、指定
された論理アドレスで図4のアドレステーブルを参照す
ることにより、そのデータが実際に格納されているドラ
イブ番号24、SCSI内Addr27、およびキャッ
シュアドレス23を決定する。
【0070】例えば、CPU1からData#2に対す
る要求が発行された場合、図4のアドレステーブルか
ら、当該データの位置は、ドライブSD#2のSCSI
内Addr27がDADR1の位置であることが分か
る。このようにして、論理アドレスとしてのデータ名
が、物理的なアドレスへ変換される。
る要求が発行された場合、図4のアドレステーブルか
ら、当該データの位置は、ドライブSD#2のSCSI
内Addr27がDADR1の位置であることが分か
る。このようにして、論理アドレスとしてのデータ名
が、物理的なアドレスへ変換される。
【0071】また、このときアドレステーブルにおいて
Data#2のキャッシュアドレス23にCADR1が
登録されているため、このデータはキャッシュメモリ1
6内のCADR1に存在することが分かる。もし、キャ
ッシュアドレス23に登録されていない場合は、当該デ
ータはキャッシュメモリ16内には存在しないことにな
る。さらに、このData#2が関与したパリティにつ
いては、図4のアドレステーブルから、パリティドライ
ブ番号(PDrive No)26がSD#6であるド
ライブ12の、SCSI内Addr27がDADR1の
位置に、格納されていることがわかる。
Data#2のキャッシュアドレス23にCADR1が
登録されているため、このデータはキャッシュメモリ1
6内のCADR1に存在することが分かる。もし、キャ
ッシュアドレス23に登録されていない場合は、当該デ
ータはキャッシュメモリ16内には存在しないことにな
る。さらに、このData#2が関与したパリティにつ
いては、図4のアドレステーブルから、パリティドライ
ブ番号(PDrive No)26がSD#6であるド
ライブ12の、SCSI内Addr27がDADR1の
位置に、格納されていることがわかる。
【0072】このようにして、MP20は、CPU1か
ら指定された論理アドレス22を実際に読み出し/書き
込みを行うドライブ12の物理的なアドレスに変換した
後、その物理アドレスに、読み出しまたは書き込み要求
を発行する。
ら指定された論理アドレス22を実際に読み出し/書き
込みを行うドライブ12の物理的なアドレスに変換した
後、その物理アドレスに、読み出しまたは書き込み要求
を発行する。
【0073】次に、このようなアドレス変換を行い、具
体的にデータを読み出しまたは書き込む際の処理法につ
いて説明する。
体的にデータを読み出しまたは書き込む際の処理法につ
いて説明する。
【0074】(新規書き込み処理)
【0075】まず、新規にデータを書き込む方法につい
て、図1を用いて説明する。また、新規にデータを書き
込む際のMP20の処理フローを図6に示す。
て、図1を用いて説明する。また、新規にデータを書き
込む際のMP20の処理フローを図6に示す。
【0076】まず図1を参照して説明する。CPU1か
らのコマンドを受け取ると、ADC2のMP20は、そ
のコマンドを処理可能かどうか調べ、可能な場合は処理
可能だという応答をCPU1へ返す。CPU1より発行
されたコマンドは、IF Adp5を介してADC2に
取り込まれ、MP20により読み出し要求か書き込み要
求か解読される。書き込み要求の場合は、以下のように
処理する。
らのコマンドを受け取ると、ADC2のMP20は、そ
のコマンドを処理可能かどうか調べ、可能な場合は処理
可能だという応答をCPU1へ返す。CPU1より発行
されたコマンドは、IF Adp5を介してADC2に
取り込まれ、MP20により読み出し要求か書き込み要
求か解読される。書き込み要求の場合は、以下のように
処理する。
【0077】CPU1では処理可能だという応答を受け
取った後に、ADC2へ書き込みデータを転送する。こ
のとき、ADC2では、MP20の指示により、チャネ
ルパスディレクタ3のチャネルパススイッチ6が当該外
部インターフェースパス4とIF Adp5を当該チャ
ネルパス8と接続し、CPU1とADC2との間の接続
を確立する。CPU1とADC2との間の接続を確立し
た後、CPU1からのデータ転送を受け付ける。
取った後に、ADC2へ書き込みデータを転送する。こ
のとき、ADC2では、MP20の指示により、チャネ
ルパスディレクタ3のチャネルパススイッチ6が当該外
部インターフェースパス4とIF Adp5を当該チャ
ネルパス8と接続し、CPU1とADC2との間の接続
を確立する。CPU1とADC2との間の接続を確立し
た後、CPU1からのデータ転送を受け付ける。
【0078】CPU1からは、論理アドレス(データ
名)と書き込みデータが転送される。チャネルインター
フェース回路(CH IF)13は、MP20の指示に
より、CPU1から転送されたこれらのデータに対しプ
ロトコル変換を施す。これにより、CPU1からのデー
タは、外部インターフェースパス4での転送速度からA
DC2内での処理速度に速度調整される。具体的には、
CPU1とADC2との間のチャネルインターフェース
を光のインターフェースにした場合、CH IF13
は、光のインターフェースのプロトコルをADC2内の
電気処理でのプロトコルに変換する。
名)と書き込みデータが転送される。チャネルインター
フェース回路(CH IF)13は、MP20の指示に
より、CPU1から転送されたこれらのデータに対しプ
ロトコル変換を施す。これにより、CPU1からのデー
タは、外部インターフェースパス4での転送速度からA
DC2内での処理速度に速度調整される。具体的には、
CPU1とADC2との間のチャネルインターフェース
を光のインターフェースにした場合、CH IF13
は、光のインターフェースのプロトコルをADC2内の
電気処理でのプロトコルに変換する。
【0079】CH IF13におけるプロトコル変換お
よび速度制御の完了後、データは、データ制御回路(D
CC)14によるデータ転送制御を受け、キャッシュア
ダプタ回路(C Adp)15に転送され、C Adp
15によりキャッシュメモリ16内に格納される。
よび速度制御の完了後、データは、データ制御回路(D
CC)14によるデータ転送制御を受け、キャッシュア
ダプタ回路(C Adp)15に転送され、C Adp
15によりキャッシュメモリ16内に格納される。
【0080】C Adp15は、MP20の指示に応じ
て、キャッシュメモリ16に対するデータの読み出しお
よび書き込みを行う回路であり、キャッシュメモリ16
の状態の監視、各読み出し、および書き込み要求に対
し、排他制御を行う回路である。
て、キャッシュメモリ16に対するデータの読み出しお
よび書き込みを行う回路であり、キャッシュメモリ16
の状態の監視、各読み出し、および書き込み要求に対
し、排他制御を行う回路である。
【0081】図6のフローチャートを参照して、MP2
0による処理の手順をさらに詳しく説明する。MP20
が書き込み要求のコマンドを認識し、しかも、書き込む
データが初めて書き込まれる新規データと認識すると
(ステップ30)、MP20は論理アドレスとしてCP
U1から送られてきたデータ名をアドレステーブルへ登
録する処理を開始する。
0による処理の手順をさらに詳しく説明する。MP20
が書き込み要求のコマンドを認識し、しかも、書き込む
データが初めて書き込まれる新規データと認識すると
(ステップ30)、MP20は論理アドレスとしてCP
U1から送られてきたデータ名をアドレステーブルへ登
録する処理を開始する。
【0082】まず、MP20は、パリティグループレベ
ルを認識する(ステップ31)。すなわち、上位からパ
リティグループレベルの指定がある場合は、当該パリテ
ィグループレベルの領域に格納するように、用いるべき
アドレステーブルを決定する。ここでは、書き込み要求
のコマンドが与えられる際、データを書き込むパリティ
グループレベルがCPU1から指定されるものとする。
ルを認識する(ステップ31)。すなわち、上位からパ
リティグループレベルの指定がある場合は、当該パリテ
ィグループレベルの領域に格納するように、用いるべき
アドレステーブルを決定する。ここでは、書き込み要求
のコマンドが与えられる際、データを書き込むパリティ
グループレベルがCPU1から指定されるものとする。
【0083】具体的には、5D+1Pのパリティグルー
プレベルの領域に格納するようにCPU1から指示され
た場合は図4(a)のアドレステーブルとし、3D+1
Pでは図4(b)のアドレステーブルとし、二重化の場
合は図4(c)のアドレステーブルとする。
プレベルの領域に格納するようにCPU1から指示され
た場合は図4(a)のアドレステーブルとし、3D+1
Pでは図4(b)のアドレステーブルとし、二重化の場
合は図4(c)のアドレステーブルとする。
【0084】このようにアドレステーブルを決定した
後、MP20は、当該アドレステーブルにおいてデータ
名が登録されていない空き領域を探す(ステップ3
2)。本実施例では、図4のアドレステーブルにおいて
データ名22が登録されていない場合、その項に登録さ
れているDDrive No.24のドライブ12内の
SCSI内Addr27の領域は、データが格納されて
いない空き領域である。
後、MP20は、当該アドレステーブルにおいてデータ
名が登録されていない空き領域を探す(ステップ3
2)。本実施例では、図4のアドレステーブルにおいて
データ名22が登録されていない場合、その項に登録さ
れているDDrive No.24のドライブ12内の
SCSI内Addr27の領域は、データが格納されて
いない空き領域である。
【0085】この空き領域には、初期設定の段階からデ
ータが書き込まれていない場合と、以前はデータが書き
込まれていたがこのデータが不要となり削除した場合と
がある。データの削除は、MP20により、図4のアド
レステーブルにおいて当該データ名22を削除すること
により行われる。また、このときのパリティは、このよ
うにデータが格納されていない領域の全てのビットが0
のデータと見なして作成され、アドレステーブルで指定
されているPDrive No.26のドライブ12
の、データと同じSCSI内Addr27の位置に、格
納される。
ータが書き込まれていない場合と、以前はデータが書き
込まれていたがこのデータが不要となり削除した場合と
がある。データの削除は、MP20により、図4のアド
レステーブルにおいて当該データ名22を削除すること
により行われる。また、このときのパリティは、このよ
うにデータが格納されていない領域の全てのビットが0
のデータと見なして作成され、アドレステーブルで指定
されているPDrive No.26のドライブ12
の、データと同じSCSI内Addr27の位置に、格
納される。
【0086】次に、新規書き込みデータをキャッシュメ
モリ16に格納する(ステップ33)。キャッシュメモ
リ16に格納するまでのデータの流れは、図1を参照し
て上述した。そして、ステップ32で探し出したアドレ
ステーブルの空き領域の項へデータ名22を登録し、さ
らにキャッシュアドレス23に新規書き込みデータを格
納したキャッシュメモリ16内のアドレスを登録するこ
とにより、新規書き込みデータの登録を行う(ステップ
34)。
モリ16に格納する(ステップ33)。キャッシュメモ
リ16に格納するまでのデータの流れは、図1を参照し
て上述した。そして、ステップ32で探し出したアドレ
ステーブルの空き領域の項へデータ名22を登録し、さ
らにキャッシュアドレス23に新規書き込みデータを格
納したキャッシュメモリ16内のアドレスを登録するこ
とにより、新規書き込みデータの登録を行う(ステップ
34)。
【0087】次に、MP20は、新規書き込みデータを
用いてパリティを更新し、論理グループ10内のドライ
ブ12へ、新規書き込みデータと新パリティを格納する
処理を開始する。以下、更新前のパリティを旧パリテ
ィ、更新されたパリティを新パリティと、それぞれ呼ぶ
こととする。
用いてパリティを更新し、論理グループ10内のドライ
ブ12へ、新規書き込みデータと新パリティを格納する
処理を開始する。以下、更新前のパリティを旧パリテ
ィ、更新されたパリティを新パリティと、それぞれ呼ぶ
こととする。
【0088】まず、MP20は、いまアドレステーブル
に登録した新規データに対応するDDrive No.
29およびPDrive No.34と、それらのドラ
イブ内の物理的なアドレスであるSCSI内Addr2
7とを認識する(ステップ35)。そして、DDriv
e No.29のドライブに対して、キャッシュメモリ
16に格納されている新規データの書き込みを指示する
(ステップ36)。
に登録した新規データに対応するDDrive No.
29およびPDrive No.34と、それらのドラ
イブ内の物理的なアドレスであるSCSI内Addr2
7とを認識する(ステップ35)。そして、DDriv
e No.29のドライブに対して、キャッシュメモリ
16に格納されている新規データの書き込みを指示する
(ステップ36)。
【0089】また、PDrive No.34のドライ
ブに対して、パリティの更新を指示する。すなわち、P
Drive No.34のドライブから旧パリティを読
み出し(ステップ37)、旧パリティと新規書き込みデ
ータとから新パリティを作成し(ステップ38)、当該
新パリティをPDrive No.34のドライブに書
き込む(ステップ39)。
ブに対して、パリティの更新を指示する。すなわち、P
Drive No.34のドライブから旧パリティを読
み出し(ステップ37)、旧パリティと新規書き込みデ
ータとから新パリティを作成し(ステップ38)、当該
新パリティをPDrive No.34のドライブに書
き込む(ステップ39)。
【0090】図2および図4の例を用いて、ステップ3
5以降の処理を具体的に説明する。
5以降の処理を具体的に説明する。
【0091】図2および図4において、MP20は、D
Drive No.24がSD#2のドライブ12のS
CSI内Addr27がDADR1の位置に、新規にD
ata#2を書き込むと、認識したとする。また、MP
20は、図4のアドレステーブルから、この新規書き込
みデータに対応するパリティの格納位置(PDrive
No.26がSD#6のドライブ12のSCSI内A
ddr27がDADR1の位置)を認識する。
Drive No.24がSD#2のドライブ12のS
CSI内Addr27がDADR1の位置に、新規にD
ata#2を書き込むと、認識したとする。また、MP
20は、図4のアドレステーブルから、この新規書き込
みデータに対応するパリティの格納位置(PDrive
No.26がSD#6のドライブ12のSCSI内A
ddr27がDADR1の位置)を認識する。
【0092】このように新規に書き込むデータとこのデ
ータを書き込んだ後に関与するパリティの論理グループ
10内の物理アドレスを認識した後、MP20は、ドラ
イブSD#2に対し新規に書き込むデータの書き込み処
理を開始し、またドライブSD#6に対しパリティの更
新処理を開始する。
ータを書き込んだ後に関与するパリティの論理グループ
10内の物理アドレスを認識した後、MP20は、ドラ
イブSD#2に対し新規に書き込むデータの書き込み処
理を開始し、またドライブSD#6に対しパリティの更
新処理を開始する。
【0093】図1を参照して、パリティの更新処理につ
いて説明する。
いて説明する。
【0094】パリティの更新処理では、まずMP20
が、ドライブインターフェース(Drive IF)1
8に対し、当該ドライブ12へ旧パリティの読み出し要
求を発行するように指示する。Drive IF18で
は、SCSIの読み出し処理手順に従って、読み出しコ
マンドをドライブユニットパス11を介して発行する。
が、ドライブインターフェース(Drive IF)1
8に対し、当該ドライブ12へ旧パリティの読み出し要
求を発行するように指示する。Drive IF18で
は、SCSIの読み出し処理手順に従って、読み出しコ
マンドをドライブユニットパス11を介して発行する。
【0095】Drive IF18から読み出しコマン
ドを発行された当該ドライブ12においては、指示され
たSCSI内Addr27へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ12におけるアクセス処
理が完了した後、当該ドライブ12は、当該旧パリティ
を読み出し、ドライブユニットパス11を介してDri
ve IF18へ転送する。
ドを発行された当該ドライブ12においては、指示され
たSCSI内Addr27へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ12におけるアクセス処
理が完了した後、当該ドライブ12は、当該旧パリティ
を読み出し、ドライブユニットパス11を介してDri
ve IF18へ転送する。
【0096】Drive IF18では、転送されてき
た当該旧パリティをドライブ12側のキャッシュアダプ
タ回路(C Adp)17に転送する。C Adp17
は、キャッシュメモリ16に当該旧パリティを格納す
る。このとき、C Adp17は、MP20に対し、キ
ャッシュメモリ16に当該旧パリティを格納したことを
報告する。
た当該旧パリティをドライブ12側のキャッシュアダプ
タ回路(C Adp)17に転送する。C Adp17
は、キャッシュメモリ16に当該旧パリティを格納す
る。このとき、C Adp17は、MP20に対し、キ
ャッシュメモリ16に当該旧パリティを格納したことを
報告する。
【0097】このように、当該旧パリティをキャッシュ
メモリ16に読み出した後、MP20は、パリティ生成
回路(PG)19に対し、新パリティの作成を指示す
る。PG19は、キャッシュメモリ16内に格納されて
いる新規書き込みデータと当該旧パリティとで排他的論
理和の計算を行ない更新後の新パリティを作成する。作
成した新パリティは、キャッシュメモリ16へ格納され
る。
メモリ16に読み出した後、MP20は、パリティ生成
回路(PG)19に対し、新パリティの作成を指示す
る。PG19は、キャッシュメモリ16内に格納されて
いる新規書き込みデータと当該旧パリティとで排他的論
理和の計算を行ない更新後の新パリティを作成する。作
成した新パリティは、キャッシュメモリ16へ格納され
る。
【0098】新パリティのキャッシュメモリ16への格
納完了後、MP20は、新規書き込みデータ(この例で
は、Data#2)をドライブSD#2に、新パリティ
をドライブSD#6に、それぞれ書き込む制御を行う。
それぞれのドライブにおける格納位置は、SCSI内A
ddr27に示されるDADR1である。
納完了後、MP20は、新規書き込みデータ(この例で
は、Data#2)をドライブSD#2に、新パリティ
をドライブSD#6に、それぞれ書き込む制御を行う。
それぞれのドライブにおける格納位置は、SCSI内A
ddr27に示されるDADR1である。
【0099】次に、新規書き込みデータや新パリティの
ドライブ12への書き込み処理について説明する。
ドライブ12への書き込み処理について説明する。
【0100】まず、MP20が、Drive IF18
に対し、当該ドライブ12へ書き込み要求(新規書き込
みデータや新パリティの書き込み)を発行するように指
示する。Drive IF18では、SCSIの書き込
み処理手順に従って、当該ドライブ12に対し書き込み
コマンドをドライブユニットパス11を介して発行す
る。
に対し、当該ドライブ12へ書き込み要求(新規書き込
みデータや新パリティの書き込み)を発行するように指
示する。Drive IF18では、SCSIの書き込
み処理手順に従って、当該ドライブ12に対し書き込み
コマンドをドライブユニットパス11を介して発行す
る。
【0101】Drive IF18から書き込みコマン
ドを発行された当該ドライブ12においては、指示され
たSCSI内Addr27へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ12におけるアクセス処
理が完了した後、キャッシュアダプタ回路(C Adp)
17は、キャッシュメモリ16から新規書き込みデータ
または新パリティを読み出し、Drive IF18へ
転送する。
ドを発行された当該ドライブ12においては、指示され
たSCSI内Addr27へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ12におけるアクセス処
理が完了した後、キャッシュアダプタ回路(C Adp)
17は、キャッシュメモリ16から新規書き込みデータ
または新パリティを読み出し、Drive IF18へ
転送する。
【0102】Drive IF18では、転送されてき
た新規書き込みデータまたは新パリティをドライブユニ
ットパス11を介して当該ドライブ12に転送し、当該
ドライブ12の当該アドレスに新規書き込みデータまた
は新パリティを書き込む。このとき、C Adp17
は、MP20に対し、当該ドライブ12に新規書き込み
データまたは新パリティを格納したことを報告する。
た新規書き込みデータまたは新パリティをドライブユニ
ットパス11を介して当該ドライブ12に転送し、当該
ドライブ12の当該アドレスに新規書き込みデータまた
は新パリティを書き込む。このとき、C Adp17
は、MP20に対し、当該ドライブ12に新規書き込み
データまたは新パリティを格納したことを報告する。
【0103】(書き込み処理)
【0104】次に、すでにドライブ12内に書き込まれ
ているデータを新しいデータに書き換える更新の場合に
ついて説明する。図7は、更新の書き込み処理の手順を
示すフローチャートである。
ているデータを新しいデータに書き換える更新の場合に
ついて説明する。図7は、更新の書き込み処理の手順を
示すフローチャートである。
【0105】データの更新要求が発生する(ステップ4
0)と、MP20は、CPU1が指定した論理アドレス
(データ名)からアドレステーブルを参照し、データお
よびパリティが格納されているドライブ12のDDri
ve No.24とPDrive No.26、それら
のドライブ12内の物理的なアドレスであるSCSI内
Addr27、キャッシュアドレス23、および障害フ
ラグ25を認識する(ステップ41)。
0)と、MP20は、CPU1が指定した論理アドレス
(データ名)からアドレステーブルを参照し、データお
よびパリティが格納されているドライブ12のDDri
ve No.24とPDrive No.26、それら
のドライブ12内の物理的なアドレスであるSCSI内
Addr27、キャッシュアドレス23、および障害フ
ラグ25を認識する(ステップ41)。
【0106】例えば、図2および図4の例で、CPU1
からドライブSD#2のSCSI内Addr27がDA
DR1のData#2に対し、更新する書き込み要求が
発行されたとする。このとき、まずMP20は、アドレ
ステーブルにより更新されるデータ(旧データ)のDD
rive No.24、SCSI内Addr27、キャ
ッシュアドレス23、および更新されるパリティ(旧パ
リティ)のPDrive No.26を認識する。
からドライブSD#2のSCSI内Addr27がDA
DR1のData#2に対し、更新する書き込み要求が
発行されたとする。このとき、まずMP20は、アドレ
ステーブルにより更新されるデータ(旧データ)のDD
rive No.24、SCSI内Addr27、キャ
ッシュアドレス23、および更新されるパリティ(旧パ
リティ)のPDrive No.26を認識する。
【0107】次に、当該データの格納されている当該ド
ライブ12に対するアドレステーブル内の障害フラグ2
5がオフ(0)か否か判別する。障害フラグ25がオン
(1)なら、障害時の更新処理(図8)に進む。障害フ
ラグ25がオフ(0)なら、MP20は、このドライブ
12は正常と認識し、以下のように処理する。
ライブ12に対するアドレステーブル内の障害フラグ2
5がオフ(0)か否か判別する。障害フラグ25がオン
(1)なら、障害時の更新処理(図8)に進む。障害フ
ラグ25がオフ(0)なら、MP20は、このドライブ
12は正常と認識し、以下のように処理する。
【0108】更新する新データは、新規データの書き込
みのときの新規書き込みデータと同様に、CPU1から
キャッシュメモリ16に格納される(ステップ43)。
そして、MP20は、アドレステーブルの当該キャッシ
ュアドレス23に、書き込む新データを格納したキャッ
シュメモリ16内のアドレスを登録する(ステップ4
4)。
みのときの新規書き込みデータと同様に、CPU1から
キャッシュメモリ16に格納される(ステップ43)。
そして、MP20は、アドレステーブルの当該キャッシ
ュアドレス23に、書き込む新データを格納したキャッ
シュメモリ16内のアドレスを登録する(ステップ4
4)。
【0109】旧データがキャッシュメモリ16にない場
合は、旧データと旧パリティを読み出しキャッシュメモ
リ16に格納する(ステップ48,45)。旧データが
キャッシュメモリ16にある場合は、ステップ48はス
キップして、旧パリティのみドライブ12から読み出し
キャッシュメモリ16に格納する(ステップ45)。こ
のときの旧データおよび旧パリティをドライブ12から
読み出しキャッシュメモリ16に格納する方法は、先に
説明した新規書き込み時のパリティ更新処理における旧
パリティのドライブ12からキャッシュメモリ16への
読み出し方法と同じである。
合は、旧データと旧パリティを読み出しキャッシュメモ
リ16に格納する(ステップ48,45)。旧データが
キャッシュメモリ16にある場合は、ステップ48はス
キップして、旧パリティのみドライブ12から読み出し
キャッシュメモリ16に格納する(ステップ45)。こ
のときの旧データおよび旧パリティをドライブ12から
読み出しキャッシュメモリ16に格納する方法は、先に
説明した新規書き込み時のパリティ更新処理における旧
パリティのドライブ12からキャッシュメモリ16への
読み出し方法と同じである。
【0110】データを格納するDDrive No.2
4のドライブでは、旧データの読み出しの後、新データ
を当該ドライブのSCSI内Addr27の位置に書き
込む(ステップ49)。パリティについては、このよう
に読み出した旧データ、旧パリティと書き込む新データ
とで、先に説明した新規書き込み時のパリティ更新処理
と同様に排他的論理和の計算を行ない、更新後の新パリ
ティを作成し、キャッシュメモリ16に格納する(ステ
ップ46)。そして、作成した新パリティを、PDri
ve No.26のドライブのSCSI内Addr27
の位置に書き込む(ステップ47)。
4のドライブでは、旧データの読み出しの後、新データ
を当該ドライブのSCSI内Addr27の位置に書き
込む(ステップ49)。パリティについては、このよう
に読み出した旧データ、旧パリティと書き込む新データ
とで、先に説明した新規書き込み時のパリティ更新処理
と同様に排他的論理和の計算を行ない、更新後の新パリ
ティを作成し、キャッシュメモリ16に格納する(ステ
ップ46)。そして、作成した新パリティを、PDri
ve No.26のドライブのSCSI内Addr27
の位置に書き込む(ステップ47)。
【0111】新データおよび新パリティの書き込みは、
先に説明した新規書き込み時と同様にして行う。
先に説明した新規書き込み時と同様にして行う。
【0112】(障害ドライブ12への書き込み処理)
【0113】次に、すでにドライブ12内に書き込まれ
ているデータを新しいデータに書き換える更新の際に、
更新される旧データが格納されているドライブ12に障
害が発生している場合の処理方法について説明する。図
8は、そのような障害時の更新処理の手順を示すフロー
チャートである。
ているデータを新しいデータに書き換える更新の際に、
更新される旧データが格納されているドライブ12に障
害が発生している場合の処理方法について説明する。図
8は、そのような障害時の更新処理の手順を示すフロー
チャートである。
【0114】図8の処理が開始される前に、MP20
は、すでに図7のステップ41で、CPU1が指定した
論理アドレス(データ名)からアドレステーブルを参照
し、データおよびパリティが格納されているドライブ1
2のDDrive No.24とPDrive No.
26、それらのドライブ12内の物理的なアドレスであ
るSCSI内Addr27、キャッシュアドレス23、
および障害フラグ25を認識している。ステップ42
で、当該データの格納されている当該ドライブ12に対
するアドレステーブル内の障害フラグ25がオン(1)
なら、MP20は、このドライブ12は異常と認識し、
図8の処理を開始する。
は、すでに図7のステップ41で、CPU1が指定した
論理アドレス(データ名)からアドレステーブルを参照
し、データおよびパリティが格納されているドライブ1
2のDDrive No.24とPDrive No.
26、それらのドライブ12内の物理的なアドレスであ
るSCSI内Addr27、キャッシュアドレス23、
および障害フラグ25を認識している。ステップ42
で、当該データの格納されている当該ドライブ12に対
するアドレステーブル内の障害フラグ25がオン(1)
なら、MP20は、このドライブ12は異常と認識し、
図8の処理を開始する。
【0115】例えば、図2および図4の例で、CPU1
からドライブSD#1のSCSI内Addr27がDA
DR1のData#1に対し、更新する書き込み要求が
発行されたとする。このとき、まずMP20は、アドレ
ステーブルにより更新されるデータ(旧データ)のDD
rive No.24、SCSI内Addr27、キャ
ッシュアドレス23、および更新されるパリティ(旧パ
リティ)のPDrive No.26を認識する。この
とき、アドレステーブルにおいて、旧データData#
1の格納されているドライブSD#1の障害フラグ25
がオン(1)となっているため、MP20は、ドライブ
SD#1に障害が発生していると認識し、図8のフロー
チャートに示す障害時の書き込み処理を開始する。
からドライブSD#1のSCSI内Addr27がDA
DR1のData#1に対し、更新する書き込み要求が
発行されたとする。このとき、まずMP20は、アドレ
ステーブルにより更新されるデータ(旧データ)のDD
rive No.24、SCSI内Addr27、キャ
ッシュアドレス23、および更新されるパリティ(旧パ
リティ)のPDrive No.26を認識する。この
とき、アドレステーブルにおいて、旧データData#
1の格納されているドライブSD#1の障害フラグ25
がオン(1)となっているため、MP20は、ドライブ
SD#1に障害が発生していると認識し、図8のフロー
チャートに示す障害時の書き込み処理を開始する。
【0116】図8において、まず更新する新データは、
新規データの書き込みのときの新規書き込みデータと同
様に、CPU1からキャッシュメモリ16に格納される
(ステップ50)。次に、MP20は、アドレステーブ
ルの当該キャッシュアドレス23に、キャッシュメモリ
16内の書き込む新データを格納したアドレスを登録す
る(ステップ51)。
新規データの書き込みのときの新規書き込みデータと同
様に、CPU1からキャッシュメモリ16に格納される
(ステップ50)。次に、MP20は、アドレステーブ
ルの当該キャッシュアドレス23に、キャッシュメモリ
16内の書き込む新データを格納したアドレスを登録す
る(ステップ51)。
【0117】次に、MP20は、パリティグループ内で
旧データの回復処理に関する全データおよびパリティの
アドレスを、アドレステーブルにより認識する(ステッ
プ52)。そして、MP20は、それぞれのドライブ1
2に対し、これらのデータおよびパリティを読み出し、
キャッシュメモリ16に格納する(ステップ53)。こ
のとき、これらのデータおよびパリティの中で、アドレ
ステーブルにおいてキャッシュアドレス23にアドレス
が登録されているものは、もうすでにキャッシュメモリ
16に存在しているとして、MP20はドライブ12か
らの読み出し処理は行わない。
旧データの回復処理に関する全データおよびパリティの
アドレスを、アドレステーブルにより認識する(ステッ
プ52)。そして、MP20は、それぞれのドライブ1
2に対し、これらのデータおよびパリティを読み出し、
キャッシュメモリ16に格納する(ステップ53)。こ
のとき、これらのデータおよびパリティの中で、アドレ
ステーブルにおいてキャッシュアドレス23にアドレス
が登録されているものは、もうすでにキャッシュメモリ
16に存在しているとして、MP20はドライブ12か
らの読み出し処理は行わない。
【0118】なお、これらのデータおよびパリティをド
ライブ12から読み出しキャッシュメモリ16に格納す
る方法は、正常時の書き込み処理と同様に、先に説明し
た新規書き込み時のパリティ更新処理における旧パリテ
ィのドライブ12からキャッシュメモリ16への読み出
し方法と同じである。
ライブ12から読み出しキャッシュメモリ16に格納す
る方法は、正常時の書き込み処理と同様に、先に説明し
た新規書き込み時のパリティ更新処理における旧パリテ
ィのドライブ12からキャッシュメモリ16への読み出
し方法と同じである。
【0119】このようにして読み出した全データおよび
旧パリティと書き込む新データとで、正常時の書き込み
処理と同様に先に説明した新規書き込み時のパリティ更
新処理のように、排他的論理和計算を行ない、更新後の
新パリティを作成しキャッシュメモリ16に格納する
(ステップ54)。このようにパリティの更新が完了し
たら、先に説明した新規書き込み時のパリティ更新処理
と同様な方法で、新パリティのみを当該ドライブ12
(PDrive No.26のドライブ)の当該SCS
I内Addr27の位置に格納することで、パリティの
更新のみを行う(ステップ55)。
旧パリティと書き込む新データとで、正常時の書き込み
処理と同様に先に説明した新規書き込み時のパリティ更
新処理のように、排他的論理和計算を行ない、更新後の
新パリティを作成しキャッシュメモリ16に格納する
(ステップ54)。このようにパリティの更新が完了し
たら、先に説明した新規書き込み時のパリティ更新処理
と同様な方法で、新パリティのみを当該ドライブ12
(PDrive No.26のドライブ)の当該SCS
I内Addr27の位置に格納することで、パリティの
更新のみを行う(ステップ55)。
【0120】(読み出し処理)
【0121】次に、すでにドライブ12内に書き込まれ
ているデータを読み出す場合について説明する。図9
は、このようなデータの読み出し処理の手順を示すフロ
ーチャートである。
ているデータを読み出す場合について説明する。図9
は、このようなデータの読み出し処理の手順を示すフロ
ーチャートである。
【0122】データの読み出し要求が発生する(ステッ
プ56)と、MP20は、CPU1が指定した論理アド
レス(データ名)からアドレステーブルを参照し、読み
出したいデータが格納されているドライブ12のDri
ve No.24、そのドライブ12内のSCSI内A
ddr27、および障害フラグ25を認識する(ステッ
プ57)。そして、当該データの格納されている当該ド
ライブ12に対するアドレステーブル内の障害フラグ2
5がオフ(0)か否か判別する(ステップ58)。障害
フラグ25がオン(1)なら、障害時の読み出し処理
(図10)に進む。障害フラグ25がオフ(0)なら、
MP20は、このドライブ12は正常と認識し、以下の
ように処理する。
プ56)と、MP20は、CPU1が指定した論理アド
レス(データ名)からアドレステーブルを参照し、読み
出したいデータが格納されているドライブ12のDri
ve No.24、そのドライブ12内のSCSI内A
ddr27、および障害フラグ25を認識する(ステッ
プ57)。そして、当該データの格納されている当該ド
ライブ12に対するアドレステーブル内の障害フラグ2
5がオフ(0)か否か判別する(ステップ58)。障害
フラグ25がオン(1)なら、障害時の読み出し処理
(図10)に進む。障害フラグ25がオフ(0)なら、
MP20は、このドライブ12は正常と認識し、以下の
ように処理する。
【0123】まず、MP20は、アドレステーブルの当
該データ名に対するキャッシュアドレス23を調べ(ス
テップ59)、キャッシュメモリ16内に読み出したい
データが存在するかどうか判定する(ステップ60)。
キャッシュアドレス23のフィールドにアドレスが登録
されており、キャッシュメモリ16内に読み出したいデ
ータが格納されている場合(キャッシュヒット)は、M
P20が、キャッシュメモリ16から当該データを読み
出す制御を開始する(ステップ61)。キャッシュメモ
リ16内に無い場合(キャッシュミス)は、当該ドライ
ブ12に対し、その内部の当該データを読み出す制御を
開始する(ステップ62以降)。
該データ名に対するキャッシュアドレス23を調べ(ス
テップ59)、キャッシュメモリ16内に読み出したい
データが存在するかどうか判定する(ステップ60)。
キャッシュアドレス23のフィールドにアドレスが登録
されており、キャッシュメモリ16内に読み出したいデ
ータが格納されている場合(キャッシュヒット)は、M
P20が、キャッシュメモリ16から当該データを読み
出す制御を開始する(ステップ61)。キャッシュメモ
リ16内に無い場合(キャッシュミス)は、当該ドライ
ブ12に対し、その内部の当該データを読み出す制御を
開始する(ステップ62以降)。
【0124】キャッシュヒット時、MP20は、アドレ
ステーブルによりCPU1から指定してきた論理アドレ
ス(データ名)を、当該データが格納されているキャッ
シュメモリ16内のキャッシュアドレス23に変換し、
キャッシュメモリ16へ当該データを読み出しに行く
(ステップ61)。具体的には、MP20の指示の元
で、キャッシュアダプタ回路(C Adp)15により
キャッシュメモリ16から当該データは読み出される。
ステーブルによりCPU1から指定してきた論理アドレ
ス(データ名)を、当該データが格納されているキャッ
シュメモリ16内のキャッシュアドレス23に変換し、
キャッシュメモリ16へ当該データを読み出しに行く
(ステップ61)。具体的には、MP20の指示の元
で、キャッシュアダプタ回路(C Adp)15により
キャッシュメモリ16から当該データは読み出される。
【0125】C Adp15により読み出されたデータ
は、データ制御回路(DCC)14の制御により、チャ
ネルインターフェース回路(CH IF)13に転送さ
れる。CH IF13では、この読み出しデータに対
し、CPU1におけるチャネルインターフェースのプロ
トコルに変換する処理を施し、チャネルインターフェー
スに対応する速度に速度調整する。CH IF13にお
けるプロトコル変換および速度調整後は、チャネルパス
ディレクタ3において、チャネルパススイッチ6が外部
インターフェースパス4を選択し、IF Adp5によ
りCPU1へデータ転送を行なう。
は、データ制御回路(DCC)14の制御により、チャ
ネルインターフェース回路(CH IF)13に転送さ
れる。CH IF13では、この読み出しデータに対
し、CPU1におけるチャネルインターフェースのプロ
トコルに変換する処理を施し、チャネルインターフェー
スに対応する速度に速度調整する。CH IF13にお
けるプロトコル変換および速度調整後は、チャネルパス
ディレクタ3において、チャネルパススイッチ6が外部
インターフェースパス4を選択し、IF Adp5によ
りCPU1へデータ転送を行なう。
【0126】一方、ステップ60の判別において、キャ
ッシュミスの場合、MP20は、キャッシュヒット時と
同様に、アドレステーブルにより、CPU1が指定した
論理アドレス(データ名)に対応するDDrive N
o.24、そのドライブ内の物理的なアドレスであるS
CSI内Addr27、および障害フラグ25を認識す
る(ステップ62)。
ッシュミスの場合、MP20は、キャッシュヒット時と
同様に、アドレステーブルにより、CPU1が指定した
論理アドレス(データ名)に対応するDDrive N
o.24、そのドライブ内の物理的なアドレスであるS
CSI内Addr27、および障害フラグ25を認識す
る(ステップ62)。
【0127】次に、MP20は、その物理アドレスに対
し、Drive IF18に、当該ドライブ12への読
み出し要求を発行するように指示する(ステップ6
3)。Drive IF18では、SCSIの読み出し
処理手順に従って、読み出しコマンドをドライブユニッ
トパス11を介して発行する。
し、Drive IF18に、当該ドライブ12への読
み出し要求を発行するように指示する(ステップ6
3)。Drive IF18では、SCSIの読み出し
処理手順に従って、読み出しコマンドをドライブユニッ
トパス11を介して発行する。
【0128】Drive IF18から読み出しコマン
ドを発行された当該ドライブ12においては、指示され
たSCSI内Addr27へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ12におけるアクセス処
理が完了した後、当該ドライブ12は、当該データを読
み出し、ドライブユニットパス11を介してDrive
IF18へ転送する。
ドを発行された当該ドライブ12においては、指示され
たSCSI内Addr27へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ12におけるアクセス処
理が完了した後、当該ドライブ12は、当該データを読
み出し、ドライブユニットパス11を介してDrive
IF18へ転送する。
【0129】Drive IF18では、転送されてき
た当該データをドライブ12側のキャッシュアダプタ回
路(C Adp)17に転送し、C Adp17では、
キャッシュメモリ16にデータを格納する(ステップ6
3)。このとき、C Adp17は、MP20に対し、
キャッシュメモリ16にデータを格納したことをMP2
0に報告する。MP20は、この報告を元に、アドレス
テーブルのCPU1が読み出し要求を発行した論理アド
レス(データ名)のキャッシュアドレス23に、データ
を格納したキャッシュメモリ16内のアドレスを登録す
る(ステップ65)。以降は、キャッシュヒット時と同
様な手順で、CPU1へ当該データを転送する(ステッ
プ64)。
た当該データをドライブ12側のキャッシュアダプタ回
路(C Adp)17に転送し、C Adp17では、
キャッシュメモリ16にデータを格納する(ステップ6
3)。このとき、C Adp17は、MP20に対し、
キャッシュメモリ16にデータを格納したことをMP2
0に報告する。MP20は、この報告を元に、アドレス
テーブルのCPU1が読み出し要求を発行した論理アド
レス(データ名)のキャッシュアドレス23に、データ
を格納したキャッシュメモリ16内のアドレスを登録す
る(ステップ65)。以降は、キャッシュヒット時と同
様な手順で、CPU1へ当該データを転送する(ステッ
プ64)。
【0130】(障害ドライブ12からの読み出し処理)
【0131】次に、障害ドライブ12内に書き込まれて
いるデータを読み出す場合について説明する。図10
は、障害ドライブからの読み出し処理の手順を示すフロ
ーチャートである。
いるデータを読み出す場合について説明する。図10
は、障害ドライブからの読み出し処理の手順を示すフロ
ーチャートである。
【0132】図10の処理が開始される前に、MP20
は、すでに図9のステップ57で、CPU1が指定した
論理アドレス(データ名)からアドレステーブルを参照
し、読み出したいデータが格納されているドライブ12
のDrive No.24、そのドライブ12内のSC
SI内Addr27、および障害フラグ25を認識して
いる。また、ステップ58で、当該データの格納されて
いる当該ドライブ12に対するアドレステーブル内の障
害フラグ25を判別する。障害フラグ25がオン(1)
なら、MP20は、このドライブ12は異常と認識し、
図10の処理を開始する。
は、すでに図9のステップ57で、CPU1が指定した
論理アドレス(データ名)からアドレステーブルを参照
し、読み出したいデータが格納されているドライブ12
のDrive No.24、そのドライブ12内のSC
SI内Addr27、および障害フラグ25を認識して
いる。また、ステップ58で、当該データの格納されて
いる当該ドライブ12に対するアドレステーブル内の障
害フラグ25を判別する。障害フラグ25がオン(1)
なら、MP20は、このドライブ12は異常と認識し、
図10の処理を開始する。
【0133】まず、MP20は、アドレステーブルの当
該データ名に対するキャッシュアドレス23を調べ(ス
テップ66)、キャッシュメモリ16内に読み出したい
データが存在するかどうか判定する(ステップ67)。
キャッシュアドレス23のフィールドにアドレスが登録
されており、キャッシュメモリ16内に読み出したいデ
ータが格納されている場合(キャッシュヒット)は、M
P20が、キャッシュメモリ16から当該データを読み
出しCPU1へ当該データを転送する(ステップ6
8)。キャッシュメモリ16内に無い場合(キャッシュ
ミス)は、当該ドライブ12に対し、その内部の当該デ
ータを読み出す制御を開始する(ステップ69以降)。
該データ名に対するキャッシュアドレス23を調べ(ス
テップ66)、キャッシュメモリ16内に読み出したい
データが存在するかどうか判定する(ステップ67)。
キャッシュアドレス23のフィールドにアドレスが登録
されており、キャッシュメモリ16内に読み出したいデ
ータが格納されている場合(キャッシュヒット)は、M
P20が、キャッシュメモリ16から当該データを読み
出しCPU1へ当該データを転送する(ステップ6
8)。キャッシュメモリ16内に無い場合(キャッシュ
ミス)は、当該ドライブ12に対し、その内部の当該デ
ータを読み出す制御を開始する(ステップ69以降)。
【0134】キャッシュミスの場合、MP20は、アド
レステーブルにより、パリティグループ内で旧データの
回復処理に関与する全データおよびパリティが格納され
ているドライブ12のDDrive No.24および
PDrive No.26、そのドライブ内の物理的な
アドレスであるSCSI内Addr27、並びに障害フ
ラグ25を認識する(ステップ69)。
レステーブルにより、パリティグループ内で旧データの
回復処理に関与する全データおよびパリティが格納され
ているドライブ12のDDrive No.24および
PDrive No.26、そのドライブ内の物理的な
アドレスであるSCSI内Addr27、並びに障害フ
ラグ25を認識する(ステップ69)。
【0135】次に、MP20は、それぞれのドライブ1
2に対し、これらのデータおよびパリティを読み出し、
キャッシュメモリ16に格納する(ステップ70)。こ
のとき、これらのデータおよびパリティの中で、アドレ
ステーブルにおいてキャッシュアドレス23にアドレス
が登録されているものは、もうすでにキャッシュメモリ
16に存在しているとして、MP20は、ドライブ12
からの読み出し処理は行わない。
2に対し、これらのデータおよびパリティを読み出し、
キャッシュメモリ16に格納する(ステップ70)。こ
のとき、これらのデータおよびパリティの中で、アドレ
ステーブルにおいてキャッシュアドレス23にアドレス
が登録されているものは、もうすでにキャッシュメモリ
16に存在しているとして、MP20は、ドライブ12
からの読み出し処理は行わない。
【0136】なお、これらのデータおよびパリティをド
ライブ12から読み出しキャッシュメモリ16に格納す
る方法は、先に説明した新規書き込み時のパリティ更新
処理における旧パリティのドライブ12からキャッシュ
メモリ16への読み出し方法と同じである。
ライブ12から読み出しキャッシュメモリ16に格納す
る方法は、先に説明した新規書き込み時のパリティ更新
処理における旧パリティのドライブ12からキャッシュ
メモリ16への読み出し方法と同じである。
【0137】次に、MP20は、PG19に対し、デー
タの復元を指示する。PG19は、ステップ70で読み
出したデータおよびパリティを用いて排他的論理和計算
を行ない、障害ドライブ12内に格納されている当該デ
ータを復元し、キャッシュメモリ16に格納する(ステ
ップ71)。このとき、C Adp17は、MP20に
対し、キャッシュメモリ16にデータを格納することを
報告する。MP20は、アドレステーブルのCPU1が
読み出し要求を発行した論理アドレス(データ名)のキ
ャッシュアドレス23に、データを格納したキャッシュ
メモリ16内のアドレスを登録する(ステップ72)。
以降は、キャッシュヒット時と同様な手順で、CPU1
へ当該データを転送する(ステップ71)。
タの復元を指示する。PG19は、ステップ70で読み
出したデータおよびパリティを用いて排他的論理和計算
を行ない、障害ドライブ12内に格納されている当該デ
ータを復元し、キャッシュメモリ16に格納する(ステ
ップ71)。このとき、C Adp17は、MP20に
対し、キャッシュメモリ16にデータを格納することを
報告する。MP20は、アドレステーブルのCPU1が
読み出し要求を発行した論理アドレス(データ名)のキ
ャッシュアドレス23に、データを格納したキャッシュ
メモリ16内のアドレスを登録する(ステップ72)。
以降は、キャッシュヒット時と同様な手順で、CPU1
へ当該データを転送する(ステップ71)。
【0138】(障害回復処理)
【0139】次に、ドライブ12に障害が発生した場合
の、障害ドライブ12内のデータを回復する手順につい
て説明する。図11は、そのような障害回復の手順を示
すフローチャートである。
の、障害ドライブ12内のデータを回復する手順につい
て説明する。図11は、そのような障害回復の手順を示
すフローチャートである。
【0140】まず、MP20は、論理グループ10内の
任意のドライブ12に障害が発生したことを認識する
(ステップ73)と、障害が発生したドライブ12に関
するアドレステーブル上の全ての項に対し、障害フラグ
25をオン(1)とする。例えば、ドライブSD#1に
障害が発生したときは、MP20により、図4のアドレ
ステーブルに示すように、ドライブSD#1に関する項
の全ての障害フラグ25がオン(1)とされる。その
後、ステップ75以降の処理に進む。
任意のドライブ12に障害が発生したことを認識する
(ステップ73)と、障害が発生したドライブ12に関
するアドレステーブル上の全ての項に対し、障害フラグ
25をオン(1)とする。例えば、ドライブSD#1に
障害が発生したときは、MP20により、図4のアドレ
ステーブルに示すように、ドライブSD#1に関する項
の全ての障害フラグ25がオン(1)とされる。その
後、ステップ75以降の処理に進む。
【0141】ステップ75以降の処理の説明の前に、本
実施例の障害回復方式について例を用いて説明する。
実施例の障害回復方式について例を用いて説明する。
【0142】図2および図4に示す例では、論理グルー
プ10を構成するドライブ12内には、5個のデータと
1個のパリティ(5D+1P)、3個のデータと1個の
パリティ(3D+1P)、および二重化の3種類のパリ
ティグループレベルのパリティグループが存在する。D
ADR1,2,3はパリティグループレベルが5D+1
Pのパリティグループで、DADR4,5,6はパリテ
ィグループレベルが3D+1Pと二重化ののパリティグ
ループが混在している。
プ10を構成するドライブ12内には、5個のデータと
1個のパリティ(5D+1P)、3個のデータと1個の
パリティ(3D+1P)、および二重化の3種類のパリ
ティグループレベルのパリティグループが存在する。D
ADR1,2,3はパリティグループレベルが5D+1
Pのパリティグループで、DADR4,5,6はパリテ
ィグループレベルが3D+1Pと二重化ののパリティグ
ループが混在している。
【0143】この3種類のパリティグループレベルで
は、5D+1P、3D+1P、二重化の順に信頼性は高
く、障害時の性能も高い。
は、5D+1P、3D+1P、二重化の順に信頼性は高
く、障害時の性能も高い。
【0144】具体的には、DADR1,2,3の5D+
1Pのパリティグループでは、1台目のドライブ12に
障害が発生し、回復処理前にさらに論理グループ10内
の任意のドライブ12に障害が発生すると、データ消失
となる。一方、DADR4,5,6の3D+1Pのパリ
ティグループでは、1台目のドライブ12に障害が発生
し、論理グループ10で回復処理前にさらにもう1台の
ドライブ12に障害が発生しても、パリティグループを
構成しているデータが格納されているドライブ12でな
ければデータ消失とはならない。さらに、二重化のパリ
ティグループに関しては、二重化のペアのドライブ12
でなければデータ消失とはならない。
1Pのパリティグループでは、1台目のドライブ12に
障害が発生し、回復処理前にさらに論理グループ10内
の任意のドライブ12に障害が発生すると、データ消失
となる。一方、DADR4,5,6の3D+1Pのパリ
ティグループでは、1台目のドライブ12に障害が発生
し、論理グループ10で回復処理前にさらにもう1台の
ドライブ12に障害が発生しても、パリティグループを
構成しているデータが格納されているドライブ12でな
ければデータ消失とはならない。さらに、二重化のパリ
ティグループに関しては、二重化のペアのドライブ12
でなければデータ消失とはならない。
【0145】このように、パリティグループの構成によ
り、2台目のドライブ12に障害が発生することにより
データ消失する確率が異なる。逆にいえば、そのような
確率が異なるパリティグループは、異なるパリティグル
ープレベルとして分類している。
り、2台目のドライブ12に障害が発生することにより
データ消失する確率が異なる。逆にいえば、そのような
確率が異なるパリティグループは、異なるパリティグル
ープレベルとして分類している。
【0146】また、このパリティグループレベルによる
分類は、以下に示すように、障害時における性能低下に
おいても適用できる。例えば、先の障害時における書き
込み、読み出し処理で説明したように、障害が発生した
ドライブ12に対し書き込みまたは読み出し要求が発生
した場合、5D+1Pでは5台のドライブ12に対し読
み出し要求を発行しなければならない。しかし、3D+
1Pでは3台のドライブ12に対する読み出し要求です
み、二重化に対しては1台のみである。このように、障
害が発生したドライブ12に対する読み出し要求または
書き込み要求が発生した場合、回復処理において読み出
し要求を発行しなければならないドライブ12の数が5
D+1P、3D+1P、二重化の順に少ないため、この
順に障害時の性能は高い。
分類は、以下に示すように、障害時における性能低下に
おいても適用できる。例えば、先の障害時における書き
込み、読み出し処理で説明したように、障害が発生した
ドライブ12に対し書き込みまたは読み出し要求が発生
した場合、5D+1Pでは5台のドライブ12に対し読
み出し要求を発行しなければならない。しかし、3D+
1Pでは3台のドライブ12に対する読み出し要求です
み、二重化に対しては1台のみである。このように、障
害が発生したドライブ12に対する読み出し要求または
書き込み要求が発生した場合、回復処理において読み出
し要求を発行しなければならないドライブ12の数が5
D+1P、3D+1P、二重化の順に少ないため、この
順に障害時の性能は高い。
【0147】そこで、本実施例では、1台目のドライブ
12に障害が発生し、この障害が発生したドライブ12
内のデータを復元する回復処理を行う場合、パリティグ
ループレベルの低い(2台目の障害が発生した場合にデ
ータ消失となる確率(データ消失確率)の高い)パリテ
ィグループから、図11および図12に示すように、順
次回復処理を行なうようにしている。
12に障害が発生し、この障害が発生したドライブ12
内のデータを復元する回復処理を行う場合、パリティグ
ループレベルの低い(2台目の障害が発生した場合にデ
ータ消失となる確率(データ消失確率)の高い)パリテ
ィグループから、図11および図12に示すように、順
次回復処理を行なうようにしている。
【0148】現在、ドライブ12の容量の増加に伴いデ
ィスクアレイの有力な適用先の一つであるファイルサー
バの大規模化が進み、多くのユーザが使用するようにな
ってきた。このため、ファイルサーバのディスクに障害
が発生し、障害回復のために長時間停止すると、多くの
ユーザの業務を停止することになり、大きな被害を生じ
る。このため、多くのユーザが使用している時間帯では
なく、なるべくファイルシステムを使用するユーザが少
ないときに停止して回復処理を行いたい。
ィスクアレイの有力な適用先の一つであるファイルサー
バの大規模化が進み、多くのユーザが使用するようにな
ってきた。このため、ファイルサーバのディスクに障害
が発生し、障害回復のために長時間停止すると、多くの
ユーザの業務を停止することになり、大きな被害を生じ
る。このため、多くのユーザが使用している時間帯では
なく、なるべくファイルシステムを使用するユーザが少
ないときに停止して回復処理を行いたい。
【0149】本発明では、高い信頼性を確保するととも
に障害時の性能低下を最小限に抑さえ、回復処理を集中
してではなく、時間を分散して行う。そこで、具体的な
回復方法を以下に示す。
に障害時の性能低下を最小限に抑さえ、回復処理を集中
してではなく、時間を分散して行う。そこで、具体的な
回復方法を以下に示す。
【0150】図2および図4において、ドライブSD#
1に障害が発生したとする。ドライブSD#1には、S
CSI内Addr27がDADR1の位置にData#
1が、DADR2にData#6が、DADR3にDa
ta#11が、DADR4にData#16が、DAD
R5にData#20が、DADR6にパリティが、そ
れぞれ格納されている。Data#1,Data#6,
Data#11は5D+1Pのパリティグループレベル
のパリティグループに所属し、Data#16は二重化
のパリティグループレベルのパリティグループに所属
し、Data#20,パリティは3D+1Pのパリティ
グループレベルのパリティグループに所属している。
1に障害が発生したとする。ドライブSD#1には、S
CSI内Addr27がDADR1の位置にData#
1が、DADR2にData#6が、DADR3にDa
ta#11が、DADR4にData#16が、DAD
R5にData#20が、DADR6にパリティが、そ
れぞれ格納されている。Data#1,Data#6,
Data#11は5D+1Pのパリティグループレベル
のパリティグループに所属し、Data#16は二重化
のパリティグループレベルのパリティグループに所属
し、Data#20,パリティは3D+1Pのパリティ
グループレベルのパリティグループに所属している。
【0151】そこで、MP20は、まずデータ消失確率
が高く障害時の性能が低い5D+1Pのパリティグルー
プレベルのパリティグループに所属するデータの回復を
考える。回復とは、具体的には、この障害が発生したド
ライブSD#1を正常なドライブ12に交換したり(例
えば、ドライブの交換を促すメッセージを出力しユーザ
にドライブを交換させる)、ドライブ12の障害に備え
予備のドライブ12を予め用意してある場合は、この予
備のドライブ12に切り換えるなどの処理である。
が高く障害時の性能が低い5D+1Pのパリティグルー
プレベルのパリティグループに所属するデータの回復を
考える。回復とは、具体的には、この障害が発生したド
ライブSD#1を正常なドライブ12に交換したり(例
えば、ドライブの交換を促すメッセージを出力しユーザ
にドライブを交換させる)、ドライブ12の障害に備え
予備のドライブ12を予め用意してある場合は、この予
備のドライブ12に切り換えるなどの処理である。
【0152】図11に戻って、上述したような回復処理
の手順を説明する。
の手順を説明する。
【0153】まず、MP20は、上位のCPU1から、
回復処理を行おうとしている障害ドライブ12が所属す
る論理グループ10へ発行される読み出しおよび書き込
み要求数(IO数)を調べる(ステップ75)。そし
て、そのIO数が、あらかじめ設定してある設定値以下
か否かを判別する(ステップ76)。
回復処理を行おうとしている障害ドライブ12が所属す
る論理グループ10へ発行される読み出しおよび書き込
み要求数(IO数)を調べる(ステップ75)。そし
て、そのIO数が、あらかじめ設定してある設定値以下
か否かを判別する(ステップ76)。
【0154】IO数が、その設定値を越えている場合
に、障害が発生したドライブ12への読み出しまたは書
き込み要求が発生したら、上述の障害ドライブへの読み
出し処理または書き込み処理で説明したように、パリテ
ィを用いて上位からの読み出しまたは書き込み要求に答
える(ステップ77)。一方、IO数が設定値以下にな
ったら、5D+1Pのパリティグループレベルのパリテ
ィグループに所属するデータの回復処理を行い障害フラ
グをオフにする(ステップ78)。回復処理は、障害ド
ライブ12への読み出しで行ったように個々のデータを
復元する。
に、障害が発生したドライブ12への読み出しまたは書
き込み要求が発生したら、上述の障害ドライブへの読み
出し処理または書き込み処理で説明したように、パリテ
ィを用いて上位からの読み出しまたは書き込み要求に答
える(ステップ77)。一方、IO数が設定値以下にな
ったら、5D+1Pのパリティグループレベルのパリテ
ィグループに所属するデータの回復処理を行い障害フラ
グをオフにする(ステップ78)。回復処理は、障害ド
ライブ12への読み出しで行ったように個々のデータを
復元する。
【0155】個々のデータの復元について、具体的に説
明する。まず、MP20は、Data#1の復元を行
う。MP20は、アドレステーブルにより、Data#
2,3,4,5とこれらのデータから作成されたパリテ
ィが格納されているDDrive No.24とPDr
ive No.26、それらのドライブ12内の物理的
なアドレスであるSCSI内Addr27、および障害
フラグ25を認識する。
明する。まず、MP20は、Data#1の復元を行
う。MP20は、アドレステーブルにより、Data#
2,3,4,5とこれらのデータから作成されたパリテ
ィが格納されているDDrive No.24とPDr
ive No.26、それらのドライブ12内の物理的
なアドレスであるSCSI内Addr27、および障害
フラグ25を認識する。
【0156】次に、MP20は、それぞれのドライブ1
2に対し、これらのデータおよびパリティを読み出し、
キャッシュメモリ16に格納する。このとき、これらの
データおよびパリティの中で、図4のアドレステーブル
ではData#2,4,5に対してキャッシュアドレス
23にアドレスが登録されているため、これらのデータ
はもうすでにキャッシュメモリ16に存在している。そ
の場合は、MP20はドライブ12からの読み出し処理
は行わない。
2に対し、これらのデータおよびパリティを読み出し、
キャッシュメモリ16に格納する。このとき、これらの
データおよびパリティの中で、図4のアドレステーブル
ではData#2,4,5に対してキャッシュアドレス
23にアドレスが登録されているため、これらのデータ
はもうすでにキャッシュメモリ16に存在している。そ
の場合は、MP20はドライブ12からの読み出し処理
は行わない。
【0157】なお、これらのデータおよびパリティをド
ライブ12から読み出しキャッシュメモリ16に格納す
る方法は、先に説明したドライブ12からキャッシュメ
モリ16への読み出し方法と同じである。
ライブ12から読み出しキャッシュメモリ16に格納す
る方法は、先に説明したドライブ12からキャッシュメ
モリ16への読み出し方法と同じである。
【0158】MP20は、PG19に対し、データの復
元とキャッシュメモリ16への格納を指示する。PG1
9は、上述したように読み出したデータおよびパリティ
で排他的論理和計算を行ない、障害ドライブ12内に格
納されているData#1を復元し、キャッシュメモリ
16に格納する。このとき、C Adp17は、MP2
0に対して、キャッシュメモリ16にデータを格納する
ことを報告する。
元とキャッシュメモリ16への格納を指示する。PG1
9は、上述したように読み出したデータおよびパリティ
で排他的論理和計算を行ない、障害ドライブ12内に格
納されているData#1を復元し、キャッシュメモリ
16に格納する。このとき、C Adp17は、MP2
0に対して、キャッシュメモリ16にデータを格納する
ことを報告する。
【0159】MP20は、この報告を元に、アドレステ
ーブルのData#1のキャッシュアドレス23に、キ
ャッシュメモリ16内のデータ格納アドレスを登録し、
その障害フラグ25をオフ(0)とする。このように復
元したデータを、例えば交換した正常なドライブ12に
格納する。Data#6,11についても同様に復元
し、交換した正常なドライブ12に格納する。
ーブルのData#1のキャッシュアドレス23に、キ
ャッシュメモリ16内のデータ格納アドレスを登録し、
その障害フラグ25をオフ(0)とする。このように復
元したデータを、例えば交換した正常なドライブ12に
格納する。Data#6,11についても同様に復元
し、交換した正常なドライブ12に格納する。
【0160】このように、5D+1Pのパリティグルー
プレベルのパリティグループに所属するデータを復元
し、回復した後は、データ消失確率は低下し、障害時の
性能は向上する。
プレベルのパリティグループに所属するデータを復元
し、回復した後は、データ消失確率は低下し、障害時の
性能は向上する。
【0161】5D+1Pのパリティグループレベルの回
復が完了したら、MP20は、再び上位のCPU1か
ら、障害ドライブ12(実際は、すでにステップ78で
正常なドライブへの交換あるいは予備ドライブへの交換
が行われているが、この時点では復元されているのは5
D+1Pのみであり、他のパリティグループレベルは復
元されていないので、便宜上、障害ドライブと呼ぶもの
とする)が所属する論理グループ10へ発行される読み
出しおよび書き込み要求数(IO数)を調べ、そのIO
数があらかじめ設定してある設定値以下か否かを判別す
る(ステップ79)。
復が完了したら、MP20は、再び上位のCPU1か
ら、障害ドライブ12(実際は、すでにステップ78で
正常なドライブへの交換あるいは予備ドライブへの交換
が行われているが、この時点では復元されているのは5
D+1Pのみであり、他のパリティグループレベルは復
元されていないので、便宜上、障害ドライブと呼ぶもの
とする)が所属する論理グループ10へ発行される読み
出しおよび書き込み要求数(IO数)を調べ、そのIO
数があらかじめ設定してある設定値以下か否かを判別す
る(ステップ79)。
【0162】IO数が、その設定値を越えている場合
に、障害ドライブ12の3D+1Pまたは二重化のパリ
ティグループへの読み出しまたは書き込み要求が発生し
たら、上述の障害ドライブへの読み出し処理または書き
込み処理で説明したように、パリティを用いて上位から
の読み出しまたは書き込み要求に答える(ステップ8
0)。一方、IO数が設定値以下になったら、3D+1
Pのパリティグループレベルのパリティグループに所属
するデータの回復処理を行い障害フラグをオフにする
(ステップ81)。回復処理方法は、5D+1Pのパリ
ティグループレベルと同様である。
に、障害ドライブ12の3D+1Pまたは二重化のパリ
ティグループへの読み出しまたは書き込み要求が発生し
たら、上述の障害ドライブへの読み出し処理または書き
込み処理で説明したように、パリティを用いて上位から
の読み出しまたは書き込み要求に答える(ステップ8
0)。一方、IO数が設定値以下になったら、3D+1
Pのパリティグループレベルのパリティグループに所属
するデータの回復処理を行い障害フラグをオフにする
(ステップ81)。回復処理方法は、5D+1Pのパリ
ティグループレベルと同様である。
【0163】このように、3D+1Pのパリティグルー
プレベルのパリティグループに所属するデータを復元
し、回復した後は、データ消失確率はさらに低下し、障
害時の性能はさらに向上する。
プレベルのパリティグループに所属するデータを復元
し、回復した後は、データ消失確率はさらに低下し、障
害時の性能はさらに向上する。
【0164】3D+1Pのパリティグループレベルの回
復が完了したら、MP20は、再び上位のCPU1か
ら、障害ドライブ12が所属する論理グループ10へ発
行される読み出しおよび書き込み要求数(IO数)を調
べ、そのIO数があらかじめ設定してある設定値以下か
否かを判別する(ステップ82)。
復が完了したら、MP20は、再び上位のCPU1か
ら、障害ドライブ12が所属する論理グループ10へ発
行される読み出しおよび書き込み要求数(IO数)を調
べ、そのIO数があらかじめ設定してある設定値以下か
否かを判別する(ステップ82)。
【0165】IO数が、その設定値を越えている場合
に、障害ドライブ12の二重化のパリティグループへの
読み出しまたは書き込み要求が発生したら、上述の障害
ドライブへの読み出し処理または書き込み処理で説明し
たように、二重化の障害ドライブでない方のドライブを
用いて上位からの読み出しまたは書き込み要求に答える
(ステップ83)。一方、IO数が設定値以下になった
ら、二重化のパリティグループレベルのパリティグルー
プに所属するデータの回復処理を行い障害フラグをオフ
にする(ステップ84)。
に、障害ドライブ12の二重化のパリティグループへの
読み出しまたは書き込み要求が発生したら、上述の障害
ドライブへの読み出し処理または書き込み処理で説明し
たように、二重化の障害ドライブでない方のドライブを
用いて上位からの読み出しまたは書き込み要求に答える
(ステップ83)。一方、IO数が設定値以下になった
ら、二重化のパリティグループレベルのパリティグルー
プに所属するデータの回復処理を行い障害フラグをオフ
にする(ステップ84)。
【0166】回復処理方法は、例えば、ドライブSD#
1に格納されているData#16の二重化データが格
納されているドライブSD#2からData#16をキ
ャッシュメモリ16に読み出して、キュシュメモリ16
からドライブSD#1のDADR4にこのデータを書き
込むことにより行う。ドライブSD#2からData#
16をキャッシュメモリ16に読み出すのは、先に述べ
た正常時の読み出し処理における、キャッシュミスの時
と同じである。また、キャッシュメモリ16からドライ
ブSD#1にData#16を書き込むのは、先に述べ
た正常時の書き込み処理と同じである。
1に格納されているData#16の二重化データが格
納されているドライブSD#2からData#16をキ
ャッシュメモリ16に読み出して、キュシュメモリ16
からドライブSD#1のDADR4にこのデータを書き
込むことにより行う。ドライブSD#2からData#
16をキャッシュメモリ16に読み出すのは、先に述べ
た正常時の読み出し処理における、キャッシュミスの時
と同じである。また、キャッシュメモリ16からドライ
ブSD#1にData#16を書き込むのは、先に述べ
た正常時の書き込み処理と同じである。
【0167】図12(a)は、従来方法の障害回復処理
と本実施例の障害回復処理とで、データ消失確率がどの
ように変化するかを示したものである。本実施例では、
IO状況が設定値以下の場合に、5D+1Pの回復、3
D+1Pの回復、および二重化の回復に、分散して回復
処理を行っている。
と本実施例の障害回復処理とで、データ消失確率がどの
ように変化するかを示したものである。本実施例では、
IO状況が設定値以下の場合に、5D+1Pの回復、3
D+1Pの回復、および二重化の回復に、分散して回復
処理を行っている。
【0168】5D+1Pの回復を行う前の状態では、5
D+1Pのパリティグループレベルについては、この時
点で障害を起こしているドライブ以外のどのドライブが
障害を起こしたとしても、100%データ消失する。5
D+1Pの回復を行った後では、3D+1Pのパリティ
グループレベルについては、障害ドライブ以外の5台の
ドライブのうち3D+1Pに関与する2台の何れかが障
害を起こさない限りデータ消失はしないから、データ消
失確率は40%といえる。
D+1Pのパリティグループレベルについては、この時
点で障害を起こしているドライブ以外のどのドライブが
障害を起こしたとしても、100%データ消失する。5
D+1Pの回復を行った後では、3D+1Pのパリティ
グループレベルについては、障害ドライブ以外の5台の
ドライブのうち3D+1Pに関与する2台の何れかが障
害を起こさない限りデータ消失はしないから、データ消
失確率は40%といえる。
【0169】さらに、3D+1Pの回復を行った後で
は、二重化のパリティグループレベルについては、障害
ドライブ以外の5台のドライブのうち二重化に関与する
正常な1台が障害を起こさない限りデータ消失はしない
から、データ消失確率は20%といえる。二重化の回復
を行った後は、回復処理がすべて完了し、データ消失確
率は0%となる。
は、二重化のパリティグループレベルについては、障害
ドライブ以外の5台のドライブのうち二重化に関与する
正常な1台が障害を起こさない限りデータ消失はしない
から、データ消失確率は20%といえる。二重化の回復
を行った後は、回復処理がすべて完了し、データ消失確
率は0%となる。
【0170】これに対し、従来は、例えば6台のドライ
ブのすべてを用いて5D+1Pのパリティグループを設
定するので、障害ドライブ以外の5台のうちどの1台が
障害を起こしてもデータは消失し、したがって障害ドラ
イブの全体を回復するまではデータ消失確率は100%
である。
ブのすべてを用いて5D+1Pのパリティグループを設
定するので、障害ドライブ以外の5台のうちどの1台が
障害を起こしてもデータは消失し、したがって障害ドラ
イブの全体を回復するまではデータ消失確率は100%
である。
【0171】図12(b)は、従来方法の障害回復処理
と本実施例の障害回復処理とで、性能がどのように変化
するかを示したものである。本実施例では、5D+1P
の回復、3D+1Pの回復、および二重化の回復を行う
ごとに、性能が徐々に回復する。これに対し、従来方法
では、回復がすべて完了するまで、性能は低下したまま
である。
と本実施例の障害回復処理とで、性能がどのように変化
するかを示したものである。本実施例では、5D+1P
の回復、3D+1Pの回復、および二重化の回復を行う
ごとに、性能が徐々に回復する。これに対し、従来方法
では、回復がすべて完了するまで、性能は低下したまま
である。
【0172】なお、本実施例では、図2に示すような論
理グループ10内のデータ配置で説明してきたが、論理
グループ10内のデータ配置は、ユーザの初期設定の際
に自由に設定可能なため、制約はない。また、レベル5
において、パリティグループレベルを4D+2Pのよう
にパリティグループ内のパリティ数を増加させ、さらに
信頼性(データ消失確率)を向上させたパリティグルー
プの設定も可能である。
理グループ10内のデータ配置で説明してきたが、論理
グループ10内のデータ配置は、ユーザの初期設定の際
に自由に設定可能なため、制約はない。また、レベル5
において、パリティグループレベルを4D+2Pのよう
にパリティグループ内のパリティ数を増加させ、さらに
信頼性(データ消失確率)を向上させたパリティグルー
プの設定も可能である。
【0173】また、本実施例では、信頼性(データ消失
確率)と障害時の性能の観点から、データ消失確率が高
く、障害時の性能低下が大きいパリティグループレベル
の順(5D+1P、3D+1P、および二重化の順)に
回復処理を時間を分散して行った。
確率)と障害時の性能の観点から、データ消失確率が高
く、障害時の性能低下が大きいパリティグループレベル
の順(5D+1P、3D+1P、および二重化の順)に
回復処理を時間を分散して行った。
【0174】この方法の変形例として以下のような方法
もある。まず、データの重要性が高いほど、消失確率が
低いパリティグループレベル(消失確率は、二重化、3
D+1P、5D+1Pの順に高くなる)に格納する。ま
た、回復処理は、データの消失確率が低いパリティグル
ープレベルの順(二重化、3D+1P、5D+1Pの
順)に行う。このように信頼性のみを重視した回復処理
を行うことにより、非常に重要なデータに対するデータ
消失確率を大きく減少させることが可能となる。
もある。まず、データの重要性が高いほど、消失確率が
低いパリティグループレベル(消失確率は、二重化、3
D+1P、5D+1Pの順に高くなる)に格納する。ま
た、回復処理は、データの消失確率が低いパリティグル
ープレベルの順(二重化、3D+1P、5D+1Pの
順)に行う。このように信頼性のみを重視した回復処理
を行うことにより、非常に重要なデータに対するデータ
消失確率を大きく減少させることが可能となる。
【0175】さらに、以下のようにしてもよい。まず、
頻繁にCPU1から読み出しまたは書き込み要求が発行
されるデータは、障害時の性能低下が小さくデータ消失
確率の小さい二重化のパリティグループに格納する。ま
た逆に、それ程、読み出しまたは書き込み要求が発行さ
れることがないデータは、障害時の性能低下が大きく、
しかもデータ消失確率の高い5D+1Pのパリティグル
ープに格納する。また、ドライブ12に障害が発生した
場合、データ消失確率の高いパリティグループから回復
処理を行うようにする。これにより、障害により性能低
下している期間を最小にすることが可能となる。
頻繁にCPU1から読み出しまたは書き込み要求が発行
されるデータは、障害時の性能低下が小さくデータ消失
確率の小さい二重化のパリティグループに格納する。ま
た逆に、それ程、読み出しまたは書き込み要求が発行さ
れることがないデータは、障害時の性能低下が大きく、
しかもデータ消失確率の高い5D+1Pのパリティグル
ープに格納する。また、ドライブ12に障害が発生した
場合、データ消失確率の高いパリティグループから回復
処理を行うようにする。これにより、障害により性能低
下している期間を最小にすることが可能となる。
【0176】以上のように、本発明では、ユーザの使用
環境により、回復処理方法を自由に設定することも可能
である。さらに、回復処理を行う時間、および回復処理
の開始を判定する際の上位からの読み出し書き込み要求
の状況に対する設定値も、自由に設定することが可能で
ある。回復処理方法の設定は、MP20に対し初期設定
の段階で指示する。
環境により、回復処理方法を自由に設定することも可能
である。さらに、回復処理を行う時間、および回復処理
の開始を判定する際の上位からの読み出し書き込み要求
の状況に対する設定値も、自由に設定することが可能で
ある。回復処理方法の設定は、MP20に対し初期設定
の段階で指示する。
【0177】さらに、以下に示すように、本発明はバッ
クアップにも利用することが可能である。ドライブ12
に書き込まれているデータが重要な場合、ドライブ12
内のデータをMTあるいは光ディスク等に格納すること
でバックアップを取る。このようにバックアップを取っ
ておけば、ディスクアレイ内のドライブ12に障害が発
生し、データ消失しても、このバックアップデータから
消失したデータを回復することが可能である。
クアップにも利用することが可能である。ドライブ12
に書き込まれているデータが重要な場合、ドライブ12
内のデータをMTあるいは光ディスク等に格納すること
でバックアップを取る。このようにバックアップを取っ
ておけば、ディスクアレイ内のドライブ12に障害が発
生し、データ消失しても、このバックアップデータから
消失したデータを回復することが可能である。
【0178】本発明を適用することにより、パリティグ
ループレベルの特性により、このバックアップ処理を行
う時間を分散することができる。具体的には、消失確率
は二重化、3D+1P、5D+1Pのパリティグループ
の順に高くなる。そこで、消失確率の高いパリティグル
ープほど頻繁にバックアップを取るようにする。これに
より、データ消失確率の高い危険なデータのみのバック
アップですむため、バックアップ時間を短縮することが
可能となり、また、バックアップを行う時間をパリティ
グループレベルの特性により分散することが可能とな
る。
ループレベルの特性により、このバックアップ処理を行
う時間を分散することができる。具体的には、消失確率
は二重化、3D+1P、5D+1Pのパリティグループ
の順に高くなる。そこで、消失確率の高いパリティグル
ープほど頻繁にバックアップを取るようにする。これに
より、データ消失確率の高い危険なデータのみのバック
アップですむため、バックアップ時間を短縮することが
可能となり、また、バックアップを行う時間をパリティ
グループレベルの特性により分散することが可能とな
る。
【0179】また、障害回復と同様に、データの重要性
が高いほど、データ消失確率が低いパリティグループレ
ベル(消失確率は、二重化、3D+1P、5D+1Pの
順に高くなる)に格納し、バックアップはデータの消失
確率が低いパリティグループレベルの順(二重化、3D
+1P、5D+1Pの順)に行う信頼性のみを重視した
バックアップも可能なことは明らかである。
が高いほど、データ消失確率が低いパリティグループレ
ベル(消失確率は、二重化、3D+1P、5D+1Pの
順に高くなる)に格納し、バックアップはデータの消失
確率が低いパリティグループレベルの順(二重化、3D
+1P、5D+1Pの順)に行う信頼性のみを重視した
バックアップも可能なことは明らかである。
【0180】このバックアップは、障害回復処理と同様
に、ユーザが予め設定した値以下になったらバックアッ
プ処理を開始するようにすることも可能である。バック
アップは、システムからバックアップを促すメッセージ
を出力してユーザに行わせるようにしたり、自動的にパ
ックアップを取るようにしてもよい。
に、ユーザが予め設定した値以下になったらバックアッ
プ処理を開始するようにすることも可能である。バック
アップは、システムからバックアップを促すメッセージ
を出力してユーザに行わせるようにしたり、自動的にパ
ックアップを取るようにしてもよい。
【0181】従来では1台のドライブ12内のデータの
総てに対しバックアップを取らなければならなかったた
め、バックアップの時間が非常に長くかかり、バックア
ップ中は通常の読み出しおよび書き込み処理を中止しな
けばならない。ファイルサーバのように多数のユーザが
使用するシステムにおいて、長時間連続してサービスを
中止することは、障害回復と同様に大きな問題となる。
本発明をバックアップに適用することにより、バックア
ップを行う時間をパリティグループレベルの特性により
分散することが可能となるので、本発明はファイルサー
バなどに用いて好適である。
総てに対しバックアップを取らなければならなかったた
め、バックアップの時間が非常に長くかかり、バックア
ップ中は通常の読み出しおよび書き込み処理を中止しな
けばならない。ファイルサーバのように多数のユーザが
使用するシステムにおいて、長時間連続してサービスを
中止することは、障害回復と同様に大きな問題となる。
本発明をバックアップに適用することにより、バックア
ップを行う時間をパリティグループレベルの特性により
分散することが可能となるので、本発明はファイルサー
バなどに用いて好適である。
【0182】[実施例2]次に、第2の実施例として、
RAIDのレベル3において本発明を適用した例を示
す。本実施例のディスクアレイの構成や処理の手順など
は、上記第1の実施例と同様であるので、以下では第1
の実施例と異なる点を説明する。
RAIDのレベル3において本発明を適用した例を示
す。本実施例のディスクアレイの構成や処理の手順など
は、上記第1の実施例と同様であるので、以下では第1
の実施例と異なる点を説明する。
【0183】図13は、本実施例での論理グループ10
内のパリティグループの配置の一例を示す。論理グルー
プ10において、SCSI内Addr27がDADR
1,2,3は5D+1Pのパリティグループレベルのパ
リティグループで、SCSI内Addr27がDADR
4,5,6は2D+1Pのパリティグループレベルのパ
リティグループである。
内のパリティグループの配置の一例を示す。論理グルー
プ10において、SCSI内Addr27がDADR
1,2,3は5D+1Pのパリティグループレベルのパ
リティグループで、SCSI内Addr27がDADR
4,5,6は2D+1Pのパリティグループレベルのパ
リティグループである。
【0184】本実施例では、データ消失確率は、5D+
1Pの方が2D+1Pより高い。また、レベル3では、
5D+1Pおよび2D+1P共、障害時と正常時では性
能は変わらない。
1Pの方が2D+1Pより高い。また、レベル3では、
5D+1Pおよび2D+1P共、障害時と正常時では性
能は変わらない。
【0185】5D+1Pのパリティグループレベルのパ
リティグループについて、DADR1のData#1を
例に説明する。5D+1Pのパリティグループは、上位
から転送されてきた1個のデータであるData#1を
5個のサブデータ(Data#1−1,Data#1−
2,Data#1−3,Data#1−4,Data#
1−5)に分割し、このそれぞれのサブデータをSD#
1,2,3,4,5の5台のドライブ12にパラレルに
書き込む。このとき、これらのサブデータから実施例1
と同様に図5に示すようにパリティを作成し、データの
書き込みと同時にドライブSD#6に書き込む。
リティグループについて、DADR1のData#1を
例に説明する。5D+1Pのパリティグループは、上位
から転送されてきた1個のデータであるData#1を
5個のサブデータ(Data#1−1,Data#1−
2,Data#1−3,Data#1−4,Data#
1−5)に分割し、このそれぞれのサブデータをSD#
1,2,3,4,5の5台のドライブ12にパラレルに
書き込む。このとき、これらのサブデータから実施例1
と同様に図5に示すようにパリティを作成し、データの
書き込みと同時にドライブSD#6に書き込む。
【0186】また、2D+1Pのパリティグループレベ
ルのパリティグループは、上位から転送されてきた1個
のデータを2個のサブデータに分割し、このそれぞれの
サブデータを2台のドライブ12にパラレルに書き込
む。このとき、これらのサブデータからパリティを作成
し、データの書き込みと同時に書き込む。
ルのパリティグループは、上位から転送されてきた1個
のデータを2個のサブデータに分割し、このそれぞれの
サブデータを2台のドライブ12にパラレルに書き込
む。このとき、これらのサブデータからパリティを作成
し、データの書き込みと同時に書き込む。
【0187】本実施例において、上記のようにパリティ
グループレベルを設定する方法は、実施例1と同様に、
図14に示すようなアドレステーブルに対しユーザが初
期設定において行う。また、アドレス変換も実施例1と
同様に図14に示すアドレステーブルを用いて行う。
グループレベルを設定する方法は、実施例1と同様に、
図14に示すようなアドレステーブルに対しユーザが初
期設定において行う。また、アドレス変換も実施例1と
同様に図14に示すアドレステーブルを用いて行う。
【0188】本実施例で用いる図14のアドレステーブ
ルは、ほぼ図4のアドレステーブルと同じであるが、本
実施例はRAIDレベル3であるから、サブデータ名の
フィールド28が加えられている。
ルは、ほぼ図4のアドレステーブルと同じであるが、本
実施例はRAIDレベル3であるから、サブデータ名の
フィールド28が加えられている。
【0189】本実施例では、データを新規または更新に
より書き込む場合にパリティを更新する処理が実施例1
とは異なる。実施例1では、レベル5のパリティ更新処
理を行うが、本実施例ではレベル3のパリティ更新処理
を行う。レベル3のパリティ更新処理では、レベル5の
ように旧データおよび旧パリティの読み出しは必要では
なく、書き込むデータから図5に示すようなパリティの
作成が可能である。それ以外においては、実施例1で示
した手順により、図14に示すアドレステーブルに従い
書き込み処理を行う。
より書き込む場合にパリティを更新する処理が実施例1
とは異なる。実施例1では、レベル5のパリティ更新処
理を行うが、本実施例ではレベル3のパリティ更新処理
を行う。レベル3のパリティ更新処理では、レベル5の
ように旧データおよび旧パリティの読み出しは必要では
なく、書き込むデータから図5に示すようなパリティの
作成が可能である。それ以外においては、実施例1で示
した手順により、図14に示すアドレステーブルに従い
書き込み処理を行う。
【0190】一方、障害時の書き込みにおいては、実施
例1に示したレベル5では、パリティの更新のみを行っ
たが、本実施例のレベル3ではパリティグループにおい
て、障害が発生しているドライブ以外の正常なドライブ
に対してサブデータおよびパリティを正常時と同様にパ
ラレルに書き込む。
例1に示したレベル5では、パリティの更新のみを行っ
たが、本実施例のレベル3ではパリティグループにおい
て、障害が発生しているドライブ以外の正常なドライブ
に対してサブデータおよびパリティを正常時と同様にパ
ラレルに書き込む。
【0191】また、障害時の読み出し処理では、実施例
1のレベル5と同様に、パリティグループにおいて、障
害が発生しているドライブ以外の正常なドライブからサ
ブデータおよびパリティを読み出し、これらから障害ド
ライブに格納されているサブデータを復元する。レベル
3では、このようにして復元したサブデータと正常なド
ライブから読み出したサブデータとを結合して、CPU
1へ転送する。
1のレベル5と同様に、パリティグループにおいて、障
害が発生しているドライブ以外の正常なドライブからサ
ブデータおよびパリティを読み出し、これらから障害ド
ライブに格納されているサブデータを復元する。レベル
3では、このようにして復元したサブデータと正常なド
ライブから読み出したサブデータとを結合して、CPU
1へ転送する。
【0192】論理グループ10を構成する任意のドライ
ブ12に障害が発生した場合の障害回復処理は、実施例
1と同様に図5に示すように、障害が発生したドライブ
12内に格納されているサブデータを、残りの正常なド
ライブ12に格納されているデータとパリティから復元
し、交換した正常なドライブ12または予備のドライブ
12に格納することで回復処理を行う。回復処理方法
は、実施例1と同様に、パリティグループレベルの低い
(2台目の障害が発生した場合にデータ消失となる確率
(データ消失確率)の高い)パリティグループから順次
回復処理を行なう。
ブ12に障害が発生した場合の障害回復処理は、実施例
1と同様に図5に示すように、障害が発生したドライブ
12内に格納されているサブデータを、残りの正常なド
ライブ12に格納されているデータとパリティから復元
し、交換した正常なドライブ12または予備のドライブ
12に格納することで回復処理を行う。回復処理方法
は、実施例1と同様に、パリティグループレベルの低い
(2台目の障害が発生した場合にデータ消失となる確率
(データ消失確率)の高い)パリティグループから順次
回復処理を行なう。
【0193】これにより、信頼性と障害時の性能を最小
限に抑さえ、回復処理を集中せずに、時間を分散して行
うことが可能となる。
限に抑さえ、回復処理を集中せずに、時間を分散して行
うことが可能となる。
【0194】また、本実施例の変形例として、実施例1
の変形例と同様に、データの重要性が高いほど、消失確
率が低いパリティグループレベルに格納し、回復処理は
データの消失確率が低いパリティグループレベルの順に
行うようにしてもよい。このように信頼性のみを重視し
た回復処理を行うことにより、非常に重要なデータに対
するデータ消失確率を大きく減少させることが可能とな
る。
の変形例と同様に、データの重要性が高いほど、消失確
率が低いパリティグループレベルに格納し、回復処理は
データの消失確率が低いパリティグループレベルの順に
行うようにしてもよい。このように信頼性のみを重視し
た回復処理を行うことにより、非常に重要なデータに対
するデータ消失確率を大きく減少させることが可能とな
る。
【0195】以上述べたように、本実施例と実施例1で
は、論理グループ10を構成するパリティグループが、
レベル5かレベル3の違いでのみで、実施例1と同様の
効果がある。このことから、本実施例の構成において、
RAIDのレベル5を適用することも当然可能である。
は、論理グループ10を構成するパリティグループが、
レベル5かレベル3の違いでのみで、実施例1と同様の
効果がある。このことから、本実施例の構成において、
RAIDのレベル5を適用することも当然可能である。
【0196】[実施例3]上記第1の実施例ではレベル
5を基に論理グループを構成するパリティグループにお
いて、パリティグループレベルを自由に設定する方法を
示した。また、上記第2の実施例では、レベル3を基に
論理グループを構成するパリティグループにおいて、パ
リティグループレベルを自由に設定する方法を示した。
このようにすることにより、信頼性と障害時の性能を最
小限に抑さえ、回復処理の時間を分散して行うことが可
能となった。
5を基に論理グループを構成するパリティグループにお
いて、パリティグループレベルを自由に設定する方法を
示した。また、上記第2の実施例では、レベル3を基に
論理グループを構成するパリティグループにおいて、パ
リティグループレベルを自由に設定する方法を示した。
このようにすることにより、信頼性と障害時の性能を最
小限に抑さえ、回復処理の時間を分散して行うことが可
能となった。
【0197】そこで、本実施例では、論理グループを構
成するパリティグループにおいて、異なるRAIDのレ
ベルを設定する例を説明する。ユーザは、初期設定の段
階で、アドレステーブル上でパリティグループレベルを
設定する際に、異なるRAIDのレベルを設定すること
ができる。以下、実施例1と異なる点を示す。
成するパリティグループにおいて、異なるRAIDのレ
ベルを設定する例を説明する。ユーザは、初期設定の段
階で、アドレステーブル上でパリティグループレベルを
設定する際に、異なるRAIDのレベルを設定すること
ができる。以下、実施例1と異なる点を示す。
【0198】図15は、本実施例での論理グループ10
内のパリティグループの配置の一例を示す。論理グルー
プ10において、SCSI内Addr27がDADR1
はRAIDのレベル3において5D+1Pのパリティグ
ループレベルのパリティグループで、SCSI内Add
r27がDADR2,3はRAIDのレベル5において
5D+1Pのパリティグループレベルのパリティグルー
プで、SCSI内Addr27がDADR4はRAID
のレベル3において3D+1Pのパリティグループレベ
ルのパリティグループと二重化のパリティグループが混
在しており、SCSI内Addr27がDADR5,6
はRAIDのレベル5において3D+1Pのパリティグ
ループレベルのパリティグループと二重化のパリティグ
ループが混在している。
内のパリティグループの配置の一例を示す。論理グルー
プ10において、SCSI内Addr27がDADR1
はRAIDのレベル3において5D+1Pのパリティグ
ループレベルのパリティグループで、SCSI内Add
r27がDADR2,3はRAIDのレベル5において
5D+1Pのパリティグループレベルのパリティグルー
プで、SCSI内Addr27がDADR4はRAID
のレベル3において3D+1Pのパリティグループレベ
ルのパリティグループと二重化のパリティグループが混
在しており、SCSI内Addr27がDADR5,6
はRAIDのレベル5において3D+1Pのパリティグ
ループレベルのパリティグループと二重化のパリティグ
ループが混在している。
【0199】図16は、この時のアドレステーブルを示
す。アドレステーブルは、ほぼ図4と同様であるが、本
実施例では異なるRAIDのレベルが混在するので、R
AIDレベルのフィールド29が設けられている。ま
た、RAIDレベル3の場合に用いるためのサブデータ
名のフィールド28が設けられている。
す。アドレステーブルは、ほぼ図4と同様であるが、本
実施例では異なるRAIDのレベルが混在するので、R
AIDレベルのフィールド29が設けられている。ま
た、RAIDレベル3の場合に用いるためのサブデータ
名のフィールド28が設けられている。
【0200】本実施例において、上記のようにRAID
のレベルおよびパリティグループレベルを設定する方法
は、実施例1および2と同様に、図16に示すようなア
ドレステーブルに対しユーザが初期設定において行う。
また、アドレス変換も実施例1および2と同様に、図1
6に示すアドレステーブルを用いて行う。
のレベルおよびパリティグループレベルを設定する方法
は、実施例1および2と同様に、図16に示すようなア
ドレステーブルに対しユーザが初期設定において行う。
また、アドレス変換も実施例1および2と同様に、図1
6に示すアドレステーブルを用いて行う。
【0201】DADR1のRAIDのレベル3における
5D+1Pのパリティグループレベルのパリティグルー
プおよびDADR4の3D+1Pのパリティグループレ
ベルのパリティグループにおけるデータの書き込み方法
(パリティの作成方法)と読み出し方法は、正常時、障
害時共に、実施例2と同様である。
5D+1Pのパリティグループレベルのパリティグルー
プおよびDADR4の3D+1Pのパリティグループレ
ベルのパリティグループにおけるデータの書き込み方法
(パリティの作成方法)と読み出し方法は、正常時、障
害時共に、実施例2と同様である。
【0202】一方、DADR2,3のRAIDのレベル
5における5D+1Pのパリティグループレベルのパリ
ティグループおよびDADR5,6の3D+1Pのパリ
ティグループレベルのパリティグループにおけるデータ
の書き込み方法(パリティの作成方法)と読み出し方法
は、正常時、障害時共に、実施例1と同様である。
5における5D+1Pのパリティグループレベルのパリ
ティグループおよびDADR5,6の3D+1Pのパリ
ティグループレベルのパリティグループにおけるデータ
の書き込み方法(パリティの作成方法)と読み出し方法
は、正常時、障害時共に、実施例1と同様である。
【0203】DADR2,5,6の二重化のパリティグ
ループレベルのパリティグループにおけるデータの書き
込み方法(パリティの作成方法)と読み出し方法は、正
常時、障害時共に、実施例1と同様である。
ループレベルのパリティグループにおけるデータの書き
込み方法(パリティの作成方法)と読み出し方法は、正
常時、障害時共に、実施例1と同様である。
【0204】本実施例において、論理グループ10を構
成する任意のドライブ12に障害が発生した場合の障害
回復処理は、RAIDのレベル3では実施例2、RAI
Dのレベル5では実施例1と同様となり、両者共パリテ
ィグループレベルの低い(2台目の障害が発生した場合
にデータ消失となる確率(データ消失確率)の高い)パ
リティグループから順次回復処理を行なう。これによ
り、本実施例でも、実施例1、2と同様に、信頼性と障
害時の性能を最小限に抑さえ、回復処理を集中してでは
なく、時間を分散して行うことが可能となる。
成する任意のドライブ12に障害が発生した場合の障害
回復処理は、RAIDのレベル3では実施例2、RAI
Dのレベル5では実施例1と同様となり、両者共パリテ
ィグループレベルの低い(2台目の障害が発生した場合
にデータ消失となる確率(データ消失確率)の高い)パ
リティグループから順次回復処理を行なう。これによ
り、本実施例でも、実施例1、2と同様に、信頼性と障
害時の性能を最小限に抑さえ、回復処理を集中してでは
なく、時間を分散して行うことが可能となる。
【0205】本実施例では、一つの論理グループ内にお
いて、複数のRAIDのレベルと各RAIDのレベルに
おいて、複数のパリティグループレベルが存在する。ユ
ーザは、自分のデータ量が大きく、しかもCPU1とデ
ィスクアレイ間で高速転送を行い、データの書き込みお
よび読み出し時間を短縮したい場合は、RAIDのレベ
ル3の領域に書き込むように指示する。この時、データ
量および要求する転送速度、信頼性によりパリティグル
ープレベルを5D+1Pにするか3D+1Pにするかを
選択する。即ち、データ量が大きく、高速転送を必要と
する場合はパリティグループレベルを5D+1Pを指定
し、比較的信頼性を要求する場合はパリティグループレ
ベルを3D+1Pにする。
いて、複数のRAIDのレベルと各RAIDのレベルに
おいて、複数のパリティグループレベルが存在する。ユ
ーザは、自分のデータ量が大きく、しかもCPU1とデ
ィスクアレイ間で高速転送を行い、データの書き込みお
よび読み出し時間を短縮したい場合は、RAIDのレベ
ル3の領域に書き込むように指示する。この時、データ
量および要求する転送速度、信頼性によりパリティグル
ープレベルを5D+1Pにするか3D+1Pにするかを
選択する。即ち、データ量が大きく、高速転送を必要と
する場合はパリティグループレベルを5D+1Pを指定
し、比較的信頼性を要求する場合はパリティグループレ
ベルを3D+1Pにする。
【0206】また、ユーザは、自分のデータ量が小さい
ため、RAIDのレベル3で高速転送を行っても効果が
無い場合は、RAIDのレベル5の領域に書き込むよう
に指示する。さらに、ユーザは、自分のデータ量が小さ
く、頻繁に書き込み要求が発生し、しかも、重要なデー
タである場合は、二重化の領域に書き込むように指示す
る。
ため、RAIDのレベル3で高速転送を行っても効果が
無い場合は、RAIDのレベル5の領域に書き込むよう
に指示する。さらに、ユーザは、自分のデータ量が小さ
く、頻繁に書き込み要求が発生し、しかも、重要なデー
タである場合は、二重化の領域に書き込むように指示す
る。
【0207】このように、ユーザからCPU1を介し指
示された要求は、ADC2のMP20では、アドレステ
ーブルを調べ、要求された書き込み領域に対しRAID
のレベル3、レベル5、二重化の空き領域または更新す
る領域を認識し、その領域に書き込むように制御する。
示された要求は、ADC2のMP20では、アドレステ
ーブルを調べ、要求された書き込み領域に対しRAID
のレベル3、レベル5、二重化の空き領域または更新す
る領域を認識し、その領域に書き込むように制御する。
【0208】以上述べたように、本実施例と実施例1、
2とでは、論理グループ10を構成するパリティグルー
プにおいて、RAIDのレベル5とレベル3と二重化
(レベル1)を混在させたのみで、実施例1、2の効果
を得ることができる。
2とでは、論理グループ10を構成するパリティグルー
プにおいて、RAIDのレベル5とレベル3と二重化
(レベル1)を混在させたのみで、実施例1、2の効果
を得ることができる。
【0209】
【発明の効果】従来のディスクアレイでは、論理グルー
プを構成する全てのパリティグループレベルは、図3に
示すように、全て5D+1Pのように統一されていた。
このため、データ消失確率が均一となり、信頼性の確保
から障害回復のために長時間停止しなければならなかっ
た。もし、従来のような単一のパリティグループレベル
で論理グループを構成し、障害が発生したドライブの回
復処理を、上述の実施例のように分割して行った場合、
回復処理が全て完了するまでデータ消失確率および障害
時の性能は変わらず低いままであり、回復処理が完了す
るまでの時間が長ければ長いほどデータ消失する確率が
高い。
プを構成する全てのパリティグループレベルは、図3に
示すように、全て5D+1Pのように統一されていた。
このため、データ消失確率が均一となり、信頼性の確保
から障害回復のために長時間停止しなければならなかっ
た。もし、従来のような単一のパリティグループレベル
で論理グループを構成し、障害が発生したドライブの回
復処理を、上述の実施例のように分割して行った場合、
回復処理が全て完了するまでデータ消失確率および障害
時の性能は変わらず低いままであり、回復処理が完了す
るまでの時間が長ければ長いほどデータ消失する確率が
高い。
【0210】しかし、本発明では、信頼性および性能の
異なる複数のパリティグループレベルのパリティグルー
プで論理グループを構成し、障害が発生したドライブの
データの回復処理を、パリティグループレベルの低い順
(データ消失確率および障害時の性能の低い順)に順次
行なう。これにより、パリティグループレベル単位で回
復処理を行う毎に、信頼性が向上するため、回復処理を
完了する時間を長くしてもデータ消失する確率は低い。
しかも、パリティグループレベル単位で回復処理を行う
毎に、障害時の性能が向上していく。
異なる複数のパリティグループレベルのパリティグルー
プで論理グループを構成し、障害が発生したドライブの
データの回復処理を、パリティグループレベルの低い順
(データ消失確率および障害時の性能の低い順)に順次
行なう。これにより、パリティグループレベル単位で回
復処理を行う毎に、信頼性が向上するため、回復処理を
完了する時間を長くしてもデータ消失する確率は低い。
しかも、パリティグループレベル単位で回復処理を行う
毎に、障害時の性能が向上していく。
【0211】以上のことから、本発明によれば、回復処
理を行う時間を分散することが可能となり、しかも、効
率良く回復処理を行なうことが可能となる。
理を行う時間を分散することが可能となり、しかも、効
率良く回復処理を行なうことが可能となる。
【図1】第1の実施例の全体構成図
【図2】第1の実施例の論理グループ内のデータ配置図
【図3】従来のディスクアレイの論理グループ内のデー
タ配置図
タ配置図
【図4】第1の実施例のアドレステーブル説明図
【図5】パリティ作成説明図
【図6】新規データの書き込み処理フローチャート図
【図7】更新の書き込み処理フローチャート図
【図8】障害時の更新の書き込み処理フローチャート図
【図9】読み出し処理フローチャート図
【図10】障害時の読み出し処理フローチャート図
【図11】障害回復処理フローチャート図
【図12】従来方法と本発明の障害回復処理の説明図
【図13】第2の実施例の論理グループ内のデータ配置
図
図
【図14】第2の実施例のアドレステーブル説明図
【図15】第3の実施例の論理グループ内のデータ配置
図
図
【図16】第3の実施例のアドレステーブル説明図
【図17】ドライブ内部説明図
【図18】パリティグループの割り当て説明図
1:CPU、2:アレイディスクコントローラ(AD
C)、3:チャネルパスディレクタ、4:外部インター
フェースパス、5:インターフェースアダプタ、6:チ
ャネルパススイッチ、7:クラスタ、8:チャネルパ
ス、9:ドライブパス、10:論理グループ、12:ド
ライブ、13:チャネルインターフェース(CH I
F)回路タ、14:データ制御回路(DCC)、15:
チャネル側キャッシュアダプタ(C Adp)、16:
キャッシュメモリ、17:ドライブ側キャッシュアダプ
タ(C Adp)、18:ドライブインターフェース回
路(Drive IF)、19:パリティ生成回路(P
G)、20:マイクロプロセッサ(MP)、21:パリ
ティグループレベル、22:データ名、23:キャッシ
ュアドレス、24:データドライブ番号(DDrive
No.)、25:障害フラグ、26:パリティドライ
ブ番号(PDrive No.)、27:SCSIドラ
イブ内アドレス(SCSI内Addr)、28:サブデ
ータ名、29:RAIDレベル。
C)、3:チャネルパスディレクタ、4:外部インター
フェースパス、5:インターフェースアダプタ、6:チ
ャネルパススイッチ、7:クラスタ、8:チャネルパ
ス、9:ドライブパス、10:論理グループ、12:ド
ライブ、13:チャネルインターフェース(CH I
F)回路タ、14:データ制御回路(DCC)、15:
チャネル側キャッシュアダプタ(C Adp)、16:
キャッシュメモリ、17:ドライブ側キャッシュアダプ
タ(C Adp)、18:ドライブインターフェース回
路(Drive IF)、19:パリティ生成回路(P
G)、20:マイクロプロセッサ(MP)、21:パリ
ティグループレベル、22:データ名、23:キャッシ
ュアドレス、24:データドライブ番号(DDrive
No.)、25:障害フラグ、26:パリティドライ
ブ番号(PDrive No.)、27:SCSIドラ
イブ内アドレス(SCSI内Addr)、28:サブデ
ータ名、29:RAIDレベル。
Claims (31)
- 【請求項1】論理グループを構成する複数台のドライブ
を含むディスク装置と、該ディスク装置を管理する制御
装置とを備えたディスクアレイ装置において、 i(iはi≧1の整数)個のデータと該データから作成
したj(jはj≧1の整数)個のエラー訂正用データと
から構成される第1のパリティグループを格納するため
の領域と、上記第1のパリティグループとは異なる構成
の第2のパリティグループを格納するための領域とが、
前記論理グループ中に混在していることを特徴とするデ
ィスクアレイ装置。 - 【請求項2】論理グループを構成するn台のドライブを
含むディスク装置と、該ディスク装置を管理する制御装
置とを備えたディスクアレイ装置において、 前記論理グループ内の各ドライブをパーティションで区
切り、n台以下のm台の任意のドライブの任意のパーテ
ィションを任意の数選択し、該選択したパーティション
によりパーティショングループを設定し、 前記論理グループは、互いにmが異なる複数のパーティ
ショングループにより構成されることを特徴とするディ
スクアレイ装置。 - 【請求項3】上位装置からのデ−タの入出力要求に対す
る、当該デ−タを格納してある、または格納するディス
ク装置と、該ディスク装置を管理する制御装置とからな
るディスクアレイ装置において、 前記ディスク装置を多数のドライブにより構成し、これ
らのドライブを2台以上のn台のドライブの論理グルー
プにグループ分けし、各論理グループ内の各ドライブを
パーティションで区切るとともに、 n台以下のm台の任意のドライブの任意のパーティショ
ンを任意の数選択し、該選択したパーティションにより
パーティショングループを設定し、 前記論理グループは、互いにmが異なる複数のパーティ
ショングループにより構成されることを特徴とするディ
スクアレイ装置。 - 【請求項4】前記論理グループ内に前記パーティション
グループを設定する際、選択されたパーティションの各
ドライブ内でのアドレスを同一とすることを特徴とする
請求項2または3に記載のディスクアレイ装置。 - 【請求項5】前記論理グループ内に前記パーティション
グループを設定する際、ユーザの指定に応じた種類およ
び大きさのパーティショングループが設定できることを
特徴とする請求項2または3に記載のディスクアレイ装
置。 - 【請求項6】前記論理グループ内に前記パーティション
グループを設定する際、各ドライブから選択されるパー
ティションをシリンダの集合とすることを特徴とする請
求項2または3に記載のディスクアレイ装置。 - 【請求項7】前記論理グループ内に前記パーティション
グループを設定する際、各ドライブから選択されるパー
ティションをトラックまたはレコード単位とすることを
特徴とする請求項2または3に記載のディスクアレイ装
置。 - 【請求項8】前記論理グループ内に設定されたパーティ
ショングループは、前記制御装置内のテーブルにより管
理されることを特徴とする請求項2または3に記載のデ
ィスクアレイ装置。 - 【請求項9】前記論理グループ内に設定されたパーティ
ショングループ毎に、RAIDを設定することを特徴と
する請求項2または3に記載のディスクアレイ装置。 - 【請求項10】前記論理グループ内に設定された少なく
とも2個のパーティショングループを互いに異なるRA
IDのレベルで構成し、各パーティショングループに
は、複数のデータと該データから作成した1つ以上のエ
ラー訂正用データとからなるパリティグループのデータ
を格納することを特徴とする請求項9に記載のディスク
アレイ装置。 - 【請求項11】前記論理グループ内に設定された少なく
とも2個のパーティショングループを、前記エラー訂正
用データの数が異なる同一のRAIDのレベルで構成す
ることを特徴とする請求項9に記載のディスクアレイ装
置。 - 【請求項12】前記論理グループ内に設定された少なく
とも2個のパーティショングループを、性能の異なる同
一のRAIDのレベルで構成することを特徴とする請求
項9に記載のディスクアレイ装置。 - 【請求項13】前記論理グループ内に2個以上のパーテ
ィショングループを設定する際、各パーティショングル
ープに対して設定された異なるRAIDのレベルをパリ
ティグループレベルとして分類し、各パリティグループ
レベルに対応したテーブルにより各パーティショングル
ープを管理することを特徴とする請求項9に記載のディ
スクアレイ装置。 - 【請求項14】前記論理グループ内の任意のドライブに
障害が発生し、この障害が発生したドライブ内のデータ
を、論理グループ内の正常なドライブに格納されている
データおよびエラー訂正用データから回復する障害回復
処理の際、前記パリティグループレベル毎に障害回復処
理を行うことを特徴とする請求項13に記載のディスク
アレイ装置。 - 【請求項15】前記パリティグループレベル毎に障害回
復処理を行う際に、あるパリティグループの障害回復処
理が完了した後、ある時間通常の読み出しおよび書き込
み処理を行い、その後、次のパリティグループの障害回
復処理を行うことを繰り返して、障害が発生したドライ
ブ内のデータを回復する障害回復処理を行うことを特徴
とする請求項14に記載のディスクアレイ装置。 - 【請求項16】前記論理グループ内の任意のドライブに
障害が発生し、この障害が発生したドライブ内のデータ
を、論理グループ内の正常なドライブに格納されている
データおよびエラー訂正用データから回復する障害回復
処理の際、信頼性およびデータ消失確率の低いパリティ
グループレベルから順次障害回復処理を行うことを特徴
とする請求項14または15に記載のディスクアレイ装
置。 - 【請求項17】前記論理グループ内の任意のドライブに
障害が発生し、この障害が発生したドライブ内のデータ
を、論理グループ内の正常なドライブに格納されている
データおよびエラー訂正用データから回復する障害回復
処理の際、信頼性およびデータ消失確率の高いパリティ
グループレベルから順次障害回復処理を行うことを特徴
とする請求項14または15に記載のディスクアレイ装
置。 - 【請求項18】高信頼性が要求されるデータを、信頼性
およびデータ消失確率の高いRAIDのレベルが設定さ
れたパリティグループに格納することを特徴とする請求
項10または17に記載のディスクアレイ装置。 - 【請求項19】前記論理グループ内の任意のドライブに
障害が発生し、この障害が発生したドライブ内のデータ
を、論理グループ内の正常なドライブに格納されている
データおよびエラー訂正用データから回復する障害回復
処理の際、障害時の性能低下が大きいパリティグループ
レベルから障害回復処理を行うことを特徴とする請求項
14または15に記載のディスクアレイ装置。 - 【請求項20】前記論理グループ内の任意のドライブに
障害が発生し、この障害が発生したドライブ内のデータ
を、論理グループ内の正常なドライブに格納されている
データおよびエラー訂正用データから回復する障害回復
処理の際、障害時の性能低下が小さいパリティグループ
レベルから障害回復処理を行うことを特徴とする請求項
14または15に記載のディスクアレイ装置。 - 【請求項21】頻繁に読み出しまたは書き込み要求が上
位装置から発行されるデータを、障害時の性能低下が大
きいRAIDのレベルが設定されたパリティグループに
格納し、障害発生時にはすぐに障害回復処理を行い正常
状態に復帰させることを特徴とする請求項10または1
9に記載のディスクアレイ装置。 - 【請求項22】頻繁に読み出しまたは書き込み要求が上
位装置から発行されるデータを、障害時の性能低下が小
さいRAIDのレベルが設定されたパリティグループに
格納し、障害発生時にはすぐに障害回復処理を行い正常
状態に復帰させることを特徴とする請求項10または2
0に記載のディスクアレイ装置。 - 【請求項23】前記論理グループ内のデータのバックア
ップを行う際、前記パリティグループレベル毎にバック
アップ処理を行うことを特徴とする請求項13に記載の
ディスクアレイ装置。 - 【請求項24】前記論理グループ内のデータに対してパ
リティグループレベル毎にバックアップを行う際、ある
パリティグループのバックアップ処理が完了した後、あ
る時間通常の読み出しおよび書き込み処理を行い、その
後、次のパリティグループのバックアップ処理を行うこ
とを繰り返して、論理グループを構成する全ドライブ内
のデータのバックアップを行うことを特徴とする請求項
23に記載のディスクアレイ装置。 - 【請求項25】前記論理グループ内のデータに対してパ
リティグループレベル毎にバックアップを行う際、信頼
性およびデータ消失確率の低いパリティグループレベル
から順次バックアップ処理を行うことを特徴とする請求
項23または24に記載のディスクアレイ装置。 - 【請求項26】前記論理グループ内のデータに対してパ
リティグループレベル毎にバックアップを行う際、信頼
性およびデータ消失確率の高いパリティグループレベル
から順次バックアップ処理を行うことを特徴とする請求
項23または24に記載のディスクアレイ装置。 - 【請求項27】上位装置からの読み出しまたは書き込み
要求数が、ユーザが予め設定した値より小さくなった
ら、当該パリティグループの障害回復処理を開始するこ
とを特徴とする請求項14または15に記載のディスク
アレイ装置。 - 【請求項28】上位装置からの読み出しまたは書き込み
要求数が、ユーザが予め設定した値より小さくなった
ら、当該パリティグループのバックアップ処理を開始す
ることを特徴とする請求項23または24に記載のディ
スクアレイ装置。 - 【請求項29】前記論理グループ内のデータに対してパ
リティグループレベル毎にバックアップを行う際、デー
タ消失確率の高いパリティグループほど頻繁にバックア
ップ処理を行うことを特徴とする請求項23または24
に記載のディスクアレイ装置。 - 【請求項30】論理グループを構成する複数台のドライ
ブを含むディスク装置と、該ディスク装置を管理する制
御装置とを備えたディスクアレイ装置における前記ディ
スク装置の領域の区分け方法であって、 i(iはi≧1の整数)個のデータと該データから作成
したj(jはj≧1の整数)個のエラー訂正用データと
から構成される第1のパリティグループを格納するため
の領域と、上記第1のパリティグループとは異なる構成
の第2のパリティグループを格納するための領域とが、
前記論理グループ中に混在するように、前記ディスク装
置の領域を区分けすることを特徴とするディスクアレイ
の区分け方法。 - 【請求項31】論理グループを構成するn台のドライブ
を含むディスク装置と、該ディスク装置を管理する制御
装置とを備えたディスクアレイ装置における前記ディス
ク装置の領域の区分け方法であって、 前記論理グループ内の各ドライブをパーティションで区
切り、n台以下のm台の任意のドライブの任意のパーテ
ィションを任意の数選択し、該選択したパーティション
によりパーティショングループを設定し、前記論理グル
ープが互いにmが異なる複数のパーティショングループ
により構成されるように区分けすることを特徴とするデ
ィスクアレイの区分け方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6072655A JPH07261945A (ja) | 1994-03-17 | 1994-03-17 | ディスクアレイ装置およびディスクアレイの区分け方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6072655A JPH07261945A (ja) | 1994-03-17 | 1994-03-17 | ディスクアレイ装置およびディスクアレイの区分け方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07261945A true JPH07261945A (ja) | 1995-10-13 |
Family
ID=13495618
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6072655A Pending JPH07261945A (ja) | 1994-03-17 | 1994-03-17 | ディスクアレイ装置およびディスクアレイの区分け方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07261945A (ja) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6079029A (en) * | 1997-03-17 | 2000-06-20 | Fujitsu Limited | Device array system providing redundancy of disks from active system disks during a disk failure |
| JP2001337792A (ja) * | 2000-05-25 | 2001-12-07 | Hitachi Ltd | ディスクアレイ装置 |
| JP2007233607A (ja) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | 情報処理装置、raidコントローラおよび情報処理装置のディスク制御方法 |
| JP2009110456A (ja) * | 2007-10-31 | 2009-05-21 | Fujitsu Ltd | ストレージ制御装置、方法、及びプログラム |
| JP2010198424A (ja) * | 2009-02-26 | 2010-09-09 | Konica Minolta Business Technologies Inc | 記憶装置及び記憶制御方法 |
| JP2011523144A (ja) * | 2008-06-06 | 2011-08-04 | ピボット3 | 分散型raid実装のための方法およびシステム |
| JP2012507786A (ja) * | 2008-10-31 | 2012-03-29 | エルエスアイ コーポレーション | 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合 |
| US8527699B2 (en) | 2011-04-25 | 2013-09-03 | Pivot3, Inc. | Method and system for distributed RAID implementation |
| JP2013539134A (ja) * | 2010-10-01 | 2013-10-17 | ピュア・ストレージ・インコーポレイテッド | 動的構成のraidアレイにおける再構成読み込み |
| US9086821B2 (en) | 2008-06-30 | 2015-07-21 | Pivot3, Inc. | Method and system for execution of applications in conjunction with raid |
| JP2015166958A (ja) * | 2014-03-04 | 2015-09-24 | 日本電気株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
| JP2015535120A (ja) * | 2012-11-15 | 2015-12-07 | ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. | 多次元raid再構築および障害回避のための方法およびシステム |
-
1994
- 1994-03-17 JP JP6072655A patent/JPH07261945A/ja active Pending
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6079029A (en) * | 1997-03-17 | 2000-06-20 | Fujitsu Limited | Device array system providing redundancy of disks from active system disks during a disk failure |
| JP2001337792A (ja) * | 2000-05-25 | 2001-12-07 | Hitachi Ltd | ディスクアレイ装置 |
| JP2007233607A (ja) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | 情報処理装置、raidコントローラおよび情報処理装置のディスク制御方法 |
| JP2009110456A (ja) * | 2007-10-31 | 2009-05-21 | Fujitsu Ltd | ストレージ制御装置、方法、及びプログラム |
| US8386837B2 (en) | 2007-10-31 | 2013-02-26 | Fujistu Limited | Storage control device, storage control method and storage control program |
| US8621147B2 (en) | 2008-06-06 | 2013-12-31 | Pivot3, Inc. | Method and system for distributed RAID implementation |
| US9535632B2 (en) | 2008-06-06 | 2017-01-03 | Pivot3, Inc. | Method and system for distributed raid implementation |
| JP2011523144A (ja) * | 2008-06-06 | 2011-08-04 | ピボット3 | 分散型raid実装のための方法およびシステム |
| JP2011165212A (ja) * | 2008-06-06 | 2011-08-25 | Pivot3 | 分散型raid実装のための方法およびシステム |
| US9465560B2 (en) | 2008-06-06 | 2016-10-11 | Pivot3, Inc. | Method and system for data migration in a distributed RAID implementation |
| US9146695B2 (en) | 2008-06-06 | 2015-09-29 | Pivot3, Inc. | Method and system for distributed RAID implementation |
| US9086821B2 (en) | 2008-06-30 | 2015-07-21 | Pivot3, Inc. | Method and system for execution of applications in conjunction with raid |
| JP2012507786A (ja) * | 2008-10-31 | 2012-03-29 | エルエスアイ コーポレーション | 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合 |
| JP2010198424A (ja) * | 2009-02-26 | 2010-09-09 | Konica Minolta Business Technologies Inc | 記憶装置及び記憶制御方法 |
| JP2013539134A (ja) * | 2010-10-01 | 2013-10-17 | ピュア・ストレージ・インコーポレイテッド | 動的構成のraidアレイにおける再構成読み込み |
| US8527699B2 (en) | 2011-04-25 | 2013-09-03 | Pivot3, Inc. | Method and system for distributed RAID implementation |
| JP2015535120A (ja) * | 2012-11-15 | 2015-12-07 | ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. | 多次元raid再構築および障害回避のための方法およびシステム |
| JP2015166958A (ja) * | 2014-03-04 | 2015-09-24 | 日本電気株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100275900B1 (ko) | 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법 | |
| JP2501752B2 (ja) | コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法 | |
| JP3358687B2 (ja) | ディスクアレイ装置 | |
| US5479653A (en) | Disk array apparatus and method which supports compound raid configurations and spareless hot sparing | |
| JP2769443B2 (ja) | 記憶サブシステム及び関連する装置/方法 | |
| US8464094B2 (en) | Disk array system and control method thereof | |
| US5579474A (en) | Disk array system and its control method | |
| JP3269552B2 (ja) | ディスクドライブメモリ | |
| US6009481A (en) | Mass storage system using internal system-level mirroring | |
| EP2400382B1 (en) | Storage system | |
| US6301711B1 (en) | System and method for the network support of full motion video using a redundant array of inexpensive disks | |
| JPH09231016A (ja) | Raid記憶サブシステムにおけるデ−タのスナップショットコピ−作成方法とその装置 | |
| JPH03505935A (ja) | ディスクドライブメモリ | |
| JP2000010738A (ja) | ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体 | |
| JP2006252126A (ja) | ディスクアレイ装置及びその再構築方法 | |
| JPH07261945A (ja) | ディスクアレイ装置およびディスクアレイの区分け方法 | |
| JPH0863298A (ja) | ディスクアレイ装置 | |
| CN102164165A (zh) | 一种网络存储系统的管理方法及装置 | |
| JPH05324579A (ja) | 分散ファイルシステム及び記憶装置 | |
| US6611897B2 (en) | Method and apparatus for implementing redundancy on data stored in a disk array subsystem based on use frequency or importance of the data | |
| JPH06230903A (ja) | ディスクアレイ装置の障害回復方法、およびディスクアレイ装置 | |
| JP4398596B2 (ja) | ディスクアレイ装置 | |
| JP3597349B2 (ja) | 記憶サブシステムおよびその障害回復方法 | |
| JPH07306758A (ja) | ディスクアレイ装置及びその制御方法 | |
| JPH08286844A (ja) | パリティ生成制御方法およびディスク制御装置 |