(57)【要約】  不揮発性メモリを備える第１の記憶装置に情報の書き込みを行う第１の情報処理装置と、不揮発性メモリを備える第２の記憶装置に情報の書き込みを行う第２の情報処理装置とを有する情報処理システムの場合には、作業負荷の各情報処理装置への配置にウェアレベリングの考え方を適用すると、ほぼ同じ時期に第１の記憶装置および第２の記憶装置の不揮発性メモリが寿命を迎えるために、システムの継続的な運用に支障をきたす。  本発明の情報処理システムは、第１の記憶装置への書き込み回数を計数する第１カウンタと、第２の記憶装置への書き込み回数を計数する第２カウンタとを有し、第１の記憶装置の交換時期と、第２の記憶装置の交換時期と、第１カウンタの出力と、第２カウンタの出力とに基づいて、第１の情報処理装置および第２の情報処理装置への作業負荷の割当てを行うことにより、前述の課題を解決する。
2013175540.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを備える第１の記憶装置に情報の書き込みを行う第１の情報処理装置と、
不揮発性メモリを備える第２の記憶装置に情報の書き込みを行う第２の情報処理装置と、
前記第１の記憶装置への書き込み回数を計数する第１カウンタと、
前記第２の記憶装置への書き込み回数を計数する第２カウンタとを有し、
前記第１の記憶装置の交換時期と、前記第２の記憶装置の交換時期と、前記第１カウンタの出力と、前記第２カウンタの出力とに基づいて、前記第１の情報処理装置および前記第２の情報処理装置への作業負荷の割当てを行うことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
前記第１の記憶装置と前記第２の記憶装置のうち交換時期の近い方を優先して作業負荷を配置することを特徴とする情報処理システム。
【請求項３】
請求項１に記載の情報処理システムにおいて、
前記第１の記憶装置と前記第２の記憶装置のうち交換時期の近い方を優先して割当て予定の作業負荷の内で不揮発性メモリへの書き込み回数が多い作業負荷を配置することを特徴とする情報処理システム。
【請求項４】
請求項１に記載の情報処理システムにおいて、
前記第１の情報処理装置および前記第２の情報処理装置は、サーバ装置であることを特徴とする情報処理システム。
【請求項５】
請求項１に記載の情報処理システムにおいて、
前記第１の記憶装置に備えられている不揮発性メモリおよび前記第２の記憶装置に備えられている不揮発性メモリは、フラッシュメモリを含むことを特徴とする情報処理システム。
【請求項６】
請求項１に記載の情報処理システムにおいて、
前記第１の記憶装置に備えられている不揮発性メモリおよび前記第２の記憶装置に備えられている不揮発性メモリは、相変化メモリを含むことを特徴とする情報処理システム。
【請求項７】
請求項１に記載の情報処理システムにおいて、
前記第１の記憶装置の交換時期の情報と、前記第２の記憶装置の交換時期の情報とを保存するストレージ装置を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関し、特に書き換え可能な不揮発性メモリの寿命の管理に関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリでは、書き込みの寿命が限られる。特許文献１には、書き換え可能な不揮発性メモリを備えた記憶装置において、不揮発性メモリの長寿命化のために、不揮発性メモリの各物理ブロックに対する書き込み回数を満遍なく平均化する技術が開示されている。書き換え可能な不揮発性メモリの各物理ブロックに対する書き込み回数を平均化する技術は、ウェアレベリングと呼ばれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３８０８８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明者らは、不揮発性メモリを備える第１の記憶装置に情報の書き込みを行う第１の情報処理装置と、不揮発性メモリを備える第２の記憶装置に情報の書き込みを行う第２の情報処理装置とを有する情報処理システムの場合には、作業負荷の各情報処理装置への配置にウェアレベリングの考え方を適用すると、ほぼ同じ時期に第１の記憶装置および第２の記憶装置の不揮発性メモリが寿命を迎えるために、情報処理システムの継続的な運用に支障をきたすことを見出した。
【課題を解決するための手段】
【０００５】
本発明の情報処理システムは、不揮発性メモリを備える第１の記憶装置に情報の書き込みを行う第１の情報処理装置と、不揮発性メモリを備える第２の記憶装置に情報の書き込みを行う第２の情報処理装置と、第１の記憶装置への書き込み回数を計数する第１カウンタと、第２の記憶装置への書き込み回数を計数する第２カウンタとを有し、第１の記憶装置の交換時期と、第２の記憶装置の交換時期と、第１カウンタの出力と、第２カウンタの出力とに基づいて、第１の情報処理装置および第２の情報処理装置への作業負荷の割当てを行うことにより、前述の課題を解決する。
【発明の効果】
【０００６】
一部の情報処理装置を停止させ、他の情報処理装置の稼動を続けた状態で、不揮発性メモリを備える記憶装置の交換をすることができ、情報処理システムの継続的な運用が可能となる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施例である情報処理システムの構成図である。
【図２】本発明の実施例の情報処理システムの動作例を説明するためのフローチャートである。
【図３】スケジューリングノードの主記憶装置に含まれるモジュールの例を示す図である。
【図４】ストレージ装置に保存されるプログラムやデータの例を示す図である。
【図５】保守計画情報の例を示す図である。
【図６】割当て予定作業負荷リストの例を示す図である。
【図７】作業負荷情報テーブルの例を示す図である。
【図８】作業負荷割当てテーブルの例を示す図である。
【図９】テスト用サーバ装置の主記憶装置に含まれるモジュールの例を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施例を図面を用いて説明する。
【実施例１】
【０００９】
図１に本発明の実施例である情報処理システム１０１を示す。情報処理システム１０１は、サーバ装置１０２−１０７と、ネットワーク装置としてネットワークスイッチ１０８と、ストレージ装置１０９とを有する。サーバ装置１０２−１０７およびストレージ装置１０９は相互にネットワークスイッチ１０８で接続されている。本実施例では、サーバ装置の数を合計で６台としたが、本発明は２台以上のサーバ装置を備える情報処理システムに適用可能である。サーバ装置１０２−１０７は、説明の簡単化のために、本実施例では同一の仕様であるとする。本実施例では、サーバ装置１０３のサーバ名をサーバ装置Ａ、サーバ装置１０４のサーバ名をサーバ装置Ｂ、サーバ装置１０５のサーバ名をサーバ装置Ｃ、サーバ装置１０６のサーバ名をサーバ装置Ｄ、サーバ装置１０６のサーバ名をサーバ装置Ｄ、サーバ装置１０７のサーバ名をサーバ装置Ｔとする。【００１０】
サーバ装置１０２−１０７のそれぞれは、中央処理装置（ＣＰＵ）１１０と、主記憶装置１１１と、書き換え可能な不揮発性メモリを備える記憶装置１１２と、記憶装置のコントローラ１１３と、ネットワークスイッチに接続するためのネットワークインタフェース（Ｉ／Ｆ）１１４とを有する。本実施例では、主記憶装置１１１はＤＲＡＭを含み、記憶装置１１２は書き換え可能な不揮発メモリとしてＮＡＮＤフラッシュメモリを含む。なお、記憶装置１１２が不揮発性メモリとして相変化メモリを含む形態でも、本発明を適用可能である。記憶装置コントローラ１１３は、記憶装置１１２への書き込みと記憶装置１１２からの読み出しを制御する。さらに、記憶装置コントローラ１１３は、制御対象の記憶装置１１２への書き込み回数をカウントするカウンタ１１５を有する。サーバ装置１０２−１０７のそれぞれは独立して停止させることが可能であり、停止しているサーバ装置の記憶装置１１２は交換可能となっている。したがって、停止しているサーバ装置の記憶装置１１２を新しい記憶装置１１２と入れ替えることが可能である。【００１１】
サーバ装置１０２は、スケジューリングノードとして、情報処理システム１０１内の作業負荷の割当てを制御する。サーバ装置１０２の主記憶装置１１１に記憶されるモジュールを図３に示した。サーバ装置１０２の主記憶１１１には、作業負荷の割当てのための計算に必要な情報をサーバ装置１０３−１０７およびストレージ装置１０９から収集する情報収集モジュール３０１と、情報処理システム１０１内の作業負荷割当てを決定するスケジューリングモジュール３０２と、決定した作業負荷割当てに従ってサーバ装置１０３−１０６に作業負荷割当ての指示を行う割当て指示モジュール３０３と、情報更新モジュール３０４とが記憶されている。【００１２】
図４に、ストレージ装置１０９に保存されるプログラムやデータを示す。ストレージ装置１０９には、いつどのサーバ装置の記憶装置１１２を交換するのかに対応する情報である保守計画情報４０１と、実行予定で未割当ての作業負荷のリストである割当て予定作業負荷リスト４０２と、各作業負荷の負荷量、実行時間および記憶装置１１２への書き込み回数の情報を含む作業負荷情報テーブル４０３と、各作業負荷の実行に必要なプログラム４０４と、データ４０５と、作業負荷割当てテーブル４０６とが保存される。各作業負荷の負荷量には、各作業負荷のＣＰＵ使用率やメモリ使用率が含まれる。作業負荷情報テーブル１２２に含まれる、各作業負荷の負荷量、実行時間および記憶装置１１２への書き込み回数の情報は、本実施例ではサーバ装置１０７を利用して後述の方法により収集される。【００１３】
図５に、保守計画情報４０１の例を示す。保守計画情報４０１は、停止予定サーバ装置およびその停止時期をエントリとする。図５の例では、まず、サーバ装置Ａは２０１２年３月１日に停止される。したがって、２０１２年３月１日に、サーバ装置Ａの記憶装置１１２の交換が可能である。次にサーバ装置Ｂが２０１２年６月１日に停止される。したがって、２０１２年６月１日に、サーバ装置Ｂの記憶装置１１２の交換が可能である。図５の例では、３ヶ月おきに、順にサーバ装置の停止を行い、記憶装置１１２の交換を行うことができる。【００１４】
図６に、割当て予定作業負荷リスト４０２の例を示す。割当て予定作業負荷リスト４０２は、情報処理システム１０１への作業負荷の実行予定の受付順である受付番号と作業負荷名をエントリとする。図６では、ＷＬ３、ＷＬ１、ＷＬ１０、ＷＬ６、ＷＬ７、ＷＬ４、ＷＬ８の順に情報処理システムが作業負荷を受け付けた状態を示している。【００１５】
図７に、作業負荷情報テーブル４０３の例を示す。作業負荷情報テーブル４０３は、作業負荷毎に、作業負荷名、ＣＰＵ使用量（％）、メモリ使用量（％）、実行時間（時間）および１時間当りの記憶装置１１２への書き込み回数の情報を含む。図７では、例えば、作業負荷名ＷＬ１の作業負荷のＣＰＵ使用率は３０％、メモリ使用率は２５％、実行時間は１０時間、１時間当りの記憶装置１１２への書き込み回数は２．０Ｇ回、すなわち２０億回である。また、作業負荷名ＷＬ８の作業負荷については、作業負荷名を除いて、ＣＰＵ使用率、メモリ使用率、実行時間、１時間当りの記憶装置１１２への書き込み回数のいずれの情報も欠けている状態である。【００１６】
図８に、作業負荷割当てテーブル４０６の例を示す。作業負荷割当てテーブル４０６は、作業負荷名、割当て先サーバ装置、および割当て時刻の各情報が含まれる。図８の例では、作業負荷名ＷＬ４の作業負荷は、サーバ装置Ａに割当てられ、２０１２年１月１０日の８時５０分に割当てられ実行開始されたことが示されている。【００１７】
サーバ装置１０３−１０６は、計算ノードとして、スケジューリングノードであるサーバ装置１０２からの割当て指示に従って、ストレージ装置１０９から作業負荷実行に必要なプログラム４０４と、データ４０５とを読み出し、割当てられた作業負荷を実行する。【００１８】
サーバ装置１０７は、テスト用サーバ装置として、作業負荷の負荷量、実行時間および記憶装置１１２への書き込み回数の情報の内の少なくともいずれかの情報が欠けている作業負荷について、欠けている情報の収集を行う。また、サーバ装置１０７は、作業負荷テーブル１１２にエントリの無い作業負荷の場合には、作業負荷テーブル１１２に新規のエントリの追加も行う。サーバ装置１０７の主記憶装置１１１に記憶されるモジュールを図９に示した。サーバ装置１０７の主記憶装置１１１には、作業負荷情報測定モジュール９０１と、作業負荷情報更新モジュール９０２とが記憶されている。【００１９】
以下、情報処理システム１０１の動作フローの例を示した図２を用いて、情報処理システム１０１の動作を説明する。【００２０】
ステップ２０１で、サーバ装置１０２の情報収集モジュール３０１が、ストレージ１０９から、割当て予定作業負荷リスト４０２と、作業負荷情報テーブル４０３と、作業負荷割当てテーブル４０６とを読み出す。【００２１】
ステップ２０２で、サーバ装置１０２の情報収集モジュール３０１が、サーバ装置１０３−１０６に実行中の作業負荷の有無を問合せ、問合せの結果に基づいて、情報更新モジュール３０４が作業負荷割当てテーブル４０６のエントリの内、すでに実行されていない状態のエントリを削除する。【００２２】
ステップ２０３で、サーバ装置１０２が、これから行う作業負荷割当てが当日の最初の割当てかどうかを判定する。当日の最初の割当ての場合は、情報処理システム１０１の動作はステップ２０４へ進み、そうでない場合はステップ２０９へ進む。【００２３】
ステップ２０４では、サーバ装置１０２の情報収集モジュール３０１が、ストレージ装置１０９から保守計画情報４０１を読み出し、また、サーバ装置１０３−１０６からそれぞれの記憶装置１１２への書き込み回数、すなわちカウンタ１１５の出力であるカウント値を収集する。【００２４】
ステップ２０５では、スケジューリングモジュール３０２が、ステップ２０４で得た保守計画情報４０１および各カウンタ１１５のカウント値から、サーバ装置１０３−１０６の各記憶装置１１２の交換予定日に各記憶装置１１２への書き込み回数が寿命に達するためには一日平均何回書き込みをすればよいかを算出し、算出した回数を各記憶装置１１２に対する当日の予定残り書き込み回数に設定する。ここで、本実施例での寿命とは、各記憶装置１１２に設定された書き込み回数の最大値であり、信頼性確保のためにマージンを取った値であっても良い。【００２５】
ステップ２０６では、サーバ装置１０２が、作業負荷割当てテーブル４０６に基づいて、サーバ装置１０３−１０６で前日から継続して実行されている作業負荷の有無を調べる。有の場合は情報処理システム１０１の動作はステップ２０７へ進み、無の場合はステップ２０９へ進む。【００２６】
ステップ２０７では、サーバ装置１０２のスケジューリングモジュール３０２が、作業負荷割当てテーブル４０６の作業負荷の割当て時刻の情報と、作業負荷情報テーブル１１２の実行時間および１時間当りの記憶装置１１２への書き込み回数の情報に基づいて、前日から継続して実行されている作業負荷が当日に記憶装置１１２へ何回書き込みを行う予定かを算出する。【００２７】
ステップ２０８では、スケジューリングモジュール３０２が、ステップ２０７で算出した前日から継続して実行されている作業負荷による記憶装置１１２への書き込み予定回数を、ステップ２０５で設定した記憶装置１１２に対する当日の予定残り書き込み回数から引き、記憶装置１１２への予定残り書き込み回数の値を更新する。【００２８】
ステップ２０９では、サーバ装置１０２の情報収集モジュール３０１が、ストレージ装置１０９から割当て予定作業負荷リスト４０２を読み出し、サーバ装置１０３−１０６からサーバ装置毎の負荷状況情報を収集する。ここで、負荷状況情報とは、本実施例では、サーバ装置１０３−１０６の各サーバ装置のＣＰＵ使用率とメモリ使用率とを含む情報である。【００２９】
ステップ２１０では、スケジューリングモジュール３０２が、ステップ２０９で読み出した割当て予定作業負荷リスト４０２中の作業負荷に、作業負荷情報テーブル４０３中に作業負荷自体の情報、または各作業負荷の負荷量、実行時間および記憶装置１１２への書き込み回数の情報の少なくともいずれかの情報が欠けている作業負荷が有るか無いかの判断をする。情報が欠けている作業負荷が有る場合には、情報処理システム１０１の動作はステップ２１１に進み、情報が欠けている作業負荷が無い場合には、ステップ２１２に進む。【００３０】
ステップ２１１では、スケジューリングモジュール３０２が、ステップ２１０で情報が欠けていると判断された作業負荷のテスト用サーバ装置１０７への配置を決定する。また、割当て指示モジュール３０３が、テスト用サーバ装置であるサーバ装置１０７に、該作業負荷の実行を指示し、また、作業負荷割当てテーブル４０６への該作業負荷のエントリの追加と、割当て予定作業負荷リスト１２１からの該作業負荷のエントリの削除を実行する。サーバ装置１０７は、該作業負荷の実行のためのプログラム４０４およびデータ４０５をストレージ装置１０９から取得し、該作業負荷を実行する。本実施例で図６、図７、および図８に示した例では、作業負荷ＷＬ８が作業負荷情報テーブル４０３で各情報が欠けているので、作業負荷ＷＬ８がサーバ装置Ｔに配置される。図２のフローチャートにはステップを図示しないが、テスト用サーバ装置１０７で実行された作業負荷の作業負荷情報テーブル４０３の各情報は、作業負荷情報測定モジュール９０１によって測定され、測定結果に基づいて作業負荷情報更新モジュール９０２が作業負荷情報テーブル４０３の各情報の更新を行う。なお、作業負荷情報テーブル４０３に作業負荷自体の情報が無い、すなわちエントリが無い状態の場合には、作業負荷情報更新モジュール９０２がエントリの追加も行う。【００３１】
ステップ２１２では、サーバ装置１０２のスケジューリングモジュール３０２が、ステップ２０９で読み出した割当て予定作業負荷リスト４０２中の未割当ての作業負荷にサーバ装置１０３−１０６に割当可能なものがあるかどうかを判断する。割当可能かどうかの判断は、各記憶装置１１２への予定残り書き込み回数の値と作業負荷情報テーブル４０３とに基づき行われ、本実施例では、未割当ての作業負荷の負荷量であるＣＰＵ使用率、メモリ使用率、実行時間および１時間当りの記憶装置１１２への書き込み回数の情報と、各サーバ装置のＣＰＵ使用率、メモリ使用率、各記憶装置１１２への予定残り書き込み回数の値とに基づき行われる。【００３２】
サーバ装置１０３−１０６の少なくともいずれかのサーバ装置の負荷状況に余裕があり、割当可能な未割当ての作業負荷が有る場合は、情報処理システム１０１の動作はステップ２１３へ進み、サーバ装置１０３−１０６のいずれのサーバ装置の負荷状況にも余裕が無く、割当可能な未割当ての作業負荷が無い場合、もしくは未割当ての作業負荷が無い場合は一定時間待機後にステップ２０１から再度フローが実行される。【００３３】
ステップ２１３では、サーバ装置１０２のスケジューリングモジュール３０２が、作業負荷情報テーブル４０３に基づいて、ステップ２１２で算出した割当可能な作業負荷のうち、不揮発メモリへの書き込み回数が多い作業負荷、すなわち本実施例では当日の記憶装置１１２への書き込み回数が多い作業負荷を優先して、停止時期が近い、すなわち記憶装置１１２の交換予定が近いサーバ装置に対して割当てを行うことを決定する。【００３４】
図５、図６、図７、および図８に示した例は、サーバ装置Ａについての記憶装置１１２への予定残り書き込み回数の値が１００Ｇ回で、サーバ装置Ｂについての記憶装置１１２への予定残り書き込み回数の値が５０Ｇ回である場合であり、最も停止時期が近い、すなわち記憶装置１１２の交換時期が近いサーバ装置であるサーバ装置Ａに、当日の記憶装置１１２への書き込み回数が多い順に作業負荷ＷＬ７、ＷＬ６、ＷＬ１、およびＷＬ４の割当てが行われる。サーバ装置ＷＬ７、ＷＬ６、ＷＬ１、およびＷＬ４のＣＰＵ使用率の合計、メモリ使用率の合計、および当日の記憶装置１１２への書き込み回数の合計は、それぞれ許容範囲内に収まっている。残りの作業負荷ＷＬ３、ＷＬ１０については、サーバ装置Ａでは許容範囲に収まらないので、次に停止時期が近い、すなわち記憶装置１１２の交換時期が近いサーバ装置Ｂへと割当てられる。このように、記憶装置１１２の交換時期が近いサーバ装置に優先して、当日の記憶装置１１２への書き込み回数が多い作業負荷を割当てることで、当日の記憶装置１１２への書き込み回数の多い作業負荷を優先させることなく記憶装置１１２の交換予定が近いサーバ装置に優先して作業負荷の割当てをするよりも、記憶装置１１２の有限の寿命をさらに有効に使った上で記憶装置１１２の交換をすることが可能となる。なお、当日の記憶装置１１２への書き込み回数の多い作業負荷を優先させることなく記憶装置１１２の交換時期が近いサーバ装置に優先して作業負荷の割当てをする場合でも、交換時期が近いサーバ装置に平均的には不揮発メモリへの書き込みが多く発生するので、記憶装置１１２の有限の寿命を有効に使うことができる。【００３５】
ステップ２１４では、サーバ装置１０２の割当て指示モジュール３０３が、ステップ２１３で決定した作業負荷の割当てに従って、サーバ装置１０３−１０６に対して作業負荷実行開始の指示を行う。また、作業負荷の割当て指示をした割当て指示モジュール３０３は、作業負荷割当てテーブル４０６への該作業負荷のエントリの追加と、割当て予定作業負荷リスト１２１からの該作業負荷のエントリの削除を実行する。作業負荷実行開始を指示されたサーバ装置１０３−１０６は、ストレージ装置１０９から各作業負荷実行に必要なプログラム４０４、データ４０５を読み出して、サーバ装置内の主記憶装置１１１および記憶装置１１２に格納し、作業負荷の実行を開始する。【００３６】
ステップ２１５では、ステップ２１４で割当てた作業負荷が当日の残りの時間で各記憶装置１１２に対して書き込みを行う予定回数を、作業負荷割当てテーブル４０６の割当て時刻および作業負荷情報テーブル４０３の１時間当りの記憶装置１１２への書き込み回数から算出し、算出結果を各記憶装置１１２の当日の予定残り書き込み回数から引き、各記憶装置１１２の当日の予定残り書き込み回数の値を更新する。ステップ２１５の後は、情報処理システム１０１は、ステップ２１２に戻って再度フローを実行する。【００３７】
以上のように、各記憶装置１１２への書き込み回数を平均化するように制御するのではなく、各記憶装置１１２の交換時期に基づいて作業負荷の配置を行うことで、交換時期に基づいて計画的に一部の情報処理装置を停止し、他の情報処理装置の稼動を続けた状態で、記憶装置１１２の交換をすることができ、情報処理システム１０１の継続的な運用が可能となる。
【符号の説明】
【００３８】
１０１：情報処理システム、１０２−１０７：サーバ装置、１０８：ネットワークスイッチ、１０９：ストレージ装置、１１０：中央処理装置（ＣＰＵ）、１１１：主記憶装置、１１２：記憶装置、１１３：記憶装置のコントローラ、１１４：ネットワークインタフェース（Ｉ／Ｆ）、１１５：カウンタ。
【図１】
2013175540.tif 000003
【図２】
2013175540.tif 000004
【図３】
2013175540.tif 000005
【図４】
2013175540.tif 000006
【図５】
2013175540.tif 000007
【図６】
2013175540.tif 000008
【図７】
2013175540.tif 000009
【図８】
2013175540.tif 000010
【図９】
2013175540.tif 000011
【国際調査報告】
2013175540.tif 000012
2013175540.tif 000013