JP6337607B2 - 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム - Google Patents

情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム Download PDF

Info

Publication number
JP6337607B2
JP6337607B2 JP2014102902A JP2014102902A JP6337607B2 JP 6337607 B2 JP6337607 B2 JP 6337607B2 JP 2014102902 A JP2014102902 A JP 2014102902A JP 2014102902 A JP2014102902 A JP 2014102902A JP 6337607 B2 JP6337607 B2 JP 6337607B2
Authority
JP
Japan
Prior art keywords
access
area
information processing
shared memory
processing apparatus
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
JP2014102902A
Other languages
English (en)
Other versions
JP2015179488A (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 JP2015179488A publication Critical patent/JP2015179488A/ja
Application granted granted Critical
Publication of JP6337607B2 publication Critical patent/JP6337607B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラムに関する。
近年、複数の情報処理装置をクロスバースイッチなどで接続した情報処理システムがサーバなどで利用されている。各情報処理装置は、CPU(Central Processing Unit)、メモリ、HDD(Hard Disk Drive)などを有し、クロスバースイッチを介して他の情報処理装置と通信を行う。また、各情報処理装置が有するメモリには、自装置だけがアクセス可能なローカルメモリと他の情報処理装置がアクセス可能な共有メモリがある。
共有メモリについては、他の情報処理装置からのアクセスの許可を制御する技術としてアクセストークンを用いる技術が開発されている(例えば、特許文献1参照)。各情報処理装置は、共有メモリの所定の大きさの単位領域毎にメモリトークンと呼ばれるキーをレジスタに記憶し、キーをアクセストークンとして指定した他の情報処理装置だけに対応する単位領域へのアクセスを許可する。
また、メモリの故障については、ECC(Error Correcting Code)によりシングルビットエラーが検出された場合に、故障が発生したメモリ領域と正常なメモリ領域を自動的に入れ替える自動交替機能をサポートするOSやハイパーバイザがある。
また、半導体ディスク装置において、メモリエラーが生じた半導体メモリモジュールの記憶内容を予備のモジュールにコピーすることにより、メモリエラーが生じた半導体メモリモジュールの記憶内容を無停止で退避する従来技術がある(例えば、特許文献2参照)。また、キャッシュ装置において、2つのキャッシュ装置のうちホストからデータを受信した装置は、データを自装置のキャッシュメモリに記憶するとともに、他の装置に送信して障害時のデータ喪失を防ぐ従来技術がある(例えば、特許文献3参照)。
特開2013−140446号公報 特開平7−311661号公報 国際公開第2003/090089号
複数の情報処理装置をクロスバースイッチなどで接続した情報処理システムでは、複数のOSが動作するため、共有メモリに故障が発生した場合に、自動交替機能において書き込みデータが共有メモリに反映されない問題が発生することがある。
すなわち、あるOSが共有メモリのうち故障メモリ領域のデータを正常メモリ領域にコピーしている間に、別のOSが動作する他の情報処理装置から故障メモリ領域への書き込みが発生すると、書き込んだデータが正常メモリ領域に反映されないことがある。
また、自動交替機能を実行しているOSは、故障メモリ領域のデータが更新されないように防ごうとしても、他のOS上で実行されるプロセスの処理を停止することができないため、他のOS上で実行されるプロセスからのアクセスを防ぐことができない。
本発明は、1つの側面では、共有メモリを有する情報処理システムで共有メモリに故障が生じた場合に、自動交替機能において書き込みデータが共有メモリに反映されない問題の発生を防ぎ、システムに継続動作を行わせることを目的とする。
本願の開示する情報処理装置は、1つの態様において、他の情報処理装置とともに情報処理システムを構築し、他の情報処理装置からアクセスされる共有メモリを有する。そして、前記情報処理装置は、前記共有メモリの各領域に対応付けて、各領域へのアクセスを許可した他の情報処理装置を識別する識別情報、及び、他の情報処理装置から各領域へのアクセスの許可の制御に使用されるとともに各領域に対応付けられたレジスタが記憶するメモリトークン、を含む管理情報を記憶する管理情報記憶部を備える。また、前記情報処理装置は、前記共有メモリの各領域へのアクセスを許可した他の情報処理装置を把握し、該把握した他の情報処理装置を識別する識別情報を前記管理情報記憶部に書き込む把握部を備える。また、前記情報処理装置は、前記共有メモリの第1領域でアクセス障害が検出されると、前記管理情報記憶部が記憶する管理情報に基づいて、第1領域へのアクセスが許可された他の情報処理装置へ第1領域へのアクセスの停止を通知する停止通知部を備える。また、前記情報処理装置は、前記共有メモリの第1領域でアクセス障害が検出されると、前記メモリトークン用いて第1領域へのアクセスを遮断する遮断部を備える。また、前記情報処理装置は、前記遮断部によりアクセスが遮断された第1領域を正常な第2領域と交替し、前記管理情報記憶部が第1領域について記憶する管理情報を第2領域について記憶する管理情報とし、前記メモリトークンにより第2領域へのアクセスの許可の制御を行うようにする交替部を備える。また、前記情報処理装置は、前記交替部による処理後に、前記停止通知部がアクセスの停止を通知した他の情報処理装置へアクセスの再開を通知する再開通知部を備える。
1実施態様によれば、共有メモリに故障が生じた場合に、自動交替機能において書き込みデータが共有メモリに反映されない問題の発生を防ぎ、システムに継続動作を行わせることができる。
図1は、実施例に係る情報処理システムのハードウェア構成を示す図である。 図2は、CPUチップのブロック図である。 図3は、実施例に係る情報処理システムのハードウェアの論理構成及びソフトウェアの機能構成を示す図である。 図4Aは、管理テーブルの一例を示す図である。 図4Bは、図4Aに示した管理テーブルの状態から故障セグメントの管理情報が交替セグメントの管理情報へコピーされた状態を示す図である。 図4Cは、図4Bに示した管理テーブルの状態から故障セグメントの使用禁止フラグが変更された状態を示す図である。 図5は、共有メモリを使用するアプリケーションをセグメント単位で把握する処理のフローを示すフローチャートである。 図6Aは、共有メモリを使用するノードをセグメント単位で把握する処理のフローを示すフローチャートである。 図6Bは、共有メモリを使用するプロセスをセグメント単位で把握する処理のフローを示すフローチャートである。 図7は、共有メモリのセグメントAにエラーが発生した場合の処理のフローを示すフローチャートである。 図8は、共有メモリの交替処理のフローを示すフローチャートである。
以下に、本願の開示する情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例の記載で用いられる用語について説明する。
「ノード」: 一つ以上のOSが動作する情報処理装置(コンピュータシステム)。仮想化機能を有するコンピュータシステムでは、ノード内を論理的に複数の論理ドメインに分割して、複数のOSを稼働させることもできる。
「ノード間の共有メモリ」: 複数のノード(複数の異なるOS上で動作する複数のアプリケーション)からアクセス(リード/ライト)可能な共有メモリ。
「ホームノード」: ノード間の共有メモリ領域として設定した物理メモリを有するノード。
「リモートノード」: ホームノードのメモリを参照したり更新したりするノード。
「セグメント」: 共有メモリの管理単位。セグメント毎に後述するメモリトークンを設定することができる。
「セグメントサイズ」: 共有メモリの管理単位のサイズ。例えば、4MB(メガバイト)、32MB、256MB、2GB(ギガバイト)など。
「VA」: 論理アドレス。OSやアプリケーションが使用するアドレス。
「RA」: 実アドレス。仮想化機能を導入したシステムで論理ドメイン毎に割り振られるアドレス。
「PA」: 物理アドレス。物理位置によって割り振られるアドレス。
「メモリトークン」: ホームノード側のCPUチップのメモリトークンレジスタに設定されるメモリアクセスキー。セグメント毎に異なるメモリトークンが設定される。
「アクセストークン」: リモートノードからホームノード(他ノード)の共有メモリにアクセスする際に設定されるメモリアクセスキー。
・リモートノードからのメモリアクセス要求に付加されたアクセストークンとホームノードのメモリトークンレジスタに設定されたメモリトークンに基づいて、ハードウェアがメモリアクセス要求実行の可否を制御する。
・ホームノードのメモリトークンとリモートノードのアクセストークンが一致する場合は、共有メモリにアクセス(リード及びライト)することが可能。
・ホームノードのメモリトークンとリモートノードのアクセストークンが不一致の場合、共有メモリにアクセス(リード及びライト)しようとすると、例外トラップが発生してアクセス不可。
次に、実施例に係る情報処理システムのハードウェア構成について説明する。図1は、実施例に係る情報処理システムのハードウェア構成を示す図である。図1に示すように、情報処理システム2は、3つのノード1と、サービスプロセッサ3とを有する。また、3つのノード1とサービスプロセッサ3はクロスバーネットワーク4で接続される。
ノード1は、2つのCPUチップ11と、ディスクユニット12と、通信インターフェイス13とを有する情報処理装置である。CPUチップ11は、2つのコア14と、2つのメモリを有するチップである。コア14は、2つのストランド16を有する演算処理装置である。ストランド16は、コア14において命令を実行する単位である。プログラムは、各ストランド16で実行される。メモリ15は、コア14が実行するプログラムやコア14が使用するデータを記憶するRAM(Random Access Memory)である。
ディスクユニット12は、2つのHDD17を有する記憶装置である。HDD17は、磁気ディスク装置である。通信インターフェイス13は、クロスバーネットワーク4を介して他のノード1やサービスプロセッサ3と通信するためのインターフェイスである。
サービスプロセッサ3は、ノード1を制御する装置であり、CPU31と、メモリ32と、通信インターフェイス33とを有する。CPU31は、メモリ32が記憶するプログラムを実行する中央処理装置である。メモリ32は、CPU31によって実行されるプログラムやCPU31が使用するデータなどを記憶するRAMである。通信インターフェイス33は、クロスバーネットワーク4を介してノード1と通信するためのインターフェイスである。
なお、説明の便宜上、図1では3つのノード1を示したが、情報処理システム2は、任意の個数のノード1を有してよい。また、図1では、ノード1が2つのCPUチップ11を有する場合を示したが、ノード1は、任意の個数のCPUチップ11を有してよい。また、図1では、CPUチップ11が2つのコア14を有する場合を示したが、CPUチップ11は、任意の個数のコア14を有してよい。また、図1では、コア14が2つのストランド16を有する場合を示したが、コア14は、任意の個数のストランド16を有してよい。また、図1では、CPUチップ11が2つのメモリ15を有する場合を示したが、CPUチップ11は、任意の個数のメモリ15を有してよい。また、図1では、ディスクユニット12が2つのHDD17を有する場合を示したが、ディスクユニット12は、任意の個数のHDD17を有してよい。
図2は、CPUチップ11のブロック図である。図2に示すように、CPUチップ11は、2つのコア14と、メモリ26と、メモリトークンレジスタ27と、二次キャッシュ18とを有する。なお、メモリ26は、図1の2つのメモリ15と対応する。
メモリトークンレジスタ27は、セグメント毎にメモリトークンを記憶する。二次キャッシュ18は、コア14内の一次キャッシュ19と比較して低速で大容量のキャッシュメモリを有するキャッシュ装置である。なお、図1において、メモリトークンレジスタ27と二次キャッシュ18は省略されている。
コア14は、一次キャッシュ19と、2つのストランド16とを有する。一次キャッシュ19は、二次キャッシュ18と比較して高速で小容量のキャッシュメモリを有するキャッシュ装置である。一次キャッシュ19は、命令キャッシュ20とデータキャッシュ21とを有する。命令キャッシュ20は、命令を記憶し、データキャッシュ21は、データを記憶する。
ストランド16は、一次キャッシュ19から命令及びデータを読み出す。ストランド16が読み出す命令又はデータが一次キャッシュ19にない場合には、一次キャッシュ19は、二次キャッシュ18から命令又はデータを読み出す。一次キャッシュ19が読み出す命令又はデータが二次キャッシュ18にない場合には、二次キャッシュ18は、メモリ26から命令又はデータを読み出す。
また、ストランド16は、メモリ26に格納するデータを一次キャッシュ19に書き込む。ストランド16が一次キャッシュ19に書き込んだデータは、二次キャッシュ18に書き込まれ、二次キャッシュ18からメモリ26に書き込まれる。
ストランド16は、命令制御部22と、命令バッファ23と、演算部24と、レジスタ部25と、アクセストークンレジスタ28とを有する。命令制御部22は、命令バッファ23から命令を読み出し、読み出した命令の実行を制御する。命令バッファ23は、命令キャッシュ20から読み出された命令を記憶する。演算部24は、四則演算などの演算を実行する。レジスタ部25は、命令の実行に用いられるデータや命令の実行結果などを記憶する。なお、ストランド16は独自の命令バッファ23とレジスタ25を備えるが、命令制御部22と演算部24は2つのストランド16で共用される。
アクセストークンレジスタ28は、他のノード1の共有メモリのセグメント毎にアクセストークンを記憶する。ストランド16で実行されるプロセスは、アクセストークンレジスタ28に記憶されたアクセストークンを用いて共有メモリにアクセスする。なお、図1では、一次キャッシュ19及びアクセストークンレジスタ28は省略されている。また、図2では、アクセストークンレジスタ28はストランド16に含まれるが、アクセストークンレジスタ28の実装は図2の例に限定されることなく、各ストランド16に対応する各アクセストークンレジスタ28はストランド16の外にあってもよい。
次に、実施例に係る情報処理システム2のハードウェアの論理構成及びソフトウェアの機能構成について説明する。ここで、ハードウェアの論理構成とは、OSやアプリケーションが使用する論理的なハードウェアである。図3は、実施例に係る情報処理システム2のハードウェアの論理構成及びソフトウェアの機能構成を示す図である。なお、図3では、1つのノード1を1つの論理ドメインとした場合を示す。1つの論理ドメインでは1つのOSが実行される。したがって、図3では、各ノード1で1つのOSが実行される。
図3に示すように、ノード1は、論理資源として、4つのVCPU41と、ローカルメモリ42と、共有メモリ43と、ディスク装置44と有する。VCPU41は、論理的なCPUであり、図1に示した8個のストランド16のいずれかに対応付けられる。
ローカルメモリ42は、自ノード1だけからアクセスされるメモリであり、共有メモリ43は、他のノード1からもアクセス可能なメモリである。ローカルメモリ42と共有メモリ43は、図1に示した4つのメモリ15に対応する。ローカルメモリ42に2つのメモリ15を対応付け、共有メモリ43に他の2つのメモリ15を対応付けてもよいし、ローカルメモリ42に3つのメモリ15を対応付け、共有メモリ43に他の1つのメモリ15を対応付けてもよい。共有メモリ43内のあるセグメントが故障すると、故障セグメントは他のセグメントと交替される。ディスク装置44は、図1に示したディスクユニット12に対応する。
ハイパーバイザ50は、情報処理システム2の物理資源を管理してOS60に論理資源を提供する基本ソフトウェアであり、メモリエラー検出部51と、共有メモリ判定部52とを有する。
メモリエラー検出部51は、ローカルメモリ42又は共有メモリ43で発生したECCエラーなどのエラーを検出し、共有メモリ判定部52にエラーが発生したメモリ領域の情報(アドレス、サイズなど)を通知する。
共有メモリ判定部52は、メモリエラー検出部51で検出されたエラーが共有メモリ43で発生したエラーであるかローカルメモリ42で発生したエラーであるかを、エラーが発生したメモリ領域の情報(アドレス、サイズなど)から判定する。そして、共有メモリ判定部52は、ローカルメモリ42でエラーが発生した場合には、ローカルメモリ交替処理部61に、エラーが発生したメモリ領域を含むセグメントの情報(アドレス、サイズ、セグメント番号など)を通知する。また、共有メモリ判定部52は、共有メモリ43でエラーが発生した場合には、ホームノードの共有メモリ管理部62に、エラーが発生したメモリ領域を含むセグメントの情報(アドレス、サイズ、セグメント番号など)を通知する。
OS60は、論理資源を用いてアプリケーションの実行を制御する。OS60は、ローカルメモリ交替処理部61と、共有メモリ管理部62と、マッピングテーブル63とを有する。ローカルメモリ交替処理部61は、ローカルメモリ42でエラーが発生した場合に、ローカルメモリ42内でエラー発生領域を正常な領域に交替するローカルメモリ交替処理又はエラー発生領域を切り離すローカルメモリ切り離し処理を行う。マッピングテーブル63は、VAをRAに変換するためのテーブルである。
共有メモリ管理部62は、共有メモリ43を管理し、管理テーブル70と、アプリ把握部71と、故障領域認識部72と、アクセス停止部73と、アクセス遮断部74と、交替部75と、アクセス再開部76とを有する。
管理テーブル70は、他のノード1が有する共有メモリ43を含めて情報処理システム2が有する全ての共有メモリ43について、セグメント毎に共有メモリ43の情報を記憶するテーブルである。
図4Aは、管理テーブル70の一例を示す図である。図4Aは、ノード番号が「0」であるホームノードが有する管理テーブル70とノード番号が「1」及び「2」の他の2つのリモートノードが有する管理テーブル70を示す。図4Aにおいて、セグメント番号が「0」〜「5」のセグメントは、ホームノードが物理メモリを有するセグメントである。
図4Aに示すように、ホームノードの管理テーブル70は、セグメント毎に、セグメント番号と、アドレスと、セグメントサイズと、使用許可ノード番号と、使用中アプリのPIDと、メモリトークンと、使用禁止フラグとを記憶する。また、リモートノードの管理テーブル70は、ホームノードの管理テーブル70とほぼ同じ項目を記憶するが、メモリトークンの代わりにアクセストークンを記憶する。
セグメント番号は、セグメントを識別する識別番号である。アドレスは、セグメントのRAである。なお、アドレスは、PAであってもよい。セグメントサイズは、セグメントのサイズである。使用許可ノード番号は、ホームノードの管理テーブル70でだけ用いられ、セグメントの使用が許可されたノード1の番号である。
使用中アプリのPIDは、自ノードにおいてセグメントを使用するアプリケーションのプロセスIDである。メモリトークンは、セグメントのアクセス許可の制御に用いられるメモリアクセスキーである。アクセストークンは、ホームノードの共有メモリにアクセスする際に使用されるメモリアクセスキーである。使用禁止フラグは、セグメントが使用可(0)であるか不可(1)であるかを示すフラグである。
例えば、ホームノードの管理テーブル70では、識別番号が「0」であるセグメントは、RAが16進数で「00000000」であり、サイズが「256MB」であり、使用が許可されたノードの番号は「1」及び「2」である。また、識別番号が「0」であるセグメントは、ホームノードにおいてプロセスIDが「123」、「456」などのプロセスで使用されており、メモリアクセスキーは16進数で「0123」であり、使用可能の状態である。
また、ノード番号が「1」であるリモートノードの管理テーブル70では、識別番号が「0」であるセグメントは、RAが16進数で「00000000」であり、サイズが「256MB」である。また、識別番号が「0」であるセグメントは、自ノードが物理メモリを有する共有メモリ43ではないので、使用許可ノード番号は使用されない。また、識別番号が「0」であるセグメントは、自ノードにおいてプロセスIDが「321」、「654」などのプロセスで使用されており、メモリアクセスキーは16進数で「0123」であり、使用可能の状態である。また、ノード番号が「1」であるリモートノードの管理テーブル70では、識別番号が「2」であるセグメントは、使用が許可されていないので、使用しているアプリケーションのプロセスIDはない。
図3に戻って、アプリ把握部71は、共有メモリ43のセグメント毎に、どのノード1で使用され、どのプロセスで使用されているかを把握する。具体的には、ホームノードのアプリ把握部71は、リモートノードに共有メモリ43の使用許可を与える際に、その共有メモリセグメントを使用するリモートノードのノード番号を管理テーブル70に記録する。共有メモリ43なので、その共有メモリ43を使用するリモートノードは複数存在する可能性があり、アプリ把握部71は、共有メモリ43の使用許可を与える度にノード番号を全て記録する。
また、各ノード1のアプリ把握部71は、共有メモリ43をアプリケーションに割り当てる際に、その共有メモリ43を使用するアプリケーションのプロセスID(PID)を管理テーブル70に記録する。共有メモリ43なので、その共有メモリ43を使用するアプリケーションは複数存在する可能性があり、アプリ把握部71は、共有メモリ43をアプリケーションに割り当てる度にPIDを全て記録する。
また、ホームノードのアプリ把握部71は、リモートノードから共有メモリ43の使用終了の通知があった場合や、リモートノードが停止した場合は、該当リモートノードのノード番号の記録を管理テーブル70から削除する。また、各ノード1のアプリ把握部71は、アプリケーションから共有メモリの使用終了の通知があった場合や、アプリケーションが終了した場合は、該当アプリケーションのプロセスIDの記録を管理テーブル70から削除する。
故障領域認識部72は、共有メモリ判定部52から故障セグメントの情報(アドレス、サイズ、セグメント番号など)の通知を受けて、故障セグメントの故障を認識する。そして、故障領域認識部72は、故障セグメントと同じサイズで、物理的には異なる別の正常なセグメントを交替セグメントとして確保する。
アクセス停止部73は、ホームノードだけでなく複数あるリモートノードにも故障領域を含むセグメントの情報を通知し、そのセグメント単位でアクセスを停止させる。具体的には、ホームノードのアクセス停止部73は、故障セグメントを使用している全ノード1のアクセス停止部73に故障セグメントの情報(アドレス、サイズ、セグメント番号など)と交替セグメントの情報(アドレス、サイズ、セグメント番号など)を通知する。
そして、各ノードのアクセス停止部73が、セグメント毎に用意した管理テーブル70を参照して、故障セグメントを使用しているアプリケーションを特定する。そして、各ノードのアクセス停止部73は、故障セグメントを使用している全てのアプリケーションに、故障セグメントの情報(アドレス、サイズ、セグメント番号など)を通知して、一時的に故障セグメントへのアクセスを停止するよう指示する。
すると、エラーが発生した共有メモリを使用しているアプリケーションが、故障セグメントへのアクセスを一時的に停止する。ただし、停止するのは故障セグメントの共有メモリへのアクセスのみであり、他の共有メモリやローカルメモリにはアクセス可能であるため、アプリケーション全体の動作は停止する必要はない。
そして、エラーが発生した共有メモリを使用しているアプリケーションは、各ノード1のアクセス停止部73に、故障セグメントへのアクセスを停止したことを通知する。すると、各ノード1のアクセス停止部73が、ホームノードのアクセス停止部73に、故障セグメントへのアクセス停止処理の完了を通知する。
アクセス遮断部74は、アクセス停止部73の処理の完了後に、ホームノードの故障セグメントに対するメモリトークンと、リモートノードの故障セグメントに対するアクセストークンの設定を解除し、ハード的にも故障セグメントへのアクセスを停止させる。アクセス遮断部74は、データ破壊が発生しないことを100%保証するため、ハード的に完全にアクセスを遮断する。
また、各ノード1のアクセス遮断部74は、管理テーブル70の故障セグメントのアドレス以外の管理情報(セグメントサイズ、使用許可ノード番号、使用中アプリのPID、メモリトークン、使用禁止フラグ)を、交替セグメントの管理情報にコピーする。
図4Bは、図4Aに示した管理テーブル70の状態から故障セグメントの管理情報が交替セグメントの管理情報へコピーされた状態を示す図である。図4Bに示すように、ホームノード及び2つのリモートノードにおいて、故障セグメントであるセグメント番号「1」のアドレス以外の管理情報が交替セグメントであるセグメント番号「5」の管理情報にコピーされている。
そして、各ノード1のアクセス遮断部74は、故障セグメントのメモリトークン又はアクセストークンの設定を解除する。これにより、共有メモリ管理部62は、リモートノードからの故障セグメントへのアクセスを完全に遮断することができる。
交替部75は、アクセス遮断部74がハード的にアクセスを遮断した後、故障セグメントのデータを、交替セグメントにコピーする。そして、交替部75は、故障セグメント(コピー元)と新たに確保した交替セグメント(コピー先)の論理アドレスVAが一致するように、VA−RAのマッピング情報を記憶するマッピングテーブル63を書き換える。
具体的には、ホームノードの交替部75が、故障セグメントのデータを、交替セグメントにコピーする。そして、ホームノードの交替部75は、故障セグメントの物理メモリを解放する。また、各ノード1の交替部75が、セグメント管理テーブル70の故障セグメントに対応する使用禁止フラグを「0」から「1」に変更することで使用禁止のマークを付けて、以降の処理で使用しないようにする。
図4Cは、図4Bに示した管理テーブル70の状態から故障セグメントの使用禁止フラグが変更された状態を示す図である。図4Cに示すように、ホームノード及び2つのリモートノードにおいて、故障セグメントであるセグメント番号「1」の使用禁止フラグが「0」から「1」に変更されている。
そして、各ノード1の交替部75は、VA−RAのマッピング情報を書き換えて、エラー発生領域の論理アドレス(VA)に対応するRAを、交替セグメントのRAに切り替える。なお、ここでは、各ノード1の交替部75が、VA−RAのマッピング情報を書き換えるが、各ノード1のハイパーバイザが、RA−PAのマッピング情報を書き換えてもよい。
そして、ホームノードの交替部75が、交替セグメントのメモリトークンが故障セグメントのメモリトークンと同じになるようメモリトークンを設定する。
アクセス再開部76は、交替部75によるメモリトークンの再設定後、ホームノードだけでなく複数あるリモートノードにも、セグメント単位でアクセス再開を指示する。具体的には、ホームノードのアクセス再開部76が、故障セグメントを使用していた全ノード1のアクセス再開部76に対象セグメントへのアクセス再開を通知する。そして、各ノード1のアクセス再開部76が、故障セグメントを使用していた全アプリケーションに、対象セグメントへのアクセスを再開するよう指示する。
この後、アプリケーションは、エラー発生領域の論理アドレス(VA)にアクセスすると、新たに確保された交替セグメントの物理メモリにアクセスすることになる。
次に、共有メモリ43を使用するアプリケーションをセグメント単位で把握する処理のフローについて説明する。図5は、共有メモリ43を使用するアプリケーションをセグメント単位で把握する処理のフローを示すフローチャートである。なお、以下の説明において、セグメントAは、故障セグメントを示し、セグメントBは、交替セグメントを示す。また、アプリHは、ホームノードでセグメントAを使用するアプリケーションを示し、アプリRは、リモートノードでセグメントAを使用するアプリケーションを示し、リモートノードNは、セグメントAを使用するノード1を示す。
図5に示すように、ホームノードのアプリHは、共有メモリ43のセグメントAを獲得する(ステップS1)。すると、ホームノードのアプリ把握部71は、管理テーブル70にセグメントAを使用するアプリHのPIDを追加する(ステップS2)。
その後、ホームノードの共有メモリ管理部62は、リモートノードNに共有メモリ43のセグメントAの使用を許可し、セグメントAの使用許可をリモートノードNに通知する(ステップS3)。その際、ホームノードのアプリ把握部71は、管理テーブル70にセグメントAを使用するリモートノードNのノード番号を追加する(ステップS4)。
一方、リモートノードNの共有メモリ管理部62は、セグメントAの使用許可をホームノードから通知されると、共有メモリ43を使用するアプリRにセグメントAを割り当てる(ステップS14)。また、リモートノードNのアプリ把握部71は、管理テーブル70にセグメントAを使用するアプリRのPIDを追加する(ステップS15)。
そして、ホームノードの共有メモリ管理部62は、セグメントA用のメモリトークンを獲得し(ステップS5)、リモートノードNにセグメントA用のメモリトークンを通知する(ステップS6)。そして、ホームノードの共有メモリ管理部62は、セグメントAのメモリトークンをメモリトークンレジスタ27に設定し(ステップS7)、管理テーブル70にセグメントAのメモリトークンを追加する(ステップS8)。
一方、リモートノードNの共有メモリ管理部62は、セグメントA用のメモリトークンをホームノードから通知されると、セグメントA用のメモリトークンを認識する(ステップS16)。そして、リモートノードNの共有メモリ管理部62は、セグメントAのメモリトークンをアクセストークンとしてアクセストークンレジスタ28に設定し(ステップS17)、管理テーブル70にセグメントAのアクセストークンを追加する(ステップS18)。
そして、ホームノードのアプリHが、セグメントAのデータを参照したり、更新したりする(ステップS9)。一方、リモートノードNのアプリRも、セグメントAのデータを参照したり、更新したりする(ステップS19)。
そして、リモートノードNのアプリRが、セグメントAの使用を終了し、リモートノードNの共有メモリ管理部62が、ホームノードに使用終了を通知する(ステップS20)。すると、ホームノードの共有メモリ管理部62が、リモートノードNによるセグメントAの使用終了を認識する(ステップS10)。そして、ホームノードのアプリ把握部71が、管理テーブル70からセグメントAの使用を終了したリモートノードのノード番号を削除する(ステップS11)。
その後、ホームノードのアプリHがセグメントAの使用を終了する。すると、ホームノードの共有メモリ管理部62は、セグメントAのメモリトークンの設定を解除し(ステップS12)、ホームノードのアプリ把握部71が、管理テーブル70からセグメントAのメモリトークンとアプリHのPIDを削除する(ステップS13)。
一方、リモートノードNの共有メモリ管理部62が、ホームノードにセグメントAの使用終了を通知すると、リモートノードNのアプリ把握部71が、管理テーブル70からセグメントAの使用を終了したアプリRのPIDを削除する(ステップS21)。そして、リモートノードNの共有メモリ管理部62は、セグメントAのアクセストークンの設定を解除し(ステップS22)、管理テーブル70からセグメントAのアクセストークンを削除する(ステップS23)。
このように、ホームノードのアプリ把握部71とリモートノードNのアプリ把握部71が連携してセグメントAを使用するノードのノード番号及びプロセスのPIDを把握する。したがって、セグメントAに故障が発生した場合に、セグメントAのホームノードの共有メモリ管理部62は、セグメントAを使用するリモートノードにセグメントAの使用停止を依頼することができる。
次に、共有メモリ43を使用するノード1をセグメント単位で把握する処理のフローについて説明する。図6Aは、共有メモリ43を使用するノード1をセグメント単位で把握する処理のフローを示すフローチャートである。なお、図6Aに示す処理は、図5に示した処理のステップS4とステップS11の処理に対応する。
図6Aに示すように、ホームノードのアプリ把握部71は、リモートノードへの共有メモリ43のセグメント使用の許可時であるか否かを判定する(ステップS31)。その結果、リモートノードへの共有メモリ43のセグメント使用の許可時である場合には、ホームノードのアプリ把握部71は、管理テーブル70にセグメントを使用するノード1のノード番号を追加する(ステップS32)。
一方、リモートノードへの共有メモリ43のセグメント使用の許可時でない場合、すなわち、使用終了時は、ホームノードのアプリ把握部71は、管理テーブル70からセグメントの使用を終了したノード1のノード番号を削除する(ステップS33)。
このように、ホームノードのアプリ把握部71は、セグメントを使用するノード1のノード番号を管理テーブル70を用いて管理することによって、セグメントを使用するリモートノードを把握することができる。
次に、共有メモリ43を使用するプロセスをセグメント単位で把握する処理のフローについて説明する。図6Bは、共有メモリ43を使用するプロセスをセグメント単位で把握する処理のフローを示すフローチャートである。なお、図6Bに示す処理は、図5に示した処理のステップS15とステップS21の処理に対応する。
図6Bに示すように、リモートノードのアプリ把握部71は、セグメント割り当て時であるか否かを判定する(ステップS41)。その結果、セグメント割り当て時である場合には、リモートノードのアプリ把握部71は、管理テーブル70にセグメントを使用するアプリケーションのPIDを追加する(ステップS42)。
一方、セグメント割り当て時でない場合、すなわち、解放時は、リモートノードのアプリ把握部71は、管理テーブル70からセグメントを解放するアプリケーションのPIDを削除する(ステップS43)。
このように、リモートノードのアプリ把握部71は、セグメントを使用するアプリケーションのPIDを管理テーブル70を用いて管理することによって、セグメントを使用するアプリケーションを把握することができる。
次に、共有メモリ43のセグメントAにエラーが発生した場合の処理のフローについて説明する。図7は、共有メモリ43のセグメントAにエラーが発生した場合の処理のフローを示すフローチャートである。
図7に示すように、ホームノードのハイパーバイザ50のメモリエラー検出部51が、セグメントAのECCシングルビットエラーを検出する(ステップS51)と、共有メモリ判定部52は、共有メモリ43の故障であるか否かを判定する(ステップS52)。その結果、共有メモリ43の故障でない場合には、OS60のローカルメモリ交替処理部61が、ローカルメモリ交替処理又は切り離し処理を行う(ステップS53)。
一方、共有メモリ43の故障である場合には、共有メモリ管理部62のアクセス停止部73が、セグメント単位で共有メモリ43へのアクセスを停止する(ステップS54)。そして、アクセス遮断部74が、セグメントAのトークンの設定を解除し、セグメントAへのアクセスを遮断する(ステップS55)。ここで、セグメントAのトークンの設定を解除するとは、ホームノードのアクセス遮断部74がメモリトークンの設定を解除し、リモートノードのアクセス遮断部74がアクセストークンの設定を解除することを意味する。
そして、交替部75が、セグメントAのデータを新たに確保したセグメントBにコピーし(ステップS56)、セグメントAの使用禁止フラグを禁止に変更する(ステップS57)。そして、交替部75は、VA−RAマッピング情報を変更することでセグメントAをセグメントBに交替し(ステップS58)、セグメントBのトークンを設定してアクセスを再開する(ステップS59)。ここで、セグメントBのトークンを設定するとは、ホームノードの交替部75がメモリトークンを設定し、リモートノードの交替部75がアクセストークンを設定することを意味する。
そして、アクセス再開部76は、セグメント単位で共有メモリ43へのアクセスを再開する(ステップS60)。
このように、アクセス停止部73が、故障セグメントAへのアクセスを停止し、アクセス遮断部74が、故障セグメントAへのアクセスを遮断し、交替部75が故障セグメントAを交替セグメントBで交替する。したがって、共有メモリ管理部62は、共有メモリ43に故障が発生した場合の情報処理システム2への影響を抑え、情報処理システム2を継続動作させることができる。
次に、ノード間共有メモリの交替処理のフローの詳細について説明する。図8は、共有メモリ43の交替処理のフローを示すフローチャートである。なお、図8のステップ73以降の処理は、図7に示したステップS54〜ステップS60の処理をホームノードの処理とリモートノードの処理に分けて詳細化したものである。
図8に示すように、ホームノードの故障領域認識部72は、共有メモリ43のセグメントAの故障を認識する(ステップS71)と、別の正常セグメントを交替セグメントBとして確保する(ステップS72)。
そして、ホームノードのアクセス停止部73が、セグメントA及びBの情報をセグメントAを使用する全てのリモートノードに通知する(ステップS73)。そして、ホームノードのアクセス停止部73は、セグメントAを使用するアプリケーションを管理テーブル70を用いて特定し(ステップS74)、セグメントAを使用するアプリケーションに故障を通知する(ステップS75)。
すると、ホームノードでセグメントAを使用するアプリケーションがセグメントAへのアクセスを停止し(ステップS76)、ホームノードのOS60がホームノードのアクセス停止部73にセグメントAへのアクセス停止を通知する(ステップS77)。
一方、ホームノードからセグメントA及びBの情報を受け取ったリモートノードのアクセス停止部73は、セグメントA及びBの情報を認識する(ステップS87)。そして、リモートノードのアクセス停止部73は、セグメントAを使用するアプリケーションを管理テーブル70を用いて特定し(ステップS88)、セグメントAを使用するアプリケーションに故障を通知する(ステップS89)。
すると、リモートノードでセグメントAを使用するアプリケーションが、セグメントAへのアクセスを停止し(ステップS90)、リモートノードのアクセス停止部73へセグメントAへのアクセス停止を通知する(ステップS91)。そして、リモートノードのアクセス停止部73がホームノードのアクセス停止部73にアクセス停止処理の完了を通知する(ステップS92)。
そして、セグメントAを使用する全てのリモートノードからアクセス停止処理の完了を通知されると、ホームノードのアクセス停止部73は、アクセス停止処理の完了を認識する(ステップS78)。そして、ホームノードのアクセス遮断部74が、セグメントAの管理情報をセグメントBにコピーし、(ステップS79)、セグメントAのメモリトークンの設定を解除する(ステップS80)。
一方、リモートノードのアクセス遮断部74は、セグメントAの管理情報をセグメントBにコピーし、(ステップS93)、セグメントAのアクセストークンの設定を解除する(ステップS94)。
そして、ホームノードの交替部75が、セグメントAのデータをセグメントBにコピーし(ステップS81)、セグメントAの使用禁止フラグを禁止に変更する(ステップS82)。そして、ホームノードの交替部75は、VA−RAマッピング情報を変更し(ステップS83)、セグメントBのメモリトークンを設定する(ステップS84)。
一方、リモートノードの交替部75は、セグメントAの使用禁止フラグを禁止に変更し(ステップS95)、VA−RAマッピング情報を変更する(ステップS96)。そして、リモートノードの交替部75は、セグメントBのアクセストークンを設定する(ステップS97)。
そして、ホームノードのアクセス再開部76が、セグメントBを使用する全てのリモートノードにアクセス再開を通知し(ステップS85)、アクセス再開をアプリケーションに通知する(ステップS86)。
一方、リモートノードのアクセス再開部76は、ホームノードからセグメントBのアクセス再開の通知を受け取ると、アクセス再開を認識し(ステップS98)、アクセス再開をアプリケーションに通知する(ステップS99)。
上述してきたように、実施例では、アクセス遮断部74が、トークンを用いてハードウェア的に故障セグメントへのアクセスを遮断し、交替部75が故障セグメントを交替セグメントに交替する処理を行う。したがって、共有メモリ管理部62は、自動交替機能において書き込みデータが共有メモリ43に反映されない問題の発生を防ぎ、情報処理システム2に継続動作を行わせることができる。
また、実施例では、ホームノードの管理テーブル70に共有メモリ43のセグメント毎にアクセスを許可したノード1のノード番号を記憶し、各ノード1の管理テーブル70に共有メモリ43を使用するアプリケーションのPIDをセグメント毎に記憶する。また、アプリ把握部71は、共有メモリ43のセグメント毎に、アクセスを許可したノード1のノード番号及びアプリケーションのPIDを把握して管理テーブル70に記録する。そして、アクセス停止部73は、共有メモリ43に故障が発生すると、故障したセグメントを使用するアプリケーションを他のノード1も含めて特定し、アプリケーションに故障セグメントの使用停止を通知する。したがって、共有メモリ管理部62は、アプリケーションが故障セグメントにアクセスすることを防ぐことができる。
また、実施例では、故障セグメントの交替セグメントへの交替が完了すると、アクセス再開部76が、故障セグメントを利用していたアプリケーションに他のノード1のアプリケーションも含めてアクセス再開を通知する。したがって、故障セグメントを利用していたアプリケーションは、継続して処理を行うことができる。
また、実施例では、メモリトークンを用いてハードウェア的に故障セグメントへのアクセスを遮断する場合について説明したが、本発明はこれに限定されるものではなく、ソフトウェア的に故障セグメントへのアクセスを遮断する場合にも同様に適用することができる。
1 ノード
2 情報処理システム
3 サービスプロセッサ
11 CPUチップ
12 ディスクユニット
13 通信インターフェイス
14 コア
15 メモリ
16 ストランド
17 HDD
18 二次キャッシュ
19 一次キャッシュ
20 命令キャッシュ
21 データキャッシュ
22 命令制御部
23 命令バッファ
24 演算部
25 レジスタ部
26 メモリ
27 メモリトークンレジスタ
28 アクセストークンレジスタ
31 CPU
32 メモリ
33 通信インターフェイス
41 VCPU
42 ローカルメモリ
43 共有メモリ
44 ディスク装置
50 ハイパーバイザ
51 メモリエラー検出部
52 共有メモリ判定部
60 OS
61 ローカルメモリ交替処理部
62 共有メモリ管理部
63 マッピングテーブル
70 管理テーブル
71 アプリ把握部
72 故障領域認識部
73 アクセス停止部
74 アクセス遮断部
75 交替部
76 アクセス再開部

Claims (6)

  1. 他の情報処理装置とともに情報処理システムを構築し、他の情報処理装置からアクセスされる共有メモリを有する情報処理装置において、
    前記共有メモリの各領域に対応付けて、各領域へのアクセスを許可した他の情報処理装置を識別する識別情報、及び、他の情報処理装置から各領域へのアクセスの許可の制御に使用されるとともに各領域に対応付けられたレジスタが記憶するメモリトークン、を含む管理情報を記憶する管理情報記憶部と、
    前記共有メモリの各領域へのアクセスを許可した他の情報処理装置を把握し、該把握した他の情報処理装置を識別する識別情報を前記管理情報記憶部に書き込む把握部と、
    前記共有メモリの第1領域でアクセス障害が検出されると、前記管理情報記憶部が記憶する管理情報に基づいて、第1領域へのアクセスが許可された他の情報処理装置へ第1領域へのアクセスの停止を通知する停止通知部と、
    前記共有メモリの第1領域でアクセス障害が検出されると、前記メモリトークンを用いて第1領域へのアクセスを遮断する遮断部と、
    前記遮断部によりアクセスが遮断された第1領域を正常な第2領域と交替し、前記管理情報記憶部が第1領域について記憶する管理情報を第2領域について記憶する管理情報とし、前記メモリトークンにより第2領域へのアクセスの許可の制御を行うようにする交替部と、
    前記交替部による処理後に、前記停止通知部がアクセスの停止を通知した他の情報処理装置へアクセスの再開を通知する再開通知部と
    を備えることを特徴とする情報処理装置。
  2. 前記把握部は、前記共有メモリの各領域へのアクセスを許可したアプリケーションを把握し、
    前記停止通知部は、第1領域へのアクセス許可について前記把握部が把握したアプリケーションへ第1領域へのアクセスの停止を通知し、
    前記再開通知部は、前記停止通知部がアクセスの停止を通知したアプリケーションへアクセスの再開を通知することを特徴とする請求項に記載の情報処理装置。
  3. 記交替部は、第1領域に対応付けられたレジスタが記憶するメモリトークンを第2領域に対応付けられたレジスタに設定することを特徴とする請求項1に記載の情報処理装置。
  4. 前記交替部は、論理アドレスを実アドレス又は物理アドレスに変換するマッピングテーブルを書き換えることにより第1領域を第2領域と交替することを特徴とする請求項1に記載の情報処理装置。
  5. 他の情報処理装置とともに情報処理システムを構築し、他の情報処理装置からアクセスされる共有メモリを有する情報処理装置による共有メモリ管理方法において、
    前記共有メモリの各領域に対応付けて、各領域へのアクセスを許可した他の情報処理装置を識別する識別情報、及び、他の情報処理装置から各領域へのアクセスの許可の制御に使用されるとともに各領域に対応付けられたレジスタが記憶するメモリトークン、を含む管理情報を記憶する管理情報記憶部を前記情報処理装置は有し、
    前記共有メモリの各領域へのアクセスを許可した他の情報処理装置を把握し、該把握した他の情報処理装置を識別する識別情報を前記管理情報記憶部に書き込み、
    前記共有メモリの第1領域でアクセス障害が検出されると、前記管理情報記憶部が記憶する管理情報に基づいて、第1領域へのアクセスが許可された他の情報処理装置へ第1領域へのアクセスの停止を通知し、
    前記共有メモリの第1領域でアクセス障害が検出されると、前記メモリトークンを用いて第1領域へのアクセスを遮断し、
    アクセスを遮断した第1領域を正常な第2領域と交替し、前記管理情報記憶部が第1領域について記憶する管理情報を第2領域について記憶する管理情報とし、前記メモリトークンにより第2領域へのアクセスの許可の制御を行うようにした後、
    アクセスの停止を通知した他の情報処理装置へアクセスの再開を通知する
    処理を行うことを特徴とする共有メモリ管理方法。
  6. 他の情報処理装置とともに情報処理システムを構築し、他の情報処理装置からアクセスされる共有メモリを有する情報処理装置で実行される共有メモリ管理プログラムにおいて、
    前記共有メモリの各領域に対応付けて、各領域へのアクセスを許可した他の情報処理装置を識別する識別情報、及び、他の情報処理装置から各領域へのアクセスの許可の制御に使用されるとともに各領域に対応付けられたレジスタが記憶するメモリトークン、を含む管理情報を記憶する管理情報記憶部を前記情報処理装置は有し、
    前記共有メモリの各領域へのアクセスを許可した他の情報処理装置を把握し、該把握した他の情報処理装置を識別する識別情報を前記管理情報記憶部に書き込み、
    前記共有メモリの第1領域でアクセス障害が検出されると、前記管理情報記憶部が記憶する管理情報に基づいて、第1領域へのアクセスが許可された他の情報処理装置へ第1領域へのアクセスの停止を通知し、
    前記共有メモリの第1領域でアクセス障害が検出されると、前記メモリトークンを用いて第1領域へのアクセスを遮断し、
    アクセスを遮断した第1領域を正常な第2領域と交替し、前記管理情報記憶部が第1領域について記憶する管理情報を第2領域について記憶する管理情報とし、前記メモリトークンにより第2領域へのアクセスの許可の制御を行うようにした後、
    アクセスの停止を通知した他の情報処理装置へアクセスの再開を通知する
    処理を当該情報処理装置に実行させることを特徴とする共有メモリ管理プログラム。
JP2014102902A 2014-03-19 2014-05-16 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム Active JP6337607B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/219,507 US20150269092A1 (en) 2014-03-19 2014-03-19 Information processing device and shared memory management method
US14/219,507 2014-03-19

Publications (2)

Publication Number Publication Date
JP2015179488A JP2015179488A (ja) 2015-10-08
JP6337607B2 true JP6337607B2 (ja) 2018-06-06

Family

ID=50774639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014102902A Active JP6337607B2 (ja) 2014-03-19 2014-05-16 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム

Country Status (3)

Country Link
US (1) US20150269092A1 (ja)
EP (1) EP2921965B1 (ja)
JP (1) JP6337607B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3051373B1 (de) * 2015-02-02 2019-05-08 Siemens Aktiengesellschaft Auswechseln einer defekten Anlagenkomponente in einer Automatisierungsanlage
JP2017111750A (ja) * 2015-12-18 2017-06-22 富士通株式会社 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
JP6651836B2 (ja) * 2015-12-18 2020-02-19 富士通株式会社 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2519390B2 (ja) * 1992-09-11 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ通信方法及び装置
JP3561002B2 (ja) 1994-05-18 2004-09-02 富士通株式会社 ディスク装置
JPWO2003090089A1 (ja) 2002-04-22 2005-08-25 富士通株式会社 キャッシュ装置
JP2005234744A (ja) * 2004-02-18 2005-09-02 Nec Corp マルチプロセッサシステム及び障害処理方法
US7917710B2 (en) * 2006-06-05 2011-03-29 Oracle America, Inc. Memory protection in a computer system employing memory virtualization
US20110161620A1 (en) * 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
JP5614419B2 (ja) * 2012-02-29 2014-10-29 富士通株式会社 情報処理装置、制御方法および制御プログラム
JP6083136B2 (ja) * 2012-06-22 2017-02-22 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム

Also Published As

Publication number Publication date
US20150269092A1 (en) 2015-09-24
EP2921965B1 (en) 2017-01-11
JP2015179488A (ja) 2015-10-08
EP2921965A1 (en) 2015-09-23

Similar Documents

Publication Publication Date Title
JP6437656B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
JP4475598B2 (ja) ストレージシステム及びストレージシステムの制御方法
US20190012110A1 (en) Information processing apparatus, and control method of information processing system
WO2015169145A1 (zh) 内存管理方法和设备
WO2016115661A1 (zh) 内存故障隔离方法和装置
JP2008269142A (ja) ディスクアレイ装置
JP6123388B2 (ja) フォールトトレラントサーバ
JP5612681B2 (ja) 仮想計算機システム、領域管理方法、及びプログラム
JP6337607B2 (ja) 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
JP2008210031A (ja) ストレージシステムの記憶領域管理方法
JP2022017212A (ja) エフェメラルストレージに対するデータ復元のためのシステム及び装置
JP2016115044A (ja) ストレージ管理装置及びストレージ管理プログラム
JP2009266131A (ja) 記憶装置の制御装置、記憶装置及び記憶装置の制御方法
JP2019082897A (ja) 情報処理装置、情報処理システム及びプログラム
US10628056B2 (en) Information processing apparatus and shared memory management method
JP6435842B2 (ja) ストレージ制御装置及びストレージ制御プログラム
JP6175566B2 (ja) ストレージシステム及び記憶制御方法
US20070294477A1 (en) Raid management apparatus, raid management method, and computer product
WO2016139774A1 (ja) 情報処理装置、情報処理システム
JP6694145B2 (ja) 情報処理装置および管理プログラム
JP6682897B2 (ja) 通信設定方法、通信設定プログラム、情報処理装置および情報処理システム
US20190073128A1 (en) Computer system, data management method, and data management program
JP2017111750A (ja) 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
JP6551024B2 (ja) 情報処理システム、情報処理方法、情報処理プログラムおよび情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180423

R150 Certificate of patent or registration of utility model

Ref document number: 6337607

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150