JP7332280B2 - 冗長化システム、冗長化プログラム、及び情報処理装置 - Google Patents

冗長化システム、冗長化プログラム、及び情報処理装置 Download PDF

Info

Publication number
JP7332280B2
JP7332280B2 JP2018169162A JP2018169162A JP7332280B2 JP 7332280 B2 JP7332280 B2 JP 7332280B2 JP 2018169162 A JP2018169162 A JP 2018169162A JP 2018169162 A JP2018169162 A JP 2018169162A JP 7332280 B2 JP7332280 B2 JP 7332280B2
Authority
JP
Japan
Prior art keywords
information processing
processing device
information
environment
virtual environment
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
JP2018169162A
Other languages
English (en)
Other versions
JP2020042526A (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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2018169162A priority Critical patent/JP7332280B2/ja
Priority to CN201910865032.0A priority patent/CN110888752B/zh
Priority to US16/564,204 priority patent/US11403126B2/en
Publication of JP2020042526A publication Critical patent/JP2020042526A/ja
Application granted granted Critical
Publication of JP7332280B2 publication Critical patent/JP7332280B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/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/2002Error 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 interconnections or communication control functionality are redundant
    • 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/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/2048Error 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 neither address space nor persistent storage
    • 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/45591Monitoring or debugging support
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Description

本開示は、冗長化システム、冗長化プログラム、及び情報処理装置に関する。
2つの情報処理装置を備えるシステムにおいて、一方の情報処理装置に致命的な異常が発生したときにもう一方の情報処理装置に動作を切り替え、システム動作に影響を与えることなく動作を継続実行できる冗長化に関する技術が従来知られている。
例えば、特許文献1には、特殊なハードウェア及び冗長化制御の仕組みを入れた特殊なOS(Operating System)を必要とせず、汎用のハードウェア及びOSで実現可能な冗長化コントローラが開示されている。
例えば、特許文献2には、独立した2台の計算機上でそれぞれ稼働する仮想計算機を組み合わせて二重化を実現することを可能にする高可用システムが開示されている。
特許第4099816号公報 特許第4468426号公報
近年、情報処理に関する技術革新のスピードは目覚ましく、外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性がさらに向上するシステムが求められている。特許文献1及び特許文献2に開示されているシステムでは、このような問題点は十分に考慮されていなかった。
本開示は、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム、冗長化プログラム、及び情報処理装置を提供することを目的とする。
幾つかの実施形態に係る冗長化システムは、複数の情報処理装置を備える冗長化システムであって、前記複数の情報処理装置それぞれは、他の情報処理装置と通信を行う通信部と、自身の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、を備え、前記通信部は、前記複数の仮想環境のうち稼働状態にある第1環境に関連付けられた第1等値化情報を、前記他の情報処理装置に送信し、前記他の情報処理装置において稼働状態にある第2環境に関連付けられた第2等値化情報を、前記他の情報処理装置から受信し、前記制御部は、前記通信部が受信した前記第2等値化情報に基づいて、前記第2環境を前記自身の情報処理装置に等値化し、前記第1環境を稼働状態に維持し、かつ前記第2環境を待機状態にする。これにより、ハードウェア構成が2つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
一実施形態に係る冗長化システムは、3つの前記情報処理装置を備え、前記第1環境は、1つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している1つの仮想環境が2つの他の情報処理装置それぞれに等値化される。したがって、1つの他の情報処理装置のみに仮想環境が等値化される場合と比較して、信頼性及び可用性がさらに向上する。
一実施形態に係る冗長化システムにおいて、前記制御部は、1つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第2環境を、待機状態から稼働状態に切り替えてもよい。これにより、例えばハードウェア異常により他の情報処理装置がシステムダウンしても、瞬時に自身の情報処理装置に動作が切り替わる。したがって、システム動作に全く影響が及ばず、システム動作が継続可能である。
一実施形態に係る冗長化システムにおいて、前記制御部は、新たな1つの情報処理装置が前記冗長化システムに備わったと判定すると、稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、前記通信部を用いて新たな前記情報処理装置に送信し、送信した前記第1等値化情報に関連付いている前記第1環境を消去してもよい。これにより、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置を新たに追加することで負荷が分散され、信頼性及び可用性が向上する。
一実施形態に係る冗長化システムにおいて、前記通信部は、LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信を行ってもよい。これにより、ソフトウェアに基づく処理を介在せずに、他の情報処理装置への等値化が行われる。したがって、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。
一実施形態に係る冗長化システムにおいて、2つの前記情報処理装置を備え、前記第1環境は、1つの仮想環境を含み、前記第2環境は、1つの前記他の情報処理装置において稼働状態にある1つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している仮想環境は、他の情報処理装置に待機状態の仮想環境として等値化される。したがって、一方の情報処理装置が稼働状態に、他方の情報処理装置が待機状態にある従来の二重化システムと比較して、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である集約率が向上する。例えば、1つの情報処理装置に対して1つの稼働状態の仮想環境が構築されている場合、従来の二重化システムであれば、集約率は50%となる。一方で、一実施形態に係る冗長化システムでは、冗長化を構成する2つの情報処理装置それぞれで1つの仮想環境が稼働可能である。したがって、集約率は100%である。以上に加えて、各情報処理装置における負荷バランスが変更される。すなわち、各情報処理装置において負荷が略均等となり、負荷バランスが向上する。
一実施形態に係る冗長化システムにおいて、3つの前記情報処理装置を備え、前記第1環境は、2つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している2つの仮想環境が2つの他の情報処理装置にそれぞれ等値化される。したがって、各情報処理装置において複数の仮想環境が稼働状態にある場合でも、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
一実施形態に係る冗長化システムは、管理用情報処理装置をさらに備え、前記管理用情報処理装置は、ユーザからの入力操作に基づいて冗長化管理情報を変更し、前記冗長化管理情報を前記複数の情報処理装置それぞれに送信してもよい。これにより、冗長化システムに含まれる情報処理装置の構成、各情報処理装置に対する仮想環境の関連付け、及び各情報処理装置の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システムでは、稼働を停止させることなく、自在に構成の変更が可能である。
幾つかの実施形態に係る冗長化プログラムは、冗長化システムが備える複数の情報処理装置において動作する冗長化プログラムであって、前記複数の情報処理装置のそれぞれの前記情報処理装置において稼働状態にある第1環境に関連付けられた第1等値化情報を前記情報処理装置から他の情報処理装置に送信するステップと、前記他の情報処理装置において稼働状態にある第2環境に関連付けられた第2等値化情報を前記他の情報処理装置から前記情報処理装置が受信するステップと、受信された前記第2等値化情報に基づいて、前記第2環境を前記情報処理装置に等値化するステップと、前記情報処理装置において、前記第1環境を稼働状態に維持し、かつ前記第2環境を待機状態にするステップと、を含む。これにより、ハードウェア構成が2つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える3つの前記情報処理装置において動作し、前記第1環境は、1つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している1つの仮想環境が2つの他の情報処理装置それぞれに等値化される。したがって、1つの他の情報処理装置のみに仮想環境が等値化される場合と比較して、信頼性及び可用性がさらに向上する。
一実施形態に係る冗長化プログラムは、1つの前記他の情報処理装置がシステムダウンしたか否かを判定するステップと、1つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第2環境を、前記情報処理装置において待機状態から稼働状態に切り替えるステップと、をさらに含んでもよい。これにより、例えばハードウェア異常により他の情報処理装置がシステムダウンしても、瞬時に自身の情報処理装置に動作が切り替わる。したがって、システム動作に全く影響が及ばず、システム動作が継続可能である。
一実施形態に係る冗長化プログラムは、新たな1つの情報処理装置が前記冗長化システムに備わったか否かを判定するステップと、新たな1つの前記情報処理装置が前記冗長化システムに備わったと判定すると、前記情報処理装置において稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、新たな前記情報処理装置に送信するステップと、送信された前記第1等値化情報に関連付いている前記第1環境を前記情報処理装置から消去するステップと、をさらに含んでもよい。これにより、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置を新たに追加することで負荷が分散され、信頼性及び可用性が向上する。
一実施形態に係る冗長化プログラムにおいて、LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信が行われてもよい。これにより、ソフトウェアに基づく処理を介在せずに、他の情報処理装置への等値化が行われる。したがって、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える2つの前記情報処理装置において動作し、前記第1環境は、1つの仮想環境を含み、前記第2環境は、1つの前記他の情報処理装置において稼働状態にある1つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している仮想環境は、他の情報処理装置に待機状態の仮想環境として等値化される。したがって、一方の情報処理装置が稼働状態に、他方の情報処理装置が待機状態にある従来の二重化システムと比較して、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である集約率が向上する。例えば、1つの情報処理装置に対して1つの稼働状態の仮想環境が構築されている場合、従来の二重化システムであれば、集約率は50%となる。一方で、一実施形態に係る冗長化システムでは、冗長化を構成する2つの情報処理装置それぞれで1つの仮想環境が稼働可能である。したがって、集約率は100%である。以上に加えて、各情報処理装置における負荷バランスが変更される。すなわち、各情報処理装置において負荷が略均等となり、負荷バランスが向上する。
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える3つの前記情報処理装置において動作し、前記第1環境は、2つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している2つの仮想環境が2つの他の情報処理装置にそれぞれ等値化される。したがって、各情報処理装置において複数の仮想環境が稼働状態にある場合でも、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える管理用情報処理装置においても動作し、前記管理用情報処理装置においてユーザからの入力操作を受け付けるステップと、ユーザからの前記入力操作に基づいて冗長化管理情報を変更するステップと、前記冗長化管理情報を前記複数の情報処理装置それぞれに送信するステップと、をさらに含んでもよい。これにより、冗長化システムに含まれる情報処理装置の構成、各情報処理装置に対する仮想環境の関連付け、及び各情報処理装置の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システムでは、稼働を停止させることなく、自在に構成の変更が可能である。
幾つかの実施形態に係る情報処理装置は、冗長化システムを構成する複数の情報処理装置のうちの一の情報処理装置であって、前記一の情報処理装置と異なる他の情報処理装置と通信を行う通信部と、前記一の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、を備え、前記通信部は、前記複数の仮想環境のうち稼働状態にある第1環境に関連付けられた第1等値化情報を、前記他の情報処理装置に送信し、前記他の情報処理装置において稼働状態にある第2環境に関連付けられた第2等値化情報を、前記他の情報処理装置から受信し、前記制御部は、前記通信部が受信した前記第2等値化情報に基づいて、前記第2環境を前記一の情報処理装置に等値化し、前記第1環境を稼働状態に維持し、かつ前記第2環境を待機状態にする。これにより、ハードウェア構成が2つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
本開示によれば、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム、冗長化プログラム、及び情報処理装置を提供可能である。
一実施形態に係る冗長化システムの一例を示すブロック図である。 図1の情報処理装置において2つの仮想環境が稼働状態にある場合の構成例を示す模式図である。 一例として図2の第1情報処理装置がシステムダウンしたときの冗長化システムの動作を示す模式図である。 一例として図3の第2情報処理装置がシステムダウンしたときの冗長化システムの動作を示す模式図である。 一例として図2の冗長化システムに新たな第4情報処理装置が加わったときの冗長化システムの動作を示す模式図である。 図1の制御部の機能をより詳細に示した機能ブロック図である。 等値化処理を高速化する方法を模式的に示した図である。 図2の冗長化システムの動作の第1例を示すフローチャートである。 図2の冗長化システムの動作の第2例を示すフローチャートである。 図2の冗長化システムの動作の第3例を示すフローチャートである。 従来の冗長化システムの一例を示す模式図である。
図11は、従来の冗長化システムの一例を示す模式図である。図11を参照しながら従来技術の内容及び問題点についてより詳細に説明する。
従来、例えば無停止型冗長化システムが知られている。「無停止型冗長化システム」とは、一方の情報処理装置に致命的な異常が発生したときに瞬時にもう一方の情報処理装置に動作を切り替え、システム動作に一切影響を与えることなく動作を継続実行できる冗長化システムを含む。冗長化システムは、市販のOS及びアプリケーションソフトウェア等を改変することなく動作可能である。
従来の冗長化システムは、2つの情報処理装置を有する。各情報処理装置は、1つ以上の仮想環境を管理する。より具体的には、情報処理装置における冗長化プラットフォームがハイパバイザ機能を有し、仮想ハードウェア環境を提供する。1つの仮想ハードウェア環境上では、ゲストOS及びアプリケーションソフトウェアが動作する。
従来の冗長化システムでは、冗長化プラットフォーム上で複数の仮想環境が稼働することで、機能の集約化と、高信頼性及び高可用性との両立が可能となる。加えて、OS及びアプリケーションソフトウェアに依存しない冗長化システムが実現可能である。したがって、従来の冗長化システムによれば、様々な分野のシステムに応用可能な、高信頼性及び高可用性システムが構築される。また、従来の冗長化システムによれば、仮想環境全体を冗長化の対象とするため、無停止型冗長化システムが実現される。
従来の冗長化システムにおいて、一の情報処理装置は稼働状態にあり、他の情報処理装置は待機状態にある。稼働状態にある一の情報処理装置では、仮想環境上のソフトウェアが動作する。一の情報処理装置の等値化機能により、一の情報処理装置の仮想環境への変更が、等値化バスを通じて、待機状態にある他の情報処理装置の対応する仮想環境に逐次等値化される。「仮想環境への変更」は、メモリ及び各デバイス等への書き込み等を含む。
待機状態にある他の情報処理装置の仮想環境は、常に一の情報処理装置の対応する仮想環境と同一の状態に維持される。一の情報処理装置に異常が発生すると、他の情報処理装置の制御権切替機能により、一の情報処理装置が切り離され、他の情報処理装置の全ての仮想環境が稼働状態に切り替えられる。これにより、一の情報処置装置で実行していた仮想環境の稼働が、他の情報処理装置において継続される。
このような従来の冗長化システムでは、ハードウェア構成が2つの情報処理装置によるペアによって固定される。したがって、2つの情報処理装置によって得られる可用性以上の可用性を得ることは困難である。また、従来の冗長化システムは、1つの情報処理装置の故障には対応可能であるが、2つの情報処理装置の故障には対応できない。
従来の冗長化システムでは、ハードウェア構成が2つの情報処理装置によるペアによって固定されるため、システムの成長に合わせて、冗長化システムの規模をダイナミックに拡張することが困難である。さらに、アプリケーション容量及びデータ容量の増加に合わせて、ハードウェアを追加する等のシステム構成の柔軟な変更が困難である。
従来の冗長化システムでは、アーキテクチャ上、1つの情報処理装置において複数の仮想環境が稼働可能であるが、等値化に関するデータ量が増大し、パフォーマンスが劣化する。したがって、多くの仮想環境を稼働させることは困難である。動作させるアプリケーションソフトウェアの規模によるが、1つの情報処理装置に対して2つ程度の仮想環境を稼働させることが現実的である。これにより、集約率の向上が困難となり、システムコストの低減が妨げられる。「集約率」とは、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である。
近年、IoT(Internet of Things)及びAI(Artificial Intelligence)等の技術革新のスピードは目覚ましく、制御システムにおいてもこれらを活用した生産効率の向上及び安全安定操業に対する要求が非常に高まっている。このような状況から、パーソナルコンピュータ等を含む情報処理装置が使用される上位系システムの重要性は増している。そのため、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能で、信頼性及び可用性がさらに向上するシステムが求められている。
本開示は、上記の問題点を解決するために、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム及び冗長化プログラムを提供することを目的とする。本開示の一実施形態に係る冗長化システム及び冗長化プログラムは、例えば無停止型冗長化システムに応用可能である。
以下、添付図面を参照しながら本開示の一実施形態について主に説明する。
図1は、一実施形態に係る冗長化システム1の一例を示すブロック図である。図1に示すとおり、冗長化システム1は、例えば、第1情報処理装置10aと、第2情報処理装置10bと、第3情報処理装置10cと、管理用情報処理装置20とを有する。以下、第1情報処理装置10a、第2情報処理装置10b、及び第3情報処理装置10cを互いに区別しない場合、まとめて「情報処理装置10」と表記する。情報処理装置10は、ネットワーク30を介して管理用情報処理装置20と通信接続されている。情報処理装置10は、任意のペア間通信によって互いに通信接続されている。このようなペア間通信は、ネットワーク30とは独立して行われてもよいし、ネットワーク30を介して行われてもよい。
ネットワーク30は、インターネット及びローカルエリアネットワーク等の任意のネットワークを含む。ネットワーク30は、無線及び有線、並びにこれらの組み合わせのいずれかによって構成されていてもよい。
管理用情報処理装置20は、ネットワーク30を介して情報処理装置10を管理可能な任意の情報処理機器を含む。管理用情報処理装置20は、ネットワーク30を介して行われる情報処理装置10の管理に特化した専用の情報処理機器であってもよいし、携帯電話、スマートフォン、タブレットPC、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器であってもよい。
管理用情報処理装置20は、例えば、情報処理装置10で動作する冗長化プラットフォームの設定の編集及びダウンロード等のコンフィギュレーションを実行する。管理用情報処理装置20は、例えば、情報処理装置10で稼働する仮想環境の稼働状態を監視する。管理用情報処理装置20は、例えば、仮想環境の起動、停止、及び稼働状態の切り替え等を含む操作指令を情報処理装置10に送る。管理用情報処理装置20は、例えば、情報処理装置10に関連付ける仮想環境を後述する冗長化管理情報に定義する。
管理用情報処理装置20は、ネットワーク30に通信接続されている複数の情報処理装置10の負荷バランスを監視してもよい。管理用情報処理装置20は、複数の情報処理装置10の負荷バランスが不均等であると判定すると、自動的に負荷バランスを調整してもよい。例えば、管理用情報処理装置20は、複数の情報処理装置10のうちの一の情報処理装置10の負荷が低く、他の情報処理装置10の負荷が高い場合、他の情報処理装置10に関連付けられた仮想環境を一の情報処理装置10に関連付けるよう後述する冗長化管理情報を更新してもよい。
情報処理装置10は、冗長化プラットフォームを有する任意の情報処理機器を含む。情報処理装置10は、冗長化システム1の構成に特化した専用の情報処理機器であってもよいし、携帯電話、スマートフォン、タブレットPC、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器であってもよい。情報処理装置10は、後述する複数の仮想環境を稼働させることが可能なマシンパワーを有してもよい。
第1情報処理装置10aは、通信部11aと、記憶部12aと、制御部13aとを有する。第2情報処理装置10bは、通信部11bと、記憶部12bと、制御部13bとを有する。第3情報処理装置10cは、通信部11cと、記憶部12cと、制御部13cとを有する。以下、通信部11a、通信部11b、及び通信部11cを互いに区別しない場合、まとめて「通信部11」と表記する。記憶部12a、記憶部12b、及び記憶部12cを互いに区別しない場合、まとめて「記憶部12」と表記する。制御部13a、制御部13b、及び制御部13cを互いに区別しない場合、まとめて「制御部13」と表記する。
通信部11は、任意の通信プロトコルに対応した任意の通信インタフェースを含む。通信部11は、ネットワーク30を介して管理用情報処理装置20と通信接続可能である。通信部11は、任意のペア間通信プロトコルに対応した任意の通信インタフェースをさらに含む。一の通信部11は、当該一の通信部11が配置されている自身の情報処理装置10と2つの他の情報処理装置10との通信接続をそれぞれ可能にする。通信部11は、ペアとなる他の情報処理装置10への等値化及び診断通信の要求を制御部13から受け、他の情報処理装置10に中継を行う。
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、及びRAM(Random Access Memory)等の任意の記憶装置を含み、後述する冗長化システム1の動作を実現するために必要な情報を記憶する。記憶部12は、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部12は、情報処理装置10に内蔵されているものに限定されず、USB等のデジタル入出力ポート等によって接続されている外付け型の記憶装置であってもよい。
制御部13は、1つ以上のプロセッサを含む。より具体的には、制御部13は、汎用のプロセッサ及び特定の処理に特化した専用のプロセッサ等の任意のプロセッサを含む。制御部13は、例えば、携帯電話、スマートフォン、タブレットPC、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器等に搭載されたプロセッサ、並びに冗長化システム1の構成に特化した専用の情報処理機器に搭載されたプロセッサを含んでもよい。制御部13は、制御部13が配置されている自身の情報処理装置10において稼働可能な複数の仮想環境を管理する。
図2は、図1の情報処理装置10において2つの仮想環境が稼働状態にある場合の構成例を示す模式図である。図2を参照しながら、冗長化システム1における冗長化動作の一例を主に説明する。初めに、冗長化システム1の定常動作について主に説明する。
図2に示す例では、各情報処理装置10上に、冗長化プラットフォームが構成され、各冗長化プラットフォーム上に、4つの仮想環境が構築されている。具体的には、第1情報処理装置10aには、仮想環境VM1、VM2、VM3、VM6という4つの仮想環境が構築されている。また、第2情報処理装置10bには、仮想環境VM3、VM4、VM1、VM5という4つの仮想環境が構築されている。また、第3情報処理装置10cには、仮想環境VM5、VM6、VM4、VM2という4つの仮想環境が構築されている。
制御部13は、通信部11を介して管理用情報処理装置20から冗長化管理情報をダウンロードする。制御部13は、ダウンロードした冗長化管理情報に基づいて、稼働仮想環境及び待機仮想環境の制御、並びに他の情報処理装置10へ等値化を行うための通信管理を行う。ここで、「稼働仮想環境」は、稼働状態にある仮想環境をいう。また、「待機仮想環境」は、待機状態にある仮想環境をいう。「冗長化管理情報」は、情報処理装置10における稼働仮想環境及び待機仮想環境の情報を含む。例えば各情報処理装置10が図2のように構成される場合、冗長化管理情報は、以下の表1に示すようなリストとして定義される。このような冗長化管理情報は、例えば管理用情報処理装置20からダウンロードされた後、記憶部12に格納される。
Figure 0007332280000001
表1は、各情報処理装置10における、仮想環境の制御状態を示す。表1において、「稼働」と記載されている欄は、情報処理装置10における仮想環境が稼働仮想環境で制御されていることを示す。表1において、「待機」と記載されている欄は、情報処理装置10における仮想環境が待機仮想環境で制御されていることを示す。表1において、「―」と記載されている欄は、情報処理装置10が、その仮想環境を有さないことを示す。
冗長化システム1の定常動作では、例えば、第1情報処理装置10aの制御部13aは、2つの仮想環境VM1、VM2を稼働状態に維持する。冗長化システム1は、第1情報処理装置10aがシステムダウンした場合に備えて、第1情報処理装置10aにおける稼働仮想環境VM1、VM2を、他の第2情報処理装置10b及び第3情報処理装置10cに等値化する。図2の例では、冗長化システム1は、稼働仮想環境VM1を第2情報処理装置10bに等値化する。冗長化システム1は、稼働仮想環境VM2を第3情報処理装置10cに等値化する。
より具体的には、制御部13aは、通信部11aに、自身の第1情報処理装置10aにおいて稼働状態にある稼働仮想環境VM1、VM2に関連付けられた等値化情報を、他の第2情報処理装置10b及び第3情報処理装置10cにそれぞれ送信させる。「等値化情報」は、稼働仮想環境VM1、VM2それぞれの稼働に伴ってこれらの状態が変化し、冗長化プラットフォームで管理している仮想環境のメモリ領域に書き込みアクセスが発生することで生じる、メモリ内容の変更差分を含む。「等値化情報」は、後述する、LANカードのリモートダイレクトメモリアクセス(Remote Direct Memory Access: RDMA)機能を用いる場合に取得されるアドレスリストを含む。その他、「等値化情報」は、稼働仮想環境VM1、VM2が稼働状態にあることで生じる任意の仮想ハードウェアの変更差分を含む。
第2情報処理装置10bの制御部13bは、通信部11bに、第1情報処理装置10aにおいて稼働状態にある稼働仮想環境VM1に関連付けられた等値化情報を、第1情報処理装置10aから受信させる。制御部13bは、通信部11bが受信した等値化情報に基づいて、仮想環境VM1を自身の第2情報処理装置10bに等値化する。
同様に、第3情報処理装置10cの制御部13cは、通信部11cに、第1情報処理装置10aにおいて稼働状態にある稼働仮想環境VM2に関連付けられた等値化情報を、第1情報処理装置10aから受信させる。制御部13cは、通信部11cが受信した等値化情報に基づいて、仮想環境VM2を自身の第3情報処理装置10cに等値化する。
第2情報処理装置10b及び第3情報処理装置10cにそれぞれ等値化された仮想環境VM1及び仮想環境VM2は、第1情報処理装置10aがシステムダウンした場合に備え待機状態にある。このとき、第1情報処理装置10aと、第2情報処理装置10b及び第3情報処理装置10cとの間では、高速に等値化処理だけが実行されている。
稼働仮想環境VM1、VM2から待機仮想環境VM1、VM2への等値化は、それぞれ、従来技術を含む任意の方法により実行されてもよい。冗長化システム1は、稼働仮想環境VM1、VM2を稼働させながら、仮想ハードウェアに生じる差分を待機仮想環境VM1、VM2にそれぞれ所定の周期で等値化する。このように、一実施形態に係る冗長化システム1は、従来技術と異なり、等値化対象とする情報処理装置10を2つ以上有することも可能である。
第1情報処理装置10aを用いて説明した、上記の冗長化動作に関する説明は、第2情報処理装置10b及び第3情報処理装置10cに対しても同様に適用される。
例えば、第2情報処理装置10bの制御部13bは、2つの稼働仮想環境VM3、VM4を稼働状態に維持する。冗長化システム1は、第2情報処理装置10bがシステムダウンした場合に備えて、第2情報処理装置10bにおける稼働仮想環境VM3、VM4を、他の第1情報処理装置10a及び第3情報処理装置10cにそれぞれ等値化する。
より具体的には、制御部13bは、通信部11bに、自身の第2情報処理装置10bにおいて稼働状態にある稼働仮想環境VM3、VM4に関連付けられた等値化情報を、他の第1情報処理装置10a及び第3情報処理装置10cにそれぞれ送信させる。
第1情報処理装置10aの制御部13aは、通信部11aに、他の第2情報処理装置10bにおいて稼働状態にある稼働仮想環境VM3に関連付けられた等値化情報を、他の第2情報処理装置10bから受信させる。制御部13aは、通信部11aが受信した等値化情報に基づいて、仮想環境VM3を自身の第1情報処理装置10aに等値化する。
同様に、第3情報処理装置10cの制御部13cは、通信部11cに、他の第2情報処理装置10bにおいて稼働状態にある稼働仮想環境VM4に関連付けられた等値化情報を、他の第2情報処理装置10bから受信させる。制御部13cは、通信部11cが受信した等値化情報に基づいて、仮想環境VM4を自身の第3情報処理装置10cに等値化する。
第1情報処理装置10a及び第3情報処理装置10cにそれぞれ等値化された仮想環境VM3及び仮想環境VM4は、第2情報処理装置10bがシステムダウンした場合に備え待機状態にある。
例えば、第3情報処理装置10cの制御部13cは、2つの稼働仮想環境VM5、VM6を稼働状態に維持する。冗長化システム1は、第3情報処理装置10cがシステムダウンした場合に備えて、第3情報処理装置10cにおける稼働仮想環境VM5、VM6を、他の第2情報処理装置10b及び第1情報処理装置10aにそれぞれ等値化する。
より具体的には、制御部13cは、通信部11cに、自身の第3情報処理装置10cにおいて稼働状態にある稼働仮想環境VM5、VM6に関連付けられた等値化情報を、他の第2情報処理装置10b及び第1情報処理装置10aにそれぞれ送信させる。
第2情報処理装置10bの制御部13bは、通信部11bに、他の第3情報処理装置10cにおいて稼働状態にある稼働仮想環境VM5に関連付けられた等値化情報を、他の第3情報処理装置10cから受信させる。制御部13bは、通信部11bが受信した等値化情報に基づいて、仮想環境VM5を自身の第2情報処理装置10bに等値化する。
同様に、第1情報処理装置10aの制御部13aは、通信部11aに、他の第3情報処理装置10cにおいて稼働状態にある稼働仮想環境VM6に関連付けられた等値化情報を、他の第3情報処理装置10cから受信させる。制御部13aは、通信部11aが受信した等値化情報に基づいて、仮想環境VM6を自身の第1情報処理装置10aに等値化する。
第2情報処理装置10b及び第1情報処理装置10aにそれぞれ等値化された仮想環境VM5及び仮想環境VM6は、第3情報処理装置10cがシステムダウンした場合に備え待機状態にある。
以上のように、制御部13aは、仮想環境VM1、VM2を稼働状態に維持し、かつ仮想環境VM3、VM6を待機状態にする。制御部13bは、仮想環境VM3、VM4を稼働状態に維持し、かつ仮想環境VM1、VM5を待機状態にする。制御部13cは、仮想環境VM5、VM6を稼働状態に維持し、かつ仮想環境VM2、VM4を待機状態にする。
図3は、一例として図2の第1情報処理装置10aがシステムダウンしたときの冗長化システム1の動作を示す模式図である。図3を参照しながら、第1情報処理装置10aにおいてシステムダウンが発生したときの切替動作について主に説明する。以下の説明は、第2情報処理装置10b又は第3情報処理装置10cがシステムダウンしたときにも同様に適用される。
例えば、第1情報処理装置10aがハードウェア異常によりシステムダウンを起こすと、第2情報処理装置10bの制御部13b、及び第3情報処理装置10cの制御部13cは、第1情報処理装置10aがシステムダウンしたと判定する。このとき、制御部13b及び制御部13cは、第1情報処理装置10aにおいて稼働状態にあった仮想環境VM1、VM2を、自身の情報処理装置10においてそれぞれ待機状態から稼働状態に切り替える。これにより、第1情報処理装置10aにおいて稼働状態にあった仮想環境VM1、VM2の稼働が継続される。
このとき、第1情報処理装置10aが切り離され、それによって、冗長化システム1を構成する情報処理装置10の数が2つに変更される。すなわち、第2情報処理装置10b及び第3情報処理装置10cのみが稼働状態にある。そこで、第2情報処理装置10b又は第3情報処理装置10cがさらにシステムダウンする場合に備えて、冗長化システム1は、第2情報処理装置10b及び第3情報処理装置10cの間で各仮想環境を等値化する。より具体的には、第2情報処理装置10bにおいて、仮想環境VM2、VM6が新たに構築され、第3情報処理装置10cにおいて、仮想環境VM1、VM3が新たに構築される。そして、上述した冗長化システム1の定常動作における制御部13の制御と同様の制御に基づいて、制御部13bは、第3情報処理装置10cにおける稼働仮想環境VM2、VM5、VM6を第2情報処理装置10bに等値化する。同様に、制御部13cは、第2情報処理装置10bにおける稼働仮想環境VM1、VM3、VM4を第3情報処理装置10cに等値化する。
図4は、一例として図3の第2情報処理装置10bがさらにシステムダウンしたときの冗長化システム1の動作を示す模式図である。図4を参照しながら、第1情報処理装置10a及び第2情報処理装置10bの両方においてシステムダウンが発生したときの切替動作について主に説明する。以下の説明は、3つの情報処理装置10のうちの任意の2つの情報処理装置10がシステムダウンしたときにも同様に適用される。
例えば、第1情報処理装置10a及び第2情報処理装置10bがハードウェア異常によりシステムダウンを起こすと、第3情報処理装置10cの制御部13cは、第1情報処理装置10a及び第2情報処理装置10bがシステムダウンしたと判定する。このとき、制御部13cは、第2情報処理装置10bにおいて稼働状態にあった仮想環境VM1、VM3、VM4を、自身の第3情報処理装置10cにおいて待機状態から稼働状態に切り替える。これにより、第2情報処理装置10bにおいて稼働状態にあった仮想環境VM1、VM3、VM4の稼働が継続される。
このとき、第3情報処理装置10cでは、制御部13cは、6つの稼働仮想環境VM1、VM2、VM3、VM4、VM5、VM6を稼働させる。したがって、このような場合、第3情報処理装置10cは、6つの仮想環境を稼働させることが可能なマシンパワーを有する。
図4に示すように第3情報処理装置10cのみが稼働している状態において、第2情報処理装置10bがシステムダウンから復旧した場合、冗長化システム1は、第3情報処理装置10cの稼働仮想環境VM1、VM2、VM3、VM4、VM5、VM6を第2情報処理装置10bに等値化する。より具体的には、上述した冗長化システム1の定常動作における制御部13の制御と同様の制御に基づいて、制御部13bは、第3情報処理装置10cにおける稼働仮想環境VM1、VM2、VM3、VM4、VM5、VM6を第2情報処理装置10bに等値化する。等値化が完了したら、制御部13bは、例えば図3の状態のとおり、仮想環境VM1、VM3、VM4を稼働状態にし、仮想環境VM2、VM5、VM6を待機状態にする。このとき、第3情報処理装置10cの制御部13cは、稼働仮想環境VM1、VM3、VM4を待機状態に切り替える。なお、第2情報処理装置10b及び第3情報処理装置10cにおいて、稼働状態にする仮想環境及び待機状態に切り替える仮想環境は、管理用情報処理装置20から取得した冗長化管理情報に基づいてそれぞれ任意に設定可能である。
図3に示すように第2情報処理装置10b及び第3情報処理装置10cが稼働している状態で、第1情報処理装置10aがシステムダウンからさらに復旧した場合、冗長化システム1は、同様の動作を行い、図2に示す定常動作の構成に戻す。
図5は、一例として図2の冗長化システム1に新たな第4情報処理装置10dが加わったときの冗長化システム1の動作を示す模式図である。図5を参照しながら、冗長化システム1に新たな第4情報処理装置10dが加わったときの切替動作について主に説明する。図5は、3つの情報処理装置10を含む冗長化システム1が稼働を継続しながら、新たな第4情報処理装置10dの追加に伴って負荷バランスを調整する様子を示す。
このとき、管理用情報処理装置20は、例えばユーザからの入力操作に基づいて、表1の冗長化管理情報に第4情報処理装置10dを追加する。例えば、第1情報処理装置10a及び第3情報処理装置10cのパフォーマンスが不足している場合、管理用情報処理装置20は、第1情報処理装置10aの稼働仮想環境VM2と第3情報処理装置10cの稼働仮想環境VM6とを第4情報処理装置10dに関連付ける。これに伴い、管理用情報処理装置20は、情報処理装置10に等値化する待機仮想環境の関連付けも変更する。例えば、管理用情報処理装置20は、待機仮想環境VM5の関連付けを第2情報処理装置10bから第4情報処理装置10dに変更する。その後、管理用情報処理装置20は、変更された冗長化管理情報を情報処理装置10に送信する。
冗長化システム1は、情報処理装置10にダウンロードされた冗長化管理情報に基づいて、第1情報処理装置10aの稼働仮想環境VM2と第3情報処理装置10cの稼働仮想環境VM6とを第4情報処理装置10dに等値化する。より具体的には、第4情報処理装置10dは、受信した冗長化管理情報に基づいて初めに待機仮想環境VM2、VM6を構築する。制御部13aは、新たな第4情報処理装置10dが冗長化システム1に備わったと判定し、通信部11aに、第1情報処理装置10aにおいて稼働状態にある仮想環境VM2に関連付けられた等値化情報を、第4情報処理装置10dに送信させる。同様に、制御部13cは、新たな第4情報処理装置10dが冗長化システム1に備わったと判定し、通信部11cに、第3情報処理装置10cにおいて稼働状態にある仮想環境VM6に関連付けられた等値化情報を、第4情報処理装置10dに送信させる。第4情報処理装置10dは、通信部11a及び通信部11cから受信した等値化情報に基づいて、対応する稼働仮想環境を第4情報処理装置10dの待機仮想環境VM2、VM6にそれぞれ等値化する。
そして、制御部13aは、第1情報処理装置10aにおいて稼働状態にある仮想環境VM2を待機状態に切り替える。同様に、制御部13cは、第3情報処理装置10cにおいて稼働状態にある仮想環境VM6を待機状態に切り替える。一方で、第4情報処理装置10dは、等値化された待機仮想環境VM2、VM6を稼働状態に切り替える。第4情報処理装置10dは、稼働仮想環境VM2、VM6に関連付けられた等値化情報を、第3情報処理装置10c及び第1情報処理装置10aにそれぞれ送信する。制御部13aは、受信した等値化情報に基づいて、第4情報処理装置10dの稼働仮想環境VM6を待機仮想環境VM6として等値化する。制御部13cは、受信した等値化情報に基づいて、第4情報処理装置10dの稼働仮想環境VM2を待機仮想環境VM2として等値化する。
加えて、制御部13cは、通信部11cに、第3情報処理装置10cにおいて稼働状態にある仮想環境VM5に関連付けられた等値化情報を、第4情報処理装置10dに送信させる。第4情報処理装置10dは、等値化された仮想環境VM5を待機状態にする。
制御部13は、通信部11から送信された等値化情報に関連付いている仮想環境を自身の情報処理装置10から消去する。より具体的には、制御部13aは、上述したステップにより稼働状態から待機状態に切り替えられた仮想環境VM2を消去する。制御部13cは、上述したステップにより稼働状態から待機状態に切り替えられた仮想環境VM6を消去する。加えて、冗長化システム1は、冗長化管理情報に基づいて、情報処理装置10の待機仮想環境を図5に示すとおりに変更する。例えば、制御部13bは、待機仮想環境VM5を消去する。以上により、冗長化システム1は、柔軟にシステム規模を変更可能であり、情報処理装置10の負荷が軽減され、システムパフォーマンスが向上する。
図6は、図1の制御部13の機能をより詳細に示した機能ブロック図である。図6を参照しながら、制御部13の機能についてより詳細に説明する。制御部13は、例えば、冗長化管理部131、仮想化等値化部132、ミラードディスク管理部133、診断部134、及び等値化バス診断部135を有する。
冗長化管理部131は、冗長化プラットフォームの状態管理を行う。冗長化管理部131は、管理用情報処理装置20からダウンロードされた冗長化管理情報に基づいて、稼働仮想環境及び待機仮想環境の制御、並びに他の情報処理装置10へ等値化を行うための通信管理を実行する。冗長化管理部131は、例えば、図2の定常動作において、所定の仮想環境を稼働状態に維持し、かつ他の仮想環境を待機状態にする。冗長化管理部131は、例えば、他の情報処理装置10がシステムダウンしたと判定すると、自身の情報処理装置10における待機仮想環境を稼働状態に切り替える。このとき、冗長化管理部131は、システムダウンした情報処理装置10を切り離すように仮想化等値化部132に指示する。同様に、冗長化管理部131は、システムダウンした情報処理装置10を切り離すように、仮想化等値化部132を介してミラードディスク管理部133に指示する。その他、冗長化管理部131は、仮想化等値化部132及びミラードディスク管理部133に、等値化を実行するように指示する。
冗長化管理部131は、新たな1つの情報処理装置10が冗長化システム1に備わったと判定すると、稼働状態にある仮想環境に関連付けられた等値化情報を、新たな情報処理装置10に通信部11を用いて送信するように、仮想化等値化部132に指示する。冗長化管理部131は、通信部11から送信された等値化情報に関連付いている仮想環境を自身の情報処理装置10から消去する。
仮想化等値化部132は、ゲストOSに仮想ハードウェア環境を提供する。仮想化等値化部132は、メモリ及び各デバイス等を含む仮想ハードウェアの変更内容を所定の周期で監視する。仮想化等値化部132は、通信部11を用いて、変更差分を等値化情報として他の情報処理装置10に送信させる。等値化情報は、通信部11のペア間通信機能により、例えば冗長化構成をとる他の情報処理装置10の仮想化等値化部132に送信される。仮想化等値化部132は、受信した等値化情報に基づいて、対応する仮想環境を自身の情報処理装置10に等値化する。以上により、他の情報処理装置10との冗長化動作が実現される。
ミラードディスク管理部133は、各仮想環境に関連付けられているHDDに基づく補助記憶を稼働仮想環境及び待機仮想環境の間でミラーリングする。異なる情報処理装置10において、互いに対応する稼働仮想環境及び待機仮想環境間で常にHDDを一致させることで、冗長化システム1は、切り替え後もHDDの内容を継承することができる。
診断部134は、自身の情報処理装置10の診断を行う。診断部134には、他の機能部が検知した異常も併せて通知される。診断部134は、異常をレベル毎にカテゴライズし、冗長化管理部131に通知する。
等値化バス診断部135は、情報処理装置10間を結ぶ等値化バスを診断する。等値化バスは信頼性が要求されるため、例えば2重化されたネットワークにより構成される。等値化バス診断部135は、高速に診断を行い、一方の等値化バスの異常を検知すると、もう一方のバスへの切り替えを実行する。等値化バス診断部135は、ペアとなる情報処理装置10の診断も行い、ペアとなる情報処理装置10のシステムダウンを検知すると、診断部134に異常を通知し、冗長化管理部131が上述した切替処理を行う。
図7は、等値化処理を高速化する方法を模式的に示した図である。図7を参照しながら、冗長化システム1において等値化処理を高速化する方法について主に説明する。図7では、第1情報処理装置10a及び第2情報処理装置10bの場合を一例として示しているが、以下と同様の説明が、情報処理装置10の他の任意の組にも適用される。
冗長化システム1は、稼働仮想環境から、対応する待機仮想環境へ、仮想環境の変更差分を高速に等値化する必要がある。稼働仮想環境の稼働に伴って、仮想環境の状態が変化し、冗長化プラットフォームで管理している仮想環境のメモリ領域に書き込みアクセスが発生する。これにより、メモリ内容が変化する。
ソフトウェア方式を用いた従来の冗長化では、このような等値化処理をソフトウェアで行うため、オーバヘッドが大きく、シングルシステムに対し、パフォーマンスが劣化するという問題があった。例えば、ソフトウェア方式を用いた場合、稼働仮想環境を監視している第1情報処理装置10aの仮想化等値化部132は、メモリ内容の変更差分を検出し、第2情報処理装置10bの仮想化等値化部132にこのメモリ差分を転送する。第2情報処理装置10bの仮想化等値化部132は、転送された情報に基づいて等値化を行う。このような場合、上記のメモリ差分の転送を仮想化等値化部132のソフトウェアが行うため、以下の2つの処理が発生する。1つは、MMU(Memory Management Unit)がページ単位で管理しているメモリのダーティページ、すなわち書き込みアクセスが発生したページの内容を自身の転送用バッファにコピーする処理である。もう1つは、TCPIPにより、転送用バッファの内容を第2情報処理装置10bに転送する処理である。当該処理においても、例えば通信ドライバの内部でメモリバッファコピーが発生する。以上により、メモリ差分の転送処理に多くのCPUパワーが用いられる。
一実施形態に係る冗長化システム1は、上記のソフトウェアに基づく処理を介在せずに、第2情報処理装置10bに等値化を行ってもよい。これにより、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。したがって、稼働仮想環境のパフォーマンスが大幅に向上する。
一実施形態に係る冗長化システム1における等値化には、LANカードに実装されているRDMA機能が利用されてもよい。すなわち、通信部11は、LANカードに実装されているRDMA機能を用いて各情報の送受信を行ってもよい。
このとき、仮想化等値化部132は、MMUのダーティページを参照し、書き込みが行われたメモリページのアドレスリストを取得してもよい。仮想化等値化部132は、アドレスのみを参照し、データの内容を参照しない。これにより、メモリ転送が発生しない。
取得したアドレスリストは、LANカードのRDMA機能を用いて、第2情報処理装置10bに転送されてもよい。第1情報処理装置10aのLANカードのRDMA機能により、ソフトウェアを介在することなく、与えられたアドレスリストのメモリ内容が第2情報処理装置10bのRDMA機能を有するLANカードに転送されてもよい。
制御部13bは、第2情報処理装置10bのRDMA機能を用いて、転送されたデータがメモリの指定アドレスにコピーされ、第1情報処理装置10aと第2情報処理装置10bとのメモリ内容が等値化されるように通信部11bを制御してもよい。
図8は、図2の冗長化システム1の動作の第1例を示すフローチャートである。図8では、一の情報処理装置10の制御部13のみに着目したときの、冗長化システム1の定常動作が示されている。図8を参照しながら、冗長化システム1の定常動作のフローを主に説明する。
ステップS101では、3つの情報処理装置10のそれぞれの情報処理装置10において、制御部13は、稼働状態にある稼働仮想環境に関連付けられた等値化情報を他の情報処理装置10に送信させる。
ステップS102では、制御部13は、他の情報処理装置10において稼働状態にある稼働仮想環境に関連付けられた等値化情報を他の情報処理装置10から受信させる。
ステップS103では、制御部13は、ステップS102で受信した等値化情報に基づいて、他の情報処理装置10における稼働仮想環境を自身の情報処理装置10に等値化する。
ステップS104では、制御部13は、自身の情報処理装置10において、稼働仮想環境を稼働状態に維持し、かつ等値化された仮想環境を待機状態にする。
図9は、図2の冗長化システム1の動作の第2例を示すフローチャートである。図9では、一の情報処理装置10の制御部13のみに着目したときの冗長化システム1の動作が示されている。図9を参照しながら、冗長化システム1において1つの情報処理装置10がシステムダウンしたときの切替動作について主に説明する。
ステップS201では、制御部13は、1つの他の情報処理装置10がシステムダウンしたか否かを判定する。1つの他の情報処理装置10がシステムダウンしたと制御部13が判定すると、フローはステップS202に進む。1つの他の情報処理装置10がシステムダウンしていないと制御部13が判定すると、フローはステップS201に戻る。
ステップS202では、制御部13は、1つの他の情報処理装置10がシステムダウンしたと判定すると、他の情報処理装置10において稼働状態にあった、対応する待機仮想環境を、自身の情報処理装置10において待機状態から稼働状態に切り替える。
図10は、図2の冗長化システム1の動作の第3例を示すフローチャートである。図10では、一の情報処理装置10の制御部13のみに着目したときの冗長化システム1の動作が示されている。図10を参照しながら、冗長化システム1に新たな第4情報処理装置10dが加わったときの切替動作について主に説明する。
ステップS301では、制御部13は、新たな1つの第4情報処理装置10dが冗長化システム1に備わったか否かを判定する。第4情報処理装置10dが冗長化システム1に備わったと制御部13が判定すると、フローはステップS302に進む。第4情報処理装置10dが冗長化システム1に備わっていないと制御部13が判定すると、フローはステップS301に戻る。
ステップS302では、制御部13は、新たな1つの第4情報処理装置10dが冗長化システム1に備わったと判定すると、自身の情報処理装置10において稼働状態にある稼働仮想環境に関連付けられた等値化情報を、新たな第4情報処理装置10dに送信する。
ステップS303では、制御部13は、ステップS302において送信された等値化情報に関連付いている稼働仮想環境を自身の情報処理装置10から消去する。
以上のような一実施形態に係る冗長化システム1によれば、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する。
より具体的には、冗長化システム1では、図5を参照しながら説明したとおり、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置10を追加することで負荷が分散され、信頼性及び可用性が向上する。このように、冗長化システム1は、持続的に成長可能である。
冗長化システム1では、管理用情報処理装置20が例えばユーザからの入力操作に基づいて表1の冗長化管理情報を変更することで、冗長化システム1に含まれる情報処理装置10の構成、各情報処理装置10に対する仮想環境の関連付け、及び各情報処理装置10の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システム1では、稼働を停止させることなく、自在に構成の変更が可能である。このような自在な構成変更により、稼働を停止させることなく、可用性の向上及び負荷バランスの変更が可能である。
2つの情報処理装置により構成されたいわゆる二重化システムを含む従来の冗長化システムと異なり、一実施形態に係る冗長化システム1では、システムに要求される信頼性及び可用性の重要度、並びにコストに応じて3つ以上の情報処理装置10を含むシステムを構築することも可能である。3つ以上の情報処理装置10を含むようにシステムを構成した場合、例えばハードウェア異常により2つ以上の情報処理装置10がシステムダウンしても、システム動作に全く影響が及ばず、システム動作が継続可能である。したがって、システムの可用性が飛躍的に向上する。
二重化システムを含む従来の冗長化システムでは、例えば、稼働する仮想環境が1つである場合、集約率は50%となるが、一実施形態に係る冗長化システム1では、冗長化を構成する全ての情報処理装置10でソフトウェア及び1つ以上の仮想環境が稼働可能である。したがって、集約率は100%以上である。これにより、集約率の向上と可用性の向上とが両立可能であり、コストパフォーマンスが向上する。
本開示を諸図面及び実施形態に基づいて説明してきたが、当業者であれば本開示に基づき種々の変形及び修正を行うことが容易であることに注意されたい。したがって、これらの変形及び修正は本開示の範囲に含まれることに留意されたい。例えば、各手段又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段又はステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
例えば、本開示は、上述した冗長化システム1の各機能を実現する処理内容を記述したプログラム又はプログラムを記録した記憶媒体としても実現し得る。本開示の範囲には、これらも包含されると理解されたい。
上記では、冗長化システム1における等値化には、LANカードに実装されているRDMA機能が利用されてもよいとして説明したが、等値化方法は、これに限定されず、任意の方法を含んでもよい。例えば、冗長化システム1における等値化方法は、ソフトウェア方式を用いた従来の冗長化に基づく方法を含んでもよい。
上記では、各情報処理装置10において、稼働仮想環境及び待機仮想環境それぞれが2つの仮想環境を含むとして説明したが、それぞれに含まれる仮想環境の数は任意の数であってもよい。例えば、各情報処理装置10において、稼働仮想環境が1つの仮想環境を含み、待機仮想環境が、1つの他の情報処理装置10において稼働状態にある1つの仮想環境を含んでもよい。例えば、各情報処理装置10において、稼働仮想環境が1つの仮想環境を含み、待機仮想環境が、2つの他の情報処理装置10においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。この場合、各情報処理装置10の1つの稼働仮想環境が2つの他の情報処理装置10それぞれに等値化されるので、1つの他の情報処理装置10のみに等値化される場合と比較して、信頼性及び可用性がさらに向上する。
上記では、各情報処理装置10における2つの稼働仮想環境は、異なる他の情報処理装置10にそれぞれ等値化されるとして説明したが、等値化の方法はこれに限定されない。例えば、各情報処理装置10における2つの稼働仮想環境が、同一の他の情報処理装置10にそれぞれ等値化されてもよい。
上記では、冗長化システム1は3つの情報処理装置10を有するとして説明したが、冗長化システム1に含まれる情報処理装置10の数はこれに限定されない。冗長化システム1に含まれる情報処理装置10の数は2つであってもよいし、4つ以上であってもよい。情報処理装置10の数が2つの場合であっても、各情報処理装置10の稼働仮想環境を他の情報処理装置10に待機仮想環境として等値化することで、一方の情報処理装置10が稼働状態に、他方の情報処理装置10が待機状態にある従来の二重化システムと比較して、各情報処理装置10における負荷バランスが変更される。すなわち、各情報処理装置10において負荷が略均等となり、負荷バランスが向上する。
上記では、図2及び図5等に示すとおり、冗長化システム1を構成する複数の情報処理装置10それぞれにおいて、同数の仮想環境が構築されているとして説明したが、各情報処理装置10における仮想環境の数の関係は、これに限定されない。例えば、各情報処理装置10のマシンパワーが異なるような場合、各情報処理装置10のマシンパワーに合わせて、各情報処理装置10において構築される仮想環境の数が異なっていてもよい。このような各情報処理装置10において構築される仮想環境の数は、管理用情報処理装置20が定義する冗長化管理情報に含まれていてもよい。
一実施形態に係る冗長化システム1は、コンピュータシステム全般に応用可能であり、高信頼性及び高可用性を実現する。一実施形態に係る冗長化システム1をソフトウェアプラットフォームとして実現することで、高信頼性及び高可用性が求められる様々なソフトウェアに応用可能である。例えば、一実施形態に係る冗長化システム1は、プロセス制御システムのコントローラ及びPCプラットフォーム上で動作するサーバソフトウェアに応用可能である。より具体的には、一実施形態に係る冗長化システム1は、プロセス制御システムにおけるSCADAシステム、プラント情報管理システム、OPCサーバ等を含む通信ゲートウェイシステム、及び運転効率向上支援システムに応用可能である。例えば、一実施形態に係る冗長化システム1は、ITシステムをはじめとした連続稼働が重要なコンピュータシステム全般に応用可能である。
1 冗長化システム
10 情報処理装置
10a 第1情報処理装置
10b 第2情報処理装置
10c 第3情報処理装置
10d 第4情報処理装置
11、11a、11b、11c 通信部
12、12a、12b、12c 記憶部
13、13a、13b、13c 制御部
131 冗長化管理部
132 仮想化等値化部
133 ミラードディスク管理部
134 診断部
135 等値化バス診断部
20 管理用情報処理装置
30 ネットワーク
VM1、VM2、VM3、VM4、VM5、VM6 仮想環境

Claims (13)

  1. 第1情報処理装置及び第2情報処理装置を少なくとも含む複数の情報処理装置と管理用情報処理装置とを備える冗長化システムであって、
    前記管理用情報処理装置は、
    前記複数の情報処理装置それぞれに関連付ける仮想環境であって、稼働仮想環境と待機仮想環境とを含む前記仮想環境を冗長化管理情報に定義し、前記複数の情報処理装置それぞれに前記冗長化管理情報を送信し、
    前記複数の情報処理装置それぞれは、
    前記管理用情報処理装置が送信した前記冗長化管理情報に基づいて、前記稼働仮想環境の制御を実行し、かつ、他の前記情報処理装置へ前記稼働仮想環境に関連付けられた等値化情報を送信し、他の前記情報処理装置で前記等値化情報に基づき前記仮想環境を等値化して前記待機仮想環境として制御するための通信管理を実行し、
    前記管理用情報処理装置は、
    一の前記情報処理装置が前記冗長化システムから削除される場合、又は新たな前記情報処理装置が前記冗長化システムに追加される場合、前記複数の情報処理装置の負荷バランスに基づき前記冗長化管理情報を更新して前記複数の情報処理装置それぞれに送信し、
    前記複数の情報処理装置それぞれは、
    更新された前記冗長化管理情報に基づいて、前記稼働仮想環境又は前記待機仮想環境を他の前記情報処理装置との間で移動させる、
    冗長化システム。
  2. 記複数の情報処理装置それぞれは、
    他の情報処理装置と通信を行う通信部と、
    自身の情報処理装置において複数の前記仮想環境を稼働させている制御部と、
    を備え、
    前記第1情報処理装置の前記通信部は、
    前記第1情報処理装置における前記稼働仮想環境である第1環境に関連付けられた第1等値化情報を、前記第2情報処理装置に送信し、
    前記第2情報処理装置における前記稼働仮想環境である第2環境に関連付けられた第2等値化情報を、前記第2情報処理装置から受信し、
    前記第1情報処理装置の前記制御部は、
    前記第1情報処理装置の前記通信部が受信した前記第2等値化情報に基づいて、前記第2環境を前記第1情報処理装置に等値化し、
    前記第1環境を前記第1情報処理装置において稼働状態に維持し、かつ前記第2環境を前記第1情報処理装置において待機状態にし、
    前記第2情報処理装置の前記制御部は、
    前記第2情報処理装置の前記通信部が受信した前記第1等値化情報に基づいて、前記第1環境を前記第2情報処理装置に等値化し、
    前記第1環境を前記第2情報処理装置において待機状態にする、
    請求項1に記載の冗長化システム。
  3. 第3情報処理装置をさらに備え、
    前記第1情報処理装置の前記通信部は、
    前記第1情報処理装置における前記稼働仮想環境である第3環境に関連付けられた第3等値化情報を、前記第3情報処理装置に送信し、
    前記第3情報処理装置における前記稼働仮想環境である第4環境に関連付けられた第4等値化情報を、前記第3情報処理装置から受信し、
    前記第1情報処理装置の前記制御部は、
    前記第1情報処理装置の前記通信部が受信した前記第4等値化情報に基づいて、前記第4環境を前記第1情報処理装置に等値化し、
    前記第3環境を稼働状態に維持し、かつ前記第4環境を待機状態にする、
    請求項に記載の冗長化システム。
  4. 前記第2情報処理装置の前記制御部は、前記第1情報処理装置がシステムダウンし前記冗長化システムから削除されたと判定すると、更新された前記冗長化管理情報に基づいて、前記第1情報処理装置において稼働状態にあった前記第1環境を、前記第2情報処理装置において待機状態から稼働状態に切り替える、
    請求項2又は3に記載の冗長化システム。
  5. 前記第1情報処理装置の前記制御部は、第4情報処理装置が新たな前記情報処理装置として前記冗長化システムに追加されたと判定すると、更新された前記冗長化管理情報に基づいて、稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、前記第1情報処理装置の前記通信部を用いて前記第4情報処理装置に送信し、送信した前記第1等値化情報に関連付いている前記第1環境を前記第1情報処理装置から消去する、
    請求項2又は3に記載の冗長化システム。
  6. 前記通信部は、LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信を行う、
    請求項2乃至5のいずれか1項に記載の冗長化システム。
  7. 冗長化システムが備える、第1情報処理装置及び第2情報処理装置を少なくとも含む複数の情報処理装置と管理用情報処理装置とにおいて動作する冗長化プログラムであって、
    前記管理用情報処理装置において、
    前記複数の情報処理装置それぞれに関連付ける仮想環境であって、稼働仮想環境と待機仮想環境とを含む前記仮想環境を冗長化管理情報に定義するステップと、
    前記複数の情報処理装置それぞれに前記冗長化管理情報を送信するステップと、
    前記複数の情報処理装置それぞれにおいて、
    前記管理用情報処理装置が送信した前記冗長化管理情報に基づいて、前記稼働仮想環境の制御を実行し、かつ、他の前記情報処理装置へ前記稼働仮想環境に関連付けられた等値化情報を送信し、他の前記情報処理装置で前記等値化情報に基づき前記仮想環境を等値化して前記待機仮想環境として制御するための通信管理を実行するステップと、
    前記管理用情報処理装置において、
    一の前記情報処理装置が前記冗長化システムから削除される場合、又は新たな前記情報処理装置が前記冗長化システムに追加される場合、前記複数の情報処理装置の負荷バランスに基づき前記冗長化管理情報を更新して前記複数の情報処理装置それぞれに送信するステップと、
    前記複数の情報処理装置それぞれにおいて、
    更新された前記冗長化管理情報に基づいて、前記稼働仮想環境又は前記待機仮想環境を他の前記情報処理装置との間で移動するステップ、
    を含む動作を実行させる、
    冗長化プログラム。
  8. 記第1情報処理装置において前記稼働仮想環境である第1環境に関連付けられた第1等値化情報を前記第1情報処理装置から前記第2情報処理装置に送信するステップと、
    前記第2情報処理装置において前記稼働仮想環境である第2環境に関連付けられた第2等値化情報を前記第2情報処理装置から前記第1情報処理装置が受信するステップと、
    受信された前記第2等値化情報に基づいて、前記第2環境を前記第1情報処理装置に等値化するステップと、
    前記第1情報処理装置において、前記第1環境を稼働状態に維持し、かつ前記第1情報処理装置において、前記第2環境を待機状態にするステップと、
    前記第2情報処理装置において、前記第1等値化情報に基づいて、前記第1環境を前記第2情報処理装置に等値化し、前記第1環境を待機状態にするステップと、
    を含む、
    請求項7に記載の冗長化プログラム。
  9. 前記冗長化システムがさらに備える第3情報処理装置を含む前記複数の情報処理装置において動作し、
    前記第1情報処理装置において前記稼働仮想環境である第3環境に関連付けられた第3等値化情報を前記第1情報処理装置から前記第3情報処理装置に送信するステップと、
    前記第3情報処理装置において前記稼働仮想環境である第4環境に関連付けられた第4等値化情報を前記第3情報処理装置から前記第1情報処理装置が受信するステップと、
    受信された前記第4等値化情報に基づいて、前記第4環境を前記第1情報処理装置に等値化するステップと、
    前記第1情報処理装置において、前記第3環境を稼働状態に維持し、かつ前記第4環境を待機状態にするステップと、
    を含む、
    請求項に記載の冗長化プログラム。
  10. 前記第1情報処理装置がシステムダウンし前記冗長化システムから削除されたか否かを前記第2情報処理装置が判定するステップと、
    前記第1情報処理装置がシステムダウンし前記冗長化システムから削除されたと前記第2情報処理装置が判定すると、更新された前記冗長化管理情報に基づいて、前記第1情報処理装置において稼働状態にあった前記第1環境を、前記第2情報処理装置において待機状態から稼働状態に切り替えるステップと、
    をさらに含む、
    請求項8又は9に記載の冗長化プログラム。
  11. 第4情報処理装置が新たな前記情報処理装置として前記冗長化システムに追加されたか否かを前記第1情報処理装置が判定するステップと、
    前記第4情報処理装置が新たな前記情報処理装置として前記冗長化システムに追加されたと前記第1情報処理装置が判定すると、更新された前記冗長化管理情報に基づいて、前記第1情報処理装置において稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、前記第1情報処理装置が前記第4情報処理装置に送信するステップと、
    送信された前記第1等値化情報に関連付いている前記第1環境を前記第1情報処理装置から前記第1情報処理装置が消去するステップと、
    をさらに含む、
    請求項8又は9に記載の冗長化プログラム。
  12. LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信が行われる、
    請求項8乃至11のいずれか1項に記載の冗長化プログラム。
  13. 冗長化システムを構成する複数の情報処理装置のうちの第1情報処理装置であって、
    前記複数の情報処理装置それぞれに関連付ける仮想環境であって、稼働仮想環境と待機仮想環境とを含む前記仮想環境を定義した冗長化管理情報を管理用情報処理装置から受信し、
    前記冗長化管理情報に基づいて、前記稼働仮想環境の制御を実行し、かつ、他の前記情報処理装置へ前記稼働仮想環境に関連付けられた等値化情報を送信し、他の前記情報処理装置で前記等値化情報に基づき前記仮想環境を等値化して前記待機仮想環境として制御するための通信管理を実行し、
    一の前記情報処理装置が前記冗長化システムから削除される場合、又は新たな前記情報処理装置が前記冗長化システムに追加される場合、前記複数の情報処理装置の負荷バランスに基づき更新された前記冗長化管理情報を前記管理用情報処理装置から受信し、
    更新された前記冗長化管理情報に基づいて、前記稼働仮想環境又は前記待機仮想環境を他の前記情報処理装置との間で移動させる、
    第1情報処理装置。
JP2018169162A 2018-09-10 2018-09-10 冗長化システム、冗長化プログラム、及び情報処理装置 Active JP7332280B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018169162A JP7332280B2 (ja) 2018-09-10 2018-09-10 冗長化システム、冗長化プログラム、及び情報処理装置
CN201910865032.0A CN110888752B (zh) 2018-09-10 2019-09-09 冗余系统、记录介质及信息处理装置
US16/564,204 US11403126B2 (en) 2018-09-10 2019-09-09 Redundant system, redundant program, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018169162A JP7332280B2 (ja) 2018-09-10 2018-09-10 冗長化システム、冗長化プログラム、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2020042526A JP2020042526A (ja) 2020-03-19
JP7332280B2 true JP7332280B2 (ja) 2023-08-23

Family

ID=69719567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018169162A Active JP7332280B2 (ja) 2018-09-10 2018-09-10 冗長化システム、冗長化プログラム、及び情報処理装置

Country Status (3)

Country Link
US (1) US11403126B2 (ja)
JP (1) JP7332280B2 (ja)
CN (1) CN110888752B (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012159928A (ja) 2011-01-31 2012-08-23 Internatl Business Mach Corp <Ibm> 情報処理装置、情報処理システム、配置構成決定方法、プログラムおよび記録媒体
JP2012221321A (ja) 2011-04-11 2012-11-12 Nec Corp フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム
US20150074447A1 (en) 2013-09-09 2015-03-12 Samsung Sds Co., Ltd. Cluster system and method for providing service availability in cluster system
JP2016053841A (ja) 2014-09-03 2016-04-14 日本電信電話株式会社 電源状態制御装置およびプログラム
JP2016177716A (ja) 2015-03-23 2016-10-06 横河電機株式会社 冗長化pcシステム
JP2018077594A (ja) 2016-11-07 2018-05-17 富士通株式会社 仮想マシン管理装置、システム、仮想マシン移動方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4099816B2 (ja) 2001-07-25 2008-06-11 横河電機株式会社 冗長化コントローラ
JP4468426B2 (ja) 2007-09-26 2010-05-26 株式会社東芝 高可用システム及び実行状態制御方法
JP5503190B2 (ja) * 2009-05-20 2014-05-28 アズビル株式会社 通信システム
US8380668B2 (en) * 2011-06-22 2013-02-19 Lsi Corporation Automatic discovery of cache mirror partners in an N-node cluster
JP5561334B2 (ja) * 2012-09-27 2014-07-30 日本電気株式会社 データ転送装置
JP6085266B2 (ja) * 2014-02-27 2017-02-22 日本電信電話株式会社 サーバリソース管理装置
JP6374841B2 (ja) * 2015-08-03 2018-08-15 日本電信電話株式会社 仮想マシン配置装置および仮想マシン配置方法
JP2017162165A (ja) * 2016-03-09 2017-09-14 株式会社リコー 情報処理装置、情報処理方法及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012159928A (ja) 2011-01-31 2012-08-23 Internatl Business Mach Corp <Ibm> 情報処理装置、情報処理システム、配置構成決定方法、プログラムおよび記録媒体
JP2012221321A (ja) 2011-04-11 2012-11-12 Nec Corp フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム
US20150074447A1 (en) 2013-09-09 2015-03-12 Samsung Sds Co., Ltd. Cluster system and method for providing service availability in cluster system
JP2016053841A (ja) 2014-09-03 2016-04-14 日本電信電話株式会社 電源状態制御装置およびプログラム
JP2016177716A (ja) 2015-03-23 2016-10-06 横河電機株式会社 冗長化pcシステム
JP2018077594A (ja) 2016-11-07 2018-05-17 富士通株式会社 仮想マシン管理装置、システム、仮想マシン移動方法及びプログラム

Also Published As

Publication number Publication date
CN110888752B (zh) 2023-08-15
CN110888752A (zh) 2020-03-17
US20200081730A1 (en) 2020-03-12
US11403126B2 (en) 2022-08-02
JP2020042526A (ja) 2020-03-19

Similar Documents

Publication Publication Date Title
US10956289B2 (en) Switching over from using a first primary storage to using a second primary storage when the first primary storage is in a mirror relationship
US10735509B2 (en) Systems and methods for synchronizing microservice data stores
US8086808B2 (en) Method and system for migration between physical and virtual systems
US8458697B2 (en) Method and device for eliminating patch duplication
US9158578B1 (en) System and method for migrating virtual machines
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
WO2012081099A1 (ja) データ移行プログラム、計算機およびデータ移行方法
JP3933587B2 (ja) 計算機システム、計算機装置及びオペレーティングシステムの移送方法
JP2020101949A (ja) ストレージシステム及びストレージシステム制御方法
JPWO2012063334A1 (ja) 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ
JP6774971B2 (ja) データアクセスアクセラレータ
CN112262407A (zh) 分布式文件系统中基于gpu的服务器
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
US11675545B2 (en) Distributed storage system and storage control method
JP5193801B2 (ja) ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム
US8621260B1 (en) Site-level sub-cluster dependencies
EP3926471A1 (en) Storage device-assisted live virtual machine migration
AU2014314984B2 (en) Data processing method and device
JP7332280B2 (ja) 冗長化システム、冗長化プログラム、及び情報処理装置
CN103019847A (zh) 对虚拟机数据进行迁移的方法及系统
WO2016206392A1 (zh) 数据读写方法及装置
JP5626334B2 (ja) ストレージシステム
US11074099B2 (en) System and method for storage during virtual machine migration
KR20180018195A (ko) 공정 관리 장치, 이와 연동하는 데이터 서버를 포함하는 반도체 공정 관리 시스템 및 이를 이용한 반도체 공정 관리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220725

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221122

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221122

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20221202

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221206

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20221216

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20221220

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230124

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230314

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20230418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230810

R150 Certificate of patent or registration of utility model

Ref document number: 7332280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150