JP2016167212A - 情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム - Google Patents

情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム Download PDF

Info

Publication number
JP2016167212A
JP2016167212A JP2015047204A JP2015047204A JP2016167212A JP 2016167212 A JP2016167212 A JP 2016167212A JP 2015047204 A JP2015047204 A JP 2015047204A JP 2015047204 A JP2015047204 A JP 2015047204A JP 2016167212 A JP2016167212 A JP 2016167212A
Authority
JP
Japan
Prior art keywords
checkpoint
data
time
file system
stack area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015047204A
Other languages
English (en)
Inventor
草野 和寛
Kazuhiro Kusano
和寛 草野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015047204A priority Critical patent/JP2016167212A/ja
Publication of JP2016167212A publication Critical patent/JP2016167212A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】チェックポイントデータの保存に要する時間の短縮が可能な情報処理システムを提供する。
【解決手段】チェックポイント時点に達する毎に起動されるチェックポイント管理部7は、チェックポイントデータのうちOS6との間のインタフェース情報を蓄えるスタック領域の利用状況をメモリ管理部6aに問い合わせ(シーケンスSeq2)、該利用状況を保存対象リストとして取得した後(シーケンスSeq3)、該スタック領域内の現時点において有効な範囲を特定し、特定した該有効な範囲のデータに限定して、第1回目は、特定した前記有効な範囲のデータの全てをチェックポイント用ファイルシステム8に保存し、第2回目以降は、該範囲のデータのうち、直前のチェックポイント時点と現チェックポイント時点との間で変化があったデータを差分データとして同ファイルシステム8に保存する。
【選択図】 図2

Description

本発明は、情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラムに関し、特に、チェックポイントデータの保存に要する時間を短縮する情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラムに関する。
一般に、情報処理システムにおける通常のプログラムは、その実行の途中で、システム障害などが発生しないことを前提として作成されている。しかし、実際の情報処理システムにおいては、プログラム実行中であっても障害が発生することを避けることができない。このため、実行に長い時間を要するプログラムにおいては、障害が発生した場合の対策を講じていることが一般的になっている。その対策の一つとして、チェックポイント機能がある。
チェックポイント機能は、プログラム実行の途中段階において所定の時間に到達する都度、該プログラムの実行に必要なデータをチェックポイントデータとして保存する動作を行う機能である。かかるチェックポイント機能を備えることによって、プログラムの実行途中においてシステム障害が発生した場合に、それまでに保存されていたデータ(チェックポイントデータ)を使って、プログラムの途中から実行を再開させることを可能にしている。実行時間が長いプログラムを利用することが多いHPC(High Performance Computing)分野においては、以前からチェックポイント機能を利用している例が非常に多い。
チェックポイントを実現する方法に関しては、従来より様々な提案がなされている。例えば、特許文献1の特開平7-13805号公報「並列計算機およびプログラム実行再現方法」には、共有メモリ並列計算機において書き込み順などを考慮したチェックポイントの方法が開示されている。また、特許文献2の特開2005-235058号公報「スナップショット取得方法、スナップショット取得装置及びスナップショット取得機能を備えたコンピュータシステム」には、スナップショットすなわちチェックポイントの取得方法とその世代管理の方法が開示されている。つまり、これらの特許文献には、並列プログラムの実行再開に必要な情報を保存するための手法や保存したデータの効率的な管理方法が開示されている。
ここで、計算機システム(情報処理システム)などの信頼性の指標として、通常、障害と次の障害との間の平均的な時間間隔を示す平均障害間隔MTBF(Mean Time Between Failure)などが利用されている。該MTBFは平均的に連続して利用することが可能な時間の長さを表わすと見做すことができる。該MTBFの値は、計算機システムを構成する部品の数が増えれば増えるほど、短くなることが良く知られている。つまり、部品点数が多くなる大規模な計算機システムの場合は、小規模な計算機システムと比べて連続して利用することができる時間が短くなる。したがって、大規模な計算機システムほど、チェックポイントを取る時間間隔も短くすることが必要である。将来の大規模計算機システムを構成する計算機台数が数十万台規模に達することが想定されており、そうなると、計算機システム全体の連続運転は、僅か数時間程度になるという予想もある。
一方、海外の大規模計算機システムにおいては、最近、ストレージ書き込み性能の向上にも関わらず、チェックポイントデータの保存に要する時間が、ほぼ一定であるという報告もある。これは、計算機に実装されているメモリが増えていることなどに伴うプログラムの保存対象データの大幅な増加が、ストレージの書き込み性能の向上による効果を打ち消していると見做すことができる。このことを計算機システムの大規模化と合わせて考えると、今後は、チェックポイントの保存に要する時間が殆ど変わらないにも関わらず、計算機システムの大規模化によりチェックポイントの保存間隔が短くなっていき、プログラムの実行に使うことができる時間が短くなってくるという問題が生じることを意味している。このため、チェックポイントの保存に要する時間を短縮することが重要になる。
特開平7-13805号公報(第3−5頁) 特開2005-235058号公報(第6−8頁)
従来の計算機システムレベルのチェックポイントは、プログラムの実行中の特定の時点に達する都度、当該プログラムの実行を再開するために必要なデータをチェックポイントデータとして保存しているが、該チェックポイントデータは、一般に、プログラムのアドレス空間上のデータに加え、該プログラムの実行を管理するためのシステムデータも保存するため、データサイズが大きくなっている。
一方、プロセッサの実行速度が向上する速度が頭打ちとなったことにより、高性能の計算機システムは、プロセッサ台数を多数並列に利用する並列計算機システムとすることが一般的になっている。並列計算機システムは、該システムを構成する部品数が増えることから、計算機システムとしての信頼性を示す指標である平均障害間隔MTBFが短くなる傾向にある。MTBFが短くなると、前述のように、システム障害に対応するために、チェックポイントデータを保存する時間間隔も短くすることが必要である。
しかしながら、計算機システムを構成するディスクシステムのI/O(Input/Output)性能の向上速度は、プロセッサと比べると、かなり緩やかとなっており、最近の大規模計算機システムにおいては、前述したように、チェックポイントデータの保存に要する時間が余り変わっていないことが報告されている。将来の大規模計算機システムにおいてはMTBFがさらに短くなると予想される状況下において、チェックポイントデータの保存に要する時間が減らない場合には、プログラムが実行される処理時間がさらに短くなっていくということが大きな問題になってくる。さらには、近い将来に、I/O性能が大きく向上することは余り期待することができないという状況もある。したがって、チェックポイントデータとして保存対象となるデータサイズを削減する等の対策を行うことによって、チェックポイントデータの保存に要する時間を短縮することが重要な課題である。
(本発明の目的)
本発明は、かかる事情に鑑みてなされたものであり、特に、保存対象のデータ量が急増する傾向にあるスタック領域に着目して、チェックポイントデータの保存に要する時間の短縮が可能な情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラムを提供することを、その目的としている。
前述の課題を解決するため、本発明による情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラムは、主に、次のような特徴的な構成を採用している。
(1)本発明による情報処理システムは、
チェックポイント時点としてあらかじめ定めた時間に達する都度、プログラムの実行に必要とするデータをチェックポイントデータとしてチェックポイント用ファイルシステムに保存する機能のあるチェックポイント管理部を有する情報処理システムであって、
前記チェックポイント管理部は、
前記チェックポイントデータのうちOS(Operating System)との間のインタフェース情報を蓄えるスタック領域に存在するデータに関し、OSと連携して、前記スタック領域内の現時点において有効な範囲を特定し、特定した該有効な範囲のデータに限定して、
最初に呼び出された際には、特定した前記有効な範囲のデータの全てを前記チェックポイント用ファイルシステムに保存し、
第2回目以降に呼び出された際には、特定した前記有効な範囲のデータのうち、直前のチェックポイント時点と現チェックポイント時点との間で変化があったデータを差分データとして前記チェックポイント用ファイルシステムに保存する
ことを特徴とする。
(2)本発明によるチェックポイントデータ採取方法は、
チェックポイント時点としてあらかじめ定めた時間に達する都度、プログラムの実行に必要とするデータをチェックポイントデータとしてチェックポイント用ファイルシステムに保存する機能のあるチェックポイント管理ステップを有する情報処理システムにおけるチェックポイントデータ採取方法であって、
前記チェックポイント管理ステップにおいて、
前記チェックポイントデータのうちOS(Operating System)との間のインタフェース情報を蓄えるスタック領域に存在するデータに関し、OSと連携して、前記スタック領域内の現時点において有効な範囲を特定し、特定した該有効な範囲のデータに限定して、
最初に呼び出された際には、特定した前記有効な範囲のデータの全てを前記チェックポイント用ファイルシステムに保存し、
第2回目以降に呼び出された際には、特定した前記有効な範囲のデータのうち、直前のチェックポイント時点と現チェックポイント時点との間で変化があったデータを差分データとして前記チェックポイント用ファイルシステムに保存する
ことを特徴とする。
(3)本発明によるチェックポイントデータ採取プログラムは、前記(2)に記載のチェックポイントデータ採取方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
本発明の情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラムによれば、以下のような効果を奏することができる。
第1の効果は、チェックポイントデータとして保存するスタック領域のデータ量を削減することが可能なことである。その理由は、直前のチェックポイント時点において保存した後に再開したプログラムの実行により変更されているスタック領域であっても、現チェックポイント時点においては、スタック領域として現在利用していない領域をOSとチェックポイント管理部とが連携して解析することによって、スタック領域としては、無効な領域のデータであり、データ保存が不要な領域であることを判定することを可能にしているためである。而して、チェックポイントデータとして保存するデータ量を削減し、チェックポイント用ファイルシステムへのチェックポイントデータの保存時間のみならず、チェックポイント用ファイルシステムからのチェックポイントデータの読み込み時間も削減することができる。
第2の効果は、チェックポイントデータの外部への転送やリスタートに要する時間を短縮することが可能なことである。その理由は、チェックポイントデータのデータ量を削減することによって外部の大容量ストレージへの転送が必要なデータ量も削減されること、および、リスタート時において不要なデータ領域の割り当てとデータの書き込みとが不要になるためである。
本発明の実施形態に係る情報処理システムのシステム構成の一例を示すシステム構成図である。 図1の情報処理システムにおけるチェックポイント管理部における動作を模式的に説明するための説明図である。 図1の情報処理システムにおいてチェックポイントデータを採取する際の動作の一例を示すフローチャートである。 図1の情報処理システムのチェックポイント管理部において保存対象リストに含まれているスタック領域の有効な範囲の確認を行う手順の一例を示すフローチャートである。 図3のフローチャートの処理により書き込み禁止状態に設定されたページに対する書き込みが発生した場合の動作の一例を説明するためのフローチャートである。 チェックポイント時点におけるスタック領域の有効範囲とプログラム実行時におけるスタック領域の有効範囲との変化の様子の一例を説明するための模式図である。
以下、本発明による情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明による情報処理システムおよびチェックポイントデータ採取方法について説明するが、かかるチェックポイントデータ採取方法をコンピュータにより実行可能なチェックポイントデータ採取プログラムとして実施するようにしても良いし、あるいは、チェックポイントデータ採取プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。また、以下の各図面に付した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではないことも言うまでもない。
(本発明の特徴)
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、チェックポイント機能として、計算機システムレベルのチェックポイントデータを保存する際に、プログラム実行中に増減するスタック領域については、OS(Operating System)とチェックポイント管理部とが連携して、前の時点でチェックポイントを保存した後に変更されている領域ではあるものの、現在のスタック領域としては無効であって、チェックポイントデータとしてデータを保存する必要がない領域であるか否かを解析する機能を備えていることを主要な特徴としている。而して、スタック領域のうち無効と判断される該当部分をチェックポイントの保存対象から除外することを可能にして、保存対象のチェックポイントデータのデータ量を縮小し、チェックポイントデータの保存に要する時間を短縮することができるという効果を奏することができる。
さらに詳細に説明すると、次の通りである。すなわち、本発明においては、チェックポイント機能を有効に設定した状態において、プログラムを実行してチェックポイントに到達した際に、チェックポイントデータを保存するために、まず、プログラムの実行を一旦中断して、保存処理の途中にデータが変更されないことを保証する。しかる後、チェックポイント管理部が、保存対象のデータに関する情報をOSから取得し、チェックポイントデータとしての保存処理を行う。ここで、プログラム実行中に到達した最初のチェックポイントにおいてチェックポイントデータとしてデータを保存する際には、プログラム実行に関係する全てのデータを対象として保存することが必要であるが、第2回目以降のチェックポイントにおいては、前に保存したチェックポイントデータから変更された部分のみを差分データとして保存対象とすることによって保存対象のデータ量を削減することができる。
かくのごとき差分データ処理に対応するために、OSはチェックポイント用の機能として、前にチェックポイントデータを保存した後に変更された領域を、ページ単位に、プログラム実行時にチェックしてリストアップする変更領域記録機能を備えている。さらに、プログラム実行時の手続き呼び出しと該手続きからの戻りとにおいて大きさが変わっていくスタック領域の有効範囲を解析して、解析した情報と保存対象になっているページのアドレス情報とから、保存が必要なスタック領域であるか否かの判定を行う。該判定結果に基づいて、保存が不要なスタック領域のページについては、チェックポイントデータの保存対象から除外することを可能にしている。
而して、チェックポイントデータとして保存すべき対象のデータを絞り込んで、最終的に保存対象となったデータを、チェックポイントデータの保存用としているチェックポイント用ファイルシステムに保存したり、外部の大容量ストレージに転送したりすることによって、システム障害が発生した際に、保存したチェックポイントデータを利用してシステム障害からの復旧を図ることができる。
(実施形態の構成例)
次に、本発明に係る情報処理システムのシステム構成の一例について、図1を参照しながら説明する。図1は、本発明の実施形態に係る情報処理システムのシステム構成の一例を示すシステム構成図である。図1に示す情報処理システムにおいては、計算機1はネットワーク10を介して外部の大容量ストレージ11と接続されている。大容量ストレージ11は、本計算機1において保存されたデータ例えばチェックポイント(CP:Check Point)データをバックアップして記憶することができる。また、計算機1は複数のノード2を含んで構成されている。ここで、計算機1は、ノード2とは異なる他のノード3を含んでいても良い。
各ノード2に含まれているCPU(Central Processing Unit)4は、複数のコア5を含んで構成されており、OS6がCPU4上で動作している。また、ノード2には、プログラム実行に利用するファイルシステム(FS:File System)9とチェックポイントデータを保存するための専用のチェックポイント用ファイルシステム8(CP専用FS)とが含まれて構成されている。さらに、ノード2には、チェックポイントの管理を行うチェックポイント管理部7が含まれている。
(実施形態の動作の説明)
次に、図1に例示した情報処理システムの動作について、図1を参照しながら詳細に説明する。なお、以下の説明においては、計算機1は、CPU4に含まれる各コア5において、OS6の制御の下、各種のプログラムを実行しており、プログラムの実行中に、チェックポイントとしてあらかじめ設定している一定時間に達する都度、プログラムの実行を中断した後、チェックポイント管理部7が起動して、適宜、あらかじめ設定している領域のデータ(プログラムの動作に必要なデータ)をチェックポイントデータとして採取する場合を想定している。
通常動作においては、プログラムは、ファイルシステム9を利用して実行している。そして、前述したように、プログラムの実行中にチェックポイントとしてあらかじめ設定した一定時間が経過する都度、プログラムの実行を中断した後、チェックポイント管理部7が起動して、チェックポイントとしてあらかじめ設定している領域のデータを、チェックポイントデータとしてチェックポイント用ファイルシステム8に保存する処理を行った後、プログラムの実行を再開させる。
かくのごとき動作を繰り返している状況下において、情報処理システムに何らかの障害などが発生して、プログラムの実行が異常終了した場合、チェックポイント管理部7が起動されて、チェックポイント用ファイルシステム8に定期的に保存されているチェックポイントデータのうち、例えば最新のチェックポイント時点のチェックポイントデータを利用して、データの再設定を行うことにより、該チェックポイント時点に遡って、プログラムの実行を再開させることができる。
プログラムの実行を一旦中断して、チェックポイントデータを採取して保存した後、プログラムの実行の再開に至るまでの処理手順の一例について、図3のフローチャートを用いて詳細に説明する。図3は、図1の情報処理システムにおいてチェックポイントデータを採取する際の動作の一例を示すフローチャートであり、本発明によるチェックポイントデータ採取方法の一例を示している。
図3のフローチャートにおいて、プログラム実行中の状態において、OS6があらかじめ定めた一定時間の経過を検知すると、OS6は、まず、実行中のプログラムの実行を中断させて、停止させた後(ステップS1)、チェックポイント管理部7を起動する。起動されたチェックポイント管理部7は、スタック領域に関しては、図2の説明図に示すような手順によって、保存対象となる領域をOS6から保存対象リストとして取得して保存する処理を行う(ステップS2)。図2は、図1の情報処理システムにおけるチェックポイント管理部7における動作を模式的に説明するための説明図であり、OS6との間のインタフェース情報を蓄えるスタック領域に存在するデータを採取する動作に関し、チェックポイント管理部7とOS6、チェックポイント用ファイルシステム8との間の制御データの流れについてその一例を示している。
図2の説明図において、チェックポイント管理部7は、プログラムを停止させた状態でOS6から起動されると(シーケンスSeq1)、まず、プログラムの実行に必要な領域のデータ全てを保存する必要があるので、OS6内のメモリ管理部6aに対してチェックポイントデータとして保存対象となるデータが存在するスタック領域を問い合わせる(シーケンスSeq2)。該問い合わせを受け取ったOS6のメモリ管理部6aは、チェックポイントデータとして保存対象となるデータのスタック領域に関する情報を保存対象リストとして、問い合わせ元のチェックポイント管理部7に送り返す(シーケンスSeq3)。メモリ管理部6aからの返送を受け取ったチェックポイント管理部7は、受け取った保存対象リストを、チェックポイント用ファイルシステム8に書き込んで保存する(シーケンスSeq4)。
ここで、チェックポイント管理部7は、最初に呼び出された時は、プログラム実行に必要なデータの全てをチェックポイントデータとして保存することが必要であるが、第2回目以降に呼び出された時は、直前に呼び出された際に保存したデータとの差分のデータを保存しておけば、プログラム実行に必要なデータの全てを再生することができるので、最初と第2回目以降とでは一部の処理が異なるが、図2に示す処理の流れは同じである。
つまり、OS6から起動されたチェックポイント管理部7は、処理の最初に、シーケンスSeq2において、保存対象となるデータが存在するスタック領域の問い合わせをOS6のメモリ管理部6aに対して行うが、この際に、或る特定のプログラムの実行中に初めて起動されたチェックポイント管理部7は、初めて呼び出された場合として、当該特定のプログラム実行に必要な全ての領域のデータを保存する場合であることを示す全データ取得要求フラグを設定してメモリ管理部6aに対して問い合わせを行う。
該全データ取得要求フラグが設定されている場合、OS6のメモリ管理部6aは、シーケンスSeq3において、プログラムの実行に必要な全ての領域のデータを保存することを要求されている場合として、プログラムの使用しているデータ領域の全てとプログラム実行に必要な管理データとを保存対象リストとして問い合わせ元のチェックポイント管理部7に対して通知する。
一方、第2回目以降の呼び出しの場合には、チェックポイント管理部7は、シーケンスSeq2において、該全データ取得要求フラグが設定されていない状態にして、OS6のメモリ管理部6aに対して問い合わせを行う。問い合わせを受け取ったOS6のメモリ管理部6aは、該全データ取得要求フラグが設定されていない場合として、シーケンスSeq3において、直前のチェックポイント以降のプログラムの実行によって変更されたページに関する情報を保存対象リストとして問い合わせ元のチェックポイント管理部7に対して通知する。なお、直前のチェックポイント以降のプログラムの実行によって変更された部分のうち、現チェックポイント時点においても有効な範囲にあるデータのみを保存対象の領域として抽出する処理の詳細については後述する。
次に、図3のフローチャートの処理の説明に戻って、チェックポイント管理部7は、OS6のメモリ管理部6aから得た保存対象リストに基づいて、該保存対象リストに含まれているスタック領域の有効な範囲の確認を行う(ステップS3)。ここで、スタック領域の有効な範囲を確認する手順について図4のフローチャートを用いて説明する。図4は、図1の情報処理システムのチェックポイント管理部7において保存対象リストに含まれているスタック領域の有効な範囲の確認を行う手順の一例を示すフローチャートである。スタック領域の有効な範囲を確認する手順については、チェックポイント管理部7が最初に呼び出されて全てのスタック領域のデータを保存する場合と、第2回目以降に呼び出されて直前のチェックポイントから変化があったスタック領域のデータのみを差分データとして保存する場合と、の両者について変わることはなく、同じ手順で構わない。
図4のフローチャートにおいて、チェックポイント管理部7は、スタック領域の有効な範囲を確認するために、まず、OS6のメモリ管理部6aに対して、確認すべきスタック領域の有効な範囲を問い合わせる。問い合わせを受け取ったOS6のメモリ管理部6aは、停止しているプログラムの情報に基づいて、スタック領域の有効範囲を示すスタックのベースアドレスと現在のスタックの先頭のアドレスとを取得する(ステップS11)。該スタックの有効範囲を示す情報は、プログラムの実行に必要となる情報の一部であり、OS6のメモリ管理部6aは、該スタックの有効範囲を示す情報を参照することにより、プログラムの実行に必要となる情報がどこに存在しているかということを容易に特定することが可能である。
次に、OS6のメモリ管理部6aは、チェックポイントとして保存対象になっている領域のうち有効なスタック領域に関して、書き込み対象のスタック領域に割り当てられているページをアドレス情報として特定して(ステップS12)、特定したスタック領域が、現在有効なスタック領域であるか、あるいは、現在は無効になっているスタック領域であるかを判定する(ステップS13)。該判定は、直前に調べたスタックのベースアドレスおよびスタックの先頭アドレスを利用して、現在のスタックのベースアドレスおよび現在のスタックの先頭のアドレスと比較することにより、容易に判定することができる。
しかる後、OS6のメモリ管理部6aは、チェックポイントとして保存対象になっている領域を示すページが、スタック領域のページであるか否か、スタック領域のページであった場合、現在有効なスタック領域であるか否かを示す判定結果を、チェックポイント管理部7に対して通知する(ステップS14)。チェックポイント管理部7は、OS6のメモリ管理部6aから該判定結果を受け取ることにより、スタック領域の有効な範囲を確認することができる。
なお、この際、スタック領域の先頭部分を含むページについては、現在のチェックポイント時点において設定されている、当該ページにおいて有効な範囲を特定するアドレスを先頭アドレスとして通知している。而して、チェックポイント管理部7においては、保存対象のスタック領域のページの有効な範囲を限定することができる。かくのごときスタック領域の有効な範囲の限定は、チェックポイントにおける保存対象の削減につながる。その理由は、プログラムの実行中においては、プログラム実行における関数呼び出しに対応してスタック領域が大きく増減するからである。図6は、チェックポイント時点におけるスタック領域の有効範囲とプログラム実行時におけるスタック領域の有効範囲との変化の様子の一例を説明するための模式図であり、第1ページから第4ページまでのスタック領域を例にして、ベースアドレスを“base”、先頭アドレスを“top”として示している。
図6において、第N回目のチェックポイント時点においては、図6(A)の“base”と“top”とによって示すように、第1ページの先頭から第2ページの途中までのハッチングを施した領域が有効なスタック領域となっている。しかる後、プログラムの実行が再開されて、次の第(N+1)回目のチェックポイント時点に達するまでの間に、プログラムの実行における関数呼び出しによってスタック領域が最大に利用された状態においては、図6(B)の“base”と“top”とによって示すように、第1ページの先頭から第4ページの途中までのハッチングを施した領域が利用されている。しかし、次の第(N+1)回目のチェックポイント時点においては、図6(C)の“base”と“top”とによって示すように、利用されているスタック領域が大幅に少なくなって、第1ページの先頭から当該第1ページの途中までのハッチングを施した領域のみに有効なスタック領域がない状態になっている。
すなわち、図6において、第N回目のチェックポイント時点から変更があったスタック領域としては第1ページから第4ページまでのハッチングを施した領域が該当するものの、第(N+1)回目のチェックポイント時点において実際に保存が必要なスタック領域は第1ページの途中までのハッチングを施した領域のみであり、第2ページから第4ページの領域についての保存は不要である。したがって、本実施形態においては、図6(C)の第1ページのハッチングを施した領域のみを保存すべき領域として取り扱っている。しかし、本実施形態において実施しているような処理を行わない場合には、第1ページから第4ページまでの領域を全て保存することになる。
次に、図3のフローチャートの処理の説明に戻って、ステップS3において、チェックポイント管理部7は、OS6のメモリ管理部6aから受け取った判定結果に基づき、スタック領域の有効な範囲を確認すると、ステップS2において最初に取得した保存対象のリストの中から、スタック領域として、現在は無効になっていて、保存することが不要とされたページを削除し、保存が必要なページのみを対象とするリストに更新して、最終的な保存対象リストを作成する(ステップS4)。そして、最終的な該保存対象リストに登録されているページのデータをチェックポイント用ファイルシステム8に現在のチェックポイント時点におけるチェックポイントデータとして書き込む(ステップS5)。
ここで、チェックポイントデータの書き込みを行うチェックポイント用ファイルシステム8は、通常のプログラム実行に使用するファイルシステム9とは異なり、大きなサイズのデータの書き込みに対して最適化されていることが望ましい。つまり、チェックポイント時点においてはチェックポイントデータとして一度に大量のデータの書き込みが発生し、また、チェックポイントデータを読み出す場合にも、同様に、一度に大量のデータの読み出しを行う処理となるのに対して、通常のプログラム実行に使用するファイルシステム9においては、小さなデータ量の単位でデータの読み書き動作を頻繁に繰り返す処理が行われる。したがって、ファイルシステム9の場合には、チェックポイント用システムとは異なり、一般に、小さなデータ量の頻繁な読み書き動作について最適化を行う仕組みが採用されている。
つまり、チェックポイント用として通常のファイルシステム9を利用すると、チェックポイントデータの書き込み効率が悪くなり、書き込みに要する時間が長くなってしまうので、本実施形態においては、図1に示すように、ファイルシステム9とは別個に、チェックポイント用ファイルシステム8をチェックポイント専用に備えている。
なお、図3のフローチャートにおけるステップS4の保存対象リストの更新からステップS5の保存対象のチェックポイントデータの書き込みまでの処理は、チェックポイント管理部7が最初に呼び出された場合であっても、第2回目以降に呼び出された場合であっても、特別な処理を行う必要はなく、全て、同じ処理を行うようにすれば良い。
そして、保存対象のチェックポイントデータのチェックポイント用ファイルシステム8への書き込みが終了すると、チェックポイント管理部7は、チェックポイント用ファイルシステム8の保存内容を、ネットワーク10を介して接続された外部の大容量ストレージ11に転送するために、チェックポイント用ファイルシステム8と大容量ストレージ11とを同期化する処理を起動する(ステップS6)。かくのごとき同期化処理は、通常のストレージのバックアップ機能やディザスタリカバリ(Disaster Recovery)用として提供されている機能を利用することによって、データ転送処理をプロセッサによって行う必要がなくなり、負荷の削減を図ることができる。
次に、チェックポイント管理部7は、次回以降のチェックポイント時点において収集されるチェックポイントデータに関し、直前のチェックポイント時点から変更されたデータの差分を検出するための差分検出設定をOS6に対して要求する(ステップS7)。該差分検出設定は、OS6に対してチェックポイントデータの差分を利用する差分モードで実行していることを示す差分検出フラグを設定することによってOS6に対して要求し、該差分検出フラグが設定された要求を受け付けたOS6は、プログラムの実行中に読み書き可能な状態に設定されていたページを全て書き込み禁止状態に変更するという処理を行う。以降、プログラムの実行中に、書き込み禁止状態に設定されているページへの書き込み動作が発生すると、ページフォルト割り込みとして検出されるので、直前のデータとの差分が発生するページを容易に判別することができる。また、チェックポイントデータの保存対象リストをクリアして何もない状態に戻す。しかる後、チェックポイント管理部7は、停止していたプログラムの実行を再開させる(ステップS8)。
次に、図3のステップS7およびステップS8において、差分検出設定としてプログラムの読み書き対象のページ全てを書き込み禁止状態に設定して、プログラムの実行を再開した後の動作について、すなわち、再開したプログラムの実行中において、書き込み禁止状態に変更されたページに対する書き込みが発生した場合の動作について図5のフローチャートを参照しながら詳細に説明する。図5は、図3のフローチャートの処理により書き込み禁止状態に設定されたページに対する書き込みが発生した場合の動作の一例を説明するためのフローチャートである。
図3のフローチャートに示したように、チェックポイント管理部7は、チェックポイントデータをチェックポイント用ファイルシステム8に最初に保存した以降においては、プログラムが使用するページ全てを書き込み禁止状態に設定している。したがって、図5のフローチャートにおいて、プログラムの実行中に、書き込み禁止状態のいずれかのページに対する書き込みが発生すると、ページフォルトの割り込みが発生して、プログラムの実行が停止し、OS6のメモリ管理部6aのページフォルト処理が起動される(ステップS21)。
起動したOS6のメモリ管理部6aは、差分検出フラグを確認することにより、差分モードのチェックポイント動作であり、チェックポイントデータとして差分データを採取するために設定された差分検出設定の結果によるページフォルトの割り込みであるか否かを調べる。その結果、差分データ採取のためのページフォルト割り込みであることを認識すると、当該ページをチェックポイントの保存対象リストに追加登録する(ステップS22)。しかる後、OS6のメモリ管理部6aは、当該ページへの書き込みを有効にする状態に設定を変更して、プログラムの実行を再開させる(ステップS23)。この結果、実行を再開したプログラムは、ページフォルトを起こした当該ページへの書き込み処理を正常に実行することができる(ステップS24)。
チェックポイント管理部7の動作が完了して、実行が再開されたプログラムにおいては、以降、書き込みを有効な状態に設定変更された当該ページに関する書き込み禁止状態が解除されているので、当該ページに対する書き込み動作については、ページフォルトの割り込み等が発生することはなく、通常通りに、実行することが可能になる。
以上のような処理を行うことによって、最初のチェックポイント時点以降において、書き込み禁止状態に設定されたページのうち、プログラムの実行により、書き込みが発生したページに関する情報を順次登録した保存対象リストが作成されていくことになる。かくのごとき処理は、一般的なOSであるLinux(登録商標)などに実装されている「コピーオンライト(Copy-on-Write)」機能によってページのコピーを行う処理と類似したものであり、容易に実装することができる。
なお、図3のフローチャートのステップS8において、チェックポイント管理部7がプログラムの実行を再開させる際に、できる限り安全な実行を可能にしようとして、チェックポイント用ファイルシステム8が外部の大容量ストレージ11との間で実施している同期化処理の完了を待ってから、プログラムの実行を再開することが望ましいという考え方もあり得る。
しかし、本実施形態においては、チェックポイント用ファイルシステム8への書き込みが終了した後は、たとえ、プログラムのデータの変更が発生したとしても、次のチェックポイントの時点に達するまでは、チェックポイントデータとしてチェックポイント用ファイルシステム8に保存されたデータに対する影響を与えることがないし、また、前述したように、外部の大容量ストレージ11との間の同期化処理に関するデータ転送処理をプロセッサによって行う必要はないので、プログラムの実行と同期化処理との間の競合を引き起こすこともなく、プロセッサに同期化処理に関する負荷が発生することもない。したがって、チェックポイント用ファイルシステム8と外部の大容量ストレージ11との間の同期化処理の終了を待つことなく、図3のフローチャートのステップS7において、チェックポイントの差分検出設定が完了した時点で、ステップS8においてプログラム実行を再開させても問題はない。
実際に、大容量ストレージ11に対するチェックポイントデータの保存が完了するまでの間に計算機1に障害が発生した場合の対応を考慮すると、同期化処理の完了を待つことなくプログラムを再開させた場合であっても、あるいは、同期化処理の完了を待ってからプログラムを再開させた場合であっても、いずれの場合においても、再開が可能なチェックポイントについて変わることがない。さらには、同期化処理の完了を待つことなくプログラムを再開させた場合には、プログラムの実行と同期化処理との一部の処理がオーバラップされ、プログラム実行時間の比率を高くすることができるという利点がある。ただし、同期化処理の完了を待つことなくプログラムを再開させた場合においては、当然のことではあるが、チェックポイント管理部7は、次のチェックポイント時点までには、チェックポイント用ファイルシステム8と外部の大容量ストレージ11との間の同期化処理が終了していることを確認することが必要である。
また、チェックポイント管理部7は、実行しているプログラムが完全に終了した場合には、当該プログラムに関するチェックポイントデータとして保存したデータを、チェックポイント用ファイルシステム8と大容量ストレージ11との双方から削除する処理を行う。
(本発明の他の実施形態)
前述した実施形態においては、チェックポイント用ファイルシステム8として、大量データ読み書き用の通常の機能を備えたストレージを用いる場合について説明した。しかし、チェックポイント用ファイルシステム8として、重複排除機能を有するストレージ装置を利用することにしても良い。重複排除機能を有するストレージ装置を利用することにより、データが変更されたページにおいて保存対象となるデータが発生した場合であっても、当該ページにおいて変更されていない領域の保存を省くことが可能になる。さらに、重複排除機能を有するストレージ装置に圧縮機能も付与されている場合には、保存するデータ容量をさらに削減することが可能になる。また、計算機1において複数のコア5により並列実行されるプログラムがチェックポイント用ファイルシステム8として同じファイルシステムを利用する場合には、重複排除機能を有するストレージ装置を用いることによって、複数のプログラムのチェックポイントデータ同士間における重複排除によるデータ削減効果を期待することができる。
また、前述した実施形態においては、チェックポイント用ファイルシステム8として、チェックポイント専用のファイルシステムを備えている場合について説明した。しかし、実際のチェックポイントの適用形態に応じて、場合によっては、チェックポイントデータを書き込む領域を通常のプログラム実行に利用しているファイルシステム9と同じ領域を利用するようにしても良い。ファイルシステム9と同じ領域を利用することにより、従来の情報処理システムのシステム構成であっても、前述した実施形態に係るチェックポイント機能を利用することができる。
また、前述した実施形態においては、チェックポイント管理部7は、最初の呼び出し時においてのみチェックポイントデータとしてプログラムの実行に必要とする全てのデータを保存し、第2回目以降の呼び出し時には、変更された部分だけを差分データとして保存する場合について説明した。しかし、復元する際の効率を考慮すると、あらかじめ定めた一定回数(例えば10回など)の呼び出し毎に、チェックポイントデータとしてプログラムの実行に必要とする全てのデータを改めて保存し直すようにしても良い。さらには、場合によっては、例えば、スタック領域等の特定の領域のデータに関しては、呼び出しがある都度、毎回、プログラムの実行に必要とする全てのデータを保存するという既存の仕組みを実装するようにしても良い。
(実施形態の効果の説明)
以上に詳細に説明したように、本実施形態においても、次のような効果が得られる。
第1の効果は、チェックポイントデータとして保存するスタック領域のデータ量を削減することが可能なことである。その理由は、直前のチェックポイント時点において保存した後に再開したプログラムの実行により変更されているスタック領域であっても、現チェックポイント時点においては、スタック領域として現在利用していない領域をOS6とチェックポイント管理部7とが連携して解析することによって、スタック領域としては、無効な領域のデータであり、データ保存が不要な領域であることを判定することを可能にしているためである。而して、チェックポイントデータとして保存するデータ量を削減し、チェックポイント用ファイルシステム8へのチェックポイントデータの保存時間のみならず、チェックポイント用ファイルシステム8からのチェックポイントデータの読み込み時間も削減することができる。
第2の効果は、チェックポイントデータの外部への転送やリスタートに要する時間を短縮することが可能なことである。その理由は、チェックポイントデータのデータ量を削減することによって外部の大容量ストレージ11への転送が必要なデータ量も削減されること、および、リスタート時において不要なデータ領域の割り当てとデータの書き込みとが不要になるためである。
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
1 計算機
2 ノード
3 他のノード
4 CPU(Central Processing Unit)
5 コア
6 OS
6a メモリ管理部
7 チェックポイント管理部
8 チェックポイント用ファイルシステム
9 ファイルシステム(FS:File System)
10 ネットワーク
11 大容量ストレージ

Claims (10)

  1. チェックポイント時点としてあらかじめ定めた時間に達する都度、プログラムの実行に必要とするデータをチェックポイントデータとしてチェックポイント用ファイルシステムに保存する機能のあるチェックポイント管理部を有する情報処理システムであって、
    前記チェックポイント管理部は、
    前記チェックポイントデータのうちOS(Operating System)との間のインタフェース情報を蓄えるスタック領域に存在するデータに関し、OSと連携して、前記スタック領域内の現時点において有効な範囲を特定し、特定した該有効な範囲のデータに限定して、
    最初に呼び出された際には、特定した前記有効な範囲のデータの全てを前記チェックポイント用ファイルシステムに保存し、
    第2回目以降に呼び出された際には、特定した前記有効な範囲のデータのうち、直前のチェックポイント時点と現チェックポイント時点との間で変化があったデータを差分データとして前記チェックポイント用ファイルシステムに保存する
    ことを特徴とする情報処理システム。
  2. 現時点において有効なスタック領域であるか否かを、該スタック領域のベースアドレスおよび先頭アドレスを直前のチェックポイント時点における該スタック領域のベースアドレスおよび先頭アドレスとそれぞれ比較することにより、判定することを特徴とする請求項1に記載の情報処理システム。
  3. 前記チェックポイント管理部は、
    前記チェックポイントデータのうち前記スタック領域に存在するデータ以外のデータに関しては、
    最初に呼び出された際には、対象とする該データの全てを前記チェックポイント用ファイルシステムに保存し、
    第2回目以降に呼び出された際には、対象とする該データのうち、直前のチェックポイント時点と現チェックポイント時点との間で変化があったデータを差分データとして前記チェックポイント用ファイルシステムに保存する
    ことを特徴とする請求項1または2に記載の情報処理システム。
  4. 前記チェックポイント管理部は、
    前記チェックポイントデータの前記チェックポイント用ファイルシステムへの保存が完了した時点で、外部に配置されているストレージ装置に前記チェックポイントデータをバックアップ保存するために、前記チェックポイント用ファイルシステムと前記ストレージとの間の同期化処理を起動する
    ことを特徴とする請求項1ないし3のいずれかに記載の情報処理システム。
  5. 前記チェックポイント管理部は、
    最初に呼び出された際における前記チェックポイントデータの前記チェックポイント用ファイルシステムへの保存が完了した時点で、次回以降のチェックポイント動作を差分モードで実行することを示す差分検出フラグを設定して、プログラムの実行中に読み書きを行う全ての領域を書き込み禁止状態に設定する要求をOSに対して行い、
    該要求を受け取ったOSは、要求された全ての領域を書き込み禁止状態に設定し、以降のプログラムの実行中に、書き込み禁止状態の領域への書き込みによるページフォルト割り込みが発生した際に、前記差分検出フラグが設定されていた場合には、該領域のデータが変更される旨を前記チェックポイント管理部に通知するとともに、該領域の書き込み禁止状態を解除する
    ことを特徴とする請求項1ないし4のいずれかに記載の情報処理システム。
  6. 前記チェックポイント用ファイルシステムとして、
    重複排除機能を有するストレージ装置、または、重複排除機能および圧縮機能の双方の機能を有するストレージ装置を用いる
    ことを特徴とする請求項1ないし5のいずれかに記載の情報処理システム。
  7. 前記チェックポイント管理部は、
    第2回目以降であっても、呼び出された回数があらかじめ定めた一定回数になる都度、前記チェックポイントデータとして、プログラムの実行に必要とする全てのデータを保存する
    ことを特徴とする請求項1ないし6のいずれかに記載の情報処理システム。
  8. チェックポイント時点としてあらかじめ定めた時間に達する都度、プログラムの実行に必要とするデータをチェックポイントデータとしてチェックポイント用ファイルシステムに保存する機能のあるチェックポイント管理ステップを有する情報処理システムにおけるチェックポイントデータ採取方法であって、
    前記チェックポイント管理ステップにおいて、
    前記チェックポイントデータのうちOS(Operating System)との間のインタフェース情報を蓄えるスタック領域に存在するデータに関し、OSと連携して、前記スタック領域内の現時点において有効な範囲を特定し、特定した該有効な範囲のデータに限定して、
    最初に呼び出された際には、特定した前記有効な範囲のデータの全てを前記チェックポイント用ファイルシステムに保存し、
    第2回目以降に呼び出された際には、特定した前記有効な範囲のデータのうち、直前のチェックポイント時点と現チェックポイント時点との間で変化があったデータを差分データとして前記チェックポイント用ファイルシステムに保存する
    ことを特徴とするチェックポイントデータ採取方法。
  9. 現時点において有効なスタック領域であるか否かを、該スタック領域のベースアドレスおよび先頭アドレスを直前のチェックポイント時点における該スタック領域のベースアドレスおよび先頭アドレスとそれぞれ比較することにより、判定することを特徴とする請求項8に記載のチェックポイントデータ採取方法。
  10. 請求項8または9に記載のチェックポイントデータ採取方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とするチェックポイントデータ採取方法。
JP2015047204A 2015-03-10 2015-03-10 情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム Pending JP2016167212A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015047204A JP2016167212A (ja) 2015-03-10 2015-03-10 情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015047204A JP2016167212A (ja) 2015-03-10 2015-03-10 情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム

Publications (1)

Publication Number Publication Date
JP2016167212A true JP2016167212A (ja) 2016-09-15

Family

ID=56897595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015047204A Pending JP2016167212A (ja) 2015-03-10 2015-03-10 情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム

Country Status (1)

Country Link
JP (1) JP2016167212A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604205A (zh) * 2016-12-08 2018-09-28 华为技术有限公司 测试点的创建方法,装置和系统
JP2019101989A (ja) * 2017-12-07 2019-06-24 富士通株式会社 ストレージ制御装置およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604205A (zh) * 2016-12-08 2018-09-28 华为技术有限公司 测试点的创建方法,装置和系统
CN108604205B (zh) * 2016-12-08 2021-02-12 华为技术有限公司 测试点的创建方法,装置和系统
JP2019101989A (ja) * 2017-12-07 2019-06-24 富士通株式会社 ストレージ制御装置およびプログラム
US11249666B2 (en) 2017-12-07 2022-02-15 Fujitsu Limited Storage control apparatus

Similar Documents

Publication Publication Date Title
US8074222B2 (en) Job management device, cluster system, and computer-readable medium storing job management program
US7565501B2 (en) Storage controller and data management method
CN109358947B (zh) 一种虚拟机快照的实现方法及系统
JP2007286860A (ja) データ転送方法及び情報処理装置
US20070214334A1 (en) Storage system
EP3147797B1 (en) Data management method, node and system for database cluster
US20170262196A1 (en) Load monitoring method and information processing apparatus
KR20170054767A (ko) 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법
JP5464003B2 (ja) データベース管理装置およびデータベース管理プログラム
US20150067442A1 (en) Information processing apparatus and data repairing method
EP3035215A1 (en) File system, control method for file system, and control program for file system
US9507657B2 (en) Investigation program, information processing apparatus, and information processing method
US9430485B2 (en) Information processor and backup method
US9400723B2 (en) Storage system and data management method
JP2014010540A (ja) 仮想サーバ環境のデータ移行制御装置、方法、システム
JP2016167212A (ja) 情報処理システム、チェックポイントデータ採取方法およびチェックポイントデータ採取プログラム
US10360990B2 (en) Information processing device, information processing method, and program
US20130282998A1 (en) Backup system and backup method
WO2024113543A1 (zh) 数据处理方法、系统、装置、非易失性可读存储介质及电子设备
US11126514B2 (en) Information processing apparatus, information processing system, and recording medium recording program
JP6668733B2 (ja) 制御装置、管理装置、ストレージシステム、制御プログラム、管理プログラム、制御方法、および管理方法
JP6292796B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20170090790A1 (en) Control program, control method and information processing device
US10866756B2 (en) Control device and computer readable recording medium storing control program
JP6627541B2 (ja) ボリューム管理装置、ボリューム管理方法およびボリューム管理プログラム