(57)【要約】【目的】  ディスクアレイサブシステムのライトペナルティの低減を目的とする。【構成】  ディスク装置は上位インタフェースを２チャンネル持ち、一方のチャネルは制御装置と接続し、他方のチャネルは複数のディスク装置間で接続される。データディスク装置は記録媒体上の旧データを読みだし、制御装置からの排他的論理和を計算し、仮のパリティデータとし他方のチャネルからパリティディスクへ転送する。パリティディスク装置は記録媒体上の旧パリティデータを読みだし、上記仮のパリティデータとの排他的論理和を計算し新パリティデータとしてへ書き込む。【効果】  本発明を用いた場合、従来はディスクアレイ制御装置が行なうパリティデータ更新処理をディスク装置がオフラインで処理するので、上位ホストコンピュータから見たデータ書き込み時の性能が向上する。【選択図】  図１
2004199720.tif 000002
【特許請求の範囲】
【請求項１】
アレイを形成する複数の記憶手段と、上位装置と前記複数の記憶手段とに接続され、前記上位装置と前記複数の記憶手段とのデータ転送を制御する制御手段と
、前記複数の記憶手段のうちパリティグループを構成する前記複数の記憶手段同士を接続するインタフェースとを有することを特徴とするディスクアレイサブシステム。
【請求項２】
前記記憶手段は、上位装置に接続される第１のインタフェースと、パリティグループを構成する前記記憶手段同士を接続する第２のインタフェースと、第１あるいは第２のインタフェースから転送される書込みデータを格納する第１のバッファメモリと、記憶媒体上のデータを格納する第２のバッファメモリと、第１のバッファメモリの出力と第２のバッファメモリの出力との排他的論理和を計算する演算手段を有し、
前記書込みデータが上位装置から前記第１のインタフェースを介して転送される新データの場合、前記新データが前記第１のバッファメモリに格納され、前記新データにより更新される旧データが前記第２のバッファメモリに格納され、前記新データと前記旧データとの排他的論理和が前記演算手段により計算され、該演算手段の出力が仮パリティデータとして前記第２のインタフェースを介して前記パリティグループのパリティデータを格納する前記記憶手段に転送され、
前記書込みデータが上位装置から前記第２のインタフェースを介して転送される仮パリティデータの場合、前記仮パリティデータが第１のバッファメモリに格納され、前記仮パリティデータにより更新される旧パリティデータが前記第２のバッファメモリに格納され、前記仮パリティデータと前記旧パリティデータとの排他的論理和が前記演算手段により計算され、該演算手段の出力が新パリティデータとして記録媒体上に記録されることを特徴とする請求項第１項記載のディスクアレイサブシステム。
【請求項３】
制御部と、
複数のディスク装置に格納されるデータとパリティデータを備えるパリティグループと、
前記複数のディスク装置のうち、一方のディスク装置と他方のディスク装置とに接続される第１のパスと、
ディスク装置と前記制御部とに接続される複数の第２のパスと、
前記ディスク装置の各々は、前記ディスク装置の各々に格納されているデータと、前記第１のパスまたは、前記複数の第２のパスの何れかのパスから送られるデータとの排他的論理和を演算する演算部を備え、
一方のディスク装置が前記複数の第２のパスの何れかのパスから送られるデータを受領した場合、前記一方のディスク装置は、前記受領したデータと前記パリティグループの旧データとの排他的論理和を演算し、前記演算された排他的論理和を前記第１のパスへ送り、
他方のディスク装置が前記第１のパスから送られる前記パリティグループの前記演算された排他的論理和を受領した場合、前記他方のディスク装置は、前記演算された排他的論理和と、前記他方のディスク装置に格納されたパリティデータとの排他的論理を演算し、前記パリティグループの新しいパリティデータとして、前記排他的論理和の結果を格納することを特徴とするディスクアレイサブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク装置を複数台接続して並列動作させるディスクアレイサブシステムに関し、特にＲＡＩＤ４及びＲＡＩＤ５におけるライトペナルティの低減を実現するディスクアレイサブシステムに関する。
【背景技術】
【０００２】
ディスクアレイサブシステムは安価な小型ディスク装置を複数台接続し、並列動作させることにより、大型ディスク装置相当の性能を持たせる磁気ディスク装置である。図７に一般的なディスクアレイの構成を示す。このディスクアレイは
、ホストインタフェース１２を介してホストコンピュータ１に接続されるディスクアレイ制御部２と、このディスクアレイ制御部２に接続され並列に動作する複数のディスク装置１８とから構成される。ディスクアレイ制御部２は、ホストコンピュータ１からの読み出しあるいは書き込み命令を一旦格納するホストインタフェース制御部３、ディスクアレイ制御部２の動作を制御するＣＰＵ４、ホストコンピュータ１とディスク装置１８との間で転送されるデータを格納するキャッシュメモリ６、キャッシュメモリを制御するキャッシュメモリ制御部５、ディスク装置１８とのデータ転送を制御するディスク制御部７により構成される。
【０００３】
リード時、要求されたデータがキャッシュメモリ６にあることがキャッシュ制御部５によって確認された場合、そのデータはキャッシュメモリ６からホストインタフェース１２を介してホストコンピュータ１に転送される。要求されたデータがキャッシュメモリ６にない場合、ＣＰＵ４はそのデータを格納するディスク装置１８からディスク制御部７とキャッシュメモリ制御部５を介してキャッシュメモリ６に格納される。キャッシュメモリ制御部５は格納終了後、あるいは同時平行してデータをホストコンピュータ１に転送する。
【０００４】
ライト時、ホストコンピュータ１から転送されるライトデータは、ホストインタフェース１２及びホストインタフェース制御部３を介してキャッシュメモリ制御部５によりキャッシュメモリ６に格納される。キャッシュメモリ制御部５は格納終了後、あるいは同時平行してディスク制御部７を介してライトデータをＣＰＵ４の指定するディスク装置１８に書き込む。
【０００５】
ディスクアレイサブシステムは、信頼性確保のため、複数のデータディスクに格納されるデータのパリティを作成し、パリティディスクに格納している。ＲＡＩＤ４では、パリティディスクは特定のディスク装置に固定されている。ＲＡＩＤ５では、アクセスがパリティディスクに集中することによる性能低下を考慮し
、データ単位毎に全ディスク装置均等にパリティを分散する。
【０００６】
米国特許公報５１９１５８４号には、ＲＡＩＤ４あるいは５のディスクアレイサブシステムにおけるデータ更新方法が示されている。このデータ更新方法では
、制御装置が処理データ単位毎に１台のデータディスクにアクセスする場合、データ書込み時でも全データディスクにアクセスする必要はない。制御装置は書込み対象のデータディスクの旧データとパリティディスクの旧パリティデータとホストコンピュータより転送された新データとの排他的論理和により新パリティデータを計算し、その新パリティデータによりパリティディスクを更新する。そのため、書込み対象のデータディスクとパリティディスク以外のディスクは別の処理が可能である。特にＲＡＩＤ５の場合、パリティディスクが特定されないため
、同時に書き込み処理を行うことも可能になる。
【０００７】
【特許文献１】米国特許公報５１９１５８４号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この方法において問題になるのは、図８に示すようにデータ書込み時にパリティディスクの更新のために以下の５つの処理が発生し、処理能力が低下することである。
１）旧データを当該アドレスのデータディスクより読み出す。
２）旧パリティデータを当該アドレスのパリティディスクより読み出す。
３）新データを当該アドレスのデータディスクに書き込む。
４）新データと旧データと旧パリティデータの排他的論理和を計算し、新パリテ
ィデータを求める。
５）前記新パリティデータをパリティディスクに書き込む。
【０００９】
上述した５つの処理のうち、４）以外の４つの処理はディスク装置の記録媒体に対するアクセス処理を伴うものであり、ディスクアレイサブシステムの処理能力低下の原因となる。このようなデータ書込み時に発生するパリティディスクの更新のための記録媒体に対するアクセス処理の増加による処理能力の低下は、ライトペナルティと呼ばれている。
【００１０】
本発明の目的は、データ書込み時にライトペナルティにより記録媒体に対するアクセス処理が増加しても処理能力の低下しないディスクアレイサブシステムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明のディスクアレイサブシステムを構成するディスク装置は、２つのインタフェースを有する。第１のインタフェースはディスク制御装置とディスク装置とを接続し、第２のインタフェースはパリティを共有する複数のディスク装置を相互に接続する。
【００１２】
ホストコンピュータから転送された新データは、ディスクアレイ制御装置によってディスク装置に転送される。ディスク装置は第１のインタフェースにより新データを受け取る一方で記録媒体上の旧データを読みだし、新データと旧データとの排他的論理和を計算し、その結果を仮のパリティデータとして第２のインタフェースからパリティディスクへ転送するとともに、新データを記憶媒体上に書き込む。この新データのパリティデータが格納されているディスク装置は仮のパリティデータを第２のインタフェースから受け取る一方で記録媒体上の旧パリティデータを読みだし、仮のパリティデータと旧パリティデータとの排他的論理和を計算し、その結果を新パリティデータとして記録媒体上に書き込む。
【発明の効果】
【００１３】
本発明によるディスクアレイサブシステムによれば、ディスク装置がディスク制御装置に終了報告を行なった後で、データ書き込み時のパリティデータの更新をディスク装置間のインタフェースを介して行なうので、ライトペナルティによる遅延時間を上位ホストコンピュータから見て短縮できる。
【発明を実施するための最良の形態】
【００１４】
図１に本発明の実施例を示す。この実施例では、パリティグループはｎ台のデータディスク装置と１台のパリティディスク装置とで構成される。各ディスク装置８は２つのインタフェースを有する。一方はディスク制御部７を介してホストコンピュータに接続されるインターフェース１３である。他方はパリティグループを構成するディスク装置を相互に接続するインタフェース１４である。ここではインターフェース１３をディスクインタフェース、インタフェース１４をパリティインタフェースと称する。
【００１５】
書き込み命令を受け取ったディスク装置８は、ディスクインタフェース１３によって転送された新データとディスク媒体上の旧データの排他的論理和を計算し
、その計算結果を第２のインタフェースを介してパリティディスク装置に転送する。パリティディスク装置はその計算結果とディスク装置に格納されている旧パリティデータの排他的論理和を新パリティデータとして格納する。
【００１６】
図２にディスク装置８の詳細な構成を示す。ディスク装置８はディスクインタフェース１３あるいはパリティインタフェース１４から転送されるデータを格納するバッファメモリ２１、記録媒体から読みだしたデータを格納するバッファメモリ２２、バッファメモリ２１の出力とバッファメモリ２２の出力との排他的論理和を計算する演算部２３、パリティインタフェース１４の接続先を切り替える切り替え部Ａ２４、記録媒体の接続先を切り替える切り替え部Ｂ２５、データを格納する記録媒体２６、ディスク装置の動作を制御するＣＰＵ２７を有する。
【００１７】
バッファメモリ２１は、ディスク装置がデータディスクの場合はディスクインタフェース１３から転送される書込みデータ（新データ）を格納し、ディスク装置がパリティディスクの場合はパリティインタフェース１４から転送される仮パリティを格納する。
【００１８】
切り替え部Ａ２４は、ディスク装置がデータディスクの場合は仮パリティをパリティインタフェースに出力するためにａ１側に切り替えられ、ディスク装置がパリティディスクの場合はパリティインタフェース１４から転送される仮パリティをバッファメモリ２１に格納するためにａ２側に切り替えられる。
【００１９】
バッファメモリ２２は、記録媒体２６の旧データあるいは旧パリティを格納する。そして、ディスク装置がデータディスクの場合は新データと旧データとの排他的論理和をパリティインタフェースに出力し、バッファメモリ２１に格納されている新データを記録媒体２６に格納する。ディスク装置がパリティディスクの場合は仮パリティと旧パリティとの排他的論理和を新パリティとして記録媒体２６に格納する。
【００２０】
切り替え部Ｂ２５は、記録媒体２６のデータをバッファメモリ２２に格納する際はｂ１側に切り替えられる。そして、バッファメモリ２１に格納されている新データを記録媒体２６に格納する際はｂ２側に、新パリティを記録媒体２６に格納する際はｂ３側に切り替えられる。
【００２１】
図３は本発明の一実施例を示し、ＲＡＩＤ４の場合の構成を示す。ＲＡＩＤ４ではパリティディスクは固定されている。この実施例ではディスク装置８−１（
ｎ＋１）〜８−ｍ（ｎ＋１）をパリティディスクとする。
【００２２】
図４に、この実施例の詳細な処理について示す。インタフェース１３−１を介してディスク制御部７−１からアドレス＃０への書き込みデータを受領したディスク装置８−１１は、
１）ディスク装置内のバッファメモリ２１にデータをすべて受領した時点でディ
スク制御部７−１に終了報告する。
２）記録媒体上のアドレス＃０の旧データを読みだす。（この処理はバッファメ
モリＢに事前に読みだしておいてもよいし、新データのバッファ書き込みと同
時並行して行ってもよい。）
３）新データと旧データの排他的論理和を計算する。
４）計算結果を仮パリティとし、該当するアドレスのパリティデータを格納する
ディスク装置へインタフェース１４−１を介して転送する。
５）新データを記録媒体２６上のアドレス＃０に書き込む。
【００２３】
仮パリティをインタフェース１４−１を介してデータディスク装置８−１１より受領したパリティディスク装置８−１（ｎ＋１）は、
１）データをディスク装置内のバッファメモリ２１にすべて受領した時点で  データディスク装置８−１１に終了報告する。
２）記録媒体２６上の、アドレス＃０ｎＰの旧パリティデータを読みだす。（こ
の処理はバッファメモリ２２に事前に読みだしておいてもよいし、仮パリ  ティデータのバッファ書き込みと同時並行して行ってもよい。）
３）仮パリティデータと旧パリティデータの排他的論理和を計算する。
４）計算結果を新パリティデータとして記録媒体２６上のアドレス＃０ｎＰに書
き込む。
【００２４】
上述した処理によれば、上位装置からのデータをディスク装置のバッファメモリに格納した時点で、ディスク装置が終了報告を送信するので、データ書込み時の処理時間を上位装置から見て短縮できる。
【００２５】
図５は本発明の他の実施例を示し、ＲＡＩＤ５の場合の構成を示す。ＲＡＩＤ５ではパリティディスクは固定されず、データ処理単位毎に（ｎ＋１）台のデータディスク間でローテーションする。それ以外の動作はＲＡＩＤ４の場合と同じである。データディスク装置が、仮パリティを転送するために、どのディスク装置が該当するパリティディスクかを認識する必要がある。その手段としては、ディスク制御部が書き込み命令の中で教える方法、あるいは本実施例のようにパリティデータが順にシフトしていくことから、アドレスを（ｎ＋１）で割った余りとディスク装置自身のＩＤ番号から計算する方法がある。
【００２６】
図６にＲＡＩＤ５の場合の詳細な処理について示す。インタフェース１３−１を介してディスク制御部７−１からアドレス＃０への書き込みデータを受領したディスク装置８−１１は、
１）ディスク装置内のバッファメモリ２１にデータをすべて受領した時点で  ディスク制御部７−１に終了報告する。
２）記録媒体２６上の、アドレス＃０の旧データを読みだす。（この処理はバッ
ファメモリＢの別番地に事前に読みだしておいてもよいし、新データのバッフ
ァ書き込みと同時並行して行ってもよい。）
３）新データと旧データの排他的論理和を計算する。
４）計算結果を仮パリティとし、該当するアドレスのパリティデータを格納する
ディスク装置へインタフェース１４−１を介して転送する。
５）新データをディスクメディア上のアドレス＃０に書き込む。
【００２７】
仮パリティをインタフェース１４−１を介してデータディスク装置８−１１より受領したパリティディスク装置８−１（ｎ＋１）は、
１）ディスク装置内のバッファメモリ２１にデータをすべて受領した時点でデー
タディスク装置に終了報告する。
２）記録媒体２６上の、アドレス＃０Ｐの旧パリティデータを読みだす。（この
処理はバッファメモリ２２に事前に読みだしておいてもよいし、仮パリティデ
ータのバッファ書き込みと同時並行して行ってもよい。）
３）仮パリティデータと旧パリティデータの排他的論理和を計算する。
４）計算結果を、新パリティデータとして記録媒体２６上のアドレス＃０ｎＰに
書き込む。
【００２８】
ＲＡＩＤ５では、パリティディスクを固定しないことにより、ホストコンピュータの要求アドレス（例えば＃０）が存在するディスク装置８−１１および当該パリティデータが存在するディスク装置８−１（ｎ＋１）に対して書き込み処理中に、別のディスク装置８−１３のアドレス＃（２ｎ＋１）および当該パリティデータが存在するディスク装置８−１２へのアクセスも可能となる。従って、パリティインタフェース上のパリティ更新処理と制御装置インタフェース上でのデータ書込み／読出し処理とが、複数のディスク装置によって並行して実行できるようにすることにより、更にシステム性能が向上する。
【００２９】
上記の実施例によれば、ディスクアレイサブシステムのパリティデータの更新のための旧データ、旧パリティデータの読みだし処理、新パリティデータの計算及び書込みの処理をディスク装置が行うため、ディスクアレイ制御装置の負担は軽減される。また、仮のパリティデータの転送をディスクアレイ制御装置を介さずに行うため、ディスク制御装置からディスク装置へのアクセスの集中による処理能力の低下を防止でき、データ書込み時の性能が向上する。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施例によるディスクアレイサブシステムの構成図。
【図２】本発明の実施例によるディスク装置の詳細な構成図。
【図３】本発明の実施例によるＲＡＩＤ４の構成図。
【図４】本発明の実施例によるＲＡＩＤ４のライト時の動作のタイムチャート。
【図５】本発明の実施例によるＲＡＩＤ５の構成図。
【図６】本発明の実施例によるＲＡＩＤ５のライト時の動作のタイムチャート。
【図７】従来のディスクアレイサブシステムの構成図。
【図８】従来例によるＲＡＩＤ５のライト時のデータ転送のタイムチャート。
【符号の説明】
【００３１】
１：ホストコンピュータ、            ２：ディスクアレイ制御装置、
３：ホストインタフェース制御部、    ６：キャッシュメモリ、
７：ディスク制御部、                ８：ディスク装置、
１１：制御装置の内部バス、          １２：ホストインタフェース、
１３：ディスクインタフェース、      １４：パリティインタフェース、
２１，２２：入力、及びバッファメモリ
２３：演算部                        ２６：記録媒体
【図１】
2004199720.tif 000003
【図２】
2004199720.tif 000004
【図３】
2004199720.tif 000005
【図４】
2004199720.tif 000006
【図５】
2004199720.tif 000007
【図６】
2004199720.tif 000008
【図７】
2004199720.tif 000009
【図８】
2004199720.tif 000010