(57)【要約】      （修正有）【課題】  バス故障またはディスクアレイ制御部内部の故障により発生する、正しいデータの誤ったディスク装置への書き込み転送をエラー検出可能とすることでディスクのデータ破壊を未然に防止する。【解決手段】  ディスクアレイ制御部１０からの転送データを受け取ったディスク装置２０は、データ保証コードの計算に転送データのみでなく自分の固有ＩＤ２５も含めて計算を行う。正しいディスク装置２０に転送が行われていれば、ディスクアレイ制御部１０でデータ保証コード生成に使用したＩＤとデータ保証コードチェックを実施するディスク装置２０の固有ＩＤ２５が一致するため、書き込みデータはディスクに書き込まれる。しかし、誤ったディスク装置２０に転送が行われたため、データ保証コードチェックエラーを検出した場合、書き込みデータはディスクに書き込まず破棄することにより、誤ったディスク装置へのデータ書き込みを未然に防止可能となる。【選択図】  図１
2005250551.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置とこれら複数のディスク装置を制御するディスクアレイ制御部とから構成されるディスクアレイ装置において、各々のディスク装置が固有ＩＤを備え、また各々のディスク装置はディスク制御部とディスク部から構成され、
各々のディスク装置のディスク制御部はディスクアレイ制御部から転送されてきたデータをディスク部に書き込む前にデータの正当性をチェックするデータチェック手段を備え、
前記ディスクアレイ制御部はデータ転送対象となるすべてのディスク装置の固有ＩＤを保持し、前記ディスクアレイ制御部にて転送データに付随するデータ保証コードを生成する場合には転送対象となるディスク装置の固有ＩＤを選択する手段と、前記選択した固有ＩＤと転送データからデータ保証コードを生成する手段を備える事を特徴とし、
前記ディスク装置のディスク制御部が備えるデータチェック手段は、ディスクアレイ制御部から転送されてきたディスク部へ書き込むデータと自分の固有ＩＤからデータ保証コードを生成する手段を備える事を特徴とし、
また前記ディスク装置のディスク制御部が備えるデータチェック手段は、前記ディスク制御部にて生成したデータ保証コードとディスクアレイ制御部から前記ディスク装置に転送されてきたデータ保証コードとを比較する手段を備える事を特徴とするディスクアレイ装置。
【請求項２】
前記ディスク装置に設けられ、前記データチェック手段にてデータ保証コードの比較結果が不一致であったとき、エラー発生を通知する手段を備え、また前記エラー通知発生時にはディスク部への書き込みデータをディスク部へ書き込まず破棄する手段を持つ事を特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記ディスクアレイ制御部と、前記ディスク装置の間で転送されるデータの伝送ルートを決定する複数の伝送ルート決定装置を備え、
前記伝送ルート決定装置は、自分の固有ＩＤを備えていることを特徴とする請求項１又は２に記載のディスクアレイ装置。
【請求項４】
前記データ保証コードとしてＣＲＣを使用する事を特徴とする請求項１から３の何れかに記載のディスクアレイ装置。
【請求項５】
複数のディスク装置とこれら複数のディスク装置を制御するディスクアレイ制御部とから構成されるディスクアレイ装置において、前記ディスクアレイ制御部より前記ディスク装置へデータを転送する際の転送データ制御方法であって、
前記ディスクアレイ制御部にて、データの転送対象となるディスク装置の固有IDを選択する工程と、前記選択した固有ＩＤと転送データからデータ保証コードを生成する工程を備え、
前記ディスク装置にて、前記ディスクアレイ制御部から転送されてきたデータと自分の固有ＩＤからデータ保証コードを生成する工程と、前記ディスク装置にて生成したデータ保証コードとディスクアレイ制御部から前記ディスク装置に転送されてきたデータ保証コードとを比較する工程を備えることを特徴とする転送データ制御方法。
【請求項６】
前記比較する工程にて、データ保証コードの比較結果が不一致であったとき、エラー発生を通知する工程と、エラー通知発生時には転送データを破棄する工程を備えることを特徴とする請求項５に記載の転送データ制御方法。
【請求項７】
前記ディスクアレイ制御部より前記ディスク装置へデータを転送するための伝送ルートを決定するルート決定工程を備えたことを特徴とする請求項５又は６に記載の転送データ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイ装置、転送データ制御方法に関し、特に各々のディスク装置が固有の認識番号を持ち、且つ各々のディスク装置がデータ保証チェック機能を有するディスクアレイ装置、転送データ制御方法に関する。
【背景技術】
【０００２】
一般にディスクアレイ装置は複数のディスク装置とこれら複数のディスク装置を制御するディスクアレイ制御部から構成され、ディスク装置はデータを格納するディスク部とディスク部へのデータ格納とデータ読み出しを制御するディスク制御部から構成され、転送データはディスクアレイ制御部でディスク部の物理セクタ単位に分割され、物理セクタ単位に分割された転送データは複数のディスク装置に転送されディスク部に格納されることでRAID等の構成を行う。
【０００３】
また、個々のディスク装置の物理セクタにはデータとデータ保証コードが格納され、通常、データ保証コードとしてはCRC（Cyclic Redundancy Check）コードが使用される。
【０００４】
データ保証コードチェックをディスク部からの読み出し時にのみ行っているディスクアレイ装置では、データ書き込み時にバス故障などでデータが破壊された場合、破壊された不正データをディスク部に書き込んでしまい、一度に多量のデータ書き込みが発生するとRAIDを用いてもデータ復旧不可能となってしまう問題があった。
【０００５】
また、特許文献１に記載された技術では、各々のディスク制御部にデータ保証コードチェック機能（例：CRCチェック機能）を持たせることで、データをディスク部に書き込む前にデータ保証コードチェックを行い、データ保証コードチェックエラーが発生した場合は書き込みを行わないことで不正データの書き込みによるデータ復旧不可能が発生する課題を解消している。
【０００６】
しかし、一般にデータ保証コードは付随する転送データの内容のみを保証するものであり、バス故障やディスクアレイ制御部内部の故障によって正しいデータが誤った転送先に転送されてしまった場合、特許文献１に記載された技術ではデータ保証コードチェック機能でのエラー検出が不可能であり、前述の課題を解消出来ない。
【特許文献１】特開２０００−１０５６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ディスク部へのデータ書き込み時にデータ保証コードチェックを行わないディスクアレイ装置では、ディスク部への書き込み事に不正データの検出が不可能である為、不正データの書き込みを回避できない。
【０００８】
また、特許文献１に記載された技術では、データ保証コードの保証範囲であるデータの故障はエラー検出可能であるが、バス故障またはディスクアレイ制御部内部での故障によって発生する正しいデータの誤ったディスク装置に対するデータ書き込みはエラー検出不可能である。
【０００９】
本発明の目的は、バス故障またはディスクアレイ制御部内部の故障により、正しい書き込みデータが誤ったディスク装置に対して転送されてしまった場合にも不正データであると検出可能にすることで、ディスク部のデータ破壊を回避することである。
【課題を解決するための手段】
【００１０】
本発明のディスクアレイ装置は、ディスクアレイ制御部（図１の１０）と複数のディスク装置（図１の２０、３０、４０、５０）で構成され、各々のディスク装置が固有のID（図１の２５、３５、４５、５５）を持ち、ディスクアレイ制御部（図１の１０）にてデータ保証コードを計算する場合、物理セクタ単位の転送データにデータ転送先ディスク装置の固有ID（図１の２５、３５、４５、５５）を付加してデータ保証コードを計算するデータ保証コード生成部（図１の１２）を備え、各々のディスク制御部（図１の２１、３１、４１、５１）にてデータ保証コードチェックを行う場合には、転送データと自固有ID（図１の２５、３５、４５、５５）からデータ保証コードを計算生成し、ディスクアレイ制御部（図１の１０）から転送されてきたデータ保証コードと前記生成したデータ保証コードを比較チェックするデータ保証コードチェック部（図１の２２、３２、４２、５２）を備え、前記データ保証コード比較チェックの結果が不一致であった場合には、転送データをディスク部（図１の２４、３４、４４、５４）に書き込まず、破棄するディスクアクセス制御部（図１の２３、３３、４３、５３）を備える。
【００１１】
＜作用＞
ディスクアレイ制御部（図１の１０）からディスク装置（図１の２０、３０、４０、５０）へのデータ書き込み転送を行う場合、データはディスク部（図１の２４、３４、４４、５４）の物理セクタ単位に分割され、転送データにはデータ保証コードが付随される。
【００１２】
ディスクアレイ制御部（図１の１０）で転送データに付随するデータ保証コードの生成計算を行う場合、転送データに転送先ディスク装置固有ID（図１の２５、３５、４５、５５）を付加して計算を行い、データ保証コードの保証範囲に転送データのみでなく転送先ディスク装置固有IDも含ませる。
【００１３】
なお、ディスクアレイ制御部（図１の１０）から転送先ディスク装置（図１の２０、３０、４０、５０）へ転送する転送データは書き込みデータとデータ保証コードのみであり、転送先ディスク装置（図１の２０、３０、４０、５０）のIDは転送しない。
【００１４】
ディスクアレイ制御部（図１の１０）からの転送データを受け取ったディスク制御部（図１の２１、３１、４１、５１）は転送データに自固有ID（図１の２５、３５、４５、５５）を付加してデータ保証コードの計算を行い、ディスクアレイ制御部から転送されたデータ保証コードとの比較を行う。
【００１５】
バス故障またはディスクアレイ制御部内部故障により誤ったディスク装置に転送が行われた場合、ディスクアレイ制御部（図１の１０）でデータ保証コード生成に使用したIDとディスク制御部（図１の２１、３１、４１、５１）で使用したID（図１の２５、３５、４５、５５）が一致しないめ、データ保証コード不一致エラーが検出され、データ保証コード不一致エラーが検出された場合、ディスクアクセス制御部（図１の２１、３１、４１、５１）で転送データを破棄することで、誤ったディスク装置への不正データ書き込みが回避可能となる。
【発明の効果】
【００１６】
本発明によれば、ディスクアレイ制御部からディスク装置への書き込み転送において、データ保証コードの保証範囲に転送先であるディスク装置を示すIDをも含めることで、バス故障またはディスクアレイ制御部内部での故障により正しいデータが、誤ったディスク装置へ転送された場合にデータ保証コード不一致エラーとして検出することが可能となり、不正なデータがディスク装置に書き込まれてしまう問題を未然に防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
＜構成の説明＞
図１は本発明のディスクアレイ装置の一実施例であり、本実施例のディスクアレイ装置は上位ホスト００と接続され、上位ホスト００からの命令によりディスクアレイ装置の制御およびデータ転送制御を行うディスクアレイ制御部１０と、ディスクアレイ制御部１０と接続され、ディスクアレイ制御部１０とのデータ転送を行うディスク装置２０、３０、４０、５０から構成され、ディスクアレイ制御部１０と各ディスク装置２０、３０、４０、５０はバス２６、３６、４６、５６によって接続される。
【００１９】
ディスクアレイ制御部１０では、データ書き込み転送を行う場合、データをディスク部２４、３４、４４、５４の物理セクタ単位に分割し、転送先ディスク装置固有ID選択部１１で選択されたIDを分割されたデータに付加し、前記IDを付加したデータを用いてデータ保証コード生成部１２でデータ保証コードを計算生成し、データ転送部１３にて転送先ディスク装置に対してデータとデータ保証コードを転送する。
【００２０】
尚、ディスクアレイ制御部１０からディスク装置２０、３０、４０、５０へ転送するデータは書き込みデータとデータ保証コードのみであり、データ保証コード計算生成に使用したIDは転送しない。
【００２１】
ディスク装置２０、３０、４０、５０では、ディスクアレイ制御部１０から転送されてきたデータに自固有ID２５、３５、４５、５５を付加してデータ保証コードを計算生成し、生成したデータ保証コードをディスクアレイ制御部１０から転送されてきたデータ保証コードとデータ保証コードチェック部２２、３２、４２、５２にて比較チェックし、ディスクアクセス制御部２３、３３、４３、５３ではデータ保証コードの比較チェックの結果、不一致エラーが発生していればディスクアレイ制御部１０から転送されてきた書き込みデータを破棄し、エラーが発生していなければディスク部２４、３４、４４、５４への書き込みを行う。
【００２２】
＜動作の説明＞
次に図１の動作について説明する。
【００２３】
ディスクアレイ制御部１０からディスク装置２０に対して転送するはずの１物理セクタ単位長のデータが誤ってディスク装置３０に転送され、ディスク装置３０にてデータ保証コードの不一致エラーが発生する動作を説明する。
【００２４】
また、図１の動作を説明するにあたり次のような設定を仮定する。
【００２５】
１物理セクタ単位長を５２０バイトとし、５１２バイトのデータと８バイトのCRCコードを含み、つまりデータ保証コードとしては８バイトのCRCコードを使用すると仮定し、また、CRCコードとしては同じデータから計算生成したCRC同士を同じCRC生成アルゴリズムを使用して計算すると値が０になる事を期待可能なCRCコードを使用すると仮定し、さらに各ディスク装置固有ID２５、３５、４５、５５は８バイトの値であると仮定する。
【００２６】
まずディスクアレイ制御部１０のID選択部１１にて書き込みデータの転送先ディスク装置２０の固有ID（１６進数で８バイト幅の全て値Ａの値）が選択される。
【００２７】
次に選択されたID（１６進数で８バイト幅の全て値Ａの値）は転送データ５１２バイトの後ろに付加され、合計５２０バイトのデータ長となり（図２のA０）、ID（１６進数で８バイト幅の全て値Ａの値）の付加された５２０バイトのデータに対してCRC計算を行い、データ保証コード生成部１２にてCRCが生成される。
【００２８】
データ転送部１３にて５１２バイトデータの後ろに生成したCRCを付加して転送データ（図２のB０）を生成し、転送先ディスク装置２０への転送を行う。
【００２９】
ここで正常に動作していればディスク装置２０に対してデータ転送が行われるが、本説明ではデータ転送部１３の故障によりディスク装置３０に対してデータ転送が行われたと仮定する。
【００３０】
ディスクアレイ制御部１０からの転送データを受け取ったディスク装置３０は、ディスクアレイ制御部１０からの転送データ内のデータ部５１２バイトの後ろに自固有ID３５（１６進数で８バイト幅の全て値Bの値）を付加し、さらにその後ろにディスクアレイ制御部１０から転送されてきたCRCコードを付加して合計５２８バイトのデータ（図２のC０）を生成し、生成した５２８バイトのデータに対してデータ保証コードチェック部３２にてCRC計算を行う。
【００３１】
ここで、ディスクアレイ制御部１０にてCRC生成を行ったデータとID部分の値が異なるため、データ保証コードチェック部３２での計算結果は値０にならず、CRCエラーを検出し、データ保証コードチェック部３２にて検出したCRCエラーはディスクアクセス制御部３３に通知され、ディスクアクセス制御部３３はディスクアレイ制御部１０からの転送データをディスク部３４に書き込まず破棄する。
【００３２】
以上の動作により、誤ったディスク装置に転送された書き込みデータがディスク部に書き込まれる問題を解消出来る。
【００３３】
＜発明の他の実施の形態＞
次に、本発明の他の実施の形態について図面を参照して詳細に説明する。
【００３４】
図３を参照すると、ディスクアレイ制御部１０とディスク装置２０、３０、４０、５０の間にXBAR６０、７０、８０、９０が接続されていて、ディスクアレイ制御部１０とXBAR６０、７０、８０、９０はデータバス６１、７１、８１、９１及びアドレスバス６２、７２、８２、９２で接続されている。
【００３５】
XBAR６０、７０、８０、９０はディスクアレイ制御部１０とディスク装置２０、３０、４０、５０の間のデータ伝送ルートを決定するスイッチの機能を持ち、各々のXBAR６０、７０、８０、９０はすべてのディスク装置と接続されていて、ディスクアレイ制御部１０から特定のディスク装置２０、３０、４０、５０をアドレスバス６２、７２、８２、９２で指定してXBAR６０、７０、８０、９０にデータを送ると、XBAR６０、７０、８０、９０はアドレスバス６２、７２、８２、９２で指定されたディスク装置２０、３０、４０、５０へデータを転送する。
【００３６】
またXBAR６０、７０、８０、９０とディスク装置２０、３０、４０、５０は各々ユニークな固有IDを保持し、ディスクアレイ制御部１０はすべてのXBAR６０、７０、８０、９０とディスク装置２０、３０、４０、５０の固有ID情報を保持している。
【００３７】
つまり、ディスクアレイ制御部１０から特定のディスク装置２０、３０、４０、５０に対して書き込みデータを転送する場合、データ転送ルートとして使用するXBAR６０、７０、８０、９０のID情報と最終転送先であるディスク装置２０、３０、４０、５０のIDをデータに付加して、IDを付加したデータを用いてデータ保証コードの計算を行うことが可能であり、データ保証コードの補償範囲にデータのみでなくXBAR６０、７０、８０、９０の固有IDとディスク装置２０、３０、４０、５０の固有IDを含めることが可能である。
【００３８】
さらに、各々のディスク装置２０、３０、４０、５０がディスクアレイ制御部１０からの書き込みデータ転送ルートとして使用されるべきXBAR６０、７０、８０、９０の固有IDをあらかじめ設定等により知っていれば、データ保証コードチェックの対象データとして自固有IDとルートとして使用されたXBAR６０、７０、８０、９０の固有IDを転送データ内のデータ部の後ろに付加してデータ保証コードチェックに使用可能である。この場合、スイッチのルートも含めたチェックが可能となり、さらにデータ保証能力が向上する。
【００３９】
また、XBAR６０、７０、８０、９０が転送先であるディスク２０、３０、４０、５０の固有IDを設定等により知っていれば、XBAR６０、７０、８０、９０にてディスクアレイ制御部１０からの転送データに対してデータ保証コードチェックを実施することも可能であり、前記データ保証コードチェックの結果がデータ保証コード不一致エラーであった場合、転送データをディスク装置２０、３０、４０、５０に転送しないで破棄することも可能である。
【００４０】
さらに、図３と同様な構成のディスクアレイ装置においてXBAR６０、７０、８０、９０で転送データのデータ保証コードを乗せ換える事も可能である。
【００４１】
この場合、ディスクアレイ制御部１０はすべてのXBAR６０、７０、８０、９０の固有ID情報を持っていて、ディスクアレイ制御部１０ではデータ保証コードの計算を行うときデータの後ろにXBAR６０、７０、８０、９０の固有IDから転送ルートによってIDを選択し、選択したIDをデータに付加してデータ保証コードの生成を行い、転送データとして書き込みデータとXBAR６０、７０、８０、９０の固有IDを保証範囲に含めたデータ保証コードを転送先であるXBAR６０、７０、８０、９０に転送する。
【００４２】
XBAR６０、７０、８０、９０ではディスクアレイ制御部１０からの転送データのデータ保証コードチェックを行う時に、データ保証コードの計算対象として転送データの後ろに自固有IDを付加して計算を行うことで、ディスクアレイ制御部１０からXBAR６０、７０、８０、９０までのデータ伝達ルートが正しいことが検証可能であり、データ保証コードチェックの結果が不一致エラーであった場合、ディスクアレイ制御部１０からの転送データをディスク部２０、３０、４０、５０に転送しないで破棄することも可能である。
【００４３】
また、すべてのXBAR６０、７０、８０、９０は接続されているすべてのディスク装置２０、３０、４０、５０の固有ID情報を持っていて、ディスクアレイ制御部１０からの書き込みデータがデータ保証コードチェックで正しかった場合（もしくはデータ保証コードチェックの結果がエラーであっても転送データを破棄しなかった場合）、アドレスバス６２、７２、８２、９２の指示によって複数のディスク装置２０、３０、４０、５０からデータ転送先を選択してデータを転送するが、この時XBAR６０、７０、８０、９０でデータ保証コードを生成し、生成したデータ保証コードをデータに付随してディスク装置２０、３０、４０、５０に転送する。
【００４４】
具体的にはディスクアレイ制御部１０から転送されてきたデータ保証コードはXBAR６０、７０、８０、９０でのデータ保証コードチェックが終了した時点で破棄し、新たにXBAR６０、７０、８０、９０で生成したデータ保証コードを転送データに付随して転送する。このときXBAR６０、７０、８０、９０で生成したデータ保証コードは最終転送先であるディスク装置２０、３０、４０、５０の固有IDを保証する。
【００４５】
この場合、データ伝達ルートの故障がディスクアレイ制御部１０とXBAR６０、７０、８０、９０の間で発生したのか、XBAR６０、７０、８０、９０とディスク装置２０、３０、４０、５０の間で発生したのかのエラー分解能力を向上することが可能である。
【００４６】
なお、上記形態は本発明を実施するための一例であってこれに限定するものではない。従って、本発明の要旨を変更しない範囲において種々変形することが可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明の最良の形態の実施例のブロック図である。
【図２】本発明の最良の形態の実施例で示されるディスクアレイ装置の各部で使用されるデータ形式である。
【図３】本発明の他の形態の実施例のブロック図である。
【符号の説明】
【００４８】
００    上位ホスト
１０    ディスクアレイ制御部
１１    転送先IDセレクタ
１２    データ保証コード生成部
１３    データ転送部
２０、３０、４０、５０    ディスク装置
２１、３１、４１、５１    ディスク制御部
２２、３２、４２、５２    データ保証コードチェック部
２３、３３、４３、５３    ディスクアクセス制御部
２４、３４、４４、５４    ディスク部
２５、３５、４５、５５    ディスク装置固有ID
２６、３６、４６、５６    データバス
６０、７０、８０、９０    XBAR（スイッチ部）
６１、７１、８１、９１    データバス
６２、７２、８２、９２    アドレスバス
Ａ０    CRC生成計算対象データ形式
Ｂ０    転送データ形式
Ｃ０    CRCチェック対象データ形式
【図１】
2005250551.tif 000003
【図２】
2005250551.tif 000004
【図３】
2005250551.tif 000005