(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-04-08
(45)【発行日】2025-04-16
(54)【発明の名称】ストレージシステム、ストレージシステムにおけるバッテリリフレッシュ方法及びプログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20250409BHJP
G06F 1/26 20060101ALI20250409BHJP
H02J 7/02 20160101ALI20250409BHJP
【FI】
G06F3/06 304Z
G06F1/26
H02J7/02 E
(21)【出願番号】P 2024032163
(22)【出願日】2024-03-04
【審査請求日】2024-03-04
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】沼守 久博
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2012-075866(JP,A)
【文献】特開平7-241041(JP,A)
【文献】特開2008-072883(JP,A)
【文献】米国特許出願公開第2006/0012338(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 1/26
H02J 7/02
(57)【特許請求の範囲】
【請求項1】
バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、
前記複数のストレージの制御を行うストレージシステム監視部と、を備え、
前記ストレージ制御部は、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、
前記ストレージシステム監視部は、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、
前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部は、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、
ストレージシステム。
【請求項2】
前記ストレージには、2つ以上の前記コントローラが備えられ、
前記ストレージシステム監視部は、同じストレージ内の複数の前記コントローラからのストレージリフレッシュ要求を検知すると、バッテリリフレッシュ要求を行った同じストレージ内の複数の前記コントローラが同時にバッテリリフレッシュを行わないようにバッテリリフレッシュのスケジューリングを行う、
請求項1に記載のストレージシステム。
【請求項3】
前記コントローラは、該コントローラ内の前記バッテリの残量を制御するバッテリ制御部をさらに備え、
前記バッテリリフレッシュ要求を通知した前記ストレージ制御部は、該ストレージ制御部の含まれる前記コントローラ内の前記キャッシュメモリ上にあるデータ量が減少するのに合わせて、前記不揮発領域にデータを退避するのに必要な電力量を計算して、前記バッテリ制御部に通知し、
前記バッテリ制御部は、通知された電力量まで前記バッテリから放電されるように制御した後、前記バッテリに対するバッテリリフレッシュを行う、
請求項1に記載のストレージシステム。
【請求項4】
前記ストレージシステム監視部は、前記負荷を分散させる途中で負荷が所定値以上となった際、負荷分散を中止する、
請求項1に記載のストレージシステム。
【請求項5】
前記コントローラは、複数のキャッシュメモリを備え、
前記バッテリリフレッシュ要求をした前記ストレージ制御部は、バッテリリフレッシュの過程で前記データを保存しないキャッシュメモリへの給電を止める制御をさらに行う、
請求項1に記載のストレージシステム。
【請求項6】
前記ストレージシステム監視部は、ストレージシステムにおける過去の負荷状況に基づき、前記複数のストレージへのデータ処理に関する負荷の分散についての複数のスケジュールを求め、前記複数のスケジュールのうち、ユーザにより選択されたスケジュールに基づき、前記負荷の分散を行う、
請求項1に記載のストレージシステム。
【請求項7】
前記ストレージシステム監視部は、前記バッテリリフレッシュ要求をした前記ストレージ制御部からのバッテリリフレッシュ完了の通知に応答して、前記負荷の分散を終了する、
請求項1に記載のストレージシステム。
【請求項8】
前記バッテリ制御部は、該バッテリ制御部が含まれる前記コントローラの前記バッテリにおける充電回数が所定回数以上になると、前記バッテリリフレッシュ要求の通知を行う、
請求項3に記載のストレージシステム。
【請求項9】
バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、
前記複数のストレージの制御を行うストレージシステム監視部と、を備えたストレージシステムに適用され、
前記ストレージ制御部によって、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、
前記ストレージシステム監視部によって、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、
前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部によって、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、
ストレージシステムにおけるバッテリリフレッシュ方法。
【請求項10】
バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、
前記複数のストレージの制御を行うストレージシステム監視部と、を備えたストレージシステムのためのコンピュータに、
前記ストレージ制御部によって、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、
前記ストレージシステム監視部によって、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、
前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部によって、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、
ことを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ストレージシステム、ストレージシステムにおけるバッテリリフレッシュ方法及びプログラムに関する。
【背景技術】
【0002】
情報技術の発展により、取り扱う情報量が飛躍的に増大している。それに伴い、大容量・高密度なストレージシステムへのニーズが高まっている。このストレージシステムのデータの扱いについては、一般的にはファイルシステムによって管理される。データの書き込みについては、ディスクドライブへの書き込みが必要だが、性能確保を目的として、一時的な処理を行う場合は、ディスクドライブを含むストレージ内に設けられるキャッシュメモリを利用する。キャッシュメモリを利用する際に電源供給が途切れると、キャッシュメモリ上にあるデータは失われる可能性がある。そのため、バッテリを搭載して不揮発メモリへの退避を実施することで、データの損失を防止することが一般的である。また、ストレージシステムは使用環境により24時間365日稼働続ける状態で常にキャッシュメモリ上にあるデータを保持する必要があるため、バッテリ容量は高い水準で保持される。
【0003】
しかし、バッテリを電力源とする装置において、浅い充放電の繰り返しにより発生するメモリ効果により、バッテリの駆動時間低下という現象が発生する。そのため、メモリ効果よるバッテリの容量の低下を防止するために、一般的にバッテリリフレッシュと呼ばれる、バッテリ内部に蓄積された余分な電荷を放出することによって、バッテリの正常な動作を回復することが望まれている。
【0004】
例えば、特許文献1には、バッテリリフレッシュが必要と判断し、判断した場合に自動でバッテリリフレッシュを実施する技術が開示される。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1は、バッテリリフレッシュを自動で実施する技術を開示する。しかし、特許文献1に開示の技術では、ストレージシステムが含むストレージ内のバッテリリフレッシュ中に給電断が発生したときに保持するデータがない、あるいは、バッテリリフレッシュ中のストレージに対するデータを停止する、または、データの保持性を下げデータロストのリスクを負って実施する、といった必要がる。
【0007】
また、バッテリリフレッシュするためには完全に放電する必要がある。そのため、大容量なバッテリを使用しているストレージにおいてはバッテリの容量が高い水準で保持されているため、放電に時間がかかってしまう。そのため、常に稼働が求められるストレージシステムのような装置では、データの損失を防止するという観点からもバッテリリフレッシュをすることが困難であった。
【0008】
本開示の目的は、上述の課題を解決するストレージシステム、ストレージシステムにおけるバッテリリフレッシュ方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
本開示の一態様に係るストレージシステムは、バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、前記複数のストレージの制御を行うストレージシステム監視部と、を備え、前記ストレージ制御部は、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、前記ストレージシステム監視部は、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部は、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる。
【0010】
本開示の一態様に係るストレージシステムにおけるバッテリリフレッシュ方法は、バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、前記複数のストレージの制御を行うストレージシステム監視部と、を備えたストレージシステムに適用され、前記ストレージ制御部によって、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、前記ストレージシステム監視部によって、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部によって、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる。
【0011】
本開示の一態様に係るプログラムは、バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、前記複数のストレージの制御を行うストレージシステム監視部と、を備えたストレージシステムのためのコンピュータに、前記ストレージ制御部によって、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、前記ストレージシステム監視部によって、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部によって、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、ことを実行させる。
【発明の効果】
【0012】
上記一態様によれば、ストレージシステムにおいて、データの保全性が高い状態で、バッテリリフレッシュの実施が行えるようになる。
【図面の簡単な説明】
【0013】
【
図1】本開示の一実施形態によるストレージシステムの構成を示すブロック図である。
【
図2】ストレージシステムのバッテリリフレッシュ時の動作を示す図である。
【
図3】ストレージシステムのバッテリリフレッシュ時の動作を示す図である。
【
図4】本開示の一実施形態によるストレージシステムの構成例を示す図である。
【
図5】ストレージシステムにおける、ストレージ制御部、バッテリ制御やストレージシステム監視部におけるハードウェアの構成の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、各実施形態について、図面を用いて説明する。すべての図面において同一または相当する構成には同一の符号を付し、共通する説明は省略する。
【0015】
図1は、本開示の一実施形態によるストレージシステム(100)の構成を示すブロック図である。ストレージシステム(100)は、冗長構成をもつ複数のストレージ(110,130,131)と、ストレージシステム監視部(140)とを備える。複数のストレージ(110,130,131)とストレージシステム監視部(140)とは、ネットワークを介して接続される。
【0016】
各ストレージ(110,130,131)は、その内部にそれぞれ2つの記憶装置および2つのコントローラ(111,121;...)を保有することで、冗長構成としている。各コントローラ(111,121;...)の内部にはバッテリ(113,123;...)、キャッシュメモリ(115,125;...)、不揮発領域(116,126;...)が搭載され、それぞれがペアとなってデータ保全性を確保している。さらに、各コントローラ(111,121;...)の内部には、バッテリ制御部(112,122;...)、ストレージ制御部(114,124;...)が設けられる。
【0017】
ここで、キャッシュメモリ(115,125;...)は、書き込み速度等の性能確保を目的として、一時的にデータを蓄えるために用いられる。バッテリ(113,123;...)は、キャッシュメモリ(115,125;...)を利用する際に電源供給が途切れるような場合に備え、データの損失を防止するために、キャッシュメモリ(115,125;...)上にあるデータを不揮発領域(116,126;...)に退避するための電力を供給する。キャッシュメモリ(115,125;...)上のデータを不揮発領域(116,126;...)に退避させる間、バッテリ(113,123;...)は、最低限のデバイスのみを動作させるための電源を供給する。
【0018】
バッテリ制御部(112,122;...)は、バッテリ(113,123;...)の電力容量を監視するとともに、バッテリ(113,123;...)に対する充電および放電のための制御を行う。ストレージ制御部(114,124;...)は、トレージ制御部(114,124;...)が含まれるコントローラ(111,121;...)内のバッテリ(113,123;...)に対するバッテリリフレッシュのタイミングを管理するとともに、バッテリリフレッシュの実施を行わせる。さらに、ストレージ制御部(114,124;...)は、電源供給が途切れるような場合に、バッテリ(113,123;...)からの電力供給により、キャッシュメモリ(115,125;...)上にあるデータの保持、および、キャッシュメモリ(115,125;...)上にあるデータを不揮発領域(116,126;...)に退避するための処理も行う。
【0019】
キャッシュメモリ(115,125;...)としては、高速アクセスが可能なRAM(Random Access Memory)等により構成される。不揮発領域(116,126;...)は、EEPROM(Electrically Erasable Programmable Read-Only Memory)等により構成される。また、記憶装置としては、ディスクドライブ、SSD(Solid State Drive)、磁気テープドライブ等の大容量記憶装置により構成される。
【0020】
なお、
図1に示すストレージシステム(100)は、例として3つのストレージ(110,130,131)としているが、これに限定されるものではなく、2つ以上のストレージを備えるものであれば良い。
【0021】
次に、冗長構成をもつストレージを複数組み込んで構築するストレージシステム(100)の動作について説明する。
図2、
図3は、コントローラ内のバッテリのバッテリリフレッシュ時の動作を示す図である。ここでは、ストレージシステム(100)を構成するストレージ(110)において、そのコントローラ(111)内のバッテリ(113)のバッテリリフレッシュが必要になった場合を例にして説明する。そのため、コントローラ(111)内のバッテリ制御部(112)、ストレージ制御部(114)、および、ストレージシステム監視部(140)におけるバッテリリフレッシュに関する動作として、
図2、
図3を参照して説明する。なお、他のコントローラ内のバッテリ制御部、ストレージ制御部の動作も同様となる。
【0022】
図2に示すように、ストレージ(110)において、コントローラ(111) 内のバッテリ制御部(112)は、内部のバッテリ(113)の残量を所定タイミングごとに取得する(S1-1)とともに、充電状態か否かを判定する(S1-2)。充電していない場合(S1-2:No)、バッテリ制御部(112)は次のバッテリ残量チェックのために、(S1-1)に処理を移す。一方、充電していた場合(S1-2:Yes)、バッテリ制御部(112)は充電回数をチェックする(S1-3)。充電回数が所定回数を超えていない場合(S1-4:No)、バッテリ制御部(112)は次のバッテリ残量チェックのために、(S1-1)に処理を移す。一方、充電回数が所定回数を超えていた場合(S1-4:Yes)、バッテリ制御部(112)は、バッテリリフレッシュが必要と判断し、バッテリリフレッシュ要求フラグを立てる (S1-5)。
【0023】
ストレージ制御部(114)は、バッテリリフレッシュ要求フラグが立っているかを所定タイミングごとに確認する(S2-1)。フラグが立っていない場合(S2-1:No)、ストレージ制御部(114)は、次回のフラグチェックのために (S2-1)に処理を移す。フラグが立っている場合(S2-1:Yes)、ストレージ制御部(114)は、ストレージシステム(100)全体を監視するストレージシステム監視部(140)に、バッテリリフレッシュ要求とともに、バッテリリフレッシュ要求をしたコントローラを特定する情報を通知する(S2-2)。
【0024】
ストレージシステム監視部(140)は、バッテリリフレッシュ要求通知を受け取った段階で、ストレージシステム(100)全体に対する負荷状況から該当ストレージにおけるバッテリリフレッシュスケジュールを計画する(S3-1)。ここで、「負荷」とはストレージシステム(100)全体に対する書き込みデータ量、ないしは、そのための処理量のことを言う。
【0025】
ストレージシステム監視部(140)は、バッテリリフレッシュを実施するストレージ(110)から他のストレージ(130/131)へ負荷を分散させる(S3-2)。これにより、ストレージシステム監視部(140)は、バッテリリフレッシュを実施するストレージ(110)において電源供給断が発生したときに保存するべきキャッシュメモリ(115)上にあるデータの量を抑止する。なお、バッテリリフレッシュを行うストレージへの負荷を減らすということは、結果として、バッテリリフレッシュを行なわないストレージがバッテリリフレッシュを行うストレージが負うべき負荷も負うことになる。そのため、ストレージシステム監視部(140)は、ストレージシステム(100)全体の負荷に関するログを備え、過去の実績、特に近況の実績から、バッテリリフレッシュにより一部ストレージへの負荷を減らしても、他のストレージへの負荷が高負荷となり過ぎないような時間帯でバッテリリフレッシュスケジュールを計画する。また、バッテリのリフレッシュスケジュールの計画にあたり、ストレージシステム監視部(140)は、バッテリリフレッシュ中の供給電源が遮断されたときのシステムとしてのデータ維持性を確保するために、ストレージあたり1つのコントローラで実施させるように計画する。すなわち、同じストレージ内で両方のコントローラからバッテリリフレッシュ要求がきた場合、ストレージシステム監視部(140)は、バッテリリフレッシュが同時には実施されずに、1つのコントローラでのバッテリリフレッシュ完了後にもう1つのコントローラのバッテリリフレッシュを動作させるように計画する。
【0026】
以上のように、バッテリリフレッシュを実施するストレージ(110)から他のストレージ(130/131)へ負荷を分散させることで、バッテリリフレッシュを実施するストレージ(110)のキャッシュメモリ(115)上にあるデータを抑止する。キャッシュメモリ上にあるデータが少なければ、キャッシュメモリ(115)と対になる不揮発領域(116)へデータを書き込むために必要な時間を短くできる。結果として、電源供給が途切れたとしても、不揮発領域(116)へデータを退避するために確保しておくバッテリ容量が少なくて済むようになる。バッテリリフレッシュはバッテリの完全放電を実施する必要があるが、バッテリリフレッシュ中に電源供給が途切れた際のリスクを回避しつつ、バッテリリフレッシュを短時間で完了できるようになる。
【0027】
続いて、
図3に示すように、ストレージ制御部(114)は、キャッシュメモリ(115)上にあるデータ量を確認し、データ量が一定割合減少するたび、データ量に合わせ、データを不揮発領域(116)に保存するために必要なバッテリ残量を計算する(S2-3)。ここで、「必要なバッテリ残量」とは、電源供給が途切れた際に、コントローラ(111)において、キャッシュメモリ(115)上のデータを不揮発領域(116)に退避するために必要なバッテリ(113)のバッテリ容量となる。ストレージ制御部(114)は、求めたバッテリ残量をバッテリ制御部(112)に通知する(S2-4)。
【0028】
バッテリ制御部(112)は、通知されたバッテリ残量になるまでバッテリ(113)からの放電を実施する(S1-6)。通知されたバッテリ残量までバッテリ(113)の放電が完了した場合(S1-7:Yes)、バッテリ制御部(112)は、ストレージ制御部(114)に放電完了を通知する(S1-8)。
【0029】
なお、ストレージ制御部(114)は、キャッシュメモリ(115)上にあるデータ量の確認を、ストレージシステム監視部(140)による負荷分散から所定時間経過後に行うようにしてもよい。これにより、ストレージ制御部(114)は、キャッシュメモリ(115)上にあるデータ量が減った後に、バッテリリフレッシュに関する処理を開始することができる。あるいは、ストレージ制御部(114)は、キャッシュメモリ(115)上にあるデータ量を所定サイクルで行い、データ量が所定量以下、または、必要なバッテリ残量が所定値以下となった際、求めたバッテリ残量をバッテリ制御部(112)に通知する(S2-4)ようにしてもよい。または、
図3に示す(S2-3)、(S2-4)、(S1-6)~(S1-8)の処理を、キャッシュメモリ(115)上にあるデータ量が所定量以下、または、必要なバッテリ残量が所定値以下となるまで繰り返すようにしても良い。
【0030】
ストレージ制御部(114)は、バッテリリフレッシュ前の放電完了通知を受け取った後、バッテリ制御部(112)にバッテリリフレッシュを指示する(S2-5)。
【0031】
バッテリ制御部(112)は、ストレージ制御部(114)から指示を受け取った後、バッテリ(113)のバッテリリフレッシュを開始する(S1-9)。バッテリ制御部(112)は、バッテリリフレッシュの完全放電が完了した後、バッテリ(113)の規定容量までバッテリ(113)を充電する(S1-10)。規定容量までの充電が完了した段階で、バッテリ制御部(112)は、バッテリリフレッシュ要求フラグをさげる(S1-11)。
【0032】
ストレージ制御部(114)は、バッテリ(113)に対するバッテリリフレッシュ要求フラグがさがっているかを確認する(S2-6)、バッテリリフレッシュ要求フラグ下がっていた場合(S2-6:Yes)、ストレージ制御部(114)は、コントローラ(111)におけるバッテリリフレッシュ完了を、完了通知をするコントローラの識別情報と共に、ストレージシステム監視部(140)に通知する(S2-7)。
【0033】
バッテリリフレッシュ完了の通知を受け取ったストレージシステム監視部(140)は、ストレージシステム(100)での分散負荷を元の状態に戻す(S3-3)。
【0034】
なお、バッテリリフレッシュ中に供給電源が遮断された場合、バッテリリフレッシュ中のストレージ内で冗長化されたコントローラ側、例えばコントローラ(111)でバッテリリフレッシュを実施している際は、コントローラ(121)側に搭載されているバッテリ(123)を使用してキャッシュメモリ(125)上のデータを不揮発領域(126)に保存することを可能とする状態を維持する。この場合、ストレージ(110)単体での冗長性は低下するが、システム全体としてのデータ維持性を確保することが可能となる。
【0035】
以上の通り、構成部品が冗長化されたストレージを、複数台組み込んだストレージシステム(100)において、バッテリリフレッシュのスケジュールを自動設定することで、ユーザが意識することなくバッテリリフレッシュを実施することが可能となる。
【0036】
また、バッテリリフレッシュを実施するストレージの負荷を軽減することで、バッテリリフレッシュ時間を短縮しつつ、データの保全性が高い状態でのバッテリリフレッシュを実施することが可能となる。
【0037】
なお、ストレージシステム監視部(140)は、バッテリリフレッシュのスケジュール設定に関して、下記のようにしてもよい。
【0038】
1.過去、特に直近の負荷状況からバッテリリフレッシュのスケジュール推奨パターンを複数ユーザに提示し、ユーザ側で実施パターンを選択できるようにする。そして、ストレージシステム監視部(140)は、選択されたスケジュールに沿ってバッテリリフレッシュを実施する。これにより、ユーザがバッテリリフレッシュのスケジュールを策定する必要がなく、かつ、ユーザが把握する今後想定されるストレージシステム(100)の負荷状況も加味したスケジュールでのバッテリリフレッシュが可能となる。
【0039】
2.バッテリリフレッシュのための負荷分散中に負荷が高くなった場合、バッテリリフレッシュのリスケジュールを実施し、負荷が低くなるタイミングで再度バッテリリフレッシュの実施をする。これにより、負荷分散によりバッテリリフレッシュを行わないストレージが必要以上の高負荷となることを防止できる。なお、荷分散中に負荷が高くなることが所定頻度で生じる場合、ストレージシステム監視部(140)は、ユーザに構成におけるストレージ数についてN個に拡張可能することが好ましいことを通知するようにしてもよい。
【0040】
本開示では、バッテリリフレッシュ前にキャッシュメモリ上にあるデータを抑止し、バックアップする領域を減らすことでバッテリリフレッシュにかかる時間の短縮を実施例の動作の説明では説明した。これに加えて、あるいは、これに変えて、コントローラ内に複数のキャッシュメモリを搭載している場合、コントローラ内のストレージ制御部は、キャッシュメモリ上にあるデータの抑止が一定量以上抑止できたタイミングで、キャッシュメモリの一部、例えばデータを記憶しなくなったキャッシュメモリへの給電をとめることでストレージ全体の消費電力を下げて、バッテリリフレッシュをするようにしてもよい。
【0041】
以上のとおり、本開示のストレージシステム(100)では、24時間・365日稼働し続けるストレージシステムにおいて、無停止でバッテリリフレッシュを可能とし得る。
【0042】
図4は、本開示の一実施形態によるストレージシステム(100)の構成例を示す図である。 ストレージシステム(100)は、バッテリ(113)と、キャッシュメモリ(115)と、不揮発領域(116)と、ストレージ制御部(114)とを含むコントローラ(111)をそれぞれ備えた複数のストレージ(110,130,...)と、複数のストレージ(110,130)の制御を行うストレージシステム監視部(140)と、を備える。ストレージ制御部(114)は、ストレージ制御部(114)が含まれるコントローラ(111)内のバッテリ(113)のバッテリリフレッシュ要求を通知する。ストレージシステム監視部(140)は、ストレージ制御部(114)のバッテリリフレッシュ要求に応答し、バッテリリフレッシュ要求のあるストレージ(110)以外のストレージ(130,...)に、データ処理に関する負荷を分散させる。バッテリリフレッシュ要求をしたコントローラ(111)内のストレージ制御部(114)は、コントローラ(111)のキャッシュメモリ(115)上にあるデータの不揮発領域(116)への退避に必要な電力量に基づき、ストレージ制御部(114)が含まれるコントローラ(111)のバッテリ(113)を放電させた後、バッテリ(113)のバッテリリフレッシュを行なわせる。
【0043】
図5は、ストレージシステム(100)における、ストレージ制御部(114)、バッテリ制御部(112)や、ストレージシステム監視部(140)におけるハードウェアの構成の一例を示すブロック図である。ここで、ストレージ制御部(114)、バッテリ制御部(112)や、ストレージシステム監視部(140)のハードウェア構成として、CPU(11)、RAM(Random Access Memory)(12)、ROM(Read Only Memory)(13)、記録装置(14)等が備えられる。ここで、ROM(13) および記録装置(14)には、ストレージ制御部(114)、バッテリ制御部(112)や、ストレージシステム監視部(140)の機能を実現するプログラムや情報が記録される。RAM(12)は、CPU(11)等が稼働中に用いるデータ等を一時的に記憶する作業領域等として利用される。また、ストレージ制御部(114)、バッテリ制御部(112)や、ストレージシステム監視部(140)は、他の機器、例えば、ストレージ制御部(114)におけるキャッシュメモリ(115)や不揮発領域(116)への入出力ポート(15)を備える。また、入出力ポート(15)は、ストレージシステム監視部(140)におけるキーボード、マウス、表示装置等の入出力装置を接続するための入出力ポートであってもよい。なお、ROM(13)はEEPROM(Electrically Erasable Programmable Read-Only Memory)等で構成され、また、記録装置(14)はハードディスク、SSD等で構成され、ストレージ制御部(114)、バッテリ制御部(112)やストレージシステム監視部(140)の機能を実現するためのコンピュータプログラムをROM(13)や記録装置(14)にて更新できるようにしてもよい。なお、ストレージ制御部(114)、バッテリ制御部(112)は別体のハードウェアにより構成されてもよく、あるいは、共通のハードウェアで構成されてそれらの機能をソフトウェアにて別々に実現するものであってもよい。
【0044】
以上、実施形態を参照して本開示を説明したが、本開示は上述の実施形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。そして、各実施の形態は、適宜他の実施の形態と組み合わせることができる。
【0045】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限らない。
【0046】
(付記1)
バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、
前記複数のストレージの制御を行うストレージシステム監視部と、を備え、
前記ストレージ制御部は、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、
前記ストレージシステム監視部は、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、
前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部は、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、
ストレージシステム。
【0047】
(付記2)
前記ストレージには、2つ以上の前記コントローラが備えられ、
前記ストレージシステム監視部は、同じストレージ内の複数の前記コントローラからのストレージリフレッシュ要求を検知すると、バッテリリフレッシュ要求を行った同じストレージ内の複数の前記コントローラが同時にバッテリリフレッシュを行わないようにバッテリリフレッシュのスケジューリングを行う、
付記1に記載のストレージシステム。
【0048】
(付記3)
前記コントローラは、該コントローラ内の前記バッテリの残量を制御するバッテリ制御部をさらに備え、
前記バッテリリフレッシュ要求を通知した前記ストレージ制御部は、該ストレージ制御部の含まれる前記コントローラ内の前記キャッシュメモリ上にあるデータ量が減少するのに合わせて、前記不揮発領域にデータを退避するのに必要な電力量を計算して、前記バッテリ制御部に通知し、
前記バッテリ制御部は、通知された電力量まで前記バッテリから放電されるように制御した後、前記バッテリに対するバッテリリフレッシュを行う、
付記1または2に記載のストレージシステム。
【0049】
(付記4)
前記ストレージシステム監視部は、前記負荷を分散させる途中で負荷が所定値以上となった際、負荷分散を中止する、
付記1から3のいずれかに記載のストレージシステム。
【0050】
(付記5)
前記コントローラは、複数のキャッシュメモリを備え、
前記バッテリリフレッシュ要求をした前記ストレージ制御部は、バッテリリフレッシュの過程で前記データを保存しないキャッシュメモリへの給電を止める制御をさらに行う、
付記1から4のいずれかに記載のストレージシステム。
【0051】
(付記6)
前記ストレージシステム監視部は、ストレージシステムにおける過去の負荷状況に基づき、前記複数のストレージへのデータ処理に関する負荷の分散についての複数のスケジュールを求め、前記複数のスケジュールのうち、ユーザにより選択されたスケジュールに基づき、前記負荷の分散を行う、
付記1から5のいずれかに記載のストレージシステム。
【0052】
(付記7)
前記ストレージシステム監視部は、前記バッテリリフレッシュ要求をした前記ストレージ制御部からのバッテリリフレッシュ完了の通知に応答して、前記負荷の分散を終了する、
付記1から6のいずれかに記載のストレージシステム。
【0053】
(付記8)
前記バッテリ制御部は、該バッテリ制御部が含まれる前記コントローラの前記バッテリにおける充電回数が所定回数以上になると、前記バッテリリフレッシュ要求の通知を行う、
付記3に記載のストレージシステム。
【0054】
(付記11)
バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、
前記複数のストレージの制御を行うストレージシステム監視部と、を備えたストレージシステムに適用され、
前記ストレージ制御部によって、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、
前記ストレージシステム監視部によって、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、
前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部によって、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、
ストレージシステムにおけるバッテリリフレッシュ方法。
【0055】
(付記12)
前記ストレージには、2つ以上の前記コントローラが備えられ、
前記ストレージシステム監視部によって、同じストレージ内の複数の前記コントローラからのストレージリフレッシュ要求を検知すると、バッテリリフレッシュ要求を行った同じストレージ内の複数の前記コントローラが同時にバッテリリフレッシュを行わないようにバッテリリフレッシュのスケジューリングを行う、
付記11に記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0056】
(付記13)
前記コントローラは、該コントローラ内の前記バッテリの残量を制御するバッテリ制御部をさらに備え、
前記バッテリリフレッシュ要求を通知した前記ストレージ制御部によって、該ストレージ制御部の含まれる前記コントローラ内の前記キャッシュメモリ上にあるデータ量が減少するのに合わせて、前記不揮発領域にデータを退避するのに必要な電力量を計算して、前記バッテリ制御部に通知し、
前記バッテリ制御部によって、通知された電力量まで前記バッテリから放電されるように制御した後、前記バッテリに対するバッテリリフレッシュを行う、
付記11または12に記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0057】
(付記14)
前記ストレージシステム監視部によって、前記負荷を分散させる途中で負荷が所定値以上となった際、負荷分散を中止する、
付記11から13のいずれかに記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0058】
(付記15)
前記コントローラは、複数のキャッシュメモリを備え、
前記バッテリリフレッシュ要求をした前記ストレージ制御部によって、バッテリリフレッシュの過程で前記データを保存しないキャッシュメモリへの給電を止める制御をさらに行う、
付記11から14のいずれかに記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0059】
(付記16)
前記ストレージシステム監視部によって、ストレージシステムにおける過去の負荷状況に基づき、前記複数のストレージへのデータ処理に関する負荷の分散についての複数のスケジュールを求め、前記複数のスケジュールのうち、ユーザにより選択されたスケジュールに基づき、前記負荷の分散を行う、
付記11から15のいずれかに記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0060】
(付記17)
前記ストレージシステム監視部によって、前記バッテリリフレッシュ要求をした前記ストレージ制御部からのバッテリリフレッシュ完了の通知に応答して、前記負荷の分散を終了する、
付記11から16のいずれかに記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0061】
(付記18)
前記バッテリ制御部によって、該バッテリ制御部が含まれる前記コントローラの前記バッテリにおける充電回数が所定回数以上になると、前記バッテリリフレッシュ要求の通知を行う、
付記13に記載のトレージシステムにおけるバッテリリフレッシュ方法。
【0062】
(付記21)
バッテリと、キャッシュメモリと、不揮発領域と、ストレージ制御部とを含むコントローラをそれぞれ備えた複数のストレージと、
前記複数のストレージの制御を行うストレージシステム監視部と、を備えたストレージシステムのためのコンピュータに、
前記ストレージ制御部によって、該ストレージ制御部が含まれる前記コントローラ内の前記バッテリのバッテリリフレッシュ要求を通知し、
前記ストレージシステム監視部によって、前記ストレージ制御部の前記バッテリリフレッシュ要求に応答し、該バッテリリフレッシュ要求のあるストレージ以外のストレージにデータ処理に関する負荷を分散させ、
前記バッテリリフレッシュ要求をした前記コントローラ内の前記ストレージ制御部によって、該コントローラの前記キャッシュメモリ上にあるデータの前記不揮発領域への退避に必要な電力量に基づき、該ストレージ制御部が含まれる前記コントローラの前記バッテリを放電させた後、該バッテリのバッテリリフレッシュを行なわせる、
ことを実行させるためのプログラム。
【0063】
(付記22)
前記ストレージには、2つ以上の前記コントローラが備えられ、
前記ストレージシステム監視部によって、同じストレージ内の複数の前記コントローラからのストレージリフレッシュ要求を検知すると、バッテリリフレッシュ要求を行った同じストレージ内の複数の前記コントローラが同時にバッテリリフレッシュを行わないようにバッテリリフレッシュのスケジューリングを行う、
ことをさらに実行させる、付記21に記載のプログラム。
【0064】
(付記23)
前記コントローラは、該コントローラ内の前記バッテリの残量を制御するバッテリ制御部をさらに備え、
前記バッテリリフレッシュ要求を通知した前記ストレージ制御部によって、該ストレージ制御部の含まれる前記コントローラ内の前記キャッシュメモリ上にあるデータ量が減少するのに合わせて、前記不揮発領域にデータを退避するのに必要な電力量を計算して、前記バッテリ制御部に通知し、
前記バッテリ制御部によって、通知された電力量まで前記バッテリから放電されるように制御した後、前記バッテリに対するバッテリリフレッシュを行う、
ことをさらに実行させる、付記21または22に記載のプログラム。
【0065】
(付記24)
前記ストレージシステム監視部によって、前記負荷を分散させる途中で負荷が所定値以上となった際、負荷分散を中止する、
ことをさらに実行させる、付記21から23のいずれかに記載のプログラム。
【0066】
(付記25)
前記コントローラは、複数のキャッシュメモリを備え、
前記バッテリリフレッシュ要求をした前記ストレージ制御部によって、バッテリリフレッシュの過程で前記データを保存しないキャッシュメモリへの給電を止める制御をさらに行う、
ことをさらに実行させる、付記21から24のいずれかに記載のプログラム。
【0067】
(付記26)
前記ストレージシステム監視部によって、ストレージシステムにおける過去の負荷状況に基づき、前記複数のストレージへのデータ処理に関する負荷の分散についての複数のスケジュールを求め、前記複数のスケジュールのうち、ユーザにより選択されたスケジュールに基づき、前記負荷の分散を行う、
ことをさらに実行させる、付記21から25のいずれかに記載のプログラム。
【0068】
(付記27)
前記ストレージシステム監視部によって、前記バッテリリフレッシュ要求をした前記ストレージ制御部からのバッテリリフレッシュ完了の通知に応答して、前記負荷の分散を終了する、
ことをさらに実行させる、付記21から26のいずれかに記載のプログラム。
【0069】
(付記28)
前記バッテリ制御部によって、該バッテリ制御部が含まれる前記コントローラの前記バッテリにおける充電回数が所定回数以上になると、前記バッテリリフレッシュ要求の通知を行う、
ことをさらに実行させる、付記23に記載のプログラム。
【符号の説明】
【0070】
100 ストレージシステム
110,130,131 ストレージ
110 ストレージ
111 コントローラ
112 バッテリ制御部
113 バッテリ
114 ストレージ制御部
115 キャッシュメモリ
116 不揮発領域
121 コントローラ
123 バッテリ
125 キャッシュメモリ
126 不揮発領域
130 ストレージ
131 ストレージ
140 ストレージシステム監視部
【要約】
【課題】データの保全性が高い状態で、バッテリリフレッシュの実施が行えるストレージシステムを提供する。
【解決手段】ストレージ制御部は、ストレージ制御部が含まれるコントローラ内のバッテリのバッテリリフレッシュ要求を通知する。ストレージシステム監視部は、ストレージ制御部のバッテリリフレッシュ要求に応答し、バッテリリフレッシュ要求のあるストレージ以外のストレージに、データ処理に関する負荷を分散させる。ストレージ制御部(114)は、キャッシュメモリ上にあるデータの不揮発領域への退避に必要な電力量に基づき、バッテリを放電させた後、バッテリのバッテリリフレッシュを行なわせる。
【選択図】
図1