(57)【要約】【課題】ホストシステムのＯＳに依存することなく、かつ相対的に大容量のログ情報を記録できるＲＡＩＤコントローラを提供することにある。【解決手段】ＲＡＩＤコントローラ１０は、各ＨＤＤ２０〜２３にエラー発生などのイベント発生に応じてログ情報を作成し、それぞれのリザーブエリアに含まれるログ記録エリアに当該ログ情報を記録する。リザーブエリアは、ホストシステム３０のＯＳが関与できない特定領域である。【選択図】      図１
2005107838.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムからのアクセス要求に応じて、ディスクアレイ構成の各ディスクドライブに対するデータの入出力を制御する手段と、
前記各ディスクドライブにおいて、前記ホストシステムが関与するユーザデータ記録領域以外のリザーブ領域に特定領域を設定し、前記各ディスクドライブでのイベント発生に従ったログ情報を前記特定領域に記録する記録手段と
を具備したことを特徴とするディスクアレイコントローラ。
【請求項２】
前記記録手段は、前記各ディスクドライブに対応するログ情報をそれぞれの前記特定領域に記録すると共に、別のディスクドライブの前記特定領域に記録することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項３】
前記記録手段は、
前記特定領域を前記ログ情報の記録領域として複数のセクタに分割し、
当該各セクタをヘッド領域と複数のログエントリ領域に設定し、
前記各ログエントリ領域に対して前記イベント毎の前記ログ情報の内容を記録し、
前記ヘッド領域に対して当該各ログエントリ領域に記録される現在のログ情報以外の過去のログ情報に関係する特定情報を記録することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項４】
前記記録手段は、
前記特定領域を前記ログ情報の記録領域として複数のセクタに分割し、
当該各セクタをヘッド領域と複数のログエントリ領域に設定し、
前記各ログエントリ領域に対して前記イベント毎の前記ログ情報の内容を記録し、
前記ヘッダ領域には、前記各ログエントリ領域から消去した過去のログ情報に関係するタイムスタンプ及びイベントＩＤを含む特定情報を記録することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項５】
前記記録手段は、
前記特定領域として、通常のログ情報を記録するログ情報領域以外の記録領域を設定し、当該記録領域に最新のログ情報を記録することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項６】
前記記録手段は、
前記特定領域として、通常のログ情報を記録するログ情報領域以外の記録領域を設定し、当該記録領域に最新のログ情報及びその冗長情報を記録することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項７】
ホストシステムからのアクセス要求に応じて、ディスクアレイ構成の各ディスクドライブに対するデータの入出力を制御する手段を有するディスクアレイコントローラに適用するログ情報記録方法であって、
前記各ディスクドライブでのイベント発生に従ったログ情報を作成し、
各ディスクドライブにおいて前記ホストシステムが関与できない特定領域に前記ログ情報を記録することを特徴とするログ情報記録方法。
【請求項８】
前記各ディスクドライブに対応するログ情報をそれぞれの前記特定領域に記録すると共に、別のディスクドライブの前記特定領域に記録することを特徴とする請求項７に記載のログ情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはディスクアレイコントローラに関し、特に、ディスクドライブのログ情報の記録技術に関する。
【背景技術】
【０００２】
一般的に、ディスクアレイ（ＲＡＩＤ：Redundant Arrays of Inexpensive Disks）装置としては、データをブロック単位で分散するストライピング（striping）構成であるレベル０のＲＡＩＤ（ＲＡＩＤ−０）や、複数のディスクドライブに同一のデータを格納するミラーリング（mirroring）構成であるレベル１のＲＡＩＤ（ＲＡＩＤ−１）などが周知である。
【０００３】
ところで、ＲＡＩＤコントローラは、各ディスクドライブ（以下ＨＤＤと標記する場合がある）において、例えばエラー等のイベントが発生したときに、当該イベント発生に関する履歴（ログ：ｌｏｇ）を示すログ情報を作成して保存している。当該ログ情報は、ホストシステムがＲＡＩＤの障害発生に対する解析処理時に利用できる有用な情報である。
【０００４】
このようなログ情報を記録する方法としては、ＲＡＩＤコントローラの内部に設けられた不揮発性メモリに格納する方法がある。しかしながら、この方法は、通常では不揮発性メモリは相対的に小容量であるため、記録できるログ情報が制限されてしまうため、例えば障害解析に必要な十分なログ情報を得られない可能性がある。
【０００５】
このような問題を解消するために、大容量のＨＤＤのユーザ領域に、その領域内で発生したエラーに関するエラー情報を記録し、ホストシステムに当該エラー情報を転送する情報記録装置が提案されている（例えば、特許文献１を参照）。
【特許文献１】特開平６−１３１１２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
先行技術の方法は、ホストシステムのＯＳ（オペレーティングシステム）が関与して、ＨＤＤのユーザ領域にログ情報を記録する。このような方法では、ＨＤＤに障害が発生したときに、当該ＨＤＤに格納されているＯＳが機能できず、ログ情報の記録及び取得が困難になる可能性がある。
【０００７】
そこで、本発明の目的は、ホストシステムのＯＳに依存することなく、かつ相対的に大容量のログ情報を記録できるＲＡＩＤコントローラを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の観点に従ったＲＡＩＤコントローラは、ホストシステムからのアクセス要求に応じて、ディスクアレイ構成の各ディスクドライブに対するデータの入出力を制御する手段と、前記各ディスクドライブにおいて、前記ホストシステムが関与するユーザデータ記録領域以外のリザーブ領域に特定領域を設定し、前記各ディスクドライブでのイベント発生に従ったログ情報を前記特定領域に記録する記録手段とを備えたものである。
【発明の効果】
【０００９】
本発明によれば、各ディスクドライブの記録領域の中で、ホストシステム（ＯＳ）が関与しない特定領域を確保してログ情報を記録するため、ホストシステム（ＯＳ）に依存せずにログ情報を保存することができる。
【発明を実施するための最良の形態】
【００１０】
以下図面を参照して、本発明の実施形態を説明する。
【００１１】
（システム構成）
図１及び図２は本実施形態に関するＲＡＩＤ及びＲＡＩＤコントローラの構成を示すブロック図である。
【００１２】
本実施形態のＲＡＩＤコントローラ１０は、図１に示すように、第１から第４のＨＤＤ２０〜２３と接続して、例えばＲＡＩＤ−０及びＲＡＩＤ−１を合わせたＲＡＩＤ構成（便宜的にＲＡＩＤ−１０）を実現している。ＲＡＩＤコントローラ１０は、例えばパーソナルコンピュータやサーバ等のホストシステム（ＯＳを含む）３０からのアクセス要求（コマンド）に応じて、各ＨＤＤ２０〜２３に対するデータの入出力（リード及びライト動作）などの制御に必要なコマンドを発行する。
【００１３】
ＲＡＩＤコントローラ１０は、図３に示すように、マイクロプロセッサ（ＣＰＵ）１００と、メモリ１１０と、バッファメモリ１２０と、ドライブインターフェース１３０と、ホストインターフェース１４０とを有する。
【００１４】
ＣＰＵ１００は、本実施形態のログ情報の記録機能を含むＲＡＩＤ制御動作を実行するメイン制御装置である。メモリ１１０は、ＣＰＵ１００のプログラムを格納するＲＯＭや、フラッシュＥＥＰＲＯＭ及びＲＡＭを含む。バッファメモリ１２０は、バッファＲＡＭやキャッシュメモリを含む。
【００１５】
ドライブインターフェース１３０は、複数のＨＤＤ２０〜２３と接続し、データの入出力を制御するマイクロコントローラに相当する。本実施形態では、例えば４台のＨＤＤが接続可能である。ホストインターフェース１４０は、ＲＡＩＤを外部記憶装置として使用するホストシステム（パーソナルコンピュータやサーバなど）とのデータやコマンドの転送を制御するインターフェースである。
【００１６】
なお、本実施形態のＲＡＩＤコントローラ１０は、ドライブインターフェース１３０、及びホストインターフェース１４０を除く他の構成要素の代りに、ＲＡＩＤ−１０を実現する専用のハードウェアロジック回路から構成されてもよい。
【００１７】
具体的には、本実施形態のＲＡＩＤコントローラ１０は、例えばパーソナルコンピュータに装備されたカードスロットに装着されることにより、複数のＨＤＤを接続してＲＡＩＤ−１０を実現するカード型コントローラでもよい。
【００１８】
（ログ情報の記録方法）
以下図２を参照して、本実施形態のログ情報の記録方法を説明する。
【００１９】
図２に示すように、ＲＡＩＤ構成の各ＨＤＤ２０〜２３は、ユーザデータを記録するユーザエリア（ユーザデータ記録領域）２００と、ＲＡＩＤシステムの情報を記録するリザーブエリア２０１とに分割されている。ユーザエリア２００は、ホストシステム（ＯＳ）３０が関与する記録領域であり、ユーザデータ以外にもＯＳ自体を格納する記録領域である。
【００２０】
一方、リザーブエリア２０１は、ホストシステム（ＯＳ）３０は関与できず、ＲＡＩＤコントローラ１０により管理（制御）される特定領域である。ＲＡＩＤシステムの情報とは、具体的にはアレイの構成情報（以下単にアレイ情報と標記する場合がある）等である。
【００２１】
本実施形態では、ＲＡＩＤコントローラ１０は、リザーブエリア２０１をアレイの構成情報を記録するエリア２０２と、ログ情報を記録するログ記録エリア２０３とに分割して管理する。換言すれば、リザーブエリア２０１の一部を、ログ記録エリア２０３として確保する。
【００２２】
以上のように本実施形態のＲＡＩＤコントローラ１０は、各ＨＤＤ２０〜２３において、
例えばエラー等のイベントが発生したときに、当該イベント発生に関するログ情報を作成し、それぞれのリザーブエリア２０１に確保されたログ記録エリア２０３に記録する。
【００２３】
ＲＡＩＤコントローラ１０は、ホストシステム３０がＲＡＩＤの障害発生に対する解析処理を実行するときなどに、当該ログ情報をログ記録エリア２０３から取り出してホストシステム３０に提供することができる。
【００２４】
本実施形態のログ情報記録方法であれば、ログ情報は、ホストシステム（ＯＳ）３０が関与できないリザーブエリア２０１に含まれるログ記録エリア２０３に保存されるため、ＯＳが機能できない場合でも、支障なく保存される。即ち、ＯＳに依存することなく、ＲＡＩＤコントローラ１０は、イベント発生に応じてログ情報を作成して、ログ記録エリア２０３に記録し、かつＯＳからの要求に応じて当該ログ情報を取り出すことができる。
【００２５】
なお、本実施形態の記録方法では、リザーブエリア２０１の中にログ記録エリア２０３を確保するため、相対的にユーザエリア２００の記憶領域が削減されてしまう。しかしながら、例えば４０Ｇバイトの容量を有するＨＤＤの場合、リザーブエリア２０１に例えば２Ｍバイト分のログ記録エリア２０３を確保したとしても、全容量に対して僅か０．００５％程度であり、問題になるほどの増加容量ではない。一方、ログ記録エリア２０３としては、２Ｍバイト分の容量があれば、例えば５１２バイト単位のログ情報を４０９６個分も記録できるため、十分な容量である。
【００２６】
（ログ情報の冗長化方法）
次に、図４及び図７のフローチャートを参照して、ログ記録エリアの冗長化方法を説明する。
【００２７】
一般的に、ログ情報は、ＨＤＤに障害が発生した場合に最も必要となる情報である。しかしながら、障害が発生したＨＤＤでは、コントローラ１０は、ログ記録エリア２０３にログ情報を記録したり、また当該ログ記録エリア２０３からログ情報を取得することができない場合が想定される。
【００２８】
そこで、本実施形態のＲＡＩＤコントローラ１０は、ＲＡＩＤに属する例えば３台のＨＤＤ２０〜２２のグループで、ログ記録エリアの冗長化を実現する。以下、図４及び図７を参照して具体的に説明する。
【００２９】
まず、図４に示すように、各ＨＤＤ（ＨＤＤ１〜３）２０〜２２のリザーブエリアには、アレイの構成情報を記録するエリア２０２，２１２，２２２以外に、自身のログ情報を記録するログ記録エリア２０３Ａ，２１２Ａ，２２３Ａ、及び冗長ログ記録エリア２０３Ｂ，２１２Ｂ，２２３Ｂが確保されている。
【００３０】
ＲＡＩＤコントローラ１０は、イベントの発生時に、ＨＤＤ（ＨＤＤ１）２０にエラーが発生した場合には、図４（Ａ）に示すように、当該ログ情報（ログデータ）をログ記録エリア２０３Ａに記録する（ステップＳ１，Ｓ２のＹＥＳ）。さらに、ＲＡＩＤコントローラ１０は、図４（Ｃ）に示すように、ＨＤＤ１のログ情報を、ＨＤＤ（ＨＤＤ３）２２の冗長ログ記録エリア２２３Ｂに記録する（ステップＳ３）。
【００３１】
また、ＲＡＩＤコントローラ１０は、ＨＤＤ（ＨＤＤ２）２１にエラーが発生した場合には、図４（Ｂ）に示すように、当該ログ情報（ログデータ）をログ記録エリア２１２Ａに記録する（ステップＳ４のＹＥＳ）。さらに、ＲＡＩＤコントローラ１０は、図４（Ａ）に示すように、ＨＤＤ２のログ情報を、ＨＤＤ（ＨＤＤ１）２０の冗長ログ記録エリア２０３Ｂに記録する（ステップＳ５）。
【００３２】
あるいは、ＲＡＩＤコントローラ１０は、ＨＤＤ（ＨＤＤ３）２２にエラーが発生した場合には、図４（Ｃ）に示すように、当該ログ情報（ログデータ）をログ記録エリア２２３Ａに記録する（ステップＳ６のＹＥＳ）。さらに、ＲＡＩＤコントローラ１０は、図４（Ｂ）に示すように、ＨＤＤ３のログ情報を、ＨＤＤ（ＨＤＤ２）２１の冗長ログ記録エリア２１２Ｂに記録する（ステップＳ７）。
【００３３】
以上のようにＲＡＩＤコントローラ１０は、各ＨＤＤ２０〜２２のログ情報をそれぞれのログ記録エリアだけでなく、別のＨＤＤの冗長ログ記録エリアに記録する。従って、例えばＨＤＤ（ＨＤＤ１）２０で障害が発生し、ＨＤＤ１のログ情報を取り出すことができない場合には、ＲＡＩＤコントローラ１０は、ＨＤＤ３の冗長ログ記録エリア２２３ＢからＨＤＤ１のログ情報を取得することができる。
【００３４】
（ログ記録エリアの具体例）
一般的に、ＨＤＤでは、データのアクセス単位は５１２バイトからなるセクタ（ブロック）単位である。従って、本実施形態のログ記録エリア２０３も、ｎ個のセクタ（便宜的にログセクタと呼ぶ）に分割されて管理される。以下、図５を参照して、ログ記録エリアの具体的フォーマットを説明する。
【００３５】
ここで、ログ記録エリアの中で、通常のログ情報（ログデータ）を記録するエリアを、便宜的にログ情報エリア５０と呼ぶ（図６を参照して後述する）。
【００３６】
ログ情報エリア５０は、前記のように、ｎ個のログセクタ１〜ｎからなる。各ログセクタ５１は、ヘッダ５２と、ｍ個のログエントリエリア１〜ｍに分割された使用される。ヘッダ５２には、ログセクタ５１のシーケンス番号、チェックサム、過去のログのタイムスタンプ及びイベントＩＤ（識別情報）が記録される。また、各ログエントリエリア５３には、タイムスタンプ、イベントＩＤ及びログ内容のデータが記録される。
【００３７】
ＲＡＩＤコントローラ１０は、ログ情報エリア５０の空き領域がなくなると、時間的に最も古いログセクタに上書きして消去する。このとき、ＲＡＩＤコントローラ１０は、当該消去するログログエントリエリア１〜ｍのタイムスタンプ及びイベントＩＤのみをヘッダ５２に保存する。これにより、ログ情報は少なくなるが、記録できるログ情報数を２倍にすることができる。
【００３８】
（リザーブエリアの具体例）
図６は、本実施形態のリザーブエリア２０１に対して、具体的なフォーマットからなるリザーブエリア６０を示す。
【００３９】
当該リザーブエリア６０は、前述したような通常のログ情報を記録するログ情報エリア６４以外に、最新のログ情報のみを記録するログセクタ６２、及びその冗長化セクタ６３を別の領域として確保されたものである。
【００４０】
このようなリザーブエリア６０であれば、通常では、最新のログ情報は書き換え頻度が相対的に大きいため、ＲＡＩＤコントローラ１０は、当該ログセクタ６２のみをアクセスするため、ログ情報の書き換え処理の効率を高めることができる。また、冗長化セクタ６３を確保することにより、最新のログ情報の保存に対する信頼性を高めることができる。なお、図６に示す他のＨＤＤのログ情報エリア６５は、図４に示すような冗長ログ記録エリアに相当するものである。
【００４１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施形態に関するＲＡＩＤ構成を示すブロック図。
【図２】本実施形態に関するＨＤＤの記録領域の構成を示す図。
【図３】本実施形態に関するＲＡＩＤコントローラの構成を示すブロック図。
【図４】本実施形態に関するログ情報の冗長化方法を説明するための図。
【図５】本実施形態に関するログ記録エリアの具体例を示す図。
【図６】本実施形態に関するリザーブエリアの具体例を示す図。
【図７】本実施形態に関するログ情報の冗長化方法の手順を示すフローチャート。
【符号の説明】
【００４３】
１０…ＲＡＩＤコントローラ、２０〜２３…ディスクドライブ（ＨＤＤ）、
１００…マイクロプロセッサ（ＣＰＵ）、１１０…メモリ、１２０…バッファメモリ、
１３０…ドライブインターフェース、１４０…ホストインターフェース、
２００…ユーザエリア（ユーザ記録領域）、２０１…リザーブエリア（特定領域）、
２０３…ログ記録エリア。
【図１】
2005107838.tif 000003
【図２】
2005107838.tif 000004
【図３】
2005107838.tif 000005
【図４】
2005107838.tif 000006
【図５】
2005107838.tif 000007
【図６】
2005107838.tif 000008
【図７】
2005107838.tif 000009