(57)【特許請求の範囲】
【請求項１】
チェックコード付きのデータが格納されるディスク装置へのライトおよびリードを制御するディスクコントローラにおいて，
前記ディスク装置から読み出したデータに付加されたチェックコードが，旧チェックコードであるか新チェックコードであるかを判定する判定手段と，前記読み出したデータに付加されたチェックコードが旧チェックコードである場合に，その旧チェックコードを新チェックコードに変換する変換手段と，前記新チェックコードが付加されたデータを，前記ディスク装置に書き込む手段とを有するチェックコード変換手段と，
上位装置からのデータのリード要求またはライト要求に対する処理とは別の契機で，バックグランド処理により，前記ディスク装置からチェックコード付きのデータを読み出し，前記チェックコード変換手段による処理を起動する制御手段とを備える
ことを特徴とするディスクコントローラ。
【請求項２】
請求項１記載のディスクコントローラにおいて，
前記制御手段は，定期的に起動されるディスクパトロール時に，前記チェックコード変換手段による処理を起動し，各起動ごとに所定量のデータについてチェックコードの変換処理を行わせる
ことを特徴とするディスクコントローラ。
【請求項３】
請求項１または請求項２記載のディスクコントローラにおいて，
前記制御手段は，上位装置からのデータのリード要求があり，前記ディスク装置からデータを読み出したときに，前記チェックコード変換手段による処理を起動し，読み出されたデータに対してチェックコードの変換処理を行わせる
ことを特徴とするディスクコントローラ。
【請求項４】
請求項３記載のディスクコントローラにおいて，
チェックコード変換の動作モードとして，前記チェックコード変換手段による処理を，上位装置からのデータのリード要求があったときに起動するモード，バックグランド処理によるディスクパトロール時に起動するモード，もしくはこれらの組み合わせ，または即時にバックグランド処理として起動するモードを有し，これらのモードのいずれかを外部から設定する手段と，
前記動作モードの設定情報を記憶する手段とを備え，
前記制御手段は，前記設定情報に基づき前記チェックコード変換手段による処理を起動する
ことを特徴とするディスクコントローラ。
【請求項５】
請求項１から請求項４までのいずれか１項に記載のディスクコントローラにおいて，
前記ディスク装置に格納されるデータについて，そのデータに付加されたチェックコードが新チェックコードであるか旧チェックコードであるかの状況を管理する管理情報記憶手段を備え，
前記判定手段では，前記管理情報記憶手段を参照することによりチェックコードの新旧を判定する
ことを特徴とするディスクコントローラ。
【請求項６】
請求項５記載のディスクコントローラにおいて，
前記変換手段は，旧チェックコードと判断されたデータのチェックコード変換後に，前記管理情報記憶手段の前記旧チェックコードと判断されたデータに対応する箇所のフラグを新チェックコードに更新する
ことを特徴とするディスクコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＲＡＩＤシステム等のディスクシステムにおいて，ディスクに保存されたデータに付加されたチェックコードを，新しいチェックコードに変換する機能を持つディスクコントローラに関するものである。
【背景技術】
【０００２】
従来から，サーバからディスク装置への書き込みデータには，データ保証を行うことを目的として，入出力の単位となるブロックごとにチェックコードが付加されている。ディスク装置からサーバへのデータ読み出しの際にチェックコードの評価を行うことにより，データの信頼性が保証される。
【０００３】
例えば，ＲＡＩＤ装置では，多くのディスク装置が搭載されており，ディスク故障に対応するために，複数のディスクにデータが冗長化されて格納されているが，ＲＡＩＤ装置においても，ディスクのあらゆる故障状況においてデータ異常を検出できるようにするために，ライトデータにチェックコードを付加し，その読み出し時にチェックコードを評価することで，データの正当性を保証している。
【０００４】
従来，データのチェック方式については，各社が独自のチェックコード／チェック方式を実施していたが，ＲＡＩＤ装置の需要が高まるとともに規格化が進み，チェックコードも統一の規格ができ，それが各種制御チップに採用され始めた。
【０００５】
図１０は，ＲＡＩＤ装置におけるデータチェックの例を説明する図である。ここでは，ＲＡＩＤコントローラ５１０とディスク装置５２０からなるＲＡＩＤ装置５４０を例に，データチェックを説明する。
【０００６】
サーバ５３０からディスク装置５２０に書き込まれるデータは，ＲＡＩＤコントローラ５１０においてチェックコードが付加される。なお，ここでは，データは５１２バイトのブロックデータであり，チェックコードは８バイトのＢＣＣ（ブロックチェックコード）であるものとする。ＲＡＩＤコントローラ５１０は，チェックコードが付加されたデータを一度キャッシュ５１１に格納し，キャッシュ５１１からディスク装置５２０にチェックコードが付加されたデータを書き込む。
【０００７】
データの読み込み時には，ＲＡＩＤコントローラ５１０は，ディスク装置５２０からキャッシュ５１１にチェックコードが付加されたデータを読み込み，データとチェックコードとの整合性をチェックし，データの正当性が保証されれば，チェックコードを外したデータをサーバ５３０に転送する。
【０００８】
既存のＲＡＩＤ装置で，新しいインタフェースをサポートする（例えば，ＦＣ−２ＧｂｐｓインタフェースからＦＣ−４Ｇｂｐｓインタフェースにするなど）場合には，新しいチップを採用したディスクコントローラを搭載する必要がある。このときにチェックコードが変わると，既存のディスク装置に書き込まれたデータは，データ保証のためのチェックが正常に実行できなくなってしまう。また，チェックコードのチェックロジックはディスクコントローラのハードウェアに依存しているため，ディスクコントローラが新しいハードウェアに交換されると，チェックコードのロジックが変わってしまう可能性がある。そのため，既存のＲＡＩＤ装置で新しいインタフェースをサポートする場合でもデータ正当性チェックを正常に実施できるように，チェックコードの変換を行う必要がある。
【０００９】
図１１は，チェックコード変換方法の例を説明する図である。もともとサーバ５３０からの書き込みデータに旧ディスクコントローラ（またはＲＡＩＤコントローラ）５１０ａでチェックコード（ＢＣＣ）を付加し，ディスク装置５２０ａへの書き込みを行っていたディスクシステムにおいて，旧ディスクコントローラ５１０ａを，チェックコードが異なる新ディスクコントローラ５１０ｂに交換するものとする。
【００１０】
まず，ディスク装置５２０ａに保存されている旧チェックコードが付加されたデータを旧ディスクコントローラ５１０ａが読み出し，データと旧チェックコードとの整合性をチェックし，データの正当性が保証されれば，旧チェックコードを外したデータをサーバ５３０に転送する。サーバ５３０は，旧ディスクコントローラ５１０ａから受け取ったデータを新ディスクコントローラ５１０ｂに送る。新ディスクコントローラ５１０ｂでは，受け取ったデータに新チェックコードを付加し，ディスク装置５２０ｂへの書き込みを行う。これらのチェックコード変換作業をディスク装置５２０ａのすべてのデータについて実行すれば，ディスク装置５２０ｂには新チェックコードが付加されたデータが格納されることになる。
【００１１】
なお，ここで，本発明に先行する技術が記載された文献としては，例えば，特許文献１，特許文献２などがある。特許文献１には，メモリとＩ／Ｏとでデータ転送する際に，ＥＣＣ（メモリ）をＰａｒｉｔｙ（伝送路）に変換する技術が記載されている。これは，異なる媒体間のデータ送受信におけるチェックコード変換に関する技術である。特許文献２には，ディスク（ＲＡＩＤ）装置での保守に関する技術であって，ホストからのデータを装置内で扱うデータにフォーマット変換する技術が記載されている。いずれも，ディスク装置に保存されたデータに付加されたチェックコードの新旧変換を行う技術ではない。
【特許文献１】特開昭４８−０６６３３４号公報
【特許文献２】特開２００３−３４５５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
図１１に示すように，旧ディスクコントローラ５１０ａと新ディスクコントローラ５１０ｂとを同時にサーバ５３０に接続してチェックコードを変換する方式では，移行時に冗長な大量のハードウェア資源が必要になるという問題がある。
【００１３】
この問題を解決するため，例えば新しいディスクコントローラに新・旧チェックコードのいずれにも対応できる機能を持たせたとしても，単にそれだけではさらに次のような問題が生じる。
【００１４】
通常，ＲＡＩＤ装置等のディスクシステムでは膨大な量のデータを扱っており，すべてのデータのチェックコードを変換するには大変長い時間が必要となる。チェックコードの新旧混在状態での運用を避けるために，データアクセスを停止してチェックコードの変換を行う場合には，長時間のシステムの稼動停止が必要となるため，その間業務を中断しなくてはならないという問題が生じる。
【００１５】
本発明は，上記の問題点の解決を図り，ＲＡＩＤ装置等のディスクシステムにおいて，ディスク装置へのデータアクセスを許可しながらも，ディスク装置に格納されたデータのチェックコード変換を行うことが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は，上記の課題を解決するため，新しいディスクコントローラにチェックコードの変換機能を持たせ，システム稼動中のリード実行時やシステム稼動中のバックグランドなどで，ディスク装置に格納されたデータのチェックコード変換を行う手段を，ディスクコントローラ内に組み込んだことを特徴とする。これにより，システムを停止させて業務を中断しなくても，旧ディスクコントローラを用いることなく，チェックコードの変換を行うことができるようになる。
【００１７】
具体的には，本発明は，チェックコード付きのデータが格納されるディスク装置へのライトおよびリードを制御するディスクコントローラにおいて，前記ディスク装置から読み出したデータに付加されたチェックコードが，旧チェックコードであるか新チェックコードであるかを判定し，前記読み出したデータに付加されたチェックコードが旧チェックコードである場合に，その旧チェックコードを新チェックコードに変換し，前記新チェックコードが付加されたデータを，前記ディスク装置に書き込む処理を実行するチェックコード変換手段と，上位装置（ホスト処理装置）からのデータのリード要求またはライト要求に対する処理とは別の契機で，バックグランド処理により，前記ディスク装置からチェックコード付きのデータを読み出し，前記チェックコード変換手段による処理を起動する制御手段とを備えることを特徴とする。
【００１８】
ディスクコントローラ内にチェックコード変換手段を備えることにより，旧チェックコード用ディスクコントローラと，新チェックコード用ディスクコントローラの２台のディスクコントローラを，ホスト処理装置に接続しなくても，チェックコードの変換ができるようになる。また，チェックコードの変換処理をバックグランド処理として行うことにより，一般の業務処理と並行して，ホスト処理装置に負荷をかけることなくチェックコードの変換を行うことができる。
【００１９】
第２の発明は，さらに，前記制御手段が，定期的に起動されるディスクパトロール時に，前記チェックコード変換手段による処理を起動し，各起動ごとに所定量のデータについてチェックコードの変換処理を行わせることを特徴とする。
【００２０】
全データのチェックコードを一度に変換するのではなく，ディスクドライブの媒体チェック等を行うディスクパトロール時に，一定量のデータについて，逐次，チェックコードを変換することにより，バックグランド処理によるホスト処理装置のデータアクセスに対する影響を軽減することができる。
【００２１】
第３の発明は，さらに，前記制御手段が，ホスト処理装置からのデータのリード要求があり，前記ディスク装置からデータを読み出したときに，前記チェックコード変換手段による処理を起動し，読み出されたデータに対してチェックコードの変換処理を行わせることを特徴とする。
【００２２】
ホスト処理装置からリード要求があったデータについて優先的にチェックコードを変換することにより，頻繁にアクセスされるデータに対するチェックコード変換処理の負荷を軽減することができる。なお，ホスト処理装置からライト要求があったデータについては，最初から新チェックコードが付加されてディスク装置に書き込まれるので，チェックコードの旧から新への書き換えは不要である。
【００２３】
第４の発明は，さらに，チェックコード変換の動作モードとして，前記チェックコード変換手段による処理を，ホスト処理装置からのデータのリード要求があったときに起動するモード，バックグランド処理によるディスクパトロール時に起動するモード，もしくはこれらの組み合わせ，または即時にバックグランド処理として起動するモードを有し，これらのモードのいずれかを外部から設定する手段と，前記動作モードの設定情報を記憶する手段とを備え，前記制御手段は，前記設定情報に基づき前記チェックコード変換手段による処理を起動することを特徴とする。
【００２４】
チェックコード変換手段による処理を起動する契機をモード設定によって選択できることにより，システム管理者は，システムの業務処理に最適な契機で，ディスクコントローラにチェックコードの変換を行わせることができる。
【００２５】
第５の発明は，さらに，前記ディスク装置に格納されるデータについて，そのデータに付加されたチェックコードが新チェックコードであるか旧チェックコードであるかの状況を管理する管理情報記憶手段を備え，前記チェックコード変換手段における判定では，前記管理情報記憶手段を参照することによりチェックコードの新旧を判定することを特徴とする。
【００２６】
管理情報記憶手段によって，新旧チェックコードの状況を管理することにより，判定処理を高速に行うことができ，また，チェックコードの状況を監視するプログラム等によって，全チェックコードの変換が完了したかどうかを容易に調べることが可能になる。
【００２７】
図１は，本発明によるディスクコントローラのブロック構成例を示す図である。ディスクコントローラ１０は，制御部１１，メモリ１３，サーバ接続アダプタ部１７，ＢＣＣ制御部１８，ディスク接続アダプタ部１９を備える。制御部１１は，ＣＰＵおよびメモリに格納されたプログラムによって実現されるファームウェアであり，チェックコード変換部１２を備える。メモリ１３は，設定情報格納部１４，チェックコード変換状況管理テーブル１５，データキャッシュ部１６を備える。
【００２８】
ＢＣＣ制御部１８は，新チェックコードによる制御を行う。すなわち，データのライト時にはサーバからのデータに新チェックコードを付加し，データのリード時にはデータとそのデータに付加された新チェックコードとの整合性をチェックして，データの正当性を保証する。このとき，データに付加されたチェックコードが旧チェックコードであれば，データとチェックコードとの整合性がとれず，データの正当性が保証されないことになるので，チェックコード変換部１２が事前に旧チェックコードを新チェックコードに変換する。
【００２９】
チェックコード変換部１２が旧チェックコードを新チェックコードに変換する契機としては，例えばサーバからの要求により，ディスク装置にデータをライトまたはリードするとき，およびサーバからの要求とは無関係にバックグランドで動作するディスクパトロール時がある。なお，ディスクパトロールとは，ＲＡＩＤシステムにおけるデータの信頼性を高めるため，ある一定周期で各ディスク装置のデータを一定量ずつアクセスし，ディスクドライブの媒体チェック，ＲＡＩＤグループのデータ整合性チェック等を行う機能であり，サーバからの実際のデータアクセス要求とは別に，バックグランドで動作する機能である。
【００３０】
ディスクコントローラ１０において，制御部１１の制御により，例えばバックグランドで動作するディスクパトロール時に，ディスク接続アダプタ部１９がチェックコード付きのデータをディスク装置から入力し，データキャッシュ部１６に格納する。チェックコード変換部１２は，データキャッシュ部１６に格納されたデータに付加されたチェックコードが新チェックコードか旧チェックコードかを調べ，旧チェックコードであれば，旧チェックコードによるデータの正当性を確認した後，それを新チェックコードに書き換える。新チェックコードに更新されたデータは，ディスク接続アダプタ部１９からディスク装置に出力される。
【００３１】
また，業務サービスの運用中に，サーバからのリード要求によってディスク装置からデータキャッシュ部１６に読み込まれた旧チェックコードが付加されたデータは，データキャッシュ部１６で旧チェックコードが新チェックコードに変換され，ＢＣＣ制御部１８に送られる。ＢＣＣ制御部１８は，データと付加された新チェックコードとの整合性をチェックし，データの正当性が保証されれば，サーバ接続アダプタ部１７からサーバにデータを出力する。すなわち，旧チェックコードが付加されてディスク装置に格納されていたデータもデータキャッシュ部１６でチェックコードが新チェックコードに変換されるため，ＢＣＣ制御部１８で新チェックコードによる正当性の評価を行うことができる。また，新チェックコードが付加されたデータは，データキャッシュ部１６からディスク接続アダプタ部１９経由で，ディスク装置にも出力される。
【００３２】
サーバからのライト要求時には，サーバ接続アダプタ部１７がデータをサーバから入力し，ＢＣＣ制御部１８が入力されたデータに新チェックコードを付加し，データキャッシュ部１６に格納する。データキャッシュ部１６に格納された新チェックコードが付加されたデータは，ディスク接続アダプタ部１９からディスク装置に出力される。
【００３３】
チェックコード変換状況管理テーブル１５では，ディスク装置に格納されている各データに付加されたチェックコードの新旧変換の状況が管理されている。
【００３４】
チェックコードの変換処理には，バックグランドで処理する方法や，サーバからのリード要求があった場合に処理する方法など，様々な処理方法が考えられる。設定情報格納部１４には，あらかじめ選択された処理方法の設定情報が格納される。チェックコード変換部１２は，この設定情報に従って，チェックコード変換状況管理テーブル１５を参照・更新しながら，チェックコードの変換処理を行う。
【発明の効果】
【００３５】
本発明によって，ディスクコントローラにおけるインタフェースの交換などによってチェックコードの変更が必要となった場合に，システムの稼動を停止しなくても，ディスク装置に格納されたデータのチェックコードの変換を行うことができる。また，システムの稼動中に業務処理への負荷を抑えてチェックコードの変換を行うことができるため，新しいインタフェースの導入もスムーズに行うことができる。
【発明を実施するための最良の形態】
【００３６】
以下，本発明の実施の形態について，図を用いて説明する。
【００３７】
図２は，本発明の実施の形態によるＲＡＩＤシステムのハードウェア構成の例を示す図である。ＲＡＩＤシステムは，業務の運用を行うサーバ３０，サーバ３０で扱うデータを管理／保存するＲＡＩＤ装置４０，ＲＡＩＤ装置４０の設定／管理を行う管理用コンピュータ（管理用ＰＣ）５０から構成される。ＲＡＩＤ装置４０は，ＲＡＩＤ制御機能を有するディスクコントローラ１０と，複数のディスク装置２０とを備える。サーバ３０とディスクコントローラ１０，またディスクコントローラ１０とディスク装置２０とは，それぞれファイバチャネル（ＦＣ）で接続される構成になっている。
【００３８】
図２のディスクコントローラ１０は，ハードウェアとして，ＣＰＵ１０１，メモリ１０２，バスブリッジ１０３，ＦＣ制御部１０４，ＢＣＣコントロール部１０５，ＦＣ制御部１０６を備え，これらによって図１に示すディスクコントローラ１０の機能構成を実現する。なお，図２のディスクコントローラ１０におけるＣＰＵ１０１およびメモリ１０２は，図１の制御部１１およびメモリ１３に相当する。サーバ３０側のインタフェースとして，ＦＣ制御部１０４とＢＣＣコントロール部１０５があり，ディスク装置２０側のインタフェースとしてＦＣ制御部１０６がある。ＢＣＣコントロール部１０５が，図１のＢＣＣ制御部１８に相当する。
【００３９】
図２のＲＡＩＤ装置４０において，ディスク装置２０には，旧チェックコード付きのデータが格納されているものとする。この例では，ＦＣ制御部１０４とＢＣＣコントロール部１０５とが１チップの集積回路で構成され，ＢＣＣコントロール部１０５は，新チェックコードに対応したチェックコードの付加および確認を行う機能が搭載されているものとする。
【００４０】
サーバ３０から送られたライトデータは，ＦＣ制御部１０４からディスクコントローラ１０に入力され，ＢＣＣコントロール部１０５で新チェックコードが付加されて，メモリ１０２に格納され，ＦＣ制御部１０６から出力されて，ディスク装置２０に書き込まれる。ディスク装置２０から読み込まれたリードデータは，ＦＣ制御部１０６から入力されて，メモリ１０２に格納され，それが新チェックコード付きのデータである場合には，ＢＣＣコントロール部１０５で正当性がチェックされ，ＦＣ制御部１０４から出力されて，サーバ３０に送られる。
【００４１】
ディスク装置２０に格納されている旧チェックコードが付加されたデータは，何らかの方法により新チェックコードに変換される必要がある。このとき，システムの運用を中断しないでチェックコードの変換を行うために，本実施の形態では，例えば，バックグランドで処理する方法や，サーバからのリード要求があった場合に処理する方法を用いる。
【００４２】
例えば，変換処理をバックグランドで一括して実施する方法には，一定時間で全データの変換を完了させることができるという利点がある。その反面，バックグランド処理のオーバヘッドによるシステム全体のパフォーマンスの低下が懸念される。
【００４３】
また，サーバからのリード要求時に処理する方法には，チェックコードの変換処理によるオーバヘッドの影響は対象サーバのリードに対してのみとなり，システム全体のパフォーマンスへの影響は少なくなるという利点がある。しかし，全データの変換処理が完了する時期の見極めは困難になってしまう。
【００４４】
バックグランドでチェックコードの変換を行わず，サーバからのリード要求時にのみチェックコードの変換を行っていると，ディスク装置２０にはずっとリード要求がされずに，チェックコードが変換されないままのデータが残ってしまう。
【００４５】
以上の点から本実施の形態では，サーバからのリード要求時に，そのデータのチェックコードを変換する機能を設けるとともに，これとは別にバックグランドで動作するディスクパトロール時にチェックコードを変換する機能，ディスクパトロールとは別にバックグランドでチェックコードを変換する機能を設ける。
【００４６】
ディスクパトロール時のチェックコード変換処理は，バックグランド変換モードで一括して全データのチェックコードを変換する場合に比べ，ディスク装置２０のすべてのデータのチェックコードを変換するには時間がかかってしまうという問題があるが，システムにあまり負担をかけずにチェックコードの変換を行うことができるというメリットがあり，また，一定量ずつデータのチェックコードを変換していくため，有限の時間内に変換処理が完了するというメリットがある。
【００４７】
基本的には，サーバからのリード要求時およびディスクパトロール時にチェックコードの変換を行うことが好ましいと考えられるが，ＲＡＩＤ装置４０を利用するシステムの業務内容によっては，チェックコードの変換処理をサーバからのリード要求時にのみ行ったほうがよい場合，ディスクパトロール時にのみ行ったほうがよい場合，またはすべてのデータのチェックコードを一括してバックグランドで変換したほうがよい場合があると考えられる。前述したように，それぞれの変換方法には一長一短があるため，さらに，本実施の形態では，状況に合わせて変換方法（チェックコード変換の処理モード）を選択し，設定できるようにしている。
【００４８】
システムの管理者は，管理用ＰＣ５０を用いて，チェックコードの変換方法を設定する。チェックコードの変換方法の設定情報は，メモリ１０２（図１の設定情報格納部１４）に保存される。ファームウェアのチェックコード変換部１２は，設定情報に従ってチェックコードの変換を行う。
【００４９】
図３は，本実施の形態におけるチェックコードの変換方法を説明する図である。ここでは，サーバ３０からのリード要求時にチェックコード（ＢＣＣ）の変換を行う場合について説明する。
【００５０】
サーバ３０からのリード要求を受けると，ディスクコントローラ１０は，ディスク装置２０に格納された旧チェックコード（旧ＢＣＣ）が付加されたデータをデータキャッシュ部１６に読み出す。ファームウェアのチェックコード変換部１２によって，データキャッシュ部１６上で旧チェックコードが新チェックコード（新ＢＣＣ）に変換される。
【００５１】
データキャッシュ部１６の新チェックコードに変換されたデータは，ＢＣＣ制御部１８でチェックコードの評価が行われ，データの正当性が保証されればサーバ３０にデータが送信される。また，データキャッシュ部１６の新チェックコードに変換されたデータはディスク装置２０にも送られ，ディスク装置２０内のデータのチェックコードも新チェックコードに更新される。
【００５２】
図４は，ディスク装置内のチェックコード変換状況の管理を説明する図である。ディスク装置２０内のチェックコードの変換状況（新／旧）を，ディスクコントローラ１０のメモリ１３上に作成されたチェックコード変換状況管理テーブル１５で管理する。チェックコード変換状況管理テーブル１５には，ディスク装置２０内のどのデータがチェックコード変換済（図４では，“新”）であり，どのデータがチェックコード未変換（図４では，“旧”）であるかの情報（BCC Flag）が記録されている。
【００５３】
データリード時に，ディスク装置２０からデータキャッシュ部１６にデータが読み込まれると，チェックコード変換部１２は，読み込まれたデータに付加されたチェックコードが変換済か未変換かをチェックコード変換状況管理テーブル１５で確認し，未変換であればチェックコードの変換を行う。チェックコード変換後，チェックコード変換したデータに対応するBCC Flagを変換済（図４では，“新”）に更新する。なお，データライト時には新チェックコードが付加されたデータがディスク装置２０に書き込まれるので，チェックコード変換状況管理テーブル１５では，対応するBCC Flagが変換済と記録される。
【００５４】
データブロックの新／旧管理単位は，最小ではディスク装置２０の１ブロックとチェックコード変換状況管理テーブル１５内の１管理単位が対応する。ただし，１ブロックごとに管理する場合には，ディスク装置２０の容量によってはチェックコード変換状況管理テーブル１５のメモリが膨大になるため，複数ブロックと管理テーブル内の１管理単位を対応させるようにしてもよい。例えば，１回のディスクパトロールでチェックするブロック数を，管理テーブル内の１管理単位としてもよい。
【００５５】
このように，チェックコードの変換済／未変換を管理する情報を用いて，ディスク装置２０内のデータに付加されたチェックコードの状況を管理し，サーバ３０からアクセスされたデータのみ，チェックコードの変換済／未変換の確認を行い，未変換の場合にチェックコードの変換を行うことにより，システムを稼動状態としたままでチェックコードの変換を行うことができるようになる。
【００５６】
図５は，ディスクシステムにおける設定処理フローチャートである。オペレータ（システム管理者）が設定するチェックコード変換の動作モードとして，種々のモードを設定可能とすることができるが，本実施の形態では，説明の簡単化のため，チェックコード変換の動作モードとして通常変換モードとバックグランド変換モードとがあり，通常変換モードの場合には，サーバからのリード要求時およびディスクパトロール時にチェックコードの変換を行うこととし，バックグランド変換モードの場合には，バックグランド処理において，すべてのデータのチェックコードを順次変換していくものとする。
【００５７】
まず，オペレータが管理用ＰＣ５０のブラウザを使用してＲＡＩＤ装置４０に接続すると（ステップＳ１０），ＲＡＩＤ装置４０がＲＡＩＤ装置４０側のｈｔｔｐ制御，ＣＧＩ制御によって管理用ＰＣ５０のブラウザと通信し，これにより管理用ＰＣ５０に設定画面が表示される（ステップＳ１１）。オペレータがＷｅｂ操作によってチェックコード変換の動作モード（通常変換モード／バックグランド変換モード）を設定すると（ステップＳ１２），ＲＡＩＤ装置４０側では，オペレータの設定情報をＣＧＩで受け取り，その設定情報をディスクコントローラ１０のメモリ１０２（設定情報格納部１４）に格納する（ステップＳ１３）。ディスクコントローラ１０は，設定情報格納部１４の設定情報をチェックし，設定がバックグランド変換モードであれば（ステップＳ１４），バックグランド変換処理を行う（ステップＳ１５）。
【００５８】
図６は，図５のステップＳ１５で実行されるディスクコントローラによるバックグランド変換処理フローチャートである。
【００５９】
ディスクコントローラ１０は，チェックコード変換状況管理テーブル１５をチェックし，チェックコードが未変換であるデータを選択する（ステップＳ２０）。ディスク装置２０から，選択されたデータをデータキャッシュ部１６に読み込み（ステップＳ２１），読み込まれたデータに付加されたチェックコードが正しいかどうかを確認した後，そのチェックコードを新しいチェックコードに変換する（ステップＳ２２）。ここで，読み込まれたデータとそれに付加された旧チェックコードとの整合性がとれていなければ，エラーメッセージの出力またはそのデータの修復処理を行う。
【００６０】
データキャッシュ部１６上でチェックコードを新しいチェックコードに変換したならば，そのチェックコードを更新したデータのディスク装置２０への書き込み処理（図８参照）を起動し（ステップＳ２３），ディスク装置２０への書き込み処理の終了を待つ（ステップＳ２４）。以上の処理を，ディスク装置２０に格納された全ブロックデータに対して実行する（ステップＳ２５）。
【００６１】
なお，バックグランド変換処理時にサーバ３０からデータリード／データライト要求を受けた場合には，バックグランド変換処理を一時中断し，データリード処理／データライト処理を優先的に実行する。データリード処理時に読み込まれたデータがチェックコード未変換のデータである場合には，図７に示す処理フローに従って，そのチェックコードの変換を行う。
【００６２】
図７は，ディスクコントローラによるデータリード時のチェックコード変換処理フローチャートである。サーバ３０からのリードコマンドを受信すると（ステップＳ３０），データキャッシュ部１６に対象となるデータが存在するかをチェックし（ステップＳ３１），存在すれば，そのデータのサーバ３０への転送処理を行う（ステップＳ３２）。
【００６３】
データキャッシュ部１６に対象となるデータが存在しなければ，ディスク装置２０からデータキャッシュ部１６に該当するデータを読み込む（ステップＳ３３）。チェックコード変換状況管理テーブル１５でそのデータがチェックコード変換済か未変換かをチェックし（ステップＳ３４），チェックコード変換済であれば，チェックコードを変換しないでサーバ３０へのデータの転送処理を行う（ステップＳ３２）。
【００６４】
データがチェックコード未変換であれば，旧チェックコードによるデータの整合性を確認した後，データに付加された旧チェックコードを新チェックコードに変換し（ステップＳ３５），チェックコードを更新したデータのディスク装置２０への書き込み処理（図８参照）を起動し（ステップＳ３６），新しいチェックコードが付加されたデータのサーバ３０への転送処理を行う（ステップＳ３２）。
【００６５】
図８は，ディスクコントローラによるチェックコード更新データのディスク装置書き込み処理フローチャートである。ディスクコントローラ１０は，新しいチェックコードが付加されたデータを，ディスク装置２０に書き込み（ステップＳ４０），チェックコード変換状況管理テーブル１５の該当する部分（BCC Flag）を未変換から変換済に更新する（ステップＳ４１）。
【００６６】
図９は，ディスクコントローラによるディスクパトロール時のチェックコード変換処理フローチャートである。定期的にディスクパトロールが起動されると，ディスクパトロールチェックが実行される（ステップＳ５０）。ディスクパトロールチェックの後，設定情報格納部１４の設定情報を参照し，チェックコード変換の動作モードがバックグランド変換モードか通常変換モードかを判定する（ステップＳ５１）。動作モードがバックグランド変換モードである場合には，処理を終了する。
【００６７】
動作モードが通常変換モードである場合，チェックを受けたデータがチェックコード変換状況管理テーブル１５で変換済かどうかを判定し（ステップＳ５２），変換済でないとき，ディスク装置２０からデータキャッシュ部１６に該当するデータを読み込む（ステップＳ５３）。データに付加された旧チェックコードを新チェックコードに変換し（ステップＳ５４），チェックコードを更新したデータのディスク装置２０への書き込み処理（図８参照）を起動する（ステップＳ５５）。
【００６８】
以上説明した処理によって，ディスク装置２０内のすべてのデータについてチェックコードの変換を終了すると，チェックコード変換のためのファームウェアや，メモリ１３の設定情報格納部１４，チェックコード変換状況管理テーブル１５などは不要となる。それらのプログラムやデータをディスクコントローラ１０から削除し，新しいファームウェアに更新すれば，ディスクコントローラ１０は通常のディスクアクセス処理のみを行う装置となる。
【００６９】
以上，本発明の実施の形態について説明したが，本発明はこれに限られるものではない。例えば，本実施の形態ではデータキャッシュ部１６に読み込まれたデータの変換済／未変換をチェックコード変換状況管理テーブル１５で確認しているが，チェックコード変換部１２がデータキャッシュ部１６に読み込まれたデータからチェックコードを試算することにより，データに付加されたチェックコードが旧チェックコードであるのか新チェックコードであるのかを判断するようにしてもよい。
【図面の簡単な説明】
【００７０】
【図１】本発明によるディスクコントローラのブロック構成例を示す図である。
【図２】本発明の実施の形態によるＲＡＩＤシステムのハードウェア構成の例を示す図である。
【図３】本実施の形態におけるチェックコードの変換方法を説明する図である。
【図４】ディスク装置内のチェックコード変換状況の管理を説明する図である。
【図５】ディスクシステムにおける設定処理フローチャートである。
【図６】ディスクコントローラによるバックグランド変換処理フローチャートである。
【図７】ディスクコントローラによるデータリード時のチェックコード変換処理フローチャートである。
【図８】ディスクコントローラによるチェックコード更新データのディスク装置書き込み処理フローチャートである。
【図９】ディスクコントローラによるディスクパトロール時のチェックコード変換処理フローチャートである。
【図１０】ＲＡＩＤ装置におけるデータチェックの例を説明する図である。
【図１１】チェックコード変換方法の例を説明する図である。
【符号の説明】
【００７１】
１０  ディスクコントローラ
１１  制御部（ファームウェア）
１２  チェックコード変換部
１３  メモリ
１４  設定情報格納部
１５  チェックコード変換状況管理テーブル
１６  データキャッシュ部
１７  サーバ接続アダプタ部
１８  ＢＣＣ制御部
１９  ディスク接続アダプタ部
【図１】
0004664191.tif 000002
【図２】
0004664191.tif 000003
【図３】
0004664191.tif 000004
【図４】
0004664191.tif 000005
【図５】
0004664191.tif 000006
【図６】
0004664191.tif 000007
【図７】
0004664191.tif 000008
【図８】
0004664191.tif 000009
【図９】
0004664191.tif 000010
【図１０】
0004664191.tif 000011
【図１１】
0004664191.tif 000012