IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ NECプラットフォームズ株式会社の特許一覧

特許7679984ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム
<>
  • 特許-ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム 図1
  • 特許-ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム 図2
  • 特許-ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム 図3
  • 特許-ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム 図4
  • 特許-ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-05-12
(45)【発行日】2025-05-20
(54)【発明の名称】ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20250513BHJP
   G06F 12/0866 20160101ALI20250513BHJP
   G06F 12/0868 20160101ALI20250513BHJP
   G06F 11/14 20060101ALI20250513BHJP
【FI】
G06F3/06 304Z
G06F3/06 301S
G06F3/06 302A
G06F12/0866 100
G06F12/0868 110
G06F11/14 602D
【請求項の数】 10
(21)【出願番号】P 2024026526
(22)【出願日】2024-02-26
【審査請求日】2024-02-26
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】北原 隆行
【審査官】豊田 真弓
(56)【参考文献】
【文献】国際公開第2014/192113(WO,A1)
【文献】国際公開第2015/136655(WO,A1)
【文献】特開2018-018193(JP,A)
【文献】特開2022-107364(JP,A)
【文献】特開平07-146822(JP,A)
【文献】特開2009-075759(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 12/0866
G06F 12/0868
G06F 11/14
(57)【特許請求の範囲】
【請求項1】
複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出するバックアップメモリ制御手段と、
前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するキャッシュ制御手段と、
を備える、ストレージシステム。
【請求項2】
前記バックアップメモリ制御手段は、前記不揮発メモリの容量と性能、および、電源供給が途切れた際に前記キャッシュメモリ上のデータを前記バックアップメモリに退避させるためのバッテリの稼働可能時間より、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量を求める、
請求項1に記載のストレージシステム。
【請求項3】
前記バックアップメモリ制御手段は、前記不揮発メモリの容量と、前記不揮発メモリの性能と前記バッテリの稼働可能時間とにより求められるデータ転送容量とのうちで小さい方の容量を、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量とする、
請求項2に記載のストレージシステム。
【請求項4】
前記バックアップメモリ制御手段は、前記故障した不揮発メモリにおける退避可能なデータ量をゼロとする、
請求項3に記載のストレージシステム。
【請求項5】
前記バックアップメモリ制御手段は、前記複数の不揮発メモリの各々における退避可能なデータ量の総和が前記キャッシュメモリの容量を下回る場合、前記キャッシュ制御手段が前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するようにさせる、
請求項4に記載のストレージシステム。
【請求項6】
前記バッテリのバッテリ稼働可能時間は、前記故障した不揮発メモリ以外の全ての不揮発メモリにおいて、データの退避のために可能な稼働時間とする、
請求項2に記載のストレージシステム。
【請求項7】
前記バックアップメモリ制御手段と前記キャッシュ制御手段はコントローラに含まれ、前記複数の不揮発メモリの各々が前記コントローラとのインタフェースを別々にする、
請求項1に記載のストレージシステム。
【請求項8】
前記バックアップメモリ制御手段は、前記複数の不揮発メモリにおいて、いずれかの不揮発メモリの故障を検知した際のほか、前記ストレージシステムを起動した際、前記不揮発メモリの交換の際、および/または、前記不揮発メモリが増減設された際においても、前記不揮発メモリで退避可能なデータ量を算出する、
請求項1から7のいずれか1項に記載のストレージシステム。
【請求項9】
複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出し、
前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する、
ストレージシステムによるキャッシュ制御方法。
【請求項10】
複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出し、
前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する、
ことをコンピュータに実行させる、ストレージシステムのためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラムに関する。
【背景技術】
【0002】
情報技術の発展により、取り扱う情報量が飛躍的に増大している。それに伴い、大容量・高密度なストレージシステムへのニーズが高まっている。このストレージシステムのデータの扱いについては、一般的にはファイルシステムによって管理される。データの書き込みについては、ディスクドライブへの書き込みが必要だが、性能確保を目的として、一時的な処理を行う場合は、ディスクドライブを含むストレージ内に設けられるキャッシュメモリを利用する。キャッシュメモリを利用する際に電源供給が途切れると、キャッシュメモリ上にあるデータは失われ得る。そのため、ストレージシステムにバッテリを搭載して不揮発メモリへの退避を実施することで、データの損失を防止することが一般的である。
【0003】
不揮発メモリは性能・容量・信頼性共に高いものは一般的に高額になるため、性能、容量、信頼性共に低い安価な不揮発メモリを複数組み合わせてバックアップ用メモリとして使うことがある。不揮発メモリの製品サイクルはストレージシステムと比較して短く、その後継品は、性能・容量が同じ製品が用意されない場合もある。そのため、性能、容量の異なる複数の不揮発メモリでバックアップメモリを構成することがある。
【0004】
例えば、特許文献1は、バックアップメモリへのデータの退避に関連して、バッテリの蓄電量に応じてキャッシュ容量を増減させる技術を開示する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2017-182522号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、バックアップメモリを構築する不揮発メモリのいずれかが故障した状態において、ストレージシステムへの電源供給が途切れた際、バックアップメモリの容量不足、あるいはバックアップ時間が長くなることによるバッテリ容量不足で、キャッシュメモリに格納されている全てのデータをバックアップメモリに退避できなくなることがある。そため、故障した不揮発メモリを交換するまでの間、ストレージシステムとして脆弱な状態となる。
【0007】
特許文献1は、バッテリの蓄電量に応じたキャッシュ容量を増減させるものの、不揮発メモリが故障した場合のキャッシュ上のデータのバックアップについて考慮されていない。
【0008】
本開示の目的は、上述の課題を解決するストレージシステム、ストレージシステムにおけるキャッシュ制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
本開示の一態様に係るストレージシステムは、複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出するバックアップメモリ制御手段と、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するキャッシュ制御手段と、を備える。
【0010】
本開示の一態様に係るストレージシステムにおけるキャッシュ制御方法は、複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出し、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する、ことを行う。
【0011】
本開示の一態様に係るストレージシステムのためのプログラムは、複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出し、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する、ことをコンピュータに実行させる。
【発明の効果】
【0012】
上記一態様によれば、バックアップメモリを構成する不揮発メモリの一部または複数が故障した場合においても、ストレージシステムとしての脆弱性を解消しつつ、キャッシュデータのバックアップを可能とする。
【図面の簡単な説明】
【0013】
図1】本開示の一実施形態におけるストレージシステムの構成を示す図である。
図2】各不揮発メモリの容量、性能に関する値を含めたストレージシステムの構成を示す図である。
図3】バックアップメモリ制御部によるキャッシュ容量の計算のフローを示す図である。
図4】本開示の一実施形態によるストレージシステムの構成例を示す図である。
図5】ストレージシステムのコントローラにおけるハードウェアの構成の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本開示に係る一実施形態について、図面を用いて説明する。なお、すべての図面において同一または相当する構成には同一の符号を付し、共通する説明は省略する。
【0015】
図1は、本開示の一実施形態におけるストレージシステムの構成を示す図である。ストレージシステム(100)は、ディスクドライブ(110)と、バックアップメモリ(120)と、コントローラ(140)と、キャッシュメモリ(150)と、バッテリ(160)と、を備える。また、ストレージシステム(100)には、ネットワーク等を介して、ストレージシステム(100)へのデータの読み書きをリクエストする1つまたは複数のホスト(170)が接続される。
【0016】
ディスクドライブ(110)は、ホスト(170)からの書き込み・読み込みデータを保存する。なお、ディスクドライブ(110)は、データの保全性の観点から複数のディスクドライブ(110)により構成される。キャッシュメモリ(150)は、処理速度向上のために設けられ、ホスト(170)からの書き込みリクエストを受信すると一時的に当該データを蓄える。バックアップメモリ(120)は、ストレージシステム(100)への停電時にキャッシュメモリ(150)上のデータを退避するためのメモリである。コントローラ(140)は、ディスクドライブ(110)と、バックアップメモリ(120)と、キャッシュメモリ(150)とを制御し、データの読み書きや、ストレージシステム(100)への停電時の処理を行う。バッテリ(160)は、ストレージシステム(100)に対する停電時に、キャッシュメモリ(150)上のデータをバックアップメモリ(120)に退避するための電力を供給する。
【0017】
ディスクドライブ(110)は、ハードディスクドライブのほか、SSD(Solid State Drive)、LTO(Linear Tape-Open)ドライブ等の大容量記憶装置である。
【0018】
バックアップメモリ(120)は、複数の不揮発メモリ(121,122,123)より構成される。この不揮発メモリ(121,122,123)は、性能や容量が同一の不揮発メモリから構成される場合や、性能や容量が異なる不揮発メモリから構成される場合がある。図1では、バックアップメモリ(120)が3つの不揮発メモリ(121,122,123)から構成される例を示しているが、これに限定されるものではなく、2つ以上の複数の不揮発メモリから構成されるものとする。
【0019】
コントローラ(140)は、キャッシュ制御部(141)と、バックアップメモリ制御部(142)とを備える。キャッシュ制御部(141)は、ホスト(170)からの書き込みリクエストに応答して、受信データを一時的にキャッシュメモリ(150)に蓄積したり、キャッシュメモリ(150)に蓄積したデータをディスクドライブ(110)に保存したりするための制御を行う。バックアップメモリ制御部(142)は、バックアップメモリ(120)を構成する不揮発メモリ(121,122,123)の状態を監視するとともに、不揮発メモリが故障した場合等において、再構築したバックアップメモリ(120)の容量を最適に計算し、キャッシュ制御部(141)に計算した容量を通知する処理を行う。
【0020】
なお、不揮発メモリ(121,122,123)は並列動作可能となるよう、コントローラ(140)とのインタフェースはそれぞれ個別に構成される。そして、バックアップメモリ制御部(142)は、そのインタフェースを介して、個別に不揮発メモリ(121,122,123)に対して状態の監視のための通信等が可能とする。
【0021】
次に、図1に示すストレージシステム(100)において、いずれかの不揮発メモリが故障した際のストレージシステム(100)の動作概要について説明する。ここでは不揮発メモリ(121)が故障した場合を例にして説明する。
【0022】
ストレージシステム(100)において、バックアップメモリ(120)中の不揮発メモリ(121)が故障すると、バックアップメモリ制御部(142)は不揮発メモリ(121)の故障を検知する。バックアップメモリ制御部(142)は、バックアップメモリ(120)において故障していない不揮発メモリ(122、123)の容量、性能、及び、バッテリ(160)の電力容量から、バックアップメモリ(120)にてバックアップ可能なキャッシュ容量を計算し、キャッシュ制御部(141)に通知する。
【0023】
バックアップメモリ制御部(142)から新しいキャッシュ容量の通知を受けたキャッシュ制御部(141)は、キャッシュメモリ(150)からデータを読み出してディスクドライブ(110)へ書き込むことで、キャッシュメモリ(150)に書き込まれているデータ量を通知された新しいキャッシュ容量以下になるまで低下させる。また、キャッシュ制御部(141)は、キャッシュメモリ(150)の書き込み量が新しいキャッシュ容量以下になった後、キャッシュメモリ(150)への書き込み量を調整し、新しいキャッシュ容量を超えないよう制御する。このようにキャッシュメモリ(150)に格納する量をバックアップメモリ(120)の状態に応じて制御することで、バックアップメモリ(120)を構成する不揮発メモリが故障した場合でもストレージシステム(100)の堅牢製を維持しつつ、ストレージシステム(100) への電源供給が途切れた際におけるキャッシュメモリ(150)上のデータのバックアップを可能とする。
【0024】
また、故障した不揮発メモリが修理交換されて元の容量に戻った場合、バックアップメモリ制御部(142)は、修理交換された不揮発メモリを含めて、利用可能な不揮発メモリの容量、性能、及びバッテリ(160)の電力容量からバックアップメモリ(120)でバックアップ可能なキャッシュ容量を計算し、再度キュッシュ容量が変わったことをキャッシュ制御部(141)に通知する。キャッシュ制御部(141)は、前述と同様の処理により、再度通知された新たなキュッシュ容量を上限としてキャッシュメモリ(150)への書き込み量を制御する。
【0025】
次に、バックアップメモリ(120)を構成する不揮発メモリについて、それら容量、性能について具体例を示しつつ、キャッシュメモリ(150)でバックアップ可能なキャッシュ容量を計算する際の動作概要について説明する。図2は、不揮発メモリについて、それらの容量、性能に関する値を含めたストレージシステム(200)の構成を示す図である。図2のストレージシステム(200)、ディスクドライブ(210)、バックアップメモリ(220)、不揮発メモリ(221,222,223)、コントローラ(240)、キャッシュ制御部(241)、バックアップメモリ制御部(242)、キャッシュメモリ(250)、バッテリ(260)、ホスト(270)は、図1のストレージシステム(100)、ディスクドライブ(110)、バックアップメモリ(120)、不揮発メモリ(121,122,123)、コントローラ(140)、キャッシュ制御部(141)、バックアップメモリ制御部(142)、キャッシュメモリ(150)、バッテリ(160)、ホスト(170)にそれぞれ対応する。
【0026】
図2では、バックアップメモリ(220)は、不揮発メモリ(221)が容量200GB/スループット10[GB/s]、不揮発メモリ(222,223)が容量120GB/スループット20[GB/s]で構成される例を示している。すなわち、不揮発メモリ(222,223)が同容量/同性能を備え、不揮発メモリ(221)が不揮発メモリ(222,223)と異なる容量/異なる性能を備えた例を示している。なお、不揮発メモリの性能として不揮発メモリへの書き込み速度であるスループットが用いられる。また、キャッシュメモリ(250)の容量が300GBである例としている。
【0027】
上記のようなストレージシステム(200)の構成において、はじめにバックアップメモリ(220)を構成する不揮発メモリ(221)が故障した場合を例にした、バックアップメモリ(220) )へ格納できるデータ量の計算例を説明する。
【0028】
バックアップメモリ制御部(242)が不揮発メモリ(221)の故障を検知すると、バックアップメモリ制御部(242)は、バックアップメモリ(220) へ格納できるデータ量の計算を開始する。図2の例では、使用可能な不揮発メモリは、不揮発メモリ(222)と不揮発メモリ(223)とになる。ここで、バッテリ(260)がキャッシュメモリ(250)上のデータを2つの不揮発メモリ(222、223)に退避する際に供給可能な電力量として、10秒分の電力を蓄えているものとする。
【0029】
バックアップメモリ制御部(242)は、利用可能な不揮発メモリ(222)が格納可能な容量の上限を算出する。そのために、バックアップメモリ制御部(242)は、バッテリ駆動時間の10秒間で転送可能なデータ容量 200GB(=20[GB/s]x10[s])を算出する。また、バックアップメモリ制御部(242)は、不揮発メモリ(222)の容量上限の120GB とバッテリ駆動時間の10秒間で転送可能なデータ容量 200GB との比較の結果、不揮発メモリ(222)において120GBが格納可能と算出する。
【0030】
不揮発メモリ(222)と不揮発メモリ(223)とは同容量/同性能であることから、バックアップメモリ制御部(242)は、同様に不揮発メモリ(223)においても120GBが格納可能と計算する。バックアップメモリ制御部(242)は、不揮発メモリ(222,223)で構成された場合のバックアップメモリ(220)の格納可能容量を240GB(=120GB+120GB)と算出する。バックアップメモリ制御部(242)は、この計算結果である新たなキャッシュ容量240GBをキャッシュ制御部(241)に通知する。キャッシュ制御部(241)はキャッシュメモリ(250)への書き込みを、キャッシュメモリ(250)の容量300GB以下となる新たなキャッシュ容量240GBを上限として制限する。
【0031】
また、別の例として、不揮発メモリ(222)が故障した場合について説明する。この例でも、バッテリ(260)がキャッシュメモリ(250)上のデータを2つの不揮発メモリ(221、223)に退避する際に供給可能な電力量として、10秒分の電力を蓄えているものとする。バックアップメモリ制御部(242)は、利用可能な不揮発メモリ(221)につて、その容量として200GB格納可能だが、バッテリ(260)からの電力供給時間10秒間に転送できるデータ量は不揮発メモリ(221)のスループットより100GB(=10[GB/s]x10[s])が格納可能容量とする。また、バックアップメモリ制御部(242)は、他の利用可能な不揮発メモリ(223)について、データ転送量として200GB(=20[GB/s]x10[s])可能だが、不揮発メモリ(223)の容量の上限である120GBが格納可能容量とする。そして、バックアップメモリ制御部(242)は、不揮発メモリ(221,223)で構成された場合のバックアップメモリ(220)の格納可能容量を220GB(=100GB+120GB)と算出する。バックアップメモリ制御部(242)は、この計算結果である新たなキャッシュ容量をキャッシュ制御部(241)に通知する。キャッシュ制御部(241)はキャッシュメモリ(250)への書き込みを、キャッシュメモリ(250)の容量300GB以下となる新たなキャッシュ容量220GBを上限として制限する。
【0032】
図3は、バックアップメモリ制御部(242)によるバックアップメモリ(220)におけるキャッシュ容量の計算のフローを示す図である。図2図3を用いて、バックアップメモリ制御部(242)によるバックアップメモリ(220)におけるキャッシュ容量の計算のフローを説明する。
【0033】
以下では、バックアップメモリがn個の不揮発メモリで構成されていた場合のキャッシュ容量の計算方法とする。ここで、不揮発メモリ(i)は、“i”個目(i:1からnの整数)とし、ステップS12の開始前に、変数“i”に対して初期値“1”が設定されるものとする。また、下記のパラメータを用いて、バックアップメモリ制御部(242)の動作説明を行う。
【0034】
C:キャッシュメモリのキャッシュ容量
B:バッテリのバッテリ駆動可能時間
Ci:不揮発メモリ(i)の容量
Pi:不揮発メモリ(i)のスループット
CPi:不揮発メモリ(i)がバッテリ稼働時間(B)内にセーブできる容量
SVi:不揮発メモリ(i)がバッテリの電力で動作できる時間でセーブ可能な容量
Cbup:不揮発メモリが故障した場合、故障不揮発メモリを除いたバックアップメモリがセーブ可能な容量
【0035】
はじめに、バックアップメモリ制御部(242)は、不揮発メモリ毎に個別に設けられるインタフェースを介した不揮発メモリの有無の確認の処理等から、バックアップメモリ(220)に実装される不揮発メモリの個数nを確認する(S11)。
【0036】
続いて、バックアップメモリ制御部(242)は、不揮発メモリ(i)とのインタフェースを介して、不揮発メモリ(i)の状態確認を行う(S12)。状態確認の結果が“故障状態”の場合、不揮発メモリ(i)にはデータの退避ができないことから、不揮発メモリ(i)でセーブ可能な容量SVi =0、とする(S13)。
【0037】
状態確認の結果が“正常状態”の場合、バックアップメモリ制御部(242)は、不揮発メモリ(i)について、不揮発メモリ(i)の記憶容量Ciと、性能となるスループットPiに関する情報を取得する(S14)。バックアップメモリ制御部(242)は、取得した不揮発メモリ(i)のスループットPiより、不揮発メモリ(i)がバッテリ稼働時間(B)内にセーブできる容量CPi=PixB、を計算する(S15)。続いて、バックアップメモリ制御部(242)は、容量CPiと記憶容量Ciとを比較し、小さいほうを不揮発メモリ(i)がバッテリの電力で動作できる時間にセーブ可能な容量SVi = min(CPi, Ci)として記録する(S16)。
【0038】
バックアップメモリ制御部(242)は、変数“i”が不揮発メモリの個数nに一致するか判断する(S17)。一致しない場合(S17:No)、バックアップメモリ制御部(242)は、変数“i”をインクリメントして、次の不揮発メモリに関する処理のため(S12)に処理を移す。
【0039】
一致する場合(S17:Yes)、バックアップメモリ制御部(242)は、バックアップメモリ(220)がバッテリの電力で動作できる時間にセーブ可能な容量Cbupについて、SV1からSVnを合算する(Cbup= ΣSVi)ことにより求める(S18)。
【0040】
バックアップメモリ制御部(242)は、容量Cbupがキャッシュメモリのキャッシュ容量Cより小さい場合、新しいキャッシュ容量として容量Cbupをキャッシュ制御部(241)に対して通知する(S19)。
【0041】
以上のようにして、バックアップメモリ制御部(242)は、バックアップメモリ(220)におけるキャッシュ容量の計算を行う。なお、図3に示すキャッシュ容量を計算する時のフローは、不揮発メモリの故障を検出した時のほか、ストレージシステムを起動した時、不揮発メモリが交換された時、及び/または、不揮発メモリが増減設された時にも実行される。
【0042】
以上、本開示で示すように、ストレージシステムは、バックアップメモリを構成する不揮発メモリの一部または複数が故障した場合においても、対停電時の堅牢性も維持しつつ、キャッシュデータのバックアップを可能とする。
【0043】
また、本開示で示す処理により、不揮発メモリが世代交代などで混在した場合においても、不揮発メモリ故障時に正常な不揮発メモリの余剰容量を活用することで、バックアップ可能なキャッシュ容量を可能な限り最大にすることができ、キャッシュ容量低下による性能低下を最小限に抑えることが可能となる。
【0044】
さらに、バックアップ用不揮発メモリが故障した場合、故障後に構成されるバックアップメモリの容量と性能に応じて、バックアップ元となるキャッシュメモリの容量を最適に制限することで、不揮発メモリが故障した場合においてもバックアップを可能とする。
【0045】
なお、通常、停電時に使用されるバッテリも設計上その蓄電容量について余裕をもって設計される。そのため、蓄電容量の余剰も考慮してバックアップ可能な容量を大きくとることが可能となる。
【0046】
図4は、本開示の一実施形態によるストレージシステム(100)の構成例を示す図である。ストレージシステム(100)は、キャッシュ制御手段(101)とバックアップメモリ制御手段(102)とを備える。バックアップメモリ制御手段(102)は、複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出する。キャッシュ制御手段(101)は、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する。
【0047】
図5は、ストレージシステム(100)における、コントローラ(140)におけるハードウェアの構成の一例を示すブロック図である。ここで、コントローラ(140)のハードウェア構成として、CPU(11)、RAM(Random Access Memory)(12)、ROM(Read Only Memory)(13)、記録装置(14)等が備えられる。ここで、ROM(13) および記録装置(14)には、コントローラ(140)の機能を実現するプログラムや情報が記録される。RAM(12)は、CPU(11)等が稼働中に用いるデータ等を一時的に記憶する作業領域等として利用される。また、コントローラ(140)は、ディスクドライブ(110)、バックアップメモリ(120)、キャッシュメモリ(150)等とのインタフェースとなる入出力スポート(15)を備える。入出力スポート(15)は、ホスト(170)との通信接続のための通信ポートとしての機能も含む。なお、ROM(13)はEEPROM(Electrically Erasable Programmable Read-Only Memory)等で構成され、また、記録装置(14)はハードディスク、SSD等で構成され、コントローラ(140)の機能を実現するためのコンピュータプログラムをROM(13)や記録装置(14)にて更新できるようにしてもよい。
【0048】
以上、実施形態を参照して本開示を説明したが、本開示は上述の実施形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。そして、各実施の形態は、適宜他の実施の形態と組み合わせることができる。
【0049】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限らない。
【0050】
(付記1)
複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出するバックアップメモリ制御手段と、
前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するキャッシュ制御手段と、
を備える、ストレージシステム。
【0051】
(付記2)
前記バックアップメモリ制御手段は、前記不揮発メモリの容量と性能、および、電源供給が途切れた際に前記キャッシュメモリ上のデータを前記バックアップメモリに退避させるためのバッテリの稼働可能時間より、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量を求める、
付記1に記載のストレージシステム。
【0052】
(付記3)
前記バックアップメモリ制御手段は、前記不揮発メモリの容量と、前記不揮発メモリの性能と前記バッテリの稼働可能時間とにより求められるデータ転送容量とのうちで小さい方の容量を、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量とする、
付記2に記載のストレージシステム。
【0053】
(付記4)
前記バックアップメモリ制御手段は、前記故障した不揮発メモリにおける退避可能なデータ量をゼロとする、
付記3に記載のストレージシステム。
【0054】
(付記5)
前記バックアップメモリ制御手段は、前記複数の不揮発メモリの各々における退避可能なデータ量の総和が前記キャッシュメモリの容量を下回る場合、前記キャッシュ制御手段が前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するようにさせる、
付記4に記載のストレージシステム。
【0055】
(付記6)
前記バッテリのバッテリ稼働可能時間は、前記故障した不揮発メモリ以外の全ての不揮発メモリにおいて、データの退避のために可能な稼働時間とする、
付記2から付記5のいずれかに記載のストレージシステム。
【0056】
(付記7)
前記バックアップメモリ制御手段と前記キャッシュ制御手段はコントローラに含まれ、前記複数の不揮発メモリの各々が前記コントローラとのインタフェースを別々にする、
付記1から付記6のいずれかに記載のストレージシステム。
【0057】
(付記8)
前記バックアップメモリ制御手段は、前記複数の不揮発メモリにおいて、いずれかの不揮発メモリの故障を検知した際のほか、前記ストレージシステムを起動した際、前記不揮発メモリの交換の際、および/または、前記不揮発メモリが増減設された際においても、前記不揮発メモリで退避可能なデータ量を算出する、
付記1から付記7のいずれかに記載のストレージシステム。
【0058】
(付記11)
複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出し、
前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する、
ストレージシステムにおけるキャッシュ制御方法。
【0059】
(付記12)
前記不揮発メモリの容量と性能、および、電源供給が途切れた際に前記キャッシュメモリ上のデータを前記バックアップメモリに退避させるためのバッテリの稼働可能時間より、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量を求める、
付記11に記載のストレージシステムにおけるキャッシュ制御方法。
【0060】
(付記13)
前記不揮発メモリの容量と、前記不揮発メモリの性能と前記バッテリの稼働可能時間とにより求められるデータ転送容量とのうちで小さい方の容量を、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量とする、
付記12に記載のストレージシステムにおけるキャッシュ制御方法。
【0061】
(付記14)
前記故障した不揮発メモリにおける退避可能なデータ量をゼロとする、
付記13に記載のストレージシステムにおけるキャッシュ制御方法。
【0062】
(付記15)
前記複数の不揮発メモリの各々における退避可能なデータ量の総和が前記キャッシュメモリの容量を下回る場合、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するようにさせる、
付記14に記載のストレージシステムにおけるキャッシュ制御方法。
【0063】
(付記16)
前記バッテリのバッテリ稼働可能時間は、前記故障した不揮発メモリ以外の全ての不揮発メモリにおいて、データの退避のために可能な稼働時間とする、
付記12から付記15のいずれかに記載のストレージシステムにおけるキャッシュ制御方法。
【0064】
(付記17)
ストレージシステムがコントローラを含み、前記複数の不揮発メモリの各々が前記コントローラとのインタフェースを別々にする、
付記11から付記16のいずれかに記載のストレージシステムにおけるキャッシュ制御方法。
【0065】
(付記18)
前記複数の不揮発メモリにおいて、いずれかの不揮発メモリの故障を検知した際のほか、前記ストレージシステムを起動した際、前記不揮発メモリの交換の際、および/または、前記不揮発メモリが増減設された際においても、前記不揮発メモリで退避可能なデータ量を算出する、
付記11から付記17のいずれかに記載のストレージシステムにおけるキャッシュ制御方法。
【0066】
(付記21)
複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出し、
前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する、
ことをコンピュータに実行させる、ストレージシステムのためのプログラム。
【0067】
(付記22)
前記不揮発メモリの容量と性能、および、電源供給が途切れた際に前記キャッシュメモリ上のデータを前記バックアップメモリに退避させるためのバッテリの稼働可能時間より、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量を求める、
ことをコンピュータに実行させる、付記21に記載のプログラム。
【0068】
(付記23)
前記不揮発メモリの容量と、前記不揮発メモリの性能と前記バッテリの稼働可能時間とにより求められるデータ転送容量とのうちで小さい方の容量を、前記故障した不揮発メモリ以外の不揮発メモリの各々における退避可能なデータ量とする、
ことをコンピュータに実行させる、付記22に記載のプログラム。
【0069】
(付記24)
前記故障した不揮発メモリにおける退避可能なデータ量をゼロとする、
ことをコンピュータに実行させる、付記23に記載のプログラム。
【0070】
(付記25)
前記複数の不揮発メモリの各々における退避可能なデータ量の総和が前記キャッシュメモリの容量を下回る場合、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御するようにさせる、
ことをコンピュータに実行させる、付記24に記載のプログラム。
【0071】
(付記26)
前記バッテリのバッテリ稼働可能時間は、前記故障した不揮発メモリ以外の全ての不揮発メモリにおいて、データの退避のために可能な稼働時間とする、
付記22から付記25のいずれかに記載のプログラム。
【0072】
(付記27)
ストレージシステムがコントローラを含み、前記複数の不揮発メモリの各々が前記コントローラとのインタフェースを別々にする、
付記21から付記26のいずれかに記載のプログラム。
【0073】
(付記28)
前記複数の不揮発メモリにおいて、いずれかの不揮発メモリの故障を検知した際のほか、前記ストレージシステムを起動した際、前記不揮発メモリの交換の際、および/または、前記不揮発メモリが増減設された際においても、前記不揮発メモリで退避可能なデータ量を算出する、
ことをコンピュータに実行させる、付記21から付記27のいずれかに記載のプログラム。
【符号の説明】
【0074】
100 ストレージシステム
110 ディスクドライブ
120 バックアップメモリ
121,122,123 不揮発メモリ
140 コントローラ
141 キャッシュ制御部
142 バックアップメモリ制御部
150 キャッシュメモリ
160 バッテリ
170 ホスト
【要約】
【課題】バックアップメモリを構成する不揮発メモリの一部または複数が故障した場合においても、ストレージシステムとしての脆弱性を解消しつつ、キャッシュデータのバックアップを可能とするストレージシステムを提供する。
【解決手段】ストレージシステムは、キャッシュ制御部とバックアップメモリ制御部とを備える。バックアップメモリ制御部は、複数の不揮発メモリより構成されるバックアップメモリにて故障した不揮発メモリがある場合、前記故障した不揮発メモリ以外の不揮発メモリにおいて、キャッシュメモリから退避可能なデータ量を算出する。キャッシュ制御部は、前記算出されたデータ量を上限として前記キャッシュメモリへの書き込み量を制御する。
【選択図】図1
図1
図2
図3
図4
図5