JP6094677B2 - 情報処理装置、メモリダンプ方法、およびメモリダンププログラム - Google Patents

情報処理装置、メモリダンプ方法、およびメモリダンププログラム Download PDF

Info

Publication number
JP6094677B2
JP6094677B2 JP2015529269A JP2015529269A JP6094677B2 JP 6094677 B2 JP6094677 B2 JP 6094677B2 JP 2015529269 A JP2015529269 A JP 2015529269A JP 2015529269 A JP2015529269 A JP 2015529269A JP 6094677 B2 JP6094677 B2 JP 6094677B2
Authority
JP
Japan
Prior art keywords
storage device
main storage
data
dump
nonvolatile main
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
JP2015529269A
Other languages
English (en)
Other versions
JPWO2015015589A1 (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
Publication of JPWO2015015589A1 publication Critical patent/JPWO2015015589A1/ja
Application granted granted Critical
Publication of JP6094677B2 publication Critical patent/JP6094677B2/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/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/1441Resetting or repowering
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、情報処理装置、メモリダンプ方法、およびメモリダンププログラムに関する。
近年、UNIX(登録商標)サーバ、IAサーバが基幹システムに導入されるようになり、UNIX(登録商標)サーバ、IAサーバの高可用性が重要視されている。一般的に、システムに致命的なエラー(クラッシュ事象)が発生した場合はシステムを緊急停止(パニック)させて、その原因を調査するためにメモリダンプをディスクに保存している。
システムを停止している間は、システムを使用できないので、速やかにシステムを再起動して業務停止時間を短縮することが重要な要件となる。
しかし、近年では、実装メモリの容量がテラバイト(TB)オーダのサーバが登場し、このようなシステムでは、メモリダンプを採取するのに非常に時間がかかり、速やかにシステムを再起動することができなくなっている。
特開2004−102395号公報 特開平4−182748号公報 特開平10−333944号公報
本発明の課題は、メモリダンプ処理による業務停止時間を短縮することである。
実施の形態の情報処理装置は、処理部と、不揮発性主記憶装置と、外部記憶装置と、を備える。
前記処理部は、オペレーティングシステムを実行する。
前記不揮発性主記憶装置は、前記処理部が直接アクセス可能且つコントローラを有する。
前記外部記憶装置は、前記処理部が直接アクセス可能でない。
前記処理部は、前記オペレーティングシステムのエラーを検出したとき、前記不揮発性主記憶装置以外をリセットして、前記オペレーティングシステムを再起動する。
前記コントローラは、前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込む。
実施の形態の情報処理装置によれば、メモリダンプ処理による業務停止時間を短縮することができる。
第1の実施の形態に係る情報処理装置の構成図である。 BIOS設定情報の例を示す図である。 第1の実施の形態に係る不揮発性主記憶装置の構成および接続バスを示す図である。 記憶素子管理テーブルの例を示す図である。 EEPROMに記録されている情報を示す図である。 第1の実施の形態に係るメモリダンプ処理のフローチャートである。 第1の実施の形態に係るBGダンプ処理の詳細なフローチャートである。 第1の実施の形態に係る割り込みダンプ処理の詳細なフローチャートである。 第1の実施の形態に係る割り込みダンプ処理を示す図である。 優先度による段階的なメモリダンプを示す図である。 第1の実施の形態に係るクラッシュ事象発生直前およびBGダンプフラグ設定直後の記憶素子管理テーブルの状態を示す図である。 第2の実施の形態に係る不揮発性主記憶装置の状態を示す図である。 拡張記憶素子管理テーブルの例である。 第2の実施の形態に係る割り込みダンプ処理の詳細なフローチャートである。 割り当て変更前と割り当て変更後の拡張記憶素子管理テーブルを示す図である。 第3の実施の形態に係るクラッシュ事象発生直前およびBGダンプフラグ設定直後の記憶素子管理テーブルの状態を示す図である。 記憶素子管理テーブルのフラグの状態遷移図である。 第4の実施の形態に係るメモリダンプ処理のフローチャートである。 第4の実施の形態に係るメモリダンプ処理のフローチャートである。 第4の実施の形態に係る各処理時のデータの位置を示す図である。 コンピュータシステムの構成図である。
以下、図面を参照しながら実施の形態について説明する。
図1は、第1の実施の形態に係る情報処理装置の構成図である。
情報処理装置101は、例えば、パーソナルコンピュータ(PC)やサーバ等のコンピュータである。
情報処理装置101は、Central Processing Unit(CPU)111、揮発性主記憶装置121−i(i=1〜3)、不揮発性主記憶装置131−i、外部記憶装置コントローラ151、外部記憶装置161、Basic Input/Output System(BIOS)格納域171、およびその他入出力装置181を備える。
CPU111は、各種処理を実行するプロセッサ(処理部)である。
CPU111は、BIOS格納域171に格納されているBIOS172を読み出して実行する。また、CPU111は、揮発性主記憶装置121または不揮発性主記憶装置141に格納されているプログラムを読み出して実行する。
情報処理装置101には、Operating System(OS)がインストールされており、CPU111は、外部記憶装置161からOSを揮発性主記憶装置121および/または不揮発性主記憶装置141に読み出して実行する。
CPU111は、メモリコントローラ112およびI/Oコントローラ113を有する。
メモリコントローラ112は、揮発性主記憶装置121および不揮発性主記憶装置131に対する読み書きの制御を行う。メモリコントローラ112は、メモリバス191を介して揮発性主記憶装置121および不揮発性主記憶装置131と接続している。揮発性主記憶装置121および不揮発性主記憶装置131のデータは、メモリバス192を介して送信される。
また、メモリコントローラ112は、Inter-Integrated Circuit(IC)バス192を介して揮発性主記憶装置121および不揮発性主記憶装置131と接続している。メモリコントローラ112は、ICのマスタコントローラを兼ねている。
I/Oコントローラ113は、入出力装置の制御を行う。I/Oコントローラ113は、Peripheral Component Interconnect(PCI)バス193を介して、BIOS格納域171、外部記憶装置コントローラ151、およびその他入出力装置181と接続している。
揮発性主記憶装置121は、揮発性の記憶素子を用いたデータを格納する記憶装置である。揮発性主記憶装置121は、例えば、Dynamic Random Access Memory(DRAM)である。
揮発性主記憶装置121は、CPU111から直接アクセス可能である。
不揮発性主記憶装置131は、不揮発性の記憶素子を用いたデータを格納する記憶装置である。不揮発性主記憶装置131は、例えば、NAND型フラッシュメモリやMagnetoresistive Random Access Memory(MRAM)等である。
不揮発性主記憶装置131は、電力が供給されない場合でも、データを保持することができる。
不揮発性主記憶装置131は、CPU111から直接アクセス可能である。
外部記憶装置コントローラ151は、外部記憶装置161を制御する。外部記憶装置コントローラ151は、I/Oコントローラ113、外部記憶装置161、およびNonVolatile Memory(NVM)コントローラ201と接続している。
外部記憶装置161は、データを格納する不揮発性の記憶装置である。
外部記憶装置161は、CPU111から直接アクセスできない。よって、CPU111が外部記憶装置161のデータを読み出す場合、該データは、揮発性主記憶装置121または不揮発性主記憶装置131に転送され、揮発性主記憶装置121または不揮発性主記憶装置131から読み出される。
外部記憶装置161は、例えば、ハードディスクドライブ、Solid State Drive (SSD)、または磁気テープ装置等である。外部記憶装置161は、揮発性主記憶装置121および不揮発性主記憶装置131よりもアクセス速度が遅い。
外部記憶装置161は、補助記憶装置または二次記憶装置とも呼ばれる。
BIOS格納域171は、BIOS Flash Firmware(以下、BIOSと表記する)172およびBIOS設定情報173を格納する。BIOS格納域171は、例えば、不揮発性のメモリである。
BIOS172は、ハードウェアの初期化やブートローダーの起動等を行うプログラムである。また、BIOS172は、ダンプ処理やNVMコントローラの設定等を行う。
BIOS172は、例えば、Unified Extensible Firmware Interface(UEFI)や拡張ファームウェア等である。
BIOS172は、CPU111により読み出されて実行される。
BIOS設定情報173は、メモリダンプ処理時に使用する設定値やメモリスロットに搭載される主記憶装置(揮発性主記憶装置121および不揮発性主記憶装置131)の特性などが記載される情報である。
尚、BIOS設定情報173の詳細については後述する。
その他入出力装置181は、データの入力および/または出力を行う装置である。その他入出力装置181は、例えば、Universal Serial Bus(USB)デバイスやPeripheral Component Interconnect(PCI)カード等である。
図2は、BIOS設定情報の例を示す図である。
BIOS設定情報173は、Element、Attribute1、Attribute2、およびValueが対応付けられて記載されている。
Elementは、対象の装置や設定項目を示す。図2において、Elementとして、ダンプ先外部記憶装置、メモリ手動交換、メモリスロット1〜6が記載されている。
Attribute1およびAttribute2は、装置の特性を示す。図2において、ダンプ先外部記憶装置のAttribute1として、「共有」が記載されている。これは、外部記憶装置が複数の主記憶装置のダンプ先として設定されていることを示す。
また、図2において、メモリスロット1〜3のAttribute1として「揮発性」、メモリスロット4〜6のAttribute1として「不揮発性」が記述されている。これは、メモリスロット1〜3に搭載されている主記憶装置が揮発性、メモリスロット4〜6に搭載されている主記憶装置が不揮発性であることを示す。
また、図2において、メモリスロット4のAttribute2として「Block(対象外)」、モリスロット5、6のAttribute2として「Byte(対象)」が記述されている。これは、メモリスロット4に搭載されている主記憶装置に対してブロックアクセスを行い、ダンプ対象でないことを示し、メモリスロット5、6に搭載されている主記憶装置に対してバイトアクセスを行い、ダンプ対象であることを示す。
不揮発性主記憶装置131へのアクセス方法は以下2種類ある。
(1)ブロックアクセス:OSからブロックストレージデバイスとして見える
(2)バイトアクセス:OSから物理メモリ空間として見える
Valueは、設定されている値である。
図2において、メモリ手動交換のValueとして、Nが記載されている。これは、不揮発性主記憶装置131の手動交換を行わないことを示す。尚、Yが記載されている場合は、不揮発性主記憶装置131の手動交換を行うことを示す。尚、「メモリ手動交換」は、後述の第4の実施の形態で利用される。
図2において、ダンプ先外部記憶装置のValueとして、Ctrl=0, Device=2が記載されている。Ctrl=0, Device=2は、ダンプ先の外部記憶装置161を識別する情報である。
また、図2において、メモリスロット5のValueとして「Pri=High」、メモリスロット6のValueとして「Pri=Low」が記載されている。「Pri」は優先度を示し、メモリスロット5に搭載されている主記憶装置の優先度がHigh、メモリスロット6に搭載されている主記憶装置の優先度がLowであることを示している。
図3は、第1の実施の形態に係る不揮発性主記憶装置の構成および接続バスを示す図である。
不揮発性主記憶装置131−1は、NVMコントローラ201−1、Electrically Erasable Programmable Read-Only Memory(EEPROM)211、外部記憶装置コントローラ231、コネクタ241、および記憶素子251−k(k=1〜8)
NVMコントローラ201−1は、バッファ202、記憶素子管理テーブル203、および制御ファームウェア204を備える。
NVMコントローラ201−1はOSの動作とは無関係に、ダンプ対象のデータを能動的に外部記憶装置161にコピーする。コピーはOSからのアクセス同様、最小アクセス単位はページだが、外部記憶装置161とのプロトコルが一度の転送命令で送信可能なデータ長の範囲で、複数のページが一括して送信されることで効率化を図る。
バッファ202は、記憶素子251に書き込むデータまたは記憶素子251から読み出したデータを一時的に格納する記憶装置である。
記憶素子管理テーブル203は、不揮発性主記憶装置131−1の各ページの状態が記載されたテーブルである。
尚、記憶素子管理テーブル203の詳細については後述する。
実施の形態の情報処理装置101では、仮想記憶方式によりOSが主記憶領域を「ページ」と呼ばれる構造体の単位で分割し、それらを管理するための構造として「ページテーブル」が存在するものとする。OSのページテーブルはメモリ空間全体でひとつ保持され、主記憶領域の一部を利用して格納されるため、主記憶装置毎に持つものではない。一方、OSが管理するページテーブルとは別に、個々の不揮発性主記憶装置131のNVMコントローラ201は、ダンプ管理のために独自のページテーブルを保持するものとする。また、各ページのサイズおよび開始位置はOSが管理するものと一致するものとする。
制御ファームウェア204は、後述するBackground(BG)ダンプルーチン処理等を行うプログラムである。制御ファームウェア204は、NVMコントローラ201−1により実行される。
尚、不揮発性主記憶装置131−2、131−3の構成は、不揮発性主記憶装置131−1の構成と同様であるため説明は省略する。
EEPROM211は、不揮発性主記憶装置131−1の特性やメモリダンプ処理の設定などの情報を格納する。尚、EEPROM211に格納される情報の詳細については後述する。
外部記憶装置コントローラ231は、コネクタ241を介して、外部記憶装置コントローラ151と接続する。この接続はダンプ用途に限らず、不揮発性主記憶装置の故障に備えたバックアップを、OSに負荷をかけずに実現するなどの用途に流用することも可能である。外部記憶装置コントローラ231は、外部記憶装置コントローラ151との間でデータの送受信を行う。外部記憶装置コントローラ231と外部記憶装置コントローラ151との間で通信を行うことで、Direct Memory Access(DMA)コントローラを含むI/Oコントローラ113やPCIバス193に影響が生じなくなる。
外部記憶装置161との通信プロトコルはSmall Computer System Interface(SCSI)など任意のものでよい。外部記憶装置コントローラ151、231は単純に通信プロトコルをやりとりする機能だけでなく、ブロックまたはファイルシステム上の書き込み位置を理解可能なレベルのものが実装される。
記憶素子251は、データを格納する素子である。
図4は、記憶素子管理テーブルの例を示す図である。
記憶素子管理テーブル203には、ページ番号とフラグが対応付けられて記載されている。
ページ番号は、ページに割り当てられた番号である。尚、以下の説明において、ページ番号nのページをページnと表記する場合がある。
フラグは、ページの状態を示す情報である。フラグとして、空き領域、使用領域(Dirty)、使用領域(Sync)、未ダンプ、またはReservedが記載される。
空き領域は、データが書き込まれていない空き領域であることを示す。
使用領域(Dirty)は、データが書き込まれており、且つ該データは外部記憶装置161へコピーされていない、すなわち未ダンプであることを示す。
使用領域(Sync)は、データが書き込まれており、該データは外部記憶装置161へコピー済み、すなわちダンプ済みであることを示す。
未ダンプは、ダンプされていないことを示す。また、未ダンプ(1)、未ダンプ(2)のような未ダンプの後ろに付加されている数字は、ダンプの世代を示す。BGダンプ処理中に再度クラッシュ事象が発生した場合も再度ダンプは可能である。この場合、前回のダンプデータの残りと今回のダンプデータの分離を可能とするために、NVMコントローラ201がBGダンプ処理を実行する初期にすべての使用済みページを「未ダンプ」と設定する処理で、すでに「未ダンプ」となっているページのフラグを見つけた場合「未ダンプ(1)」に書き換えることで、区別を可能とする。この場合、NVMコントローラ201は前回と今回のダンプ先のファイル名を区別可能なようにするなどの処理を行う。同様に前々回の未ダンプデータは「未ダンプ(2)」などとインクリメントすることで複数世代の管理も可能であるが、フラグの実装上どれだけ未アサインの番号が存在するかが世代の上限となる。例えば、フラグが4ビット(16値)で管理され、4値が既存のフラグとしてアサイン済みであれば、追加で最大12世代分が管理可能である。
Reservedは、未使用の(すなわち、外部から見たアドレスが割り当てられていない)予備領域であることを示す。
図5は、EEPROMに記録されている情報を示す図である。
EEPROM211には、主記憶モジュールの種類、主記憶モジュールの容量、ECCの有無、温度センサ値、BGダンプフラグ、およびダンプ先外部記憶装置が記録されている。
主記憶モジュールの種類は、主記憶装置の種類を示す。詳細には、主記憶モジュールの種類は、主記憶装置が揮発性か不揮発性であるかを示す。図5は、不揮発性主記憶装置131−1のEEPROM211なので、「不揮発性」が記載されている。
主記憶モジュールの容量は、不揮発性主記憶装置131−1の容量を示す。
ECCの有無は、不揮発性主記憶装置131−1のError Check and Correct(ECC)機能の有無を示す。
温度センサ値は、温度センサから取得した不揮発性主記憶装置131−1の温度である。
BGダンプフラグは、BGダンプ処理を行うか否かを示す。BGダンプフラグは0〜2のいずれかが設定される。0は無効(すなわち、BGダンプ処理を行わない、若しくはBGダンプ処理完了)、1は有効(すなわち、BGダンプ処理を行う)、2は有効且つWait(すなわち、BGダンプ処理を行うために待機)を示す。
ダンプ先外部記憶装置は、ダンプ先の外部記憶装置を示す。
尚、揮発性主記憶装置121にも揮発性主記憶装置121の特性(主記憶モジュールの種類、主記憶モジュールの容量、ECCの有無、温度センサ値等)が記録されたEEPROMが搭載されている。
図6は、第1の実施の形態に係るメモリダンプ処理のフローチャートである。
先ず、情報処理装置101では、OSが実行されているものとする。
ステップS501において、情報処理装置101のOSでクラッシュ事象、すなわち致命的なエラーが発生する。
ステップS502において、CPU111は、ダンプ処理を開始する。
ステップS503において、CPU111は、不揮発性主記憶装置131のBGダンプフラグを設定する。詳細には、CPU111は、BIOS設定情報173を参照し、各不揮発性主記憶装置131の優先度(Pri)を確認する。CPU111は、Pri=Highである不揮発性主記憶装置131のBGダンプフラグを1、Pri=Lowである不揮発性主記憶装置131のBGダンプフラグを2に設定する。
ステップS504において、NVMコントローラ201は、記憶素子管理テーブル203のフラグを設定する。詳細には、NVMコントローラ201は、「使用領域(Dirty)」を「未ダンプ」に設定する。NVMコントローラ201は、「使用領域(Dirty)」以外のフラグを「空き領域」に設定する。
ステップS505において、CPU111は、不揮発性主記憶装置131以外の装置(CPU111および揮発性主記憶装置121を含む)をリセットする。
ステップS506において、CPU111は、OSを起動する。
以下、ステップS507〜S510とステップS511が並列に実行される。
ステップS507において、Pri=Highである不揮発性主記憶装置131のNVMコントローラ201は、BGダンプ処理を実行する。尚、BGダンプルーチン処理の詳細については後述する。
ステップS508において、CPU111は、Pri=Highである全ての不揮発性主記憶装置131のEEPROM211内のBGダンプフラグが0であることを検出する。すなわち、Pri=Highである全ての不揮発性主記憶装置131でBGダンプルーチン処理が完了したことを検出する。
ステップS509において、CPU111は、Pri=Lowである不揮発性主記憶装置131のEEPROM211内のBGダンプフラグを1に設定する。
ステップS510において、Pri=Lowである不揮発性主記憶装置131のNVMコントローラ201は、BGダンプ処理を実行する。尚、BGダンプルーチン処理の詳細については後述する。
ステップS511において、各NVMコントローラ201は、割り込みダンプ処理を行う。尚、割り込みダンプ処理については後述する。
尚、上述のCPU111が実行する各ステップは、CPU111がBIOS172を読み出して実行することにより実現される。
図7は、第1の実施の形態に係るBGダンプ処理の詳細なフローチャートである。
図7は、図6のステップS507またはステップS510に対応する。
ステップS521において、NVMコントローラ201は、以下のステップS522〜S524で処理対象とするページを未選択のページの中から1つ選択する。例えば、NVMコントローラ201は、未選択のページの中から、ページ番号が一番小さいページを選択する。これにより、ページ番号の昇順にページが選択される。以下、選択されたページを選択ページと表記する。
ステップS522において、NVMコントローラ201は、記憶素子管理テーブル203を参照し、選択ページのフラグが「未ダンプ」であるかチェックする。選択ページのフラグが「未ダンプ」の場合、制御はステップS523に進み、「未ダンプ」でない場合、制御はステップS525に進む。
ステップS523において、NVMコントローラ201は、選択ページのデータを外部記憶装置161にコピー(送信)する。これにより、選択ページのデータは、外部記憶装置161に書き込まれる。
ステップS524において、NVMコントローラ201は、記憶素子管理テーブル203の選択ページのフラグを「空き領域」に設定する。
ステップS525において、未選択のページがある場合、制御はステップS521に戻り、未選択のページがない場合(すなわち、フラグが「未ダンプ」であるページが無い場合)、制御はステップS526に進む。
ステップS526において、NVMコントローラ201は、EEPROM211のBGダンプフラグを0に設定する。
図8は、第1の実施の形態に係る割り込みダンプ処理の詳細なフローチャートである。
図8は、図6のステップS511に対応する。
ステップS531において、NVMコントローラ201は、OSからの書き込み要求を待つ。OSからの書き込み要求を受信した場合、制御はステップS532に進む。また、BGダンプ処理が終了した場合、割り込みダンプ処理は終了する。
ステップS532において、NVMコントローラ201は、記憶素子管理テーブル203を参照し、書き込み要求による書込み先のページのフラグが「未ダンプ」であるか否かチェックする。書込み先のページのフラグが「未ダンプ」である場合、制御はステップS533に進み、「未ダンプ」でない場合、制御はステップS534に進む。
ステップS533において、NVMコントローラ201は、書込み要求データをバッファ202に書き込み、書込み完了をOSに報告する(Write Back方式)。そして、NVMコントローラ201は、書込み要求データの書込み先のページを外部記憶装置161にコピー(送信)し、該ページのフラグを「空き領域」に設定する。
ステップS534において、NVMコントローラ201は、書込み要求データを書込み先のページ(記憶素子251)に書き込む。また、データが書き込まれたページのフラグは、「使用領域(Dirty)」となる。そして、制御はステップS531に戻る。
図9は、第1の実施の形態に係る割り込みダンプ処理を示す図である。
図9では、書込み先のページが未ダンプである場合の処理を示す。
先ず、NVMコントローラ201は、OSからの書き込み要求を受信する(ステップS541)。
NVMコントローラ201は、記憶素子管理テーブル203を参照し、書き込み要求による書込み先のページ(ページ番号=50)のフラグが「未ダンプ」であるか否かチェックする。ここでは、書込み先のページのフラグが「未ダンプ」であるので、NVMコントローラ201は、書込み要求データをバッファ202に書き込み、書込み完了をOSに報告する(ステップS542)。
NVMコントローラ201は、書込み先のページのデータを外部記憶装置161に書き込むためのキューを生成し、順番待ちになっているキューの先頭に割り込ませる。
そして、書込み先のページのデータが外部記憶装置161に書き込まれた後、NVMコントローラ201は、書込み要求データを書込み先のページ(記憶素子251)に書き込む。
図9において、BGダンプ処理により、ページを順次ダンプするキューが生成されている。生成されたキューは、生成された順に並んでおり、先頭から順次、外部記憶装置コントローラ151に送信される。
図9においては、ページ番号=6〜9のページを外部記憶装置161に書き込むためのキューが順番に並んでいる状態で、ページ番号=50のページを外部記憶装置161に書き込むためのキューがページ番号=6のページのキューの前に割り込んだ状態を示している。このように、ページ番号=50のページを外部記憶装置161に書き込むためのキューが並んでいるキューに割り込み、先に実行される。
割り込みダンプ処理を用いることにより、OSからの初回のデータ書き込みこそ低速であるが、それ以後の同一ページへの読み書きは通常時の不揮発性主記憶装置と同等の速度が得られる。また、ダンプに割り込みが発生したり、複数の不揮発性主記憶装置から非同期にダンプされることで、ダンプファイルは断片化(フラグメンテーション)が発生する。ダンプファイルが不連続となる箇所には開始アドレスとオフセットが合わせて記録されるようにすることで、ダンプの解析時に正しいアドレス空間に復元することが可能である。
図10は、優先度による段階的なメモリダンプを示す図である。
上述のように、図6のメモリダンプ処理では、Pri=Highの不揮発性主記憶装置のBGメモリダンプ処理の後に、Pri=Lowの不揮発性主記憶装置のBGメモリダンプ処理が行われている。
このような優先度に基づく段階的なBGメモリダンプ処理の意義について説明する。
OSのメモリ管理の特性上、BIOSが決定した物理メモリアドレスにはアクセス順序や頻度に局所性があることが予想される。特にOSの起動にはカーネルが利用する領域を優先的にダンプする必要がある。このような特性をプロファイルとしてBIOS設定情報173に保持し、不揮発性主記憶装置131の単位で優先順位付けをすることで、カーネルが利用する領域を優先的にダンプすることができる。
図10では、不揮発性主記憶装置1〜Nがあり、不揮発性主記憶装置1、2にカーネル空間、不揮発性主記憶装置3〜Nにユーザプロセス空間が割り当てられるものとする。
よって、不揮発性主記憶装置1、2の優先度はHigh、不揮発性主記憶装置3〜Nの優先度はLowに設定される。
メモリダンプの第1段階では、不揮発性主記憶装置1、2においてBGダンプフラグ=1(有効)に設定され、不揮発性主記憶装置3〜NにおいてBGダンプフラグ=2(有効:Wait)に設定される。
BIOS172を実行するCPU111は、EEPROM211を監視して、優先度が高い不揮発性主記憶装置1、2のBGダンプフラグ=0(無効)となった時点で、優先度が低い不揮発性主記憶装置3〜NにBGダンプフラグ=1(有効)を設定する(第2段階)。
尚、BGダンプフラグ=2(有効:Wait)の場合、NVMコントローラ201はOSからの書き込み要求に応じて割り込みダンプ処理を実施するときだけダンプを実施する。
図10において、ダンプ第二段階の主記憶装置3〜Nで飛び飛びに網掛けになっている部分が、割り込みダンプ処理によってダンプ済みの領域を示す。
図11は、第1の実施の形態に係るクラッシュ事象発生直前およびBGダンプフラグ設定直後の記憶素子管理テーブルの状態を示す図である。
図11の上側はクラッシュ事象発生直前の記憶素子管理テーブルの状態を示し、下側はBGダンプフラグ設定直後の記憶素子管理テーブルの状態を示す。
図11では、記憶素子管理テーブル203の各レコードを記憶素子の物理的な位置(Column,Row)に対応するように配置して記載している。
図11では、クラッシュ事象発生直前において、ページ1〜3、6、X−1のフラグは「使用領域(Dirty)」であり、ページ4、5、Xのフラグは「空き領域」である。
図6で述べたように、BGダンプフラグが設定される(ステップS503)とNVMコントローラ201は記憶素子管理テーブル203のフラグを設定する(ステップS504)。図11の下側に示すように、「使用領域(Dirty)」は、「未ダンプ」に設定される。
第1の実施の形態の情報処理装置によれば、メモリダンプ処理による業務停止時間を短縮することができる。
第1の実施の形態の情報処理装置によれば、不揮発性主記憶装置から外部記憶装置へのダンプ処理をOS再起動後のバックグラウンド処理とすることで、業務停止時間を短縮することができる。
(第2の実施の形態)
第2の実施の形態では、不揮発性記憶装置131において、外部から見たアドレスに対して記憶素子が可変的に割り当てられる場合について説明する。
尚、第2の実施の形態の情報処理装置の構成は、特に断りのない限り第1の情報処理装置の構成と同様であるため説明は省略する。
第2の実施の形態の不揮発性主記憶装置131は、NAND型フラッシュメモリを用いたSSDで用いられているような、外部から見たアドレスに対して記憶素子が可変的に割り当てられているような方式が実装されているものとする。
このような不揮発性主記憶装置131は、ある記憶素子が保持するデータを直接更新することができず、別の記憶素子に書き込む、またはひとまとまりの記憶素子の列をイレーズ後に再度書き込むなどの処理を行う。
また、記憶素子の寿命が書き込み回数に依存するため、特定の記憶素子に書き込みが偏らないよう、不揮発性主記憶装置131は、外部から見て連続したアドレスであっても、内部的には不連続な領域に書き込むウェアレベリングと呼ばれる機能を持つ。このため、不揮発性主記憶装置131は、外部から見たアドレスと、記憶素子の対応を管理するためのテーブルを持つ。第2の実施の形態では、第1の実施の形態の記憶素子管理テーブル203を拡張することで、外部から見たアドレスと記憶素子との対応を管理するテーブルを実現する。
実際には記憶素子1つにつき1つのアドレスを割り当てると、その管理のために膨大な量の管理表が必要となるため、ブロックと呼ばれる数キロバイト程度の単位で対応関係は管理される。
図12は、第2の実施の形態に係る不揮発性主記憶装置の状態を示す図である。
第2の実施の形態の不揮発性主記憶装置131は、データの読み書きに用いられる有効記憶素子と、ウェアレベリングに用いられるウェアレベリング用記憶素子を有する。
第2の実施の形態の不揮発性主記憶装置131は、外部から見た不揮発性主記憶装置131の容量に対し、実際には数割程度余分にウェアレベリング用の記憶素子を有する。
第2の実施の形態の不揮発性主記憶装置131は、記憶素子管理テーブル203の代わりに、記憶素子管理テーブル203を拡張した記憶素子管理テーブルを有する。
以下、第1の実施例の記憶素子管理テーブル203を拡張した記憶素子管理テーブルを拡張記憶素子管理テーブル203’と表記する。
図13は、拡張記憶素子管理テーブルの例である。
拡張記憶素子管理テーブル203’は、外部から見た物理アドレス範囲、使用記憶素子位置、ページ番号、およびフラグが対応付けられて記載されている。
外部から見た物理アドレス範囲は、外部(OSやメモリコントローラ112)から見た不揮発性主記憶装置131の物理アドレスの範囲である。
使用記憶素子位置は、不揮発性主記憶装置131の記憶素子251の位置を示す。
ページ番号は、ページに割り当てられた番号である。
フラグは、ページの状態を示す情報である。
第2の実施の形態において、メモリダンプ処理やBGダンプ処理は第1の実施の形態と同様である。第2の実施の形態では、図8の割り込みダンプ処理の代わりに下記のような割り込みダンプ処理が行われる。
図14は、第2の実施の形態に係る割り込みダンプ処理の詳細なフローチャートである。
図14は、図6のステップS511に対応する。
ステップS601において、NVMコントローラ201は、OSからの書き込み要求を待つ。OSからの書き込み要求を受信した場合、制御はステップS602に進む。また、BGダンプ処理が終了した場合、割り込みダンプ処理は終了する。
ステップS602において、NVMコントローラ201は、拡張記憶素子管理テーブル203’を参照し、書込み先のメモリアドレスを含むページのフラグが「未ダンプ」であるか否かチェックする。書込み先のメモリアドレスを含むページのフラグが「未ダンプ」である場合、制御はステップS603に進み、「未ダンプ」でない場合、制御はステップS605に進む。
ステップS603において、NVMコントローラ201は、書込み先のメモリアドレスを含む外部から見た物理アドレス範囲を無効にする。詳細には、NVMコントローラ201は、拡張記憶素子管理テーブル203’の書込み先のメモリアドレスを含む外部から見た物理アドレス範囲に「無効」を書き込む。
ステップS604において、NVMコントローラ201は、無効にした外部から見た物理アドレス範囲を未割り当ての記憶素子に割り当てる。詳細には、NVMコントローラ201は、拡張記憶素子管理テーブル203’の未割り当ての記憶素子の使用記憶素子位置に対応する外部から見た物理メモリアドレス範囲およびページ番号に、それぞれ無効にした外部から見た物理アドレス範囲と無効にしたページのページ番号を書き込む。
ステップS605において、NVMコントローラ201は、書込み要求データを新たに割り当てたページに書き込む。また、データが書き込まれたページのフラグは、「使用領域(Dirty)」となる。そして、制御はステップ601に戻る。
図15は、割り当て変更前と割り当て変更後の拡張記憶素子管理テーブルを示す図である。
図15の上側は変更前の拡張記憶素子管理テーブル203’、下側は変更後の拡張記憶素子管理テーブル203’を示す。
割り当て変更前において、図15の上側の拡張記憶素子管理テーブル203’に示すように、外部から見た物理メモリアドレスの範囲0x01010000〜0x0101FFFFに対応する使用記憶素子位置は0x1254、ページ番号は20、フラグは未ダンプである。
また、未割り当ての記憶素子として、記憶素子位置が0x57B9である記憶素子がある。
図15では、書込み要求の書込み先のメモリアドレスが0x01010000〜0x0101FFFFの範囲に含まれるものとする。
図14で述べたように、書込み先のメモリアドレスを含むページのフラグが「未ダンプ」である場合、NVMコントローラ201は、拡張記憶素子管理テーブル203’の書込み先のメモリアドレスを含む外部から見た物理アドレス範囲に「無効」を書き込む。これにより、図15の下側の拡張記憶素子管理テーブル203’に示すように、無効としたページに対応する外部から見た物理メモリアドレスの範囲は、0x01010000〜0x0101FFFF(無効)となっている。
また、NVMコントローラ201は、拡張記憶素子管理テーブル203’の未割り当ての記憶素子の使用記憶素子位置に対応する外部から見た物理アドレス範囲およびページ番号に、それぞれ無効にした外部から見た物理メモリアドレス範囲と無効にしたページのページ番号を書き込む。NVMコントローラ201は、書込み要求データを新たに割り当てたページに書き込み、フラグを「使用領域(Dirty)」とする。
これにより、図15の下側の拡張記憶素子管理テーブル203’に示すように、記憶素子位置が0x57B9に対応する外部から見た物理メモリアドレス範囲は0x01010000〜0x0101FFFF、ページ番号は20、フラグは「使用領域(Dirty)」となる。
また、BGダンプ処理は割り込みダンプ処理とは非同期に順次実行されるため、もともとのアドレス範囲が後から判別可能なように、アドレスデータそのものは保持される。ダンプ後には当該記憶素子のアドレス範囲及びページ番号は未割当に変更され、ウェアレベリング用にプールされる。
第2の実施の形態の情報処理装置によれば、メモリダンプ処理による業務停止時間を短縮することができる。
第2の実施の形態の情報処理装置によれば、OSからの書き込み処理とダンプ処理とを非同期に実行することで、第1の実施の形態に比べて性能劣化が発生しにくくすることができる。
(第3の実施の形態)
第3の実施の形態では、NVMコントローラ201がメモリダンプ処理を行っていない通常時に不揮発性記憶装置131のデータを外部記憶装置161にバックアップする場合について説明する。
尚、第3の実施の形態の情報処理装置の構成は、特に断りのない限り第1の情報処理装置の構成と同様であるため説明は省略する。
第3の実施の形態では、記憶素子管理テーブルのフラグとしてさらに「使用領域(Sync)」を用いる。
通常時のバックアップ処理は、下記の通りである。
第3の実施の形態のNVMコントローラ201は、記憶素子管理テーブル203を監視し、フラグが「使用領域(Dirty)」であるページがあるかチェックする。
NVMコントローラ201は、フラグが「使用領域(Dirty)」であるページを検出すると、該ページのデータを外部記憶装置161に書き込む(バックアップ)。
そして、NVMコントローラ201は、該ページのフラグを「使用領域(Sync)」に設定する。
尚、NVMコントローラ201は、OSからの書込み要求によりページにデータを書き込んだ場合には、該ページのフラグを「使用領域(Dirty)」に設定する。
NVMコントローラ201は、常に記憶素子管理テーブル203を監視し、フラグが「使用領域(Dirty)」であるページを減らすようにバックアップを行う。
また、第3の実施の形態のメモリダンプ処理は、基本的に第1の実施の形態のメモリダンプ処理(図6)と同様である。
図16は、第3の実施の形態に係るクラッシュ事象発生直前およびBGダンプフラグ設定直後の記憶素子管理テーブルの状態を示す図である。
図16の上側はクラッシュ事象発生直前の記憶素子管理テーブルの状態を示し、下側はBGダンプフラグ設定直後の記憶素子管理テーブルの状態を示す。
図16では、記憶素子管理テーブル203の各レコードを記憶素子の物理的な位置(Column,Row)に対応するように配置して記載している。
図16では、クラッシュ事象発生直前において、ページ1、6のフラグは「使用領域(Dirty)」であり、ページ2、3、X−1のフラグは「使用領域(Sync)」であり、ページ4、5、Xのフラグは「空き領域」である。
上述のように、第3の実施の形態のメモリダンプ処理は、第1の実施の形態のメモリダンプ処理と同様である。BGダンプフラグが設定される(ステップS503)とNVMコントローラ201は記憶素子管理テーブル203のフラグを設定する(ステップS504)。図16の下側に示すように、「使用領域(Dirty)」は「未ダンプ」に設定され、「使用領域(Sync)」は「空き領域」に設定される。
第3の実施の形態では、フラグ=使用領域(Sync)のページは、外部記憶装置161にバックアップ済みであるので、ダンプする必要が無い。
図11の下側と図16の下側とを比較すると、第3の実施の形態では、フラグが「未ダンプ」であるページが少なくなっている。
よって、第3の実施の形態では、第1の実施の形態よりもメモリダンプ処理の時間が短縮できる。
図17は、記憶素子管理テーブルのフラグの状態遷移図である。
初期状態では、S0(フラグ=空き領域)である。
S0の状態において、ページにデータが書き込まれるとS1(フラグ=使用領域(Dirty))に遷移する。
S1の状態において、通常時にバックアップ処理が行われるとS2(フラグ=使用領域(Sync))に遷移する。また、S1の状態において、ダンプフラグが有効になると、S3(フラグ=未ダンプ)に遷移する。また、S1の状態において、ページを含む不揮発性主記憶装置131が解放されると(メモリ解放)、S0(フラグ=未ダンプ)に遷移する。
S2の状態において、ページにデータが書き込まれると、S1(フラグ=使用領域(Dirty))に遷移する。S2の状態において、ダンプフラグが有効になると、S3(フラグ=未ダンプ)に遷移する。
S3の状態において、ダンプフラグが有効になると、S4(フラグ=未ダンプ(1))に遷移する。S3の状態において、メモリダンプ処理が実施されると、S0(フラグ=空き領域)に遷移する。
以下、同様に状態S4〜S(X−1)において、ダンプフラグが有効になると、「未ダンプ」の世代を示す番号が1インクリメントされる。尚、状態SXでは、「未ダンプ」の世代を示す番号がインクリメントされない。また、S4〜SXの状態において、メモリダンプ処理が実施されると、S0(フラグ=空き領域)に遷移する。
第3の実施の形態の情報処理装置によれば、メモリダンプ処理による業務停止時間を短縮することができる。
第3の実施の形態の情報処理装置によれば、通常時にバックアップを採取しているため、メモリダンプ処理時にはバックアップとの差分のみをダンプすればよいので、メモリダンプ処理の時間を短縮することができる。
(第4の実施の形態)
第4の実施の形態では、第1〜第3の実施の形態のいずれかにおいて、さらに不揮発性主記憶装置のすべてまたは一部をダンプ対象外とする処理や揮発性主記憶装置から不揮発性主記憶装置へのコピー等の処理を行う場合について説明する。
尚、第4の実施の形態の情報処理装置の構成は、特に断りのない限り第1の情報処理装置の構成と同様であるため説明は省略する。
図18A、Bは、第4の実施の形態に係るメモリダンプ処理のフローチャートである。
先ず、情報処理装置101では、OSが実行されているものとする。
ステップS701において、情報処理装置101のOSでクラッシュ事象、すなわち致命的なエラーが発生する。
ステップS702において、CPU111は、ダンプ処理を開始する。
以下、揮発性主記憶装置ダンプルーチン(ステップS703〜S707)と不揮発性主記憶装置フラグ設定処理(ステップS708〜S712)が並列に実行される。尚、揮発性主記憶装置ダンプルーチンと不揮発性主記憶装置フラグ設定処理は、直列に実行されても良いし、どちらが先に実行されてもよい。
ステップS703において、CPU111は、フォアグラウンドの揮発性主記憶装置ダンプルーチン(フォアグラウンドダンプ)を開始する。尚、フォアグラウンドとは、情報処理装置101が専らダンプ処理のために動作しており、業務が稼働していない状態を示す。
尚、CPU111は、主記憶装置(揮発性主記憶装置121および不揮発性主記憶装置131)のEEPROMを参照し、主記憶装置が揮発性か不揮発性か判別する。
ステップS704において、CPU111は、不揮発性主記憶装置131に揮発性主記憶装置121の全データまたは1部のデータをコピー可能な空き領域があるかチェックする。揮発性主記憶装置121のデータをコピー可能な空き領域がある場合、制御はステップS705に進み、揮発性主記憶装置121のデータをコピー可能な空き領域がない場合、制御はステップS706に進む。
ステップS705において、CPU111は、揮発性主記憶装置121のデータを不揮発性主記憶装置131にコピー(書き込み)する。発性主記憶装置121のデータを不揮発性主記憶装置131にコピーするときに、CPU111は、揮発性主記憶装置のもともとのメモリアドレスが後から判別可能なような付加情報(例えば、コピーしたデータの開始アドレスおよびサイズまたはアドレスのオフセットなど)を同時に保存する。
また、コピーの途中で不揮発性主記憶装置131の空き領域がなくなった場合は、制御はステップS706に進み、未コピーの揮発性主記憶装置121のデータは、外部記憶装置161にコピーされる。
ステップS706において、CPU111は、揮発性主記憶装置121のデータを外部記憶装置161にコピー(書き込み)する。
ステップS707において、CPU111は、揮発性主記憶装置ダンプルーチンを終了する。
尚、不揮発性主記憶装置131の空き領域は、あらかじめ予約されているように実装することも可能だし、揮発性主記憶装置ダンプルーチンは、クラッシュ事象発生時の状態により変化する空き領域に動的に対応できるよう実装されることが望ましい。
ステップS708において、CPU111は、不揮発性主記憶装置フラグ設定処理を開始する。
ステップS709において、CPU111は、BIOS設定情報173を参照し、不揮発性主記憶装置131がブロックアクセスであるかチェックする。不揮発性主記憶装置131がブロックアクセスの場合、制御はステップS710に進み、不揮発性主記憶装置131がブロックアクセスでない場合(バイトアクセスである場合)、制御はステップS711に進む。尚、上記チェックは、全ての不揮発性主記憶装置131に対して行う。
ステップS710において、CPU111は、ブロックアクセスである不揮発性主記憶装置131をダンプの対象外とする。
ステップS711において、CPU111は、バイトアクセスである不揮発性主記憶装置131のBGダンプフラグを設定する。詳細には、CPU111は、BIOS設定情報173を参照し、各不揮発性主記憶装置131の優先度(Pri)を確認する。CPU111は、Pri=Highである不揮発性主記憶装置131のBGダンプフラグを1、Pri=Lowである不揮発性主記憶装置131のBGダンプフラグを2に設定する。
BGダンプフラグが設定されたNVMコントローラ201は、記憶素子管理テーブル203のフラグを設定する。詳細には、NVMコントローラ201は、「使用領域(Dirty)」を「未ダンプ」に設定する。NVMコントローラ201は、「使用領域(Dirty)」以外のフラグを「空き領域」に設定する。
ステップS712において、CPU111は、不揮発性主記憶装置フラグ設定処理を終了する。
ステップS713において、CPU111は、不揮発性主記憶装置131の手動交換を行うか否か判断する。詳細には、CPU111は、BIOS設定情報173を参照し、「手動交換」がYかNかによって、揮発性主記憶装置131の手動交換を行うか否か判断する。手動交換を行う場合、制御はステップS714に進み、手動交換を行わない場合、制御はステップS717に進む。
ステップS714において、CPU111は、情報処理装置101の電源をオフにする。
また、CPU111は、ダンプ処理の開始および電源オフのタイミングそれぞれでBIOSから情報処理装置101を管理するBaseboard Management Controller(BMC)に対してイベント通知を行い、BMCは手動交換の準備および着手のタイミングをSimple Network Management Protocol(SNMP)トラップや電子メールなどの方法で保守員に知らせる。
ステップS715において、保守員が手動で不揮発性主記憶装置131を交換し、情報処理装置101の電源をオンにする。
保守員はその場またはサポートセンターに別途用意した計算機で取り外した不揮発性主記憶装置のデータをダンプし、外部記憶装置161にダンプされていたデータとマージすることで解析に必要なダンプデータを得る。
尚、セキュリティを考慮して不揮発性主記憶装置131のデータが暗号化されている場合、保守員は情報処理装置101の所有者の了承のもとに解読用コードを入手する。
ステップS716において、CPU111は、OSを起動する。
ステップS717において、CPU111は、不揮発性主記憶装置131のメモリアドレス空間が消えてしまわないよう、CPU111と揮発性主記憶装置121をリセットする。
ステップS718において、CPU111は、OSを起動する。
ステップS719において、CPU111およびNVMコントローラ201は、BGダンプ処理を実行する。ステップS719では、例えば、図6のステップS507〜S510の処理が実行される。尚、BGダンプ処理は、ステップS711においてBGダンプフラグが設定された不揮発性主記憶装置131で行われる。
ステップS720において、各NVMコントローラ201は、割り込みダンプ処理を行う。尚、割り込みダンプ処理は、図8または図14で説明した通りである。
尚、上述のCPU111が実行する各ステップは、CPU111がBIOS172を読み出して実行することにより実現される。
上記に様にして得られたダンプデータは取得タイミングやアドレスがバラバラのファイルとなってしまうため、別途用意するソフトウェアツールによりマージするか、バラバラのファイルを読み込み可能なダンプの解析ソフトを利用する。
図19は、第4の実施の形態に係る各処理時のデータの位置を示す図である。
図19では、不揮発性主記憶装置131−1がブロックアクセス、不揮発性主記憶装置131−1がバイトアクセスとする。また、不揮発性主記憶装置131−3の記載は省略する。また、図19では、揮発性主記憶装置121−1を記載し、揮発性主記憶装置121−2、121−3は省略する。
先ず、クラッシュ事象発生時には、不揮発性主記憶装置131−1はデータA、Bを格納している。不揮発性主記憶装置131−2はデータCを格納しており、空き領域(Free)を有する。揮発性主記憶装置121−1は、データD、Eを格納している(図19のクラッシュ事象発生時の状態)。尚、不揮発性主記憶装置131−1のデータA、Bは、バックグラウンドダンプ完了まで保持される。
揮発性主記憶装置ダンプルーチン(フォアグラウンドダンプ)が開始され、揮発性主記憶装置121−1のデータDは、不揮発性主記憶装置131−2にコピーされる(図19のフォアグラウンドダンプ中)。また、データDの、不揮発性主記憶装置131−2へのコピーにより、不揮発性主記憶装置131−2の空き領域は無くなる。
不揮発性主記憶装置131−2の空き領域が無いため、揮発性主記憶装置121−1のデータEは、外部記憶装置161にコピーされる(図19のフォアグラウンドダンプ完了)。
OSが再起動され(ステップS718)、BGダンプ処理が実行される(ステップS719)と、不揮発性主記憶装置131−2のデータC、Dは、外部記憶装置161にコピーされる。また、再起動されたOSのデータF、Gが揮発性主記憶装置121−1に書き込まれ、再起動されたOSのデータHが不揮発性主記憶装置131−2に書き込まれる(図19のバックグランドダンプ中)。
BGダンプ処理が終了すると、揮発性主記憶装置121−1は、データF、Gを格納しており、不揮発性主記憶装置131−2は、データHを格納しており、データDがあった領域は空き領域となっている(図19のバックグラウンドダンプ完了)。
第4の実施の形態の情報処理装置によれば、メモリダンプ処理による業務停止時間を短縮することができる。
第4の実施の形態の情報処理装置によれば、ブロックアクセスの不揮発性主記憶装置はダンプ不要であるから、これをダンプ対象外となるよう制御することで無駄な処理をなくすことができる。
第4の実施の形態の情報処理装置によれば、揮発性主記憶装置のデータを外部記憶装置よりも高速にアクセス可能な不揮発性主記憶の空き領域へコピーすることにより、フォアグラウンドのダンプの所要時間を短縮することができる。
第4の実施の形態の情報処理装置によれば、不揮発性主記憶装置から外部記憶装置へのダンプ処理をOS再起動後のバックグラウンド処理とすることで、業務停止時間を短縮することができる。
図20は、コンピュータシステムの構成図である。
以上説明したようなメモリダンプ処理は、当然一般的なコンピュータシステムによって実現することが可能である。図20において、実施の形態のメモリダンプ処理を実現するための情報処理装置11は、本体12とメモリ13とによって構成されている。メモリ13は、揮発性主記憶装置121、不揮発性主記憶装置131、外部記憶装置161、BIOS格納域171などの記憶装置に対応する。
このようなメモリ13に各実施の形態のメモリダンプ処理等を行うプログラムが格納され、そのプログラムが本体12によって実行されることによって、実施の形態の各種処理を実現することが可能となる。
このようなプログラムは、プログラム提供者側からネットワーク21を介して情報処理装置11にロードされることもできる。またプログラムは、市販され、流通している可搬型記憶媒体31に格納され、そのような可搬型記憶媒体31が情報処理装置11にセットされ、メモリ13に読み出されて本体12によって実行されることも可能である。
可搬型記憶媒体31としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスクなど様々な形式の記憶媒体を使用することができ、このような記憶媒体から読み出されたプログラムコード自体が実施の形態の機能を実現する。

Claims (10)

  1. オペレーティングシステムを実行する処理部と、
    前記処理部が直接アクセス可能且つコントローラを有する不揮発性主記憶装置と、
    前記処理部が直接アクセス可能でない外部記憶装置と、
    を備え、
    前記処理部が前記オペレーティングシステムのエラーを検出したとき、
    前記処理部は、前記不揮発性主記憶装置以外をリセットして、前記オペレーティングシステムを再起動し、
    前記コントローラは、前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込むことを特徴とする情報処理装置。
  2. 前記不揮発性主記憶装置は、複数の不揮発性主記憶装置であり、
    前記複数の不揮発性主記憶装置の各不揮発性主記憶装置の優先度が記載された設定情報を格納する情報格納部をさらに備え、
    前記処理部は、前記設定情報を参照し、前記優先度の高い順に、前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込む処理を前記コントローラに実行させることを特徴とする請求項1記載の情報処理装置。
  3. 前記コントローラは、
    前記オペレーティングシステムから前記不揮発性主記憶装置へ書き込む第1のデータを受信し、
    前記第1のデータが書き込まれる領域に存在する第2のデータが前記外部記憶装置に書き込まれていない場合、前記第2のデータを前記外部記憶装置に書き込み、
    前記第2のデータを前記外部記憶装置に書き込み後、前記第1のデータを前記不揮発性主記憶装置へ書き込むことを特徴とする請求項1記載の情報処理装置。
  4. 前記不揮発性主記憶装置は、外部から見たアドレスに対して未割り当ての領域を有し、
    前記コントローラは、
    前記オペレーティングシステムから前記不揮発性主記憶装置へ書き込む第1のデータを受信し、
    前記第1のデータが書き込まれる第1の領域に存在する第2のデータが前記外部記憶装置に書き込まれていない場合、
    前記第1の領域に割り当てられている外部から見たアドレスを無効にし、
    前記未割り当ての領域に前記第1の領域に割り当てられていた外部から見たアドレスを割り当て、
    前記第1の領域に割り当てられていた外部から見たアドレスを割り当てた前記未割り当ての領域へ前記第1のデータを書き込むことを特徴とする請求項1記載の情報処理装置。
  5. 前記コントローラは、
    前記不揮発性主記憶装置の複数の領域の各データが前記不揮発性主記憶装置へ書き込み済みであるかを示すフラグが記載された管理テーブルを有し、
    前記オペレーティングシステムの動作時に、前記管理テーブルを参照し、前記外部記憶装置へ書き込んでいない未書込みデータを検出し、
    該未書込みのデータを前記外部記憶装置へ書き込み、
    書き込んだデータに対応するフラグを、前記外部記憶装置に書き込み済みであることを示すように設定することを特徴とする請求項1記載の情報処理装置。
  6. 前記処理部が前記オペレーティングシステムのエラーを検出したとき、
    前記コントローラは、前記管理テーブルを参照し、前記フラグに基づいて、前記外部記憶装置へ書き込んでいない前記不揮発性主記憶装置のデータのみを前記外部記憶装置へ書き込むことを特徴とする請求項5記載の情報処理装置。
  7. 前記情報処理装置は、前記不揮発性主記憶装置がダンプ対象であるか否かを示す設定情報を格納する情報格納部をさらに備え、
    前記不揮発性主記憶装置は、前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込む処理を実行するか否かを示すダンプフラグを格納する主記憶装置情報格納部をさらに備え、
    前記処理部は、前記設定情報に基づいて、ダンプ対象である前記不揮発性主記憶装置の前記ダンプフラグを有効に設定し、
    前記コントローラは、前記ダンプフラグが有効の場合に、前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込むことを特徴とする請求項1記載の情報処理装置。
  8. 前記処理部が直接アクセス可能な揮発性主記憶装置をさらに備え、
    前記コントローラは、前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込む前に、前記揮発性主記憶装置のデータを前記不揮発性主記憶装置に書き込むことを特徴とする請求項1記載の情報処理装置。
  9. オペレーティングシステムを実行する処理部と、前記処理部が直接アクセス可能な不揮発性主記憶装置と、前記処理部が直接アクセス可能でない外部記憶装置と、を備える情報処理装置が実行するメモリダンプ方法であって、
    前記処理部が
    前記オペレーティングシステムのエラーを検出し、
    前記不揮発性主記憶装置以外をリセットし、
    前記オペレーティングシステムを再起動し、
    前記不揮発性主記憶装置が有するコントローラが
    前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込む
    処理を備えるメモリダンプ方法。
  10. オペレーティングシステムを実行する処理部と、前記処理部が直接アクセス可能な不揮発性主記憶装置と、前記処理部が直接アクセス可能でない外部記憶装置と、を備えるコンピュータに、
    前記処理部が
    前記オペレーティングシステムのエラーを検出し、
    前記不揮発性主記憶装置以外をリセットし、
    前記オペレーティングシステムを再起動し、
    前記不揮発性主記憶装置が有するコントローラが
    前記不揮発性主記憶装置のデータを前記外部記憶装置に書き込む
    処理を実行させるメモリダンププログラム。
JP2015529269A 2013-07-31 2013-07-31 情報処理装置、メモリダンプ方法、およびメモリダンププログラム Active JP6094677B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/070698 WO2015015589A1 (ja) 2013-07-31 2013-07-31 情報処理装置、メモリダンプ方法、およびメモリダンププログラム

Publications (2)

Publication Number Publication Date
JPWO2015015589A1 JPWO2015015589A1 (ja) 2017-03-02
JP6094677B2 true JP6094677B2 (ja) 2017-03-15

Family

ID=52431169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015529269A Active JP6094677B2 (ja) 2013-07-31 2013-07-31 情報処理装置、メモリダンプ方法、およびメモリダンププログラム

Country Status (4)

Country Link
US (1) US10025670B2 (ja)
EP (1) EP3029572A4 (ja)
JP (1) JP6094677B2 (ja)
WO (1) WO2015015589A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016139774A1 (ja) * 2015-03-04 2017-12-14 富士通株式会社 情報処理装置、情報処理システム
CN106959906B (zh) * 2017-03-28 2020-06-23 联想(北京)有限公司 信息处理方法、信息处理装置及电子设备
US10387261B2 (en) * 2017-05-05 2019-08-20 Dell Products L.P. System and method to capture stored data following system crash
WO2018231249A1 (en) 2017-06-16 2018-12-20 Hewlett-Packard Development Company, L.P. Communication port recovery
US10705902B2 (en) 2018-05-03 2020-07-07 Western Digital Technologies, Inc. Crash log storage and retrieval using boot partitions in solid state systems
US11487601B2 (en) * 2020-03-26 2022-11-01 Arista Networks, Inc. Persistent crash logging
CN111737171B (zh) * 2020-05-29 2022-04-19 苏州浪潮智能科技有限公司 一种交换机光模块信息获取系统、方法、设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111384A (en) * 1990-02-16 1992-05-05 Bull Hn Information Systems Inc. System for performing dump analysis
JPH03257641A (ja) * 1990-03-08 1991-11-18 Nec Corp メモリダンプ採取方式
JPH04182748A (ja) 1990-11-16 1992-06-30 Nec Eng Ltd メモリダンプ装置
JPH05134906A (ja) * 1991-11-11 1993-06-01 Nec Corp メモリ情報収集方式
JPH09259014A (ja) * 1996-03-25 1997-10-03 Meidensha Corp 異常情報記録方式
JPH10333944A (ja) 1997-05-30 1998-12-18 Nec Software Ltd メモリダンプ採取方式
JP2002073378A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 計算機システムのダンプ取得方法および装置
US6779132B2 (en) * 2001-08-31 2004-08-17 Bull Hn Information Systems Inc. Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system
JP2004102395A (ja) 2002-09-05 2004-04-02 Hitachi Ltd メモリダンプデータの取得方法および情報処理装置、ならびにそのプログラム
JP4281421B2 (ja) * 2003-06-06 2009-06-17 ソニー株式会社 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
GB0405711D0 (en) * 2004-03-13 2004-04-21 Hewlett Packard Development Co Method and apparatus for dumping memory
US7831857B2 (en) * 2006-10-31 2010-11-09 Hewlett-Packard Development Company, L.P. Method and system for recovering from operating system crash or failure
JP5212360B2 (ja) * 2007-03-19 2013-06-19 富士通株式会社 制御プログラム、制御システムおよび制御方法
JP2008242999A (ja) * 2007-03-28 2008-10-09 Hitachi Ltd 情報処理装置およびメモリダンプ方法
JP5211751B2 (ja) 2008-02-26 2013-06-12 富士通株式会社 計算機、ダンププログラムおよびダンプ方法
DE102008040486A1 (de) 2008-07-17 2010-01-21 Evonik Goldschmidt Gmbh Verwendung von ionischen Flüssigkeiten als Zusatzstoff für Reinigungsverfahren in verflüssigtem und/oder überkritischem Gas
JP5120664B2 (ja) * 2009-07-06 2013-01-16 日本電気株式会社 サーバシステム及びクラッシュダンプ採取方法
JP2011257987A (ja) * 2010-06-09 2011-12-22 Mitsubishi Electric Corp 計算機システム
US8601323B2 (en) * 2010-12-13 2013-12-03 Sap Ag Advanced management of runtime errors
EP2660724B1 (en) 2010-12-27 2020-07-29 Fujitsu Limited Information processing device having memory dump function, memory dump method, and memory dump program
US8762790B2 (en) * 2011-09-07 2014-06-24 International Business Machines Corporation Enhanced dump data collection from hardware fail modes
US9740551B2 (en) * 2014-12-02 2017-08-22 International Business Machines Corporation Enhanced restart of a core dumping application
US10002040B2 (en) * 2016-01-04 2018-06-19 International Business Machines Corporation Detection and automatic transfer of standalone system dumps

Also Published As

Publication number Publication date
JPWO2015015589A1 (ja) 2017-03-02
US20160139995A1 (en) 2016-05-19
EP3029572A4 (en) 2016-07-20
WO2015015589A1 (ja) 2015-02-05
US10025670B2 (en) 2018-07-17
EP3029572A1 (en) 2016-06-08

Similar Documents

Publication Publication Date Title
JP6517684B2 (ja) メモリシステムおよび制御方法
JP6094677B2 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
JP6517685B2 (ja) メモリシステムおよび制御方法
US9489258B2 (en) Green NAND SSD application and driver
US8447918B2 (en) Garbage collection for failure prediction and repartitioning
JP5937697B2 (ja) ストレージシステム
JP5376983B2 (ja) メモリシステム
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US8539150B2 (en) Storage system and management method of control information using a cache memory with multiple cache partitions
US10013194B1 (en) Handling thermal shutdown for memory devices
US10248322B2 (en) Memory system
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
JP4961319B2 (ja) 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
US11194481B2 (en) Information processing apparatus and method for controlling information processing apparatus
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
KR101596833B1 (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
CN105404468B (zh) 绿能与非固态硬盘应用及其驱动器
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
US10915441B2 (en) Storage system having non-volatile memory device
JP6163588B2 (ja) ストレージシステム
KR20230040057A (ko) 시스템의 읽기 성능을 개선하기 위한 장치 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161014

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: 20170117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170130

R150 Certificate of patent or registration of utility model

Ref document number: 6094677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150