WO2014132466A1 - ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム - Google Patents

ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム Download PDF

Info

Publication number
WO2014132466A1
WO2014132466A1 PCT/JP2013/072741 JP2013072741W WO2014132466A1 WO 2014132466 A1 WO2014132466 A1 WO 2014132466A1 JP 2013072741 W JP2013072741 W JP 2013072741W WO 2014132466 A1 WO2014132466 A1 WO 2014132466A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
software
memory
console
unit
Prior art date
Application number
PCT/JP2013/072741
Other languages
English (en)
French (fr)
Inventor
文雄 町田
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2015502707A priority Critical patent/JP6164283B2/ja
Priority to US14/766,912 priority patent/US9588798B2/en
Publication of WO2014132466A1 publication Critical patent/WO2014132466A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F11/0712Error 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 in a virtual computing platform, e.g. logically partitioned systems
    • 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/0793Remedial or corrective actions
    • 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/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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

Definitions

  • the present invention relates to a software safe stop system, a software safe stop method, and a program.
  • a memory leak is an example of a system failure caused by a software defect.
  • Memory leak is a phenomenon in which the memory allocated for software objects and data is not properly released, and the system stops due to the exhaustion of the free memory area.
  • the memory is managed by an operating system (OS) and is shared by a plurality of software, so that the entire OS may stop due to a single software defect.
  • OS operating system
  • the mobile terminal described in Patent Document 1 monitors the operating state of the operating system at regular intervals, and predicts that the operating system has become unstable due to an unstable factor such as a memory leak. A predetermined avoidance measure corresponding to the state is executed to prevent a failure from occurring.
  • an object of the present invention is to avoid occurrence of a malfunction when a system failure occurs due to a memory leak.
  • the software safety stop system includes an OS abnormal stop detection unit that detects that an operating system of a virtual machine executed on a computer system has stopped abnormally due to a memory leak, and recovery of the console function of the abnormally stopped virtual machine.
  • an OS abnormal stop detection unit that detects that an operating system of a virtual machine executed on a computer system has stopped abnormally due to a memory leak, and recovery of the console function of the abnormally stopped virtual machine.
  • a memory resource securing unit that secures memory resources necessary for the computer system from among available memory resources and a memory resource secured to the abnormally stopped virtual machine are allocated.
  • a console acquisition unit that normally terminates the virtual machine using the console function.
  • the block diagram which shows the structure of the software safe stop system by Embodiment 1 of this invention The flowchart of operation
  • FIG. 1 is a block diagram showing a configuration of a software safe stop system 10 according to Embodiment 1 of the present invention.
  • the software safe stop system 10 includes virtual machine execution units 101 and 102, an OS abnormal stop detection unit 103, a console acquisition unit 104, a memory resource securing unit 105, and a virtual machine memory allocation information storage unit 106. ing.
  • the software safety stop system 10 includes a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and other memories, an external storage device for storing various information, an input interface, an output interface, a communication interface, It can be configured by a dedicated or general-purpose computer having a bus connecting them.
  • the software safety stop system 10 may be constituted by a single computer or may be constituted by a plurality of computers connected to each other via a communication line.
  • the virtual machine execution units 101 and 102, the OS abnormal stop detection unit 103, the console acquisition unit 104, and the memory resource securing unit 105 are modules of functions realized by the CPU executing a predetermined program stored in a ROM or the like. Equivalent to.
  • the virtual machine memory allocation information storage unit 106 is implemented by an external storage device. The external storage device may be connected to the software safe stop system 10 via a network or the like.
  • the virtual machine execution units 101 and 102 provide an execution environment for the virtual machine OS.
  • the OS abnormal stop detection unit 103 detects a memory leak that has occurred in the virtual machine execution unit 101.
  • the console acquisition unit 104 performs additional allocation of memory to the abnormally stopped virtual machine execution unit 101, and when the console function of the virtual machine execution unit 101 is restored by the addition of memory, data storage and log recording are performed using the console. Then, take action to remove the abnormal state of the software, and terminate the virtual machine normally.
  • the memory resource securing unit 105 secures memory resources necessary for acquiring the console function of the virtual machine execution unit 101 from among the memory resources that can be used in the software safety stop system 10.
  • the virtual machine memory allocation information storage unit 106 stores the amount of memory resources allocated to each virtual machine execution unit.
  • FIG. 2 is a flowchart of the operation of the software safe stop system 10.
  • a fault due to a memory leak occurs in the virtual machine due to a defect in software executed in the virtual machine execution unit 101 (step A1).
  • the OS abnormal stop detection unit 103 detects the abnormal stop state of the virtual machine execution unit 101 (step A2).
  • the OS abnormal stop detection unit 103 constantly monitors the alive state of the OS in order to detect the abnormal stop state of the virtual machine execution unit 101.
  • the memory resource securing unit 105 checks whether or not there is an amount of free memory necessary for restoring the console function of the virtual machine execution unit 101 in the software safety stop system 10 (step A3). If there is available free memory (step A4; YES), the console acquisition unit 104 adds a necessary amount of memory to the virtual machine execution unit 101 (step A5).
  • Step A6 When the console function of the virtual machine execution unit 101 is restored by additional allocation of memory (step A6; YES), the console acquisition unit 104 uses the console to save data, record logs, and remove software abnormal states. (Step A7), the virtual machine is normally terminated (Step A8).
  • the memory resource securing unit 105 tries to divert the memory allocated to the other virtual machine execution unit 102. (Step A9).
  • the memory resource securing unit 105 attempts to restore the console function by adding memory to the virtual machine execution unit 101 (step A5). .
  • Step A10 When the memory resource securing unit 105 cannot acquire memory from the other virtual machine execution unit 102 (step A10; NO), or when the console function of the virtual machine execution unit 101 is not restored even after adding memory (Step A6; NO), the console acquisition unit 104 deletes the virtual machine execution unit 101 and terminates (Step A11).
  • the software safe stop system 10 acquires a console by additionally allocating memory to a virtual machine that is abnormally stopped due to a memory leak. It can be terminated normally.
  • the software safety stop system 10 normally terminates the abnormally stopped virtual machine without deleting it. Therefore, the data held in the non-persistent storage before the abnormal stop is saved in the persistent storage and then virtualized. The machine can be stopped. Therefore, it is possible to avoid that the data held in the non-persistent storage is erased by deleting the virtual machine.
  • the software safety stop system 10 can avoid losing information on the operation and state of the system before the abnormal stop due to the deletion of the virtual machine, so that the cause of the abnormal stop can be investigated and the problem can be solved quickly.
  • the software safe stop system 10 can avoid inconsistency in data used by software due to deletion of a virtual machine.
  • the software safety stop system 10 diverts memory resources assigned to other virtual machines when there is not enough memory to be assigned to the abnormally stopped virtual machine. Even if no extra memory resource is prepared, the abnormally stopped virtual machine can be safely stopped.
  • FIG. FIG. 3 is a block diagram showing the configuration of the software safe stop system 20 according to the second embodiment of the present invention.
  • the same reference numerals as those in FIG. 1 represent corresponding components.
  • the software safe stop system 20 according to the second embodiment of the present invention includes a software isolation unit 107 in addition to the configuration of the first embodiment.
  • the software isolation unit 107 isolates software that causes a memory leak executed by using the virtual machine execution unit 101 from other software.
  • step A2 the software isolating unit 107 replaces the software causing the memory leak with other software executed by the virtual machine executing unit 101 or outside the software safe stop system 10. Perform processing to isolate it from linked components existing in.
  • Processing details vary depending on the software configuration that caused the memory leak. For example, when the software has a load balancing cluster configuration, the software isolating unit 107 isolates the software from other components by excluding the software from the load balancing cluster.
  • the software isolation unit 107 isolates the software from the network by invalidating the network interface of the virtual machine execution unit 101. To do. In this way, the software isolating unit 107 isolates the software that has caused the memory leak, reduces the risk of failure at the time of additional memory allocation, and then proceeds to step A3. Subsequent operations are the same as those in the first embodiment.
  • the software safety stop system 20 is configured to attempt to acquire the console after isolating the software causing the memory leak from other software. It is possible to reduce the risk of a failure due to a memory leak again after the additional allocation, and to stop the virtual machine more safely.
  • FIG. 4 is a block diagram showing a configuration of the software safe stop system 30 according to the third embodiment of the present invention.
  • the software safe stop system 30 according to the third embodiment of the present invention includes a safe stop processing execution unit 108 in addition to the configuration of the third embodiment.
  • the safe stop process execution unit 108 automatically collects information necessary for investigating the cause of the failure and automatically stores the data used by the software. To stop the virtual machine safely.
  • the safety stop processing execution unit 108 loads and loads a script for automatically executing processing necessary for the safety stop of the virtual machine execution unit 101.
  • the executed script is executed with a higher priority than other programs, and the software is safely stopped and terminated.
  • Processing automatically executed by the safe stop processing execution unit 108 includes removal of software abnormal state, resolution of data inconsistency, storage of temporary data, collection of information on system behavior immediately before abnormal stop, log recording, Includes normal process termination.
  • the software safe stop system 30 executes a program for safely stopping the software when the console function is acquired by the additional allocation of memory to the abnormally stopped virtual machine. Run automatically. As a result, the cost of manual recovery processing and the risk of operation errors can be reduced, and the virtual machine can be safely stopped in a shorter time.
  • FIG. 5 is a block diagram showing the configuration of the software safe stop system 40 according to the embodiment of the present invention.
  • the software safe stop system 40 includes a server computer 500 and a client computer 600.
  • the server computer 500 includes a virtual machine execution unit 501, an OS abnormal stop detection unit 503, a console acquisition unit 504, a memory resource securing unit 505, and a virtual machine memory allocation information storage unit 506.
  • the virtual machine execution unit 501 includes application software 507 and a cache server 508.
  • the client computer 600 includes an application client 601.
  • the application client 601 accesses the application software 507 through network communication and requests processing.
  • the application software 507 is, for example, a web application system that uses HTTP (Hypertext Transfer Protocol) communication.
  • the application client 601 may accept processing from a plurality of different client computers.
  • Application software 507 executes processing requested from application client 601 and stores data in cache server 508 in the processing.
  • the cache server 508 stores data used by the application software 507 on a memory.
  • the data stored in the cache server 508 has a data structure (for example, a hash table) composed of key / value pairs.
  • the application client 601 can request reading or writing of data by designating a key.
  • the cache server 508 functions as part of the application software 507 and is activated by the application software 507.
  • the application software 507 sets an upper limit value of the amount of data that can be stored in the cache server 508 at the time of activation. This upper limit value falls within the range of the amount of memory that can be used by the virtual machine execution unit 501.
  • the cache server 508 determines the amount of memory that can be used by the virtual machine execution unit 501. Try to store more data in memory. For this reason, when the processing amount requested from the application client 601 exceeds a certain amount, a memory leak problem occurs.
  • the OS abnormal stop detection unit 503 detects the memory leak, and the memory resource securing unit 505 checks the memory resources available on the server computer 500. If the server computer 500 has surplus memory resources, the console acquisition unit 504 allocates the memory resources to the virtual machine execution unit 501. As a result, a part of the process executed in the virtual machine execution unit 501 is restored, and the console function can be accessed.
  • the functions of the application software 507 and the cache server 508 may be recovered.
  • the process crashes due to an abnormal stop, or the virtual machine execution unit 501 is forcibly terminated before the OS abnormally stops, so that it is not guaranteed that all functions are restored.
  • the console function it is possible to save the content stored in the cache server 508, collect log information before abnormal stop, and the like. Further, it is possible to remove the inconsistent state at the time of abnormal stop and safely stop the cache server 508, the application software 507, and the OS according to a normal stop procedure.
  • An OS abnormal stop detection unit that detects that an operating system of a virtual machine executed in a computer system has stopped abnormally due to a memory leak
  • a memory resource securing unit that secures memory resources necessary for recovery of the console function of the virtual machine that has stopped abnormally from memory resources available in the computer system
  • a software safety stop system comprising: a console acquisition unit that allocates a memory resource secured to the virtual machine that has stopped abnormally and that normally terminates the virtual machine using the console function when the console function is restored.
  • the memory resource securing unit The software safe stop according to appendix 1, wherein a memory resource necessary for recovering the console function of the abnormally stopped virtual machine is secured from among memory resources allocated to another virtual machine executed in the computer system. system.
  • Additional remark 1 or 2 provided with the software isolation
  • separation part which isolates the software which caused the memory leak from the other software currently performed with the said virtual machine, and the cooperation component which exists outside the said computer system
  • the software safe stop system according to 2.
  • the said safe stop process execution part is Automatic execution of at least one of removal of abnormal software status, resolution of data inconsistency, storage of temporary data, collection of information on system behavior immediately before abnormal stop, logging, and normal process termination
  • the software safe stop system according to any one of supplementary notes 1 to 4.
  • An OS abnormal stop detection unit for detecting that an operating system of a virtual machine executed on the computer has abnormally stopped due to a memory leak;
  • a memory resource securing unit that secures memory resources necessary for recovery of the console function of the virtual machine that has stopped abnormally from memory resources available in the computer;
  • a program for functioning as a console acquisition unit for allocating memory resources secured to the abnormally stopped virtual machine and normally terminating the virtual machine using the console function when the console function is restored.
  • the present invention is suitable for avoiding a failure when a system failure due to a memory leak occurs in a virtual machine executed by a computer system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Abstract

コンピュータシステムで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出するOS異常停止検出部と、異常停止した仮想マシンのコンソール機能の復旧に必要なメモリ資源を、コンピュータシステム内で利用可能なメモリ資源の中から確保する、メモリ資源確保部と、異常停止した仮想マシンに確保されたメモリ資源を割り当て、コンソール機能が復旧したら、コンソール機能を用いて仮想マシンを正常終了させるコンソール獲得部と、を備える。

Description

ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム
 本発明は、ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラムに関する。
 ソフトウェアの欠陥に起因したシステム障害の一例としてメモリリークがある。メモリリークは、ソフトウェアオブジェクトやデータのために割り当てられたメモリが適切に解放されず、空きメモリ領域の枯渇によりシステムが停止してしまう現象である。一般的なコンピュータシステムでは、メモリはオペレーティングシステム(OS)によって管理され、複数のソフトウェアによって共有されるため、一つのソフトウェアの欠陥でOS全体が停止してしまうことがある。
 メモリリークによって異常停止したOSを復旧させるためには、コンピュータシステムの再起動が必要である。すなわち、コンピュータシステムの電源を落とし、再度コンピュータシステムを起動する。また、サーバ仮想化機能によって実現された仮想マシンでは、異常停止した仮想マシンを削除し、仮想マシンを再度作り直す。再起動や再生成によるOSの復旧では、異常停止時にハードディスクなどの永続性のあるストレージに保存されていなかったデータは消去される。すなわち、キャッシュやバッファなどの永続性のないストレージに保持されているデータは消去される。これにより、ユーザにとって重要なデータが失われるだけでなく、異常停止の原因を特定するための手掛かりとなる情報も失われる。さらに、異常状態のままコンピュータシステムの電源を落とすことにより、ソフトウェアが参照するデータに不整合が生じ、再起動時にコンピュータシステムを正常に起動できない場合がある。
 このように、メモリリークが起こると、上記のような不具合が発生するため、メモリリークを事前に回避する方法が一般的に採用されている。
 特許文献1に記載された携帯端末は、一定間隔でオペレーティングシステムの動作状況を監視し、メモリリークなどの不安定要因によりオペレーティングシステムが不安定状態になったと予測した場合に、予測された不安定状態に応じた所定の回避策を実行し、障害発生を未然に回避する。
特開平2008-003770号公報
 しかし、特許文献1の携帯端末では、実際にメモリリークによるシステム障害が生じた際に、不具合の発生を回避することはできなかった。
 そこで、本発明の目的は、メモリリークによるシステム障害が生じた際に、不具合の発生を回避することである。
本発明に係るソフトウェア安全停止システムは、コンピュータシステムで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出するOS異常停止検出部と、異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータシステム内で利用可能なメモリ資源の中から確保する、メモリ資源確保部と、異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させるコンソール獲得部と、を備える。
本発明によれば、メモリリークによるシステム障害が生じた際に、不具合の発生を回避することができる。
本発明の実施の形態1による、ソフトウェア安全停止システムの構成を示すブロック図。 本発明の実施の形態1による、ソフトウェア安全停止システムの動作のフローチャート。 本発明の実施の形態2による、ソフトウェア安全停止システムの構成を示すブロック図。 本発明の実施の形態3による、ソフトウェア安全停止システムの構成を示すブロック図。 本発明の実施例による、ソフトウェア安全停止システムの構成を示すブロック図。
実施の形態1.
 次に、本発明を実施するための形態について、図面を参照して詳細に説明する。
 図1は、本発明の実施の形態1によるソフトウェア安全停止システム10の構成を示すブロック図である。図1に示すように、ソフトウェア安全停止システム10は、仮想マシン実行部101,102、OS異常停止検出部103、コンソール獲得部104、メモリ資源確保部105、仮想マシンメモリ割り当て情報記憶部106を備えている。
 ソフトウェア安全停止システム10は、CPU(Central Processing Unit)、ROM(Read Only Memory)やRAM(Random Access Memory)等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータによって構成されうる。なお、ソフトウェア安全停止システム10は、単一のコンピュータにより構成されるものであっても、通信回線を介して互いに接続された複数のコンピュータにより構成されるものであってもよい。
 仮想マシン実行部101,102、OS異常停止検出部103、コンソール獲得部104、メモリ資源確保部105は、CPUがROM等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。仮想マシンメモリ割り当て情報記憶部106は、外部記憶装置により実装される。外部記憶装置は、ソフトウェア安全停止システム10とネットワーク等を介して接続されていてもよい。
 仮想マシン実行部101,102は、仮想マシンのOSの実行環境を提供する。
 OS異常停止検出部103は、仮想マシン実行部101で発生したメモリリークを検出する。
 コンソール獲得部104は、異常停止した仮想マシン実行部101へのメモリの追加割り当てを行い、メモリの追加により仮想マシン実行部101のコンソール機能が復旧したら、コンソールを用いてデータの保存やログの記録、ソフトウェアの異常状態を取り除く処置を行い、仮想マシンを正常終了させる。
 メモリ資源確保部105は、仮想マシン実行部101のコンソール機能の獲得に必要なメモリ資源をソフトウェア安全停止システム10内で利用可能なメモリ資源の中から確保する。
 仮想マシンメモリ割り当て情報記憶部106は、各々の仮想マシン実行部に割り当てられているメモリ資源の量を格納する。
 次に、ソフトウェア安全停止システム10の動作について説明する。図2は、ソフトウェア安全停止システム10の動作のフローチャートである。
 仮想マシン実行部101で実行されているソフトウェアの欠陥により、仮想マシンでメモリリークによる障害が発生する(ステップA1)。
 仮想マシン実行部101で障害が発生すると、OS異常停止検出部103が、仮想マシン実行部101の異常停止状態を検出する(ステップA2)。OS異常停止検出部103は、仮想マシン実行部101の異常停止状態を検出するため、常時OSの死活状態を監視している。
 仮想マシン実行部101が異常停止状態である場合、仮想マシン内のOSにはコンソールを用いてアクセスすることができない。メモリ資源確保部105は、ソフトウェア安全停止システム10内に、仮想マシン実行部101のコンソール機能の復旧に必要な量の空きメモリがあるかどうかを確認する(ステップA3)。利用可能な空きメモリがある場合には(ステップA4;YES)、コンソール獲得部104が仮想マシン実行部101に必要な量のメモリを追加する(ステップA5)。
 コンソール獲得部104は、メモリの追加割り当てにより仮想マシン実行部101のコンソール機能が復旧したら(ステップA6;YES)、コンソールを用いてデータの保存やログの記録、ソフトウェアの異常状態を取り除く処置を行い(ステップA7)、仮想マシンを正常終了させる(ステップA8)。
 一方、仮想マシン実行部101に割り当て可能な空きメモリがない場合には(ステップA6;NO)、メモリ資源確保部105は、他の仮想マシン実行部102に割り当てられているメモリを流用できないか試みる(ステップA9)。他の仮想マシン実行部102からメモリを獲得できた場合(ステップA10;YES)、メモリ資源確保部105は、仮想マシン実行部101にメモリを追加することによりコンソール機能の復旧を試みる(ステップA5)。
 メモリ資源確保部105が他の仮想マシン実行部102からメモリを獲得できなかった場合(ステップA10;NO)、またはメモリを追加しても仮想マシン実行部101のコンソール機能が復旧しなかった場合は(ステップA6;NO)、コンソール獲得部104は、仮想マシン実行部101を削除して終了する(ステップA11)。
 以上のように、本実施形態によれば、ソフトウェア安全停止システム10は、メモリリークによって異常停止した仮想マシンへメモリを追加で割り当てることによってコンソールを獲得するため、獲得したコンソールを用いて仮想マシンを正常終了させることができる。
 ソフトウェア安全停止システム10は、異常停止した仮想マシンを削除せずに正常終了させるので、異常停止前に永続性のないストレージに保持されていたデータを、永続性のあるストレージに保存した上で仮想マシンを停止することができる。したがって、永続性のないストレージに保持されていたデータが、仮想マシンの削除によって消去されることを避けることができる。
 また、ソフトウェア安全停止システム10は、異常停止前のシステムの動作や状態に関する情報が、仮想マシンの削除によって失われるのを避けることができるため、異常停止の原因究明および問題解決を迅速化できる。
 また、ソフトウェア安全停止システム10は、仮想マシンの削除によってソフトウェアの利用するデータに不整合が生じることを避けることができる。
 また、本実施の形態では、ソフトウェア安全停止システム10は、異常停止した仮想マシンに割り当てるメモリが足りない場合には、他の仮想マシンに割り当てられているメモリ資源を流用するようにしたので、予め余剰メモリ資源を用意しなくても、異常停止した仮想マシンを安全に停止させることができる。
実施の形態2.
 図3は、本発明の実施の形態2によるソフトウェア安全停止システム20の構成を示すブロック図である。図1と同一の符号は、対応する構成要素を表している。図3に示すように、本発明の実施の形態2によるソフトウェア安全停止システム20は、実施の形態1の構成に加え、ソフトウェア隔離部107を備えている。ソフトウェア隔離部107は、仮想マシン実行部101を用いて実行されるメモリリークの原因となるソフトウェアを他のソフトウェアから隔離する。
 次に、図2を用いて、ソフトウェア安全停止システム20の動作について説明する。ステップA2においてOSの異常停止状態が検出された際、ソフトウェア隔離部107は、メモリリークを発生させたソフトウェアを、仮想マシン実行部101で実行されていた他のソフトウェアやソフトウェア安全停止システム10の外部に存在する連携コンポーネントから隔離するための処理を行う。
 処理の内容は、メモリリークを発生させたソフトウェアの構成によって異なる。例えば、そのソフトウェアが負荷分散クラスタの構成をとっている場合は、ソフトウェア隔離部107は、ソフトウェアを負荷分散クラスタの対象から外すことにより、ソフトウェアを他のコンポーネントから隔離する。
 また、そのソフトウェアがネットワーク機能を用いて他のコンピュータで動作するソフトウェアと通信する場合は、ソフトウェア隔離部107は、仮想マシン実行部101のネットワークインターフェースを無効にすることにより、ネットワークからこのソフトウェアを隔離する。このように、ソフトウェア隔離部107がメモリリークを発生させたソフトウェアを隔離し、メモリ追加割り当て時の障害リスクを低減した上で、ステップA3に進む。以降の動作は実施の形態1と同様である。
 以上のように、本実施形態によれば、ソフトウェア安全停止システム20は、メモリリークの原因となったソフトウェアを他のソフトウェアと隔離してからコンソールの獲得を試みるように構成されているため、メモリの追加割り当て後に再度メモリリークによって障害が発生するリスクを減らし、仮想マシンをより安全に停止させることができる。
実施の形態3.
 図4は、本発明の実施の形態3によるソフトウェア安全停止システム30の構成を示すブロック図である。図1と同一の符号は、対応する構成要素を表している。図4に示すように、本発明の実施の形態3によるソフトウェア安全停止システム30は、実施の形態3の構成に加え、安全停止処理実行部108を備えている。安全停止処理実行部108は、コンソール獲得部104によってコンソール機能が獲得された際に、障害原因を究明するために必要な情報の収集やソフトウェアが利用する重要なデータを保存するための処理を自動で実行し、仮想マシンを安全に停止させる。
 次に、図2を用いて、ソフトウェア安全停止システム20の動作について説明する。ステップA6においてコンソール獲得部104によってコンソール機能が獲得された際、安全停止処理実行部108は、仮想マシン実行部101の安全停止のために必要な処理を自動的に実行するスクリプトをロードし、ロードしたスクリプトを他のプログラムよりも高い優先度で実行し、ソフトウェアを安全停止させて終了する。安全停止処理実行部108によって自動で実行される処理には、ソフトウェアの異常状態の除去、データ不整合の解消、一時データの保存、異常停止直前のシステムの振る舞いに関する情報の収集、ログの記録、プロセスの正常終了処理などが含まれる。
 以上のように、本実施形態によれば、ソフトウェア安全停止システム30は、異常停止した仮想マシンへのメモリの追加割り当てによってコンソール機能が獲得された際に、ソフトウェアを安全に停止するためのプログラムを自動で実行する。これにより人手による復旧処理のコストや操作ミスのリスクを削減し、より短時間で仮想マシンを安全に停止させることができる。
 次に本発明の実施例について図面を参照して詳細に説明する。
 図5は、本発明の実施例によるソフトウェア安全停止システム40の構成を示すブロック図である。図5に示すように、ソフトウェア安全停止システム40は、サーバコンピュータ500とクライアントコンピュータ600を備えている。
 サーバコンピュータ500は、仮想マシン実行部501、OS異常停止検出部503、コンソール獲得部504、メモリ資源確保部505、仮想マシンメモリ割り当て情報記憶部506を備えている。また、仮想マシン実行部501は、アプリケーションソフトウェア507とキャッシュサーバ508を備えている。
 クライアントコンピュータ600は、アプリケーションクライアント601を備えている。アプリケーションクライアント601は、ネットワーク通信によってアプリケーションソフトウェア507にアクセスし、処理を要求する。アプリケーションソフトウェア507は、例えばHTTP(Hypertext Transfer Protocol)通信を利用したWebアプリケーションシステムなどである。アプリケーションクライアント601は、複数の異なるクライアントコンピュータからの処理を受け付けるようにしてもよい。
 アプリケーションソフトウェア507は、アプリケーションクライアント601から要求された処理を実行し、その処理の中でデータをキャッシュサーバ508に格納する。キャッシュサーバ508は、アプリケーションソフトウェア507で利用されるデータをメモリ上に格納する。キャッシュサーバ508に格納されたデータは、キーと値のペアからなるデータ構造(例えばハッシュテーブル)を有する。アプリケーションクライアント601は、キーを指定することにより、データの読み出しや書き込みを要求することができる。
 キャッシュサーバ508は、アプリケーションソフトウェア507の一部として機能し、アプリケーションソフトウェア507によって起動される。アプリケーションソフトウェア507は、キャッシュサーバ508に格納できるデータ量の上限値を起動時に設定する。この上限値は、仮想マシン実行部501が利用可能なメモリ量の範囲に収められる。
 ここで、アプリケーションソフトウェア507の欠陥により、キャッシュサーバ508で利用するメモリの上限値が適切に設定されない場合の、ソフトウェア安全停止システム40の動作について説明する。
 例えば、キャッシュサーバ508で利用するメモリの上限値として仮想マシン実行部501に割り当てられたメモリ量を大きく上回る量が設定された場合、キャッシュサーバ508は、仮想マシン実行部501で利用できるメモリ量を越える量のデータをメモリに格納しようとする。このため、アプリケーションクライアント601から要求される処理量が一定量を越えると、メモリリークの問題が発生する。
 キャッシュサーバ508のメモリリークが発生すると、アプリケーションソフトウェア507、および仮想マシン実行部501で実行中のOSが異常停止する。この状態では、仮想マシン実行部501のコンソールにアクセスすることができなくなり、さらにネットワークを介して仮想マシン実行部501にアクセスすることもできなくなる。したがって、アプリケーションクライアント601からの処理要求は全てエラーとなる。このような場合、従来では、仮想マシン実行部501を削除して再生成する以外に復旧手段はなかった。
 本発明では、上記のようなメモリリーク発生時に、OS異常停止検出部503がメモリリークを検出し、メモリ資源確保部505がサーバコンピュータ500上で利用可能なメモリ資源を調べる。サーバコンピュータ500に余剰のメモリ資源があった場合、コンソール獲得部504は、このメモリ資源を仮想マシン実行部501に割り当てる。これにより、仮想マシン実行部501内で実行されていたプロセスの一部が復旧し、コンソール機能にアクセス可能となる。
 さらに、アプリケーションソフトウェア507およびキャッシュサーバ508の機能も回復する場合がある。しかし、一般的には異常停止によってプロセスがクラッシュしたり、OS異常停止前に仮想マシン実行部501が強制終了されたりするため、全ての機能が復旧することは保証されない。しかし、コンソール機能が復旧することにより、キャッシュサーバ508に格納されていたコンテンツの保存や、異常停止前のログ情報の収集などが可能となる。また、異常停止時の不整合状態を取り除き、キャッシュサーバ508、アプリケーションソフトウェア507、およびOSをそれぞれ正常な停止手続きにしたがって安全に停止させることが可能となる。
 この出願は、2013年2月28日に出願された日本出願特願2013-39061を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)コンピュータシステムで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出するOS異常停止検出部と、
 異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータシステム内で利用可能なメモリ資源の中から確保する、メモリ資源確保部と、
 異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させるコンソール獲得部と、を備えたソフトウェア安全停止システム。
(付記2)前記メモリ資源確保部は、
 前記コンピュータシステムで実行される他の仮想マシンに割り当てられているメモリ資源の中から、異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を確保する、付記1に記載のソフトウェア安全停止システム。
(付記3)前記メモリリークの原因となったソフトウェアを、前記仮想マシンで実行されていた他のソフトウェアや前記コンピュータシステムの外部に存在する連携コンポーネントから隔離する、ソフトウェア隔離部を備えた付記1または2に記載のソフトウェア安全停止システム。
(付記4)前記コンソール機能の復旧後、前記仮想マシンを正常終了させる処理を自動で実行する、安全停止処理実行部を備えた付記1から3のいずれか1項に記載のソフトウェア安全停止システム。
(付記5)前記安全停止処理実行部は、
 ソフトウェアの異常状態の除去、データ不整合の解消、一時データの保存、異常停止直前のシステムの振る舞いに関する情報の収集、ログの記録、およびプロセスの正常終了処理のうちの少なくとも1つを自動で実行する、付記1から4のいずれか1項に記載のソフトウェア安全停止システム。
(付記6)コンピュータシステムで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出する工程と、
 異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータシステム内で利用可能なメモリ資源の中から確保する工程と、
 異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させる工程と、を備えたソフトウェア安全停止方法。
(付記7)コンピュータを、
 前記コンピュータで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出するOS異常停止検出部と、
 異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータ内で利用可能なメモリ資源の中から確保する、メモリ資源確保部と、
 異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させるコンソール獲得部と、して機能させるためのプログラム。
 本発明は、コンピュータシステムで実行される仮想マシンにおいて、メモリリークによるシステム障害が生じた際に、不具合の発生を回避することに適している。
10,20,30,40 ソフトウェア安全停止システム、101,102,501 仮想マシン実行部、103,503 OS異常停止検出部、104,504 コンソール獲得部、105,505 メモリ資源確保部、106,506 仮想マシンメモリ割り当て情報記憶部、107 ソフトウェア隔離部、108 安全停止処理実行部、500 サーバコンピュータ、507 アプリケーションソフトウェア、508 キャッシュサーバ、601 アプリケーションクライアント、600 クライアントコンピュータ

Claims (7)

  1.  コンピュータシステムで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出するOS異常停止検出部と、
     異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータシステム内で利用可能なメモリ資源の中から確保する、メモリ資源確保部と、
     異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させるコンソール獲得部と、を備えたソフトウェア安全停止システム。
  2.  前記メモリ資源確保部は、
     前記コンピュータシステムで実行される他の仮想マシンに割り当てられているメモリ資源の中から、異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を確保する、請求項1に記載のソフトウェア安全停止システム。
  3.  前記メモリリークの原因となったソフトウェアを、前記仮想マシンで実行されていた他のソフトウェアや前記コンピュータシステムの外部に存在する連携コンポーネントから隔離する、ソフトウェア隔離部を備えた請求項1または2に記載のソフトウェア安全停止システム。
  4.  前記コンソール機能の復旧後、前記仮想マシンを正常終了させる処理を自動で実行する、安全停止処理実行部を備えた請求項1から3のいずれか1項に記載のソフトウェア安全停止システム。
  5.  前記安全停止処理実行部は、
     ソフトウェアの異常状態の除去、データ不整合の解消、一時データの保存、異常停止直前のシステムの振る舞いに関する情報の収集、ログの記録、およびプロセスの正常終了処理のうちの少なくとも1つを自動で実行する、請求項1から4のいずれか1項に記載のソフトウェア安全停止システム。
  6.  コンピュータシステムで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出する工程と、
     異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータシステム内で利用可能なメモリ資源の中から確保する工程と、
     異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させる工程と、を備えたソフトウェア安全停止方法。
  7.  コンピュータを、
     前記コンピュータで実行される仮想マシンのオペレーティングシステムがメモリリークによって異常停止したことを検出するOS異常停止検出部と、
     異常停止した前記仮想マシンのコンソール機能の復旧に必要なメモリ資源を、前記コンピュータ内で利用可能なメモリ資源の中から確保する、メモリ資源確保部と、
     異常停止した前記仮想マシンに確保されたメモリ資源を割り当て、前記コンソール機能が復旧したら、前記コンソール機能を用いて前記仮想マシンを正常終了させるコンソール獲得部と、して機能させるためのプログラム。
PCT/JP2013/072741 2013-02-28 2013-08-26 ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム WO2014132466A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015502707A JP6164283B2 (ja) 2013-02-28 2013-08-26 ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム
US14/766,912 US9588798B2 (en) 2013-02-28 2013-08-26 Software safe shutdown system, software safe shutdown method, and program to prevent a problem caused by a system failure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-039061 2013-02-28
JP2013039061 2013-02-28

Publications (1)

Publication Number Publication Date
WO2014132466A1 true WO2014132466A1 (ja) 2014-09-04

Family

ID=51427760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/072741 WO2014132466A1 (ja) 2013-02-28 2013-08-26 ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム

Country Status (3)

Country Link
US (1) US9588798B2 (ja)
JP (1) JP6164283B2 (ja)
WO (1) WO2014132466A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073441B (zh) * 2016-11-14 2022-05-10 阿里巴巴集团控股有限公司 一种虚拟机内存监管方法与设备
CN111736514B (zh) * 2020-06-10 2020-12-04 杭州凯尔达机器人科技股份有限公司 基于通用计算机的机器人控制系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101034A (ja) * 1999-09-29 2001-04-13 Hitachi Ltd 異種os間制御による障害復旧方法
JP2004213122A (ja) * 2002-12-27 2004-07-29 Idemitsu Kosan Co Ltd クライアント/サーバによる制御システムの安定稼働方法及びそのプログラム
JP2004252591A (ja) * 2003-02-18 2004-09-09 Hitachi Ltd 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP2007133544A (ja) * 2005-11-09 2007-05-31 Hitachi Ltd 障害情報解析方法及びその実施装置
JP2011128967A (ja) * 2009-12-18 2011-06-30 Hitachi Ltd 仮想計算機の移動方法、仮想計算機システム及びプログラム
JP2012185865A (ja) * 2012-07-06 2012-09-27 Hitachi Ltd 管理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478387B2 (en) * 2002-09-25 2009-01-13 International Business Machines Corporation System and method for creating a restartable non-native language routine execution environment
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
JP4462238B2 (ja) 2006-06-21 2010-05-12 株式会社デンソーウェーブ 携帯端末

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101034A (ja) * 1999-09-29 2001-04-13 Hitachi Ltd 異種os間制御による障害復旧方法
JP2004213122A (ja) * 2002-12-27 2004-07-29 Idemitsu Kosan Co Ltd クライアント/サーバによる制御システムの安定稼働方法及びそのプログラム
JP2004252591A (ja) * 2003-02-18 2004-09-09 Hitachi Ltd 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP2007133544A (ja) * 2005-11-09 2007-05-31 Hitachi Ltd 障害情報解析方法及びその実施装置
JP2011128967A (ja) * 2009-12-18 2011-06-30 Hitachi Ltd 仮想計算機の移動方法、仮想計算機システム及びプログラム
JP2012185865A (ja) * 2012-07-06 2012-09-27 Hitachi Ltd 管理システム

Also Published As

Publication number Publication date
US9588798B2 (en) 2017-03-07
JPWO2014132466A1 (ja) 2017-02-02
JP6164283B2 (ja) 2017-07-19
US20160011899A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
JP5128944B2 (ja) コンピュータアプリケーションにおけるデータ損失を最小限にする方法およびシステム
JP5423871B2 (ja) 情報処理装置、情報処理方法、およびプログラム
Yamakita et al. Phase-based reboot: Reusing operating system execution phases for cheap reboot-based recovery
US8930764B2 (en) System and methods for self-healing from operating system faults in kernel/supervisory mode
JP2007133544A (ja) 障害情報解析方法及びその実施装置
US10346269B2 (en) Selective mirroring of predictively isolated memory
CN111800303A (zh) 混合云场景下保证可用集群数量的方法、装置及系统
US9195528B1 (en) Systems and methods for managing failover clusters
CN111181780A (zh) 基于ha集群的主机池切换方法、系统、终端及存储介质
JP5403054B2 (ja) メモリダンプ機能を有するサーバおよびメモリダンプ取得方法
JP6164283B2 (ja) ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム
US10324811B2 (en) Opportunistic failover in a high availability cluster
CN111147615B (zh) Ip地址的接管方法、系统、计算机可读存储介质及服务器
CN104360935A (zh) 一种服务器系统崩溃转储收集的方法
US11226875B2 (en) System halt event recovery
CN115421960A (zh) 一种ue内存故障恢复方法、装置、电子设备及介质
WO2014024279A1 (ja) メモリ障害リカバリ装置、方法、及びプログラム
US9465710B1 (en) Systems and methods for predictively preparing restore packages
US9176806B2 (en) Computer and memory inspection method
Cerveira et al. Fast local VM migration against hypervisor corruption
CN112231063A (zh) 一种故障处理方法及装置
CN103197992A (zh) GlusterFS脑裂的自动化恢复方法
US11436112B1 (en) Remote direct memory access (RDMA)-based recovery of dirty data in remote memory
JP2018022402A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
WO2015176455A1 (zh) 基于Hadoop的硬盘损坏处理方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13876214

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14766912

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2015502707

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13876214

Country of ref document: EP

Kind code of ref document: A1