(57)【特許請求の範囲】
【請求項１】
記憶制御装置と、データを格納するDVDとを有する記憶装置であって、
データ処理装置から受信したライトデータを一時的に格納する、ECC生成に使用されるデータの量と等しい所定の容量を有するセグメントを複数備えたバッファメモリと、
データ処理装置と前記バッファメモリとの間、及び前記バッファメモリと前記DVDとの間のデータの転送を制御するディレクタとを有しており、
前記ディレクタは、データ処理装置から受信したデータを前記バッファメモリの一又は複数のセグメントに格納し、
前記複数のセグメントのうち前記所定の容量分のデータが格納されたセグメントについては、該セグメントに格納されたデータを用いて該データと同じDVDに格納されるECCを生成して、該データと該ECCを同じDVDに書き込み、
前記複数のセグメントのうち前記所定の容量より少ないデータが格納されたセグメントについては、該セグメントに格納されたデータをDVDに書き込むのを、所定の時間延期し、
セグメントにデータが格納されてから前記所定の時間経過後に、前記所定の容量より少ないデータが格納されているセグメントについては、前記所定の容量を満たすよう、前記所定の容量に足りない分のデータ量のデータをDVDから読み出して、読み出されたデータと該セグメントに格納されたデータとを用いてECCを生成し、該セグメントに格納されたデータと生成されたECCとを同じDVDに書き込むことを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置であって、
前記所定の容量とは、３２Kbyteであり、３２Kbyte分のデータからECCを生成することを特徴とする記憶装置。
【請求項３】
データ処理装置から受信したデータをデータレコードに分割して各々のデータレコードを複数のDVDのいずれかに格納する記憶装置であって、
複数のDVDと、
レコードのデータを一時的に格納するレコードサイズ分の容量を有するセグメントを複数備えたバッファメモリと、
制御装置とを有しており、
セグメントに格納されたレコードのデータからは、所定の容量のデータごとにECCが生成され、前記レコードサイズは前記所定の容量の整数倍であって、セグメントに格納されたレコードのデータと該データから生成される一又は複数のECCとは同一のDVDに格納され、
各々異なるDVDに格納される複数のデータレコードと、該複数のデータレコードから生成され該複数のデータレコードとは異なるDVDに格納されるパリティレコードとからパリティグループが構成され、
同じパリティグループに属する全データレコード分のデータが複数のセグメントにデータレコード毎に格納されている場合には、該パリティグループに属する複数のデータレコードからパリティレコードを生成し、各データレコード及びパリティレコードについて、前記所定の容量ごとにECCを生成して、各データレコード及びパリティレコードを対応するECCと共にDVDに格納し、
同じパリティグループに属する複数のデータレコードのうち、一部のデータレコードについてレコードサイズより少ない容量のデータがセグメントに格納されている場合には、該パリティグループに属する複数のデータレコード中にセグメントにライトされてから所定の時間以上経過しているデータを有するデータレコードが存在する場合に、該一部のデータレコードについてレコードサイズを満たすよう、レコードサイズに足りない分のデータ量のデータをDVDから読出し、該パリティグループに属する複数のデータレコードからパリティレコードを生成し、各データレコード及びパリティレコードについて、前記所定の容量ごとにECCを生成して、各データレコード及びパリティレコードを対応するECCと共にDVDに格納することを特徴とする記憶装置。
【請求項４】
請求項３記載の記憶装置であって、
前記所定の容量は３２Kbyteであることを特徴とする記憶装置。
【請求項５】
請求項３記載の記憶装置であって、
同じパリティグループに属する複数のデータレコードのうち、一部のデータレコードについてレコードサイズより少ない容量のデータがセグメントに格納されている場合であって、該パリティグループに属する複数のデータレコード中にセグメントにライトされてから所定の時間以上経過しているデータを有するデータレコードが存在しない場合には、該パリティグループに属する複数のデータレコードをDVDに格納するのを延期することを特徴とする記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置、および、記憶装置と記憶制御装置により構成される記憶装置サブシステムに関する。
【０００２】
【従来の技術】
計算機システムにおいて、ディスク装置以外にしばしば用いられる記憶装置として、磁気テ−プ、光記憶装置等がある。特に最近では、DVD（Digital Video Disk）が注目されている。
【０００３】
DVDは、音声や映像、動画といった、大規模データの記憶などの用途に適した大容量記憶媒体である。計算機環境のマルチメディア化による大規模データ処理のニーズの高まりに併せて、DVDの高性能化、高信頼化、高可用化を実現することは有効である。
【０００４】
DVDの高性能化、高信頼化、高可用化の実現方法として、Pattersonの論文で提案されているRAID技術を適用することも提案されている。
【０００５】
エー．シー．エム．シグモッド コンファレンス プロシーディング、1988年、6月,ページ１０９−１１６（D.Patterson,et al:A Case for Redundant Arrays of Inexpensive Disks(RAID),ACM SIGMOD conference proceeding, Chicago, IL, June1-3,1988,pp.109-116）Ｐａｔｔｅｒｓｏｎの論文は、ディスクアレイ上のデータ配置に関する技術を開示したものである。
【０００６】
ディスクアレイは、ディスクシステムの高性能化、高信頼化を実現するための機構である。ディスクアレイでは、高性能化のために、物理的には複数のディスク装置を、処理装置に対しては１台のディスク装置に見せかける。一方、高信頼化のためには、データを格納したディスク装置に障害が発生した場合、データの回復を行うための冗長データを別のディスク装置に格納しておく。
【０００７】
通常、ディスク装置のリード／ライト単位となるデータをレコードと呼ぶが、Ｐａｔｔｅｒｓｏｎの論文では、いくつかのレコード配置方法が提案されている。ただし、ディスクアレイを用いた場合、処理装置から見たリードライト単位であるレコードと、ディスク装置に実際に記録されるレコードとではデータ長が異なる場合がある。以下、前者を論理レコード、後者を物理レコードと呼ぶ。
【０００８】
【発明が解決しようとする課題】
ディスク装置などの記憶装置では、記憶媒体にデータを格納する際に一定の記録単位毎に誤り訂正用のコードであるECCを付加して、信頼性を向上させている。例えば、SCSIディスク装置では512Bytesのデータ毎、DVDでは３２KBytes毎にこのECCを生成し、付加する。
【０００９】
このため、データ処理装置からライトされた任意のサイズのデータを記憶媒体に書き込むには、ECC生成単位として不足分のデータを、一旦記憶媒体からバッファ上に読み上げ、読み上げたデータとライトデータとを合わせてECCを生成し、データとECCを記憶媒体に書き込む必要がある。
【００１０】
同様の問題は、記憶装置にRAID技術を適用した場合にも生じる。
【００１１】
RAIDでは、データ処理装置からライトされた連続データを複数の物理レコードに分割し、それぞれ対応する記憶媒体に格納する。以下、これらの物理レコードをデータレコードと呼ぶ。また、複数のデータレコードに対して冗長データを生成して、データレコードとは別の記憶媒体の物理レコードに格納する。以下、この冗長データをパリティ、パリティを格納する物理レコードをパリティレコードと呼び、パリティレコードとそれに対応するいくつかのデータレコードの集まりをパリティグループと呼ぶ。
【００１２】
パリティ生成を終えたデータレコードや、生成されたパリティレコードを記憶媒体に書き込む際、物理レコードがECC生成単位にきっちり収まらないと、不足分を記憶媒体から読み上げる必要が生じる。例えば、ECC生成単位が３２KBytesのDVDの場合、物理レコードサイズが８０KBytesだとすると、最初の64KBytesに対してはライトデータのみでECCを生成することができるが、残りの１６KBytesに対しては、不足分の１６KBytesのデータまたはパリティを記憶媒体から読み上げる必要が生じる。
【００１３】
このように、DVDなどの記憶装置への書き込みでは、ECCの生成単位に満たないデータまたはパリティを記憶媒体からリードする必要があるため、本来余計なデータ転送が発生し、記憶装置への負荷増による記憶装置サブシステム全体性能の低下を招く。
【００１４】
【課題を解決するための手段】
データ格納時に規定単位のデータに対してECCを生成するような記憶装置のライト処理では、データ処理装置からライトされたデータをすぐに記憶媒体に書き込まずに、ECC生成単位分のデータが揃うまで書き込みを延期する制御を行う。この結果、記憶媒体からの不足分データのリードを行わずとも、ライトデータのみでECCを生成して記憶媒体に書き込むことが可能となる。
【００１５】
特に、DVDが対象とする大規模な連続データの場合、データ処理装置から送られてきたあるライトデータに対して、それに続くデータが引き続きライトされる確率は高く、上記のデータスケジュールにより、ほぼすべてのデータを余計なリードなしで記憶媒体に書き込み可能である。
【００１６】
なお、ECC生成単位分のデータが揃うまで書き込みを延期する制御は、記憶制御装置でなく、データ処理装置、または記憶装置で行っても構わない。
【００１７】
同様に、RAIDについても、物理レコードサイズをECC生成単位の倍数にすることで、パリティ生成を終えたデータレコード、およびパリティレコードに対して、バッファ上のデータのみでECCを生成し、記憶媒体に書き込むことが可能となる。
【００１８】
以上の内容を適用すると、DVDなどの記憶装置、およびDVDなどの記憶装置にRAID技術を適用した記憶装置サブシステムのデータ書き込みにおけるデータ転送量を削減でき、高性能化が可能となる。
【００１９】
【発明の実施の形態】
以下、本発明の実施例について説明する。なお、これにより本発明が限定されるものではない。
【００２０】
本発明の実施例は、第１の実施例と第２の実施例の２つある。
【００２１】
第１の実施例は、記憶装置としてDVDを例に挙げ、DVDに対するライトデータを一時バッファに溜め、ECC生成単位である３２KBytesのライトデータが揃った後、ECCを生成して記憶媒体に書き込むものである。
【００２２】
第２の実施例は、DVDにRAID技術を適用したDVD-RAIDにおいて、物理レコードサイズをECC生成単位である３２KBytesの倍数として、ライトデータをバッファ内に溜め、パリティグループの全データレコード分のデータが揃った後、パリティを生成し、データレコードとパリティレコードについて、それぞれECCを生成し、記憶媒体に書き込むものである。
【００２３】
まず、第１図〜第５図、第９図〜第１０図を参照して、第１の実施例を説明する。
【００２４】
第１図は、本発明の対象となる情報処理システムのブロック図である。
【００２５】
情報処理システムは、データ処理装置１００と、記憶制御装置１０４と、１台以上のDVD１０５を接続してなっている。
【００２６】
データ処理装置１００は、CPU１０１と、主記憶１０２と、チャネル１０３とを有している。
【００２７】
記憶制御装置１０４は、１つ以上のディレクタ１０６と、バッファメモリ１０７と、バッファメモリ管理情報１０８と、論理物理対応情報１０９を有している。
【００２８】
ディレクタ１０６は、チャネル１０３とDVD１０５の間のデータ転送、チャネル１０３とバッファメモリ１０７の間のデータ転送およびバッファメモリ１０７とDVD１０５の間のデータ転送を行う。
【００２９】
バッファメモリ１０７には、DVD１０５へのライトデータを一時的に格納する。格納されたライトデータのDVD１０５への書き込みは、ディレクタ１０６が実行する。第２図に、バッファメモリ１０７の構成を表わす。バッファメモリ１０７は複数のセグメント２００で構成される。第１の実施例の場合、セグメント２００のサイズをDVDのECC生成単位である３２KBytesとし、３２KBytesのデータ領域に割り当てる。第２の実施例のDVD-RAIDでは、セグメント２００のサイズを物理レコードのデータを格納しうる値とする。なお、第２の実施例では、物理レコードサイズはECC生成単位３２KBytesの倍数とするので、セグメント２００のサイズもこれに従う。どのセグメント２００にどのデータ領域、またはレコードを割り当てるかについては、従来公知の方法を用いることができる。データ領域、またはレコードが割り当てられていない空き状態のセグメント２００も存在しうる。
【００３０】
バッファメモリ管理情報１０８は、バッファメモリ１０７の各セグメント２００に関する情報を格納する。第３図はバッファメモリ管理情報１０８のうち、本実施例に関係のある部分の構成を表わす。バッファメモリ管理情報１０８は、セグメントとデータ領域またはデータレコードとの割り当て状況を管理する情報や、各セグメント２００の状態を管理するセグメント管理情報３００などから構成される。なお、セグメント管理情報３０１は、セグメント２００の数だけ存在するが、セグメント２００に静的に１対１対応するわけではない。
【００３１】
セグメント管理情報３００は、割り当てデータ位置情報３０１と最終ライト時間３０２と格納データ開始位置３０３と格納データサイズ３０４から構成される。割り当てデータ位置情報３０１は、当該セグメント２００を割り当てたデータ領域、または物理レコードを示す。最終ライト時間３０２は、当該セグメント２００に格納しているライトデータにデータ処理装置１００から最後のアクセスのあった時間を示す。格納データ開始位置３０３と格納データサイズ３０４は、当該セグメントに実際に格納しているライトデータのデータ領域、または物理レコード内の相対開始位置およびサイズを示す。
【００３２】
論理物理対応情報１０９は、論理レコードと物理レコードとの対応関係を管理し、データ処理装置１００からのアクセスに対して、アクセスデータを格納する物理レコードおよび物理レコード内相対位置の算出に用いる。論理物理対応関係の管理は従来公知の方法を用いることができる。
【００３３】
次に第１の実施例での記憶制御装置の動作を説明する。
【００３４】
本実施例は、DVD１０５単体で構成される記憶装置サブシステムにおけるライト処理に関するものである。
【００３５】
第４図は、本実施例における記憶制御装置の動作を詳細に表わした図である。
【００３６】
まず、データ処理装置１００からライトされたデータに対してセグメント２００を割り当て、バッファメモリ１０７に蓄積する。データを蓄積したセグメント２００に対して、その蓄積データ量と最後ライトされてからの経過時間を調べる。３２KBytesのデータを全て格納したセグメント２００や、ライトされてから規定時間以上経過したデータを格納しているセグメント２００があれば、そのセグメント２００に格納しているデータをDVD１０５に書き込む。この処理をライトアフタ処理と呼ぶ。
【００３７】
データ処理装置１００からのライトデータにセグメント２００を割り当て、格納するには、従来公知の方法が適用できるので、ライトアフタ処理についてのみ説明する。
【００３８】
ライトアフタ処理は、ライトデータを格納したセグメントを周期的に検索して、処理対象となるものを検索し、そのセグメント２００に格納されているデータをDVD１０５に書き込む。
【００３９】
第５図は、ライトアフタ処理の処理フロー図である。
【００４０】
ステップ５０１で、バッファメモリ１０７上のライトデータを格納しているセグメント２００の管理情報１０９を用いて、３２KBytesのデータが全て格納されたセグメント２００を検索する。全データの揃ったセグメント２００があれば、これを処理対象としてステップ５０５にジャンプし、なければステップ５０２に移行する。
【００４１】
ステップ５０２では、ステップ５０１の条件を満たさなかったライトデータを格納したセグメント２００のうち、ライトされてから規定時間以上経過しているセグメント２００を管理情報１０９を用いて検索する。経過しているセグメント２００があれば、これを処理対象としてステップ５０３に移行し、なければライトアフタ処理を中断する。
【００４２】
ステップ５０３は、ステップ５０２で処理対象としたセグメント２００の管理情報１０９で、セグメント２００の格納するライトデータ量を参照し、対象セグメント２００に３２KBytesのデータが全て格納されているか判定する。全てのデータが格納されていればステップ５０５にジャンプし、セグメント２００に格納されているデータに足りない部分があれば、その範囲を求め、ステップ５０４に移行する。
【００４３】
ステップ５０４では、３２KBytes分には足りないデータをDVD１０５からバッファメモリ１０７に読み込み、ECC作成に必要なデータを揃える。
【００４４】
ステップ５０５では、３２KBytes揃ったライトデータに対してECCを生成して、DVD１０５に書き込む。
【００４５】
本実施例では、ECC生成単位分データが揃うまでライトを保留する制御を記憶制御装置１０４で行っているが、このライトアフタ処理を、データ処理装置１００や、DVD１０５で行ってもよい。第９図はライトアフタ処理をデータ処理装置１００で行う場合の、第１０図はDVD１０５で行う場合の、それぞれ記憶装置サブシステムの動作を示す。両ケースとも、各装置内の主記憶１０２やバッファメモリにライトデータを保持し、ECC生成単位分溜めてからライト処理を実行する。ライトアフタ処理の流れは、第５図に示した流れと同じであるので、説明は省略する。
【００４６】
次に、第６図〜第８図、第１１図を参照して、第２の実施例を説明する。
【００４７】
本実施例は、DVD-RAIDにおけるライト処理に関するものである。
【００４８】
第６図に、本実施例でのデータ処理装置１００からのデータとデータレコードの対応を示す。本実施例では、物理レコードサイズを、DVD１０５のECC生成単位である３２KBytesの倍数ｎとして、データ処理装置１００からのデータをこのサイズｎで分割する。本実施例のDVD-RAIDのRAIDレベルをRAID5とすると、これらの物理レコードはパリティグループ単位にパリティを生成し、図のように各DVD１０５に格納される。
【００４９】
第７図は、本実施例における記憶装置の動作を詳細に表わした図である。
【００５０】
データ処理装置１００からライトされたデータに対応するデータレコードを算出し、セグメント２００を割り当て、バッファメモリ１０７上に蓄積する。蓄積したデータレコードに対して、同一パリティグループのすべてのデータレコードのデータが揃ったものや、ライトされてから規定時間以上経過したものがあれば、そのパリティグループのデータレコードに対して、パリティを生成し、データとパリティに対して、ECCを生成した後、DVD１０５に書き込む。この処理を、第１の実施例と同様にライトアフタ処理と呼ぶ。
【００５１】
ライトアフタ処理は、ライトデータを格納したセグメント２００を周期的に検索して、処理対象となるパリティグループを検索し、処理を行う。
【００５２】
第８図は、ライトアフタ処理の処理フロー図である。
【００５３】
ステップ８０１で、バッファメモリ１０７上のライトデータを格納しているセグメント２００の管理情報１０９を用いて、所属するデータレコードの全データがセグメント２００に格納されたパリティグループを検索する。条件を満たすパリティグループがあれば、これを処理対象としてステップ８０５にジャンプし、なければステップ８０２に移行する。
【００５４】
ステップ８０２では、ライトデータを格納したセグメント２００のうち、ライトされてから規定時間以上経過しているセグメント２００を管理情報１０９を用いて検索する。該当するセグメント２００があれば、このセグメント２００の割り当てられたデータレコードの属するパリティグループを処理対象としてステップ８０３に移行し、なければライトアフタ処理を中断する。
【００５５】
ステップ８０３では、ステップ８０２で処理対象としたパリティグループに属する各データレコードのセグメント２００を調べて、フルレコード分のデータが揃っていないセグメント２００の有無を調べる。該当するセグメント２００がなければステップ８０６にジャンプし、あれば、その足りないデータの範囲を求め、ステップ８０４に移行する。
【００５６】
ステップ８０４では、データの足りないセグメント２００について、不足分のデータをDVD１０５からセグメント２００に読み込み、ECC作成に必要なデータをバッファメモリ１０７上に揃える。
【００５７】
ステップ８０５では、当該パリティグループのデータレコードの排他的論理和を計算して、パリティを生成する。
【００５８】
ステップ８０６では、当該パリティグループのデータレコードおよびパリティレコードに対して、ECCを生成してDVD１０５に書き込む。
【００５９】
本実施例では、ECC生成単位の倍数である物理レコードサイズ分データが揃うまでライトを保留する制御を記憶制御装置１０４で行っているが、第１１図に示すように、このライトアフタ処理をデータ処理装置１００で行ってもよい。
【００６０】
【発明の効果】
本発明の記憶制御方法および記憶制御装置によれば、DVDなどの記憶装置に対するデータ処理装置からのライトデータを記憶媒体に書き込む際に、ライトデータのみでECCを生成して記憶媒体に書き込むことが可能となり、記憶装置サブシステム全体の高性能化を実現できる。
【００６１】
また、DVDなどの記憶装置にRAID技術を適用した記憶装置サブシステムにおいて、パリティを生成したデータレコードと、パリティレコードをそれぞれ記憶媒体に書き込む際に、ライトデータのみでECC生成が可能となり、記憶装置サブシステム全体の高性能化を実現できる。
【図面の簡単な説明】
【図１】本発明が対象とする情報処理システムのブロック図である。
【図２】バッファメモリの構成例示図である。
【図３】バッファメモリ管理情報のうち、本発明に関係のある部分の構成例示図である。
【図４】本発明の第１の実施例における制御装置の動作を示すブロック図である。
【図５】第１の実施例におけるライトアフタ処理の処理フロー図である。
【図６】本発明の第２の実施例におけるデータ処理装置からライトされるデータとデータレコードの対応を示す図である。
【図７】第２の実施例における制御装置の動作を示すブロック図である。
【図８】第２の実施例におけるライトアフタ処理の処理フロー図である。
【図９】本発明の第１の実施例の変形として、ライトアフタ処理をデータ処理装置で行う場合の記憶装置サブシステムの動作を示すブロック図である。
【図１０】本発明の第１の実施例の変形として、ライトアフタ処理をDVDで行う場合の記憶装置サブシステムの動作を示すブロック図である。
【図１１】本発明の第２の実施例の変形として、ライトアフタ処理をデータ処理装置で行う場合の記憶装置サブシステムの動作を示すブロック図である。
【符号の説明】
１００…データ処理装置、１０１…CPU、１０２…主記憶、１０３…チャネル、１０４…記憶制御装置、１０５…DVD、１０６…ディレクタ、１０７…バッファメモリ、１０８…バッファメモリ管理情報、１０９…論理物理対応情報、２００…セグメント、３００…セグメント管理情報、３０１…割り当てデータ位置情報、３０２…最終ライト時間、３０３…格納データ開始位置、３０４…格納データサイズ、４００…ライトアフタ処理、９００…ライトアフタ処理、１０１０…バッファメモリ、１０２０…ディスク
【図１】
0003669103.tif 000002
【図２】
0003669103.tif 000003
【図３】
0003669103.tif 000004
【図４】
0003669103.tif 000005
【図５】
0003669103.tif 000006
【図６】
0003669103.tif 000007
【図７】
0003669103.tif 000008
【図８】
0003669103.tif 000009
【図９】
0003669103.tif 000010
【図１０】
0003669103.tif 000011
【図１１】
0003669103.tif 000012