(57)【要約】【課題】サーバにおけるデータ正常性確認処理で生ずる不具合を防止する。【解決手段】サーバ１０は、ディスク装置１５に格納されたデータを対象データとしてデータ正常性確認を行う。データ正常性確認イベントが発生すると、まずＤＩＭＭメモリ１１に内蔵されるキャッシュメモリ内に記憶されたキャッシュデータをクリアし、その後にディスク装置１５に格納されたデータをキャッシュメモリに読み出し、キャッシュメモリに格納されたデータに対して正常性確認処理を実施する。【選択図】図２
2007272493.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを備えるコンピュータシステムであって、
ディスク装置に格納されたデータを確認対象とするデータ正常性確認イベントが発生すると、少なくとも前記確認対象のデータに対応するキャッシュデータをクリアするキャッシュクリア部と、
前記キャッシュクリア部によるキャッシュデータのクリア後に、前記確認対象のデータを前記ディスク装置から読み出すデータ読出し部と、
前記ディスク装置から読み出した確認対象のデータの正常性確認を実行する正常性確認処理部とを備えることを特徴とするコンピュータシステム。
【請求項２】
前記データ読出し部は、前記磁気ディスク装置から読み出した確認対象のデータを前記キャッシュメモリに記憶する、請求項１に記載のコンピュータシステム。
【請求項３】
前記確認対象のデータがバックアップファイルである、請求項１に記載のコンピュータシステム。
【請求項４】
前記ディスク装置がコンピュータシステム外に配設される外部記憶装置である、請求項１〜３の何れか一に記載のコンピュータシステム。
【請求項５】
キャッシュメモリを備えるコンピュータにおけるデータ正常性確認方法であって、
前記コンピュータが、ディスク装置に格納されたデータを確認対象とするデータ正常性確認イベントが発生すると、少なくとも前記確認対象のデータに対応するキャッシュデータをクリアするステップと、
前記コンピュータが、前記クリアステップ後に、前記確認対象のデータを前記ディスク装置から読み出すステップと、
前記コンピュータが、前記ディスク装置から読み出した確認対象のデータの正常性を確認するステップとを有することを特徴とするデータ正常性確認方法。
【請求項６】
キャッシュメモリを備えるコンピュータシステムに、データ正常性確認を実行させるプログラムであって、前記コンピュータに、
ディスク装置に格納されたデータを確認対象とするデータ正常性確認イベントが発生すると、少なくとも前記確認対象のデータに対応するキャッシュデータをクリアするステップと、
前記クリアステップ後に、前記確認対象のデータを前記ディスク装置から読み出すステップと、
前記ディスク装置から読み出した確認対象のデータの正常性を確認するステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、並びに、そのデータの正常性確認方法、及びプログラムに関し、更に詳しくは、コンピュータシステムのディスク装置内に格納されたデータの正常性を確認する技術に関する。
【背景技術】
【０００２】
サーバなどのコンピュータシステムでは、定期的に或いは必要に応じて、ディスク装置内に格納されたデータに破壊が生じていないかなど、データの正常性を確認している。ディスク装置内に格納されたデータが、圧縮データである場合には、ＣＲＣなどの手法によりそのデータの正常性確認が行われる。また、データが、バックアップファイルなどの場合には、ＣＲＣなどの手法の他に、現用データファイルとの照合によっても、その正常性が確認できる。データ正常性の確認手法は、例えば特許文献１に記載されている。
【特許文献１】特開平１０−２５４７８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、近年のコンピュータシステムでは、外部から受信したデータや、コンピュータシステム内で作成されたデータは、ディスク装置内に格納されると同時に、キャッシュメモリにも格納されるのが通例となっている。日常的に起動及び停止が行われるコンピュータシステムでは、このキャッシュデータは、その停止のたびに消去される。しかし、例えばサーバ／クライアントシステムでサーバとして利用されるコンピュータシステムでは、キャッシュデータは、そのキャッシュメモリの容量やコンピュータシステムの動作頻度によっては、比較的長期にわたって残されることがある。このようなコンピュータシステムでは、以下のような問題が生じる。
【０００４】
図４は、この事情を説明するために、各処理ステップ及びデータの流れを模式的に示すブロック図である。同図において、サーバ１０では、データを更新するデータ更新イベントが発生すると（ステップ１）、サーバ１０は、メインメモリを構成するＤＩＭＭメモリ１１上のデータを、内蔵するキャッシュメモリに格納した上で（ステップ２）、North-Bridge１２に搭載されたメモリコントローラの処理により、I/O-Bridge１３及びＳＣＳＩインターフェイス１４を経由してディスク装置１５内にデータを書き込む処理を行う。このとき、I/O-Bridge１３の処理でデータ破壊が生じることがあり（ステップ３）、その場合には異常データが生成され（ステップ４）、ディスク装置内には異常データが格納される。この場合、キャッシュメモリに格納されたデータと、ディスク装置１５に格納されたデータとの間に不整合が生じる。
【０００５】
その後、キャッシュメモリに格納されたデータが消去される前に、例えば定期的な正常性確認イベントが発生することがある。この正常性確認処理が、バックアップデータの正常性確認であるとすると、この正常性確認は例えばＣＲＣエラー訂正を利用した誤り訂正という態様で行われる。コンピュータは、ＤＩＭＭメモリ１１内のキャッシュメモリに必要なデータが格納されていることを検出すると、ディスク装置１５に格納されたバックアップデータに代えて、キャッシュメモリに格納されたバックアップデータで正常性確認を行う。この正常性確認では、異常データは発見されずに、“正常性確認ＯＫ”として終了する（ステップ５）。
【０００６】
その後、現用データファイルに異常が発見され、バックアップデータが必要になり、その時点でキャッシュデータが消去されていると、ディスク装置１５からバックアップデータが読み出される。しかし、ディスク装置１５に格納されているバックアップデータは、その書込みの時点で既に異常データとなっているため、例えばそのＣＲＣエラー訂正で異常データであると判定される。このような場合には、現用データファイル及びバックアップファイルの双方が利用できず、正常なデータが存在しないため、大きなトラブルに発展する。
【０００７】
上記のように、従来のサーバ１０におけるデータ正常性確認では、キャッシュデータを明示的にクリアすることなく、データ正常性確認を行っているため、ディスク装置１５に生成／更新されたデータの正常性確認ではなく、DIMMメモリ上１１のキャッシュデータの正常性確認が行われることがある。このため、I/O Bridge１３などを経由する際にデータ破壊やデータ化けが発生した時には、ディスク装置１５上のデータが異常であっても、DIMMメモリ上１１のキャッシュデータは正常であるため、異常を検出することが出来ないという問題が潜在していた。
【０００８】
上記に鑑み、本発明は、キャッシュメモリを有するコンピュータシステムにおける正常性確認の際に、正しい手順でデータの正常性確認処理を行うことにより、正常性確認が正しく行われるコンピュータシステム、そのコンピュータシステムで実行されるデータ正常性確認方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のコンピュータシステムは、キャッシュメモリを備えるコンピュータシステムであって、
ディスク装置に格納されたデータを確認対象とするデータ正常性確認イベントが発生すると、少なくとも前記確認対象のデータに対応するキャッシュデータをクリアするキャッシュクリア部と、
前記キャッシュクリア部によるキャッシュデータのクリア後に、前記確認対象のデータを前記ディスク装置から読み出すデータ読出し部と、
前記ディスク装置から読み出した確認対象のデータの正常性確認を実行する正常性確認処理部とを備えることを特徴とする。
【００１０】
また、本発明のデータ正常性確認方法は、キャッシュメモリを備えるコンピュータシステムにおけるデータ正常性確認方法であって、
前記コンピュータが、ディスク装置に格納されたデータを確認対象とするデータ正常性確認イベントが発生すると、少なくとも前記確認対象のデータに対応するキャッシュデータをクリアするステップと、
前記コンピュータが、前記クリアステップ後に、前記確認対象のデータを前記ディスク装置から読み出すステップと、
前記コンピュータが、前記ディスク装置から読み出した確認対象のデータの正常性を確認するステップとを有することを特徴とする。
【００１１】
更に、本発明のプログラムは、キャッシュメモリを備えるコンピュータシステムに、データ正常性確認を実行させるプログラムであって、前記コンピュータに、
ディスク装置に格納されたデータを確認対象とするデータ正常性確認イベントが発生すると、少なくとも前記確認対象のデータに対応するキャッシュデータをクリアするステップと、
前記クリアステップ後に、前記確認対象のデータを前記ディスク装置から読み出すステップと、
前記ディスク装置から読み出した確認対象のデータの正常性を確認するステップとを実行させることを特徴とする。
【発明の効果】
【００１２】
本発明のコンピュータシステム、データ正常性確認方法、及び、プログラムによると、データ正常性確認イベントが発生すると、実際にデータ正常性確認処理に移行する前に、自動的にキャッシュデータをクリアするため、データ正常性確認処理は、ディスク装置に格納されたデータに対して行われる。従って、ディスク装置に格納されたデータに異常があれば、その異常が検出されるので、従来技術で生じた不具合が生ずることはなく、正常性確認が正しく行われる。
【００１３】
本発明のコンピュータシステムでは、前記データ読出し部が、前記磁気ディスク装置から読み出した確認対象のデータを前記キャッシュメモリに記憶することが好ましい。この場合、正常性確認処理のスループットが向上する。
【００１４】
正常性確認の対象データは、バックアップファイルであってもよく、或いは、他のいかなるデータであってもよい。また、正常性確認の対象データを格納するディスク装置は、コンピュータシステム内のディスク装置であってもよく、或いは、システム外のディスク装置であっても良い。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照し、本発明の実施形態について詳細に説明する。図１は、本発明の一実施形態に係るコンピュータシステムで実行されるデータ保存処理を模式的に示すブロック図である。同図において、コンピュータシステム（サーバ）１０は、メモリモジュール（DIMMメモリ）１１、North-Bridge１２、I/O-Bridge１３、SCSIインターフェイス１４、ディスク装置１５を備えており、サーバとして一般的な構成を有する。
【００１６】
サーバ１０は、データ更新イベントが発生すると（ステップ１）、ＤＩＭＭメモリ１１にあるデータを、ＤＩＭＭメモリ１１に内蔵されるキャッシュメモリに格納する（ステップ２）。次いで、サーバ１０は、ＤＩＭＭメモリ１１上のデータをディスク装置１５に格納する（ステップ３）。このデータ格納は、North-Bridge１２に搭載されたメモリコントローラにより、I/O-Bridge１３及びＳＣＳＩインターフェイス１４を介してディスク装置１５に書き込まれることで実行される。
【００１７】
図２は、図１で書き込まれたデータの正常性確認を行う際の処理を図１と同様に模式図で示している。正常性確認処理は、例えば定期的に発生する、ＣＲＣエラー訂正を指定する正常性確認イベントの発生で始まる（ステップ１）。正常性確認イベントは、専用のアプリケーションにより、例えばシステムコールを利用して、確認対象のデータに応じて定期的に発行される。サーバ１０は、正常性確認イベントが発生すると、まず、キャッシュクリア処理部により、キャッシュメモリ内のデータを自動的にクリアする（ステップ２）。キャッシュクリア手順としては、例えばLINUIX/UNIX（登録商標）におけるシステムコールioctlなどのデバイス制御システムコールを使用し、ディスク装置１５上に定義されたブロックデバイス単位でキャッシュデータをクリアする。
【００１８】
サーバ１０は、次いでディスク装置１５から必要なデータを読み出し、通常の正常性確認処理を行う。つまり、DIMMメモリ上１１にキャッシュデータが存在しないため、正常性確認対象のデータは、データ読出し処理部により、ディスク装置１５からSCSIインターフェイス１４、I/O-Bridge１３、及び、North-Bridge１２を経由して読み出され、DIMMメモリ１１上に新しくキャッシュされる（ステップ３）。サーバ１０は、正常性確認処理部により、ディスク装置１５上のデータに対する正常性確認を行う（ステップ４）。データ正常性確認の方法としては、CRCエラー訂正、パリティエラー訂正、エラー訂正サムなどによる方法が考えられる。なお、上記各処理部は、サーバ１０内の記憶装置に記憶されたプログラムにより構成される。
【００１９】
以上のように、本発明に係るデータ正常性確認方法は、I/O-Bridge１３などで生ずるおそれがあるデータ化けなどによるディスク装置１５上のデータ異常を検出するために用いられる。この場合、サーバ１０における各種データ生成処理で生成されたデータの正常性確認を実施することで、メモリーモジュール(DIMMメモリ)１１からディスク装置１５へのデータ転送時に発生するデータ化けを検出し、システム内に異常データが存在することを自動的に検出する。
【００２０】
上記実施形態では、サーバ１０においては、致命的となり得るデータ異常発生を、自動的に早期検出することが可能になる。これにより、サーバ１０が、提供するサービスに大きな影響を与えるような障害を抱えているにも拘わらず、その障害が検出できないという従来の問題点が解決される。特に、バックアップデータなどにデータ異常が発生した場合には、バックアップデータを実際に必要とする機会に遭遇した時に初めて異常が検出されるものであり、本発明の必要性は十分に高い。
【００２１】
特に、バックアップデータが必要な場合は、現用データに何らかの異常を抱えているケースが想定され、このような場合には、バックアップデータが破壊されていると、サービスを保証するためのデータがシステム内の何れにも存在しない状態になり、サービスへの影響が特に大きい。このため、本発明は、バックアップデータの正常性確認に特に有効である。
【００２２】
なお、図１及び２を参照した説明では、サーバ内のディスク装置１５上へのデータ書き込みを例にしたが、外付けのディスク装置へのデータ正常性確認にも本発明を適用可能である。この例を、図３に示す。同図は、本発明に係るデータ正常性確認方法が、SCSIインターフェイス１６を介して接続される外付けディスク装置１７に格納されるデータにも適用可能である旨を示している。図３に示す構成は、外付けディスク装置１７に格納されるデータについて、データ正常性確認処理が行われる以外には、図１及び図２を参照して説明した処理と同様な処理が行われる旨を示している。
【００２３】
以上、本発明をその好適な実施態様に基づいて説明したが、本発明のコンピュータシステム、データ正常性確認方法及びプログラムは、上記実施態様の構成にのみ限定されるものではなく、上記実施態様の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態に係るサーバにおけるデータ保存処理を模式的に示すブロック図。
【図２】図１のサーバにおけるデータ正常性確認処理を模式的に示すブロック図。
【図３】本発明の変形例に係るサーバにおけるデータ正常性確認処理を示すブロック図。
【図４】従来のサーバにおけるデータ正常性確認処理を模式的に示すブロック図。
【符号の説明】
【００２５】
１０：サーバ
１１：ＤＩＭＭメモリ
１２：North-Bridge
１３：I/O-Bridge
１４、１６：ＳＣＳＩインターフェイス
１５、１７：ディスク装置
【図１】
2007272493.tif 000003
【図２】
2007272493.tif 000004
【図３】
2007272493.tif 000005
【図４】
2007272493.tif 000006