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

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

Info

Publication number
JP2017111750A
JP2017111750A JP2015247724A JP2015247724A JP2017111750A JP 2017111750 A JP2017111750 A JP 2017111750A JP 2015247724 A JP2015247724 A JP 2015247724A JP 2015247724 A JP2015247724 A JP 2015247724A JP 2017111750 A JP2017111750 A JP 2017111750A
Authority
JP
Japan
Prior art keywords
information processing
node
access
unit
shared memory
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.)
Ceased
Application number
JP2015247724A
Other languages
English (en)
Inventor
近藤 浩
Hiroshi Kondo
浩 近藤
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 JP2015247724A priority Critical patent/JP2017111750A/ja
Priority to US15/341,042 priority patent/US20170177508A1/en
Publication of JP2017111750A publication Critical patent/JP2017111750A/ja
Ceased legal-status Critical Current

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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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
    • 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
    • G06F11/202Error 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 where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • 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
    • G06F11/202Error 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 where processing functionality is redundant
    • G06F11/2035Error 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 where processing functionality is redundant without idle spare hardware
    • 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
    • G06F11/202Error 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 where processing functionality is redundant
    • G06F11/2043Error 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 where processing functionality is redundant where the redundant components share a common memory address space
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • 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/1008Correctness of operation, e.g. memory ordering
    • 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)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】使用許可された共有メモリの単位領域のうち、障害が発生した情報処理装置や障害が発生したアプリケーションが使用していた単位領域へのアクセスの停止及び再開の処理を行いつつ、正常な情報処理装置や正常なアプリケーションが、障害が発生した情報処理装置や障害が発生したアプリケーションが使用していない単位領域を継続利用可能にすること。【解決手段】ホームノードのセグメント情報通知部72が、正常な各リモートノードに異常ノードが使用していた共有メモリ43のセグメント番号を通知して、セグメント単位で一時的にアクセスの停止を指示する。そして、メモリアクセストークン設定部75が、異常ノードが使用していた共有メモリセグメントに対応するメモリトークンレジスタに新しいトークンを設定し、正常な各リモートノードに新しいトークンを通知する。そして、アクセス再開部76が、正常な各リモートノードにアクセス再開を通知する。【選択図】図3

Description

本発明は、情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラムに関する。
近年、複数の情報処理装置をクロスバースイッチ等で接続した情報処理システムが利用されている。各情報処理装置は、複数のCPU(Central Processing Unit)、メモリ、HDD(Hard Disk Drive)等を有し、クロスバースイッチ等を介して他の情報処理装置と通信を行う。また、各情報処理装置が有するメモリには、自装置だけがアクセス可能なローカルメモリと他の情報処理装置がアクセス可能な共有メモリがある。
共有メモリについては、他の情報処理装置からのアクセスの許可を制御する技術としてアクセストークンを用いる技術が開発されている。各情報処理装置は、共有メモリの所定の大きさの単位領域毎にメモリトークンと呼ばれるキーをレジスタに記憶し、キーをアクセストークンとして指定した情報処理装置だけに対応する単位領域へのアクセスを許可する。そして、共有メモリを利用する他の情報処理装置に障害が発生すると、共有メモリを有する情報処理装置は、新たなメモリトークンをレジスタに記憶する。そして、共有メモリを有する情報処理装置は、新たなメモリトークンを障害が発生した情報処理装置に送信する。しかしながら、障害が発生した情報処理装置は新たなメモリトークンを受信できないため、共有メモリにアクセスしてもメモリトークンが不一致となる。それゆえ、障害が発生した情報処理装置からの共有メモリへのアクセスを防ぐことができる。
また、共用資源のアクセスに関して、以下のような従来技術がある。システム上のノードと資源からなる新しい構成毎に、新しいメンバシップ・リストを生成し、それに基づいて、それが存在する時期と相関関係にあるメンバシップを明確に識別する新しいエポック番号を生成する。エポック番号に基づく制御キーが生成され、システム上の各資源制御装置及びノードで格納される。あるノードの障害が発生したものと識別されると、それはメンバシップ・リストから除去され、新しいエポック番号と制御キーが生成される。ノードが資源に対してアクセス要求を送ると、資源制御装置は、ローカルに格納されたその制御キーと、ノードで格納された制御キー(アクセス要求とともに伝送されたもの)とを比較する。2つのキーが一致した場合のみ、アクセス要求が実行される。
特開2013−140446号公報 特開平9−237226号公報
しかし、共有メモリを利用するある情報処理装置に障害が発生した場合に、アクセストークンの再設定のために共有メモリ全体に対するアクセスの一時的な停止が行われる。そのため、障害が発生した情報処理装置を除く他の正常な情報処理装置が、共有メモリのうち障害が発生した情報処理装置がアクセスする領域とは異なる領域へのアクセスを行いたい場合であっても、共有メモリ全体に対するアクセスの停止及び再開の処理により、アクセスが中断してしまうという問題がある。
本発明は、1つの側面では、正常な情報処理装置や正常なアプリケーションに対して、使用許可された共有メモリの単位領域のうち、障害が発生した情報処理装置や障害が発生したアプリケーションが使用していた単位領域へのアクセスの停止及び再開の処理を行いつつ、正常な情報処理装置や正常なアプリケーションが、障害が発生した情報処理装置や障害が発生したアプリケーションが使用していない単位領域を継続利用可能にすることを目的とする。
1つの態様では、情報処理装置は、複数の他の情報処理装置とともに情報処理システムを構築し、該複数の他の情報処理装置からアクセスされる共有メモリを有する。前記情報処理装置は、前記共有メモリのそれぞれの単位領域と単位領域毎に使用許可を受けた情報処理装置を対応付ける管理情報を記憶する管理情報記憶部を有する。前記情報処理装置は、前記共有メモリの単位領域毎にアクセスの認証制御に用いる認証情報を記憶する認証情報記憶部を有する。前記情報処理装置は、前記複数の他の情報処理装置のうち異常が検出された異常情報処理装置が使用していた停止対象領域へのアクセスの停止指示を、前記管理情報に基づいて、該異常情報処理装置を除く他の情報処理装置に通知する第1の通知部を有する。前記情報処理装置は、前記停止対象領域の各単位領域に対応する認証情報記憶部に新しい認証情報を設定する設定部を有する。前記情報処理装置は、前記第1の通知部により前記停止指示が通知された情報処理装置に前記新しい認証情報とアクセスの再開指示を通知する第2の通知部を有する。
1つの側面では、正常な情報処理装置や正常なアプリケーションに対して、使用許可された共有メモリの単位領域のうち、障害が発生した情報処理装置や障害が発生したアプリケーションが使用していた単位領域へのアクセスの停止及び再開の処理を行いつつ、正常な情報処理装置や正常なアプリケーションが、障害が発生した情報処理装置や障害が発生したアプリケーションが使用していない単位領域を継続利用可能にすることができる。
図1は、実施例に係る情報処理システムのハードウェア構成を示す図である。 図2は、CPUチップのブロック図である。 図3は、実施例に係る情報処理システムのハードウェアの論理構成及びソフトウェアの機能構成を示す図である。 図4は、管理テーブルの一例を示す図である。 図5は、トークンの受け渡しを説明するための図である。 図6Aは、再通知方式を説明するための第1の図である。 図6Bは、再通知方式を説明するための第2の図である。 図7は、共有メモリを使用する処理のフローを示すフローチャートである。 図8Aは、共有メモリを使用するノードをセグメント単位で把握する処理のフローを示すフローチャートである。 図8Bは、共有メモリを使用するプロセスをセグメント単位で把握する処理のフローを示すフローチャートである。 図9は、ノード異常発生時の処理のフローを示すフローチャートである。 図10は、アプリ異常発生時の処理のフローを示すフローチャートである。
以下に、本願の開示する情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例の記載で用いられる用語について説明する。
「ノード」: 一つ以上のOS(Operating System)が動作する情報処理装置(コンピュータシステム)。仮想化機能を有するコンピュータシステムでは、ノード内を論理的に複数の論理ドメインに分割して、複数のOSを稼働させることもできる。
「ノード間の共有メモリ」: 複数のノード(複数の異なるOS上で動作する複数のアプリケーション)からアクセス(リード/ライト)可能な共有メモリ。
「ホームノード」: ノード間の共有メモリ領域として設定した物理メモリを有するノード。
「リモートノード」: ホームノードのメモリを参照したり更新したりするノード。
「セグメント」: 共有メモリの管理単位。セグメント毎に後述するメモリトークンを設定することができる。
「セグメントサイズ」: 共有メモリの管理単位のサイズ。例えば、4MB(メガバイト)、32MB、256MB、2GB(ギガバイト)等。
「RA」: 実アドレス。仮想化機能を導入したシステムで論理ドメイン毎に割り振られるアドレス。
「PA」: 物理アドレス。物理位置によって割り振られるアドレス。
「メモリトークン」: ホームノード側のCPUチップのメモリトークンレジスタに設定されるメモリアクセスキー。セグメント毎に異なるメモリトークンが設定される。メモリアクセスキーは、トークンとも呼ばれる。
「アクセストークン」: リモートノードからホームノード(他ノード)の共有メモリにアクセスする際に設定されるメモリアクセスキー。
・リモートノードからのメモリアクセス要求に付加されたアクセストークンとホームノードのメモリトークンレジスタに設定されたメモリトークンに基づいて、ハードウェアがメモリアクセス要求実行の可否を制御する。
・ホームノードのメモリトークンとリモートノードのアクセストークンが一致する場合は、共有メモリにアクセス(リード及びライト)することが可能。
・ホームノードのメモリトークンとリモートノードのアクセストークンが不一致の場合、共有メモリにアクセス(リード及びライト)しようとすると、例外トラップが発生してアクセス不可。
次に、実施例に係る情報処理システムのハードウェア構成について説明する。図1は、実施例に係る情報処理システムのハードウェア構成を示す図である。図1に示すように、情報処理システム2は、3つのノード1と、サービスプロセッサ3とを有する。また、3つのノード1とサービスプロセッサ3はクロスバーネットワーク4で接続される。
ノード1は、2つのCPUチップ11と、ディスクユニット12と、通信インターフェイス13とを有する情報処理装置である。CPUチップ11は、2つのコア14と、2つのメモリ15を有するチップである。コア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を対応付けてもよい。ディスク装置44は、図1に示したディスクユニット12に対応する。
ハイパーバイザ50は、情報処理システム2の物理資源を管理してOS60に論理資源を提供する基本ソフトウェアである。OS60は、論理資源を用いてアプリケーションの実行を制御する。OS60は、共有メモリ管理部61を有する。
共有メモリ管理部61は、共有メモリ43を管理し、管理テーブル70と、ノード・プロセス管理部71と、セグメント情報通知部72と、アクセス停止部73と、キャッシュフラッシュ部74と、メモリアクセストークン設定部75と、アクセス再開部76とを有する。
管理テーブル70は、他のノード1が有する共有メモリ43を含めて情報処理システム2が有する全ての共有メモリ43について、セグメント毎に共有メモリ43の情報が登録されるテーブルである。
図4は、管理テーブル70の一例を示す図である。図4は、ノード番号が「0」であるホームノードが有する管理テーブル70と、ノード番号が「1」であるホームノードが有する管理テーブル70と、ノード番号が「2」であるリモートノードが有する管理テーブル70を示す。図4において、セグメント番号が「0」〜「5」のセグメントは、ノード番号が「0」であるホームノードが物理メモリを有するセグメントである。また、セグメント番号が「16」〜「20」のセグメントは、ノード番号が「1」であるホームノードが物理メモリを有するセグメントである。
図4に示すように、ノード番号が「0」及び「1」であるホームノードの管理テーブル70には、セグメント毎に、セグメント番号と、アドレスと、セグメントサイズと、使用許可ノード番号と、使用中アプリのPIDと、メモリトークンとが登録される。また、ノード番号が「2」であるリモートノードの管理テーブル70には、ホームノードの管理テーブル70とほぼ同じ項目が登録されるが、メモリトークンの代わりにアクセストークンが登録される。
セグメント番号は、セグメントを識別する識別番号である。アドレスは、セグメントのRAである。なお、アドレスは、PAであってもよい。セグメントサイズは、セグメントのサイズである。使用許可ノード番号は、ホームノードの管理テーブル70でだけ用いられ、セグメントの使用が許可されたノード1の番号である。
使用中アプリのPIDは、自ノードにおいてセグメントを使用するアプリケーションのプロセスIDである。メモリトークンは、セグメントのアクセス許可の制御に用いられるメモリアクセスキーである。アクセストークンは、ホームノードの共有メモリ43にアクセスする際に使用されるメモリアクセスキーである。
例えば、ノード番号が「0」であるホームノードの管理テーブル70では、識別番号が「0」であるセグメントは、RAが16進数で「00000000」であり、サイズが「256MB」であり、使用が許可されたノード1の番号は「0」及び「2」である。また、識別番号が「0」であるセグメントは、ホームノードにおいてプロセスIDが「123」、「456」等のプロセスで使用されており、メモリアクセスキーは16進数で「0123」である。
また、ノード番号が「2」であるリモートノードの管理テーブル70では、識別番号が「0」であるセグメントは、RAが16進数で「00000000」であり、サイズが「256MB」である。また、識別番号が「0」であるセグメントは、自ノードが物理メモリを有する共有メモリ43ではないので、使用許可ノード番号は使用されない。また、識別番号が「0」であるセグメントは、自ノードにおいてプロセスIDが「213」、「546」等のプロセスで使用されており、メモリアクセスキーは16進数で「0123」である。また、識別番号が「2」であるセグメントは、使用が許可されていないので、使用しているアプリケーションのプロセスIDはない。
図3に戻って、ノード・プロセス管理部71は、共有メモリ43のセグメント毎に、どのノード1で使用され、どのプロセスで使用されているかを管理する。具体的には、ホームノードのノード・プロセス管理部71は、リモートノードに共有メモリ43の使用許可を与える際に、その共有メモリセグメントを使用するリモートノードのノード番号を管理テーブル70に記録する。共有メモリ43なので、その共有メモリ43を使用するリモートノードは複数存在する可能性があり、ノード・プロセス管理部71は、共有メモリ43の使用許可を与える度にノード番号を全て記録する。
また、各ノード1のノード・プロセス管理部71は、共有メモリ43をアプリケーションに割り当てる際に、その共有メモリ43を使用するアプリケーションのプロセスIDを管理テーブル70に記録する。共有メモリ43なので、その共有メモリ43を使用するアプリケーションは複数存在する可能性があり、ノード・プロセス管理部71は、共有メモリ43をアプリケーションに割り当てる度にプロセスIDを全て記録する。
また、ホームノードのノード・プロセス管理部71は、リモートノードから共有メモリ43の使用終了の通知があった場合や、リモートノードが停止した場合は、該当リモートノードのノード番号の記録を管理テーブル70から削除する。また、各ノード1のノード・プロセス管理部71は、アプリケーションから共有メモリ43の使用終了の通知があった場合や、アプリケーションが終了した場合は、該当アプリケーションのプロセスIDの記録を管理テーブル70から削除する。
セグメント情報通知部72は、リモートノードの異常が検出された場合に、異常ノードが使用していたセグメントのうち自ノードが物理メモリを有するセグメントについて、当該セグメントを使用する正常なリモートノードを、管理テーブル70を用いて特定する。そして、セグメント情報通知部72は、特定したリモートノードに、異常ノードが使用していたセグメントのうち自ノードが物理メモリを有するセグメントのセグメント番号を通知する。
また、セグメント情報通知部72は、アプリケーションの異常が検出された場合に、異常アプリケーションが使用していたセグメントを、管理テーブル70を用いて特定する。そして、セグメント情報通知部72は、特定したセグメントのホームノードにセグメント番号とともにアプリケーションの異常を通知する。そして、通知されたセグメント番号と管理テーブル70を用いてホームノードのセグメント情報通知部72が、異常アプリケーションが使用していたセグメントを使用する正常なリモートノードを特定し、特定したリモートノードにセグメント番号を通知する。なお、ノード1の異常/アプリケーションの異常は、相手ノード/相手アプリケーションが無応答になった場合や、ネットワークの異常により相手ノード/相手アプリケーションと通信できない状態になった場合に検出される。
アクセス停止部73は、異常ノードが使用していたセグメント番号が通知されると、セグメント番号が通知されたセグメントを使用する全てのアプリケーションを、管理テーブル70を用いて特定し、特定した全てのアプリケーションを停止させる。あるいは、アクセス停止部73は、特定した全てのアプリケーションにセグメント番号を通知し、異常ノードが使用していたセグメントへのアクセスのみを停止させてもよい。異常ノードが使用していたセグメントへのアクセスのみを停止させた場合には、一時的にアクセスを停止させる範囲がセグメント単位に局所化でき、異常ノードが使用していたセグメント以外の共有メモリについては継続してアクセスが可能となる。したがって、異常ノードが使用していたセグメントへのアクセスのみを停止させた場合には、情報処理システム2に対する影響を小さくすることができる。
アクセス停止部73は、異常アプリケーションが使用していたセグメント番号が通知されると、セグメント番号が通知されたセグメントを使用する全てのアプリケーションを、管理テーブル70を用いて特定し、特定した全てのアプリケーションを停止させる。あるいは、アクセス停止部73は、特定した全てのアプリケーションにセグメント番号を通知し、異常アプリケーションが使用していたセグメントへのアクセスのみを停止させてもよい。
キャッシュフラッシュ部74は、後述するメモリアクセストークン設定部75がメモリトークンを変更する直前に、セグメント単位でキャッシュフラッシュを実行する。すなわち、キャッシュフラッシュ部74は、一次キャッシュ19又は二次キャッシュ18にキャッシュされている最新データを共有メモリ43に書き戻す。キャッシュフラッシュ部74は、異常ノードが検出された場合には、異常ノードが使用していたセグメントに対してキャッシュフラッシュを実行する。キャッシュフラッシュ部74は、異常アプリケーションが検出された場合には、異常アプリケーションが使用していたセグメントに対してキャッシュフラッシュを実行する。キャッシュフラッシュ部74がメモリトークン変更の直前に、セグメント単位でキャッシュフラッシュを実行することで、キャッシュコヒーレンシを保持した状態で異常ノード又は異常アプリケーションからのアクセスを遮断することができる。
メモリアクセストークン設定部75は、リモートノードの異常が検出された場合に、異常ノードが使用していたセグメントのうち自ノードが物理メモリを有するセグメントについて、新しいトークンをメモリトークンレジスタ27に設定する。そして、メモリアクセストークン設定部75は、新しいトークンを正常なリモートノードに送信する。そして、リモートノードの共有メモリ管理部61は、新しいトークンをアクセストークンレジスタ28に設定する。このように、メモリアクセストークン設定部75が、新しいトークンを正常なリモートノードに送信することによって、正常なノードは、異常ノードが使用していたセグメントを継続して利用することができる。
図5は、トークンの受け渡しを説明するための図である。図5は、ノード#2の共有メモリ43に含まれるセグメント82をノード#1がアクセスする場合を示す。なお、図5では、コア14はストランド16を1つ有し、アクセストークンレジスタ28はコア14に対応付けられる。図5に示すように、ノード#2のOS60は、セグメント82に対応させてメモリトークンレジスタ27に設定したトークンを管理テーブル70にセグメント番号に対応させて登録するとともに、ノード#2で動作するアプリケーション80に渡す。
ノード#2で動作するアプリケーション80は、OS60から渡されたトークンをアクセストークン81としてアドレスリージョン(アドレス及びサイズ)の情報とともに、ノード#1で動作してセグメント82をアクセスするアプリケーション80に送信する。ノード#1で動作するアプリケーション80は、受け取ったアクセストークン81をノード#1で動作するOS60に渡す。そして、ノード#1で動作するOS60は、アクセストークン81をアクセストークンレジスタ28に格納する。
そして、ノード#1のコア14は、セグメント82をアクセスする場合にアクセストークン81を含む情報をノード#2に送信する。そして、ノード#2のチェック部29が、メモリトークンレジスタ27がセグメント82に対応付けて記憶するメモリトークンとアクセストークン81を比較し、両者が一致するとセグメント82へのアクセスを許可する。
図3に戻って、アクセス再開部76は、新たなトークンが設定されたセグメントへのアクセスを再開させる。ホームノードのアクセス再開部76は、正常なリモートノードへアクセス再開を通知する。アクセス再開を通知されたリモートノードのアクセス再開部76は、一時的に停止させていた全てのアプリケーションを再開させる。あるいは、アクセス再開部76は、アクセス停止部73によりアクセスが停止されたセグメントすなわち新たにアクセストークン81が通知されたセグメントへのアクセスをアプリケーションに再開させてもよい。
このように、ホームノードのメモリアクセストークン設定部75は、異常ノード又は異常アプリケーションが使用していたセグメントに対して新たなメモリトークンを設定し、設定したメモリトークンを正常なリモートノードに再通知する。そして、ホームノードのアクセス再開部76は、正常なリモートノードへアクセス再開を通知する。したがって、正常なリモートノードは、異常ノード又は異常アプリケーションが使用していたセグメントに継続してアクセスすることができる。一方、異常が発生したノード1又は異常アプリケーションは、異常ノード又は異常アプリケーションが使用していたセグメントへアクセスすることができない。
図6A及び図6Bは、このような再通知方式を説明するための図である。図6Aはトークン再通知前の状態を示し、図6Bはトークン再通知後の状態を示す。図6A及び図6Bでは、ノード#0がホームノードであり、ノード#1〜ノード#3がそれぞれリモートノード#A〜リモートノード#Cである。また、図6A及び図6Bは、各ノード1は1つのCPUチップ11を有し、各CPUチップ11は1つのコア14を有する場合を示す。また、セグメント#0〜セグメント#Nはセグメントを表し、トークン#A0〜トークン#AN及びトークン#B0〜トークン#BNはトークンを表す。
図6Aに示すように、トークンが再通知される前は、ホームノードにおいて、セグメント#0にはトークン#A0が対応付けられ、セグメント#1にはトークン#A1が対応付けられ、セグメント#Nにはトークン#ANが対応付けられる。そして、3つのリモートノードに対してセグメント#0とセグメント#1へのアクセスが許可され、各アクセストークンレジスタ28には、トークン#A0及びトークン#A1がそれぞれセグメント#0及びセグメント#1に対応付けられて記憶される。各リモートノードは、アクセストークンレジスタ28に記憶されたアクセストークンを用いてセグメント#0及びセグメント#1へのアクセスが可能である。
リモートノード#Aに異常が発生すると、図6Bに示すように、ホームノードにおいてセグメント#0〜セグメント#Nに対応するメモリトークンがそれぞれトークン#B0〜トークン#BNに変更される。そして、トークン#B0及びトークン#B1がリモートノード#B及びリモートノード#Cに通知され、リモートノード#B及びリモートノード#Cのアクセストークンレジスタ28が書き換えられる。一方、リモートノード#Aにはトークン#B0及びトークン#B1が通知されないため、リモートノード#Aのアクセストークンレジスタ28は書き換えられない。
したがって、リモートノード#B及びリモートノード#Cは、アクセス再開を通知されるとセグメント#0及びセグメント#1にアクセス可能であるが、リモートノード#Aからセグメント#0及びセグメント#1へのアクセスは遮断される。
次に、共有メモリ43を使用する処理のフローについて説明する。図7は、共有メモリ43を使用する処理のフローを示すフローチャートである。図7に示すように、ホームノードにおいて、OS60が共有メモリ43を使用するアプリケーションであるアプリHを起動する(ステップS1)。そして、アプリHは、共有メモリ43のセグメントAを獲得する(ステップS2)。そして、ホームノードのノード・プロセス管理部71は、管理テーブル70にセグメントAを使用するアプリHのプロセスIDを追加する(ステップS3)。
その後、ホームノードは、リモートノードNに共有メモリ43のセグメントAの使用を許可し、セグメントAの使用許可をリモートノードNに通知する(ステップS4)。その際、ホームノードのノード・プロセス管理部71は、管理テーブル70にセグメントAを使用するリモートノードNのノード番号を追加する。
一方、リモートノードNにおいては、OS60が共有メモリ43を使用するアプリRを起動する(ステップS18)。そして、リモートノードNの共有メモリ管理部61は、セグメントAの使用許可をホームノードから通知されると、アプリRにセグメントAを割り当てる(ステップS19)。また、リモートノードNのノード・プロセス管理部71は、管理テーブル70にセグメントAを使用するアプリRのプロセスIDを追加する(ステップS20)。
そして、ホームノードは、セグメントAのメモリトークンを設定し(ステップS5)、リモートノードNにセグメントAのメモリトークンを通知する(ステップS6)。そして、ホームノードは、セグメントAのメモリトークンをOS60に通知し(ステップS7)、OS60は管理テーブル70にセグメントAのメモリトークンを追加する(ステップS8)。
一方、リモートノードNのアプリRは、セグメントAのメモリトークンをホームノードから通知されると、セグメントAのメモリトークンをOS60に通知する(ステップS21)。そして、リモートノードNの共有メモリ管理部61は、管理テーブル70にセグメントAのアクセストークンを追加し(ステップS22)、アクセストークンレジスタ28にアクセストークンを設定する(ステップS23)。そして、リモートノードNのアプリRは、セグメントAへのアクセスを開始する(ステップS24)。
セグメントAへのアクセスを受信すると、ホームノードのチェック部29は、セグメントAのメモリトークンとアクセストークンが一致するか否かを判定し(ステップS9)、一致した場合にはアクセス可と判定する(ステップS10)。一方、一致しない場合には、チェック部29は、アクセス拒否と判定し(ステップS11)、アクセス拒否をリモートノードNに通知する。アクセス拒否を通知されると、リモートノードNは、トークン不一致のトラップを生成する(ステップS25)。
リモートノードNは、トークン不一致のトラップが発生したか否かを判定し(ステップS26)、発生しない場合には、アクセス成功と判定し(ステップS27)、発生した場合には、アクセス失敗と判定する(ステップS28)。その後、リモートノードNは、アクセストークンを解除し(ステップS29)、アプリRがセグメントAの使用終了を通知する(ステップS30)。
ホームノードは、リモートノードNからセグメントAの使用終了の通知があるか否かを判定し(ステップS12)、通知がない場合には、ステップS9へ戻る。一方、通知がある場合には、キャッシュフラッシュ部74がセグメントAに対してキャッシュフラッシュを実行する(ステップS13)。そして、ホームノードはセグメントAのメモリトークンを解除し(ステップS14)、ノード・プロセス管理部71がリモートノードNのセグメントA使用許可を解除する(ステップS15)。すなわち、ノード・プロセス管理部71は、管理テーブル70からリモートノードNのノード番号を削除する。
そして、ノード・プロセス管理部71は、管理テーブル70からセグメントAのメモリトークンとアプリHのプロセスIDを削除する(ステップS16)。そして、ホームノードは、共有メモリ43を使用するアプリHを終了する(ステップS17)。
一方、リモートノードNのノード・プロセス管理部71は、管理テーブル70からセグメントAのアクセストークンとアプリRのプロセスIDを削除する(ステップS31)。そして、リモートノードNは、共有メモリ43を使用するアプリRを終了する(ステップS32)。
このように、ホームノードのノード・プロセス管理部71とリモートノードNのノード・プロセス管理部71が連携してセグメントAを使用するノード1のノード番号及びプロセスのプロセスIDを把握する。したがって、セグメントAを使用するノード1又はアプリケーションに異常が発生した場合に、セグメントAのホームノードのアクセス停止部73は、セグメントAを使用するリモートノードにセグメントAの使用停止を依頼することができる。
次に、共有メモリ43を使用するノード1をセグメント単位で把握する処理のフローについて説明する。図8Aは、共有メモリ43を使用するノード1をセグメント単位で把握する処理のフローを示すフローチャートである。
図8Aに示すように、ホームノードのノード・プロセス管理部71は、リモートノードへの共有メモリ43のセグメント使用の許可時であるか否かを判定する(ステップS41)。その結果、リモートノードへの共有メモリ43のセグメント使用の許可時である場合には、ホームノードのノード・プロセス管理部71は、管理テーブル70にセグメントを使用するノード1のノード番号を追加する(ステップS42)。
一方、リモートノードへの共有メモリ43のセグメント使用の許可時でない場合、すなわち、使用終了時は、ホームノードのノード・プロセス管理部71は、管理テーブル70からセグメントの使用を終了したノード1のノード番号を削除する(ステップS43)。
このように、ホームノードのノード・プロセス管理部71は、セグメントを使用するノード1のノード番号を、管理テーブル70を用いて管理することによって、セグメントを使用するリモートノードを把握することができる。
次に、共有メモリ43を使用するプロセスをセグメント単位で把握する処理のフローについて説明する。図8Bは、共有メモリ43を使用するプロセスをセグメント単位で把握する処理のフローを示すフローチャートである。
図8Bに示すように、リモートノードのノード・プロセス管理部71は、セグメント割り当て時であるか否かを判定する(ステップS51)。その結果、セグメント割り当て時である場合には、リモートノードのノード・プロセス管理部71は、管理テーブル70にセグメントを使用するアプリケーションのPIDを追加する(ステップS52)。
一方、セグメント割り当て時でない場合、すなわち、解放時は、リモートノードのノード・プロセス管理部71は、管理テーブル70からセグメントを解放するアプリケーションのPIDを削除する(ステップS53)。
このように、リモートノードのノード・プロセス管理部71は、セグメントを使用するアプリケーションのPIDを、管理テーブル70を用いて管理することによって、セグメントを使用するアプリケーションを把握することができる。
次に、ノード異常発生時の処理のフローについて説明する。図9は、ノード異常発生時の処理のフローを示すフローチャートである。図9に示すように、リモードノードで異常が発生し(ステップS61)、ホームノードがリモートノードの異常を検出する(ステップS62)。そして、ホームノードのセグメント情報通知部72が、正常な各リモートノードに、異常ノードが使用していた共有メモリ43のセグメント番号を通知する(ステップS63)。
そして、正常な各リモートノードのアクセス停止部73が、異常ノードが使用していたセグメントを使用している全アプリに、異常ノードが使用していたセグメント番号を通知して、セグメント単位で一時的にアクセスの停止を指示する(ステップS64)。そして、アクセス停止部73は、ホームノードに一時停止したことを通知する(ステップS65)。
そして、ホームノードは、正常な各リモートノードから一時停止通知を受信したか否かを判定し(ステップS66)、受信していないリモートノードがある場合には、一時停止通知を受信したか否かの判定を繰り返す。一方、正常な各リモートノードから一時停止通知を受信した場合には、キャッシュフラッシュ部74が、異常ノードが使用していた共有メモリセグメントに対してキャッシュフラッシュを実行する(ステップS67)。
そして、メモリアクセストークン設定部75が、異常ノードが使用していた共有メモリセグメントに対応するメモリトークンレジスタ27に新しいトークンを設定する(ステップS68)。その後、異常ノードが異常発生前に使用していた共有メモリセグメントにアクセスしようとすると、アクセスが失敗し(ステップS69)、異常ノードは異常終了する(ステップS70)。
ホームノードのメモリアクセストークン設定部75は、正常な各リモートノードに新しいトークンを通知し(ステップS71)、ホームノードのアクセス再開部76が、正常な各リモートノードにアクセス再開を通知する(ステップS72)。そして、正常な各リモートノードのメモリアクセストークン設定部75が、アクセストークンレジスタ28に新しいトークンを設定する(ステップS73)。そして、正常な各リモートノードのアクセス再開部76が、異常ノードが使用していた共有メモリセグメントへのアクセスを再開する(ステップS74)。
このように、ホームノードが、異常ノードが使用していた共有メモリセグメントに新たなメモリトークンを設定し、正常な各リモートノードに通知することによって、正常ノードからのアクセスを許可するとともに、異常ノードからのアクセスを防ぐことができる。
次に、アプリ異常発生時の処理のフローについて説明する。図10は、アプリ異常発生時の処理のフローを示すフローチャートである。図10に示すように、リモートアプリで異常が発生し(ステップS81)、ホームノードがリモートアプリの異常を検出する(ステップS82)。そして、ホームノードのセグメント情報通知部72が、各リモートノードに、異常アプリが使用していた共有メモリ43のセグメント番号を通知する(ステップS83)。
そして、各リモートノードのアクセス停止部73が、異常アプリが使用していたセグメントを使用している全アプリに、異常アプリが使用していたセグメント番号を通知して、セグメント単位で一時的にアクセスの停止を指示する(ステップS84)。そして、アクセス停止部73は、ホームノードに一時停止したことを通知する(ステップS85)。
そして、ホームノードは、各リモートノードから一時停止通知を受信したか否かを判定し(ステップS86)、受信していないリモートノードがある場合には、一時停止通知を受信したか否かの判定を繰り返す。一方、各リモートノードから一時停止通知を受信した場合には、キャッシュフラッシュ部74が、異常アプリが使用していた共有メモリセグメントに対してキャッシュフラッシュを実行する(ステップS87)。
そして、メモリアクセストークン設定部75が、異常アプリが使用していた共有メモリセグメントに対応するメモリトークンレジスタ27に新しいトークンを設定する(ステップS88)。その後、異常アプリが異常発生前に使用していた共有メモリセグメントにアクセスしようとすると、アクセスが失敗し(ステップS89)、異常アプリは異常終了する(ステップS90)。
ホームノードのメモリアクセストークン設定部75は、各リモートノードに新しいトークンを通知し(ステップS91)、ホームノードのアクセス再開部76が、各リモートノードにアクセス再開を通知する(ステップS92)。そして、各リモートノードのメモリアクセストークン設定部75が、アクセストークンレジスタ28に新しいトークンを設定する(ステップS93)。そして、各リモートノードのアクセス再開部76が、異常アプリが使用していた共有メモリセグメントへのアクセスを再開する(ステップS94)。
このように、ホームノードが、異常アプリが使用していた共有メモリセグメントに新たなメモリトークンを設定し、各リモートノードに通知することにより、異常アプリ以外のアプリからのアクセスを許可するとともに、異常アプリからのアクセスを防ぐことができる。
上述してきたように、実施例では、ホームノードのセグメント情報通知部72が、正常な各リモートノードに、異常ノードが使用していた共有メモリ43のセグメント番号を通知して、セグメント単位で一時的にアクセスの停止を指示する。そして、メモリアクセストークン設定部75が、異常ノードが使用していた共有メモリセグメントに対応するメモリトークンレジスタ27に新しいトークンを設定し、正常な各リモートノードに新しいトークンを通知する。そして、アクセス再開部76が、正常な各リモートノードにアクセス再開を通知する。したがって、正常なノード1は、異常ノードが使用していた共有メモリセグメント以外のセグメントは一時的にアクセスを停止することなく継続してアクセスすることができ、正常なノード1への障害の影響をなくすことができる。
また、実施例では、キャッシュフラッシュ部74が、新しいトークンが設定される前に、異常ノードが使用していた共有メモリセグメントに対してキャッシュフラッシュを実行する。したがって、ホームノードは、キャッシュコヒーレンスを維持した状態で、異常ノードが使用していた共有メモリセグメントへのアクセスを再開させることができる。
また、実施例では、各リモートノードのアクセス停止部73が、異常ノードが使用していたセグメントを使用している全アプリに、異常ノードが使用していたセグメント番号を通知して、セグメント単位で一時的にアクセスの停止を指示する。したがって、情報処理システム2は、異常ノードが使用していたセグメントを使用しないアプリがノード異常の影響を受けることを防ぐことができる。
なお、実施例では、管理テーブル70に使用を許可したノード1の番号を登録する場合について説明したが、管理テーブル70に使用を許可したCPUチップ11、コア14又はストランド16を登録してもよい。この場合、CPUチップ11、コア14又はストランド16が情報処理装置として機能する。
また、実施例では、アプリがセグメントを獲得する毎に使用を許可する場合について説明したが、アプリに一定の範囲の共有メモリ43が割り当てられた際に、割り当てられた共有メモリ43に含まれるセグメントについて使用を許可してもよい。
1 ノード
2 情報処理システム
3 サービスプロセッサ
4 クロスバーネットワーク
11 CPUチップ
12 ディスクユニット
13 通信インターフェイス
14 コア
15 メモリ
16 ストランド
17 HDD
18 二次キャッシュ
19 一次キャッシュ
20 命令キャッシュ
21 データキャッシュ
22 命令制御部
23 命令バッファ
24 演算部
25 レジスタ部
26 メモリ
27 メモリトークンレジスタ
28 アクセストークンレジスタ
29 チェック部
31 CPU
32 メモリ
33 通信インターフェイス
41 VCPU
42 ローカルメモリ
43 共有メモリ
44 ディスク装置
50 ハイパーバイザ
60 OS
61 共有メモリ管理部
70 管理テーブル
71 ノード・プロセス管理部
72 セグメント情報通知部
73 アクセス停止部
74 キャッシュフラッシュ部
75 メモリアクセストークン設定部
76 アクセス再開部
80 アプリケーション
81 アクセストークン
82 セグメント

Claims (6)

  1. 複数の他の情報処理装置とともに情報処理システムを構築し、該複数の他の情報処理装置からアクセスされる共有メモリを有する情報処理装置において、
    前記共有メモリのそれぞれの単位領域と単位領域毎に使用許可を受けた情報処理装置を対応付ける管理情報を記憶する管理情報記憶部と、
    前記共有メモリの単位領域毎にアクセスの認証制御に用いる認証情報を記憶する認証情報記憶部と、
    前記複数の他の情報処理装置のうち異常が検出された異常情報処理装置が使用していた停止対象領域へのアクセスの停止指示を、前記管理情報に基づいて、該異常情報処理装置を除く他の情報処理装置に通知する第1の通知部と、
    前記停止対象領域の各単位領域に対応する認証情報記憶部に新しい認証情報を設定する設定部と、
    前記第1の通知部により前記停止指示が通知された情報処理装置に前記新しい認証情報とアクセスの再開指示を通知する第2の通知部と
    を有することを特徴とする情報処理装置。
  2. 前記設定部が前記認証情報記憶部に新しい認証情報を設定する前に前記停止対象領域に対してキャッシュフラッシュを実行するフラッシュ実行部をさらに有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1の通知部は、前記停止対象領域へのアクセスの停止指示を、前記異常情報処理装置を除く他の情報処理装置で動作するアプリケーションのうち該停止対象領域の各単位領域のいずれかを使用するアプリケーションに通知し、
    前記第2の通知部は、前記第1の通知部により前記停止指示が通知されたアプリケーションに前記新しい認証情報とアクセスの再開指示を通知することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記異常情報処理装置は、動作するアプリケーションに異常が発生した情報処理装置であることを特徴とする請求項1、2又は3に記載の情報処理装置。
  5. 複数の他の情報処理装置とともに情報処理システムを構築し、該複数の他の情報処理装置からアクセスされる共有メモリを有する情報処理装置による共有メモリ管理方法において、
    前記共有メモリのそれぞれの単位領域と単位領域毎に使用許可を受けた情報処理装置を対応付ける管理情報に基づいて、
    前記複数の他の情報処理装置のうち異常が検出された異常情報処理装置が使用していた停止対象領域へのアクセスの停止指示を、該異常情報処理装置を除く他の情報処理装置に通知し、
    前記停止対象領域の各単位領域に対応する認証情報を新しい認証情報に更新し、
    前記停止指示を通知した情報処理装置に前記新しい認証情報とアクセスの再開指示を通知する
    ことを特徴とする共有メモリ管理方法。
  6. 複数の他の情報処理装置とともに情報処理システムを構築し、該複数の他の情報処理装置からアクセスされる共有メモリを有する情報処理装置で実行される共有メモリ管理プログラムにおいて、
    前記共有メモリのそれぞれの単位領域と単位領域毎に使用許可を受けた情報処理装置を対応付ける管理情報に基づいて、
    前記複数の他の情報処理装置のうち異常が検出された異常情報処理装置が使用していた停止対象領域へのアクセスの停止指示を、該異常情報処理装置を除く他の情報処理装置に通知し、
    前記停止対象領域の各単位領域に対応する認証情報を新しい認証情報に更新し、
    前記停止指示を通知した情報処理装置に前記新しい認証情報とアクセスの再開指示を通知する
    処理を前記情報処理装置に実行させることを特徴とする共有メモリ管理プログラム。
JP2015247724A 2015-12-18 2015-12-18 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム Ceased JP2017111750A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015247724A JP2017111750A (ja) 2015-12-18 2015-12-18 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
US15/341,042 US20170177508A1 (en) 2015-12-18 2016-11-02 Information processing apparatus and shared-memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015247724A JP2017111750A (ja) 2015-12-18 2015-12-18 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム

Publications (1)

Publication Number Publication Date
JP2017111750A true JP2017111750A (ja) 2017-06-22

Family

ID=59067117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015247724A Ceased JP2017111750A (ja) 2015-12-18 2015-12-18 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム

Country Status (2)

Country Link
US (1) US20170177508A1 (ja)
JP (1) JP2017111750A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140446A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置および不正アクセス防止方法
JP2015179488A (ja) * 2014-03-19 2015-10-08 富士通株式会社 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654902B1 (en) * 2000-04-11 2003-11-25 Hewlett-Packard Development Company, L.P. Persistent reservation IO barriers
JP2006309638A (ja) * 2005-05-02 2006-11-09 Hitachi Ltd 計算機システムおよびその計算機システムに用いられるホスト計算機およびストレージ装置、ならびに、計算機システムに用いられるボリューム切替方法
WO2010013092A1 (en) * 2008-07-30 2010-02-04 Telefonaktiebolaget Lm Ericsson (Publ) Systems and method for providing trusted system functionalities in a cluster based system
US9602276B2 (en) * 2010-06-11 2017-03-21 Qualcomm Incorporated Method and apparatus for virtual pairing with a group of semi-connected devices
US9286172B2 (en) * 2011-12-22 2016-03-15 Intel Corporation Fault-aware mapping for shared last level cache (LLC)
JP5614419B2 (ja) * 2012-02-29 2014-10-29 富士通株式会社 情報処理装置、制御方法および制御プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140446A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置および不正アクセス防止方法
JP2015179488A (ja) * 2014-03-19 2015-10-08 富士通株式会社 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム

Also Published As

Publication number Publication date
US20170177508A1 (en) 2017-06-22

Similar Documents

Publication Publication Date Title
US9411646B2 (en) Booting secondary processors in multicore system using kernel images stored in private memory segments
CN110998562B (zh) 在分布式集群系统中隔开节点
US9110717B2 (en) Managing use of lease resources allocated on fallover in a high availability computing environment
US20170206175A1 (en) Hypervisor-enforced self encrypting memory in computing fabric
JP2011128967A (ja) 仮想計算機の移動方法、仮想計算機システム及びプログラム
WO2015074512A1 (zh) 一种访问物理资源的方法和装置
JP2016167143A (ja) 情報処理システムおよび情報処理システムの制御方法
JP2017227969A (ja) 制御プログラム、システム、及び方法
JP2004302632A (ja) コンピュータ処理方法及びその実施システム並びにその処理プログラム
CN114661428A (zh) 一种原子操作的处理方法、设备、装置及存储介质
JP2013206379A (ja) クラスタ監視装置、クラスタ監視方法、及びプログラム
JP2014178981A (ja) フォールトトレラントサーバ
JP6337607B2 (ja) 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
JP2016513309A (ja) 分散コンピューティングシステムのコンピューティングノードにおける障害に起因するエラー伝播の制御
US11947463B2 (en) Method and apparatus for managing memory in memory disaggregation system
US10628056B2 (en) Information processing apparatus and shared memory management method
JP2017033375A (ja) 並列計算システム、マイグレーション方法、及びマイグレーションプログラム
JP2017111750A (ja) 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
JP2016197360A (ja) 情報処理装置、情報処理装置の制御プログラム及び情報処理装置の制御方法
US20140082313A1 (en) Storage class memory evacuation
JP2014063356A (ja) 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
JP6012479B2 (ja) 情報処理システム、制御方法および制御プログラム
JP5478372B2 (ja) ゲストos制御システム
US20150229642A1 (en) Controlling access to storage devices shared by host systems
US20230275931A1 (en) Dynamic management of role-based access control systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190726

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191224

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20200630