説明

情報処理装置、RAIDコントローラカード、およびミラーリング方法

【課題】ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる複数の記憶装置を用いてミラーリングを行う場合に複数の記憶装置の寿命に差を持たせること。
【解決手段】第1記録装置と第2記録装置とに書き込みを行うコントローラは、第1アドレスおよび第1データを含む書込み命令を受信した場合に、第1アドレスから第1データのサイズに応じた第2アドレスまで第1データを第1記録装置に書き込み、第1データの先頭からページサイズのn倍のサイズの第2データを第2記録装置に書き込み、第1データから第2データを除いたサイズがページサイズより小さい第3データをキャッシュメモリに書き込み、第3データと第2アドレスに隣接する第3アドレスから書込みが命令された第4データの少なくとも一部とを含み、サイズがページサイズに等しい第5データを第2記録装置に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、複数の記憶装置に同じデータを書き込む情報処理装置、RAIDコントローラカード、およびミラーリング方法に関する。
【背景技術】
【0002】
記憶装置に書き込まれるデータの信頼性を高めるための技術としてミラーリング(RAID(Redundant Array Of Inexpensive Disks)1)がある。ミラーリングでは、データを複数の装置に同時に同じデータを書き込む。
【0003】
ところで、ハードディスクドライブの代わりに近年記憶媒体に不揮発性メモリを用いたSSD(Solid State Drive)が使われ始めている。不揮発性メモリとしては、NAND型フラッシュメモリがよく使われている。
【0004】
NAND型フラッシュメモリでは、ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる。そして、NAND型フラッシュメモリには、書き換え可能回数に上限がある。
【0005】
ミラーリングのストレージとしてNAND型フラッシュメモリを有するSSDを用いた場合、同じ内容のデータを書き込むので、ほぼ同時に寿命に達する。寿命に達すると読み出しができない製品も有るので、データの信頼性が損なわれる。
【0006】
そこで、ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる記憶装置を用いてミラーリングを行う場合に記憶装置の寿命に差ができるようにすることが望まれている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−123481号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる記憶装置を用いてミラーリングを行う場合に記憶装置の寿命に差ができるようにすることが望まれている。
【0009】
本発明の目的は、ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる複数の記憶装置を用いてミラーリングを行う場合に複数の記憶装置の寿命に差を持たせることが可能な情報処理装置、RAIDコントローラカード、およびミラーリング方法を提供することにある。
【課題を解決するための手段】
【0010】
実施形態によれば、情報処理装置は、キャッシュメモリと、コントローラとを具備する。ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第1の記録装置と第2の記録装置とにデータを同一アドレスに書き込むコントローラは、第1書込みアドレスおよび第1データを含む書込み命令を受信した場合に、前記第1書込みアドレスから前記第1データのサイズに応じた第2書込みアドレスまで前記第1データを前記第1記録装置に書き込み、前記第1データの先頭から前記ページサイズのn(nは1以上の整数)倍のサイズの第2データを前記第2の記録装置に書き込み、前記第1データから第2データを除いたサイズが前記ページサイズより小さい第3データを前記キャッシュメモリに書き込み、前記第3データと前記第2書込みアドレスに隣接する第3書込みアドレスから書込みが命令された第4データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第5データを前記第2の記録装置に書き込む。
【図面の簡単な説明】
【0011】
【図1】実施形態の情報処理装置の構成を示すブロック図。
【図2】実施形態のメイン基板およびRAIDコントローラカードの外観の一例を示す斜視図。
【図3】実施形態のRAIDコントローラカードのシステム構成の一例を示すブロック図。
【図4】実施形態のRAIDコントローラの書き込み処理の手順を示すフローチャート。
【発明を実施するための形態】
【0012】
以下、実施の形態について図面を参照して説明する。
【0013】
図1を参照して実施形態に係わる情報処理装置を説明する。情報処理装置は、コンピュータとして実現されている。
図1は、コンピュータ10のシステム構成を示すブロック図である。図1に示すように、コンピュータ10は、CPU11、ノースブリッジ12、主メモリ13、グラフィックスコントローラ14、VRAM14A、サウスブリッジ16、BIOS−ROM17、RAIDコントローラカード18、およびSolid State Disk(SSD)19等を備えている。
【0014】
CPU11は、コンピュータ10内の各部の動作を制御するプロセッサである。CPU11は、SSD19から主メモリ13にロードされるオペレーティングシステムや、このオペレーティングシステムの制御下で動作する各種プログラムを実行する。また、CPU11は、BIOS−ROM17に格納された基本入出力システム(BIOS)も実行する。なお、以下では、このBIOS−ROM17に格納された基本入出力システム自体をBIOSと称することがある。
【0015】
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ16との間を接続するブリッジデバイスである。ノースブリッジ12は、バスを介してグラフィックスコントローラ14との通信を実行する機能を有しており、また、主メモリ13をアクセス制御するメモリコントローラも内蔵されている。グラフィックスコントローラ14は、本10側のディスプレイ15を制御する表示コントローラである。グラフィックスコントローラ14は、VRAM14Aに書き込まれた画像データからディスプレイ15に送出すべき映像信号を生成する。
【0016】
サウスブリッジ16は、PCI Express(PCIe)バスの各種デバイスを制御するコントローラである。また、このサウスブリッジ16には、BIOS−ROM17が直接的に接続され、これらを制御する機能も有している。
【0017】
SSDは、例えばNAND型フラッシュメモリ(不揮発性メモリ)によって構成されている。NAND型フラッシュメモリは、ページ単位でデータの書込みおよび読み取りが行われ、複数のページを含むブロック単位でデータの消去が行われる。
【0018】
図2は、CPU11および主メモリ13等が実装されるメイン基板およびRAIDコントローラカード18を示す斜視図である。
【0019】
図2に示すように、メイン基板101上に複数の拡張スロット104、105が設けられている。拡張スロット104、105にはPCIeバスが接続される。なお、拡張スロット104には8レーン以下のPCI Express拡張カードが挿入することができ、拡張スロット105には16レーン以下のPCI Express拡張カードが挿入することができる。図2に示すように、拡張スロット104には、RAIDコントローラカード18を構成する拡張基板200のコネクタ部206が挿入されている。
【0020】
コンピュータ10は、RAIDコントローラカード18に障害が発生した場合に、通常の動作モードであるハードウェアモードから、ハードウェアセーフモードまたはソフトウェアセーフモードに切り替えられる。通常、RAIDコントローラカード18に障害が発生すると、RAIDコントローラカード18は機能を停止し、コンピュータ10も動作しなくなる。コンピュータ10は、ハードウェアセーフモードまたはソフトウェアセーフモードに切り替えることによって、コンピュータ10を稼働し続けることが可能である。
【0021】
ハードウェアセーフモードでは、障害の原因であるデバイスが停止されている。また、ソフトウェアセーフモードでは、パリティの演算等の書込み処理、および読み込み処理がCPU11によって行われる。
【0022】
次に、RAIDコントローラカード18のシステム構成について図3を参照して説明する。RAIDコントローラカード18は、プロセッサコントローラ301、PCIeコントローラ302、SAS/S−ATAコントローラ303、キャッシュメモリ311、および不揮発性メモリ321等を備えている。
【0023】
プロセッサコントローラ301は、不揮発性メモリ321に格納されたファームウェアを実行する。PCIeコントローラ302は、サウスブリッジ16との間のデータの伝送を制御するためのPCI Expressインタフェースである。SAS/S−ATAコントローラ303は、SSD19との間のデータの伝送を制御するためのインタフェースである。キャッシュメモリ311は、例えばDDR2 SDRAM(Double-Data-Rate2 Synchronous Dynamic Random Access Memory)によって構成されている。
【0024】
RAIDコントローラ300は、データの書き込みが命令された場合に、2台のSSD19に同じデータを書き込む、所謂ミラーリングを行う。一般的なミラーリングでは2台のストレージに同時に同じデータを書き込むが、RAIDコントローラ300は一般的なミラーリングと異なる処理を行う。RAIDコントローラは、SSD19Aに直ちにデータを書き込むが、SSD19Bにはページ単位でデータが書き込まれるように他のデータとまとめて処理を行う。
【0025】
次に、図4のフローチャートを参照して、SSD19Bにデータ書き込む処理の手順を説明する。
プロセッサコントローラ301は、書込み開始アドレスと書込みデータとを含む書込みが命令を受信したら、揮発性メモリによって構成されているキャッシュメモリ311内に書込みデータに隣接する未書込みデータが格納されているかを判定する(ステップ401)。
【0026】
未書込みデータがないと判定した場合(ステップ401のNo)、プロセッサコントローラ301は、書込みデータのサイズがSSD19Bを構成するNAND型フラッシュメモリのページサイズ以上であるかを判定する(ステップ402)。ページサイズは、不揮発性メモリ321内に格納されている。なお、BIOS画面等によりページサイズを変更することも可能である。
【0027】
ページサイズ以上であると判定された場合(ステップ402のYes)、プロセッサコントローラ301は、書込みデータの先頭からページサイズのデータをSSD19Bの書込み開始アドレスから書き込む(ステップ403)。
【0028】
プロセッサコントローラ301は、未書込みの書込みデータがあるかを判定する(ステップ404)。未書込みの書込みデータがないと判定した場合(ステップ404のNo)、処理を終了する。未書込みの書込みデータがあると判定した場合(ステップ404のYes)、プロセッサコントローラ301は、未書込みの書込みデータのサイズがページサイズ以上であるかを判定する(ステップ405)。ページサイズ以上であると判定した場合(ステップ405のYes)、プロセッサコントローラ301は、未書込みの書込みデータの先頭からページサイズのデータをSSD19Bの書込み開始アドレスから書き込む(ステップ406)。書込み開始アドレスは既にSSD19Bに書き込まれている書込みデータに隣接するアドレスである。ステップ406の処理後、ステップ404からの処理を順次実行する。ステップ403からステップ406の処理によって書込でターの先頭からページサイズのn(nは1以上の整数)倍のサイズのデータがSSD19Bに書き込まれる。
【0029】
ステップ402において書込みデータのサイズがページサイズ以上ではないと判定された場合(ステップ402のNo)、またはステップ405において未書込みの書込みデータのサイズがページサイズ以上ではないと判定された場合(ステップ405のNo)に行われる処理について説明する。プロセッサコントローラ301は、キャッシュメモリ311の空き容量を取得する。プロセッサコントローラ301は、空き容量より書込みデータまたは未書込みの書込みデータのサイズが大きいかを判定することによって、キャッシュメモリ311に書込みデータまたは未書込みの書込みデータを格納できるかを判定する(ステップ407)。格納できると判定した場合(ステップ407のYes)、プロセッサコントローラ301は書込みデータまたは未書込みの書込みデータをキャッシュメモリ311を書込み開始アドレスと共に記録する(ステップ410)。
【0030】
キャッシュメモリ311に格納することができないと判定した場合(ステップ407のNo)、プロセッサコントローラ301は、キャッシュメモリ311内に一番古く記録されたデータをSSD19Bに記録する(ステップ408)。記録されたデータをキャッシュメモリ311から削除する(ステップ409)。そして、ステップ407に戻り、プロセッサコントローラ301は、キャッシュメモリ311に書込みデータまたは未書込みの書込みデータを格納することができるかを再度判定する。
【0031】
ステップ401において、キャッシュメモリ311内に書込みデータに隣接する未書込みデータが格納されていると判定した場合(ステップ401のYes)、プロセッサコントローラ301は、未書込みデータのサイズと書込みデータのサイズとの和がページサイズ以上であるかを判定する(ステップ411)。ページサイズ以上ではないと判定した場合(ステップ411のNo)、プロセッサコントローラ301はステップ407からの処理を順次実行する。ページサイズ以上であると判定した場合(ステップ411のYes)、プロセッサコントローラ301は、未書込みデータおよび書込みデータを未書込みデータの先頭からページサイズのサイズのデータを書込む(ステップ412)。書込み後、プロセッサコントローラ301は、ステップ404からの処理を順次実施する。
【0032】
以上説明したように、書込み処理の説明を終了する。SSD19AとSSD19Bに対する書き込み処理を替えることで、2台のSSD19A,19Bへの書き込みを不均一化することができる。不均一化することによって、2台のSSD19A,19Bに同時に寿命に達することを防ぐことができ、RAIDを用いたシステムの安定運用することができる。
【0033】
なお、コントローラは、装置の停止を検出した場合に、キャッシュメモリ内のデータをSSD19Bに書き込む処理を行う。また、SSD19Aに障害が発生し、SSD19Aを新たなSSDに交換した場合、コントローラはSSD19BをSSD19Aに設定し、新たなSSDをSSD19Bとして設定する。
【0034】
装置が不正終了した場合、コントローラは、SSD19Aに格納されているデータに基づいてSSD19Bに格納されるデータの再構築を行う。
【0035】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0036】
10…コンピュータ,18…RAIDコントローラカード,19A…SSD,19B…SSD,300…RAIDコントローラ,311…キャッシュメモリ。

【特許請求の範囲】
【請求項1】
キャッシュメモリと、
ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第1記録装置と第2記録装置とにデータを同一アドレスに書き込むコントローラであって、
第1書込みアドレスおよび第1データを含む書込み命令を受信した場合に、前記第1書込みアドレスから前記第1データのサイズに応じた第2書込みアドレスまで前記第1データを前記第1記録装置に書き込み、
前記第1データの先頭から前記ページサイズのn(nは1以上の整数)倍のサイズの第2データを前記第2記録装置に書き込み、
前記第1データから第2データを除いたサイズが前記ページサイズより小さい第3データを前記キャッシュメモリに書き込み、
前記コントローラは、前記第3データと前記第2書込みアドレスに隣接する第3書込みアドレスから書込みが命令された第4データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第5データを前記第2記録装置に書き込む、
コントローラと、
を具備する情報処理装置。
【請求項2】
前記コントローラは、
前記第3データを前記キャッシュメモリに書き込む前に、前記キャッシュメモリに書込み可能なサイズが前記第3データのサイズより小さいかを判定し、
前記第3データのサイズより小さいと判定した場合に、前記キャッシュメモリ内のデータの少なくとも一部を前記第2記録装置に書き込み、
前記第2記録装置に書き込まれたデータを前記キャッシュメモリから削除し、
前記キャッシュメモリに前記第3データを書き込む、
請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置が停止される場合、前記コントローラは、前記キャッシュメモリ内の前記第3データを含むデータを前記第2記録装置に書き込む
請求項1に記載の情報処理装置。
【請求項4】
前記第1記録装置に障害が発生し、前記第1記録装置を第3記録装置に交換した場合、前記第2記録装置を前記第1記録装置に設定し、前記3記録装置を前記第2記録装置として設定データに設定する設定手段を更に具備する
請求項1に記載の情報処理装置。
【請求項5】
前記キャッシュメモリは、揮発性メモリであり、
前記コントローラは、前記情報処理装置が不正終了した場合に、前記第1記録装置に格納されているデータに基づいて前記第2記録装置に格納されるデータの再構築を行う、
請求項1に記載の情報処理装置。
【請求項6】
前記第1記録装置および前記第2記録装置は、NAND型不揮発性メモリを含む
請求項1に記載の情報処理装置。
【請求項7】
キャッシュメモリと、
ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第1記録装置と第2記録装置とにデータを同一アドレスに書き込むコントローラであって、
第1書込みアドレスおよび第1データを含む書込み命令を受信した場合に、前記第1書込みアドレスから前記第1データのサイズに応じた第2書込みアドレスまで前記第1データを前記第1記録装置に書き込み、
前記第1データの先頭から前記ページサイズのn(nは1以上の整数)倍のサイズの第2データを前記第2記録装置に書き込み、
前記第1データから第2データを除いたサイズが前記ページサイズより小さい第3データを前記キャッシュメモリに書き込み、
前記第3データと前記第2書込みアドレスに隣接する第3書込みアドレスから書込みが命令された第4データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第5データを前記第2記録装置に書き込む、
コントローラと、
を具備するRAIDコントローラカード。
【請求項8】
ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第1記録装置と第2記録装置とにデータを同一アドレスに書き込むミラーリング方法であって、
第1書込みアドレスおよび第1データを含む書込み命令を受信した場合に、前記第1書込みアドレスから前記第1データのサイズに応じた第2書込みアドレスまで前記第1データを前記第1記録装置に書き込み、
前記第1データの先頭から前記ページサイズのn(nは1以上の整数)倍のサイズの第2データを前記第2記録装置に書き込み、
前記第1データから第2データを除いたサイズが前記ページサイズより小さい第3データを前記キャッシュメモリに書き込み、
前記第3データと前記第2書込みアドレスに隣接する第3書込みアドレスから書込みが命令された第4データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第5データを前記第2記録装置に書き込む、
ミラーリング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−14415(P2012−14415A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−150034(P2010−150034)
【出願日】平成22年6月30日(2010.6.30)
【特許番号】特許第4806089号(P4806089)
【特許公報発行日】平成23年11月2日(2011.11.2)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】