JP5035299B2 - Multi-core processor control method, computer system thereof, and management computer program - Google Patents

Multi-core processor control method, computer system thereof, and management computer program Download PDF

Info

Publication number
JP5035299B2
JP5035299B2 JP2009141797A JP2009141797A JP5035299B2 JP 5035299 B2 JP5035299 B2 JP 5035299B2 JP 2009141797 A JP2009141797 A JP 2009141797A JP 2009141797 A JP2009141797 A JP 2009141797A JP 5035299 B2 JP5035299 B2 JP 5035299B2
Authority
JP
Japan
Prior art keywords
processor
core
failure sign
failure
cores
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.)
Expired - Fee Related
Application number
JP2009141797A
Other languages
Japanese (ja)
Other versions
JP2009205696A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009141797A priority Critical patent/JP5035299B2/en
Publication of JP2009205696A publication Critical patent/JP2009205696A/en
Application granted granted Critical
Publication of JP5035299B2 publication Critical patent/JP5035299B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、マルチコアプロセッサで稼働する計算機の制御方法に関する。   The present invention relates to a control method for a computer operating on a multi-core processor.

企業の計算機システムやデータセンタにおいて、サーバの保有台数が増大した結果、運用管理コストも増大している。この問題を解決する技術としてプロセッサの高性能化がある。従来から、プロセッサの動作周波数の向上によりプロセッサの性能は向上してきた。プロセッサの性能向上に対するユーザの期待にはいくつかの異なる方向がある。一つは、より早く処理を行うための高性能化である。より複雑な処理を短時間で処理することで高度な処理結果を短い時間で得ることができるようになる。もう一つは、運用管理の容易化である。処理性能が高いプロセッサをサーバに用いることで、単一のサーバ上でより多くの処理を行うことができるため、管理すべきサーバの台数を少なくすることができる。その結果、運用管理対象となるサーバ数が少なくなり、運用管理が容易になる。現在は、特に運用管理を容易するためのプロセッサ高性能化に対する期待が大きくなっている。こういった背景の中、マルチコアプロセッサがプロセッサアーキテクチャの中心に位置づけられつつある。マルチコアプロセッサとは、単一の物理プロセッサ内に、並列に演算を行うことができるコアを複数内蔵するアーキテクチャである。従来のように、単一のコアの動作周波数を向上させる方法ではなく、コアを多数有することで性能を向上させる方法である。マルチコアプロセッサのメリットはいくつかあるが、多数の複雑な論理を必要とする従来のプロセッサに比べ、消費電力や全体性能を向上させることができる。こういったマルチコアプロセッサによって、サーバ単体の性能は従来よりも向上し、その結果運用管理の容易化を加速する技術として期待されている。   As a result of the increase in the number of owned servers in corporate computer systems and data centers, operation management costs have also increased. As a technique for solving this problem, there is a high-performance processor. Conventionally, the performance of a processor has been improved by improving the operating frequency of the processor. There are several different directions for user expectations for improved processor performance. One is high performance for faster processing. By processing more complicated processing in a short time, it becomes possible to obtain advanced processing results in a short time. Another is the ease of operation management. By using a processor with high processing performance as a server, more processing can be performed on a single server, and therefore the number of servers to be managed can be reduced. As a result, the number of servers subject to operation management is reduced, and operation management is facilitated. At present, there is a great expectation for improving the performance of a processor for facilitating operation management. Against this background, multi-core processors are becoming the center of processor architecture. A multi-core processor is an architecture in which a plurality of cores capable of performing operations in parallel are built in a single physical processor. It is not a method for improving the operating frequency of a single core as in the prior art, but a method for improving performance by having a large number of cores. There are several advantages of a multi-core processor, but power consumption and overall performance can be improved compared to conventional processors that require a large number of complex logics. Such a multi-core processor is expected as a technology that improves the performance of a single server than before, and as a result, accelerates the ease of operation management.

特開2006−260568JP 2006-260568 A 特開2004−30363JP2004-30363 特開2003−330740JP 2003-330740 A

マルチコアプロセッサにより性能向上と共に運用管理は容易化されることが期待できる。しかし、一方で可用性が低下する問題がある。特定の部位に障害が発生した場合でもシステムの処理を継続できる事が高可用性の条件となる。マルチコアプロセッサは、多数のコアを単一のプロセッサに内蔵することで性能を向上させるが、可用性の観点で見ると単一プロセッサの障害によって影響を受ける範囲が大きくなる事を意味している。つまり、マルチコアプロセッサによって、少ないプロセッサでシステムを構築することができる代わりに、可用性が低下する。例えば、2GHzのコアを1つ搭載したシングルコアプロセッサを使用して、合計20GHzのシステムを構築する場合は20個のプロセッサを要する。20個のプロセッサ上でシステムを構築した場合、単一プロセッサの障害によって影響を受ける範囲は1/20である。一方、2GHzのコアを単一のプロセッサに4つ搭載したマルチコアプロセッサは、同性能を得るのに5つのプロセッサで構築する事ができる。しかし、この場合、単一プロセッサの障害によって影響を受ける範囲は最大で4/20となり、マルチコアプロセッサの方が障害時の影響が大きくなる課題がある。   Multi-core processors can be expected to improve performance and simplify operation management. However, on the other hand, there is a problem that availability decreases. A high availability condition is that the system can continue processing even if a failure occurs in a specific part. A multi-core processor improves performance by incorporating a large number of cores in a single processor, but from the viewpoint of availability, it means that the range affected by a failure of a single processor becomes large. In other words, the multi-core processor reduces the availability at the cost of constructing the system with a small number of processors. For example, when a total 20 GHz system is constructed using a single core processor having one 2 GHz core, 20 processors are required. When a system is constructed on 20 processors, the range affected by a single processor failure is 1/20. On the other hand, a multi-core processor in which four 2 GHz cores are mounted on a single processor can be constructed with five processors to obtain the same performance. However, in this case, the range affected by the failure of a single processor is 4/20 at the maximum, and the multi-core processor has a problem that the influence at the time of failure is greater.

また、別の課題としてマルチコアプロセッサを搭載したサーバの仮想化における可用性の低下がある。運用管理を容易化するもう一つの方法として、サーバの仮想化技術がある。サーバの仮想化技術は、単一の物理サーバ上で複数の仮想サーバを稼働することができる技術である。物理サーバには、プロセッサやメモリといったリソースがあり、サーバの仮想化技術はリソースを分割し、それぞれを異なる仮想的なサーバに割り当てることで単一の物理サーバ上で複数の仮想サーバを同時に実行する。マルチコアプロセッサ等による性能向上とメモリなどのリソースが低コスト化したことで、サーバの仮想化技術に関するニーズが増大している。また、サーバの仮想化技術は、複数の仮想サーバを単一の物理サーバ上で稼働させることによる統合のメリット以外にも、ワークロード制御により一層のサーバリソースの有効利用を図るメリットがある。ここで、ワークロード制御とは、物理サーバのCPUやメモリといったリソースを状況に応じて仮想サーバに増減させる処理である。例えば、ある仮想サーバの負荷が高くなった場合に、同一の物理サーバ上で稼働する他の仮想サーバの中で負荷が低い仮想サーバからリソースを融通することで、物理サーバのリソースを有効に使用することができるようになる。   Another problem is a decrease in availability in virtualization of a server equipped with a multi-core processor. Another method for facilitating operational management is server virtualization technology. The server virtualization technology is a technology capable of operating a plurality of virtual servers on a single physical server. Physical servers have resources such as processors and memory, and server virtualization technology divides resources and assigns them to different virtual servers to execute multiple virtual servers simultaneously on a single physical server . The need for server virtualization technology is increasing due to performance improvements by multi-core processors and the like, as well as lower costs for resources such as memory. Further, the server virtualization technology has an advantage of further effective use of server resources by workload control in addition to the advantage of integration by operating a plurality of virtual servers on a single physical server. Here, the workload control is a process of increasing / decreasing resources such as the CPU and memory of the physical server to the virtual server according to the situation. For example, when the load on a certain virtual server becomes high, the resources of the physical server can be used effectively by combining resources from the virtual server with the lower load among other virtual servers running on the same physical server. Will be able to.

マルチコアプロセッサは、サーバの仮想化環境においては、多くのプロセッサリソースを保有できることで、単一のプロセッサから多数の仮想サーバを生成する能力を有することができる。つまり、多数のサーバをより少ないサーバに統合することができるようになる。このようにマルチコアプロセッサと仮想化技術の相乗効果によって、運用管理の容易化が進むことが期待できる。実際、仮想化技術と複数のプロセッサを組み合わせることで、システムの信頼性を向上させることもできる。例えば、物理サーバに生成された複数の仮想サーバを用い、正副のホットスタンバイ環境を構築することで、従来は複数の物理サーバを要した高信頼環境を、単一の物理サーバで構築するなどの技術がある。従来技術では、複数の仮想サーバ間でホットスタンバイを構築する技術や、障害の予兆を検出することで新たな仮想サーバを構築し障害に備えるなどの技術はある。しかし、これらの技術は、マルチコアプロセッサを対象にした技術ではなく、シングルコアプロセッサ環境における仮想サーバを用いた高信頼化技術である。また、障害の影響範囲の大きさを考慮しておらず、マルチコアプロセッサに対応した技術ではない。従って、マルチコアプロセッサ環境における仮想サーバの信頼性や可用性を向上することが課題である。   A multi-core processor can have a large number of processor resources in a server virtualization environment, thereby having the ability to generate a large number of virtual servers from a single processor. That is, a large number of servers can be integrated into a smaller number of servers. Thus, it can be expected that the operation management will be facilitated by the synergistic effect of the multi-core processor and the virtualization technology. In fact, the reliability of the system can be improved by combining the virtualization technology and a plurality of processors. For example, by constructing a primary and secondary hot standby environment using multiple virtual servers created on a physical server, a highly reliable environment that conventionally required multiple physical servers can be constructed with a single physical server. There is technology. In the prior art, there are a technique for constructing a hot standby among a plurality of virtual servers, a technique for constructing a new virtual server by detecting a failure sign, and preparing for a failure. However, these technologies are not technologies targeting multi-core processors, but are high-reliability technologies using virtual servers in a single-core processor environment. In addition, it does not consider the size of the influence range of the failure, and is not a technology corresponding to a multi-core processor. Therefore, it is a challenge to improve the reliability and availability of virtual servers in a multi-core processor environment.

複数のマルチコアプロセッサからなるシステムにおいて、プロセッサとプロセッサが有するコアを管理するテーブルを有し、仮想サーバの生成時において異なるプロセッサのコアを用いて単一の仮想サーバを構成する。   A system including a plurality of multi-core processors has a table for managing processors and cores included in the processors, and a single virtual server is configured using cores of different processors when a virtual server is generated.

また、プロセッサが有するコアの数に応じて、プロセッサの数を可変にする。また、プロセッサの障害予兆を検出した場合に、前記障害の予兆を検出したプロセッサには仮想化機構の実行スケジュールを渡さないように制御する。   Further, the number of processors is made variable in accordance with the number of cores that the processor has. In addition, when a processor failure sign is detected, control is performed so that the execution schedule of the virtualization mechanism is not passed to the processor that has detected the failure sign.

また、複数のマルチコアプロセッサからなるシステムにおいて、オペレーティングシステムのプロセス又はスレッドの処理に、複数の異なるプロセッサが有する演算コアを割り当てる。   Further, in a system composed of a plurality of multi-core processors, operation cores possessed by a plurality of different processors are assigned to processing of an operating system process or thread.

また、複数のマルチコアプロセッサからなるシステムにおいて、オペレーティングシステムに、複数の異なるプロセッサが有する演算コアを割り当てる。   In a system composed of a plurality of multi-core processors, operation cores of a plurality of different processors are allocated to the operating system.

マルチコアプロセッサ環境において、可用性を向上することができるようになる。   In a multi-core processor environment, availability can be improved.

本発明の全体構成図を示す。1 shows an overall configuration diagram of the present invention. FIG. プロセッサの構成図を示す。The block diagram of a processor is shown. 仮想化機構の構成図を示す。The block diagram of a virtualization mechanism is shown. 仮想サーバへのプロセッサ割り当て方法を示す。A method of assigning processors to virtual servers is shown. サーバ構成テーブルを示す。A server configuration table is shown. 仮想化機構管理テーブルを示す。A virtualization mechanism management table is shown. プロセッサ管理テーブルを示す。A processor management table is shown. 障害対応テーブルを示す。A failure correspondence table is shown. ユーザインターフェースを示す。The user interface is shown. コア割り当てプログラムのフローチャートを示す。The flowchart of a core allocation program is shown. 信頼性重視型コア割り当てのフローチャートを示す。The flowchart of reliability-oriented core allocation is shown. 性能重視型コア割り当てのフローチャートを示す。The flowchart of a performance-oriented core allocation is shown. 一般型コア割り当てのフローチャートを示す。The flowchart of general-type core allocation is shown. コア割り当て例を示す。An example of core allocation is shown. 障害予兆検出機構のフローチャートを示す。The flowchart of a failure sign detection mechanism is shown. 障害管理プログラムのフローチャートを示す。The flowchart of a failure management program is shown. 障害対策プログラムのフローチャートを示す。The flowchart of a trouble countermeasure program is shown. 障害予兆対策プログラムのフローチャートを示す。The flowchart of a failure predictive measure program is shown. スケジュール制御機構のフローチャートを示す。The flowchart of a schedule control mechanism is shown. 割り込み制御テーブルを示す。An interrupt control table is shown. マイグレーション制御プログラムのフローチャートを示す。The flowchart of a migration control program is shown. プロセッサ制御機構のフローチャートを示す。2 shows a flowchart of a processor control mechanism. 実施例2における異なるコアを有するプロセッサの構成を示す。10 shows a configuration of a processor having different cores in a second embodiment. 実施例2における障害対応テーブルを示す。7 shows a failure correspondence table in the second embodiment. 実施例2における障害対応プログラムのフローチャートを示す。10 is a flowchart of a failure handling program according to the second embodiment. 実施例2における専用コア交代プログラムのフローチャートを示す。The flowchart of the exclusive core replacement program in Example 2 is shown. 実施例2におけるアプリケーションプログラムのリカバリ構成を示す。The recovery structure of the application program in Example 2 is shown. 仮想化機構の連携時のサーバ構成テーブル。Server configuration table when the virtualization mechanism is linked. 管理サーバの構成を示す。The structure of a management server is shown.

以下、図面を用いて本願発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明における実施例の全体図を示している。本実施例における制御の中心は、管理サーバ101である。仮想化機構管理プログラム102は、管理対象となるサーバ装置112で稼働する仮想化機構115を管理するプログラムである。仮想化機構管理プログラム102は、コア割当てプログラム103と障害管理プログラム104とスケジュール制御プログラム105とマイグレーション制御プログラム106から構成される。コア割当てプログラム103は、仮想サーバ114に対しサーバ装置112が有するプロセッサ119やプロセッサ119内のコア116を割り当てる制御を行う。障害管理プログラム104は、プロセッサ119やコア116に障害や障害の予兆を検出した際に実行され、プロセッサ119やコア116の交代などの管理を行う。スケジュール制御プログラム105は、仮想化機構115に対して、プロセッサ119やコア116の実行スケジュールを変更する指示を発行する。マイグレーション制御プログラム106は、プロセッサ119やコア116の交代を仮想化機構115に対して指示するプログラムである。これらは、コア管理テーブル107,サーバ構成テーブル108,仮想化機構管理テーブル109,プロセッサ管理テーブル110,障害対応テーブル111を更新・参照しながら実行される。管理対象であるサーバ装置112は、メモリ113,プロセッサ119,プロセッサ119に内蔵されるコア116,プロセッサコントローラ117,I/Oデバイス118から構成される。メモリ113内には、仮想化機構115が格納および実行され、これにより仮想サーバ114が生成される。仮想サーバ114は、仮想化機構115によってサーバ装置112内のメモリ113やプロセッサ119やI/Oデバイス118等のリソースを分配することで、サーバと同等の機能を有することができる。   FIG. 1 shows an overall view of an embodiment of the present invention. The center of control in this embodiment is the management server 101. The virtualization mechanism management program 102 is a program for managing the virtualization mechanism 115 operating on the server device 112 to be managed. The virtualization mechanism management program 102 includes a core allocation program 103, a failure management program 104, a schedule control program 105, and a migration control program 106. The core assignment program 103 performs control to assign the processor 119 included in the server device 112 and the core 116 in the processor 119 to the virtual server 114. The failure management program 104 is executed when a failure or a sign of failure is detected in the processor 119 or the core 116, and manages the replacement of the processor 119 or the core 116. The schedule control program 105 issues an instruction to change the execution schedule of the processor 119 and the core 116 to the virtualization mechanism 115. The migration control program 106 is a program that instructs the virtualization mechanism 115 to change the processor 119 or the core 116. These are executed while updating and referring to the core management table 107, the server configuration table 108, the virtualization mechanism management table 109, the processor management table 110, and the failure handling table 111. The server device 112 to be managed includes a memory 113, a processor 119, a core 116 built in the processor 119, a processor controller 117, and an I / O device 118. A virtualization mechanism 115 is stored and executed in the memory 113, thereby generating a virtual server 114. The virtual server 114 can have the same function as the server by distributing resources such as the memory 113, the processor 119, and the I / O device 118 in the server device 112 by the virtualization mechanism 115.

なお、図29は、管理サーバ101のハードウェアとプログラムの関係を記載しており、管理サーバ101は、プログラムやテーブルなどのデータを格納するメモリ2901、プログラムを実行するプロセッサ2902、ディスクアクセスのインターフェースであるHBA(Host Bus Adaptor)、ネットワークインターフェース2904から構成され、本発明における仮想化機構管理プログラム102や各テーブルはメモリ内に格納されている。仮想化機構管理プログラム102はプロセッサ2902で実行することにより実現するが、説明を簡単にするため、以下、プロセッサ2902の処理に関してはプログラムを実行主体として説明する。また、コア割当てプログラム103、スケジュール制御プログラム105,障害管理プログラム104、マイグレーション制御プログラム106は、プロセッサ2902が実行することで、仮想化機構管理処理を実現するが、これらはコア割当て部、スケジュール制御部,障害管理部、マイグレーション制御部など、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。   FIG. 29 describes the relationship between the hardware of the management server 101 and the program. The management server 101 includes a memory 2901 for storing data such as programs and tables, a processor 2902 for executing the program, and a disk access interface. HBA (Host Bus Adapter) and network interface 2904, and the virtualization mechanism management program 102 and each table in the present invention are stored in the memory. The virtualization mechanism management program 102 is realized by being executed by the processor 2902. For the sake of simplicity, the processing of the processor 2902 will be described below with the program as the execution subject. The core allocation program 103, the schedule control program 105, the failure management program 104, and the migration control program 106 are executed by the processor 2902 to realize a virtualization mechanism management process. These are the core allocation unit, the schedule control unit, and the like. , A failure management unit, a migration control unit, and the like, which can be realized as hardware by integrating them as a processing unit for performing each process.

図2は、プロセッサ119の構成例を示している。プロセッサ119内には複数のコア116が内蔵されている。コア116は、メモリ113から命令を読み込み、命令の実行やメモリ113とデータ読み込みや書き込みを行うことができる。コア116内の1次キャッシュ202は、命令やデータを高速に読み書きするための高速なメモリである。複数のコア116は、1次キャッシュ201よりも容量の大きな2次キャッシュ203を有する、2次キャッシュ203は複数のコア116から共有される。また、外部のメモリ113とのデータや命令を入出力するためのメモリインターフェースを有する。複数のコア116は、それぞれ独立に動作することができる。従って、コア116の数が多いほど処理性能が向上する。また、複数のコア116は、マルチプロセッサの形態をとることができる。つまり、コア116は独立に動作するが、メモリ113上のプログラムからは単一システムのような使い勝手を得ることができる。例えば、メモリ113上に複数のプログラムが同時に稼働する場合、一般的にはオペレーティングシステムと呼ばれるシステムプロ
グラムが自動的に複数のコア116へ実行の制御を割当てるため、プログラムからはあたかも複数のプログラムが同時に実行されたように見ることができる。
FIG. 2 shows a configuration example of the processor 119. A plurality of cores 116 are built in the processor 119. The core 116 can read an instruction from the memory 113 and execute the instruction or read / write data from / to the memory 113. The primary cache 202 in the core 116 is a high-speed memory for reading and writing instructions and data at high speed. The plurality of cores 116 includes a secondary cache 203 having a larger capacity than the primary cache 201, and the secondary cache 203 is shared by the plurality of cores 116. In addition, it has a memory interface for inputting / outputting data and instructions to / from the external memory 113. The plurality of cores 116 can operate independently. Therefore, the processing performance improves as the number of cores 116 increases. The plurality of cores 116 can take the form of a multiprocessor. That is, although the core 116 operates independently, the program on the memory 113 can be used as a single system. For example, when a plurality of programs run on the memory 113 at the same time, generally, a system program called an operating system automatically assigns execution control to the plurality of cores 116. Can be seen as implemented.

図3は仮想化機構115の詳細を示している。サーバ装置112内のメモリ113内には仮想化機構115が稼働する。仮想化機構115内には、スケジュール制御機構301とプロセッサ制御機構303と障害予兆検出機構302と割り込み制御テーブル304と制御インターフェース(I/F)305から構成される。スケジュール制御機構301は、仮想化機構115に関連するプログラムの実行スケジュール制御を行う。プロセッサ制御機構303はプロセッサ119の動作モードの制御を行う。障害予兆検出機構302は、定期的あるいは、プロセッサ119が空き状態になると動作し、ハードウェアのチェックを行う機構である。これらの動作は、外部から制御I/F305を介して制御することができる。   FIG. 3 shows details of the virtualization mechanism 115. A virtualization mechanism 115 operates in the memory 113 in the server device 112. The virtualization mechanism 115 includes a schedule control mechanism 301, a processor control mechanism 303, a failure sign detection mechanism 302, an interrupt control table 304, and a control interface (I / F) 305. The schedule control mechanism 301 performs execution schedule control of programs related to the virtualization mechanism 115. The processor control mechanism 303 controls the operation mode of the processor 119. The failure sign detection mechanism 302 is a mechanism that operates on a regular basis or when the processor 119 becomes empty and checks the hardware. These operations can be controlled from the outside via the control I / F 305.

図4は、仮想化機構115によって、プロセッサ119が仮想サーバ114に割り当てられている状態を示している。仮想サーバ114への割り当て方にはいくつかの方法がある。401の割り当て方は、単一のプロセッサ119を、複数の仮想サーバ114に割り当てる方法である。共有割当て方法とも呼ばれ、通常は複数の仮想サーバ114で同一のプロセッサ119リソースを共有し、プロセッサ119よりも多い仮想サーバ114を構築する際に使用される割当て方法である。402と403の割当て方は、占有割当て方法とも呼ばれ、仮想サーバ114は専用のプロセッサ119が割り当てられ他の仮想サーバ114から共有されることはない。割り当て方には、いくつかのパターンがあり、402のように複数のプロセッサ119を単一の仮想サーバ114に割り当てる。高性能な仮想サーバ114を要求される場合にはこういった割り当て方を行う。このように、仮想化機構115は、プロセッサ119などのサーバ装置112のリソースを複数の仮想サーバ114に分配する事で、複数の仮想サーバ114を生成し、かつ複数の仮想サーバ114は並列に動作することもできる。また、ここではプロセッサ119の割当て方について述べたが、I/Oデバイス118やメモリ113などのリソースも同様に分割して割り当てることができる。   FIG. 4 shows a state in which the processor 119 is assigned to the virtual server 114 by the virtualization mechanism 115. There are several methods for assigning to the virtual server 114. 401 is a method of assigning a single processor 119 to a plurality of virtual servers 114. It is also called a shared allocation method, and is an allocation method that is normally used when a plurality of virtual servers 114 share the same processor 119 resource and construct more virtual servers 114 than processors 119. The method of assigning 402 and 403 is also called an exclusive assignment method, and the virtual server 114 is assigned a dedicated processor 119 and is not shared by other virtual servers 114. There are several patterns of allocation methods, and a plurality of processors 119 are allocated to a single virtual server 114 as in 402. This allocation method is performed when a high-performance virtual server 114 is required. As described above, the virtualization mechanism 115 generates a plurality of virtual servers 114 by distributing resources of the server device 112 such as the processor 119 to the plurality of virtual servers 114, and the plurality of virtual servers 114 operate in parallel. You can also Although the method of assigning the processor 119 has been described here, resources such as the I / O device 118 and the memory 113 can also be divided and assigned in the same manner.

図5はサーバ構成テーブル108を示している。サーバ構成テーブル108は、主にサーバ装置112のハードウェアの構成を管理するために設けられたテーブルである。カラム501は、システム識別子(ID)を示している。システムID501とは、例えば単一のサーバ構成を単位とした識別子である。一例として、マルチプロセッサ構成などが考えられる。単一のシステムID501には、カラム502に示すように単一あるいは複数のプロセッサから構成される。さらに、プロセッサには、カラム503に示すように複数のコアが搭載される。カラム503では、プロセッサ内に有するコアの数が記載される。カラム504では、システムが有するメモリの総容量が格納される。カラム505では、システムが有するI/Oデバイスの種類と数が格納される。例えば、I/Oデバイスとは、ネットワークと接続するためのネットワークアダプタや、ディスクと接続するためのディスクアダプタなどである。カラム506には、仮想化機構の識別子(ID)が格納される。これらのカラムにより、システム当たりのハードウェアリソースを把握することができ、また仮想化機構と対応づけることで仮想化機構が使用することができるハードウェアリソースを管理することができるようになる。   FIG. 5 shows the server configuration table 108. The server configuration table 108 is a table provided mainly for managing the hardware configuration of the server device 112. A column 501 indicates a system identifier (ID). The system ID 501 is an identifier based on a single server configuration, for example. As an example, a multiprocessor configuration can be considered. A single system ID 501 is composed of a single or a plurality of processors as shown in a column 502. Further, a plurality of cores are mounted on the processor as indicated by a column 503. In a column 503, the number of cores included in the processor is described. A column 504 stores the total memory capacity of the system. A column 505 stores the type and number of I / O devices included in the system. For example, the I / O device is a network adapter for connecting to a network, a disk adapter for connecting to a disk, or the like. A column 506 stores an identifier (ID) of the virtualization mechanism. With these columns, the hardware resources per system can be grasped, and the hardware resources that can be used by the virtualization mechanism can be managed by associating with the virtualization mechanism.

図6は、仮想化機構管理テーブル109の構成を示している。カラム601は、仮想化機構IDを示す。これは、図5のカラム506に対応する仮想化機構IDである。カラム602は、生成された仮想サーバIDが格納される。仮想化機構によって生成された全ての仮想サーバIDが格納される。また、生成された仮想サーバだけではなく、仮想化機構が有する空きハードウェアリソースであるリソースプールに関する情報も記載される。これは、新たに仮想サーバを生成する場合や既存の仮想サーバにリソースを追加する場合に、システムが有する空きリソースから割り当てるため、リソースの残りを管理する必要があるためである。カラム603は、仮想サーバに割り当てられているプロセッサIDが格納される。複数のプロセッサが割り当てられている場合には複数のプロセッサIDが記載される。カラム604は、カラム603に記載されたプロセッサが有するコアIDが格納される。これにより、仮想サーバへの割当てを、コア単位で管理することができるようになる。カラム605は、仮想サーバに割り当てられたメモリ容量が格納される。カラム606には、仮想サーバに割り当てられたI/Oデバイスが格納される。仮想化機構管理テーブル109は、新たな仮想サーバの生成や、削除、あるいは割り当てリソースに変更が生じた場合に更新される。   FIG. 6 shows the configuration of the virtualization mechanism management table 109. A column 601 indicates a virtualization mechanism ID. This is a virtualization mechanism ID corresponding to the column 506 in FIG. A column 602 stores the generated virtual server ID. All virtual server IDs generated by the virtualization mechanism are stored. In addition to the generated virtual server, information on a resource pool, which is a free hardware resource of the virtualization mechanism, is also described. This is because when a new virtual server is generated or when a resource is added to an existing virtual server, the remaining resources need to be managed because they are allocated from the free resources of the system. A column 603 stores processor IDs assigned to the virtual servers. When a plurality of processors are assigned, a plurality of processor IDs are described. A column 604 stores the core ID of the processor described in the column 603. This makes it possible to manage allocation to virtual servers in units of cores. A column 605 stores the memory capacity allocated to the virtual server. A column 606 stores an I / O device assigned to the virtual server. The virtualization mechanism management table 109 is updated when a new virtual server is created or deleted, or when an allocation resource is changed.

図7はプロセッサ管理テーブル110の構成を示している。プロセッサ管理テーブル110は主に、プロセッサの障害に関する情報が格納される。カラム701は、プロセッサIDが格納される。カラム702には、プロセッサが有するコアIDが格納される。カラム703には各プロセッサやコアの状態が格納される。例えば、障害の予兆を検出した場合や障害が発生した場合には部位が格納される。プロセッサ管理テーブル110によって、複数のプロセッサや複数のコアを有するサーバ環境において、障害の予兆検出時や障害時にプロセッサ内の部位を特定することができる。   FIG. 7 shows the configuration of the processor management table 110. The processor management table 110 mainly stores information on processor failures. A column 701 stores processor IDs. A column 702 stores the core ID of the processor. A column 703 stores the status of each processor and core. For example, a part is stored when a sign of a failure is detected or when a failure occurs. With the processor management table 110, in a server environment having a plurality of processors and a plurality of cores, a site in the processor can be specified when a failure sign is detected or when a failure is detected.

図8は障害対応テーブル111の構成を示している。障害対応テーブル111は、プロセッサに障害が発生した場合や障害の予兆を検出した場合の対策が記載される。対策はプロセッサの種別801毎に記載される。プロセッサ種別801によって、該プロセッサのアーキテクチャを特定でき、またアーキテクチャの違いから生じる障害時の対策を管理することができる。カラム802は、プロセッサ部位が格納される。カラム803は、障害予兆を検出した場合の対応が格納される。例えば、コア交代や仮想化機構スケジュール禁止といった内容である。コア交代とは、障害予兆を検出したことで、交代コアを割り当てる事を意味する。また、仮想化機構スケジュール禁止は、当該コアあるいはプロセッサに対し、仮想化機構のスケジュールを禁止することを意味する。プロセッサ交代とは、当該プロセッサの全てのコアを他のプロセッサのコアと交代することを意味する。対応は、部位によって異なる。例えば、コアと1次キャッシュが同一コア内に内蔵され他のコアとは独立している場合には、コア単位の交代で良い。しかし、2次キャッシュが複数のコアから共有されている場合には、障害発生時の影響が大きいためプロセッサ単位で交代した方が良い。カラム804は障害時の対応が記載される。内容は、カラム803と同様である。このように、プロセッサのアーキテクチャによって、障害予兆検出時の優先度が異なる。これらをアーキテクチャ毎に管理するために障害対応テーブル111を設けている。   FIG. 8 shows the configuration of the failure handling table 111. The failure handling table 111 describes measures to be taken when a failure occurs in the processor or when a failure sign is detected. The countermeasure is described for each processor type 801. Based on the processor type 801, the architecture of the processor can be specified, and countermeasures against failures caused by the difference in architecture can be managed. A column 802 stores processor parts. A column 803 stores a response when a failure sign is detected. For example, contents such as core change and virtualization mechanism schedule prohibition. The core replacement means that a replacement core is assigned by detecting a failure sign. Further, the prohibition of the virtualization mechanism schedule means prohibiting the virtualization mechanism schedule for the core or the processor. Processor replacement means that all cores of the processor are replaced with cores of other processors. The correspondence varies depending on the site. For example, when the core and the primary cache are built in the same core and are independent of the other cores, the replacement in units of cores is sufficient. However, when the secondary cache is shared by a plurality of cores, it is better to replace the processor in units of processors because of the large impact at the time of failure. A column 804 describes a response at the time of failure. The contents are the same as in column 803. Thus, the priority at the time of failure sign detection differs depending on the processor architecture. In order to manage these for each architecture, a failure correspondence table 111 is provided.

図9は、仮想サーバコンソールの例を示している。図9では、新たに仮想サーバを生成する場合のユーザインターフェースを記述している。901はユーザインタフェースの全体図を示している。902〜904は、仮想サーバに対するアクションを選択するメニューである。ここで選択されたメニューの内容が管理サーバコンソール901の右に表示される。図9では、仮想サーバ追加の内容が表示されている。905は、新たに生成する仮想サーバのIDを入力する。仮想サーバをどのシステムIDに生成するかは、ユーザが選択することができる。906は、生成する仮想サーバの特性を入力する。これは、本発明の特徴となる内容である。仮想サーバの特性には、例えば、信頼性重視や性能重視、あるいは一般といった特性が考えられる。信頼性重視とは、同じ量のリソースを割り当てる場合であっても、障害に対して強くなる割り当て方をする事を意味する。また、性能重視とは、信頼性よりも性能が高いことを重視する割り当て方を意味する。一般とは、信頼性も性能も重視せず、空きリソースを割り当てることを意味する。907はプロセッサの割り当て方を選択する。例えば、占有割り当て/共有割り当てといった割り当て方や、割り当ての単位としてコア単位やプロセッサ単位、またその数を記載する。908は、割り当てメモリ量を入力する。909は、割り当てるI/Oデバイスを入力する。リソースの入力の際には、仮想化機構管理テーブル109のリソースプールに記載された内容をユーザインタフェースに反映すると入力ミスを少なくでき、また入力が容易になる。全ての項目を入力し終わると、910のボタンを押すことで入力されたパラメタで新たな仮想サーバを生成することができる。   FIG. 9 shows an example of a virtual server console. FIG. 9 describes a user interface when a new virtual server is generated. Reference numeral 901 denotes an overall view of the user interface. Reference numerals 902 to 904 denote menus for selecting an action for the virtual server. The contents of the menu selected here are displayed on the right side of the management server console 901. In FIG. 9, the contents of the virtual server addition are displayed. In 905, an ID of a newly generated virtual server is input. The user can select which system ID the virtual server is generated for. In 906, the characteristics of the virtual server to be generated are input. This is a feature of the present invention. As the characteristics of the virtual server, for example, characteristics such as emphasizing reliability, emphasizing performance, or general are conceivable. The importance of reliability means that even when the same amount of resources is allocated, an allocation method that is strong against a failure is performed. Further, performance-oriented means an allocation method that places importance on higher performance than reliability. General means that free resources are allocated without regard to reliability and performance. In step 907, a processor allocation method is selected. For example, an allocation method such as exclusive allocation / shared allocation, a core unit, a processor unit, and the number of allocation units are described. In 908, an allocated memory amount is input. A field 909 inputs an I / O device to be allocated. When inputting resources, if the contents described in the resource pool of the virtualization mechanism management table 109 are reflected in the user interface, input errors can be reduced and input can be facilitated. When all the items have been input, a new virtual server can be generated with the input parameters by pressing the button 910.

図10は、コア割り当てプログラム103のフローチャートを示している。コア割り当てプログラム103は、図9におけるユーザインタフェースの906の入力結果に応じて動作が変わる。コア割り当てプログラム103の各ステップについて説明する。ステップ1001は信頼性重視が入力された場合に、ステップ1003に移行し信頼性重視型コア割り当て処理を行う。ステップ1002は、性能重視が入力された場合に、ステップ1004に移行し性能重視型コア割り当て処理を行う。いずれでもない場合は、ステップ1005に移行し、一般型コア割り当て処理を行う。   FIG. 10 shows a flowchart of the core allocation program 103. The operation of the core allocation program 103 changes according to the input result of the user interface 906 in FIG. Each step of the core allocation program 103 will be described. In step 1001, when reliability emphasis is input, the process shifts to step 1003 to perform reliability emphasis core allocation processing. In step 1002, when the emphasis on performance is input, the process shifts to step 1004 to perform performance-oriented core allocation processing. If neither of these is the case, the process moves to step 1005 to perform general type core allocation processing.

次に、各割り当て処理について詳細なフローチャートで説明する。信頼性重視型コア割り当て処理1003は、仮想サーバ生成時に、信頼性が高くなるコアの割り当て方を行う。ここで、信頼性が高いコアの割り当てとは、単一の仮想サーバに複数のコアを割り当てる場合に、異なるプロセッサのコアを選択して割り当てることを意味する。ステップ1101は、サーバ構成テーブル107から、プロセッサ当たりのコア数を取得する。ステップ1102は、コア数から、分散するプロセッサ数を決定する。例えば、プロセッサ内のコア数が多いほど、できるだけ多くの異なるプロセッサのコアを選択することを意味する。これは、コア数が多いプロセッサほど、障害が発生した場合の影響が大きくなるためである。そのため、できるだけ多くの異なるプロセッサのコアを選択して割り当てることで、プロセッサ単位で障害が発生した場合でも、仮想サーバの全てのコアが障害によって停止することを防ぐことができる。ステップ1103は、仮想化機構管理テーブル109のリソースプールから、プロセッサを選択する。ステップ1104は、選択されたプロセッサが、全て同一プロセッサかどうか判定する。ステップ1105は、リソースプールから同タイプのプロセッサを選択する。これは、単一の仮想サーバに割り当てるコアを決定する場合に、できるだけ同じコア数を有するプロセッサを選択した方が、信頼性のばらつきを少なくすることができるためである。同一種類の空きプロセッサが存在しない場合は、できるだけコア数が近いプロセッサを選択するなどの方法も考えられる。ステップ1106は、仮想化機構管理テーブル109を更新する。ステップ1107は、選択されたコアに基づいて、仮想化機構115に対して、新たな仮想サーバの生成を指示する。このように、単一の仮想サーバに対して、異なるプロセッサのコアを選択することで、単一のプロセッサの障害によって、仮想サーバの全てのコアが同時に障害になることを防ぐことができる。   Next, each allocation process will be described with reference to a detailed flowchart. The reliability-oriented core allocation processing 1003 performs a core allocation method with high reliability when generating a virtual server. Here, the assignment of cores with high reliability means that when assigning a plurality of cores to a single virtual server, cores of different processors are selected and assigned. Step 1101 obtains the number of cores per processor from the server configuration table 107. Step 1102 determines the number of distributed processors from the number of cores. For example, the larger the number of cores in the processor, the larger the number of different processor cores that can be selected. This is because the larger the number of cores, the greater the impact when a failure occurs. Therefore, by selecting and assigning as many different processor cores as possible, even if a failure occurs in units of processors, it is possible to prevent all the cores of the virtual server from being stopped due to the failure. In step 1103, a processor is selected from the resource pool of the virtualization mechanism management table 109. Step 1104 determines whether the selected processors are all the same processor. Step 1105 selects the same type of processor from the resource pool. This is because when determining the cores to be assigned to a single virtual server, it is possible to reduce the variation in reliability by selecting processors having the same number of cores as possible. If there is no free processor of the same type, a method such as selecting a processor with as many cores as possible is also conceivable. Step 1106 updates the virtualization mechanism management table 109. Step 1107 instructs the virtualization mechanism 115 to generate a new virtual server based on the selected core. In this way, by selecting different processor cores for a single virtual server, it is possible to prevent all cores of the virtual server from failing simultaneously due to a single processor failure.

図12は、性能重視型のコア割り当て処理1004のフローチャートを示している。ここで性能重視型とは、仮想サーバに割り当てるコアをできるだけ同一プロセッサのコアを割り当てることを意味する。これは、例えば複数のコアから共有される2次キャッシュを効率的に使用するためである。単一の仮想サーバ内で実行されるプログラムは、同じ命令やデータを参照/更新する可能性が高い。こういったケースでは、できるだけキャッシュを共有した方が、キャッシュのヒット率を向上させることができる。従って、キャッシュを効率よく使用し高い性能を得るためには、できるだけ同一プロセッサのコアを割り当てた方が良い。性能重視型のコア割り当て処理1004におけるステップ1201は、仮想化機構管理テーブル109のリソースプールから、プロセッサ当たりのコア数が多く、空きも多いコアを選択する。ステップ1203は、予定のコア数に達したかどうか判定する。予定のコア数に達していない場合は、ステップ1204にて、仮想化機構管理テーブル109のリソースプールから、プロセッサ当たりのコア数が多く、空きも多いコアを選択し、ステップ1203を繰り返す。ステップ1205は、仮想化機構管理テーブル109を更新する。ステップ1206は、選択されたコアに基づいて、仮想化機構115に対して、新たな仮想サーバの生成を指示する。これらの処理により、仮想サーバの性能を向上させる割り当て方を提供することができるようになる。   FIG. 12 shows a flowchart of the performance-oriented core allocation processing 1004. Here, the performance-oriented type means that the cores assigned to the virtual server are assigned the same processor core as much as possible. This is because, for example, a secondary cache shared by a plurality of cores is used efficiently. A program executed in a single virtual server is likely to refer / update the same instruction or data. In these cases, the cache hit rate can be improved by sharing the cache as much as possible. Therefore, in order to use the cache efficiently and obtain high performance, it is better to allocate cores of the same processor as much as possible. In step 1201 of the performance-oriented core allocation processing 1004, a core having a large number of cores per processor and a large number of free spaces is selected from the resource pool of the virtualization mechanism management table 109. Step 1203 determines whether the planned number of cores has been reached. If the planned number of cores has not been reached, in step 1204, a core having a large number of cores per processor and a large number of free cores is selected from the resource pool of the virtualization mechanism management table 109, and step 1203 is repeated. Step 1205 updates the virtualization mechanism management table 109. Step 1206 instructs the virtualization mechanism 115 to generate a new virtual server based on the selected core. With these processes, it is possible to provide an allocation method that improves the performance of the virtual server.

図13は、一般型コア割り当て処理1005のフローチャートを示している。一般型とは、信頼性も性能も重視しない場合の割り当て方である。基本的には、空きリソースを順番に検索しコアを割り当てる。一般型コア割り当て処理1005にけるステップ1301は、仮想化機構管理テーブル109のリソースプールから、空きコアを選択する。ステップ1302は、予定のコア数に達したかどうか判定する。予定のコア数に達していない場合は、ステップ1303にて、仮想化機構管理テーブルのリソースプールから、空きコアを選択した後にステップ1302を繰り返す。ステップ1304は、仮想化機構管理テーブル109を更新する。ステップ1305は、仮想化機構115に対して、新たな仮想サーバの生成を指示する。   FIG. 13 shows a flowchart of the general-type core assignment process 1005. The general type is a method of assignment when neither reliability nor performance is important. Basically, free resources are searched in order and cores are allocated. Step 1301 in the general type core allocation process 1005 selects a free core from the resource pool of the virtualization mechanism management table 109. Step 1302 determines whether the planned number of cores has been reached. If the planned number of cores has not been reached, a free core is selected from the resource pool of the virtualization mechanism management table in step 1303, and then step 1302 is repeated. Step 1304 updates the virtualization mechanism management table 109. Step 1305 instructs the virtualization mechanism 115 to generate a new virtual server.

図14は、信頼性重視型コア割り当て処理と、性能重視型コア割り当て処理の結果の一例を示している。1401は、信頼性重視型コア割り当て処理の結果である。このように、複数の異なるプロセッサのコアを、単一の仮想サーバに割り当てる事が特徴である。これにより、プロセッサに障害が発生しても、仮想サーバの全てを停止させることがない。一方、1402は、性能重視型コア割り当て結果の一例である。このように、できるだけ同一のプロセッサのコアを仮想サーバに割り当てることが特徴である。これにより、共有される2次キャッシュの命令やデータを有効に使用することで、性能を向上させることができる。図では述べていないが、性能と信頼性の両方を重視する割り当て方法もある。例えば、異なるプロセッサの数を少なくし、その代わりに同一プロセッサのコアを優先して割り当てるといった2つの割り当て方の混在である。こうすることで、信頼性と性能を満たす仮想サーバを生成することも可能である。   FIG. 14 shows an example of the results of the reliability-oriented core allocation process and the performance-oriented core allocation process. 1401 is the result of the reliability-oriented core allocation process. As described above, a feature is that cores of a plurality of different processors are allocated to a single virtual server. Thereby, even if a failure occurs in the processor, all the virtual servers are not stopped. On the other hand, 1402 is an example of a performance-oriented core allocation result. In this way, the feature is that cores of the same processor as much as possible are allocated to the virtual server. Thus, the performance can be improved by effectively using the shared secondary cache instructions and data. Although not shown in the figure, there is also an allocation method that emphasizes both performance and reliability. For example, there is a mixture of two allocation methods in which the number of different processors is reduced, and instead the cores of the same processor are allocated with priority. By doing so, it is possible to generate a virtual server that satisfies the reliability and performance.

図15は、障害予兆検出機構302のフローチャートを示している。障害予兆検出機構302は、仮想化機構115内で実行され、プロセッサの空き(アイドル)時や、所定の時間を経過した場合にハードウェアのチェックを行う。障害予兆検出機構302におけるステップ1501は、プロセッサがアイドルかどうかを判定する。ステップ1502は、前回のチェックから所定の時間が経過したかを判定する。ステップ1501あるいはステップ1502のいずれかの条件が一致すれば、ステップ1503以降のハードウェアチェックを実行する。ステップ1503は、プロセッサコアチェックを実行する。プロセッサのコアに障害の予兆がないかチェックする処理を行う。ステップ1504はプロセッサ内の1次キャッシュに障害の予兆がないかチェックする。ステップ1505は、プロセッサ内の2次キャッシュに障害の予兆がないかチェックする。ステップ1506は、プロセッサ内のメモリバスに障害の予兆がないかチェックする。これらプロセッサ内の障害予兆チェックには、例えば、プロセッサに対しチェックのための専用命令を発効するなどの方法が考えられる。ステップ1507は、メモリに障害の予兆がないかチェックする。メモリのチェックは、例えば、パリティやECC(Error Check and Correct memory)等のメモリエラー検出機構を使用する等が考えられる。ステップ1508は、I/Oデバイスチェックを行う。ステップ1509は、プロセッサコントローラチェックを行う。ステップ1510では、ステップ1503〜ステップ1509までのチェック結果をプロセッサ管理テーブル110に書き込む。ステップ1511では、チェックした現在の時間を記録する。これは、次回のチェック判定(ステップ1502)に使用される。また、チェック時に障害の予兆ではなく、障害が発生していた場合にも、障害予兆と同様にプロセッサ管理テーブル110に記録する。これらの処理により、ハードウェアの障害を事前に把握することができるようになる。   FIG. 15 shows a flowchart of the failure sign detection mechanism 302. The failure sign detection mechanism 302 is executed in the virtualization mechanism 115 and checks the hardware when the processor is idle (idle) or when a predetermined time has elapsed. Step 1501 in the failure sign detection mechanism 302 determines whether the processor is idle. Step 1502 determines whether a predetermined time has elapsed since the previous check. If either of the conditions in step 1501 or step 1502 matches, hardware check after step 1503 is executed. Step 1503 performs a processor core check. The processor core is checked for signs of failure. Step 1504 checks the primary cache in the processor for signs of failure. Step 1505 checks the secondary cache in the processor for signs of failure. Step 1506 checks the memory bus in the processor for signs of failure. For the failure predictor check in these processors, for example, a method of issuing a dedicated instruction for checking to the processor can be considered. Step 1507 checks the memory for signs of failure. For example, the memory check may use a memory error detection mechanism such as parity or ECC (Error Check and Correct memory). Step 1508 performs an I / O device check. Step 1509 performs a processor controller check. In step 1510, the check results from step 1503 to step 1509 are written in the processor management table 110. In step 1511, the checked current time is recorded. This is used for the next check determination (step 1502). Also, when a failure has occurred instead of a failure sign at the time of the check, it is recorded in the processor management table 110 as with the failure sign. Through these processes, it becomes possible to grasp a hardware failure in advance.

図16は、障害管理プログラム104のフローチャートを示している。障害管理プログラム104におけるステップ1601は、障害が発生したかどうかを判定する。これは、プロセッサ管理テーブル110を参照することで判定することができる。ステップ1602は、障害の予兆を検出したかどうかを判定する。これもステップ1601と同様に、プロセッサ管理テーブル110を参照することで判定することができる。障害が発生していた場合には、ステップ1603に移行し、障害対策プログラムを実行する。また、障害の予兆が検出された場合には、ステップ1604に移行し、障害予兆対策プログラムを実行する。   FIG. 16 shows a flowchart of the failure management program 104. Step 1601 in the failure management program 104 determines whether a failure has occurred. This can be determined by referring to the processor management table 110. Step 1602 determines whether a failure sign has been detected. This can also be determined by referring to the processor management table 110 as in step 1601. If a failure has occurred, the process moves to step 1603, and the failure countermeasure program is executed. If a failure sign is detected, the process proceeds to step 1604 to execute a failure sign countermeasure program.

図17は、障害対策プログラム1603のフローチャートを示している。障害が発生したプロセッサやコアは、基本的には他のプロセッサやコアと交代する処理を行う。障害対策プログラム1603におけるステップ1701は、プロセッサ管理テーブル110から障害発生プロセッサを検索する。ステップ1702は、プロセッサ管理テーブル110から障害発生部位を検索する。ステップ1703は障害対応テーブル111を参照し、障害部位に対応した処理を検索する。ステップ1704は、障害対応がコア交代かどうかを判定する。コア交代の場合は、ステップ1605に移行し、仮想化機構管理テーブル109を検索し、障害発生プロセッサとは異なるプロセッサのコアを交代コアとして選択する。ステップ1706は、障害コアを仮想サーバから切り離し、ステップ1705にて選択した交代コアを割り当てる。ステップ1707は、障害対応がプロセッサ交代かどうかを判定する。プロセッサ交代の場合は、ステップ1708に移行し、仮想化機構管理テーブル109を検索し、異なるプロセッサを交代プロセッサとして選択する。ステップ1709では、障害プロセッサを切り離し、交代プロセッサを割り当てる。これらの処理により、障害が発生したコア、あるいはプロセッサに割り当てられていた仮想サーバを正常な状態に戻すことができる。   FIG. 17 shows a flowchart of the failure countermeasure program 1603. The processor or core in which the failure has occurred basically performs processing to replace another processor or core. A step 1701 in the failure countermeasure program 1603 searches the processor management table 110 for a failed processor. Step 1702 searches the processor management table 110 for a fault occurrence site. In step 1703, the failure correspondence table 111 is referred to and a process corresponding to the failure site is searched. Step 1704 determines whether the failure response is a core change. In the case of core replacement, the process proceeds to step 1605, the virtualization mechanism management table 109 is searched, and a core of a processor different from the failed processor is selected as the replacement core. Step 1706 separates the failed core from the virtual server and assigns the replacement core selected in step 1705. Step 1707 determines whether the failure response is a processor change. In the case of processor replacement, the process proceeds to step 1708, the virtualization mechanism management table 109 is searched, and a different processor is selected as the replacement processor. In step 1709, the faulty processor is disconnected and a replacement processor is assigned. By these processes, the virtual server assigned to the failed core or the processor can be returned to a normal state.

図18は、障害予兆対策プログラム1604のフローチャートを示している。障害予兆が検出したプロセッサやコアは、基本的には他のプロセッサやコアと交代する処理を行う。障害予兆対策プログラム1604におけるステップ1801は、プロセッサ管理テーブル110から障害予兆が検出されたプロセッサを検索する。ステップ1802は、プロセッサ管理テーブル110から障害予兆の発生部位を検索する。ステップ1803は障害対応テーブル111を参照し、障害予兆部位に対応した処理を検索する。ステップ1804は、スケジュール制御機構301に対し、概要部位を仮想化機構115の実行スケジュール対象から外す指示を発行する。これは、仮想化機構115を将来発生する可能性がある障害から保護することを目的としている。仮想化機構115は、生成された仮想サーバを含むシステム全体に影響を及ぼす可能性があるため、システム内において優先して保護すべき対象である。このステップ1804によって、障害予兆を検出したプロセッサあるいはコアをスケジュール対象から外すことで、システム全体の信頼性を向上することができる。ステップ1805は、障害予兆対応がコア交代かどうかを判定する。コア交代の場合は、ステップ1806に移行し、仮想化機構管理テーブル109を検索し、障害予兆を検出したプロセッサとは異なるプロセッサのコアを交代コアとして選択する。ステップ1807は、マイグレーション制御プログラム呼び出しを行う。ここで、マイグレーションとは、コアの交代時にシステムに影響を与えないようにする処理である。ステップ1808は、障害予兆対応がプロセッサ交代かどうかを判定する。プロセッサ交代の場合は、ステップ1809に移行し、仮想化機構管理テーブル109を検索し、異なるプロセッサを交代プロセッサとして選択する。ステップ1810では、マイグレーション制御プログラムの呼び出しを行う。これらの処理により、障害予兆が検出されたコア、あるいはプロセッサをシステムに影響を及ぼすことなく仮想サーバを正常な状態に戻すことができる。   FIG. 18 shows a flowchart of the failure predictor countermeasure program 1604. The processor or core in which the failure sign is detected basically performs processing to replace another processor or core. In step 1801 of the failure sign countermeasure program 1604, the processor in which the failure sign is detected is searched from the processor management table 110. In step 1802, the processor management table 110 is searched for the occurrence site of the failure sign. In step 1803, the failure correspondence table 111 is referenced to search for a process corresponding to the failure sign portion. Step 1804 issues an instruction to the schedule control mechanism 301 to remove the outline part from the execution schedule target of the virtualization mechanism 115. This is intended to protect the virtualization mechanism 115 from failures that may occur in the future. Since the virtualization mechanism 115 may affect the entire system including the generated virtual server, the virtualization mechanism 115 is a target to be protected with priority in the system. In step 1804, the reliability of the entire system can be improved by excluding the processor or core from which the failure sign has been detected from the schedule target. Step 1805 determines whether the failure predictor response is a core change. In the case of core replacement, the process proceeds to step 1806, the virtualization mechanism management table 109 is searched, and a core of a processor different from the processor that detected the failure sign is selected as the replacement core. In step 1807, a migration control program is called. Here, migration is a process for preventing the system from being affected when the core is changed. Step 1808 determines whether the failure predictor response is a processor change. In the case of processor replacement, the process proceeds to step 1809, the virtualization mechanism management table 109 is searched, and a different processor is selected as the replacement processor. In step 1810, the migration control program is called. With these processes, the virtual server can be returned to a normal state without affecting the system or the core or processor in which the failure sign is detected.

図19は、スケジュール制御機構301のフローチャートを示す。スケジュール制御機構301におけるステップ1901は、コア障害の予兆を検出したかどうかを検出する。コア障害の予兆を検出した場合、ステップ1902に移行し、該当コアをスケジュール対象から外すように、割り込み制御テーブル304を変更する。ステップ1903は、プロセッサ全体に影響する障害予兆を検出したかどうかを判定する。例えば、複数のコアから共有される2次キャッシュやメモリバスなどの障害予兆である。プロセッサ全体に影響を及ぼす障害の予兆を検出した場合には、該当プロセッサの全コアをスケジュール対象から外すように、割り込み制御テーブル304を変更する。   FIG. 19 shows a flowchart of the schedule control mechanism 301. Step 1901 in the schedule control mechanism 301 detects whether or not a sign of core failure has been detected. When a sign of a core failure is detected, the process proceeds to step 1902 and the interrupt control table 304 is changed so that the corresponding core is excluded from the schedule target. Step 1903 determines whether or not a failure sign affecting the entire processor has been detected. For example, a failure predictor such as a secondary cache or a memory bus shared by a plurality of cores. When a failure sign affecting the entire processor is detected, the interrupt control table 304 is changed so that all cores of the processor are excluded from the schedule target.

図20は、割り込み制御テーブル304を示している。カラム2001は、プロセッサIDが格納される。カラム2002は、コアIDが格納される。カラム2003は、割り込みレベルに応じた割り込み可/不可が格納される。割り込みレベルは、プロセッサアーキテクチャによって、レベル数や意味が異なるが、障害予兆を検出した場合には、プログラムの保護を目的として割り込みを不可に変更する。これにより、仮想化機構115のようなシステム全体に影響を及ぼすプログラムを保護することができる。一般に、プロセッサによって実行されるプログラムは、割り込みを受け付けたプロセッサ内のコアで実行される。コアやプロセッサに障害が発生していない場合は、発生した割り込みは複数のコアで均等にプログラムが実行されるように分散される。しかし、障害予兆を検出した場合は、近い将来に障害が発生する可能性を有するため、特に仮想化機構115のような信頼性を重視されるプログラムは保護する必要がある。そのため、障害予兆を検出したコアやプロセッサには、割り込みを不可にすることで、実行スケジュールから外す処理を行う。図20では、例えばコアの障害予兆を検出したプロセッサ1のコア1は割り込みが不可に設定される。また、プロセッサ全体に影響する障害予兆を検出したプロセッサ2は全てのコアに対して、割り込みが不可となるように設定される。   FIG. 20 shows the interrupt control table 304. A column 2001 stores processor IDs. A column 2002 stores a core ID. A column 2003 stores interrupt enable / disable according to the interrupt level. The number and meaning of interrupt levels differ depending on the processor architecture. However, when a failure sign is detected, the interrupt is changed to disable for the purpose of protecting the program. As a result, programs that affect the entire system such as the virtualization mechanism 115 can be protected. Generally, a program executed by a processor is executed by a core in the processor that has accepted an interrupt. When no failure occurs in the core or the processor, the generated interrupt is distributed so that the program is executed evenly in a plurality of cores. However, when a failure sign is detected, there is a possibility that a failure will occur in the near future. Therefore, a program such as the virtualization mechanism 115 that emphasizes reliability needs to be protected. For this reason, the core or the processor that has detected the failure sign is disabled from being executed by disabling interrupts. In FIG. 20, for example, the core 1 of the processor 1 that has detected a core failure sign is set to be non-interruptible. Further, the processor 2 that has detected a failure sign affecting the entire processor is set so that interrupts are disabled for all cores.

図21は、マイグレーション制御プログラム106のフローチャートを示している。マイグレーション制御プログラム106におけるステップ2101は、コア障害予兆を検出したかどうかを判定する。コア障害予兆を検出した場合は、ステップ2102に移行し、プロセッサ制御機構303に対し、障害予兆検出コアと交代コアの制御モードをステップ実行に切替指示を行う。これは、プロセッサの実行モードをステップ実行に変更することで、命令がどこまで実行されたかを正確に把握するためである。通常の実行モードでは、コア内で複数の命令が同時に実行されるため、どこまでの命令を実行したか判定することができない。そのため、プロセッサを一時的にステップ実行モードに移行し、外部からプロセッサの命令レベルの動作を管理する。交代コアをステップ実行モードに移行するのは、実行を外部から制御するためである。ステップ2103は、プロセッサ制御機構303から、該当コアの状態を取得する。ここで状態とは、交代コアに制御をスムーズに移行するために必要な情報である。例えば、プログラムカウンタのように命令の実行アドレスが格納された制御レジスタの内容などである。ステップ2104は、交代コアに対し、コアの状態を設定する。ステップ2105では、コア交代のために、障害予兆検出コアを停止し、交代コアの実行を指示する。これにより、システムに影響を与えることなく、交代コアに移行することができる。ステップ2106は、プロセッサ障害予兆を検出したかどうかを判定する。プロセッサ障害予兆を検出した場合には、ステップ2107に移行し、プロセッサ制御機構303に対し、障害予兆検出プロセッサと交代プロセッサの全コアの制御モードをステップ実行に切替指示を行う。ステップ2108は、プロセッサ制御機構303から、該当する全コアの状態を取得する。ステップ2109は、交代プロセッサのコアに対して、ステップ2108で取得したコアの状態を設定する。ステップ2110は、障害予兆検出プロセッサを停止し、交代プロセッサの実行を指示する。これにより、システムに影響を与えることなく、プロセッサ全体のマイグレーションが可能になる。   FIG. 21 shows a flowchart of the migration control program 106. Step 2101 in the migration control program 106 determines whether a core failure sign has been detected. If a core failure sign is detected, the process proceeds to step 2102, and the processor control mechanism 303 is instructed to switch the control mode between the failure sign detection core and the replacement core to step execution. This is to accurately grasp how far the instruction has been executed by changing the execution mode of the processor to step execution. In the normal execution mode, since a plurality of instructions are executed simultaneously in the core, it is not possible to determine how many instructions have been executed. Therefore, the processor is temporarily shifted to the step execution mode to manage the instruction level operation of the processor from the outside. The reason for shifting the replacement core to the step execution mode is to control the execution from the outside. Step 2103 obtains the state of the corresponding core from the processor control mechanism 303. Here, the state is information necessary for smoothly transferring control to the replacement core. For example, the contents of a control register that stores an instruction execution address such as a program counter. Step 2104 sets the state of the core for the alternate core. In step 2105, the failure sign detection core is stopped and the execution of the replacement core is instructed for the core replacement. Thereby, it is possible to shift to the replacement core without affecting the system. Step 2106 determines whether a processor failure sign has been detected. When a processor failure sign is detected, the process proceeds to step 2107, and the processor control mechanism 303 is instructed to switch the control modes of all cores of the failure sign detection processor and the replacement processor to step execution. Step 2108 obtains the states of all corresponding cores from the processor control mechanism 303. Step 2109 sets the core state acquired in step 2108 for the core of the replacement processor. Step 2110 stops the failure sign detection processor and instructs execution of the replacement processor. As a result, the entire processor can be migrated without affecting the system.

図22は、プロセッサ制御機構303のフローチャートを示す。プロセッサ制御機構303におけるステップ2201は、通常実行モードへの変更指示かどうかを判定する。通常実行モードへの変更指示の場合はステップ2202に移行し、指定コアを通常実行モードに切り替える。ステップ2203は、ステップ実行モードへの切替かどうかを判定する。ステップ実行モードへの切替の場合は、指定コアをステップ実行モードに切り替える。   FIG. 22 shows a flowchart of the processor control mechanism 303. Step 2201 in the processor control mechanism 303 determines whether or not it is an instruction to change to the normal execution mode. In the case of an instruction to change to the normal execution mode, the process proceeds to step 2202, and the designated core is switched to the normal execution mode. Step 2203 determines whether or not to switch to the step execution mode. In the case of switching to the step execution mode, the designated core is switched to the step execution mode.

上記実施例1により、プロセッサの障害の予兆検出によって事前に障害を回避し、かつ障害が発生した場合でも、複数のプロセッサのコアを単一の仮想サーバに割り当てることで信頼性を高めることができる。また、ユーザインタフェースとして、高信頼重視と性能重視を設け、仮想サーバに対するコアの割り当てを制御することで、プロセッサを効率よく使用することができるようになる。   According to the first embodiment, a failure can be avoided in advance by detecting a failure sign of the processor, and even when a failure occurs, reliability can be improved by assigning a core of a plurality of processors to a single virtual server. . In addition, high reliability and performance are emphasized as user interfaces, and the processor can be used efficiently by controlling the assignment of cores to virtual servers.

なお、本実施例1では、仮想化機構管理プログラム102や各種テーブルは管理サーバ101のメモリ2901に格納されているが、サーバ装置112のメモリ113に格納されても良い。例えば、サーバ装置112に仮想化機構管理プログラム102や各種テーブルを配置する方法の一つとして、仮想サーバ114の一つに管理サーバ101の仮想化機構管理プログラム102や各種テーブルを配置しても良い。   In the first embodiment, the virtualization mechanism management program 102 and various tables are stored in the memory 2901 of the management server 101, but may be stored in the memory 113 of the server device 112. For example, as one method of arranging the virtualization mechanism management program 102 and various tables in the server device 112, the virtualization mechanism management program 102 and various tables of the management server 101 may be arranged in one of the virtual servers 114. .

また、本実施例1では、仮想化機構115を用いてプロセッサコア116の割当てを行っているが、仮想化機構115は必ずしも必要ではない。例えば、単一のオペレーティングシステムがマルチコアの割当てを行う場合にも本発明を適用できる。例えば、オペレーティングシステムのプロセスやスレッドといったプログラム実行環境に対して本発明を適用できる。また他の例では、オペレーティングシステムが異なる複数のオペレーティングシステムを実行可能な環境を生成する場合にも本発明を適用できる。   In the first embodiment, the processor cores 116 are allocated using the virtualization mechanism 115, but the virtualization mechanism 115 is not always necessary. For example, the present invention can be applied to a case where a single operating system performs multi-core assignment. For example, the present invention can be applied to a program execution environment such as an operating system process or thread. In another example, the present invention can be applied to the case where an environment capable of executing a plurality of operating systems with different operating systems is generated.

図23は、本発明における実施例2のプロセッサの構成を示している。実施例1におけるコアは、実施例2における汎用コアであるが、実施例2では同種のコアだけでなく、異なる種類のコアが搭載されたプロセッサ119における管理方法について述べる。大きく異なる部分は、プロセッサ119に専用コア2301を搭載している点である。専用コア2301とは、特定の処理を高速化することを目的としたコアを意味する。例えば、浮動小数点演算の高速化や、文字列処理の高速化などが考えられる。   FIG. 23 shows the configuration of the processor according to the second embodiment of the present invention. The core in the first embodiment is a general-purpose core in the second embodiment. In the second embodiment, a management method in the processor 119 in which not only the same type of core but also different types of cores are mounted will be described. A significant difference is that a dedicated core 2301 is mounted on the processor 119. The dedicated core 2301 means a core for the purpose of speeding up a specific process. For example, high-speed floating-point arithmetic and high-speed character string processing can be considered.

図24は、実施例2における障害対応テーブル111の構成を示している。実施例1とは異なり、カラム802のプロセッサ部位に専用コアの項目が追加される。実施例2では、専用コアの数が汎用コアに比べて少ないため、障害に対する優先順位は汎用コアよりも高く設定することを意味する。つまり、数が少ない種類のコアの障害はシステムに与える影響が大きいため交替を優先するように設定する。実施例2では、専用コアより汎用コアの数が多い例を示しているが、逆のケースも考えられる。本発明においては、専用コアか汎用コアかに関係なく、数が少ないコアの交替優先度を高めることが特徴となる。このように、種類が異なるコアが搭載されると、仮想サーバのコア管理方法も異なる。   FIG. 24 shows the configuration of the failure handling table 111 in the second embodiment. Unlike the first embodiment, a dedicated core item is added to the processor portion of the column 802. In the second embodiment, since the number of dedicated cores is smaller than that of the general-purpose cores, it means that the priority order for failure is set higher than that of the general-purpose cores. In other words, since the failure of a small number of types of cores has a large influence on the system, it is set to give priority to replacement. In the second embodiment, an example in which the number of general-purpose cores is larger than that of dedicated cores is shown. The present invention is characterized by increasing the replacement priority of a small number of cores regardless of whether they are dedicated cores or general-purpose cores. Thus, when different types of cores are mounted, the virtual server core management method also differs.

図25は、実施例2における障害対策プログラム1603のフローチャートを示している。障害が発生したプロセッサやコアは、基本的には他のプロセッサやコアと交代する処理を行う。実施例2における障害対策プログラム1603におけるステップ1701は、プロセッサ管理テーブル110から障害発生プロセッサを検索する。ステップ1702は、プロセッサ管理テーブル110から障害発生部位を検索する。ステップ1703は障害対応テーブル111を参照し、障害部位に対応した処理を検索する。ステップ1704は、障害対応がコア交代かどうかを判定する。コア交代の場合は、ステップ1605に移行し、仮想化機構管理テーブル109を検索し、障害発生プロセッサとは異なるプロセッサのコアを交代コアとして選択する。ステップ1706は、障害コアを仮想サーバから切り離し、ステップ1705にて選択した交代コアを割り当てる。ステップ1707は、障害対応がプロセッサ交代かどうかを判定する。プロセッサ交代の場合は、ステップ1708に移行し、仮想化機構管理テーブル109を検索し、異なるプロセッサを交代プロセッサとして選択する。ステップ1709では、障害プロセッサを切り離し、交代プロセッサを割り当てる。ステップ2501では、専用コアの交替かどうかを判定する。専用コアの交替であればステップ2502に移行し、専用コア交替プログラムの呼び出しを行う。これらの処理により、障害が発生したコア、あるいはプロセッサに割り当てられていた仮想サーバを正常な状態に戻すことができる。   FIG. 25 shows a flowchart of the failure countermeasure program 1603 in the second embodiment. The processor or core in which the failure has occurred basically performs processing to replace another processor or core. In step 1701 of the failure countermeasure program 1603 in the second embodiment, a processor in which a failure has occurred is searched from the processor management table 110. Step 1702 searches the processor management table 110 for a fault occurrence site. In step 1703, the failure correspondence table 111 is referred to and a process corresponding to the failure site is searched. Step 1704 determines whether the failure response is a core change. In the case of core replacement, the process proceeds to step 1605, the virtualization mechanism management table 109 is searched, and a core of a processor different from the failed processor is selected as the replacement core. Step 1706 separates the failed core from the virtual server and assigns the replacement core selected in step 1705. Step 1707 determines whether the failure response is a processor change. In the case of processor replacement, the process proceeds to step 1708, the virtualization mechanism management table 109 is searched, and a different processor is selected as the replacement processor. In step 1709, the faulty processor is disconnected and a replacement processor is assigned. In step 2501, it is determined whether or not the dedicated core is replaced. If it is the replacement of the dedicated core, the process proceeds to step 2502, and the dedicated core replacement program is called. By these processes, the virtual server assigned to the failed core or the processor can be returned to a normal state.

図26は、専用コア交替プログラム2502のフローチャートを示す。専用コア交替プログラム2502におけるステップ2601は、交替のための専用コアが存在するかどうかを判定する。交替コアがあれば、ステップ2602に移行し、仮想化機構管理テーブル109を検索し、障害発生プロセッサとは異なるプロセッサのコアを選択する。ここでコアとは専用コアを意味する。ステップ2603では、障害コアを切り離し、交替コアを割り当てる。一方、交替コアが存在しなかった場合は、ステップ2604に移行し、仮想化機構管理テーブル109を検索し、障害が発生したプロセッサとは異なるプロセッサの汎用コアを選択する。ステップ2605では、汎用コア上で専用コアの機能をエミュレーションするプログラムを実行し、専用コアの交替とする。ステップ2606は、当該汎用コアを専用コアとして割り当てる。これらの処理により、数が少ないコアを汎用コアでエミュレーションすることで、システムを停止することなく処理を継続できる。なお、障害予兆検出時の動作についても同様の処理を適用できる。   FIG. 26 shows a flowchart of the dedicated core replacement program 2502. Step 2601 in the dedicated core replacement program 2502 determines whether there is a dedicated core for replacement. If there is a replacement core, the process proceeds to step 2602, the virtualization mechanism management table 109 is searched, and a core of a processor different from the failed processor is selected. Here, the core means a dedicated core. In step 2603, the failed core is separated and a replacement core is assigned. On the other hand, if the replacement core does not exist, the process proceeds to step 2604, the virtualization mechanism management table 109 is searched, and a general-purpose core of a processor different from the processor in which the failure has occurred is selected. In step 2605, a program for emulating the function of the dedicated core is executed on the general-purpose core, and the dedicated core is replaced. Step 2606 assigns the general-purpose core as a dedicated core. With these processes, the core can be continued without stopping the system by emulating a small number of cores with a general-purpose core. The same processing can be applied to the operation at the time of failure sign detection.

図27は、プロセッサやプロセッサのコア障害時にアプリケーションプログラムのリカバリ例を示している。仮想サーバ114内では、オペレーティングシステム2704が稼働し、またその上でアプリケーションプログラム2701が実行されている。アプリケーションプログラムは、スナップショット取得プログラム2702とリカバリプログラム2703を有する。スナップショット取得プログラム2702は、定期的にアプリケーションの動作状態を記録する機能を有する。これは、障害が発生した際に、再実行可能にするためである。例えば、アプリケーションプログラムの実行結果等である。プロセッサやコアに障害が発生した場合には、スナップショット取得プログラム2702が取得した状態を、リカバリプログラム2703が読み込み、アプリケーションプログラム2701の実行を再開することで目的を果たすことができる。   FIG. 27 shows an example of recovery of an application program when a processor or a processor core fails. In the virtual server 114, an operating system 2704 runs and an application program 2701 is executed on the operating system 2704. The application program has a snapshot acquisition program 2702 and a recovery program 2703. The snapshot acquisition program 2702 has a function of periodically recording the operation state of the application. This is to enable re-execution when a failure occurs. For example, an execution result of an application program. When a failure occurs in the processor or the core, the recovery program 2703 reads the state acquired by the snapshot acquisition program 2702, and the execution of the application program 2701 is resumed.

図28は、実施例3におけるサーバ構成テーブル108を示す。実施例1と異なる箇所はカラム2801が追加されたことである。カラム2801は、仮想化機構どうしが連携しあうことを意味している。システムIDは異なるが、仮想化機構がお互いに連携することで、複数のシステムを単一のシステムに見せることができる。図28では、仮想化機構1と仮想化機構2が連携している事を意味している。こういった場合、障害予兆や障害を検出した場合に、交代の対象を拡大することができる。例えば、仮想化機構1に属するプロセッサID1のコアに障害が発生した場合に、プロセッサ3が有するコアを交代の対象に選択することができる。この連携によって、システムの信頼性や可用性を向上することができるようになる。   FIG. 28 illustrates the server configuration table 108 according to the third embodiment. A difference from the first embodiment is that a column 2801 is added. A column 2801 means that the virtualization mechanisms cooperate with each other. Although the system IDs are different, the virtualization mechanisms cooperate with each other, so that a plurality of systems can be shown as a single system. In FIG. 28, this means that the virtualization mechanism 1 and the virtualization mechanism 2 are linked. In such a case, when a failure sign or failure is detected, the target for replacement can be expanded. For example, when a failure occurs in the core of the processor ID1 belonging to the virtualization mechanism 1, the core of the processor 3 can be selected as a replacement target. This cooperation can improve the reliability and availability of the system.

マルチコアプロセッサで稼働する計算機を用いる分野に利用される。   It is used in the field using computers that run on multi-core processors.

101 管理サーバ
102 仮想化機構管理プログラム
103 コア割り当てプログラム
104 障害管理プログラム
105 スケジュール制御プログラム
106 マイグレーション制御プログラム
107 コア管理テーブル
108 サーバ構成テーブル
109 仮想化機構管理テーブル
110 プロセッサ管理テーブル
111 障害対応テーブル
112 サーバ装置
115 仮想化機構
114 仮想サーバ
119 プロセッサ
116 コア
DESCRIPTION OF SYMBOLS 101 Management server 102 Virtualization mechanism management program 103 Core allocation program 104 Failure management program 105 Schedule control program 106 Migration control program 107 Core management table 108 Server configuration table 109 Virtualization mechanism management table 110 Processor management table 111 Failure correspondence table 112 Server apparatus 115 Virtualization Mechanism 114 Virtual Server 119 Processor 116 Core

Claims (6)

複数の演算コアを有する複数のプロセッサを有するサーバであって、前記サーバでは仮想サーバを生成し制御する仮想化機構が稼働し、前記仮想化機構は管理サーバによって管理される仮想化環境において、
前記仮想化機構は前記プロセッサの障害予兆を検出する障害予兆検出機構を有し、
前記障害予兆検出機構がプロセッサあるいは前記演算コアの障害予兆を検出した場合に、
前記管理サーバは前記仮想化機構が前記障害予兆を検出したプロセッサあるいは前記演算コアで実行されないように実行スケジュールを変更し、
前記管理サーバは、障害予兆を検出した前記プロセッサの部位ごとに、当該プロセッサを交代するか、あるいは当該演算コアを交代するかを保持する対応テーブルを有し、
障害予兆を検出した場合に、前記対応テーブルに基づき前記プロセッサあるいは前記演算コアを交代し、
前記プロセッサが異なる種類の前記演算コアを有する場合に、前記障害予兆検出時に種類が少ない前記演算コアを優先して交代することを特徴とするマルチコアプロセッサ制御方法。
A server having a plurality of processors having a plurality of arithmetic cores, wherein a virtualization mechanism for generating and controlling a virtual server is operated in the server, and the virtualization mechanism is managed in a virtualization environment managed by a management server.
The virtualization mechanism has a failure sign detection mechanism for detecting a failure sign of the processor,
When the failure sign detection mechanism detects a failure sign of the processor or the arithmetic core,
The management server changes the execution schedule so that the virtualization mechanism is not executed by the processor or the arithmetic core that detects the failure sign,
The management server has a correspondence table that holds whether to replace the processor or the computing core for each part of the processor that has detected a failure sign ,
When a failure sign is detected, the processor or the arithmetic core is replaced based on the correspondence table,
A multi-core processor control method characterized in that, when the processor has the different types of computing cores, the computing cores with fewer types are preferentially replaced when the failure sign is detected.
前記障害予兆検出時の対応テーブルには、前記障害予兆検出時の交代内容に加え、障害を検出した前記プロセッサの部位ごとに、当該プロセッサを交代するか、あるいは当該演算コアを交代するかについても保持するものであり、前記プロセッサの部位には、汎用コアもしくは専用コアを含むものであることを特徴とした請求項1のマルチコアプロセッサ制御方法。 The correspondence table at the time of failure sign detection includes, in addition to the contents of replacement at the time of failure sign detection, whether to replace the processor or the calculation core for each part of the processor that has detected a failure. The multi-core processor control method according to claim 1 , wherein the processor portion includes a general-purpose core or a dedicated core . 複数の演算コアを有する複数のプロセッサを有する計算機を備えた計算機システムであって、
前記計算機システムでは、仮想サーバを生成し制御する仮想化機構が稼働し、前記仮想化機構は管理サーバによって管理され、
前記仮想化機構は、前記プロセッサの障害予兆を検出する障害予兆検出機構を有し、
前記障害予兆検出機構は、プロセッサあるいは前記演算コアの障害予兆を検出し、
前記管理サーバは、
前記仮想化機構が前記障害予兆を検出したプロセッサあるいは前記演算コアで実行されないように実行スケジュールを変更する手段と、
障害予兆を検出した前記プロセッサの部位ごとに、当該プロセッサを交代するか、あるいは当該演算コアを交代するかを保持する対応テーブルと、
前記障害予兆を検出した場合に、前記対応テーブルに基づき前記プロセッサあるいは前記演算コアを交代するとともに、前記プロセッサが異なる種類の前記演算コアを有する場合に、前記障害予兆検出時に種類が少ない前記演算コアを優先して交代する手段を有することを特徴とするマルチコアプロセッサを有する計算機システム。
A computer system including a computer having a plurality of processors having a plurality of arithmetic cores,
In the computer system, a virtualization mechanism that generates and controls a virtual server operates, and the virtualization mechanism is managed by a management server,
The virtualization mechanism has a failure sign detection mechanism for detecting a failure sign of the processor,
The failure sign detection mechanism detects a failure sign of a processor or the arithmetic core,
The management server
Means for changing the execution schedule so that the virtualization mechanism is not executed by the processor or the arithmetic core that detects the failure sign;
A correspondence table that holds whether to replace the processor or the computing core for each part of the processor that has detected a failure sign ;
When the failure sign is detected, the processor or the calculation core is replaced based on the correspondence table, and when the processor has different types of calculation cores, the number of the calculation cores is small when the failure sign is detected. A computer system having a multi-core processor, characterized in that it has means for preferentially changing.
前記障害予兆検出時の対応テーブルには、前記障害予兆検出時の交代内容に加え、障害を検出した前記プロセッサの部位ごとに、当該プロセッサを交代するか、あるいは当該演算コアを交代するかについても保持するものであり、前記プロセッサの部位には、汎用コアもしくは専用コアを含むものであることを特徴とした請求項3のマルチコアプロセッサを有する計算機システム。 The correspondence table at the time of failure sign detection includes, in addition to the contents of replacement at the time of failure sign detection, whether to replace the processor or the calculation core for each part of the processor that has detected a failure. 4. The computer system having a multi-core processor according to claim 3 , wherein the computer part includes a general-purpose core or a dedicated core . 複数の演算コアを有する複数のプロセッサを有する計算機は、仮想サーバを生成し制御する仮想化機構が稼働し、前記仮想化機構は管理計算機によって管理され、
前記仮想化機構は前記プロセッサの障害予兆を検出する障害予兆検出機構を有し、
前記管理計算機は、障害予兆を検出した前記プロセッサの部位ごとに、当該プロセッサを交代するか、あるいは当該演算コアを交代するかを保持する対応テーブルを有し、
前記障害予兆検出機構がプロセッサあるいは前記演算コアの障害予兆を検出した場合に、
前記管理計算機に、
前記仮想化機構が前記障害予兆を検出したプロセッサあるいは前記演算コアで実行されないように実行スケジュールを変更する機能と、
前記障害予兆を検出した場合に、前記対応テーブルに基づき前記プロセッサあるいは前記演算コアを交代するとともに、前記プロセッサが異なる種類の前記演算コアを有する場合に、前記障害予兆検出時に種類が少ない前記演算コアを優先して交代する機能とを実行させる
ことを特徴とする管理計算機のプログラム。
A computer having a plurality of processors having a plurality of arithmetic cores operates a virtualization mechanism that generates and controls a virtual server, and the virtualization mechanism is managed by a management computer,
The virtualization mechanism has a failure sign detection mechanism for detecting a failure sign of the processor,
The management computer has a correspondence table that holds whether to replace the processor or the computing core for each part of the processor that has detected a failure sign ,
When the failure sign detection mechanism detects a failure sign of the processor or the arithmetic core,
In the management computer,
A function of changing the execution schedule so that the virtualization mechanism is not executed by the processor or the arithmetic core that detects the failure sign;
When the failure sign is detected, the processor or the calculation core is replaced based on the correspondence table, and when the processor has different types of calculation cores, the number of the calculation cores is small when the failure sign is detected. A management computer program characterized by executing a function of giving priority to replacement.
前記障害予兆検出時の対応テーブルには、前記障害予兆検出時の交代内容に加え、障害を検出した前記プロセッサの部位ごとに、当該プロセッサを交代するか、あるいは当該演算コアを交代するかについても保持するものであり、前記プロセッサの部位には、汎用コアもしくは専用コアを含むものであることを特徴とした請求項5の管理計算機のプログラム。 The correspondence table at the time of failure sign detection includes, in addition to the contents of replacement at the time of failure sign detection, whether to replace the processor or the calculation core for each part of the processor that has detected a failure. 6. A management computer program according to claim 5 , wherein said processor portion includes a general-purpose core or a dedicated core .
JP2009141797A 2009-06-15 2009-06-15 Multi-core processor control method, computer system thereof, and management computer program Expired - Fee Related JP5035299B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009141797A JP5035299B2 (en) 2009-06-15 2009-06-15 Multi-core processor control method, computer system thereof, and management computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009141797A JP5035299B2 (en) 2009-06-15 2009-06-15 Multi-core processor control method, computer system thereof, and management computer program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006340673A Division JP2008152594A (en) 2006-12-19 2006-12-19 Method for enhancing reliability of multi-core processor computer

Publications (2)

Publication Number Publication Date
JP2009205696A JP2009205696A (en) 2009-09-10
JP5035299B2 true JP5035299B2 (en) 2012-09-26

Family

ID=41147821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009141797A Expired - Fee Related JP5035299B2 (en) 2009-06-15 2009-06-15 Multi-core processor control method, computer system thereof, and management computer program

Country Status (1)

Country Link
JP (1) JP5035299B2 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135079B2 (en) 2009-10-21 2015-09-15 International Business Machines Corporation Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions
US20110113426A1 (en) * 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
US8669990B2 (en) 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
JP5821378B2 (en) * 2011-08-05 2015-11-24 日本電気株式会社 Server system, control method and program
JP5746100B2 (en) * 2011-12-27 2015-07-08 京セラドキュメントソリューションズ株式会社 Image forming apparatus
JP6010975B2 (en) * 2012-03-30 2016-10-19 日本電気株式会社 Job management apparatus, job management method, and program
JP5978783B2 (en) * 2012-06-08 2016-08-24 日本電気株式会社 Server device, management unit, failure handling method, and program
JP6074955B2 (en) * 2012-08-31 2017-02-08 富士通株式会社 Information processing apparatus and control method
JP6007988B2 (en) * 2012-09-27 2016-10-19 日本電気株式会社 Standby system apparatus, operational system apparatus, redundant configuration system, and load distribution method
JP5742831B2 (en) * 2012-12-27 2015-07-01 日本電気株式会社 Effective processor core arrangement device, effective processor core arrangement method, and effective processor core arrangement program
US20150309503A1 (en) * 2013-01-09 2015-10-29 Mitsubishi Electric Corporation Plant engineering system
WO2014141419A1 (en) * 2013-03-14 2014-09-18 株式会社日立製作所 Virtual computer system and scheduling method
JP6186817B2 (en) * 2013-04-05 2017-08-30 富士通株式会社 Information processing apparatus, information processing program, and information processing method
DE112013007143T5 (en) 2013-06-07 2016-02-18 Mitsubishi Electric Corporation Computer system and control method
JP6543219B2 (en) * 2016-06-02 2019-07-10 日本電信電話株式会社 Virtual machine allocation apparatus and resource management method
JP7151530B2 (en) * 2019-02-13 2022-10-12 日本電信電話株式会社 Server infrastructure and physical CPU allocation program
WO2024053021A1 (en) * 2022-09-07 2024-03-14 日本電信電話株式会社 Operation mode setting device, operation mode setting method, operation mode setting program, and system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022599A (en) * 1999-07-06 2001-01-26 Fujitsu Ltd Fault tolerant system, fault tolerant processing method and recording medium for fault tolerant control program
US6519730B1 (en) * 2000-03-16 2003-02-11 Fujitsu Limited Computer and error recovery method for the same
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
JP2003173272A (en) * 2001-12-06 2003-06-20 Hitachi Ltd Information processing system, information processor and maintenance center
JP4119162B2 (en) * 2002-05-15 2008-07-16 株式会社日立製作所 Multiplexed computer system, logical computer allocation method, and logical computer allocation program
JP4054616B2 (en) * 2002-06-27 2008-02-27 株式会社日立製作所 Logical computer system, logical computer system configuration control method, and logical computer system configuration control program
JP3925854B2 (en) * 2002-10-11 2007-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Programs in multiprocessor systems
US7275180B2 (en) * 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
US7496915B2 (en) * 2003-04-24 2009-02-24 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
JP4063256B2 (en) * 2004-06-28 2008-03-19 日本電気株式会社 Computer cluster system, management method therefor, and program
US8621458B2 (en) * 2004-12-21 2013-12-31 Microsoft Corporation Systems and methods for exposing processor topology for virtual machines
EP1860566A4 (en) * 2005-03-18 2010-07-28 Fujitsu Ltd Cpu suppression system and cpu suppression method using service processor

Also Published As

Publication number Publication date
JP2009205696A (en) 2009-09-10

Similar Documents

Publication Publication Date Title
JP5035299B2 (en) Multi-core processor control method, computer system thereof, and management computer program
JP2008152594A (en) Method for enhancing reliability of multi-core processor computer
JP6074955B2 (en) Information processing apparatus and control method
US8146092B2 (en) System and method for selecting and executing an optimal load distribution processing in a storage system
US9760294B2 (en) Computer system, storage management computer, and storage management method
US8219750B2 (en) Method and system for execution of applications in conjunction with distributed RAID
US9032180B2 (en) Managing CPU resources for high availability micro-partitions
JP2011128967A (en) Method for moving virtual machine, virtual machine system and program
CN103229149A (en) Managing compressed memory using tiered interrupts
US9244825B2 (en) Managing CPU resources for high availability micro-partitions
WO2015118679A1 (en) Computer, hypervisor, and method for allocating physical cores
WO2018029781A1 (en) Management computer, performance monitoring method, and computer system
JP2011186701A (en) Resource allocation apparatus, resource allocation method and resource allocation program
US9158470B2 (en) Managing CPU resources for high availability micro-partitions
US7484032B2 (en) Fault tolerant computer system
JP5704176B2 (en) Processor processing method and processor system
US20150067240A1 (en) Storage apparatus and its data processing method
JP6035993B2 (en) Information processing apparatus, apparatus management method, and apparatus management program
US10725879B2 (en) Resource management apparatus, resource management method, and nonvolatile recording medium
JP6731620B2 (en) Computer system and storage device activation control method
JP5862727B2 (en) Multi-core processor system, multi-core processor system control method, and multi-core processor system control program
JP2013097634A (en) Fault recovery method for multiprocessor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120605

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5035299

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees