特許第5949816号(P5949816)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許5949816キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム
<>
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000002
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000003
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000004
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000005
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000006
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000007
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000008
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000009
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000010
  • 特許5949816-キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5949816
(24)【登録日】2016年6月17日
(45)【発行日】2016年7月13日
(54)【発明の名称】キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム
(51)【国際特許分類】
   G06F 12/08 20160101AFI20160630BHJP
   G06F 12/16 20060101ALI20160630BHJP
   G06F 13/14 20060101ALI20160630BHJP
   G06F 3/06 20060101ALI20160630BHJP
【FI】
   G06F12/08 541C
   G06F12/08 557
   G06F12/16 310Q
   G06F12/16 330D
   G06F13/14 330B
   G06F13/14 330E
   G06F3/06 302A
   G06F3/06 304N
   G06F3/06 540
   G06F3/06 306Z
【請求項の数】10
【全頁数】19
(21)【出願番号】特願2014-56689(P2014-56689)
(22)【出願日】2014年3月19日
(65)【公開番号】特開2015-179419(P2015-179419A)
(43)【公開日】2015年10月8日
【審査請求日】2015年7月22日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】中島 利剛
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2012−048361(JP,A)
【文献】 特開2007−066129(JP,A)
【文献】 米国特許出願公開第2011/0047437(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/08
G06F 12/16
G06F 3/06
G06F 13/14
(57)【特許請求の範囲】
【請求項1】
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視手段と、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する制御手段と、
を備えることを特徴とするキャッシュ制御装置。
【請求項2】
前記制御手段は、前記キャッシュの構成を変更する処理として、
前記複数の記憶装置のうち、前記ライトキャッシュとして動作する第1の記憶装置が該第1の記憶装置と異なる他の記憶装置より劣ると判別した場合には、前記他の記憶装置を前記ライトキャッシュに割り当てる
ことを特徴とする請求項1に記載のキャッシュ制御装置。
【請求項3】
前記制御手段は、
前記第1の記憶装置の前記障害情報と前記他の記憶装置の前記障害情報とに基づく障害判定処理を実行し、前記障害判定処理を実行した結果、前記第1の記憶装置が前記他の記憶装置より劣ると判別する場合に、前記キャッシュの変更処理を実行する一方で、
前記第1の記憶装置が前記他の記憶装置より劣らないと判別する場合には、前記第1の記憶装置の前記寿命情報と前記他の記憶装置の前記寿命情報とに基づく寿命判定処理を実行し、前記寿命判定処理を実行した結果、前記第1の記憶装置が前記他の記憶装置より劣ると判別した場合には、前記キャッシュの変更処理を実行する
ことを特徴とする請求項2に記載のキャッシュ制御装置。
【請求項4】
前記障害判定処理は、
前記障害情報に格納された第1のエラーポイントと第2のエラーポイントとの差分を求め、前記障害情報に格納された第1のエラーポイントの値を、前記第2のエラーポイントとして前記障害情報に格納し、
前記第1の記憶装置の前記障害情報に基づき求めた第1の差分を示す値と、前記他の記憶装置の前記障害情報に基づき求めた第2の差分を示す値との差分値を求め、その差分値と第1の閾値とを比較し、比較結果のうち、一方の場合は前記第1の記憶装置が前記他の記憶装置より劣ると判別し、他方の場合には前記第1の記憶装置が前記他の記憶装置より劣らないと判別する
ことを特徴とする請求項3に記載のキャッシュ制御装置。
【請求項5】
前記寿命判定処理は、
前記複数の記憶装置から前記寿命情報を取得し、前記取得した第1の記憶装置の寿命情報と第2の閾値とを比較し、比較結果のうち、一方の場合には前記取得した他の記憶装置の寿命情報と前記第1の記憶装置の前記寿命情報とに基づき差分値を求め、その差分値と第3の閾値とを比較し、比較結果のうち、一方の場合には前記第1の記憶装置が前記他の記憶装置より劣ると判別する
ことを特徴とする請求項3に記載のキャッシュ制御装置。
【請求項6】
前記監視手段は、
前記記憶装置に障害が発生した場合に、第1のエラーポイントをインクリメントするよう制御する
ことを特徴とする請求項1に記載のキャッシュ制御装置。
【請求項7】
前記記憶装置は、SSDである
ことを特徴とする請求項1乃至請求項6の何れかに記載のキャッシュ制御装置。
【請求項8】
請求項1乃至請求項7の何れかに記載されたキャッシュ制御装置を含むことを特徴とするストレージ装置。
【請求項9】
情報処理装置によって、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視手段によって監視し、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する
ことを特徴とするキャッシュ制御方法。
【請求項10】
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視機能と、
前記記憶装置における寿命に関する寿命情報と前記監視機能による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する機能と、を
コンピュータに実現させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、キャッシュ機能を備えた記憶装置に関する。
【背景技術】
【0002】
データ(情報)を記憶可能なストレージ装置では、例えば、障害による情報喪失に備えて、様々な対策がとられている。その対策としては、例えば、2台の記憶装置に対して同一の情報を記憶するRAID(Redundant_Arrays_of_Inexpensive_Disks)方式が知られている。
【0003】
ここで、本願出願に先立って存在する関連技術としては、例えば、特許文献1乃至特許文献3がある。
【0004】
特許文献1は、メモリシステム及びメモリシステムの制御方法に関する技術を開示する。特許文献1に開示されたメモリシステムは、リードまたはライト処理を実行するに際して、データの記憶位置を示す揮発性アドレス情報を、キャッシュメモリに格納する。これにより、メモリシステムは、全てのデータが記憶されている記憶位置とその記憶位置に対応する論理アドレスとをキャッシュメモリに格納するのに比べ、キャッシュメモリの容量を抑えることができる。
【0005】
次に、特許文献2は、書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法に関する技術を開示する。特許文献2に開示された記憶装置は、不揮発性メモリ内に設けられた複数の物理ブロック毎に、データの書き込みに応じて、書き込み回数を表す情報を保存する。また、記憶装置は、データの書き込みに応じて、保存された書き込み回数情報を参照する。書き込み回数情報を参照した結果、記憶装置は、書き込み回数が所定の回数に達した場合に、書き込みの対象である物理ブロックを、他の物理ブロックと交換する。他の物理ブロックと交換するに際して、記憶装置は、既に交換された物理ブロックと異なる最も書き込み回数の少ない物理ブロックを選定する。これにより、記憶装置は、物理ブロックに対する書き込み回数を平均化することができる。
【0006】
特許文献3には、半導体ディスク装置におけるメモリ障害減少化方法に関する技術が開示されている。特許文献3に開示された半導体ディスク装置は、複数に分けられた論理ドライブ毎に、アクセス回数をカウントする。また、半導体ディスク装置は、1ビットエラーが発生した場合に、エラーの発生回数をカウントする。半導体ディスク装置は、アクセス回数が所定の回数以上、且つエラーの発生率が所定の閾値に達した場合に、処理を開始する。即ち、半導体ディスク装置は、対象となる論理ドライブに記憶された情報を、アクセス回数が最も少なく、且つエラーの発生回数の少ない論理ドライブに記憶された情報と交換する。これにより、半導体ディスク装置は、障害の発生率を低減することができる。尚、特許文献3に開示された半導体ディスクとは、SSD(Solid_State_Drive:本願では、「SSD」と称する)である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2012−128646号公報
【特許文献2】特開2004−326523号公報
【特許文献3】特開平06−067816号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、ストレージ装置は、より高速にリード及びライト処理を実行可能なようにキャッシュを備えることが知られている。より具体的に、ストレージ装置は、例えば、リード処理を受け付けた場合に、情報を、ハードディスクドライブから読み出すのではなく、SSDにより構成されたキャッシュから読み出す。このように、ストレージ装置は、情報を高速に読み書き可能なSSDをキャッシュ(「二次キャッシュ」とも称する)として活用する技術が存在する。尚、以下の説明において、本願では、説明の便宜上、ハードディスクドライブ(Hard_disk_drive)を「HDD」と称する。
【0009】
以下の説明では、より具体的に、一般的に知られたストレージ装置210について図7乃至図9を参照して説明する。図7は、一般的に知られたストレージ装置210の構成を示すブロック図である。
【0010】
図7において、ストレージ装置210は、データを含む情報を記憶する1つ以上のHDD230及びSSDキャッシュ220を有する。また、SSDキャッシュ220は、HDD230と比較してI/O(Input/Output)処理性能に優れたSSD221及びSSD222を有する。
【0011】
図7において、ライト処理を実行する場合に、ホストコンピュータ200から送信されたライトデータは、SSD221にキャッシュされる。そして、当該ライトデータは、HDD230に記憶される。また、リード処理を実行する場合には、HDD230に記憶されたリードデータは、SSD222にキャッシュされる。そして、当該リードデータは、ホストコンピュータ200に送信される。
【0012】
ここで、以下の説明では、例えば、SSD221が故障した場合について図8を参照して説明する。
【0013】
図8は、一般的に知られたストレージ装置210においてSSD221が故障した態様を概念的に例示する図である。尚、図8に示すストレージ装置210の構成は、図7に示すストレージ装置210の構成と同様である。そのため、詳細な説明は省略する。
【0014】
図8において、SSD221が故障した場合に、ホストコンピュータ200から送信されたライトデータは、HDD230に記憶されないだけでなく、SSD221にキャッシュされたデータも損失する。即ち、一般的に知られたストレージ装置210では、SSD221にキャッシュされたライトデータが失われデータ損失が発生する。
【0015】
また、以下の説明では、例えば、SSD222が故障した場合について図9を参照して説明する。
【0016】
図9は、一般的に知られたストレージ装置210においてSSD222が故障した態様を概念的に例示する図である。尚、図9に示すストレージ装置210の構成は、図7に示すストレージ装置210の構成と同様である。そのため、詳細な説明は省略する。
【0017】
図9において、SSD222が故障した場合に、HDD230に記憶されたリードデータは、HDD230に記憶されている。そのため、SSD222が故障した場合であっても、ストレージ装置210においてデータ損失は発生しない。
【0018】
このように、一般的に知られたストレージ装置210では、ライトデータをキャッシュするSSD221が故障した場合に、HDD230に記憶されない虞がある。即ち、ライトデータをSSD221からHDD230に書き出していない場合に、ストレージ装置210では、データ損失が生じる可能性がある。また、例えば、RAIDを構成するストレージ装置であっても、SSDにおいて多重障害が発生した場合には、データ損失は発生する虞がある。
【0019】
また、特許文献1乃至特許文献3に開示された技術は、SSD内部を制御する技術が開示されているに留まる。特許文献1乃至特許文献3には、SSDをキャッシュとして動作させることについては開示も示唆もしていない。そして、特許文献1には、キャッシュメモリ容量を抑制することが記載されているに留まる。また、特許文献2には、物理ブロックに対する書き込み回数を平均化することが記載されているに留まる。
【0020】
さらに、特許文献3は、論理ドライブのエラー回数やアクセス回数を用いて論理ドライブを交換することが記載されているに留まる。即ち、特許文献3には、ライトキャッシュを優先して安全性の高い記憶装置により構築することについて、考慮されておらず何ら述べられていない。
【0021】
本発明は、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減可能なキャッシュ制御装置等を提供することを主たる目的とする。
【課題を解決するための手段】
【0022】
上記の課題を達成すべく、本発明の一態様に係るキャッシュ制御装置は、以下の構成を備えることを特徴とする。
【0023】
即ち、本発明の一態様に係るキャッシュ制御装置は、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視手段と、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する制御手段と、
を備える。
【0024】
或いは、同目的は、上記に示すキャッシュ制御装置を含むストレージ装置によっても達成される。
【0025】
また、同目的を達成すべく、本発明の一態様に係るキャッシュ制御方法は、以下の構成を備えることを特徴とする。
【0026】
即ち、本発明の一態様に係るキャッシュ制御方法は、
情報処理装置によって、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視し、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する。
【0027】
尚、同目的は、上記の各構成を有するキャッシュ制御装置及びキャッシュ制御方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【0028】
本発明によれば、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減可能なキャッシュ制御装置等を提供することができる。
【図面の簡単な説明】
【0029】
図1】本発明の第1の実施形態におけるキャッシュ制御装置を含むストレージ装置の構成を示すブロック図である。
図2】本発明の第1の実施形態における監視部が行う動作を示すフローチャートである。
図3A】本発明の第1の実施形態における制御部が行う動作を示すフローチャートである。
図3B】本発明の第1の実施形態における制御部が行う動作を示すフローチャートである。
図4】本発明の第2の実施形態におけるキャッシュ制御装置を含むストレージ装置の構成を示すブロック図である。
図5】本発明の第2の実施形態におけるキャッシュ制御装置を含むストレージ装置の一方のSSDにおいて、障害が発生した態様を概念的に例示する図である。
図6】本発明に係る各実施形態を実現可能な情報処理装置のハードウェア構成を例示的に説明するブロック図である。
図7】一般的に知られたストレージ装置の構成を示すブロック図である。
図8】一般的に知られたストレージ装置において一方のSSDが故障した態様を概念的に例示する図である。
図9】一般的に知られたストレージ装置において他方のSSDが故障した態様を概念的に例示する図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0031】
<第1の実施形態>
図1は、本発明の第1の実施形態におけるキャッシュ制御装置1を含むストレージ装置10の構成を示すブロック図である。
【0032】
図1において、ストレージ装置10は、キャッシュ11、1つ以上の記憶装置12及びキャッシュ制御装置1を有する。また、キャッシュ11は、記憶装置13及び記憶装置14により構成される。
【0033】
尚、以下の説明では、説明の便宜上、第1の記憶装置を「記憶装置13」と称する。また、以下の説明では、第2の記憶装置を「記憶装置14」と称する。そして、以下の説明では、第3の記憶装置を「記憶装置12」と称する。
【0034】
また、以下の説明では、説明の便宜上、一例として、記憶装置13は、ライトキャッシュとして機能することとする。また、記憶装置14は、リードキャッシュとして機能することとする(以下、各実施形態においても同様)。
【0035】
より具体的に、ストレージ装置10は、例えば、ライト処理を実行する場合に、ホストコンピュータ200から送信された書き込み情報(「ライトデータ」とも記す)を記憶装置13にキャッシュするよう制御する。また、ストレージ装置10は、記憶装置13にキャッシュされた書き込み情報を、記憶装置12に記憶するよう制御する。
【0036】
また、ストレージ装置10は、例えば、リード処理を実行する場合に、記憶装置12に記憶された読み込み情報(「リードデータ」とも記す)を、記憶装置14にキャッシュするよう制御する。また、ストレージ装置10は、記憶装置14にキャッシュされた読み込み情報を、ホストコンピュータ200に送信するよう制御する。
【0037】
記憶装置(記憶装置12、記憶装置13及び記憶装置14)は、例えば、コンピュータによるデータの読み書きが可能な不揮発性の記憶装置である。より具体的に、一例として、記憶装置は、HDD、SSD、半導体メモリ、或いは、それらに類するデータ記憶媒体等の不揮発性の記憶装置を採用することができる。
【0038】
次に、図1において、キャッシュ制御装置1は、監視部2及び制御部3を備える。
【0039】
監視部2は、キャッシュ11を構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置(記憶装置13及び記憶装置14)の障害を監視する。即ち、監視部2は、キャッシュ11を構成する複数の記憶装置毎に、その記憶装置において発生する障害を監視する。また、監視部2は、特定の記憶装置において障害が発生した場合に、値をインクリメントするよう第1のエラーポイントを制御する。
【0040】
ここで、エラー情報(エラー情報102、エラー情報103)は、第1のエラーポイントと第2のエラーポイントとを含む情報である。エラー情報102は、記憶装置13に対応するエラー情報である。また、エラー情報103は、記憶装置14に対応するエラー情報である。即ち、エラー情報は、キャッシュ11を構成する複数の記憶装置毎に存在する。
【0041】
より具体的に、監視部2は、記憶装置13と記憶装置14とにおいて発生する障害を監視する。
【0042】
監視部2は、記憶装置13において障害が発生した場合に、エラー情報102に含まれる第1のエラーポイントの値をインクリメントするよう制御する。
【0043】
また、監視部2は、記憶装置14において障害が発生した場合に、エラー情報103に含まれる第1のエラーポイントの値をインクリメントするよう制御する。即ち、エラー情報102及びエラー情報103の第1のエラーポイントは、記憶装置に障害が発生した際に加算される加算カウンタである。
【0044】
次に、以下の説明において、より具体的に、本実施形態における監視部2の動作について説明する。
【0045】
図2は、本発明の第1の実施形態における監視部2が行う動作を示すフローチャートである。係るフローチャートに沿って監視部2の動作手順を説明する。
【0046】
ステップS1:
監視部2は、キャッシュ11を構成する複数の記憶装置を監視する。
【0047】
ここでは、監視部2は、記憶装置13と記憶装置14とにおいて、障害が発生したか否かを判別する。
【0048】
監視部2は、例えば、記憶装置13及び記憶装置14に対して発行されたコマンドに対する応答種別に基づき障害が発生したか否かを判別する構成を採用してもよい。ここで、応答種別とは、例えば、コマンドに対して、正常に終了したことを示す正常応答、障害が発生したことを示すエラー応答及び応答のない無応答である。また、エラー応答とは、例えば、ホストコンピュータ200との通信障害による通信エラー、媒体(メモリ)エラー及びハードウェア故障によるハードウェアエラーなどが考えられる。この場合に、監視部2は、正常応答以外の応答を障害が発生したと判別することができる。
【0049】
ステップS1において「YES」:
監視部2は、記憶装置において、障害が発生したか否かを判別した結果、障害が発生したと判別する場合に、処理をステップS2に進める。
【0050】
ステップS1において「NO」:
監視部2は、記憶装置において、障害が発生したか否かを判別した結果、障害が発生していないと判別する場合に、処理をステップS1に戻す。即ち、監視部2は、記憶装置の監視を継続する。
【0051】
ステップS2:
監視部2は、エラー情報(エラー情報102、エラー情報103)に含まれる第1のエラーポイントの値をインクリメントするよう制御する。
【0052】
ここでは、例えば、記憶装置13に障害が発生した場合の動作について説明する。監視部2は、エラー情報102に含まれる第1のエラーポイントの値をインクリメントするよう制御する。
【0053】
このように、監視部2は、繰り返しキャッシュ11を構成する複数の記憶装置を監視する。
【0054】
次に、以下の説明では、制御部3の動作について説明する。
【0055】
尚、以下の説明では、説明の便宜上、一例として、寿命に関する情報を、単に「寿命情報」と称する。
【0056】
また、以下の説明では、記憶装置13における第1のエラーポイントと第2のエラーポイントとの差分値を、「第1のポイント差分値」と称する。そして、以下の説明では、記憶装置14における第1のエラーポイントと第2のエラーポイントとの差分値を、「第2のポイント差分値」と称する。また、以下の説明では、第1のポイント差分値と第2のポイント差分値との差分値を、「第3のポイント差分値」と称する。さらに、以下の説明では、制御部3が求めた寿命情報の差分値を、「寿命差分値」と称する(以下、各実施形態においても同様)。
【0057】
制御部3は、監視時刻に、以下において説明する処理を実行する。制御部3は、キャッシュ11を構成する記憶装置における監視部2による監視結果を示す障害情報(エラー情報102及び103)と寿命に関する情報(寿命情報)と判定情報とに基づき、複数の記憶装置の優劣を判別する。そして、制御部3は、優劣を判別した結果に応じて、キャッシュ11の構成を変更する(スワップ処理)。即ち、制御部3は、複数の記憶装置のうち、ライトキャッシュとして動作する記憶装置が他の記憶装置より劣ると判別する場合には、当該他の記憶装置をライトキャッシュに割り当てる。
【0058】
より具体的に、制御部3は、複数の記憶装置のうち、ライトキャッシュとして動作する記憶装置(第1の記憶装置)の障害情報と、その記憶装置と異なる他の記憶装置の障害情報とに基づいて、障害判定処理を実行する。制御部3は、障害判定処理を実行した結果、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣ると判別する場合に、係るキャッシュ11の構成を変更する。一方で、制御部3は、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣らないと判別する場合に、ライトキャッシュとして動作する記憶装置の寿命情報と当該他の記憶装置の寿命情報とに基づいて、寿命判定処理を実行する。制御部3は、寿命判定処理を実行した結果、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣ると判別する場合には、係るキャッシュ11の構成を変更する。尚、障害判定処理及び寿命判定処理については、本実施形態において後述する。
【0059】
ここで、以下の説明では、寿命情報及び監視情報101について説明する。
【0060】
寿命情報は、例えば、記憶装置13及び記憶装置14において管理された寿命に関する情報である。寿命情報は、例えば、記憶装置13及び記憶装置14が未使用な状態を「100」とする。また、寿命情報は、例えば、記憶装置13及び記憶装置14が寿命に達した状態を「0」とする。即ち、寿命情報は、減算カウンタである。より具体的に、例えば、記憶装置にSSDを採用する場合に、寿命情報は、SSDに対する書き込み回数を示す情報を含む。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0061】
また、監視情報101は、制御部3が処理を開始する時刻を示す「監視時刻」、その監視時刻から所定の期間を示す「インターバル情報」、スワップ処理の実行判定に用いる判定情報を含む。ここで、判定情報は、「ポイント差分閾値(第1の閾値)」、「寿命閾値(第2の閾値)」及び「寿命差分閾値(第3の閾値)」を含む。
【0062】
監視情報101、エラー情報102及びエラー情報103は、例えば、ストレージ装置10が有する不図示の記憶領域に格納されている構成を採用してもよい。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0063】
次に、以下の説明において、より具体的に、本実施形態における制御部3の動作について説明する。
【0064】
図3A及び図3Bは、本発明の第1の実施形態における制御部3が行う動作を示すフローチャートである。係るフローチャートに沿って制御部3の動作手順を説明する。
【0065】
ステップS11:
制御部3は、監視情報101に含まれる監視時刻と現在の時刻とを比較する。
【0066】
ステップS11において「YES」:
制御部3は、監視時刻と現在の時刻とを比較した結果、現在の時刻が監視時刻を経過したと判別する場合に、処理をステップS12に進める。
【0067】
ステップS11において「NO」:
制御部3は、監視時刻と現在の時刻とを比較した結果、現在の時刻が監視時刻を経過していないと判別する場合に、処理を終了する。
【0068】
ステップS12:
制御部3は、監視情報101の更新処理を実行する。
【0069】
より具体的に、制御部3は、監視情報101に含まれる監視時刻とインターバル情報とに基づき、次回の監視時刻を算出する。即ち、制御部3は、自装置において処理を実行する次回の時刻(監視時刻)を算出する。
【0070】
また、制御部3は、算出した次回の監視時刻を、監視情報101に記憶する。即ち、制御部3は、監視情報101に含まれる監視時刻を、算出した監視時刻に更新する。
【0071】
尚、制御部3は、監視時刻にインターバル情報を加算することによって、次回の監視時刻を算出することができる。
【0072】
ステップS13:
制御部3は、記憶装置毎に、エラー情報(エラー情報102、エラー情報103)に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、差分値を算出する。即ち、制御部3は、記憶装置毎に、例えば、エラー情報に格納された第1のエラーポイントから第2のエラーポイントを減算することによって、差分値を算出する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0073】
より具体的に、制御部3は、エラー情報102に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、差分値(第1のポイント差分値)を算出する。そして、制御部3は、エラー情報103に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、差分値(第2のポイント差分値)を算出する。
【0074】
ステップS14:
制御部3は、記憶装置毎に、エラー情報に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報に格納する。
【0075】
より具体的に、制御部3は、エラー情報102に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報102に格納する。また、制御部3は、エラー情報103に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報103に格納する。
【0076】
ステップS15:
制御部3は、エラー判定処理(障害判定処理)を実行する。
【0077】
制御部3は、算出した第1のポイント差分値及び第2のポイント差分値と、ポイント差分閾値とに基づいて、エラー判定処理を実行する。
【0078】
より具体的に、制御部3は、例えば、ライトキャッシュとして動作する記憶装置のポイント差分値からその記憶装置と異なる他の記憶装置のポイント差分値を減算することによって、それらポイント差分値の差分値(第3のポイント差分値)を算出する。次に、制御部3は、算出した第3のポイント差分値と、監視情報101に含まれるポイント差分閾値とを比較する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0079】
ここでは、制御部3は、ライトキャッシュとして動作する記憶装置13の第1のポイント差分値から記憶装置13と異なる他の記憶装置14の第2のポイント差分値を減算することによって、第3のポイント差分値を算出することとする。
【0080】
ステップS15において「YES」:
制御部3は、比較した結果、第3のポイント差分値がポイント差分閾値より大きいと判別する場合に、処理をステップS18に進める。
【0081】
ステップS15において「NO」:
制御部3は、比較した結果、第3のポイント差分値がポイント差分閾値より大きくないと判別する場合に、処理をステップS16に進める。
【0082】
ステップS16:
制御部3は、第1の寿命判定処理を実行する。即ち、制御部3は、キャッシュ11を構成する全ての記憶装置から寿命に関する情報(寿命情報)を取得する。次に、制御部3は、ライトキャッシュとして動作する記憶装置の寿命情報と、監視情報101に含まれる寿命閾値とを比較する。
【0083】
ここでは、制御部3は、記憶装置13及び記憶装置14からそれぞれの記憶装置における寿命情報を取得する。また、制御部3は、ライトキャッシュとして動作する記憶装置13の寿命情報と、監視情報101に含まれる寿命閾値とを比較する。
【0084】
ステップS16において「YES」:
制御部3は、比較した結果、ライトキャッシュとして動作する記憶装置の寿命情報が寿命閾値より小さいと判別する場合に、処理をステップS17に進める。
【0085】
ここでは、制御部3は、比較した結果、記憶装置13の寿命情報が寿命閾値より小さいと判別する場合に、処理をステップS17に進める。
【0086】
ステップS16において「NO」:
制御部3は、比較した結果、ライトキャッシュとして動作する記憶装置の寿命情報が寿命閾値より小さくないと判別する場合に、処理を終了する。
【0087】
ここでは、制御部3は、比較した結果、記憶装置13の寿命情報が寿命閾値より小さくないと判別する場合に、処理を終了する。
【0088】
ステップS17:
制御部3は、ライトキャッシュとして動作する記憶装置の寿命情報、その記憶装置と異なる他の記憶装置の寿命情報及び寿命差分閾値に基づいて、第2の寿命判定処理を実行する。
【0089】
より具体的に、制御部3は、例えば、当該異なる他の記憶装置の寿命情報からライトキャッシュとして動作する記憶装置の寿命情報を減算することによって、差分値(寿命差分値)を算出する。次に、制御部3は、算出した寿命差分値と、監視情報101に含まれる寿命差分閾値とを比較する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0090】
ここでは、制御部3は、記憶装置14の寿命情報から記憶装置13の寿命情報を減算することによって、寿命差分値を算出する。制御部3は、算出した寿命差分値と、監視情報101に含まれる寿命差分閾値とを比較する。
【0091】
ステップS17において「YES」:
制御部3は、比較した結果、算出した寿命差分値が寿命差分閾値より大きいと判別する場合に、処理をステップS18に進める。
【0092】
ステップS17において「NO」:
制御部3は、比較した結果、算出した寿命差分値が寿命差分閾値より大きくないと判別する場合に、処理を終了する。
【0093】
ステップS18:
制御部3は、スワップ処理を実行する。即ち、制御部3は、キャッシュ11の構成を変更する。
【0094】
より具体的に、制御部3は、ライトキャッシュとして動作する記憶装置を、リードキャッシュに割り当てる。その一方で、制御部3は、リードキャッシュとして動作する記憶装置を、ライトキャッシュに割り当てる。
【0095】
ここでは、例えば、記憶装置14がより障害が少なく、且つ寿命の長い記憶装置として説明する。制御部3は、より障害が少なく、且つ寿命の長い記憶装置14をライトキャッシュとして構成する。また、制御部3は、他方の記憶装置13をリードキャッシュとして構成する。
【0096】
これにより、制御部3は、1つ以上の記憶装置のうち、より障害が少なく、且つ寿命の長い一方の記憶装置をライトキャッシュとして構成することができる。即ち、ストレージ装置10は、安全性の高いライトキャッシュにデータをキャッシュすることができるため、当該データの損失リスクを低減することができる。
【0097】
尚、上述した本実施形態では、説明の便宜上、一例として、監視部2は、記憶装置に障害が発生した際に、記憶装置毎に、対応するエラー情報に第1及び第2のエラーポイントを格納する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。監視部2は、1つのエラー情報に記憶装置毎の第1及び第2のエラーポイントを格納する構成を採用してもよい。その場合に、監視部2は、例えば、1つのエラー情報に、個々の記憶装置を識別可能なように第1及び第2のエラーポイントを格納することにより実現してもよい。
【0098】
また、キャッシュ制御装置1は、例えば、RAIDを構成するキャッシュに対しても適用可能である。
【0099】
このように本実施の形態に係るキャッシュ制御装置1によれば、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減することができる。その理由は、以下に述べる通りである。
【0100】
即ち、キャッシュ制御装置1は、キャッシュ11を構成する複数の記憶装置において発生する障害を監視する監視部2と、記憶装置におけるエラー情報、寿命情報及び判定情報に基づいて記憶装置の優劣を判別する制御部3とを備えるからである。また、制御部3は、判別結果に応じて、キャッシュ11の構成を変更することができるからである。
【0101】
これにより、キャッシュ制御装置1は、ライトキャッシュとして動作する記憶装置に障害が発生する可能性が高いと判別した場合に、障害発生の可能性が低い記憶装置を特定することができる。また、キャッシュ制御装置1は、ライトキャッシュとして動作する記憶装置から特定した記憶装置に切り替えることができる。即ち、キャッシュ制御装置1は、ライトキャッシュの障害発生を抑止すると共に、データ損失のリスクを低減することができる。
【0102】
<第2の実施形態>
次に、上述した本発明の第1の実施形態に係るキャッシュ制御装置1を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【0103】
本発明の第2の実施形態におけるキャッシュ制御装置1について、図2乃至図5を参照して説明する。
【0104】
図4は、本発明の第2の実施形態におけるキャッシュ制御装置1を含むストレージ装置20の構成を示すブロック図である。
【0105】
図4において、ストレージ装置20は、SSDキャッシュ21、1つ以上のHDD22及びキャッシュ制御装置1を有する。また、SSDキャッシュ21は、SSD23及びSSD24により構成される。キャッシュ制御装置1は、監視部2及び制御部3を備える。
【0106】
HDD22は、第1の実施形態において説明した記憶装置12に相当する。また、SSD23は、第1の実施形態において説明した記憶装置13に相当する。SSD24は、第1の実施形態において説明した記憶装置14に相当する。
【0107】
次に、以下の説明において、より具体的に、本実施形態におけるキャッシュ制御装置1が行うSSD23において処理を継続可能な障害が発生した際の動作について、図2乃至図5を参照して説明する。
【0108】
図5は、本発明の第2の実施形態におけるキャッシュ制御装置1を含むストレージ装置20のSSD23において、障害が発生した態様を概念的に例示する図である。
【0109】
図5に示すストレージ装置20の構成は、図4に示すストレージ装置20の構成と同様である。そのため、詳細な説明は、省略する。
【0110】
以下の説明では、説明の便宜上、一例として、SSD23は、ライトキャッシュとして機能することとする。また、SSD24は、リードキャッシュとして機能することとする。
【0111】
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、前述した構成にはこれに限定されない(以下の実施形態においても同様)。
【0112】
まず、以下の説明では、監視部2による監視処理について、図2を参照して説明する。
【0113】
監視部2は、SSD23において、障害が発生したと判別する(ステップS1おいて「YES」)。監視部2は、エラー情報102に含まれる第1のエラーポイントの値をインクリメントするよう制御する(ステップS2)。
【0114】
次に、以下の説明では、制御部3による一連の処理について、図3A及び図3Bを参照して説明する。
【0115】
制御部3は、現在の時刻が監視時刻を経過したと判別する(ステップS11において「YES」)。制御部3は、監視情報101に含まれる監視時刻とインターバル情報とに基づき、次回の監視時刻を算出する。制御部3は、監視情報101に含まれる監視時刻を、算出した監視時刻に更新する(ステップS12)。制御部3は、エラー情報102に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、第1のポイント差分値を算出する。そして、制御部3は、エラー情報103に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、第2のポイント差分値を算出する(ステップS13)。制御部3は、エラー情報102に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報102に格納する。また、制御部3は、エラー情報103に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報103に格納する(ステップ(ステップS14)。
【0116】
制御部3は、ライトキャッシュとして動作するSSD23の第1のポイント差分値からSSD23と異なる他のSSD24の第2のポイント差分値を減算することによって、第3のポイント差分値を算出する(ステップS15)。
【0117】
次に、制御部3は、算出した第3のポイント差分値と、監視情報101に含まれるポイント差分閾値とを比較する。制御部3は、比較した結果、第3のポイント差分値がポイント差分閾値より大きくないと判別する(ステップS15において「NO」)。
【0118】
制御部3は、SSD23及びSSD24から寿命情報を取得する。また、制御部3は、ライトキャッシュとして動作するSSD23の寿命情報と、監視情報101に含まれる寿命閾値とを比較する。制御部3は、比較した結果、ライトキャッシュとして動作するSSD23の寿命情報が寿命閾値より小さいと判別する(ステップS16において「YES」)。
【0119】
制御部3は、SSD24の寿命情報からライトキャッシュとして動作するSSD23の寿命情報を減算することによって、寿命差分値を算出する。次に、制御部3は、算出した寿命差分値と、監視情報101に含まれる寿命差分閾値とを比較する。制御部3は、比較した結果、算出した寿命差分値が寿命差分閾値より大きいと判別する(ステップS17において「YES」)。
【0120】
制御部3は、ライトキャッシュとして動作するSSD23を、リードキャッシュに割り当てる。その一方で、制御部3は、リードキャッシュとして動作するSSD24を、ライトキャッシュに割り当てる(ステップS18)。
【0121】
尚、上述した本実施形態では、説明の便宜上、一例として、キャッシュ制御装置1は、2つの記憶装置(SSD23、SSD24)の優劣を判別した結果に応じて、スワップ処理を実行する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。キャッシュ制御装置1は、2つの記憶装置の優劣を判別した結果に応じて、その2つの記憶装置と異なる予備の記憶装置をライトキャッシュに割り当てる構成を採用してもよい。或いは、キャッシュ制御装置1は、複数の記憶装置の優劣を判別した結果に応じて、スワップ処理を実行する構成を採用してもよい。
【0122】
その場合に、制御部3は、複数の記憶装置のうち、最も障害が少なく、且つ寿命の長い記憶装置をライトキャッシュに割り当てることにより実現してもよい。
【0123】
このように本実施の形態に係るキャッシュ制御装置1によれば、第1の実施形態において説明した効果を享受できると共に、さらに、SSDキャッシュを備えたストレージ装置に適用して好適である。また、キャッシュ制御装置1によれば、さらに、データ損失のリスクを低減することができる。その理由は、以下に述べる通りである。
【0124】
即ち、キャッシュ制御装置1は、HDDよりI/O性能の優れたSSDを制御することができるからである。また、複数の記憶装置を備えたSSDキャッシュ21であっても、キャッシュ制御装置1は、複数の記憶装置の優劣を判別することができるからである。また、キャッシュ制御装置1は、優劣を判別した結果に応じて、複数の記憶装置のうち、より障害が少なく、且つ寿命の長い一方の記憶装置をライトキャッシュとして構成することができるからである。
【0125】
(ハードウェア構成例)
上述した実施形態において図面に示した各部は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。これらの各ソフトウェアモジュールは、専用のハードウェアによって実現してもよい。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定されうる。この場合のハードウェア環境の一例を、図6を参照して説明する。
【0126】
図6は、本発明の模範的な実施形態に係るキャッシュ制御装置を実行可能な情報処理装置300(コンピュータ)の構成を例示的に説明する図である。即ち、図6は、図1に示したキャッシュ制御装置1、或いは、図4に示したキャッシュ制御装置1、の全体または一部のキャッシュ制御装置を実現可能なサーバ等のコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【0127】
図6に示した情報処理装置300は、CPU301、ROM(リード_Only_Memory)302、RAM(Random_Access_Memory)303、ハードディスク304(記憶装置)、並びに外部装置との通信インタフェース(Interface:以降、「I/F」と称する)305、CD−ROM(Compact_Disc_リード_Only_Memory)等の記憶媒体307に格納されたデータを読み書き可能なリーダライタ308を備え、これらの構成がバス306(通信線)を介して接続された一般的なコンピュータである。
【0128】
そして、上述した実施形態を例に説明した本発明は、図6に示した情報処理装置300に対して、その説明において参照したブロック構成図(図1図4)或いはフローチャート(図2図3A図3B)の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのCPU301に読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ(RAM303)またはハードディスク304等の不揮発性の記憶デバイスに格納すれば良い。
【0129】
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種記憶媒体307を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが格納された記憶媒体によって構成されると捉えることができる。
【符号の説明】
【0130】
1 キャッシュ制御装置
2 監視部
3 制御部
10、20、210 ストレージ装置
11 キャッシュ
12、13、14 記憶装置
21 SSDキャッシュ
22、230 HDD
23、24、221、222 SSD
101 監視情報
102、103 エラー情報
200 ホストコンピュータ
220 SSDキャッシュ
300 情報処理装置
301 CPU
302 ROM
303 RAM
304 ハードディスク
305 通信インタフェース
306 バス
307 記憶媒体
308 リーダライタ
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9