JP6604241B2 - 情報処理システム、情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理システム、情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP6604241B2
JP6604241B2 JP2016045536A JP2016045536A JP6604241B2 JP 6604241 B2 JP6604241 B2 JP 6604241B2 JP 2016045536 A JP2016045536 A JP 2016045536A JP 2016045536 A JP2016045536 A JP 2016045536A JP 6604241 B2 JP6604241 B2 JP 6604241B2
Authority
JP
Japan
Prior art keywords
updated
page
storage
stored
cpu
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.)
Active
Application number
JP2016045536A
Other languages
English (en)
Other versions
JP2017162155A (ja
Inventor
元義 廣瀬
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016045536A priority Critical patent/JP6604241B2/ja
Priority to US15/439,978 priority patent/US10346234B2/en
Publication of JP2017162155A publication Critical patent/JP2017162155A/ja
Application granted granted Critical
Publication of JP6604241B2 publication Critical patent/JP6604241B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報処理システム、情報処理装置、情報処理方法およびプログラムに関する。
障害の発生による中断や停止が発生した場合に影響の大きいシステム、例えば、基幹業務遂行のために使用されるシステム等はミッション・クリティカル・システムと呼ばれる。また、ミッション・クリティカル・システムが利用される分野はミッション・クリティカル分野と呼ばれる。このようなシステムで稼働するサーバ等の情報処理装置、あるいは情報処理装置上で稼働するOperating System(OS)等では、発生頻度の異なる様々な障害に対応できるようにメモリダンプ機能が設けられている。
ところで、近年のCentral Processing Unit(CPU)とメモリ技術の発達により、メモリ最大搭載容量が12TBに達する情報処理装置も提供されている。今後もDual Inline Memory Module(DIMM)容量の増加に伴って、メモリ搭載容量の増加が見込まれる。さらに、インメモリデータベースのように、メモリを有効に利用するためのソフトウェアが普及し、さらに、情報処理装置でのメモリ積載容量が増加する見込みである。
特開2009−205254号公報 特開平4−195565号公報 特開2002−73378号公報
今後、メモリ搭載容量の増加に伴って、メモリダンプのための時間が増加することが予想される。その結果、情報処理装置で障害が発生した後、情報処理装置が再起動するまでの時間が増加する。このため、従来、高速なハードウェアを用いることでメモリダンプのための時間の短縮が試みられてきた。また、例えば、まず、OS中核部のメモリ領域をダンプし、OSを再ロード後、ダンプ済みでないメモリ領域を順次ダンプすることでシステム再立ち上げまでの時間を短縮する方法も提案されている。
しかし、高速なハードウェアの採用はコスト上昇の要因となりえる。また、上記OS中核部のメモリ領域をダンプし、OSを再ロード後、ダンプ済みでないメモリ領域をダンプする方法では、最終的にダンプの結果が得られるまでに時間を要するため、メモリダンプの高速化がなされていない。
そこで、本実施形態は、ハードウェアの性能向上に頼らないで、メモリダンプ処理を高速化することを目的とする。
開示の技術の一側面は、次の情報処理装置によって例示される。本情報処理装置は、複数のエリアに区分された物理メモリと、前記複数のエリアにそれぞれ記憶された記憶情報が更新されたときにそれぞれ更新済みの設定がされる複数のフラグを記憶するフラグ記憶部と、プロセッサと、を備える。このプロセッサは、障害が発生していないときには、更新済みの設定がされたフラグに対応する更新済みエリアに記憶された記憶情報を記憶装置
に書き込む第1の処理と、仮想記憶方式の仮想メモリとして、前記物理メモリに記憶された記憶情報が保存される保存装置に前記更新済みエリアに記憶された記憶情報を保存するとともに前記更新済みの設定がされたフラグをクリアする処理と、を実行する。さらに、障害が発生したときに、プロセッサは、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理を実行する。
本情報処理装置によれば、ハードウェアの性能向上に頼らないで、メモリダンプ処理を高速化することができる。
比較例に係るサーバの構成を例示する図である。 比較例におけるダンププログラムの処理を例示するフローチャートである。 比較例のサーバにおける障害発生から再起動までのシーケンスの例である。 ダンププログラムを事前実行する処理を例示するフローチャートである。 実施形態1に係るサーバの構成を例示する図である。 サーバにおける障害のない正常時の動作シーケンスの例である。 変更ビットに関連するCPUのハードウェア回路の処理を例示する図である。 タイマー割り込みによる事前のダンプ処理および障害発生時のダンプ処理のシーケンスの例である。 ページ変換テーブルの構成を例示する図である。 ページ変換結果テーブルの構成を例示する図である。 実施形態1のOSブート処理(図6のS1)の詳細を例示するフローチャートである。 OS初期化処理(図6のS2)の詳細を例示するフローチャートである。 ページ割当処理(図6のS4、S6)の詳細を例示するフローチャートである。 タイマー割り込みの処理(図8のA11およびS11)の詳細を例示するフローチャートである。 ダーティページ書込み処理(図14のD11の詳細)を例示するフローチャートである。 変更ビット(C)の履歴D0/D―1/D-2の遷移を例示する表である。 実施形態1における障害発生時のメモリダンプ処理を例示するフローチャートである。 実施形態2に係るサーバの構成を例示する図である。 ダーティビット(D)に関連するCPUのハードウェア回路の処理を例示する図である。 ページ変換テーブルの構成を例示する図である。 実施形態2におけるページ割当処理を例示するフローチャートである。 実施形態2のダーティページ書込み処理を例示するフローチャートである。 実施形態2における障害発生時のメモリダンプ処理を例示するフローチャートである。
以下、図面を参照して、一実施形態に係る情報処理システムについて説明する。以下の実施形態の構成は例示であり、本情報処理システムは実施形態の構成には限定されない。本情報処理システムは、仮想記憶方式を採用し、メモリ領域に対応するスワップファイル15(図5)を有する。また、本情報処理システムは、障害発生時に障害解析のため、メ
モリ領域に記憶された情報をダンプ領域に書き込む処理、いわゆるメモリダンプを実行する。本実施の形態では、以下の処理を実行する情報処理システムが例示される。(1)本情報処理システムは、障害発生前の通常動作中に物理メモリにロードされたデータを予めダンプ領域に書き込んでおく。より具体的には、本情報処理システムは、物理メモリの領域が更新された否かを判定し、更新された物理メモリの領域を定期的にダンプ領域に書き込むとともに、スワップファイル15にも書き込む。この処理により、本情報処理システムは、メモリ領域とスワップファイル15を一致させ、物理メモリの領域を更新のない状態に戻す。(2)本情報処理システムは、障害発生時には、更新されている領域を選択して、ダンプ領域に書き込む。以上の手順によって、本情報処理システムは、障害発生時にダンプ領域に書き込む量を削減する。この場合に、障害発生時に選択されなかった物理メモリの領域の情報は初期状態の情報か、あるいは、スワップファイル15に保存された後更新されていない情報であって、すでにダンプ領域に書き込み済みの情報である。したがって、本情報処理システムの手順によれば、障害発生時に、更新されている領域を選択してダンプ領域に書き込むことで、事前にダンプ領域に書き込み済みの情報を含めて障害解析のための情報を早期に取得できる。
[比較例]
図1から図4を参照して、比較例に係る処理を説明する。図1に、比較例に係る情報処理システムの一例として、サーバ501の構成を例示する。サーバ501は、CPU511と物理メモリ512と、入出力部(I/O)514を有する。また、入出力部514には、スワップファイル515およびダンプ用ストレージ516が接続される。物理メモリ512は、ページと呼ばれるエリアに区切られている。物理メモリ512は、スワップファイル515とともに、仮想記憶方式の主記憶を形成する。物理メモリ512のページは、スワップファイル515の対応するページとの間で、スワップアウトおよびスワップインと呼ばれる保存処理および読み出し処理が実行される。仮想記憶方式で物理メモリ上のページを物理ページとも呼ぶ。ダンプ用ストレージ516は、ダンプ領域を有する。ダンプ領域は、物理メモリ512のページに対応するダンプデータのエリアに分割されている。
図2は、比較例におけるダンププログラムの処理を例示する。ダンププログラムは、サーバ501等の情報処理システムにおいて障害が発生すると起動される。ダンププログラムを実行するCPU511は、まず、ページカウンタを初期化する(D521)。そして、CPU511はページカウンタに対応する物理メモリ512のページを読み出す(D522)。そして、CPU511は、読み出したページをダンプ用ストレージ516に書き込む(D523)。そして、CPU511は、ページカウンタをカウントアップする(D524)。そして、CPU511は、全ページの書き込みが終了したか否かを判定する(D525)。全ページの書き込みが終了していない場合、CPU511は、S522の処理に戻る。一方、ページカウンタが物理メモリ512の末尾のページに達し、全ページの書き込みが終了した場合、CPU511は、ダンププログラムを終了する。
図3に、比較例のサーバ501における障害発生から再起動までのシーケンスを例示する。サーバ501のCPU511は、様々なアプリケーションプログラム等を実行し、サービスを提供してユーザの業務を支援する。サーバ501に障害が発生すると、CPU511のハードウェアが検知し、OSに通知する。すると、OSは、ダンププログラムを起動する(S500)。ダンププログラムは、ダンプ処理を実行する(D500)。ダンププログラム終了後、OSに制御が戻り、OSはハードウェアをリセットし、再起動を指示する(S600)。そして、サーバ501は、再起動を開始する(A500)。再起動が完了すると、サーバ501はユーザの業務支援を再開する。
以上の処理では、物理メモリ512のページ数が増加すると、ダンププログラムの実行
が長時間となり、障害発生から再起動が完了するまでの業務支援の停止時間が長くなる。そのため、障害発生後に起動されていたダンププログラムを、業務中に常時動作するプロセスとして実行することが考えられる。ダンププログラムを事前実行するプロセスによって、サーバ501がメモリの内容をダンプ用ストレージ516に予め書き込んでおく。このプロセスによって、サーバ501は障害発生時のダンププログラムの処理を軽減するのである。さらに、事前実行のためのプロセスが業務用のアプリケーションプログラムの実行に影響を与えないように、タイマーで一定時間毎に起動されるようにする。すなわち、ダンププログラムの1回の実行で書き込む量が制限されるようにする。
図4に、ダンププログラムを事前実行する処理を例示する。事前実行のプロセスはタイマー割り込みで起動される。事前実行のプロセスでは、CPU511は、まず、前回実行終了時のページカウンタの値を読み出す(D541)。そして、CPU511はページカウンタに対応する物理メモリ512のページを読み出す(D542)。そして、CPU511は、読み出したページをダンプ用ストレージ516に書き込む(D543)。そして、CPU511は、ページカウンタをカウントアップする(D544)。そして、CPU511は、全ページの書き込みが終了したか否かを判定する(D545)。全ページの書き込みが終了した場合、CPU11は、ページカウンタの値を初期化し、次回の実行で、物理メモリ512の先頭から処理を開始するように設定する。一方、全ページの書き込みが終了していない場合、つまり、ページカウンタが物理メモリ512の末尾のページに達していない場合、CPU11は、そのままダンププログラムを終了する。
しかし、図4で例示したような単純な事前実行のダンププログラムでは、すでにダンプ用ストレージ516に書き込んだメモリの内容が、障害発生時点までに書き換えられる可能性を低減できない。また、障害発生時点で物理メモリ512のどの部分がダンプ済みであるかの判断ができない。したがって、図4のような単純な事前処理ではメモリダンプとしての実用性が十分ではない。
[比較例に対する改善例]
ところで、障害調査のためにメモリダンプの対象となる処理において、処理の実行によって実際に書き換えられているメモリは搭載メモリのすべてとは限らない。つまり、様々な処理の実行に伴って書き換えられるメモリ量の搭載メモリ容量に対する比率はある程度の範囲に収まっている。したがって、書き換えられていない物理メモリ512のページ、あるいは、書き換えられる可能性の低い物理メモリのページを選択して、ダンプ処理すれば、効率的な事前ダンプが可能となる。
一部のメインフレームのアーキテクチャでは、物理メモリ512の各ページに対応したキー記憶という部分に変更ビット(C)が存在する。このアーキテクチャを採用する情報処理システムは、物理メモリ512の書き換えが発生すると、変更ビット(C)を0→1に書き換えるハードウェアを有している。この機構を利用してキー記憶の変更ビット(C)=1のページを選択してダンプ領域に書き込むことで、障害時点のダンプ用ストレージ516のダンプ領域への書き込み量を削減することができる。
Unix(登録商標)サーバ等で利用されるメインフレーム以外のプロセッサ、あるいはXeon(登録商標)アーキテクチャの場合は、メインフレームのキー記憶の変更ビットがない。すなわち、他のアーキテクチャのプロセッサ場合には、キー記憶の変更ビットにあたる情報は、物理メモリ512のページに直接1対1で対応するように構成されてはいない。Unix(登録商標)サーバやXeon(登録商標)アーキテクチャの場合は、仮想アドレスから物理アドレスに変換するためのページ変換テーブル内にDirtyビット(D)が実装されている。このDirtyビット(D)はCPU内のTranslation Lookaside Buffer(TLB)内にもコピーが存在し、CPUの
書込み命令のたびにページ変換テーブル内のDirtyビット(D)の更新をしないためのフィルタとしても利用されている。
そこで、Dirtyビット(D)が実装されているアーキテクチャのプロセッサは、障害の発生時にページ変換テーブルのDirtyビットを参照しながら、Dirtyビット(D)=1のページを選択してダンプ領域に書き込むようにすればよい。このDirtyビットの利用により、物理メモリ512の各ページに対応した変更ビット(C)を用いた処理と同様のダンプ処理が実現可能となる。したがって、メインフレーム以外の情報処理装置においても、障害時点のダンプ用ストレージ516への書き込み量を削減することができる。
そして、CPU511は、物理メモリ512のページがダンプ用ストレージ516への書き込まれたとき、当該物理メモリ512のページをスワップファイル515にも保存する。このようにすることで、CPU511は、変更ビット(C)あるいはDirtyビットをクリアし、書込み無し、あるいはクリーンな状態にする。このようにすることで、仮に、その後物理ページが書き換えられたとしても、変更ビット(C)を設定するハードウェア回路によって変更ビット(C)が書込み済みに変更される。また、ページ変換テーブルを管理するハードウェアによってDirtyビットがクリーン(0)からダーティ(1)に変更される。すなわち、改善案では、サーバ501は、変更ビット(C)あるいはDirtyビットをダンプ済み否かを判断するためのフラグとして流用すればよい。
さらに、CPU511がDirtyビット(D)の過去の更新情報を記憶しておき、連続して更新されていたページを更新頻度が高い情報が記憶されていると判断するようにしてもよい。CPUが障害発生前の事前のダンプ処理の対象から更新頻度が高い物理ページを除外すればよい。更新頻度が高い物理ページは、事前ダンプしたとしても、その後更新される可能性が高く、事前ダンプの効果が低下する可能性があるからである。このように、ダンプ処理の対象を選択することで、障害発生前の通常状態での事前ダンプ処理の負荷を軽減することができる。以上のような改善例として、以下、実施形態1、および2を説明する。
[実施形態1]
図5から図17を参照して、実施形態1に係る情報処理システムを説明する。
<構成>
図5は、実施形態1に係る情報処理システムの一例であるサーバ1の構成を例示する図である。サーバ1は、CPU11と物理メモリ12と、キー記憶13と、入出力部(I/O)14と、を有する。また、入出力部14には、スワップファイル15およびダンプ用ストレージ16の記憶装置が接続される。CPU11はプロセッサの一例である。CPU11と物理メモリ12と、キー記憶13と、入出力部(I/O)14とが情報処理装置の一例である。CPU11は、物理メモリ12およびスワップファイル15によって提供される仮想メモリ上に実行可能に展開されたコンピュータプログラムにより、情報処理システムあるいは情報処理装置の処理である情報処理方法を実行する。
物理メモリ12は、ページと呼ばれるエリアに区切られている。物理メモリ12は、複数のエリアに区分された物理メモリの一例である。物理メモリ12は、スワップファイル15とともに、仮想記憶方式の主記憶を形成する。物理メモリ12は、例えば、OS領域、プログラムデータ領域、未使用等の領域に分割される。
サーバ1は、物理メモリ12のページに対応して、キー記憶13と呼ばれる記憶部を有する。キー記憶13は、Keyと変更ビット(C)を有する。Keyは、ページに格納さ
れた情報保護のために使用される。変更ビット(C)は、ページの書き換え、更新の有無を示す。メインフレームで用いられるアーキテクチャでは、サーバ1は、変更ビット(C)を更新するハードウェア(制御回路)を有している。すなわち、この制御回路は、物理メモリ12の書き換えが発生すると、変更ビット(C)を0から1に書き換える。なお、CPU11内のTLB111にも変更ビット(C)のコピーが存在しており、CPU11は、同一ページへの書き込みに対して無駄な変更ビット(C)の更新を行わないように制御している。キー記憶13は、複数のエリアにそれぞれ記憶された記憶情報が更新されたときにそれぞれ更新済みの設定がされる複数のフラグを記憶するフラグ記憶部の一例である。キー記憶13は、OSによってクリア可能である。また、キー記憶13の変更ビット(C)は、物理メモリ12への書込みアクセスに連動するハードウェアの制御回路によって書込み済みに設定される。
さらに、物理メモリ12には、ページ変換結果テーブル121が格納されている。ページ変換結果テーブル121は、物理メモリ12のページに対応するエントリを有し、物理アドレスで特定されるページに格納された情報の更新頻度情報Wを有する。更新頻度情報Wは、例えば、CPU11が事前のダンプ処理を実行するときに、キー記憶13の変更ビット(C)を読み出した値の履歴である。CPU11があるページのキー記憶13の変更ビット(C)を読み出すごとに、その同一ページの変更ビット(C)が例えば、複数回連続して、変更を示している場合には、当該ページは変更頻度が高く、今後も書き換え、更新が行われる可能性が高い。したがって、CPU11は、変更ビット(C)の履歴を参照し、各物理ページの更新頻度を判定し、ダンプ処理の対象を選択する。
入出力部14に接続されるスワップファイル15およびダンプ用ストレージ16は比較例の構成と同様である。スワップファイル15には、仮想記憶空間のページで、物理メモリ12からスワップアウトされたページのデータが格納される。スワップファイル15は、仮想記憶方式の仮想メモリとして、前記物理メモリに記憶された記憶情報が保存される保存装置の一例である。ダンプ用ストレージ16には、ダンプ処理で物理メモリ12から読み出されたページが書き込まれる。スワップファイル15を格納するストレージと、ダンプ用ストレージ16とは、同一の記憶装置でも、異なる記憶装置でもよい。ダンプ用ストレージ16は、複数のエリアに記憶された記憶情報が書き込まれる記憶装置の一例である。
<シーケンス>
図6を参照して、サーバ1における障害のない正常時の動作シーケンスを説明する。図6では、主としてCPU11のハードウェアの処理が「CPUの処理」の列に記載され、OSによる処理がOSの列に記載され、ダンププログラムの実行による処理がダンプ処理の列に記載されている。
サーバ1は、電源投入等により起動されるとOSブートを実行する(S1)。OSは、ブートを完了すると、OS初期化を実行する(S2)。本実施形態では、OS初期化において、ページ変換テーブル120が設定される。さらに、本実施形態では、OS起動完了後、OSはダンプ処理を起動し、OSが動作するために割り当てた物理メモリ12をダンプ用ストレージ16のダンプ領域に書き込む(D1)。
その後、サーバ1は、初期化処理を終了し(S3)、アプリケーションプログラムを起動する(A1)。アプリケーションプログラムが起動されると、アプリケーションプログラムを実行中のCPU11は、OSに主記憶の仮想記憶上のページ(仮想ページという)を要求する(A2)。OSは、要求された仮想ページに対応する物理ページを割り当てる割当処理を実行する(S4)。要求されたページが新規のページであり、仮想記憶のスワップファイル15からの読み込みがない場合、OSは、ダンププログラムにページクリア
処理を実行させる(D2)。ページクリア処理では、CPU11は、割り当てられた物理ページに0を書き込む(以下、「0」クリアという)。また、CPU11は、割り当てた物理ページに対応するキー記憶13の変更ビット(C)を0にする。本実施形態では、この時、CPU11は、さらに、割り当てたページのダンプ領域を「0」クリアする。また、CPU11は、ページ変換結果テーブル121にも、対応ページの変換情報を書き込む。ページクリア処理の後、制御は、OSへ復帰し(S5)、さらにCPU11のアプリケーションプログラムに復帰する(A3)。
アプリケーションプログラムを実行中のCPU11は、例えば、さらに、OSに主記憶の仮想ページを要求する(A4)。すると、OSは、要求された仮想ページに対応する物理ページを割り当てる割当処理を実行する(S6)。要求された仮想ページがすでに仮想記憶空間で使用されスワップファイル15に保存されているページの場合、OSは、スワップファイル15から該当仮想ページを読み込む(S7)。S7の処理はスワップインと呼ばれる。そして、OSは、割り当てた物理ページに読み込んだ仮想ページの情報を書き込む。そして、OSは、ダンププログラムを起動し、CPU11にスワップファイル15から読み込んだページのダンプ処理を実行させる(D3)。また、CPU11は、割り当てた物理ページに対応するキー記憶13の更新ビット(C)を0にする。以上の処理によって、スワップファイル15から読み出された情報が物理ページに格納される。すなわち、物理ページに格納された情報は、スワップファイル15の情報と一致し、未更新の状態となる。さらに、物理ページが未更新の状態で、物理ページのダンプが完了していることになる。したがって、このまま障害発生まで、物理ページへの更新がない場合には、当該物理ページは、障害発生時のダンプ処理から除外されることになる。そして、D3のダンプ処理の後、制御は、OSへ復帰し(S8)、さらにアプリケーションプログラムに復帰する(A)。
図7は、変更ビット(C)に関連するCPU11の制御回路(図5)の処理を例示する。CPU11の制御回路は、アプリケーションプログラム等の処理を実行中、物理メモリ12への書き込みが発生すると、まず、TLB111にコピーされた変更ビット(C)の複製情報を参照する(A6)。そして、TLB11を参照した結果、変更ビット(C)の複製情報が1、つまり、変更済みとなっている場合には、CPU11は、そのまま物理メモリ12への書き込みを実行する(A7)。一方、TLB11を参照した結果(A8)、変更ビット(C)の複製情報が0、つまり未書き込みの場合には、CPU11は、まず、制御回路により、キー記憶13の変更ビット(C)を書き込み済み(=1)に設定するとともに、メモリに書き込みを行う。ここで、変更ビット(C)の複製情報が0の場合とは、変更ビット(C)に対応する当該物理ページが初期化されたまま、あるいは、スワップファイル15と一致したままとなっており、その後の物理メモリ12への書き込みが実行されていない場合である。
このとき、CPU11は、TLB111にコピーされた変更ビット(C)の複製情報も書き込み済み(=1)に設定する(A11)。ただし、変更ビット(C)の複製情報を書き込み済みに設定するタイミングは、図7のA11のときに限定されない。例えば、図7のTLB11を参照する処理(A8)の直後に、変更ビット(C)の複製情報を書き込み済みに設定してもよい。
すなわち、キー記憶13を具備したアーキテクチャのCPU11は、CPU11がメモリに書き込みを行うとき、キー記憶13の更新ビット(C)を1にする機能を具備しているので、CPU11がメモリに書き込みを行うと、キー記憶の更新ビット(C)は1に書き換えられる。なお、CPU11は、TLB111にコピーされた変更ビット(C)の複製情報を参照することで、変更ビット(C)へのアクセス回数、変更回数を低減できる。
図8は、タイマー割り込みによる事前のダンプ処理および障害発生時のダンプ処理のシーケンスを例示する。OSは、CPU11にタイマー割り込みを発生させ(A11)、タイマー割り込みを受けて(S11)、定期的に「ダーティページ書込み処理」を呼び出す(D11)。「ダーティページ書込み処理」では、CPU11は、キー記憶13の更新ビット(C)により、更新された物理ページを選択する。ただし、本実施形態では、CPU11は、ページ変換結果テーブル121に記録している更新ビットの履歴を基に、更新された物理ページの更新頻度を判定する。そして、CPU11は、更新された物理ページのうち、更新の頻度が基準より高いページを除外し、スワップファイル15に書き込む物理ページを選択する。そして、CPU11は、選択した物理ページをスワップファイル15に書き込むとともに、当該物理ページをダンプ用ストレージ16にも書き込む。このようにして、物理ページとスワップファイル15とが一致した状態で、当該物理ページがダンプ用ストレージ16にも書き込まれる。さらに、CPU11はスワップファイル15と物理メモリ12の内容が一致した後、キー記憶13の更新ビット(C)を0にセットする。キー記憶13の更新ビット(C)は、物理メモリ12の当該物理ページが書き換えられたときに、キー記憶13の更新ビット(C)が1に設定される。したがって、キー記憶13の更新ビット(C)が0の場合には、物理ページとスワップファイル15とが一致し、かつ、当該物理ページがダンプ領域にも書き込まれた状態が維持されていることを示す。CPU11は、更新された物理ページのうち、更新の頻度が基準より高いページを除外しているので、キー記憶13の更新ビット(C)が0のまま維持される可能性が高まる。
次に、CPU11は、CPU11内のTLB111を無効化する。そして、CPU11は、ページ変換結果テーブル121に記録している更新ビットの履歴を更新する。その後、制御は、OSに復帰し(S12)、さらに、アプリケーションの通常処理に復帰する(A12)。
CPU11において、アプリケーションプログラム実行中に障害が発生すると、まず、OSは、OSに組み込まれたダンプ機能を起動する(S13)。本実施形態のダンプ機能(OS組み込み)は、キー記憶13の更新ビット(C)が1(更新済み)の物理ページを探してダンプ処理の対象とする(D12)。更新ビット(C)が1(更新済み)に対応する物理ページは未ダンプの物理ページである。その後、制御は、OSが再起動され(S1)、さらに、アプリケーションが再起動される(A13)。
本実施形態では、更新ビット(C)=0は、D11のダーティページ書き込み処理によって、スワップファイル15と物理ページの内容とが一致し、かつ、事前に物理ページがダンプ領域に書き込まれていることを示す。ダンプ処理では、更新ビット(C)=0に対応する物理ページは除外される。そのため、障害発生時のダンプ処理は事前にダンプされなかった物理ページか、事前にダンプされた後に書き換えられた物理ページに対して限定的に実行されることになる。以上のように、事前に書き換えの頻度が低い物理ページが選択され、更新ビット(C)がクリアされるとともに、スワップファイル15に書き込まれるとともに、当該物理ページがダンプ用ストレージ16に書き込まれる。そして、障害発生時には、未ダンプ部分の処理が実行されるので、実効的にダンプ処理が高速化される。その結果、障害発生からサーバ1のOSおよびアプリケーションプログラムが再起動するまでの時間が短縮される。
<アドレス変換とテーブルの構成>
図9は、仮想アドレス(Linear Addressともいう)を物理アドレス(Physical Address)に変換するページ変換テーブル120の構成を例示する図である。図9のように、仮想アドレスは、例えば、48ビット(47ビット目〜0ビット)であり、Page−Map
Level−4(PML4)、Directory Ptr、およびOffsetの各フィールドを有している。
仮想アドレスのうち、PML4は、PML4テーブル上のオフセット値である。PML4テーブルのベースアドレスは、コントロールレジスタ(CR3)によって指定される。CRとPML4で指定されるPML4テーブルのエントリ(PML4E)には、Page−Directory−Pointerテーブル(PDPT)のベースアドレスが指定される。
また、仮想アドレスのうち、Directory Ptrは、PDPTのオフセット値である。PML4EによるベースアドレスとDirectory Ptrで指定されるPDPTのエントリ(PDPTE)には、1−GByte Pageテーブルのベースアドレスが格納される。
さらに、仮想アドレスのうち、Offsetは、1−GByte Pageテーブルのオフセットである。PDPTEとOffsetで指定される1−GByte Pageテーブルのエントリには、物理アドレス(Physical Addr)が格納される。以上のように、ページ変換テーブル120は、仮想アドレスから、この仮想アドレスに対して割り当てられている物理アドレスに変換するための情報が格納される。なお、CPU11は、ページ変換テーブル120のコピー(TLB)をキャッシュに保持している。
図10は、ページ変換結果テーブル121の構成を例示する図である。ページ変換結果テーブル121は、各物理ページと仮想ページの組に対して、変更ビット(C)の履歴を保持する。変更ビット(C)の履歴は、本実施形態のダンプ処理において、CPU11が変更ビット(C)を読み出すごとに記録される。すなわち、変更ビット(C)の履歴は、ダンプ処理が繰り返し実行された場合において、各ページが変更ありとなっていたか否かの記録の列である。物理ページに対応するキー記憶13の現在の変更ビット(C)を履歴D0とし、前回ダンプ処理時の同一ページの変更ビットをD-1とし、前々回ダンプ処理時
の同一ページの変更ビットをD-2とする。
図10のように、ページ変換結果テーブル121の各行は、各物理ページの先頭アドレス(PA(47:30))に対応して設けられる。ここで、PA(47:30)は物理アドレスのオフセットを除く、上位18ビットであり、物理ページに対応する。したがって、ページ変換結果テーブル121の行数は、物理ページのページ数と同数である。
図10の例では、ページ変換結果テーブル121の各行は、PML4Tのベースアドレス(CR3)、仮想アドレスのPML4、仮想アドレスのDirectory Ptr、PDPTのベースアドレス(PML4E)、変更ビット(C)の履歴D-1、およびD-2の各フィールドを有する。
なお、実施形態1では、ダンプ処理実行時、物理ページは、物理ページ順に処理されるので、PML4Tのベースアドレス(CR3)、仮想アドレスのPML4、仮想アドレスのDirectory Ptr、PDPTのベースアドレス(PML4E)は記憶しなくてもよい。すなわち、図10のように、各物理ページの変更ビット(C)の履歴D-1、およびD-2は、物理ページに対応して格納されている。そのため、CPU11は、物理ページのアドレスから、各物理ページの変更ビット(C)の履歴D-1、およびD-2を読み出すことができる。したがって、実施形態1では、図10のページ変換結果テーブル121の代わりに、物理ページのアドレスと各物理ページの変更ビット(C)の履歴D-1、およびD-2とを対応づけた、変更ビット履歴テーブルがあれば十分である。
<処理フロー>
図11は、実施形態1のOSブート処理(図6のS1)の詳細を例示するフローチャー
トである。この処理では、まず、CPU11は、オペレータ等によるリセットボタンの押下等によって、リセットの指示を受ける(S11)。すると、CPU11は、物理メモリ12をクリアする(S12)。また、CPU11は、物理メモリ12のクリアとともに、クリアされた物理メモリ12の各物理ページに対応するキー記憶13の変更ビット(C)をクリアする。
次に、CPU11は、Power On Self Test(POST)を実行する(S13)。POSTでエラーが検出されると、CPU11は、エラーを表示し(S18)、OSブート処理を終了する。
POSTでエラーが検出されない場合、CPU11はブートローダを実行する(S15)。そして、CPU11は、OSカーネルをブート領域から読み込み、主記憶に展開する(S16)。そして、CPU11は、OSカーネルの処理を開始する(S17)。
図12は、OS初期化処理(図6のS2)の詳細を例示するフローチャートである。OS初期化処理では、CPU11は、各種の設定、例えば、ページ変換テーブル120の初期化を実行する(S21)。次に、CPU11は、OS領域をダンプ用ストレージ16に書き込む(S22)。次に、CPU11は、OS領域のうち、非常駐領域をスワップファイル15に書き込み、変更フラグ(C)を0クリアする(S23)。
図13は、ページ割当処理(図6のS4、S6)の詳細を例示するフローチャートである。図13の処理は、OSのコードを実行するCPU11の処理であるが、OSが実行するものとして説明する。OSは、ページ割当要求を受けると(図6のS4)、未使用の物理ページの有無を判定する(S41)。未使用の物理ページがない場合、OSはスワップアウトする物理ページを選択する(S42)。そして、OSは、スワップアウトする物理ページをスワップファイル15に書き込む(S43)。さらに、OSは、スワップアウトした物理ページを0クリアする(S44)。そして、OSは、割り当てる物理ページを選択する(S45)。S41で未使用の物理ページがなかった場合には、OSは、スワップアウトした物理ページを選択する。
次に、OSは、割り当てた物理ページによって、ページ変換結果テーブル121のエントリにアクセスし、変更ビット(C)の履歴D-1、D-2を更新する(S46)。次に、OSは、仮想メモリに保持するデータのスワップファイル15からの読み込みの有無を判定する(S47)。スワップファイル15からの読み込みがある場合とは、当該仮想ページが新規の仮想ページではない場合である。つまり、スワップファイル15からの読み込みは、スワップファイル15に保存済みの仮想ページを読み込む処理である。S47の判定が「無」の場合、OSは、割り当てた物理ページに対応するダンプ領域を0クリアする(S48)。一方、S47の判定が「有」の場合、OSは、スワップインする仮想ページをスワップファイル15から読み込む(S49)。そして、読み込んだ仮想ページのデータをダンプ用ストレージ16に書き込む(S50)。そして、OSは、キー記憶13の変更ビット(C)をクリアする(S51)。少なくとも、S51の処理の時点で、物理ページと、スワップファイル15内の対応するページとで、データが一致しているからである。S49からS51の処理は、「仮想記憶方式の仮想メモリのエリアに対応する前記物理メモリのエリアを確保し、前記保存装置に保存された前記仮想メモリのエリアに対応する記憶情報を前記確保した物理メモリのエリアに読み出す処理(S49)の実行時に、前記読み出した記憶情報を前記記憶装置に書き込む(S50)とともに前記物理メモリのエリアに対応するフラグをクリアする」ことの一例である。
図14は、タイマー割り込みの処理(図8のA11およびS11)の詳細を例示するフローチャートである。この処理では、CPU11にタイマー割り込みが発生し(S11)
、OSは、ダーティページ書込み処理を起動する(D11)。
図15は、ダーティページ書込み処理(図14のD11の詳細)を例示するフローチャートである。図15のダーティページ書込み処理は、図14のタイマー割り込みにより起動されるので、障害が発生していないときに実行される処理である。この処理では、CPU11は、物理ページを順次参照するダーティページ処理ポインタを用いて処理を実行する。ダーティページ書込み処理が起動されると、CPU11は、ダーティページ処理ポインタを更新する(D111)。なお、初回のダーティページ書込み処理の実行では、ダーティページ処理ポインタは、初期値(物理ページの先頭アドレス)に初期化されているものとする。そして、CPU11は、ダーティページ処理ポインタの指すページ変換結果テーブル121のエントリを参照する(D112)。
次に、CPU11は、キー記憶13の変更ビット(C)およびページ変換結果テーブル121のD―1/D-2を参照する(D114)。そして、CPU11は、ダーティページ
処理ポインタの更新回数が基準値(N1)を以上か否かを判定する(D115)。更新回数が基準値未満の場合、CPU11は、変更ビット(C)の履歴D0/D―1/D-2を判定する(D116)。ここで、D0は現在の変更ビット(C)そのものである。変更ビット
(C)の履歴D0/D―1/D-2が、1/0/0以外の場合、CPU11は、ページ変換結果テーブル121のD―1/D-2を更新し(D117)、処理をD111に戻す。
変更ビット(C)の履歴D0/D―1/D-2が、1/0/0以外の場合とは、現在の変更ビット(C)の値である履歴D0が書き換え済みでない場合か、現在の変更ビット(C)
および過去2回のダーティページ書込み処理において変更ビット(C)の値(3回の変更ビットの履歴)のうち、2回以上が換え済みである場合である。現在の変更ビット(C)が書き換え済みでない場合には、キー記憶13に対応する物理ページをダンプ用ストレージ16にダンプしなくてもよい。また、現在及び過去2回の変更ビット(C)の履歴で、少なくとも2回の変更の履歴がある場合には、キー記憶13に対応する物理ページは、書き換えの頻度が高く、将来も書き換えられる可能性が高いといえる。そこで、CPU11は、ダンプ処理を実行せず、ページ変換結果テーブル121のD―1/D-2の更新を実行
して、処理をD111に戻すのである。変更ビット(C)の履歴D0/D―1/D-2が、1/0/0以外の場合が、フラグの履歴によって更新の頻度が所定限度を超えると判定されるエリアである。また、履歴D0/D―1/D-2の変更ビット(C)に対応する物理ページがフラグの履歴によって更新の頻度が所定限度を超えると判定されるエリアの一例である。D116の判定で、CPU11が処理をD111に戻すことは、フラグの履歴を読み出し、前記フラグの履歴によって更新の頻度が所定限度を超えると判定されるエリアに対して、前記第1の処理を実行しないことの一例である。
なお、図15の処理では、更新の頻度が所定限度を超えるか否かが、履歴D0/D―1/D-2が1/0/0であるか否かによって判定された。つまり、現在の履歴D0に加えて、
過去2回の履歴D―1/D-2のいずれか一方が変更を示している場合に、更新の頻度が所
定限度を超えると判定された。しかし、本実施形態において、更新の頻度が所定限度を超えるか否かが、上記判定に限定される訳ではない。例えば、CPU11は、現在の履歴D0に加えて、過去1回の履歴D―1を用いて、更新の頻度が所定限度を超えるか否かを判断してもよい。また、CPU11は、過去3回以上の履歴を用いて、更新の頻度が所定限度を超えるか否かを判断してもよい。
一方、D116の判定で、変更ビット(C)の履歴D0/D―1/D-2が、1/0/0の場合、CPU11は、物理ページの内容をダンプ領域に書き込む(D118)。変更ビット(C)の履歴D0/D―1/D-2が、1/0/0の場合とは、現在の変更ビット(C)の値が物理ページの書き換え済みを示し、かつ、過去2回のダーティページ書込み処理にお
いて変更ビット(C)の値が書き換え済みでなかった場合である。変更ビット(C)の履歴D0/D―1/D-2が、1/0/0の場合には、書き換え頻度が比較的低い物理ページが現在書き換えられた状態であることを示す。そこで、CPU11は、物理ページの内容をダンプ用ストレージ16に書き込むのである。
次に、CPU11は、物理ページの内容をスワップファイル15に書き込む(D119)。すなわち、CPU11は、スワップファイル15と物理メモリ12の内容を一致させる。次に、CPU11は、対象物理ページのCPU11内のTLBのエントリを無効化するためInvalidate TLB Entries命令を発行する(D120)。さらに、CPU11は、キー記憶13の更新ビット(C)=D0を0クリアして(D121
)、ページ変換結果テーブル121に記録している更新ビットの履歴も更新する(D122)。D118の処理は、障害が発生していないときには、更新済みの設定がされたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第1の処理の一例である。D119の処理は、保存装置に前記更新済みエリアに記憶された記憶情報を保存することの一例である。D120の処理は、更新済みの設定がされたフラグをクリアする処理の一例である。また、D117およびD112の処理は、フラグの設定値の履歴を保存する処理の一例である。
D118からD122までの処理は、D117の処理と比較して、負荷が高い。そこで、CPU11は、D118からD122までの処理を実行すると、ダーティページ書込み処理を終了する。したがって、次回のタイマによるダーティページ書込み処理の起動まで、負荷が低減される。図15の処理をタイマー割り込みで間隔を置いて起動し、さらに、D118からD122までの処理を実行すると、ダーティページ書込み処理を終了することは、第1の処理の1回の実行による負荷が所定の限度となるように、前記第1の処理を前記物理メモリの1または複数のエリアごとに順次実行することの一例である。
図16は、変更ビット(C)の履歴D0/D―1/D-2の遷移を例示する表である。表では、タイマー割り込み時、ダーティページ書込み処理時(図16では、「ダーティ後」)、および、業務用アプリケーションプログラム実行中の変更ビット(C)の履歴D0/D
1/D-2の遷移が例示されている。なお、図16の表では、「ダーティページ書込み処
理時」、「ダーティ後」という文字列で、「業務用アプリケーションプログラム」は、「業務」という文字列で示されている。
表のように、ダーティページ書込み処理の対象になる物理ページは、タイマー割り込み時に、変更ビット(C)の履歴D0/D―1/D-2が、1/0/0の場合である。いずれにしても、タイマー割り込み時の変更ビット(C)の履歴D0/D―1が、ダーティページ書込み処理後には履歴D―1/D-2に遷移することが分かる。また、業務用アプリケーショ
ンプログラム実行中は、履歴D0の値が物理ページへのアクセス状況に応じて変化する。
図17は、障害発生時の処理を例示するフローチャートである。この処理は、D121Aの判定処理が追加されている点以外は、比較例の図2と同様である。すなわち、本実施形態では、CPU11は、ページカウンタ初期化(D121)の後、物理ページに対応するキー記憶13の変更ビット(C)が1(変更あり)か否かを判定する(D121A)。そして、物理ページの変更ビット(C)が1、すなわち、変更ありの場合、CPU11は、図2と同様にダンプ処理を実行する(D122、D123)。D122およびD123の処理は、障害が発生したときに、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理の一例である。キー記憶13の変更ビット(C)が変更ありの場合には、物理ページは初期化された後にデータが書き込まれたか、または、物理ページのデータが一旦ダンプ用ストレージにダンプされるとともにスワップファイル15に書き込まれた後、再度書き換えられた状態である。本実施
形態では、障害発生時に、CPU11は、物理ページに対応するキー記憶13の変更ビット(C)が変更ありに設定されているときに、当該物理ページを選択してダンプ処理するのである。一方、物理ページの変更ビット(C)が0、すなわち、変更無しの場合、物理ページは変更されていないか、すでに、スワップファイル15に書込み済みであるので、CPU11は、処理をD124に進める。D124以降の処理は、図2のD524以降の処理と同様であるので、説明を省略する。
<実施形態1の効果>
以上述べたように、サーバ1は、OSブート処理時に物理メモリ12をクリアするとと
もに、キー記憶13の変更ビット(C)をクリアする(図11のS12)。また、サーバ1は、OS起動後の初期状態で、少なくともOS領域をダンプ用ストレージ16に書き込むとともに、非常駐領域を記憶する物理ページをスワップファイル15に書き込み、物理ページに対応するキー記憶13の変更ビット(C)をクリアする(図12のS23)。さらに、サーバ1は、ページ割り当て時に、物理ページのデータとスワップファイル15内の対応ページのデータが一致すると、物理ページに対応するキー記憶13の変更ビット(C)をクリアする(図13のS51)。また、CPU11は新規なページ割当時、キー記憶13の変更ビット(C)をクリアする。したがって、物理ページとスワップファイル15とで、データが一致している場合には、変更ビット(C)は未更新(0)が維持される。また、CPU11は、ページ割当時、スワップファイル15から仮想メモリにデータを読み込んだ場合に、読み込んだデータをダンプ用ストレージ16に書き込む。このため、未更新(0)の変更ビット(C)に対応する物理ページは、OS起動時の0クリアされた初期状態であるか、物理ページの内容がダンプ用ストレージ16に書込み済みであることになる。
そして、障害が発生していない通常運用時、CPU11がタイマーにより、ダーティページ書込み処理を実行する。ダーティページ書込み処理では、CPU11は、変更ビット(C)の値=1である書き換えられた物理ページを選択して、スワップファイル15への書込み、ダンプ用ストレージ16への書込みを実行し、さらに変更ビット(C)の0クリアを実行する。したがって、本実施形態では、障害発生前のサーバ1の運用時、物理ページ未更新(0)を示す変更ビット(C)に対応する物理ページについては、OS起動時の0クリアされた初期状態であるか、物理ページの内容がダンプ用ストレージ16に書込み済みであることになる。したがって、この状態で、仮に、障害発生し、ダンプ処理が実行されたとしても、CPU11は、変更ビット(C)が更新(1)に設定された物理ページを選択して、ダンプ処理を実行すればよい(図17)。したがって、サーバ1は、障害発生前に、事前に可能な範囲でダンプ処理を実行できるので、障害発生時には、実効的に、高速にダンプ処理を実行できる。
また、サーバ1では、CPU11は、物理ページの内容をダンプ領域に書き込むとともに、物理ページの内容とスワップファイル15の内容を一致させる(図15の118、D119)。そして、CPU11は、変更ビット(C)をクリアする(同図D121)。したがって、変更ビット(C)が変更なし(0)の場合には、物理ページが初期状態であるか、すでにスワップファイル15に書込み済みとなり、障害発生時には、CPU11は、変更ビット(C)が変更あり(1)の物理ページを選択してダンプ処理すればよいことを判定できる。
また、サーバ1では、CPU11は、変更ビット(C)の履歴D0/D―1/D-2が、1/0/0の物理ページを選択して、事前のダンプを実施する。履歴D0/D―1/D-2が、1/0/0以外の物理ページは、書き換え頻度が高く、仮に、事前にダンプしたとしても、その後、書き換えられる可能性がある。そこで、サーバ1のCPU11は、事前にダンプした後、ダンプした結果が物理ページに維持される可能性のある物理ページに限定して
、事前のダンプ処理を実行する。即ち、ダーティページ書き込み処理による事前ダンプの段階で、CPU11は、無駄なダンプ処理を回避し、ダンプ処理の効率を向上し、事前のダンプ処理に伴うシステムの負荷を低減できる。
また、本実施形態のダーティページ書込み処理では、CPU11は、ダンプ処理伴う負荷が大きくならないように、1回のタイマー起動におけるダンプ処理の処理負荷を制限する。例えば、CPU11は、物理ページの変更ビット(C)が変更されているか否かの判定回数を基準値(N1)に限定する。また、CPU11が図15のように一度ダンプ用ストレージ16のダンプ領域への書込み処理を実行すると、ダーティページ書込み処理を終了し、次のタイマー起動まで待つ。このようにして、CPU11は、1回のタイマー起動によるダンプ処理の処理負荷を制限し、サーバ1を安定して稼働させることができる。
また、本実施形態では、サーバ1は、スワップインの処理のときに、スワップインされたページをダンプ用ストレージ16に書き出し、変更ビット(C)をクリアする(図13のS49からS51)。したがって、サーバ1は、スワップインの処理とともに、事前ダンプを実行できる。
[実施形態2]
図18から図23の図面を参照して、実施形態2に係る情報処理システムであるサーバ1Aについて説明する。上記実施形態1では、サーバ1は、メインフレーム等のアーキテクチャのプロセッサで採用される物理ページに対応するキー記憶13の変更ビット(C)を用いていることでダンプ処理を高速化した。すなわち、サーバ1のCPU11は、キー記憶13の変更ビット(C)を基に、物理ページの変更の有無およびスワップファイル15への書込みが終了しているか否かを判定し、ダンプ用ストレージ16に書き込まれていない物理ページを選択して、ダンプ処理を実行した。実施形態2では、物理ページに対応するキー記憶13の変更ビット(C)を有しないアーキテクチャのプロセッサにおいて、実施形態1と同様のダンプ処理を実行する。プロセッサのアーキテクチャの違い以外は、実施形態2のサーバ1Aは、実施形態1のサーバと同様である。そこで、実施形態2の構成要素のうち、実施形態1の構成要素と同一の構成要素については、同一の符合を付してその説明を省略する。
図18は、実施形態2に係る情報処理システムの一例であるサーバ1Aの構成を例示する図である。サーバ1Aは、サーバ1のキー記憶13がないこと、および、ページ変換テーブル120Aにダーティビット(D)が設定される点で実施形態1のサーバ1とは異なる。また、ダーティビット(D)は、TLB111の一部としてCPU11内にも保持される。サーバ1Aの他の構成要素は、実施例1のサーバ1と同様である。
図19は、ダーティビット(D)に関連するCPU11のハードウェアの制御回路の処理を例示する。なお、A16およびA17は、実施形態1(図7)のA6およびA7と同様であるので、その説明を省略する。そして、TLB11を参照した結果(A18)、ダーティビット(D)の複製情報が0の場合には、CPU11は、まず、OSに対して割り込み等により、PTDTEのダーティビット(PTDTE(D))を書き込み済み(=1)に設定するように依頼する。そして、OSから制御が戻ると、CPU11は、TLB上のダーティビットの複製(D)を書き込み済み(=1)に設定する(A19)。そして、CPU11は、物理メモリ12への書き込みを実行する(A20)。
すなわち、キー記憶13を具備していないアーキテクチャのCPU11は、CPU11が物理メモリ12に書き込みを行うとき、ページ変換テーブル120Aのダーティビット(PTDTE(D))を1にするようにOSに依頼する。CPU11は、TLB111にコピーされたダーティビット(D)の複製情報を参照することで、ダーティビット(PT
DTE(D))の変更回数、OSへの変更依頼回数を低減できる。
図20は、ページ変換テーブル120Aの構成を例示する図である。ページ変換テーブル120Aは、PDPTEの下から7番目のビット(矢印でさされる、ビット6のエントリ)が、ダーティビット(D)として使用される。ページ変換テーブル120Aの他の構成要素は、実施形態1のページ変換テーブル120の構成要素と同様である。
図21は、実施形態2におけるページ割当処理を例示するフローチャートである。実施形態2では、実施形態1のサーバ1が有していたキー記憶13が存在しないため、図13のS51の処理、すなわち、キー記憶13の変更ビット(C)をクリアする処理がない。このS51の処理に代えて、実施形態2のページ割当処理では、割当ページの選択(S4
5)の後、ページ変換テーブル120が更新され、ダーティビット(D)がクリアされる(S46A)。実施形態2のページ割当処理(図21)の他の処理は、実施形態1の図13であるので、その説明を省略する。S46A、S49、およびS50の処理は、「仮想記憶方式の仮想メモリのエリアに対応する前記物理メモリのエリアを確保し、前記保存装置に保存された前記仮想メモリのエリアに対応する記憶情報を前記確保した物理メモリのエリアに読み出す処理(S49)の実行時に、前記読み出した記憶情報を前記記憶装置に書き込むとともに前記物理メモリのエリアに対応するフラグをクリアする」ことの一例である。
図22に、実施形態2のダーティページ書込み処理を例示する。実施形態2のダーティページ書込み処理は、D113A、D114A、およびD121Aの処理を除いて、実施形態1のページ書込み処理(図15)と同様である。すなわち、実施形態2においては、CPU11は、ダーティページ処理ポインタから、ページ変換結果テーブル121を参照し(図10参照)、例えば、ページ変換テーブル120のうち、ダーティビット(D)が格納されているPDPTEのアドレスを生成する(D113A)。そして、CPU11は、PDPTEからダーティビット(D)を取得するとともに、ページ変換結果テーブルの履歴D-1/D-2を取得する(D114A)。
また、実施形態2においては、CPU11は、物理ページの内容をダンプ用ストレージ16のダンプ領域に書き出し(D118)、スワップファイル15と一致させた後(D119)、ページ変換テーブル120のPDPTEのダーティビットをクリアする(D121A)。実施形態2のダーティページ書込み処理(図22)のうち、D113A、D114A、およびD121A以外の処理は実施形態1の図15と同様であるので、その説明を省略する。D121Aの処理は、更新済みの設定がされたフラグをクリアする処理の一例である。
図23に、実施形態2におけるメモリダンプ処理を例示する。この処理では、CPU11は、まず、ダーティページ処理ポインタを更新する(D131)。次に、CPU11は、ダーティページ処理ポインタの指す物理ページに対応するページ変換結果テーブル121のエントリから、ページ変換テーブル120のPDPTEのアドレスを生成する(D133)。そして、CPU11は、ページ変換テーブル120のPDPTEから、ダーティビットを参照する(D134)。そして、CPU11は、ダーティビットが1(書き換えあり)か否かを判定する(D135)。ダーティビットが1であり、物理ページの書き換えがある場合には、CPU11は、その物理ページの内容をダンプ用ストレージ16のダンプ領域に書き込む(D136)。そして、CPU11は、ページ変換テーブル120のPDPTEのダーティビットを0クリアする(D137)。そして、CPU11は、全物理ページを終了したか否かを判定する(D138)。CPU11は、全物理ページを終了していない場合、D131の処理に戻る。一方、CPU11は、全物理ページを終了した場合には、処理を終了する。D135およびD136の処理は、障害が発生したときに、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理の一例である。
以上のように、プロセッサのアーキテクチャにキー記憶13の変更ビット(C)がない場合でも、ページ変換テーブル120のダーティビットを用いることで、実施形態2のサーバ1Aは、実施形態1のサーバ1と同等の処理を実行し、<実施形態1の効果>に記載した効果と同様の効果を達成できる。例えば、サーバ1Aも、サーバ1と同様、障害発生時のダンプを高速化できる。
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ
等に固定された記録媒体としても利用可能である。
1 サーバ
11 CPU
12 物理メモリ
13 キー記憶
14 入出力部
15 スワップファイル
16 ダンプ用ストレージ
120 ページ変換テーブル
121 ページ変換結果テーブル

Claims (7)

  1. 複数のエリアに区分された物理メモリと、
    前記複数のエリアにそれぞれ記憶された記憶情報が更新されたときにそれぞれ更新済みの設定がされる複数のフラグを記憶するフラグ記憶部と、
    前記複数のエリアに記憶された記憶情報が書き込まれる記憶装置と、
    仮想記憶方式の仮想メモリとして、前記物理メモリに記憶された記憶情報が保存される保存装置と、
    プロセッサと、を備え、
    前記プロセッサは、
    障害が発生していないときには、更新済みの設定がされたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第1の処理と、前記保存装置に前記更新済みエリアに記憶された記憶情報を保存するとともに前記更新済みの設定がされたフラグをクリアする処理と、を実行し、
    障害が発生したときに、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理を実行する情報処理システム。
  2. 前記プロセッサは、
    フラグの設定値の履歴を保存する処理をさらに実行し、
    前記フラグの履歴を読み出し、前記フラグの履歴によって更新の頻度が所定限度を超えると判定されるエリアに対して、前記第1の処理を実行しない請求項1に記載の情報処理システム。
  3. 前記プロセッサは、前記第1の処理の1回の実行による負荷が所定の限度となるように、前記第1の処理を前記物理メモリの1または複数のエリアごとに順次実行する請求項1または2に記載の情報処理システム。
  4. 前記プロセッサは、仮想記憶方式の仮想メモリのエリアに対応する前記物理メモリのエリアを確保し、前記保存装置に保存された前記仮想メモリのエリアに対応する記憶情報を前記確保した物理メモリのエリアに読み出す処理の実行時に、前記読み出した記憶情報を前記記憶装置に書き込むとともに前記物理メモリのエリアに対応するフラグをクリアする請求項1から3のいずれか1項に記載の情報処理システム。
  5. 複数のエリアに区分された物理メモリと、
    前記複数のエリアにそれぞれ記憶された記憶情報が更新されたときにそれぞれ更新済みの設定がされる複数のフラグを記憶するフラグ記憶部と、
    プロセッサと、を備え、
    前記プロセッサは、
    障害が発生していないときには、更新済みの設定がされたフラグに対応する更新済みエリアに記憶された記憶情報を記憶装置に書き込む第1の処理と、仮想記憶方式の仮想メモリとして、前記物理メモリに記憶された記憶情報が保存される保存装置に前記更新済みエリアに記憶された記憶情報を保存するとともに前記更新済みの設定がされたフラグをクリアする処理と、を実行し、
    障害が発生したときに、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理を実行する情報処理装置。
  6. 複数のエリアに区分された物理メモリを有するコンピュータが、
    前記複数のエリアにそれぞれ記憶された記憶情報が更新されたときにそれぞれ更新済みの設定がされる複数のフラグの少なくとも1つを参照する処理を実行し、
    障害が発生していないときには、更新済みの設定がされたフラグに対応する更新済みエ
    リアに記憶された記憶情報を記憶装置に書き込む第1の処理と、仮想記憶方式の仮想メモリとして、前記物理メモリに記憶された記憶情報が保存される保存装置に前記更新済みエリアに記憶された記憶情報を保存するとともに前記更新済みの設定がされたフラグをクリアする処理と、を実行し、
    障害が発生したときに、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理を実行する情報処理方法。
  7. 複数のエリアに区分された物理メモリを有するコンピュータに、
    前記複数のエリアにそれぞれ記憶された記憶情報が更新されたときにそれぞれ更新済みの設定がされる複数のフラグの少なくとも1つを参照する処理を実行させ、
    障害が発生していないときには、更新済みの設定がされたフラグに対応する更新済みエリアに記憶された記憶情報を記憶装置に書き込む第1の処理と、仮想記憶方式の仮想メモリとして、前記物理メモリに記憶された記憶情報が保存される保存装置に前記更新済みエリアに記憶された記憶情報を保存するとともに前記更新済みの設定がされたフラグをクリアする処理と、を実行させ、
    障害が発生したときに、更新済みの設定されたフラグに対応する更新済みエリアに記憶された記憶情報を前記記憶装置に書き込む第2の処理を実行させるためのプログラム。
JP2016045536A 2016-03-09 2016-03-09 情報処理システム、情報処理装置、情報処理方法およびプログラム Active JP6604241B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016045536A JP6604241B2 (ja) 2016-03-09 2016-03-09 情報処理システム、情報処理装置、情報処理方法およびプログラム
US15/439,978 US10346234B2 (en) 2016-03-09 2017-02-23 Information processing system including physical memory, flag storage unit, recording device and saving device, information processing apparatus, information processing method, and computer-readable non-transitory storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016045536A JP6604241B2 (ja) 2016-03-09 2016-03-09 情報処理システム、情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017162155A JP2017162155A (ja) 2017-09-14
JP6604241B2 true JP6604241B2 (ja) 2019-11-13

Family

ID=59786536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016045536A Active JP6604241B2 (ja) 2016-03-09 2016-03-09 情報処理システム、情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10346234B2 (ja)
JP (1) JP6604241B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152427B2 (en) * 2016-08-12 2018-12-11 Google Llc Hybrid memory management
US10049218B2 (en) * 2016-12-07 2018-08-14 Google Llc Rollback resistant security
CN115220643A (zh) * 2021-04-20 2022-10-21 伊姆西Ip控股有限责任公司 复制数据的方法、电子设备和计算机程序产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195565A (ja) 1990-11-28 1992-07-15 Nec Corp ダンプ出力方式
JP2002073378A (ja) 2000-09-04 2002-03-12 Hitachi Ltd 計算機システムのダンプ取得方法および装置
JP5211751B2 (ja) 2008-02-26 2013-06-12 富士通株式会社 計算機、ダンププログラムおよびダンプ方法
US8943296B2 (en) * 2011-04-28 2015-01-27 Vmware, Inc. Virtual address mapping using rule based aliasing to achieve fine grained page translation
JP6083136B2 (ja) * 2012-06-22 2017-02-22 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US10102052B2 (en) * 2014-01-29 2018-10-16 Hewlett Packard Enterprise Development Lp Dumping resources
WO2016056074A1 (ja) * 2014-10-08 2016-04-14 株式会社日立製作所 計算機システム及びメモリダンプ方法
WO2016139774A1 (ja) * 2015-03-04 2016-09-09 富士通株式会社 情報処理装置、情報処理システム

Also Published As

Publication number Publication date
US20170262328A1 (en) 2017-09-14
US10346234B2 (en) 2019-07-09
JP2017162155A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
JP5021190B2 (ja) 高速再起動を伴うメモリダンプ生成
JP3906825B2 (ja) 計算機システム、計算機システム起動方法およびプログラム
JP5161696B2 (ja) 仮想計算機システムおよび仮想計算機システムにおけるエラー回復方法ならびに仮想計算機制御プログラム
US9658957B2 (en) Systems and methods for managing data input/output operations
US20120011393A1 (en) Bios recovery
US8825946B2 (en) Memory system and data writing method
US8370587B2 (en) Memory system storing updated status information and updated address translation information and managing method therefor
JP2011154547A (ja) メモリ管理装置及びメモリ管理方法
JP2004362426A (ja) 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
JP6337902B2 (ja) ストレージシステムとノード装置とキャッシュ制御方法並びにプログラム
JP2013137771A (ja) データ利用についてのマウント時間の調停
JP6604241B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
JPWO2013080288A1 (ja) メモリ縮退方法及び情報処理装置
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
JP5531476B2 (ja) 情報処理装置及び情報処理プログラム
JP5166211B2 (ja) 不揮発性メモリを主記憶に用いた装置
JP2015114750A (ja) 調査用プログラム,情報処理装置及び情報処理方法
JP5660557B2 (ja) ネットワークブートシステム
JP5025670B2 (ja) 情報処理装置およびデータ記憶装置
JP2019200473A (ja) メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法
JP7184424B2 (ja) 更新処理装置、更新処理方法、及びプログラム
JP2010026969A (ja) データ処理装置
JP6287055B2 (ja) 情報処理装置、情報収集方法および情報収集プログラム
JP4711191B2 (ja) オンライン増設メモリの使用方法、プログラム及び情報処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190930

R150 Certificate of patent or registration of utility model

Ref document number: 6604241

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150