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