KR101090651B1 - Virtual machine monitor and multi-processor system - Google Patents

Virtual machine monitor and multi-processor system Download PDF

Info

Publication number
KR101090651B1
KR101090651B1 KR1020080079105A KR20080079105A KR101090651B1 KR 101090651 B1 KR101090651 B1 KR 101090651B1 KR 1020080079105 A KR1020080079105 A KR 1020080079105A KR 20080079105 A KR20080079105 A KR 20080079105A KR 101090651 B1 KR101090651 B1 KR 101090651B1
Authority
KR
South Korea
Prior art keywords
memory
virtual server
processor
allocation
physical
Prior art date
Application number
KR1020080079105A
Other languages
Korean (ko)
Other versions
KR20090055459A (en
Inventor
게이따로 우에하라
유지 쯔시마
Original Assignee
가부시키가이샤 히타치세이사쿠쇼
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 히타치세이사쿠쇼 filed Critical 가부시키가이샤 히타치세이사쿠쇼
Publication of KR20090055459A publication Critical patent/KR20090055459A/en
Application granted granted Critical
Publication of KR101090651B1 publication Critical patent/KR101090651B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

I/O 디바이스의 전유 할당 기능을 갖는 가상 머신 모니터 상에서, I/O 디바이스의 물리 위치 정보를 취득하는 인터페이스를 갖고, 취득한 물리 위치 정보를 사용하여 가상 서버에 대한 리소스의 할당을, 지정된 폴리시에 따라서 최적화한다. 게스트 OS에 요구되는 I/O 디바이스, CPU수, 메모리량에 대하여, 주어진 폴리시(리소스 배분에서 무엇을 우선할지를 결정하는 파라미터)에 따라서 리소스를 할당하는 인터페이스를 가상 머신 모니터가 구비한다. 또한, 가상 머신 모니터가 할당한 리소스의 물리 위치 정보를, 게스트 OS에 대하여 적절하게 변환하여 통지하는 인터페이스를 가상 머신 모니터에 구비한다.

Figure R1020080079105

멀티프로세서 시스템, CPU 소켓, CPU 코어, 메모리 컨트롤러, 메모리 인터페이스, 메모리, 허브, 어댑터, 서비스 프로세서, 콘솔

On the virtual machine monitor having the exclusive allocation function of the I / O device, it has an interface for acquiring the physical position information of the I / O device, and uses the obtained physical position information to allocate resources to the virtual server according to the specified policy. Optimize. The virtual machine monitor has an interface for allocating resources according to a given policy (a parameter for deciding what to give priority to resource allocation) with respect to the I / O device, the number of CPUs, and the amount of memory required for the guest OS. In addition, the virtual machine monitor is provided with an interface for appropriately converting and notifying the physical location information of the resource allocated by the virtual machine monitor to the guest OS.

Figure R1020080079105

Multiprocessor System, CPU Socket, CPU Core, Memory Controller, Memory Interface, Memory, Hub, Adapter, Service Processor, Console

Description

가상 머신 모니터 및 멀티프로세서 시스템{VIRTUAL MACHINE MONITOR AND MULTI-PROCESSOR SYSTEM}VIRTUAL MACHINE MONITOR AND MULTI-PROCESSOR SYSTEM}

본 발명은, 가상 머신 모니터에 의해 물리 계산기 상에서 가상 서버를 가동시켜, I/O 디바이스를 가상 서버에 할당하는 가상 계산기의 개량에 관한 것이다.The present invention relates to an improvement of a virtual calculator in which a virtual server is operated on a physical calculator by a virtual machine monitor to allocate an I / O device to the virtual server.

최근의 반도체 기술의 진행에 수반하여, 1개의 다이 상에 복수의 코어를 집적하는 멀티 코어 프로세서나, 메모리 컨트롤러를 프로세서 다이 상에 탑재하는 메모리 컨트롤러 통합 프로세서가 등장하고 있다. 이와 같이 집적된 계산기 리소스를 유효 활용하기 위해서, 종래 복수의 서버에 분산되어 있던 처리를 1개의 서버에 집약하여 코스트를 삭감하는 움직임이 많이 보여진다. 이와 같은 서버의 집약 시에 유효하게 되는 수단이, 서버 분할에 의해, 복수의 오퍼레이팅 시스템을 1대의 서버 상에서 가동시키는 방법이다. 서버 분할에는, 노드 단위, 혹은 프로세서(코어)나 I/O 디바이스 등의 컴포넌트 단위로 하드웨어에 의한 분할을 서포트하는 물리 분할 방식과, 하이퍼바이저나 가상 머신 모니터라고 불리는 펌웨어에 의해 실현되는 논리 분할 방식이 있다. With the recent progress of semiconductor technology, a multi-core processor that integrates a plurality of cores on one die and a memory controller integrated processor that mounts a memory controller on a processor die have emerged. In order to effectively utilize the integrated calculator resources in this way, there are many movements that reduce costs by aggregating processes distributed in a plurality of servers into one server. The means which becomes effective at the time of aggregation of such a server is a method of operating a some operating system on one server by server division. Server partitioning includes a physical partitioning method that supports partitioning by hardware on a node-by-node or component basis such as a processor (core) or an I / O device, and a logical partitioning method realized by firmware called a hypervisor or a virtual machine monitor. There is this.

논리 분할 방식에서는, 각 오퍼레이팅 시스템(게스트 OS)은 가상 머신 모니 터가 제공하는 논리 프로세서 상에서 실행되고, 가상 머신 모니터에 의해 복수의 논리 프로세서가 물리 프로세서에 맵핑됨으로써, 노드보다도 미세한 단위로 구획을 분할할 수 있다. 또한 프로세서(코어)에 관해서는 복수의 논리 구획간에서 1개의 물리 프로세서(코어)를 시분할로 절환하면서 실행할 수도 있다. 이에 의해, 물리 프로세서(코어)의 수보다도 많은 논리 구획을 생성하여 동시에 실행하는 것이 가능하게 된다. 논리 분할을 목적으로 한 가상 머신 모니터 소프트웨어로서는 특허 문헌 1에 기재되는 바와 같은 기술이 대표적이다. In the logical partitioning system, each operating system (guest OS) is executed on a logical processor provided by a virtual machine monitor, and a plurality of logical processors are mapped to physical processors by a virtual machine monitor, thereby partitioning the partition into finer units than nodes. can do. The processor (core) can also be executed by switching one physical processor (core) to time division between a plurality of logical partitions. As a result, it is possible to generate more logical partitions than the number of physical processors (cores) and execute them simultaneously. As a virtual machine monitor software for the purpose of logical division, the technique as described in patent document 1 is typical.

그러나 고집적화가 비교적 쉬운 프로세서나 메모리에 비하여, 입출력의 자리(경로)를 가질 필요가 있기 때문에 본질적으로 집적하기 어려운 I/O 디바이스에 관해서는 수가 줄어들지 않아, 종래의 CPU와 I/O 디바이스의 밸런스가 무너져 가는 경향이 보인다. I/O 디바이스의 수를 늘리기 위해서는, I/O 스위치를 이용하여 슬롯을 증설한다고 하는 대책이 생각된다. 그러나 I/O 스위치에 의해 프로세서나 메모리와 I/O 디바이스와의 거리가 멀어짐으로써 I/O 성능을 충분히 끌어낼 수 없는 케이스가 생겼다.However, the number of I / O devices that are inherently difficult to integrate is not reduced because of the need to have a place of input / output (path) as compared to a processor or a memory, which is relatively easy to integrate, so that the balance between a conventional CPU and an I / O device is poor. There is a tendency to collapse. In order to increase the number of I / O devices, a countermeasure that the slot is expanded by using an I / O switch is considered. However, the distance between the processor, memory, and I / O devices caused by I / O switches has created a case where I / O performance cannot be sufficiently derived.

따라서 종래에는 복수의 가상 서버에서 공유해 온 I/O 디바이스를, 특정한 가상 서버에 전유시켜, 충분한 I/O 성능을 확보한다고 하는 어프로치가 채용되도록 되어 오고 있다. 이와 같은 가상 서버에 의한 I/O 디바이스의 전유를 서포트하는 기능으로서, 비특허 문헌 1에 개시되는 바와 같이, Intel사가 제정한 VT-d 등이 알려져 있다.Therefore, in the past, an approach to ensure sufficient I / O performance by assigning an I / O device shared by a plurality of virtual servers to a specific virtual server has been adopted. As a function of supporting exclusive application of I / O devices by such a virtual server, as disclosed in Non-Patent Document 1, VT-d or the like established by Intel Corporation is known.

한편, 멀티 코어화의 진행이나 메모리 컨트롤러를 통합한 프로세서의 등장에 의해, 프로세서·메모리·I/O 디바이스라고 하는 리소스의 배치가 불균형하게 되는 경향이 있다. 이와 같은 불균형한 시스템 상에서 성능이나 신뢰성을 확보하기 위해서는, 물리 위치 정보를 이용한 리소스 배분이 필요하다. 종래의 OS에서는, 특정한 프로세서와 메모리를 대응짓는 Affinity 제어라고 하는 구조가 있고, 이를 서포트하기 위해서 물리 위치 정보를 취득하는 표준 인터페이스로서 ACPI(Advanced Configuration and Power Interface)가 규정되어 있다(비특허 문헌 2). 이 affinity 제어에서는, OS 혹은 어플리케이션이 어떤 CPU와 메모리를 사용할지라고 하는 관계지음에 의해, 리소스의 할당을 행한다.On the other hand, with the progress of multicoreization and the emergence of processors incorporating memory controllers, there is a tendency that the arrangement of resources such as processor memory I / O devices is unbalanced. In order to secure performance and reliability on such an unbalanced system, resource allocation using physical location information is required. In a conventional OS, there is a structure called Affinity control that associates a specific processor with a memory, and ACPI (Advanced Configuration and Power Interface) is defined as a standard interface for acquiring physical position information in order to support this (Non-Patent Document 2). ). In this affinity control, resources are allocated based on what CPU and memory the OS or application uses.

[특허 문헌 1] 미국 특허 제6496847호 [Patent Document 1] US Patent No. 6496847

[비특허 문헌 1] Intel Virtualization Technology for Directed I/O Architecture Specification, [online], Intel Corp., 2007년 8월 24일 검색, 인터넷<ftp://download.intel.com/technology/computing/vptech/Intel(r)_VT_for_Direct_IO.pdf> [Non-Patent Document 1] Intel Virtualization Technology for Directed I / O Architecture Specification, [online], Intel Corp., August 24, 2007 Search, Internet <ftp://download.intel.com/technology/computing/vptech / Intel (r) _VT_for_Direct_IO.pdf>

[비특허 문헌 2] Advanced Configuration and Power Interface Specification Revision 3.0, [online], Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba, 2007년 8월 24일 검색, 인터넷 <http://www.acpi.info/>[Non-Patent Document 2] Advanced Configuration and Power Interface Specification Revision 3.0, [online], Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba, retrieved August 24, 2007, Internet <http: //www.acpi. info />

그러나, 상기한 바와 같은 종래의 OS에서는, 프로세서와 메모리의 위치 정보는 ACPI의 구조를 사용하여 제어할 수 있다. 그러나 I/O 디바이스는 전체 어플리 케이션으로부터 공통적으로 참조되는 리소스이기 때문에,I/O 디바이스의 물리 위치 정보를 사용한 Affinity 제어라고 하는 개념은 존재하지 않았다. 실제로, ACPI 내에서 규정되어 있는 System Resource Affinity Table(SRAT)이나 System Locality Distance Information Table(SLIT)에서는, 프로세서와 메모리의 물리적인 위치 정보만이 대상이며, I/O 디바이스의 물리 위치 정보는 관리 대상 밖이다.However, in the conventional OS as described above, the position information of the processor and the memory can be controlled using the structure of the ACPI. However, since the I / O device is a resource commonly referred to from the entire application, there is no concept of affinity control using the physical location information of the I / O device. In fact, in the System Resource Affinity Table (SRAT) or System Locality Distance Information Table (SLIT) defined within ACPI, only the physical location information of the processor and memory is targeted, and the physical location information of the I / O device is managed. Is out.

한편, 가상 머신 모니터를 사용하여 I/O 디바이스를 특정의 가상 서버에 전유시키도록 할당하고자 하면,I/O 디바이스의 물리 위치 정보는, 가상 서버의 성능이나 신뢰성을 확보하는 데 있어서 중요한 파라미터로 된다. 그러나 종래의 ACPI 베이스의 인터페이스에서는, I/O의 물리 위치 정보를 취득하는 수단이 없었다.On the other hand, when the virtual machine monitor is used to assign an I / O device to a specific virtual server, the physical location information of the I / O device is an important parameter in securing the performance and reliability of the virtual server. . However, in the conventional ACPI-based interface, there is no means for acquiring I / O physical position information.

또한, 만약 가상 머신 모니터가 적절한 리소스를 가상 서버에 대하여 할당했다고 하여도, 가상 서버 상의 게스트 OS가 그 물리 위치 정보를 올바르게 이용할 수 없는 경우, 게스트 OS의 Affinity 제어가 올바르게 기능하지 않아, 결과적으로 물리 서버와 동등한 성능이나 신뢰성을 확보할 수 없다라고 하는 문제점이 있었다.Also, even if the virtual machine monitor allocates the appropriate resources to the virtual server, if the guest OS on the virtual server cannot use the physical location information correctly, the affinity control of the guest OS will not function correctly, resulting in physical There was a problem in that performance and reliability equivalent to that of the server could not be secured.

본 발명은, I/O 디바이스의 전유 할당 기능을 갖는 가상 머신 모니터 상에서, I/O 디바이스의 물리 위치 정보를 취득하는 인터페이스를 갖고, 취득한 물리 위치 정보를 사용하여 가상 서버에 대한 리소스의 할당을, 지정된 폴리시에 따라서 최적화하는 것을 목적으로 한다. 또한 가상 머신 모니터가 취득한 물리 위치 정보를 가상 서버에 적절하게 변환하여 통지하는 인터페이스를 갖고, 게스트 OS를 물리 서버 상에서 실행했을 때와 마찬가지의 Affinity 제어를 가상 서버 상의 게스트 OS에 대해서도 실행 가능하게 하는 것을 목적으로 한다.The present invention has an interface for acquiring physical location information of an I / O device on a virtual machine monitor having an exclusive allocation function of an I / O device, and uses the acquired physical location information to allocate resources to a virtual server. The goal is to optimize according to the specified policy. In addition, it has an interface for converting the physical location information acquired by the virtual machine monitor to the virtual server appropriately and informs the virtual server, so that the same affinity control can be executed for the guest OS on the virtual server as when the guest OS is executed on the physical server. The purpose.

본 발명은, 1개 이상의 프로세서와, 1개 이상의 메모리와 1개 이상의 I/O 디바이스를 내부 네트워크로 접속하고, 상기 프로세서와 메모리 및 I/O 디바이스를 가상 서버에 할당하는 가상 머신 모니터를 구비한 멀티프로세서 시스템으로서, 상기 가상 머신 모니터는, 상기 멀티프로세서 시스템의 상기 프로세서와 메모리와 I/O 디바이스 및 네트워크를 포함하는 하드웨어의 물리적인 위치 정보를 포함하는 하드웨어의 구성 정보를 취득하는 물리 하드웨어 정보 취득부와, 생성하는 가상 서버의 프로세서의 수와 메모리량과 I/O 디바이스 및 리소스의 할당 폴리시를 포함하는 생성 요구를 접수하는 접수부와, 상기 접수한 생성 요구에 기초하여 I/O 디바이스를 상기 가상 서버에 할당하고 나서, 상기 할당 폴리시를 만족시키도록 상기 프로세서와 메모리를 상기 가상 서버에 할당하는 할당 처리부를 구비한다.The present invention provides a virtual machine monitor that connects one or more processors, one or more memories, one or more I / O devices to an internal network, and allocates the processors, memory, and I / O devices to a virtual server. A multiprocessor system, wherein the virtual machine monitor acquires physical hardware information for acquiring configuration information of hardware including physical location information of hardware including the processor and memory of the multiprocessor system, an I / O device, and a network And a reception unit which receives a generation request including a number of processors and a memory amount of the virtual server to be generated, an allocation policy of I / O devices and resources, and an I / O device based on the received generation request. After assigning to a server, the processor and memory may be added to satisfy the allocation policy. An allocation processing unit for allocating to the server is provided.

또한, 상기 가상 머신 모니터는, 상기 가상 서버에 대하여 할당한 프로세서와 메모리 및 I/O 디바이스의 물리적인 위치 정보를 상기 가상 서버에 통지하는 통지부를 더 구비한다.The virtual machine monitor further includes a notification unit for notifying the virtual server of the physical location information of the processor, memory and I / O device allocated to the virtual server.

따라서, 본 발명은, I/O 디바이스의 물리 위치 정보를 취득하고, 취득한 물리 위치 정보를 이용하여 가상 서버에 대한 리소스의 할당을, 생성 요구에 의해 지정된 리소스의 할당 폴리시에 따라서 최적화하는 것이 가능하게 된다. Therefore, the present invention can obtain the physical location information of the I / O device and use the acquired physical location information to optimize the allocation of resources to the virtual server according to the allocation policy of the resources specified by the generation request. do.

또한, 가상 머신 모니터가 할당한 리소스의 물리 위치 정보를 가상 서버에 통지함으로써, 물리 서버 상과 마찬가지의 제어를 가상 서버 상에서 실현할 수 있 다. In addition, by notifying the virtual server of the physical location information of the resource allocated by the virtual machine monitor, the same control as on the physical server can be realized on the virtual server.

이하, 본 발명의 일 실시 형태를 첨부 도면에 기초하여 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, one Embodiment of this invention is described based on an accompanying drawing.

도 1은 제1 실시 형태를 나타내고, 본 발명을 적용하는 멀티프로세서 시스템(계산기), 및 그 상에서 동작하는 가상 머신 모니터와 게스트 OS의 관계를 도시하는 블록도이다.FIG. 1 is a block diagram showing a first embodiment and showing a relationship between a multiprocessor system (calculator) to which the present invention is applied, and a virtual machine monitor and a guest OS operating thereon.

멀티프로세서 시스템(100)은, 1개 이상의 CPU 소켓(프로세서 패키지)(110), 메모리 컨트롤러(130), I/O 허브(160a, 160b)를 모듈간 접속 I/F(인터페이스)(200)로 접속한 구성을 채용한다. 또한, 모듈간 접속 I/F(200)는, 멀티프로세서 시스템(100)의 내부 네트워크를 구성한다. 여기서 CPU 소켓(110)과 메모리 컨트롤러(130) 간, CPU 소켓(110)과 I/O 허브(160a, 160b) 간, 메모리 컨트롤러(130)와 I/O 허브(160a, 160b) 간의 모듈간 접속 I/F(200)가 반드시 동일한 I/F일 필요는 없다. 그들이 서로 다른 I/F이었다라고 하여도 이하의 설명에는 차이가 생기지 않는다. 또한,I/O 허브(160a, 160b)의 총칭을 I/O 허브(160)로 한다. 또한, 메모리 컨트롤러(130)나 I/O 허브(160)의 기능을 탑재한 칩 세트가 존재하고 있어도 된다. 또한, 도 1에 도시하는 바와 같이, 메모리 컨트롤러(130)가 CPU 소켓(110) 상에 탑재된 바와 같은 구성이어도 된다. CPU 소켓(110)은 1개 이상의 CPU 코어(프로세서 코어)(120)를 포함한다. 메모리 컨트롤러(130)는 메모리 I/F(140)를 통해서 1개 이상의 DIMM(Dual Inline Memory Module)(150)과 접속한다. I/O 허브(160)는 I/O 접속 I/F(170)를 통해서 1개 이상의 I/O 어댑터(180a∼180f)를 탑재 하고, I/O 어댑터(180a∼180f) 앞에는 I/O 디바이스(190d)가 접속된다. 또한 I/O 접속 I/F(170) 앞에 I/O 브릿지나 I/O 스위치가 있어, 다단의 I/O를 구성하고 있어도 된다. 또한,I/O 어댑터(180a∼180f)는, NIC나 HBA(Host Bus Adapter) 등으로 구성되고, 이들의 총칭을 I/O 어댑터(180)로 한다.The multiprocessor system 100 connects one or more CPU sockets (processor package) 110, memory controller 130, and I / O hubs 160a, 160b to inter-module connection I / F (interface) 200. The connected configuration is adopted. In addition, the inter-module connection I / F 200 constitutes an internal network of the multiprocessor system 100. Here, the connection between modules between the CPU socket 110 and the memory controller 130, between the CPU socket 110 and the I / O hubs 160a and 160b, and between the memory controller 130 and the I / O hubs 160a and 160b. The I / F 200 need not necessarily be the same I / F. Even if they were different I / F, the following description does not produce a difference. In addition, the generic terms of the I / O hubs 160a and 160b are referred to as I / O hubs 160. In addition, a chip set in which the functions of the memory controller 130 and the I / O hub 160 are mounted may exist. In addition, as shown in FIG. 1, the structure as the memory controller 130 is mounted on the CPU socket 110 may be sufficient. CPU socket 110 includes one or more CPU cores (processor cores) 120. The memory controller 130 is connected to at least one dual inline memory module (DIMM) 150 through the memory I / F 140. I / O hub 160 mounts one or more I / O adapters 180a through 180f through I / O connected I / F 170, and in front of I / O adapters 180a through 180f. 190d is connected. In addition, an I / O bridge or an I / O switch may be provided in front of the I / O connection I / F 170 to configure multiple stages of I / O. In addition, the I / O adapters 180a to 180f are constituted of a NIC, a host bus adapter (HBA), or the like, and the generic name thereof is referred to as the I / O adapter 180.

멀티프로세서 시스템(100) 상에는 1개 이상의 서비스 프로세서(220)가 있고, 상기 각 모듈(물리적 구성 요소)의 물리 위치 정보나 접속 정보를 모듈 정보 취득 I/F(210)를 통해서 수집한다. 서비스 프로세서(220)는 멀티프로세서 시스템(100)의 옵션으로서 외장되는 형태로 탑재되어도 되고, I/O 디바이스의 하나로서 탑재되는 형태이어도 된다. 또한,LAN 등으로 접속된 별도의 컴퓨터 상에 서비스 프로세서(220)의 기능이 있어도 된다. 또한,I/O 디바이스는, 데이터의 입출력을 행하는 장치로 구성된다.There is at least one service processor 220 on the multiprocessor system 100 and collects physical location information or connection information of each module (physical component) through the module information acquisition I / F 210. The service processor 220 may be mounted in an external form as an option of the multiprocessor system 100 or may be mounted as one of the I / O devices. In addition, the function of the service processor 220 may be provided on a separate computer connected via a LAN or the like. Moreover, an I / O device is comprised with the apparatus which inputs and outputs data.

멀티프로세서 시스템(100) 상에는, 가상 머신 모니터(300)가 실행되어, 멀티프로세서 시스템(100) 상의 리소스를 1개 이상의 가상 서버에 분할하여 게스트 OS(360a∼360c)에 대하여 제공한다. 가상 머신 모니터(300)는 서비스 프로세서(220)가 수집한 모듈의 물리 구성 정보와 접속 정보를, 물리 하드웨어 구성 정보 취득 인터페이스(320)를 통해서 수취한다. 또한, 게스트 OS(360a∼360c)의 총칭을 게스트 OS(360)로 한다.On the multiprocessor system 100, a virtual machine monitor 300 is executed to divide resources on the multiprocessor system 100 into one or more virtual servers and provide them to the guest OSs 360a-c. The virtual machine monitor 300 receives the physical configuration information and the connection information of the module collected by the service processor 220 through the physical hardware configuration information acquisition interface 320. In addition, the generic terms of the guest OSs 360a to 360c are referred to as guest OS 360.

게스트 OS(360)는, 가상 서버로서 필요한 리소스를 논리 하드웨어 요구 I/F(350)에 의해 가상 머신 모니터(300)에 통지한다. 또한, 게스트 OS(360)의 기동 시(즉, 가상 서버의 기동 시)에서는, 멀티프로세서 시스템(100)의 관리자가 콘 솔(230)로 설정한 논리 하드웨어 요구 I/F(310)를 가상 머신 모니터(300)에 통지한다. 가상 머신 모니터(300)는, 가상 머신 모니터(300) 상에 있는 물리-논리 하드웨어 할당표(310) 등을 참조하여, 논리 하드웨어 요구 I/F(350)에 포함되는 리소스 할당 폴리시를 고려한 후에, 필요한 물리 리소스의 정보를 물리-논리 하드웨어 할당 인터페이스(330)를 통해서 취득한다. 가상 머신 모니터(300)는, 취득한 물리 리소스의 정보와, 논리 하드웨어 요구 I/F(310)에 기초하여 물리 리소스를 논리 하드웨어로서 할당하는 논리 하드웨어 할당 처리부(801)를 구비한다. 가상 머신 모니터(300)가 할당한 물리 리소스의 정보는, 가상 머신 모니터(300)에 의해 논리 하드웨어 구성 정보로 변환되어, 논리 하드웨어 구성 정보 통지 I/F(340)를 통해서 게스트 OS(360)에 통지된다. The guest OS 360 notifies the virtual machine monitor 300 by the logical hardware request I / F 350 of the resource required as the virtual server. In addition, at the start of the guest OS 360 (that is, at the start of the virtual server), the virtual machine requests the I / F 310 set by the administrator of the multiprocessor system 100 to the console 230. The monitor 300 is notified. After the virtual machine monitor 300 considers the resource allocation policy included in the logical hardware request I / F 350 with reference to the physical-logical hardware allocation table 310 or the like on the virtual machine monitor 300, Information of necessary physical resources is obtained through the physical-logical hardware allocation interface 330. The virtual machine monitor 300 includes a logical hardware allocation processing unit 801 for allocating physical resources as logical hardware based on the acquired physical resource information and the logical hardware request I / F 310. The information of the physical resource allocated by the virtual machine monitor 300 is converted into logical hardware configuration information by the virtual machine monitor 300, and is transmitted to the guest OS 360 through the logical hardware configuration information notification I / F 340. You are notified.

또한, 멀티프로세서 시스템(100)에는, 입력 장치와 출력 장치를 구비하며 관리자가 사용하는 콘솔(230)이 접속되어, 가상 머신 모니터(300)나 서비스 프로세서(220)에 명령을 주거나, 가상 머신 모니터(300)나 서비스 프로세서(220)로부터 처리의 결과를 수신하여 출력 장치에 표시를 행한다.In addition, the multiprocessor system 100 has an input device and an output device, and a console 230 used by an administrator is connected to give a command to the virtual machine monitor 300 or the service processor 220 or to monitor the virtual machine. The processing result is received from the 300 or the service processor 220 and displayed on the output device.

<멀티프로세서 시스템의 구성> <Configuration of Multiprocessor Systems>

또한 본 제1 실시 형태에서의 멀티프로세서 시스템(100)의 구성을 보다 상세하게 설명한다. 참조 부호 110a∼110d의 4개의 CPU 소켓이 모듈간 접속 I/F(200)에 의해 링 형상으로 접속되어 있다. 각각의 CPU 소켓(110)은 CPU 코어(120)를 2개씩 갖고, 멀티프로세서 시스템(100) 전체적으로는, 8개의 CPU 코어(120)가 있다. 이하의 설명에서, 이 8개의 CPU 코어를 도면의 좌측으로부터 CPU 코어의 일련 번호 를 #0∼#7로 부르는 경우가 있다. In addition, the structure of the multiprocessor system 100 in this 1st Embodiment is demonstrated in detail. Four CPU sockets 110a to 110d are connected in a ring shape by the inter-module connection I / F 200. Each CPU socket 110 has two CPU cores 120, and there are eight CPU cores 120 throughout the multiprocessor system 100. In the following description, these eight CPU cores may be referred to as serial numbers # 0 to # 7 of the CPU core from the left side of the figure.

각각의 CPU 소켓(110) 상의 메모리 컨트롤러(130)는 각각 4개의 메모리 I/F(140)를 갖고, 각각 4개의 DIMM(메모리)(150)이 접속되어 있다. 여기서는 이후의 설명을 간단히 하기 위해서, 각 DIMM(150)은 1GB이고, 1CPU 소켓당 4GB, 멀티프로세서 시스템 전체로는 16GB의 메모리를 탑재하고 있는 것으로 한다. 이하의 설명에서, 이 16매의 DIMM(150)의 일련 번호를 도면의 좌측으로부터 DIMM#0∼#15로 부르는 경우가 있다.The memory controller 130 on each CPU socket 110 has four memory I / Fs 140, respectively, and four DIMMs (memory) 150 are connected to each other. Here, for simplicity of explanation, it is assumed that each DIMM 150 has 1 GB, 4 GB per CPU socket, and 16 GB of memory for the entire multiprocessor system. In the following description, the serial numbers of the 16 DIMMs 150 may be referred to as DIMM # 0 to # 15 from the left side of the drawing.

I/O 허브(160)는, 2개의 I/O 허브(160a, 160b)로 구성되고, 각각 2개씩의 모듈간 접속 I/F(200)를 갖고, I/O 허브(160a)는 CPU 소켓(110a, 110b), I/O 허브(160b)는 CPU 소켓(110c, 110d)과 각각 접속하고 있다. I/O 허브(160)는 I/O 접속 I/F(170)를 각각 4개씩 갖고, I/O 접속 I/F(170) 앞에 I/O 슬롯(175)을 구비하고,I/O 어댑터(180)가 접속되어 있다.The I / O hub 160 is composed of two I / O hubs 160a and 160b, each having two inter-module connection I / Fs 200, and the I / O hub 160a is a CPU socket. 110a and 110b and the I / O hub 160b are connected to the CPU sockets 110c and 110d, respectively. I / O hub 160 has four I / O-connected I / Fs 170, each with an I / O slot 175 in front of I / O-connected I / Fs 170, and an I / O adapter 180 is connected.

I/O 슬롯(175)은 멀티프로세서 시스템(100) 전체에서 8개 있고, I/O 슬롯(175)의 일련 번호를 도면의 좌측으로부터 번호를 #0∼7로 하면,I/O 슬롯#0에는 I/O 어댑터(180a)가, I/O 슬롯#2에는 I/O 어댑터(180b)가, I/O 슬롯#3에는 I/O 어댑터(180c)가, I/O 슬롯#4에는 I/O 어댑터(180d)가, I/O 슬롯#5에는 I/O 어댑터(180e)가, I/O 슬롯#7에는 I/O 어댑터(180f)가 각각 접속되어 있다. 이 예에서는 I/O 슬롯#1 및 I/O 슬롯#6에는 아무것도 접속되어 있지 않다.There are eight I / O slots 175 throughout the multiprocessor system 100. If the serial number of the I / O slot 175 is numbered # 0-7 from the left side of the drawing, I / O slot # 0 Is I / O adapter 180a, I / O slot 180 is I / O adapter 180b, I / O slot # 3 is I / O adapter 180c, and I / O slot # 4 is I The / O adapter 180d is connected to the I / O slot # 5 with the I / O adapter 180e and the I / O slot # 7 with the I / O adapter 180f. In this example, nothing is connected to I / O slot # 1 and I / O slot # 6.

도 64는, 도 1의 구성에 대응하는 멀티프로세서 시스템(100) 상에서, 가상 머신 모니터(300), 게스트 OS1(360a), 게스트 OS2(360b), 게스트 OS3(360c)이 실행 되어 있는 모습을 도시한 구성도이다. 가상 머신 모니터(300)의 프로그램은, 어느 하나의 I/O 디바이스(190) 상, 혹은 서비스 프로세서(200)의 ROM(201) 상에 존재하고, 멀티프로세서 시스템(300)의 기동 시에 상기 저장 장소로부터 메모리(150)(본 예에서는 메모리(150#0) 상에 전개되고, 가상 머신 CPU 코어(120) 중 어느 하나의 상에서 실행된다. 가상 머신 모니터(300)를 실행하는 CPU 코어(120)는, 고정되어 있어도 되고, 예를 들면 그 때 비어 있는 CPU 코어나 처리 부하가 적은 CPU 코어가 실행하는 등 CPU 코어의 가동 상태에 따라서 실행하는 CPU 코어가 가변이어도 된다.FIG. 64 illustrates a virtual machine monitor 300, guest OS1 360a, guest OS2 360b, and guest OS3 360c running on the multiprocessor system 100 corresponding to the configuration of FIG. It is a schematic diagram. The program of the virtual machine monitor 300 resides on either one of the I / O devices 190 or on the ROM 201 of the service processor 200 and is stored upon startup of the multiprocessor system 300. It is deployed from memory 150 (in this example, memory 150 # 0 in this example) and executed on any one of virtual machine CPU cores 120. CPU core 120 executing virtual machine monitor 300 May be fixed. For example, the CPU cores to be executed may be variable depending on the operating states of the CPU cores, such as empty CPU cores and CPU cores with less processing load.

게스트 OS(360)는, 가상 머신 모니터(300)에 의해 분할된 논리 서버(370)에 할당된 I/O 디바이스(190) 중 어느 하나의 상에 프로그램이 존재하고, 논리 서버(370)의 기동 시에 참조 부호 370에 할당된 메모리(150) 상에 전개되고, 참조 부호 370에 할당된 CPU 코어(300)에 의해 실행된다. 도 64의 예에서는, 게스트 OS1(360a)은 메모리(150#5) 상에, 게스트 OS2(360b)는 메모리(150#10) 상에, 게스트 OS3(360c)은 메모리(150#13)에 전개되어, 실행되어 있다. 또한, 본 예에서는 알기 쉽도록 1개의 메모리 모듈 상에 게스트 OS(360)를 배치한 예를 나타냈지만, 게스트 OS의 사이즈나 메모리 인터리브의 설정에 따라서는 복수의 메모리 모듈 상에 분산 배치되는 경우도 있을 수 있다.The guest OS 360 has a program on any one of the I / O devices 190 assigned to the logical server 370 partitioned by the virtual machine monitor 300, and starts up the logical server 370. Is developed on the memory 150 assigned to the reference numeral 370 and executed by the CPU core 300 assigned to the reference numeral 370. In the example of FIG. 64, guest OS1 360a is deployed on memory 150 # 5, guest OS2 360b is on memory 150 # 10, and guest OS3 360c is deployed on memory 150 # 13. It is executed. In addition, in this example, although the guest OS 360 was arrange | positioned on one memory module for the sake of clarity, the case where it distribute | distributes on several memory modules depending on the size of a guest OS and setting of memory interleaving is also shown. There may be.

도 2∼도 6에서 가상 머신 모니터(300)가 서비스 프로세서(220) 경유로 얻은 멀티프로세서 시스템(100)의 물리 하드웨어 구성 정보 취득 I/F(320)에 대해서 나타낸다. 도 2는 물리 하드웨어 구성 정보 취득 I/F(320)의 내역을 나타낸다. 물 리 하드웨어 구성 정보 취득 I/F(320)는, 물리 컴포넌트 구성표(400), I/O 어댑터 구성표(450), 컴포넌트간 거리 대응표(500), 물리 네트워크 구성표(550)의 4종류의 표(테이블)로 구성된다. 이들 테이블은, 가상 머신 모니터(300)가 소정의 주기 또는 소정의 타이밍에서, 서비스 프로세서(220)가 모듈 정보 취득 I/F(210)를 통해서 수집한 하드웨어 리소스의 정보를 조회하여 생성(또는 갱신)하는 것이다. 가상 머신 모니터(300)가 설정한 물리 하드웨어 구성 정보 취득 I/F(320)는, 도 1에 도시하는 I/O 허브(160)의 물리 위치 정보 저장 메모리(165) 또는 메모리(150)에 저장된다. 2 to 6 show the physical hardware configuration information acquisition I / F 320 of the multiprocessor system 100 obtained by the virtual machine monitor 300 via the service processor 220. 2 shows details of the physical hardware configuration information acquisition I / F 320. The physical hardware configuration information acquisition I / F 320 includes four types of tables (physical component scheme 400, I / O adapter scheme 450, inter-component distance correspondence table 500, and physical network scheme 550). Table). These tables are generated (or updated) by querying the information of the hardware resources collected by the service processor 220 through the module information acquisition I / F 210 by the virtual machine monitor 300 at a predetermined period or at a predetermined timing. ) The physical hardware configuration information acquisition I / F 320 set by the virtual machine monitor 300 is stored in the physical location information storage memory 165 or the memory 150 of the I / O hub 160 shown in FIG. 1. do.

도 3은 물리 하드웨어 구성 정보 취득 I/F(320)의 물리 컴포넌트 구성표(400)의 구성을 도시한다. 물리 컴포넌트 구성표(400)는, 리소스의 일련 번호를 나타내는 리소스#(405), 리소스의 종류를 나타내는 리소스 종별(410), 일련 번호에 대응하는 리소스의 범위를 나타내는 범위(415), 컴포넌트마다의 일련 번호를 나타내는 컴포넌트#(420), 컴포넌트의 종류를 나타내는 컴포넌트 종별(425), 일련 번호로 특정된 리소스의 소비 전력(430), 이 리소스를 동작시키기 위한 컴포넌트의 소비 전력(435)으로 구성된다.3 shows the configuration of the physical component configuration table 400 of the physical hardware configuration information acquisition I / F 320. The physical component scheme 400 includes a resource # 405 indicating a serial number of a resource, a resource type 410 indicating a type of resource, a range 415 indicating a range of resources corresponding to the serial number, and a series of components. A component # 420 representing a number, a component type 425 representing a type of a component, a power consumption 430 of a resource specified by a serial number, and a power consumption 435 of a component for operating the resource.

본 실시 형태의 설명에서는, 컴포넌트#(420)은 CPU 소켓(110)이나 I/O 허브(160)와 같이 물리적으로 삽발 혹은 전원의 on/off의 대상으로 되는 오브젝트를 가리키고 있고, 복수의 리소스가 1개의 컴포넌트#(420) 상에 접속될 수 있다. 본 실시 형태의 예에서는, CPU 코어(120)나 DIMM(150)은 CPU 소켓(110)이라고 하는 컴포넌트에 접속되고, I/O 어댑터(180)는 I/O 허브(160)라고 하는 컴포넌트에 접속된 다. 메모리 컨트롤러(130)가 CPU 소켓(110)과는 별도의 것인 경우나, 칩 세트가 존재하는 경우 등은, 그들도 또한 독립된 컴포넌트로 될 수 있다. 물리 컴포넌트 구성표(400)는, 이와 같은 리소스와 컴포넌트의 포함 관계를 나타내는 표이다. 범위(415)에서 나타내어지는 리소스가 컴포넌트#(420)에 포함되는 것을 나타내고 있다. 리소스 종별(410)이 메모리인 경우에는, 대응하는 DIMM(150)의 번호 외에, 물리 어드레스의 범위도 나타내어진다. 이 예에서는 1DIMM당 1GB씩이기 때문에, 0x0_0000_0000부터 0x0_3_FFFF_FFFF까지의 16GB가 속하는 CPU 소켓에 따라서 4분할되어 있다. 각 리소스가 가동 상태로 된 경우의 소비 전력[W]이 참조 부호 430에, 리소스의 토대로 되어 있는 컴포넌트가 가동 상태로 된 경우의 소비 전력이 참조 부호 435에 나타내어진다. 예를 들면 코어#0이 가동하고 있고 코어#1은 가동하고 있지지 않은 것으로 한다. 이 경우 리소스의 소비 전력은 코어당 20이기 때문에 20이지만, 토대로 되는 컴포넌트의 CPU 소켓의 소비 전력은 물리 컴포넌트 구성표(400)에 의하면 80이기 때문에, 합계 20+80=100이 코어#0만이 가동하고 있는 경우의 소비 전력으로 된다. 또한, 여기서는 물리 컴포넌트 구성표(400)의 사이즈를 작게 하기 위해서 범위(415)에서 동일한 컴포넌트에 속하는 복수의 리소스를 통합하여 1엔트리로 나타내고 있지만, 리소스마다 서로 다른 엔트리를 사용해도 무방하다.In the description of the present embodiment, the component # 420 points to an object that is physically inserted or removed, such as the CPU socket 110 or the I / O hub 160, and a plurality of resources are provided. It may be connected on one component # 420. In the example of this embodiment, the CPU core 120 or the DIMM 150 is connected to a component called the CPU socket 110, and the I / O adapter 180 is connected to the component called the I / O hub 160. do. If the memory controller 130 is separate from the CPU socket 110, the chip set is present, or the like, they may also be independent components. The physical component composition table 400 is a table which shows the inclusion relationship of such a resource and a component. Indicates that the resource represented by scope 415 is included in component # 420. When the resource type 410 is a memory, a range of physical addresses is shown in addition to the number of the corresponding DIMM 150. In this example, since 1 GB per 1 DIMM is divided into 4 parts according to the CPU socket to which 16 GB from 0x0_0000_0000 to 0x0_3_FFFF_FFFF belong. The power consumption [W] in the case where each resource is in the active state is indicated by reference numeral 430, and the power consumption in the case where the component based on the resource is in the active state is indicated by reference numeral 435. For example, it is assumed that core # 0 is in operation and core # 1 is not in operation. In this case, the power consumption of the resource is 20 because it is 20 per core, but since the power consumption of the CPU socket of the component on which it is based is 80 according to the physical component scheme 400, the total 20 + 80 = 100 is only core # 0 running. Power consumption when there is one. In this case, in order to reduce the size of the physical component scheme 400, a plurality of resources belonging to the same component are shown as one entry in the range 415, but different entries may be used for each resource.

또한, 리소스의 소비 전력(430)과 컴포넌트의 소비 전력(435)은, 서비스 프로세서(220)의 ROM(221)에 미리 설정한 데이터를 이용한다. 또한, 이 ROM에는 I/O 어댑터(180)의 소비 전력이나 각 컴포넌트간의 대역이나 레이턴시 등 컴포넌트의 성능에 관련되는 정보를 저장해 둔다.In addition, the power consumption 430 of the resource and the power consumption 435 of the component use data previously set in the ROM 221 of the service processor 220. The ROM also stores information related to component performance, such as power consumption of the I / O adapter 180, bandwidth and latency between components.

도 4는 I/O 어댑터 구성표(450)의 구성을 도시한다. I/O 어댑터 구성표(450)는, 멀티프로세서 시스템(100) 상의 모든 I/O 어댑터(180)분의 엔트리가 존재하고, I/O 어댑터(180)의 일련 번호를 나타내는 I/O 어댑터#(455), I/O 어댑터의 식별자를 나타내는 I/O 어댑터(460), 이 I/O 어댑터가 장착된 I/O 슬롯#(465), I/O 어댑터의 종류를 나타내는 어댑터 종별(470), 이 I/O 어댑터의 소비 전력(475)의 각 항목으로 구성된다. 어댑터 종별(470)은, 네트워크 인터페이스 카드(NIC)나 호스트 버스 어댑터(HBA)라고 하는 어댑터의 종류가 기술된다.4 shows a configuration of the I / O adapter scheme 450. The I / O adapter scheme 450 includes an I / O adapter # () that represents an entry for every I / O adapter 180 on the multiprocessor system 100 and indicates the serial number of the I / O adapter 180. 455), an I / O adapter 460 indicating an identifier of the I / O adapter, an I / O slot # 465 equipped with this I / O adapter, an adapter type 470 indicating a type of the I / O adapter, Each item of the power consumption 475 of this I / O adapter is comprised. The adapter type 470 describes a type of adapter called a network interface card (NIC) and a host bus adapter (HBA).

도 5는 컴포넌트간 거리 대응표(500)의 구성을 도시한다. 컴포넌트간 거리 대응표(500)는, 멀티프로세서 시스템(100) 상의 모든 컴포넌트에 대응하는 엔트리가 존재하고, 컴포넌트의 식별자를 나타내는 컴포넌트#(420)과, 컴포넌트의 종류를 나타내는 컴포넌트 종별(425)과, 이 컴포넌트와 다른 컴포넌트의 거리를 나타내는 쌍 컴포넌트간 거리(510)로 구성된다. 쌍 컴포넌트간 거리(510)는 또한 모든 컴포넌트분만큼 나누어져 있고, 컴포넌트#(420)의 컴포넌트로부터 쌍 컴포넌트간 거리(510)의 컴포넌트에 도달할 때까지의 거리를 나타내고 있다. 시스템 전체에서 N개의 컴포넌트가 있을 때, 쌍 컴포넌트간 거리(510)는 N×N의 매트릭스를 구성한다. 통상적으로, 자기 자신에 도달하는 거리는 0이라고 생각되므로, 이 매트릭스의 대각선 부분에는 0이 배열되는 것이 보통이다. 본 실시 형태에서는 모듈간 접속 I/F(200)의 성능은 모두 등가라고 가정하였기 때문에, 몇회 모듈간 접속 I/F(200)를 거치면 목적의 컴포넌트까지 도달하는지라고 하는 횟수를 거리로 하고 있다. 이 거리를, 컴포넌트의 물리적인 위치 정보로서 취급한다. 예를 들면, CPU 소켓(110a)부터 I/O 허브(160b)까지의 거리는, 도 1에서, CPU 소켓(110a)부터 CPU 소켓(110d)까지의 거리가 모듈간 접속 I/F(200)를 1회 경유하고, CPU 소켓(110d)부터 I/O 허브(160b)까지 모듈간 접속 I/F(200)를 1회 경유하므로 컴포넌트간의 거리는 합계 2로 된다.5 shows a configuration of the distance correspondence table 500 between components. The component-to-component distance correspondence table 500 includes an entry corresponding to all components on the multiprocessor system 100, a component # 420 indicating an identifier of a component, a component type 425 indicating a type of a component, It consists of a distance 510 between pair components representing the distance between this component and another component. The distance between paired components 510 is also divided by all components and represents the distance from the component of component # 420 to the component of the distance between paired components 510. When there are N components throughout the system, the distance between pair components 510 constitutes a matrix of N × N. Typically, the distance to reach itself is considered zero, so zero is usually arranged in the diagonal portion of this matrix. In this embodiment, since the performances of the inter-module connection I / F 200 are all assumed to be equivalent, the number of times that the target component is reached after passing through the inter-module connection I / F 200 is set as the distance. This distance is treated as physical location information of the component. For example, the distance from the CPU socket 110a to the I / O hub 160b is, as shown in FIG. 1, when the distance from the CPU socket 110a to the CPU socket 110d represents the inter-module connection I / F 200. Since it passes once and passes through the module-to-module connection I / F 200 from CPU socket 110d to I / O hub 160b once, the distance between components totals two.

또한, 모듈간 접속 I/F가 불균일한 경우에는, 후술의 물리 네트워크 구성표(550)에 있는 레이턴시(570)의 합계값을 사용하여 거리를 나타낸다라고 하는 방법이 생각된다.In addition, when the inter-module connection I / F is nonuniform, a method of representing the distance using the total value of the latency 570 in the physical network configuration table 550 described later is considered.

또한, 본 실시 형태에서는, 메모리(150)는 CPU 소켓(110)에 직접 접속되기 때문에, CPU 소켓(110)과 메모리(150)의 거리는 0이므로 컴포넌트간 거리 대응표(500)에 포함되지 않지만, 메모리(150)가 내부 네트워크(모듈간 접속 I/F(200))에 접속되어 있는 경우에서는, 메모리(150)를 컴포넌트#(420)에 부가하여 각 컴포넌트간의 거리를 컴포넌트간 거리 대응표(500)에 설정하면 된다.In addition, in this embodiment, since the memory 150 is directly connected to the CPU socket 110, since the distance between the CPU socket 110 and the memory 150 is 0, it is not included in the distance correspondence table 500 between components. When 150 is connected to the internal network (inter-module connection I / F 200), the memory 150 is added to component # 420, and the distance between each component is added to the distance correspondence table 500 between components. You can set it.

또한, 컴포넌트간 거리 대응표(500)는, 가상 머신 모니터(300)가, 물리 하드웨어 구성 정보 취득 I/F(320)의 정보에 기초하여 생성할 수 있다. 또한, 서비스 프로세서(220)가 물리 하드웨어 구성 정보 취득 I/F(320)의 정보에 기초하여 컴포넌트간 거리 대응표(500)를 생성하고, 가상 머신 모니터(300)에 통지하도록 하여도 된다.In addition, the distance correspondence table 500 between components can be generated by the virtual machine monitor 300 based on the information of the physical hardware configuration information acquisition I / F 320. In addition, the service processor 220 may generate the distance correspondence table 500 between components based on the information of the physical hardware configuration information acquisition I / F 320 and notify the virtual machine monitor 300.

도 6은 물리 네트워크 구성표(550)의 구성을 도시하고 있다. 물리 네트워크 구성표(550)는, 멀티프로세서 시스템(100) 상의 모든 모듈간 접속 I/F(200)에 대하 여, 모듈간 접속 I/F(200)의 접속의 일련 번호를 나타내는 네트워크#(555)과, 어느 컴포넌트(420a)로부터 어느 컴포넌트(420b)를 연결하고 있는 것인지, 그리고 컴포넌트(420a)와 컴포넌스(420b) 사이의 대역(560)과 레이턴시(570)를 나타내는 항목으로 이루어진다. 본 실시 형태에서는, CPU 소켓(110) 사이를 연결하는 네트워크의 대역(560)은 6인 것에 대해서, CPU 소켓(110)과 I/O 허브(160) 간을 연결하는 네트워크 대역(560)은 절반인 3인 것으로 했다. 또한, 대역(560)의 단위는, 예를 들면 [Gbps]이며, 레이턴시(570)의 단위는, 예를 들면, [nsec]이다.6 shows a configuration of a physical network configuration table 550. Physical network scheme 550 is a network # 555 representing the serial number of the connection of the inter-module connection I / F 200 for all the inter-module connection I / F 200 on the multiprocessor system 100. And an item indicating which component 420b is connected from which component 420a, and a band 560 and a latency 570 between the component 420a and the component 420b. In the present embodiment, the band 560 of the network connecting between the CPU sockets 110 is 6, whereas the network band 560 connecting the CPU socket 110 and the I / O hub 160 is half. We assumed to be three. The unit of the band 560 is, for example, [Gbps], and the unit of the latency 570 is, for example, [nsec].

이상이 물리 하드웨어 구성 정보 취득 I/F(320)의 내역이다. 이들 정보를, 서비스 프로세서(220)는, 모듈 정보 취득 I/F(210)를 통해서 각 리소스·컴포넌트로부터 수집한다. 그리고, 가상 머신 모니터(300)는 서비스 프로세서(220)로부터 물리 하드웨어 구성 정보 취득 I/F(320)를 취득한다. 물리 네트워크 구성표(550)나 컴포넌트간 거리 대응표(500)와 같이, 서비스 프로세서(220)가 모듈 단체에 조회한 것만으로는 얻어지지 않는 정보에 관해서는, 멀티프로세서 시스템(100)의 초기화 시나 혹은 구성 변경 시에, 모듈 정보 취득 I/F(210) 및 모듈간 접속 I/F(200)를 통한 조회 프로토콜을 사용하여 접속 관계를 자동적으로 검출하는 방법이나, 구성 변경 시에 관리자가 이용하는 시스템 관리 툴(멀티프로세서 시스템(100) 밖에 존재)의 정보를 서비스 프로세서(220) 등이 불휘발성 메모리 등에 보존해 두고, 그 정보에 기초하여 구성한다라고 하는 방법이 생각된다.The above is the details of the physical hardware configuration information acquisition I / F 320. The service processor 220 collects these pieces of information from each resource component through the module information acquisition I / F 210. The virtual machine monitor 300 obtains the physical hardware configuration information acquisition I / F 320 from the service processor 220. As for the physical network configuration table 550 and the distance correspondence table 500 between components, the information which cannot be obtained only by the service processor 220 inquiring the module alone is determined or initialized in the multiprocessor system 100. At the time of change, a method of automatically detecting a connection relationship using an inquiry protocol through the module information acquisition I / F 210 and the inter-module connection I / F 200, or a system management tool used by an administrator at the time of configuration change. It is conceivable that the service processor 220 or the like store information on the outside of the multiprocessor system 100 and configure it based on the information.

<가상 서버의 구성><Configuration of Virtual Server>

도 7∼도 9에서, 제1 실시 형태에서의 가상 서버(1_370a)의 논리 하드웨어 요구 I/F(350)와, 그것에 대응하는 가상 서버의 구성을 도시한다.7-9, the structure of the logical hardware request I / F 350 of the virtual server 1_370a in 1st Embodiment, and the virtual server corresponding to it is shown.

도 7은, 게스트 OS(360)를 기동할 때에, 가상 머신 모니터(300)에 대하여 가상 서버(1_370a)(도 9, 도 16 참조)의 기동에 필요한 리소스를 요구하는 논리 하드웨어 요구 I/F(350a)의 구성을 도시한다. 이 논리 하드웨어 요구 I/F(350a)는, 콘솔(230)로 관리자가 설정한 것이다.7 illustrates a logical hardware request I / F requesting a resource required for the startup of the virtual server 1_370a (see FIGS. 9 and 16) to the virtual machine monitor 300 when the guest OS 360 is activated. The configuration of 350a) is shown. The logical hardware request I / F 350a is set by the administrator in the console 230.

논리 하드웨어 요구 I/F(350a)는, 가상 서버의 일련 번호를 나타내는 #(351), 가상 서버에서 가동하는 게스트 OS(360)의 식별자를 나타내는 게스트명(352), 가상 서버에 할당하는 I/O 어댑터(353), 가상 서버에 할당하는 CPU 코어수(354), 가상 서버에 할당하는 메모리량(355), 가상 서버에 할당하는 리소스의 폴리시를 나타내는 리소스 할당 폴리시(356), 가상 서버의 우선도(357)로 구성된다. 가상 서버#(351)은 시스템 상의 가상 서버를 식별하기 위한 식별자이며, 반드시 요구하는 게스트측이 설정할 필요는 없다. 게스트명(352)은 각 게스트 OS(360)를 식별하기 위한 정보로, 예를 들면 게스트 OS(360)의 종류(Windows(등록상표)/Linux 등)도 여기에 포함된다. I/O 어댑터(353)는 해당 게스트 OS가 요구하는 I/O 어댑터(180)의 리스트이다. 여기서는 I/O 어댑터(180a와 180c)를 요구하고 있다. CPU 코어수(354)는 게스트 OS(360a)가 필요한 CPU 코어의 수이다. 여기서는 4코어 필요로 하고 있다. 메모리량(355)은 게스트 OS(360a)가 필요로 하는 메모리량이다. 여기서는 4GB분 필요로 하고 있다. 리소스 할당 폴리시(356)는 리소스를 할당할 때의 폴리시를 나타내고 있고, 본 발명에서의 키로 되는 파라미터이다. 리소스 할당 폴리시(356)로서는, 예를 들면, 다음과 같은 폴리시가 생각된다.The logical hardware request I / F 350a includes a # 351 indicating the serial number of the virtual server, a guest name 352 indicating the identifier of the guest OS 360 running on the virtual server, and an I / A assigned to the virtual server. O adapter 353, number of CPU cores 354 allocated to virtual server, amount of memory 355 allocated to virtual server, resource allocation policy 356 indicating policy of resource allocated to virtual server, priority of virtual server It consists of a diagram 357. The virtual server # 351 is an identifier for identifying the virtual server on the system and does not need to be set by the requesting guest. The guest name 352 is information for identifying each guest OS 360. For example, the type of the guest OS 360 (Windows (registered trademark) / Linux, etc.) is also included therein. I / O adapter 353 is a list of I / O adapters 180 required by the guest OS. I / O adapters 180a and 180c are required here. The number of CPU cores 354 is the number of CPU cores required by the guest OS 360a. This requires four cores. The memory amount 355 is a memory amount required by the guest OS 360a. 4GB is required here. The resource allocation policy 356 represents a policy when allocating resources, and is a key parameter in the present invention. As the resource allocation policy 356, the following policy is considered, for example.

성능 우선: 컴포넌트간의 거리를 짧게 하도록 하는 배치를 선택한다Performance First: Choose an arrangement that will shorten the distance between components.

*CPU-메모리 우선: CPU와 메모리간의 거리가 짧아지도록 한다(CPU의 메모리 엑세스가 많은 경우에 유효)CPU-memory priority: Make the distance between the CPU and memory shorter (valid when the CPU has a lot of memory access)

*CPU-I/O 우선: CPU와 I/O 디바이스간의 거리가 짧아지도록 한다(I/O 인터럽트가 많은 경우 등에 유효)CPU-I / O priority: Make the distance between the CPU and I / O devices shorter (valid when there are many I / O interrupts)

*I/O 디바이스-메모리 우선: I/O 디바이스와 메모리간의 거리가 짧아지도록 한다(I/O 디바이스로부터의 DMA 전송이 많은 경우 등에 유효)I / O device-memory priority: Make the distance between the I / O device and the memory shorter (valid when there are many DMA transfers from the I / O device).

*CPU-I/O 디바이스-메모리 우선: 각 리소스를 가깝게 배치하도록 한다(가상 서버의 전체의 성능을 밸런스시키는 경우) CPU-I / O device-memory priority: Place each resource close together (when balancing the performance of the entire virtual server).

·신뢰성 우선: 가상 서버간의 공통의 컴포넌트·네트워크가 적어지도록 한다 Reliability Priority: Reduces the number of common components and networks between virtual servers.

·대역 우선: 네트워크의 실효 대역이 커지도록 한다 Band Priority: Increases the effective band of the network

·전력 절약 우선: 시스템 전체의 소비 전력이 작아지도록 한다Power saving priority: Reduces power consumption throughout the system

본 실시 형태의 이하의 설명에서는, 설정하는 폴리시의 일례를 성능 우선 중 CPU-I/O 우선으로 하고 있다. 단, 가상 서버1(360a)은 멀티프로세서 시스템(100) 상의 최초의 가상 서버이기 때문에, 기본적으로 요구한 리소스는 획득할 수 있을 가능성이 높다. 우선도(357)는, 가상 서버간에서 요구한 리소스가 경합한 경우에 어느 가상 서버를 우선할지를 결정하기 위해서 사용하는 파라미터이다. 우선도를 나타내는 일례로서는, 여기서는 정수이며 값이 클수록 우선도가 높은 것을 나타내는 것으로 했다. 단, 제1 실시 형태에서는 모든 가상 서버는 동일한 우선도를 갖 는 것으로 한다.In the following description of this embodiment, an example of the policy to set is CPU-I / O priority among performance priority. However, since the virtual server 1 360a is the first virtual server on the multiprocessor system 100, it is highly likely that the requested resource can be obtained basically. Priority 357 is a parameter used to determine which virtual server to give priority when there is a conflict between resources requested between virtual servers. As an example of showing the priority, it is assumed that the integer is higher and the higher the value is, the higher the priority is. However, in the first embodiment, it is assumed that all virtual servers have the same priority.

또한, 본 실시 형태에서는 가상 서버에 제공하는 폴리시를 1개만으로 하고 있지만, 우선도가 높은 프라이머리 폴리시와 우선도가 낮은 세컨더리 폴리시를 제공하고, 프라이머리 폴리시를 만족시키는 구성 중에서 또한 세컨더리 폴리시를 가능한 한 만족시키게 하는 구성을 선택해도 된다. 또한 복수의 폴리시에 수치로 가중치 부여를 제공하도록 하는 인터페이스도 생각된다. 여기서는 설명의 간략화를 위해서, 폴리시는 1개뿐인 것으로 했다.In the present embodiment, only one policy is provided to the virtual server. However, among the configurations that satisfy the primary policy and provide a primary policy with a higher priority and a secondary policy with a lower priority, the secondary policy is also possible. You may select a configuration that satisfies you. Also contemplated are interfaces that provide numerical weighting for multiple policies. Here, for the sake of simplicity, only one policy is assumed.

도 8은 도 7에 도시한 가상 서버(1_370a)의 논리 하드웨어 요구 I/F(350a)에 기초하여 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)가 물리 리소스의 할당을 행한 결과에 대응한 물리-논리 하드웨어 할당표(310)의 구성과 내용을 도시하고 있다. 또한, 가상 머신 모니터(300)가 하드웨어 리소스를 할당하는 처리에 대해서는, 후술의 도 55∼도 63에서 상술한다. FIG. 8 corresponds to a result of the logical hardware allocation processing unit 801 of the virtual machine monitor 300 assigning physical resources based on the logical hardware request I / F 350a of the virtual server 1_370a shown in FIG. The configuration and contents of a physical-logical hardware assignment table 310 are shown. In addition, the process which the virtual machine monitor 300 allocates a hardware resource is explained in full detail later in FIGS. 55-63.

물리-논리 하드웨어 할당표(310)는, 가상 서버의 일련 번호를 나타내는 가상 서버#(351), 그 가상 서버의 기동 상태를 나타내는 on/off(311), 그 가상 서버가 사용하는 리소스를 나타내는 사용 리소스#으로서 I/O 어댑터(312), CPU 코어(313), 메모리(314), 사용 컴포넌트#(315), 사용 네트워크#(316)으로 구성된다. 본 실시 형태에서는, 논리 하드웨어 요구 I/F(350a)에 따라서, I/O 어댑터#1, 3, CPU 코어#0, 1, 2, 3, DIMM#4, 5, 6, 7을 가상 서버(1_370a)에 할당하고 있다. 또한, 사용 리소스#의 메모리(314)에는 대응하는 물리 어드레스가 0x1_0000_0000으로부터 4GB 분으로 되어 있다(이 0x1_0000_0000을 가상 서버1의 베이스 어드레스라고 부르는 경우가 있음). 또한, 이들 리소스가 탑재된 컴포넌트의 식별자로서 110a, 110b, 160a가 사용 컴포넌트#(315)에 설정되고, 접속에 사용하는 네트워크#으로서 #1, 5, 6이 사용 네트워크#(316)에 설정된 예를 나타내고 있다.The physical-logical hardware allocation table 310 includes a virtual server # 351 representing the serial number of the virtual server, an on / off 311 indicating the startup state of the virtual server, and a resource representing the resource used by the virtual server. The resource # includes an I / O adapter 312, a CPU core 313, a memory 314, a use component # 315, and a use network # 316. In this embodiment, the I / O adapters # 1, 3, CPU cores # 0, 1, 2, 3, DIMMs # 4, 5, 6, and 7 are replaced with virtual servers in accordance with the logical hardware request I / F 350a. 1_370a). In the memory 314 of the used resource #, corresponding physical addresses range from 0x1_0000_0000 to 4 GB (this 0x1_0000_0000 is sometimes referred to as the base address of the virtual server 1). In this example, 110a, 110b, and 160a are set to the use component # 315 as identifiers of the components loaded with these resources, and # 1, 5, and 6 are set to the use network # 316 as the network # to be used for connection. Indicates.

도 7의 논리 하드웨어(HW)요구 I/F(350)로부터 도 8의 물리-논리 H/W 할당표(310)를 생성하는 구체적인 수순에 대해서는, 후술한다.The specific procedure for generating the physical-logical H / W allocation table 310 of FIG. 8 from the logical hardware (HW) request I / F 350 of FIG. 7 will be described later.

도 9는, 상기 논리 하드웨어 요구 I/F(350a)와 물리-논리 하드웨어(HW) 할당표(310)에 기초하여, 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)가 멀티프로세서 시스템(100) 상에 할당한 가상 서버(1_370a)를 도시한다. 도면 내에서 점선으로 둘러싸인 부분은 도 1의 리소스 중 가상 서버(1_370a)에 할당된 리소스를 나타낸다. 9, based on the logical hardware request I / F 350a and the physical-logical hardware (HW) allocation table 310, the logical hardware allocation processing unit 801 of the virtual machine monitor 300 is a multiprocessor system ( The virtual server 1_370a allocated on 100 is shown. A portion enclosed by a dotted line in the drawing represents resources allocated to the virtual server 1_370a among the resources of FIG. 1.

<제1 실시 형태에서의 동작><Operation in the First Embodiment>

이하, 도 10∼17에서, 본 제1 실시 형태의 동작에 대해서 설명한다.10 to 17, the operation of the first embodiment will be described.

도 10과 도 11은, 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)에 의해 상기 도 9에서 도시한 바와 같이 가상 서버(1_370a)가 할당된 후에, 다음의 가상 서버2에 대한 논리 하드웨어 요구 I/F(350b 및 350c)를 나타내고 있다. 논리 하드웨어 요구 I/F(350b와 350c)는, 모두 동일한 I/O 어댑터(353), CPU 코어수(354), 메모리량(355)을 요구하고 있다. 차이는 리소스 할당 폴리시(356)만으로, 논리 하드웨어 요구 I/F(350b)에서는 「CPU-메모리 우선」으로 되어 있는 것에 대해서, 논리 하드웨어 요구 I/F(350c)에서는 「I/O-메모리 우선」으로 되어 있다. 이하의 예에서는, 이들 폴리시의 차이에 의해, 서로 다른 리소스가 할당되는 모습 을 설명한다.10 and 11 show the logical hardware for the next virtual server 2 after the virtual server 1_370a is allocated as shown in FIG. 9 by the logical hardware allocation processing unit 801 of the virtual machine monitor 300. The required I / Fs 350b and 350c are shown. The logical hardware request I / Fs 350b and 350c both require the same I / O adapter 353, the number of CPU cores 354, and the memory amount 355. The difference is that only the resource allocation policy 356 is "CPU-memory priority" in the logical hardware request I / F 350b, whereas "I / O-memory priority" is in the logical hardware request I / F 350c. It is. In the following example, different resources are allocated by the difference of these policies.

도 12와 도 13은, 가상 서버2에 대한 상기 도 10, 도 11의 논리 하드웨어 요구 I/F(350)에 대하여, 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)가 할당을 행한 결과의 2가지의 물리-논리 하드웨어 할당표(310)를 도시하고 있다. 모두 I/O 어댑터(312)는 #2로 동일하지만, 사용 CPU 코어(313)와 메모리(314)가 서로 다르다. 도 12의 물리-논리 하드웨어 할당표(310b) 쪽에서는 CPU 코어#4, 5와 DIMM#8, 9, 10, 11을 할당하고 있는 것에 대해서, 도 13의 물리-논리 하드웨어 할당표(310c)에서는 CPU 코어#6, 7과 DIMM#0, 1, 2, 3을 할당하고 있다. 이 2가지 이외에도 리소스의 할당 방법은 생각되지만, 본질적으로 변하지 않는 할당 방법은 배제하거나 하여, 몇 가지 할당 방법의 후보를 압축한다. 12 and 13 show a result of the logical hardware allocation processing unit 801 of the virtual machine monitor 300 assigning to the logical hardware request I / F 350 shown in FIGS. 10 and 11 for the virtual server 2. Two physical-logical hardware assignment tables 310 are shown. Both I / O adapters 312 are identical to # 2, but use CPU cores 313 and memory 314 are different. In the physical-logical hardware assignment table 310b of FIG. 12, the CPU cores # 4, 5 and the DIMMs # 8, 9, 10, and 11 are assigned. In the physical-logical hardware assignment table 310c of FIG. CPU cores # 6, 7 and DIMM # 0, 1, 2, 3 are allocated. In addition to these two methods, resource allocation methods are conceivable, but the allocation method that essentially does not change is excluded, and candidates of several allocation methods are compressed.

도 10의 논리 하드웨어 요구 I/F(350b)에서는, CPU-메모리 우선의 폴리시를 요구하고 있기 때문에,CPU 소켓(110c)의 CPU 코어#4, #5와, CPU 소켓(110c)에 접속되는 메모리#8∼11을 가상 서버2에 할당하고, 리소스의 거리를 0으로 함으로써 CPU와 메모리의 거리가 짧은 것을 선택하고 있다. 한편, 도 11의 논리 하드웨어 요구 I/F(350c)에서는, I/O-메모리 우선의 폴리시를 요구하고 있기 때문에,I/O 디바이스와 메모리의 거리가 가장 짧아지도록, I/O 어댑터#2에 가장 가까운 메모리#0∼#3을 선택하고 있다. 이와 같이, 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)는, 요구된 폴리시에 따라서, 가상 서버에 할당하는 하드웨어 리소스를 최적화할 수 있다.In the logical hardware request I / F 350b of FIG. 10, since the CPU-memory priority policy is requested, the CPU cores # 4 and # 5 of the CPU socket 110c and the memory connected to the CPU socket 110c. By assigning # 8 to 11 to the virtual server 2 and setting the resource distance to 0, the short distance between the CPU and the memory is selected. On the other hand, since the logic hardware request I / F 350c shown in Fig. 11 requires an I / O-memory priority policy, the I / O adapter # 2 is provided so that the distance between the I / O device and the memory is shortest. The nearest memory # 0 to # 3 is selected. In this way, the logical hardware allocation processing unit 801 of the virtual machine monitor 300 can optimize the hardware resources allocated to the virtual server according to the requested policy.

도 14는, 도 12에 나타낸 할당표(310b)에 대응하여, 가상 머신 모니터(300) 가 각 리소스간의 거리를 계산한 리소스간 거리 계산표(600b)를 도시하고 있다. 리소스간 거리 계산표(600b)는, 가상 서버의 식별자(또는 일련 번호)를 나타내는 가상 서버의 번호#(351)과, 각 가상 서버 번호#(351)마다, 가상 서버 내의 리소스간의 거리를 계산하기 위한 표이다. 카테고리(601)에는, 리소스 할당 폴리시에 대응한 CPU-메모리, I/O-메모리, CPU-I/O의 3종류의 카테고리가 존재한다. 각각의 카테고리(601)마다 리소스 from(602)부터 리소스 to(603)까지의 컴포넌트간 거리(604)를, 소속하는 컴포넌트#과, 컴포넌트간 거리 대응표(500)에 따라서 가상 머신 모니터(300)가 계산한다. 이 예에서는, CPU 코어#4, #5와 DIMM#8, 9, 10, 11은 모두 동일한 컴포넌트(110c) 상에 탑재되어 있으므로, 컴포넌트간 거리(604)는 0으로 된다. 한편,I/O 어댑터#2가 탑재된 컴포넌트(160a)와, DIMM#8, 9, 10, 11이 탑재된 컴포넌트(110c)와의 거리는, 컴포넌트간 거리 대응표(500)에 따르면 2이기 때문에, 컴포넌트간 거리(604)는 2로 된다. CPU 코어#4, 5와 I/O 어댑터#2 사이의 거리도 마찬가지로 2로 된다. 마지막으로 카테고리(601)마다 컴포넌트간 거리의 총합(605)을 계산한다. 이 예에서는, CPU-메모리는 0, I/O-메모리는 2, CPU-I/O는 4로 된다.FIG. 14 shows an inter-resource distance calculation table 600b in which the virtual machine monitor 300 calculates the distance between each resource, corresponding to the allocation table 310b shown in FIG. 12. The resource-to-resource calculation table 600b includes a virtual server number # 351 representing an identifier (or serial number) of the virtual server, and for each virtual server number # 351, for calculating the distance between resources in the virtual server. Table. In the category 601, there are three types of categories corresponding to the resource allocation policy: CPU-memory, I / O-memory, and CPU-I / O. The virtual machine monitor 300 according to the component # and the distance correspondence table 500 between components belonging to the component 601 from the resource from 602 to the resource to 603 for each category 601. Calculate In this example, since CPU cores # 4, # 5 and DIMMs # 8, 9, 10, and 11 are all mounted on the same component 110c, the distance between components 604 becomes zero. On the other hand, the distance between the component 160a on which I / O adapter # 2 is mounted and the component 110c on which DIMMs # 8, 9, 10, and 11 are mounted is 2 according to the distance correspondence table 500 between components. The distance 604 is two. The distance between CPU cores # 4, 5 and I / O adapter # 2 is likewise equal to two. Finally, the sum 605 of the distances between components for each category 601 is calculated. In this example, the CPU-memory is 0, the I / O-memory is 2, and the CPU-I / O is 4.

도 15는, 도 13에 도시한 물리-논리 하드웨어 할당표(310c)에 대응한 리소스간 거리 계산표(600c)를 도시하고 있다. CPU 코어#6, #7이 탑재된 컴포넌트(110d)와, DIMM#0, 1, 2, 3이 탑재된 컴포넌트(110a) 사이의 거리는 1이므로, 컴포넌트간 거리(604)는 1로 된다. 한편 I/O 어댑터#2가 탑재된 컴포넌트(160a)와 DIMM#0, 1, 2, 3이 탑재된 컴포넌트(110a) 사이의 거리는 1이므로, 컴포넌트간 거리(604)는 1 로 된다. 마지막으로 CPU 코어#6, 7이 탑재된 컴포넌트(110d)와 I/O 어댑터#2가 탑재된 컴포넌트(160a) 거리는 2이므로, 컴포넌트간 거리(604)는 2로 된다. 컴포넌트간 거리의 총합(605)은, CPU-메모리가 2, I/O-메모리가 1, CPU-I/O가 4로 된다. FIG. 15 shows an inter-resource distance calculation table 600c corresponding to the physical-logical hardware assignment table 310c shown in FIG. Since the distance between the component 110d on which the CPU cores # 6 and # 7 are mounted and the component 110a on which the DIMMs # 0, 1, 2, and 3 are mounted is 1, the inter-component distance 604 becomes one. Meanwhile, since the distance between the component 160a on which the I / O adapter # 2 is mounted and the component 110a on which the DIMMs # 0, 1, 2, and 3 are mounted is 1, the distance between components is 604. Finally, since the distance between the component 110d on which the CPU cores # 6 and 7 are mounted and the component 160a on which the I / O adapter # 2 is mounted is two, the distance between components 604 becomes two. The total of the distances between the components 605 is 2 for CPU-memory, 1 for I / O-memory and 4 for CPU-I / O.

이상과 같이 하여 리소스간 거리 계산표(600)를 계산한 리소스 할당 후보 중으로부터, 리소스 할당 폴리시를 가장 만족시키는 후보를 선택한다. 참조 부호 350b에서의 「CPU-메모리 우선」의 경우에는, 컴포넌트간 거리의 총합(605)의 CPU-메모리의 값이 작아지는 리소스 할당을 선택한다. 그에 대해서 「I/O-메모리 우선」의 경우에는, 컴포넌트간 거리의 총합(605)의 I/O-메모리의 값이 작아지는 리소스 할당을 선택한다. 물리-논리 하드웨어 할당표(310b와 310c)를 비교한 경우, 「CPU-메모리 우선」의 경우에는 참조 부호 310b, 「I/O-메모리 우선」의 경우에는 참조 부호 310c의 리소스 할당이 각각 선택된다.The candidate which satisfies the resource allocation policy most is selected from the resource allocation candidates which calculated the distance-to-resources distance calculation table 600 as mentioned above. In the case of "CPU-memory priority" at 350b, a resource allocation is selected in which the value of the CPU-memory of the total 605 of the component-to-component distances becomes small. In contrast, in the case of "I / O-memory priority", resource allocation is selected in which the value of the I / O-memory of the total 605 of the distances between components becomes small. When the physical-logical hardware allocation tables 310b and 310c are compared, resource allocation of reference numeral 310b for "CPU-memory priority" and reference numeral 310c for "I / O-memory priority" is selected, respectively. .

도 16은 도 12에 도시한 물리-논리 하드웨어 할당표(310b)에 대응하는 가상 서버(2_370b)의 구성도이다. 가상 서버(2_370b)는 도면 내에서 일점쇄선으로 나타내는 바와 같이, CPU 소켓(110c)과 그것에 접속된 메모리, 및 I/O 어댑터(180b)로 구성된다.FIG. 16 is a configuration diagram of the virtual server 2_370b corresponding to the physical-logical hardware assignment table 310b shown in FIG. The virtual server 2_370b is composed of a CPU socket 110c, a memory connected thereto, and an I / O adapter 180b, as indicated by a dashed line in the figure.

도 17은 도 13에 도시한 물리-논리 하드웨어 할당표(310c)에 대응하는 가상 서버의 구성도이다. 가상 서버(2_370b)는 도면 내에서 일점쇄선으로 나타내는 바와 같이, CPU 소켓(110d) 상의 CPU 코어#6, 7과, CPU 소켓(110a) 상의 DIMM#0, 1, 2, 3과, I/O 어댑터(180b)로 구성된다. FIG. 17 is a configuration diagram of a virtual server corresponding to the physical-logical hardware assignment table 310c shown in FIG. As shown by a dashed line in the figure, the virtual server 2_370b includes CPU cores # 6, 7 on the CPU socket 110d, DIMMs # 0, 1, 2, 3, and I / O on the CPU socket 110a. It consists of an adapter 180b.

이상의 예에 의해, 논리 하드웨어 요구 I/F(350)의 리소스 할당 폴리시의 차이에 의해, 동일한 I/O 어댑터·CPU 코어수·메모리량을 요구한 경우라도, 서로 다른 리소스를 할당할 수 있어, 관리자가 희망하는 가상 서버를, 자동적으로 구성하는 것이 가능하게 된다. According to the above example, even if the same I / O adapter, the number of CPU cores, and the memory amount are requested due to the difference in the resource allocation policy of the logical hardware request I / F 350, different resources can be allocated. The administrator can configure the desired virtual server automatically.

<변형예 1> <Modification 1>

계속해서 제1 실시 형태의 제1 변형예를 설명한다. 도 18∼도 20에, 본 변형예 1에서의 가상 서버(1_370a)의 논리 하드웨어 요구 I/F(350d)를 도 18에 도시하고, 이 논리 하드웨어 요구 I/F(350d)로부터 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)가 할당을 행한 결과의 물리-논리 하드웨어 할당표(310d)를 도 19에 도시하고, 및 가상 서버(1_370a)의 구성을 도 20에 도시한다. I/O 어댑터로서 참조 부호 180a와 180c를 요구하고 있는 것은 상기 제1 실시 형태와 동일하지만, 전술한 제1 실시 형태와 달리, 가상 서버1은 2개의 CPU 코어와 8GB의 메모리를 요구하고 있다. 이 요구에 대하여 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)는 요구 폴리시인 CPU-I/O 우선의 폴리시로부터 도 19, 20에 도시하는 바와 같은 리소스의 할당을 행하였다.Subsequently, a first modification of the first embodiment will be described. 18-20, the logical hardware request I / F 350d of the virtual server 1_370a in the modification 1 is shown in FIG. 18, and from this logical hardware request I / F 350d, a virtual machine monitor ( The physical-logical hardware assignment table 310d as a result of the assignment by the logical hardware assignment processing unit 801 of 300 is shown in FIG. 19, and the configuration of the virtual server 1_370a is shown in FIG. Requiring reference numerals 180a and 180c as the I / O adapter is the same as in the first embodiment described above. However, unlike the first embodiment described above, the virtual server 1 requires two CPU cores and 8 GB of memory. In response to this request, the logical hardware allocation processing unit 801 of the virtual machine monitor 300 allocates resources as shown in Figs. 19 and 20 from the CPU-I / O priority policy, which is the request policy.

계속해서 도 21∼28에서 상기 도 18∼도 20의 가상 서버1의 할당 후에, 도 21에 도시하는 논리 하드웨어 요구 I/F(350e)에 의한 가상 서버2의 리소스 요구를 행하고, 도 22에 도시하는 논리 하드웨어 요구 I/F(350f)에 의한 가상 서버2의 리소스 요구를 행한 경우를 도시한다. 가상 서버2는, 상기 제1 실시 형태와 동일하게, I/O 어댑터(180b)와 CPU 코어수(2), 4GB의 메모리를 요구하고 있다. 그에 대 하여, 도 21의 논리 하드웨어 요구 I/F(350e)에서는 리소스 할당 폴리시(356)로서 「CPU-메모리 우선」을, 참조 부호 350f에서는 리소스 할당 폴리시(356)로서 「CPU-I/O 우선」을 지정하고 있다.Subsequently, after the allocation of the virtual server 1 shown in Figs. 18 to 20 in Figs. 21 to 28, the resource request of the virtual server 2 is made by the logical hardware request I / F 350e shown in Fig. 21 and shown in Fig. 22. The case where the resource request of the virtual server 2 by the logical hardware request I / F 350f is performed is shown. Virtual server 2 requests the I / O adapter 180b, the number of CPU cores 2, and 4 GB of memory in the same manner as in the first embodiment. In contrast, in the logical hardware request I / F 350e of FIG. 21, "CPU-memory priority" as the resource allocation policy 356, and "CPU-I / O priority" as the resource allocation policy 356 at 350f. Is specified.

도 23과 도 24는, 각각 상기 도 21, 도 22의 물리-논리 하드웨어 할당표(310e, 310f)의 가상 서버2에 대한 서로 다른 리소스 할당의 예로, 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)가 할당을 행한 결과이다. 물리-논리 하드웨어 할당표(310e)에서는 CPU 코어와 메모리가 동일한 CPU 소켓(110c) 상에 할당되어 있는 것에 대해서, 물리-논리 하드웨어 할당표(310f)에서는 CPU 코어는 CPU 소켓(110a) 상에, DIMM은 CPU 소켓(110d) 상에 할당되어 있다. 23 and 24 are examples of different resource allocations for the virtual server 2 of the physical-logical hardware allocation tables 310e and 310f of FIGS. 21 and 22, respectively. The logical hardware allocation processing unit of the virtual machine monitor 300 is shown. 801 indicates the result of the assignment. In the physical-logical hardware assignment table 310e, the CPU core and the memory are allocated on the same CPU socket 110c. In the physical-logical hardware assignment table 310f, the CPU core is located on the CPU socket 110a. The DIMM is allocated on the CPU socket 110d.

도 25와 도 26은 물리-논리 하드웨어 할당표(310e와 310f)의 각각의 할당에 따라서 리소스간 거리 계산표(600e, 600f)를 계산한 결과이다. 도 25의 리소스간 거리 계산표(600e)에서는 컴포넌트간 거리의 총합(605)은 CPU-메모리가 0, I/O-메모리가 2, CPU-I/O가 4로 된다. 한편, 도 26의 리소스간 거리 계산표(600f)에서는 컴포넌트간 거리의 총합(605)은 CPU-메모리가 2, I/O-메모리가 2, CPU-I/O가 2로 된다. 이 결과, 「CPU-메모리 우선」의 경우에는 CPU-메모리의 컴포넌트간 거리의 총합(605)이 작은 참조 부호 310e의 할당이, 「CPU-I/O 우선」의 경우에는, CPU-I/O의 컴포넌트간 거리의 총합(605)이 작은 참조 부호 310f의 할당이 선택된다.25 and 26 show the results of calculating the distance calculation tables 600e and 600f between resources according to the allocation of the physical-logical hardware allocation tables 310e and 310f. In the inter-resource distance calculation table 600e shown in FIG. 25, the sum of the inter-component distances 605 is 0 for CPU-memory, 2 for I / O-memory, and 4 for CPU-I / O. On the other hand, in the inter-resource distance calculation table 600f of FIG. 26, the sum of the distances between components is 605 for CPU-memory, 2 for I / O-memory, and 2 for CPU-I / O. As a result, in the case of "CPU-memory priority", the assignment of the reference numeral 310e having a small sum 605 of the component-to-component distances of the CPU-memory is CPU-I / O in the case of "CPU-I / O priority". The allocation of reference numeral 310f with a small sum 605 of the inter-component distances is selected.

도 27은 상기 도 23의 물리-논리 하드웨어 할당표(310e)에 대응하는 가상 서버의 구성도이다. 가상 서버(2_370b)는 CPU 소켓(110c) 상의 CPU 코어#4, 5와 DIMM#8, 9, 10, 11과, I/O 어댑터(180b)로 구성된다. FIG. 27 is a configuration diagram of a virtual server corresponding to the physical-logical hardware allocation table 310e of FIG. 23. The virtual server 2_370b is composed of CPU cores # 4, 5, DIMMs # 8, 9, 10, 11, and an I / O adapter 180b on the CPU socket 110c.

도 28은 상기 도 24의 물리-논리 하드웨어 할당표(310f)에 대응하는 가상 서버의 구성도이다. 가상 서버(2_370b)는 CPU 소켓(110a) 상의 CPU 코어#0, 1과, CPU 소켓(110d) 상의 DIMM#12, 13, 14, 15와, I/O 어댑터(180b)로 구성된다.FIG. 28 is a configuration diagram of a virtual server corresponding to the physical-logical hardware allocation table 310f of FIG. 24. The virtual server 2_370b is composed of CPU cores # 0, 1 on the CPU socket 110a, DIMMs # 12, 13, 14, 15 on the CPU socket 110d, and the I / O adapter 180b.

이상이 제1 실시 형태의 제1 변형예이다.The above is the first modification of the first embodiment.

<변형예 2> <Modification 2>

계속해서 제1 실시 형태의 제2 변형예를 설명한다. 도 29∼도 31에, 본 변형예 2에서의 가상 서버(1_370a)의 논리 하드웨어 요구 I/F(350g)를 도 29에 도시하고, 물리-논리 하드웨어 할당표(310g)를 도 30에 도시하고, 및 가상 서버(1_370a)의 구성을 도 31에 도시한다. I/O 어댑터로서는 참조 부호 180a와 180c를 요구하고 있는 것은 전술한 제1 실시 형태와 동일하지만, CPU 코어는 1개, 메모리도 2GB만 요구하고 있다. 또한, 폴리시로서는 CPU-메모리-I/O 우선으로 함으로써, 되도록이면 각 컴포넌트간의 거리가 가까워지도록 하는 배치를 선택하게 된다. 이 경우에는 최초의 가상 서버이기 때문에, 우선 필요한 I/O 어댑터(180a, 180c)가 접속된 I/O 허브(160a)에 가까운 CPU 소켓(110a)을 선택하고, 참조 부호 110a 상의 CPU 코어와 DIMM을 할당함으로써 이 폴리시는 만족시킬 수 있다.Subsequently, a second modification of the first embodiment will be described. 29 to 31 show the logical hardware request I / F 350g of the virtual server 1_370a in the second modified example in FIG. 29, and the physical-logical hardware allocation table 310g in FIG. , And the configuration of the virtual server 1_370a are shown in FIG. The requirements of the reference numerals 180a and 180c as the I / O adapter are the same as those of the first embodiment described above, but only one CPU core and only 2 GB of memory are required. Further, as the policy, the CPU-memory-I / O priority is used to select an arrangement in which the distance between the components is as close as possible. In this case, since it is the first virtual server, the CPU socket 110a close to the I / O hub 160a to which the necessary I / O adapters 180a and 180c are connected is first selected, and the CPU core and DIMM on the reference numeral 110a are selected. By assigning to this policy can be satisfied.

도 32∼도 34는, 가상 서버2에 대한, 리소스 할당 폴리시(356)만이 상이한 3개의 논리 하드웨어 요구 I/F(350)를 도시하고 있다. 모두 공통해서, 요구 I/O 어댑터(353)는 참조 부호 180b, 요구 CPU 코어수(354)는 1, 요구 메모리량(355)은 2GB, 우선도는 5로 공통이다. 도 32의 논리 하드웨어 요구 I/F(350h)는 리소스 할당 폴리시(356)로서 「신뢰성 우선」을 지정하고 있다. 도 33의 논리 하드웨어 요 구 I/F(350i)는 리소스 할당 폴리시(356)로서 「대역 우선」을 지정하고 있다. 도 34의 논리 하드웨어 요구 I/F(350j)는 리소스 할당 폴리시(356)로서 「전력 절약 우선」을 지정하고 있다. 이하, 각 폴리시에 따라서, 어떠한 구성이 선택될 것인지를 보아 간다.32 to 34 show three logical hardware request I / F 350s that differ only in the resource allocation policy 356 for virtual server2. In common, the request I / O adapter 353 has the same reference numeral 180b, the number of required CPU cores 354 is 1, the request memory amount 355 is 2GB, and the priority is 5. The logical hardware request I / F 350h of FIG. 32 designates "reliability priority" as the resource allocation policy 356. FIG. The logical hardware request I / F 350i in FIG. 33 designates "band priority" as the resource allocation policy 356. FIG. The logical hardware request I / F 350j in FIG. 34 designates "power saving priority" as the resource allocation policy 356. FIG. In the following, it will be shown which configuration is selected according to each policy.

도 35∼도 36은, 2가지의 리소스 할당에 대응한 물리-논리 하드웨어 할당표(310)를 도시하고 있다. 도 35의 물리-논리 하드웨어 할당표(310h)에서는, CPU 코어와 메모리로서, 가상 서버1이 사용하고 있는 것과는 상이한 CPU 소켓(110b) 상의 CPU 코어#2와 DIMM#4, 5를 할당하여, 요구된 신뢰성 우선의 폴리시를 만족시키고 있다. 한편, 도 36의 물리-논리 하드웨어 할당표(310i)에서는, 가상 서버1이 사용하고 있는 것과 동일한 CPU 소켓(110a) 상의 CPU 코어#1과 DIMM#2, 3을 할당하여, 요구된 대역 우선의 폴리시를 만족시키고 있다.35 to 36 show a physical-logical hardware allocation table 310 corresponding to two resource allocations. In the physical-logical hardware assignment table 310h of FIG. 35, CPU cores # 2, DIMMs # 4, and 5 on CPU sockets 110b different from those used by virtual server 1 are allocated as CPU cores and memories. The first priority of reliability is satisfied. On the other hand, in the physical-logical hardware allocation table 310i of FIG. 36, CPU cores # 1, DIMMs # 2, and 3 on the same CPU socket 110a as those used by the virtual server 1 are allocated, and the requested bandwidth is given priority. We are satisfied with policy.

할당 폴리시가, 전술한 실시 형태까지와 같은 거리 우선이 아닌 경우에는, 리소스 할당의 기준으로서 상기 리소스간 거리 계산표(600)를 대신하는 별도의 지표가 필요로 된다.If the allocation policy is not the same distance priority as the above-described embodiment, a separate index is required to replace the inter-resource distance calculation table 600 as a reference for resource allocation.

도 37∼도 38은, 상기 리소스간 거리 계산표(600)를 대신하는 컴포넌트·네트워크 할당표(650)를 도시하고 있다. 컴포넌트·네트워크 할당표(650)는, 복수 가상 서버간에서 공용하고 있는 컴포넌트나 네트워크, 및 실효 네트워크 대역을 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)가 조사하기 위한 표이며, 가상 서버의 식별자 또는 일련 번호를 나타내는 가상 서버#(351), 가상 서버간에서 공용하고 있는 컴포넌트의 식별자를 나타내는 공용 컴포넌트#(651), 공용하고 있는 컴포넌트를 사용하기 위해서 이용하고 있는 네트워크의 식별자를 나타내는 공용 네트워크#(652)의 항목과, 또한 각 가상 서버 내에서 사용하고 있는 네트워크 모두에 대응하여, 네트워크#(653), 공용수(654), 실효 대역(655)이라고 하는 각 항목으로 구성된다.37 to 38 show a component network assignment table 650 which replaces the distance calculation table 600 between the resources. The component network allocation table 650 is a table for the logical hardware allocation processing unit 801 of the virtual machine monitor 300 to check a component, a network, and an effective network band shared among a plurality of virtual servers. A virtual server # 351 representing an identifier or serial number of a public server; a public component # 651 representing an identifier of a component shared between virtual servers; a public identifier representing a network used to use a shared component. Corresponding to both the items of the network # 652 and the networks used in each virtual server, each item is referred to as the network # 653, the common number 654, and the effective band 655.

도 37의 컴포넌트·네트워크 할당표(650h)는, 도 35의 물리-논리 하드웨어 할당표(310h)의 리소스 할당에 대응한 표이다. 공용 컴포넌트#(651)으로서는 I/O 허브(160a)가 해당되고, 공용 네트워크#(652)은 없는 것으로 된다. 각 네트워크#(653)에 대하여 공용하고 있지 않기 때문에 공용수(654)는 1로 된다. 실효 대역(655)은, 물리 네트워크 구성표(550)의 각 네트워크#(555)에 대응한 대역(560)의 값을, 공용수(654)(즉 가상 서버의 수)로 나눈 값으로 된다. 이 경우, 공용수는 1이므로, 네트워크의 대역(560)의 값이 그대로 실효 대역(655)으로 된다. The component network assignment table 650h of FIG. 37 is a table corresponding to the resource allocation of the physical-logical hardware assignment table 310h of FIG. 35. The public component # 651 corresponds to the I / O hub 160a, and no public network # 652 exists. Since the network # 653 is not shared with each network # 653, the common number 654 is one. The effective band 655 is a value obtained by dividing the value of the band 560 corresponding to each network # 555 in the physical network configuration table 550 by the common number 654 (that is, the number of virtual servers). In this case, since the common water is 1, the value of the band 560 of the network becomes the effective band 655 as it is.

도 38의 컴포넌트·네트워크 할당표(650i)는, 도 36의 물리-논리 하드웨어 할당표(310i)의 리소스 할당에 대응한 표이다. 공용 컴포넌트#(651)으로서는 I/O 허브(160a)와 CPU 소켓(110a)이 해당된다. 또한, 공용 네트워크#(652)으로서, I/O 허브(160a)와 CPU 소켓(110a)을 접속하는 네트워크#5가 상당한다. 이 경우 공용수(654)은 2이기 때문에, 실효 대역(655)은 원래의 네트워크의 대역(560)의 절반의 값으로 된다.The component network assignment table 650i of FIG. 38 is a table corresponding to the resource allocation of the physical-logical hardware assignment table 310i of FIG. 36. Common component # 651 corresponds to I / O hub 160a and CPU socket 110a. In addition, as public network # 652, network # 5 which connects I / O hub 160a and CPU socket 110a is corresponded. In this case, since the common number 654 is two, the effective band 655 is half the value of the band 560 of the original network.

리소스 할당 폴리시(356)가 「신뢰성 우선」이었던 경우, 공용 컴포넌트수·공용 네트워크수가 되도록 이면 적어지도록 하는 구성을 선택한다. 이 경우, 가상 서버1과 가상 서버2가 요구하는 I/O 어댑터가 동일한 I/O 허브(160a) 상에 있기 때 문에, 공용 컴포넌트수를 0으로 하는 것은 불가능하다. 그러나 물리-논리 하드웨어 할당표(310h와 310i)에 각각 대응한 컴포넌트·네트워크 할당표(650h, 650i)를 비교한 경우, 도 35에 도시한 물리-논리 하드웨어 할당표(310h)에 대응하는 쪽이 공용 컴포넌트수가 적은 것을 알 수 있었다. 따라서 요구된 폴리시가 「신뢰성 우선」인 도 32의 논리 하드웨어 요구 I/F(350h)의 요구에 대해서는, 도 35에 나타낸 물리-논리 하드웨어 할당표(310h)의 할당이 선택된다. If the resource allocation policy 356 is &quot; reliability priority &quot;, a configuration is selected such that the number of shared components and the number of public networks become as small as possible. In this case, since the I / O adapters required by the virtual server 1 and the virtual server 2 are on the same I / O hub 160a, it is impossible to set the number of shared components to zero. However, when the component network assignment tables 650h and 650i corresponding to the physical-logical hardware assignment tables 310h and 310i are compared, the one corresponding to the physical-logical hardware assignment table 310h shown in FIG. You can see that the number of public components is small. Therefore, for the request of the logical hardware request I / F 350h of Fig. 32 in which the requested policy is &quot; reliability priority, &quot; the allocation of the physical-logical hardware assignment table 310h shown in Fig. 35 is selected.

리소스 할당 폴리시(356)가 「대역 우선」이었던 경우, 네트워크의 실효 대역이 되도록 이면 커지도록 하는 구성을 선택한다. 이 경우, 도 37의 컴포넌트·네트워크 할당표(650h와 650i)를 비교하면, 컴포넌트·네트워크 할당표(650h)의 구성 쪽이 실효 대역이 크다. 따라서 폴리시가 「대역 우선」인 논리 하드웨어 요구 I/F(350i)의 요구에 대해서는, 실효 대역이 최대로 되는 도 37의 물리-논리 하드웨어 할당표(310h)의 할당이 선택된다.When the resource allocation policy 356 is "band priority", a configuration is selected such that the resource allocation policy 356 becomes large so as to become the effective band of the network. In this case, when the component network allocation table 650h and 650i of FIG. 37 are compared, the effective band is larger in the structure of the component network allocation table 650h. Therefore, for the request of the logical hardware request I / F 350i whose policy is "band priority", allocation of the physical-logical hardware assignment table 310h of FIG. 37 in which the effective band is maximized is selected.

도 39는, 요구된 폴리시가 전력 절약 우선의 경우에 이용되는 도 35의 물리-논리 하드웨어 할당표(310h)에 대응한 할당 리소스 소비 전력 계산표(700h)를 도시하고 있다. 본 표는 가상 서버 단위가 아니라, 시스템 전체에서 사용되고 있는 리소스와 컴포넌트에 대하여 가상 머신 모니터(300)에 의해 구성되고, 대상의 하드웨어가 리소스인지 컴포넌트인지를 나타내는 카테고리(701), 리소스 종별/컴포넌트 종별을 나타내는 참조 부호 702, 사용 리소스 또는 컴포넌트의 식별자를 나타내는 사용 리소스/컴포넌트#(703), 각 리소스마다의 소비 전력을 나타내는 소비 전력(704), 그리고 소비 전력의 총합(705)으로 구성된다. 리소스로서는 CPU 코어, 메모리, I/O 슬롯, I/O 어댑터의 각 항목이 있고, 사용되고 있는 리소스가 열거되어 간다. 또한, 소비 전력(704)은, 물리 컴포넌트 구성표(400)의 리소스 소비 전력(430), 및 I/O 어댑터 구성표(450)의 소비 전력(475)의 항목을 참조하여, 각각의 값을 설정한다. 카테고리(701)가 컴포넌트의 엔트리에서는, 각 리소스를 사용할 때에 필요로 되는 컴포넌트가 열거되고, 컴포넌트의 소비 전력(704)은, 물리 컴포넌트 구성표(400)의 컴포넌트 소비 전력(435)에 따라서 설정된다. 소비 전력의 총합(705)은, 소비 전력(704)의 총합으로서 가상 머신 모니터(300)에 의해 계산된다.FIG. 39 shows an allocation resource power consumption calculation table 700h corresponding to the physical-logical hardware allocation table 310h of FIG. 35 in which the requested policy is used in the case of power saving priority. This table is configured by the virtual machine monitor 300 for resources and components that are used throughout the system, not in virtual server units. The category 701 indicating whether the target hardware is a resource or a component, and the resource type / component type The reference numeral 702 indicates a used resource / component # 703 indicating an identifier of a used resource or component, a power consumption 704 indicating power consumption for each resource, and a total 705 of power consumption. Examples of resources include CPU cores, memory, I / O slots, and I / O adapters. The resources used are enumerated. In addition, the power consumption 704 sets the respective values with reference to the resource power consumption 430 of the physical component scheme 400 and the power consumption 475 of the I / O adapter scheme 450. . When the category 701 is an entry of a component, the components required when using each resource are enumerated, and the power consumption 704 of the component is set according to the component power consumption 435 of the physical component configuration table 400. The total power consumption 705 is calculated by the virtual machine monitor 300 as the total power consumption 704.

도 40은, 도 36의 물리-논리 하드웨어 할당표(310i)에 대응한 할당 리소스 소비 전력 계산표(700i)를 도시하고 있다. 사용하고 있는 리소스의 수 자체는 물리-논리 하드웨어 할당표(310h와 310i)에서 변하지 않기 때문에, 리소스의 항목은 사용하고 있는 리소스의 번호 #이야말로 다르지만 대부분 동일하다. 차이가 나는 것은 컴포넌트의 항목에서, 물리-논리 하드웨어 할당표(310h)에서는 사용하는 컴포넌트는 합계 3개이었지만, 물리-논리 하드웨어 할당표(310i)에서는 사용하는 컴포넌트는 합계 2개로 되어 있다. 이 때문에, 소비 전력의 총합(705)을 비교하면, 도 39의 할당 리소스 소비 전력 계산표(700h)에서는 345[W]라고 하는 값인 것에 대해서 참조 부호 700i에서는 265[W]라고 하는 값으로 되어 있다.40 shows an allocation resource power consumption calculation table 700i corresponding to the physical-logical hardware allocation table 310i of FIG. Since the number of resources in use does not change in the physical-logical hardware allocation tables 310h and 310i, the item of resources is mostly the same, although the number # of the resources used is different. The difference is that the components used are three components in total in the physical-logical hardware assignment table 310h, but the components used in the physical-logical hardware assignment table 310i are two in total. For this reason, when the sum total 705 of power consumptions is compared, it is set to 265 [W] in the reference | standard 700i about the value of 345 [W] in the allocation resource power consumption calculation table 700h of FIG.

논리 하드웨어 요구 I/F(350)의 리소스 할당 폴리시(356)가 「전력 절약 우선」이었던 경우, 가상 머신 모니터(300)는 소비 전력의 총합(705)이 되도록 이면 작아지도록 하는 할당 방법을 선택한다. 따라서, 폴리시가 「전력 절약화 우선」인 도 34의 논리 하드웨어 요구 I/F(350j)의 요구에 대해서는, 가상 머신 모니 터(300)의 논리 하드웨어 할당 처리부(801)는 도 36의 물리-논리 하드웨어 할당표(310i)의 할당을 선택한다. When the resource allocation policy 356 of the logical hardware request I / F 350 is "power saving priority", the virtual machine monitor 300 selects an allocation method such that the total power consumption 705 becomes smaller as follows. . Therefore, for the request of the logical hardware request I / F 350j of FIG. 34 whose policy is "power saving priority", the logical hardware allocation processing unit 801 of the virtual machine monitor 300 performs the physical-logic of FIG. The allocation of the hardware allocation table 310i is selected.

도 41은, 도 36의 물리-논리 하드웨어 할당표(310h)에 대응하는 가상 서버의 구성도이다. FIG. 41 is a configuration diagram of a virtual server corresponding to the physical-logical hardware assignment table 310h of FIG. 36.

도 42는, 도 37의 물리-논리 하드웨어 구성표(310i)에 대응하는 가상 서버의 구성도이다. FIG. 42 is a configuration diagram of a virtual server corresponding to the physical-logical hardware configuration table 310i of FIG. 37.

이상이 제1 실시 형태의 제2 변형예이다. The above is the second modification of the first embodiment.

또한, 상기에서 소비 전력을 우선하는 폴리시의 경우, 소비 전력 대신에 각 리소스 및 컴포넌트의 발열량을 이용해도 된다. In addition, in the case of the policy that prioritizes power consumption in the above, the heat generation amount of each resource and component may be used instead of power consumption.

<제1 실시 형태 1에서의 리소스 할당의 구체적 수순> <Specific Procedure of Resource Allocation in First Embodiment>

여기서, 제1 실시 형태에서의, 논리 하드웨어 구성 요구 I/F(350)로부터 물리-논리 하드웨어 구성표(310)를 생성하는 수순에 대해서, 도 55∼62를 이용하여 상세하게 설명한다. Here, the procedure for generating the physical-logical hardware configuration table 310 from the logical hardware configuration request I / F 350 in the first embodiment will be described in detail with reference to FIGS. 55 to 62.

도 55는 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)에서 행해지는 논리 하드웨어 할당 처리 전체의 플로우차트를 도시하고 있다. 우선, 게스트 OS(360)에 요구된 I/O 어댑터를 할당하고, 또한 미할당의 CPU·메모리 중에서 선택하여 할당하고, 요구된 폴리시에 따라서 평가를 행하고, 요구된 폴리시에 가장 가까운 CPU·메모리의 조합을 선택한다라고 하는 수순으로 된다.FIG. 55 shows a flowchart of the entire logical hardware allocation process performed by the logical hardware allocation processing unit 801 of the virtual machine monitor 300. First, the I / O adapter requested to the guest OS 360 is allocated, further selected and allocated among unallocated CPU memories, the evaluation is performed according to the requested policy, and the CPU / memory closest to the requested policy is assigned. The procedure of selecting a combination is performed.

우선 스텝800으로 진행한다. 가상 머신 모니터(300)의 논리 하드웨어 할당 처리부(801)는, 물리-논리 하드웨어 할당표(310)에, 가상 서버(351)의 엔트리를 확 보한다. 스텝805로 진행한다. First, the process proceeds to step 800. The logical hardware allocation processing unit 801 of the virtual machine monitor 300 secures an entry of the virtual server 351 to the physical-logical hardware allocation table 310. Proceed to step 805.

스텝805는, 논리 하드웨어 요구 I/F(350a)에서 요구된 I/O 어댑터(353)의 할당 요구가 전유인지 공유인지를 판정한다. 판정의 결과 전유이면 스텝810으로, 공유이면 스텝830으로 진행한다. Step 805 determines whether the allocation request of the I / O adapter 353 requested by the logical hardware request I / F 350a is exclusive or shared. If the result of the determination is exclusive, the process proceeds to step 810 and, if shared, to step 830.

스텝810은, 요구된 I/O 어댑터(353)가 할당 가능한지를 판정한다. 이미 다른 가상 서버에 할당되어 있어 할당 불가인 경우에는 스텝820으로, 할당 가능하면 스텝830으로 진행한다. Step 810 determines whether the requested I / O adapter 353 is assignable. If it is already assigned to another virtual server and cannot be allocated, the process proceeds to step 820 and, if assignable, to step 830.

스텝820은, 논리 하드웨어 요구 I/F(350)에 대하여 에러를 응답하는 스텝이다. 에러 응답 후, 스텝890으로 진행한다. Step 820 is a step for responding to the error to the logic hardware request I / F 350. After the error response, the flow proceeds to step 890.

스텝830은, I/O 어댑터 할당 처리로 된다. I/O 어댑터 할당 처리(830)의 서브 루틴의 플로우는 도 56에 도시한다. 이 서브 루틴의 완료 후, 스텝840으로 진행한다. Step 830 is an I / O adapter assignment process. The flow of the subroutine of I / O adapter assignment processing 830 is shown in FIG. After the completion of this subroutine, the flow proceeds to step 840.

스텝840은, 할당 후보 CPU(841)와 할당 후보 메모리(842)를 공집합(φ)으로 설정하는 스텝이다. 여기서 할당 후보 CPU(841)와 할당 후보 메모리(842)는, 그때까지의 조합 중에서 가장 할당 폴리시에 가까운 CPU와 메모리의 조합의 후보를 나타낸다. 이 시점에서는 아직 CPU·메모리는 선택되어 있지 않기 때문에, 공집합(φ)으로 한다. 스텝850으로 진행한다.Step 840 is a step of setting the allocation candidate CPU 841 and the allocation candidate memory 842 to the empty set φ. Here, the allocation candidate CPU 841 and the allocation candidate memory 842 represent candidates for the combination of the CPU and the memory closest to the allocation policy among the combinations up to that point. At this point, since the CPU and memory have not yet been selected, the empty set φ is assumed. Proceed to step 850.

스텝850은, 미할당의 CPU·메모리 중으로부터 요구를 만족시키는 CPU·메모리를 선택하는 처리이다. CPU/메모리 선택 처리(850)의 서브 루틴의 플로우는 도 57에 도시한다. 이 서브 루틴의 완료 시, 에러 응답이 있었던 경우에는 스텝820으 로 진행한다. 그렇지 않은 경우에는 스텝860으로 진행한다.Step 850 is a process of selecting a CPU memory that satisfies the request from the unassigned CPU memory. The flow of the subroutine of the CPU / memory selection process 850 is shown in FIG. At the completion of this subroutine, if there is an error response, the flow proceeds to step 820. Otherwise, the flow proceeds to step 860.

스텝860은, 스텝850에서 선택한 CPU·메모리에 대하여, 할당 폴리시에 따른 평가를 행하는 스텝이다. 폴리시 평가(860)의 서브 루틴의 플로우는 도 58에 도시한다. 이 서브 루틴의 완료 후, 스텝870으로 진행한다.Step 860 is a step for evaluating the CPU memory selected in step 850 according to the allocation policy. The flow of the subroutine of policy evaluation 860 is shown in FIG. 58. After completion of this subroutine, the flow advances to step 870.

스텝870은, 미할당의 CPU/메모리의 조합이 아직 있는지 판정하는 스텝이다. 아직 남아 있는 경우에는 스텝850으로 되돌아간다. 그렇지 않은 경우에는 스텝880으로 진행한다.Step 870 is for determining if there is still an unallocated CPU / memory combination. If it still remains, the process returns to step 850. Otherwise, the process proceeds to step 880.

스텝880은 할당 후보 CPU(841)와 할당 후보 메모리(842)를 물리-논리 하드웨어 할당표(310)의 가상 서버(351)에 할당하는 처리이다. CPU/메모리 할당 처리(880)의 서브 루틴의 플로우는 도 63에 도시한다. 이 서브 루틴이 완료되면 논리 하드웨어 할당 처리는 완료로 된다.Step 880 is a process of allocating the allocation candidate CPU 841 and the allocation candidate memory 842 to the virtual server 351 of the physical-logical hardware assignment table 310. The flow of the subroutine of the CPU / memory allocation process 880 is shown in FIG. When this subroutine is completed, the logical hardware allocation process is complete.

스텝890은, 스텝850에서 할당의 도중에서 에러로 된 경우(또는 스텝810에서 할당하는 리소스가 모자랐던 경우)에, 물리-논리 하드웨어 할당표(310)의 가상 서버(351)의 엔트리를 말소하는 스텝이다. 이 엔트리의 말소 후, 논리 하드웨어 할당 처리는 완료로 된다. Step 890 terminates the entry of the virtual server 351 of the physical-logical hardware allocation table 310 when an error occurs in the middle of the allocation in step 850 (or when the resources allocated in step 810 are insufficient). to be. After the end of this entry, the logical hardware allocation process is complete.

도 56에 I/O 어댑터 할당 처리(830)의 서브 루틴의 플로우를 도시한다. 우선 스텝900으로 진행한다.56 shows the flow of the subroutine of the I / O adapter allocation process 830. FIG. First, the process proceeds to step 900.

스텝900은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)에 대응하는 I/O 어댑터#(455)을 I/O 어댑터 구성표(450)로부터 선택하고, 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 I/O 어댑터(312)에 추가하는 스텝 이다. 스텝901로 진행한다. Step 900 selects an I / O adapter # 455 corresponding to the I / O adapter 353 of the logical hardware request I / F 350a from the I / O adapter scheme 450, and selects the physical-logical hardware scheme. A step of adding the entry of the virtual server 351 of the 310 to the use I / O adapter 312. Proceed to step 901.

스텝901은, I/O 어댑터(353)에 대응하는 I/O 슬롯#(465)을 I/O 어댑터 구성표(450)로부터 선택하고, 물리 컴포넌트 구성표(400)의 리소스 종별(410)이 I/O 슬롯의 엔트리로부터 I/O 슬롯#(465)에 대응하는 엔트리를 찾고, 대응하는 컴포넌트(420)를 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 컴포넌트(315)에 추가하는 스텝이다. 스텝902로 진행한다.In step 901, the I / O slot # 465 corresponding to the I / O adapter 353 is selected from the I / O adapter scheme 450, and the resource type 410 of the physical component scheme 400 is set to I / O adapter # 53. Find the entry corresponding to I / O slot # 465 from the entry in the O slot, and place the corresponding component 420 into the usage component 315 of the entry of the virtual server 351 of the physical-logical hardware scheme 310. It is step to add. Proceed to step 902.

스텝902는, 모든 I/O 어댑터(353)를 할당했는지를 판정하는 스텝이다. 아직 할당하지 않은 어댑터가 남아 있는 경우에는 스텝900으로 되돌아간다. 그렇지 않은 경우에는 I/O 어댑터 할당 처리(830)는 완료로 된다.Step 902 is a step of determining whether all the I / O adapters 353 have been allocated. If no adapters have yet been allocated, the process returns to step 900. Otherwise, I / O adapter assignment processing 830 is complete.

도 57에 CPU/메모리 선택 처리(850)의 서브 루틴의 플로우를 도시한다. 우선 스텝905로 진행한다.Fig. 57 shows the flow of the subroutine of the CPU / memory selection process 850. Figs. First, the process proceeds to step 905.

스텝905는, 논리 하드웨어 요구 I/F(350a)에서 요구된 CPU 코어수(354)와 메모리량(355)이 할당 가능한지의 여부를 판정하는 스텝이다. 할당 불가능한 경우, 스텝907로 진행한다. 할당 가능하면 스텝906으로 진행한다. Step 905 is a step of determining whether the number of CPU cores 354 and the memory amount 355 requested in the logical hardware request I / F 350a can be allocated. If unable to assign, the flow proceeds to step 907. If so, the flow proceeds to step 906.

스텝906은, 미할당의 조합 중으로부터, 논리 하드웨어 요구 I/F(350a)에서 요구된 CPU 코어수(354)와 메모리량(355)을 만족시키는 CPU 코어와 메모리를 선택하고, 가할당 CPU(851)와 가할당 메모리(852)에 설정하는 스텝이다. 이에 의해 CPU/메모리 선택 처리(850)는 완료로 된다. In step 906, among the unallocated combinations, a CPU core and a memory satisfying the number of CPU cores 354 and the memory amount 355 requested in the logical hardware request I / F 350a are selected, and the assigned CPU ( 851) and the provisional allocation memory 852. As a result, the CPU / memory selection process 850 is completed.

스텝907은, 에러 응답하는 스텝이다. 이에 의해 CPU/메모리 선택 처리(850)는 완료로 된다. Step 907 is an error response step. As a result, the CPU / memory selection process 850 is completed.

도 58에, 폴리시 평가(860)의 서브 루틴의 플로우를 도시한다. 우선 스텝910으로 진행한다.58 shows the flow of the subroutine of policy evaluation 860. First, the process proceeds to step 910.

스텝910은, 논리 하드웨어 요구 I/F(350a)의 할당 폴리시(356)에 따라서 조건 분기를 행하는 스텝이다. 할당 폴리시(356)가 CPU-메모리 우선, CPU-I/O 우선, I/O-메모리 우선, CPU-I/O-메모리 우선 중 어느 하나인 경우, 스텝920으로 진행한다. 폴리시(356)가 신뢰성 우선인 경우, 스텝930으로 진행한다. 폴리시(356)가 대역 우선인 경우, 스텝940으로 진행한다. 폴리시(356)가 전력 절약 우선인 경우, 스텝950으로 진행한다.Step 910 is a step of performing conditional branching in accordance with the allocation policy 356 of the logic hardware request I / F 350a. If the allocation policy 356 is one of CPU-memory priority, CPU-I / O priority, I / O-memory priority, and CPU-I / O-memory priority, the flow proceeds to step 920. If the policy 356 is a reliability priority, step 930 is reached. If policy 356 is band-first, flow proceeds to step 940. If the policy 356 is power saving priority, the flow proceeds to step 950.

스텝920은 컴포넌트간 거리 산출 처리이다. 도 59에 서브 루틴의 플로우를 도시한다. 이 서브 루틴의 완료 후 스텝911로 진행한다. Step 920 is the process of calculating the distance between components. Fig. 59 shows the flow of the subroutine. After completion of this subroutine, the process proceeds to step 911.

스텝930은 컴포넌트 공유수 산출 처리이다. 도 60에 서브 루틴의 플로우를 도시한다. 완료 후 스텝911로 진행한다. Step 930 is component sharing number calculation processing. Fig. 60 shows the flow of the subroutine. After completion, proceed to step 911.

스텝940은 실효 대역 산출 처리이다. 도 61에 서브 루틴의 플로우를 도시한다. 완료 후 스텝911로 진행한다. Step 940 is an effective band calculation process. Fig. 61 shows the flow of the subroutine. After completion, proceed to step 911.

스텝950은 소비 전력 산출 처리이다. 도 62에 서브 루틴의 플로우를 도시한다. 완료 후 스텝911로 진행한다. Step 950 is power consumption calculation processing. Fig. 62 shows the flow of the subroutine. After completion, proceed to step 911.

스텝911은, 할당 후보 CPU(841)와 할당 후보 메모리(842)가 공집합(φ)인지의 여부를 판정하는 스텝이다. 공집합(φ)인 경우, 스텝913으로 진행한다. 그렇지 않은 경우, 스텝912로 진행한다. Step 911 is a step of determining whether the allocation candidate CPU 841 and the allocation candidate memory 842 are empty sets?. In the case of the empty set?, The flow advances to step 913. Otherwise, the flow advances to step 912.

스텝912는, 할당 후보 폴리시값(843)과 비교하여, 가할당 폴리시값(853) 쪽 이 작은지의 여부를 판정하는 스텝이다. 여기서 폴리시값이란, 각 할당 폴리시(356)에 따라서, 할당한 리소스·컴포넌트의 구성을 정량적으로 평가하기 위한 지수이며, 작은 값일수록 보다 요구된 폴리시에 가깝다고 정의한다. 가할당 폴리시값(853) 쪽이 할당 후보 폴리시값(843)보다도 작은 경우에는 스텝913으로 진행한다. 그렇지 않은 경우, 폴리시 평가(860)는 완료된다.Step 912 is a step of determining whether the provisional allocation policy value 853 is smaller than that of the assignment candidate policy value 843. Here, the policy value is an index for quantitatively evaluating the configuration of the allocated resource component according to each allocation policy 356, and a smaller value is defined to be closer to the requested policy. If the provisional allocation policy value 853 is smaller than the assignment candidate policy value 843, the flow proceeds to step 913. Otherwise, policy evaluation 860 is complete.

스텝913은, 가할당 CPU(851), 가할당 메모리(852), 가할당 폴리시값(853)을, 각각 할당 후보 CPU(841), 할당 후보 메모리(842), 할당 후보 폴리시값(843)에 대입하는 스텝이다. 이 처리에 의해, 할당 후보 CPU(841), 할당 후보 메모리(842), 할당 후보 폴리시값(843)에는, 지금까지 할당된 것 중에서 가장 폴리시값이 작은 조합의 CPU·메모리의 조합이 유지된다. 이 처리에 의해, 폴리시 평가(860)는 완료한다.In step 913, the provisional allocation CPU 851, the provisional allocation memory 852, and the provisional allocation policy value 853 are assigned to the allocation candidate CPU 841, the allocation candidate memory 842, and the allocation candidate policy value 843, respectively. Assignment step. By this process, the combination of CPU / memory of the combination with the smallest policy value among allotted so far is maintained in the allocation candidate CPU 841, the allocation candidate memory 842, and the allocation candidate policy value 843. By this process, policy evaluation 860 is completed.

또한, 도 58의 스텝913에서, 할당 후보 폴리시값(843)은 가할당 폴리시값(853)의 값을 이어받는 형태로 설정되어 있어, 첫회의 스텝912에서는 할당 후보 폴리시값(843)의 초기값은 부정으로 되지만, 첫회는 도 55의 스텝840에서, 할당 후보 CPU(841)와 할당 후보 메모리(842)가 φ로 설정되므로, 스텝911의 판정에서 반드시 스텝913으로 향하게 되어, 스텝912는 통과하지 않는다. 또한, 할당 후보 폴리시값(843)을 소정의 최대값으로 초기화해 두어도 된다.In addition, in step 913 of FIG. 58, the assignment candidate policy value 843 is set in the form of inheriting the value of the provisional assignment policy value 853. In the first step 912, the initial value of the assignment candidate policy value 843 is set. Becomes negative, but the first time in step 840 of FIG. 55, since the allocation candidate CPU 841 and the allocation candidate memory 842 are set to?, The determination in step 911 always goes to step 913, and step 912 does not pass. Do not. The assignment candidate policy value 843 may be initialized to a predetermined maximum value.

도 59에 컴포넌트간 거리 산출(920)의 서브 루틴의 플로우를 도시한다. 우선 스텝921로 진행한다.59 shows a flow of the subroutine of the inter-component distance calculation 920. First, the process proceeds to step 921.

스텝921은, 논리 하드웨어 요구 I/F(350a)의 가상 서버(351)의 I/O 어댑 터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용하여, 리소스간 거리 계산표(600)를 작성하는 스텝이다. 구체적으로는,In step 921, the I / O adapter 353 of the virtual server 351 of the logical hardware request I / F 350a, the provisional allocation CPU 851, and the provisional allocation memory 852 are used. It is a step of creating the distance calculation table 600. Specifically,

(1) 각 리소스가 소속하는 컴포넌트를 물리 컴포넌트 구성표(400)로부터 구한다(1) The component to which each resource belongs is obtained from the physical component scheme 400

(2) 각 컴포넌트간의 거리를 컴포넌트간 거리 대응표(500)에 따라서, 리소스간 거리 계산표(600)의 컴포넌트간 거리(604)로 설정한다(2) The distance between each component is set to the distance between components 604 of the distance calculation table 600 according to the distance correspondence table 500 between components.

(3) 카테고리(601)별로 컴포넌트간 거리(604)의 합계를 구하고 Σ(605)에 대입한다(3) The sum of distances 604 between components for each category 601 is calculated and substituted into Σ 605.

라고 하는 처리로 구성된다. 다음으로, 스텝922로 진행한다.It consists of a process called. Next, the flow advances to step 922.

스텝922는, 논리 하드웨어 요구 I/F(350a)의 할당 폴리시(356)에 따라서 조건 분기를 행하는 스텝이다. 폴리시(356)가 CPU-메모리 우선인 경우, 스텝923으로 진행한다. 폴리시(356)가 CPU-I/O 우선인 경우, 스텝924로 진행한다. 폴리시(356)가 I/O-메모리 우선인 경우, 스텝925로 진행한다. 폴리시(356)가 CPU-I/O-메모리 우선인 경우, 스텝926으로 진행한다. Step 922 is a step of performing conditional branching in accordance with the allocation policy 356 of the logical hardware request I / F 350a. If the policy 356 is CPU-memory priority, the flow proceeds to step 923. If the policy 356 is of CPU-I / O priority, proceed to step 924. If policy 356 is an I / O-memory priority, step 925 is reached. If the policy 356 is of CPU-I / O-memory priority, then step 926 is reached.

스텝923은, 리소스간 거리 계산표(600)의 카테고리(601)의 CPU-메모리에 대응하는 Σ(605)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 923 is a step of setting the Σ 605 corresponding to the CPU-memory of the category 601 of the inter-resource distance calculation table 600 as the provisional allocation policy value 853. As a result, the distance calculation 920 between components is completed.

스텝924는, 리소스간 거리 계산표(600)의 카테고리(601)의 CPU-I/O에 대응하는 Σ(605)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 924 is a step of setting Σ 605 corresponding to the CPU-I / O of the category 601 of the inter-resource distance calculation table 600 as the provisional allocation policy value 853. As a result, the distance calculation 920 between components is completed.

스텝925는, 리소스간 거리 계산표(600)의 카테고리(601)의 I/O-메모리에 대응하는 Σ(605)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 925 is a step of setting Σ 605 corresponding to the I / O-memory of the category 601 of the inter-resource distance calculation table 600 as the provisional allocation policy value 853. As a result, the distance calculation 920 between components is completed.

스텝926은, 리소스간 거리 계산표(600)의 모든 카테고리(601)의 Σ(605)의 합계를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 926 is a step in which the sum of Σ 605 of all categories 601 of the inter-resource distance calculation table 600 is added to the allocation policy value 853. As a result, the distance calculation 920 between components is completed.

도 60에, 컴포넌트 공용수 산출(930)의 서브 루틴의 플로우를 도시한다. 우선 스텝931로 진행한다. 60 shows the flow of the subroutine of the component common water calculation 930. First, the process proceeds to step 931.

스텝931은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용한 가상 서버(351)를 포함하는, 모든 할당 완료된 가상 서버에 대하여, 컴포넌트·네트워크 할당표(650)를 작성하는 스텝이다. 구체적으로는,Step 931 includes all allocations, including the I / O adapter 353 of the logical hardware request I / F 350a, the provisional allocation CPU 851 and the virtual server 351 using the provisional allocation memory 852. It is a step which creates the component network assignment table 650 about the completed virtual server. Specifically,

(1) 각 리소스가 소속하는 컴포넌트를 물리 컴포넌트 구성표(400)로부터 구한다(1) The component to which each resource belongs is obtained from the physical component scheme 400

(2) 서로 다른 가상 서버간에서 공용되는 컴포넌트를 공용 컴포넌트#(651)에 설정한다(2) Set a common component between different virtual servers in the common component # 651.

(3) 공용 컴포넌트#의 수를 공용수(654)에 설정한다(3) Set the number of shared components # to the common number 654.

라고 하는 처리로 구성된다. 스텝932로 진행한다. It consists of a process called. Proceed to step 932.

스텝932는, 컴포넌트·네트워크 할당표(650)의 가상 서버(351)에 대응하는 공용수(654)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트 공 용수 산출(930)은 완료된다.Step 932 is a step in which the common number 654 corresponding to the virtual server 351 of the component network assignment table 650 is added to the allocation policy value 853. This completes the component common water calculation 930.

도 61에, 실효 대역 산출(940)의 서브 루틴의 플로우를 도시한다. 우선 스텝941로 진행한다.61 shows the flow of the subroutine of the effective band calculation 940. First, the process proceeds to step 941.

스텝941은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용한 가상 서버(351)를 포함하는, 모든 할당 완료된 가상 서버에 대하여, 컴포넌트·네트워크 할당표(650)를 작성하는 스텝이다. 구체적으로는,Step 941 allocates all of the allocations, including the I / O adapter 353 of the logical hardware request I / F 350a, the provisional allocation CPU 851 and the virtual server 351 using the provisional allocation memory 852. It is a step which creates the component network assignment table 650 about the completed virtual server. Specifically,

(1) 각 리소스가 소속하는 컴포넌트를 물리 컴포넌트 구성표(400)로부터 구한다(1) The component to which each resource belongs is obtained from the physical component scheme 400

(2) 컴포넌트간에서 사용하는 네트워크를 물리 네트워크 구성표(550)로부터 구하여, 네트워크#(653)에 설정한다(2) A network used between components is obtained from the physical network configuration table 550 and set in the network # 653.

(3) 서로 다른 가상 서버간에서 공용되는 네트워크#(653)을 공용 네트워크#(652)에 설정한다 (3) Set the network # 653 to be shared between different virtual servers in the public network # 652.

(4) 각 네트워크의 대역을 물리 네트워크 구성표(550)의 대역(560)으로부터 구하고, 이것을 공유수(654)로 나눈 값을 실효 대역(655)에 설정한다(4) The band of each network is obtained from the band 560 of the physical network configuration table 550, and the value obtained by dividing this by the number of shares 654 is set in the effective band 655.

라고 하는 처리를 포함한다. 스텝942로 진행한다. Processing is included. Proceed to step 942.

스텝942는, 컴포넌트·네트워크 할당표(650)의 가상 서버(351)에 대응하는 실효 대역(655)의 마이너스를 가할당 폴리시값(853)으로 하는 스텝이다. 여기서 폴리시값(853)은 작을수록 보다 요구한 폴리시에 가깝다고 정의되어 있다. 한편, 실효 대역의 절대값은 클수록 좋다. 따라서 실효 대역의 값을 마이너스로 한 값을 가할당 폴리시값(853)으로 함으로써, 가장 실효 대역이 큰 구성이 최종적으로는 선택되도록 하고 있다. 이에 의해, 실행 대역 산출(940)은 완료이다. Step 942 is a step of setting the negative allocation policy value 853 to the negative of the effective band 655 corresponding to the virtual server 351 of the component network allocation table 650. The smaller the policy value 853 is defined here, the closer to the required policy. On the other hand, the larger the absolute value of the effective band is, the better. Therefore, by assigning a negative value to an effective allocation policy value 853, the configuration having the largest effective band is finally selected. As a result, the execution band calculation 940 is completed.

도 62에, 소비 전력 산출(950)의 서브 루틴의 플로우를 도시한다. 우선 스텝951로 진행한다. 62 shows a flow of the subroutine of power consumption calculation 950. First, the process proceeds to step 951.

스텝951은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용한 가상 서버(351)를 포함하는, 모든 할당 완료된 가상 서버에 대하여, 할당 리소스 소비 전력 계산표(700)를 계산하는 스텝이다. 구체적으로는,Step 951 includes all allocations, including the I / O adapter 353 of the logical hardware request I / F 350a, the provisional allocation CPU 851 and the virtual server 351 using the provisional allocation memory 852. It is a step of calculating the allocation resource consumption power calculation table 700 about the completed virtual server. Specifically,

(1) 각 리소스가 소속하는 컴포넌트를 물리 컴포넌트 구성표(400)로부터 구한다(1) The component to which each resource belongs is obtained from the physical component scheme 400

(2) 물리 컴포넌트 구성표(400)로부터, 할당된 모든 리소스의 리소스 소비 전력(430) 및 컴포넌트에 대해서 소비 전력을 구하여, 계산표(700)의 소비 전력(704)에 설정(2) From the physical component scheme 400, the power consumption is calculated for the resource consumption power 430 and the components of all allocated resources, and set in the power consumption 704 of the calculation table 700.

(3) 모든 소비 전력(704)의 합계를 계산하여 Σ(705)에 설정(3) Calculate the sum of all power consumptions 704 and set it to Σ 705

이라고 하는 처리를 포함한다. 스텝952로 진행한다.It includes processing called. Proceed to step 952.

스텝952는, 할당 리소스 소비 전력 계산표(700)의 소비 전력 합계(705)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해, 소비 전력 산출(950)은 완료된다.Step 952 is a step of setting the total power consumption 705 of the allocated resource power consumption calculation table 700 as the provisional allocation policy value 853. As a result, power consumption calculation 950 is completed.

도 63에, CPU/메모리 할당 처리(880)의 서브 루틴의 플로우를 도시한다. 우선 스텝960으로 진행한다.63 shows the flow of the subroutine of the CPU / memory allocation processing 880. First, the process proceeds to step 960.

스텝960은, 할당 후보 CPU(841)를 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 CPU 코어(313)에, 할당 후보 메모리(842)를 사용 메모리(314)에 추가하는 스텝이다. 스텝961로 진행한다.Step 960 adds the allocation candidate CPU 841 to the use CPU core 313 of the entry of the virtual server 351 of the physical-logical hardware scheme 310 and the allocation candidate memory 842 to the use memory 314. It is a step to do it. Proceed to step 961.

스텝961은, 물리 컴포넌트 구성표(400)의 리소스 종별(410)이 CPU 코어인 엔트리로부터 CPU 코어(313)에 대응하는 엔트리를 찾고, 대응하는 컴포넌트(420)를 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 컴포넌트(315)에 추가하고, 동일하게 리소스 종별(410)이 메모리인 엔트리로부터 메모리(314)에 대응하는 엔트리의 사용 컴포넌트(315)에 추가하는 스텝이다. 스텝962로 진행한다.Step 961 finds an entry corresponding to the CPU core 313 from an entry in which the resource type 410 of the physical component scheme 400 is the CPU core, and replaces the corresponding component 420 in the physical-logical hardware scheme 310. The step of adding to the usage component 315 of the entry of the virtual server 351, and similarly to the usage component 315 of the entry corresponding to the memory 314 from the entry whose resource type 410 is a memory. Proceed to step 962.

스텝962는, 모든 할당 후보 CPU(841) 및 할당 후보 메모리(842)를 할당했는지의 여부를 판정하는 스텝이다. 아직 미할당의 할당 후보 CPU(841) 또는 할당 후보 메모리(842)가 남아 있는 경우에는 스텝960으로 되돌아간다. 그렇지 않으면 CPU/메모리 할당 처리(880)는 완료된다.Step 962 is a step of determining whether all allocation candidate CPU 841 and allocation candidate memory 842 have been allocated. If unallocated allocation candidate CPU 841 or allocation candidate memory 842 still remains, step 960 is reached. Otherwise CPU / memory allocation processing 880 is complete.

이상의 일련의 동작에 의해, 가상 머신 모니터(300)는, 콘솔(230)로부터 지시된 논리 하드웨어 요구 I/F(350)로부터, 물리-논리 하드웨어 할당표(310)를 만들 수 있다.By the above-described series of operations, the virtual machine monitor 300 can create a physical-logical hardware assignment table 310 from the logical hardware request I / F 350 instructed by the console 230.

이상과 같이 본 제1 실시 형태에 따르면, 가상 머신 모니터(300)는, 멀티프로세서 시스템(100) 내의 컴포넌트의 물리적인 위치 정보를 나타내는 컴포넌트간의 거리를 취득하고, 컴포넌트간 거리 대응표(500)를 미리 설정하고, 또한, 물리적인 네트워크의 구성이나 각 리소스의 소비 전력을 취득하여 물리 컴포넌트 구성 표(400)와 I/O 어댑터 구성표(450) 및 물리 네트워크 구성표를 미리 설정해 둔다. 그리고, 가상 머신 모니터(300)는, 콘솔(230)로부터 가상 서버의 생성(또는 설정) 요구인 논리 하드웨어 요구 I/F(350)를 접수하여, 우선, 요구된 I/O 어댑터(180)를 선택하고, 요구된 가상 서버에 I/O 어댑터(180)의 전유 할당을 행한다. 다음으로, 가상 머신 모니터(300)는, 가상 서버에 상기 컴포넌트간 거리 대응표(500)나 물리 컴포넌트 구성표(400)로부터 리소스의 물리적인 위치 정보나 소비 전력을 참조하여, 전유 할당을 행한 I/O 디바이스로부터, 요구되는 폴리시를 만족시키는 CPU와 메모리를 선택하여 가상 서버에 할당함으로써, 요구된 폴리시에 대하여 최적의 가상 서버를 제공할 수 있다. As described above, according to the first embodiment, the virtual machine monitor 300 obtains the distance between components indicating the physical position information of the components in the multiprocessor system 100, and advances the distance correspondence table 500 between components in advance. In addition, the physical component configuration table 400, the I / O adapter configuration table 450, and the physical network configuration table are set in advance by acquiring the configuration of the physical network and power consumption of each resource. The virtual machine monitor 300 receives the logical hardware request I / F 350, which is a request for creation (or setup) of a virtual server, from the console 230, and first, requests the requested I / O adapter 180. The exclusive allocation of the I / O adapter 180 is made to the requested virtual server. Next, the virtual machine monitor 300 refers to the virtual server from the distance correspondence table 500 or the physical component configuration table 400 with reference to the physical location information and power consumption of the resource, and performs exclusive allocation. By selecting a CPU and a memory satisfying the required policy from the device and assigning it to the virtual server, it is possible to provide an optimal virtual server for the required policy.

특히, 1개의 물리 계산기에서 복수의 가상 서버(게스트 OS)를 가동시키는 경우, 가상 서버마다 폴리시가 서로 달라도, I/O 디바이스, CPU 소켓, 메모리의 물리적인 위치 정보로부터 각 가상 서버에 최적의 구성을 자동적으로 할당하는 것이 가능하게 되어, 가상 계산기의 가용성을 향상시키는 것이 가능하게 되는 것이다.In particular, when running a plurality of virtual servers (guest OS) in one physical calculator, even if the policies are different for each virtual server, optimal configuration for each virtual server from the physical location information of the I / O device, CPU socket, and memory It is possible to automatically assign the, thereby improving the availability of the virtual calculator.

<제2 실시 형태> (논리 하드웨어 구성 통지 I/F)Second Embodiment Logical Hardware Configuration Notification I / F

도 43∼도 48에서 본 발명의 제2 실시 형태를 설명한다. 또한, 본 제2 실시 형태의 멀티프로세서 시스템(100)의 구성은, 상기 제1 실시 형태와 마찬가지이다.43 to 48, a second embodiment of the present invention will be described. In addition, the structure of the multiprocessor system 100 of this 2nd Embodiment is the same as that of the said 1st Embodiment.

도 43은 가상 서버(1_370a)의 논리 하드웨어 요구 I/F(350k)를 도시하고 있다. 논리 하드웨어 요구 I/F(350k)에서는, 4개의 CPU 코어와 8GB의 메모리, I/O 어댑터로서 참조 부호 180d와 180f를 요구하고 있다.43 illustrates logical hardware request I / F 350k of virtual server 1_370a. In the logical hardware request I / F 350k, reference numerals 180d and 180f are requested as four CPU cores, 8GB of memory, and an I / O adapter.

도 44는 상기 도 43의 논리 하드웨어 요구 I/F(350k)에 대응한 물리-논리 하 드웨어 할당표(310k)를 도시하고 있다. 도 45에 도 1의 멀티프로세서 시스템(100) 상에 할당한 가상 서버(1_370a)의 배치를 도시한다. 도면에서 점선으로 둘러싸인 부분이 가상 서버(1_370a)이다. FIG. 44 shows the physical-logical hardware assignment table 310k corresponding to the logical hardware request I / F 350k of FIG. 45 shows an arrangement of the virtual server 1_370a allocated on the multiprocessor system 100 of FIG. The part enclosed with a dotted line in the figure is the virtual server 1_370a.

여기서 가상 서버(1_370a) 상의 게스트 OS(1_360a)의 동작에 대해서 생각한다. 게스트 OS(1_360a)는 멀티프로세서 시스템(100) 상의 OS이며, 전술한 바와 같은 ACPI에 준거한 CPU와 메모리에 관한 Affinity 제어의 기능을 갖고 있는 것으로 한다. Affinity 제어의 기능에 의해, 게스트 OS(360) 상의 어플리케이션에 대하여 CPU 소켓(110c) 상의 CPU 코어#4, 5와 DIMM#8, 9, 10, 11을 할당하거나, 혹은 CPU 소켓(110d) 상의 CPU 코어#6, 7과 DIMM#12, 13, 14, 15를 할당함으로써, CPU 코어로부터 메모리에의 액세스의 레이턴시를 짧게 하여, 성능 향상을 도모한다. 그러나 이와 같은 Affinity 제어의 기능을 사용하기 위해서는, 게스트 OS(1_360a)가 가상 서버1의 하드웨어의 배치를 알고 있을 필요가 있다. 그 때문에, 가상 머신 모니터(300)로부터 게스트 OS(360)에의 구성 정보 통지 I/F(논리 하드웨어 구성 정보 통지 I/F(340))가 필요로 된다.Here, the operation of the guest OS 1_360a on the virtual server 1_370a will be considered. It is assumed that the guest OS 1_360a is an OS on the multiprocessor system 100 and has a function of Affinity control for CPU and memory based on ACPI as described above. By the function of the affinity control, CPU cores # 4, 5 and DIMMs # 8, 9, 10, 11 on the CPU socket 110c are allocated to the application on the guest OS 360, or the CPU on the CPU socket 110d is allocated. By allocating cores # 6, 7 and DIMMs # 12, 13, 14, 15, the latency of access from the CPU core to the memory is shortened to improve performance. However, in order to use such affinity control function, the guest OS 1_360a needs to know the hardware arrangement of the virtual server 1. Therefore, configuration information notification I / F (logical hardware configuration information notification I / F 340) from the virtual machine monitor 300 to the guest OS 360 is required.

도 46에 가상 머신 모니터(300) 상에 있는 물리 하드웨어 구성 정보(750)를 도시한다. 이것은 물리-논리 하드웨어 할당표(310)로부터 이차적으로 만들어지는 정보이며, CPU 코어(120)의 식별자 또는 일련 번호를 나타내는 호스트 CPU 코어#(751), 할당한 메모리(150)의 물리 어드레스의 시점을 나타내는 호스트 물리 어드레스 베이스(752), 및 할당한 메모리(150)의 양을 나타내는 호스트 물리 어드레스 범위(753)로 이루어진다. 그러나 이 정보를 그대로 게스트 OS(1_360a)에 대하여 통지해도, 게스트 OS(1_360a)는 올바르게 Affinity 제어를 행할 수는 없다. 왜냐하면, 가상 머신 모니터(300)가 게스트 OS(360a)에 할당한 멀티프로세서 시스템(100) 상의 호스트 물리 어드레스 베이스와, 게스트 OS(1_360a)에서의 게스트 물리 어드레스 베이스는 서로 다르기 때문이다.46 shows physical hardware configuration information 750 on the virtual machine monitor 300. This information is made secondary from the physical-logical hardware allocation table 310, and indicates the time point of the physical address of the host CPU core # 751 and the allocated memory 150 indicating the identifier or serial number of the CPU core 120. Host physical address base 752, and host physical address range 753, indicating the amount of memory 150 allocated. However, even if this information is notified to the guest OS 1_360a as it is, the guest OS 1_360a cannot perform Affinity control correctly. This is because the host physical address base on the multiprocessor system 100 allocated by the virtual machine monitor 300 to the guest OS 360a and the guest physical address base on the guest OS 1_360a are different from each other.

도 48에 호스트 물리 어드레스 공간과 게스트 물리 어드레스 공간의 관계를 도시한다. 호스트 물리 어드레스 베이스의 0x2_0000_0000에 대하여 게스트 OS(1_360a)를 할당한 경우, 게스트 물리 어드레스 베이스의 0x0_0000_0000이 호스트 물리 어드레스 베이스의 0x2_0000_0000에 상당하도록 어드레스의 어긋남이 생긴다. 따라서, 논리 하드웨어 구성 정보를 게스트 OS(1_360a)에 대하여 통지하는 경우에는, 이 어긋남을 고려하여 통지할 필요가 있다.48 shows the relationship between the host physical address space and the guest physical address space. When the guest OS 1_360a is assigned to 0x2_0000_0000 of the host physical address base, the address shift occurs so that 0x0_0000_0000 of the guest physical address base corresponds to 0x2_0000_0000 of the host physical address base. Therefore, when notifying the guest OS 1_360a of the logical hardware configuration information, it is necessary to notify in consideration of this misalignment.

도 47에 가상 머신 모니터(300)로부터 게스트 OS(1_360a)에 대한 논리 하드웨어 구성 정보 통지 I/F(340)를 도시한다. 논리 하드웨어 구성 정보 통지 I/F(340)는, 게스트 OS(360)에 할당한 CPU 코어(120)의 식별자 또는 일련 번호를 나타내는 게스트 CPU 코어#(341), 게스트 OS(360)에 할당한 베이스 어드레스를 나타내는 게스트 물리 어드레스 베이스(342), 게스트 OS(360)에 할당한 어드레스 범위를 나타내는 게스트 물리 어드레스 범위(343)로 이루어진다. 도 47에서 게스트 CPU 코어#(341)은, 게스트 OS(360) 내에서 0부터 순서대로 다시 매긴다. 게스트 물리 어드레스 베이스(342)는, 호스트 물리 어드레스 베이스(752)로부터, 가상 서버(1_370a)의 베이스 어드레스 0x2_0000_0000을 뺀 값으로 한다. 게스트 물리 어드레스 범위(343)는, 호스트 물리 어드레스 범위(753)와 동일한 값으로 한다. 이 상에 의해, 게스트 OS(1_360a)가 ACPI에 준거한 Affinity 제어를 위해서 이용 가능한 사용 논리 하드웨어 구성 정보가 만들어진다. 가상 머신 모니터(300)는, 이 논리 하드웨어 구성 정보 통지 I/F(340)를 생성하여 게스트 OS(360)에 통지한다. 또한, 여기서는 CPU#(341)과 메모리의 어드레스 범위의 조만을 통지하는 것으로 했지만, 보다 고도의 정보(예를 들면 리소스간 거리 계산표(600)와 같은 거리의 정보까지 포함시킴)를 통지하는 것도 가능하다. 그 경우에도, 호스트 물리 어드레스를 게스트 물리 어드레스로 변환한다라고 하는 원칙은 변하지 않는다.47 shows the logical hardware configuration information notification I / F 340 from the virtual machine monitor 300 to the guest OS 1_360a. The logical hardware configuration information notification I / F 340 is a guest CPU core # 341 indicating the identifier or serial number of the CPU core 120 assigned to the guest OS 360, and the base assigned to the guest OS 360. A guest physical address base 342 representing an address and a guest physical address range 343 representing an address range allocated to the guest OS 360. In FIG. 47, the guest CPU core # 341 is renumbered in order from zero in the guest OS 360. The guest physical address base 342 is a value obtained by subtracting the base address 0x2_0000_0000 of the virtual server 1_370a from the host physical address base 752. The guest physical address range 343 is set to the same value as the host physical address range 753. This makes use logic hardware configuration information available to the guest OS 1_360a for affinity control based on ACPI. The virtual machine monitor 300 generates this logical hardware configuration information notification I / F 340 and notifies the guest OS 360. Note that although only the CPU # 341 and the pair of address ranges of the memory are notified here, it is also possible to notify more advanced information (including information of a distance such as the distance calculation table 600 between resources). Do. Even in that case, the principle of converting a host physical address into a guest physical address does not change.

이상과 같이 본 발명의 제2 실시 형태에 따르면 가상 머신 모니터(300)가 적절한 리소스를 가상 서버에 대하여 할당하고, 가상 서버 상의 게스트 OS(360)는 가상 머신 모니터(300)가 생성한 논리 하드웨어 구성 정보 통지 I/F(340)를 취득함으로써, 사용하는 컴포넌트의 물리 위치 정보를 올바르게 이용하는 것이 가능하게 되어, 게스트 OS(360)의 Affinity 제어를 올바르게 동작시켜, 물리 서버와 동등한 성능이나 신뢰성을 확보하는 것이 가능하게 된다.As described above, according to the second embodiment of the present invention, the virtual machine monitor 300 allocates an appropriate resource to the virtual server, and the guest OS 360 on the virtual server has a logical hardware configuration generated by the virtual machine monitor 300. By acquiring the information notification I / F 340, it is possible to correctly use the physical position information of the component to be used, and to operate the affinity control of the guest OS 360 correctly to ensure the same performance and reliability as that of the physical server. It becomes possible.

<제3 실시 형태> (리소스의 재할당)Third Embodiment (Reassignment of Resources)

도 43∼도 45 및 도 49∼도 54를 사용하여, 본 발명의 제3 실시 형태를 설명한다. 상기 제2 실시 형태와 동일하게, 도 43에 도시하는 논리 하드웨어 요구 I/F(350k)에 따라서, 가상 머신 모니터(300)가 도 44에 도시하는 물리-논리 하드웨어 할당표(310k)와 같이 가상 서버(1_370a)를 할당한 결과를 도 45에 도시한다.A third embodiment of the present invention will be described with reference to FIGS. 43 to 45 and 49 to 54. Similarly to the second embodiment, according to the logical hardware request I / F 350k shown in FIG. 43, the virtual machine monitor 300 is virtual as shown in the physical-logical hardware assignment table 310k shown in FIG. 45 shows the result of assigning the server 1_370a.

가상 서버(1_370a)가 도 45와 같이 할당된 상태에서, 도 49에 도시하는 가상 서버2에 관한 논리 하드웨어 요구 I/F(350m)가 콘솔(230)로부터 가상 머신 모니 터(300)에 입력된 것으로 가정한다. 도 49의 논리 하드웨어 요구 I/F(350m)에서는, 우선도(357)가 10으로 되어 있어, 가상 서버1의 논리 하드웨어 요구 I/F(350k)의 우선도 5보다도 큰 값으로 되어 있다. 이 경우, 보다 우선도가 높은 가상 서버2의 리소스 할당 폴리시를 만족시키도록, 가상 서버1에 이미 할당된 리소스를 재배치하는 것이 가상 머신 모니터(300)에 요구된다.With the virtual server 1_370a assigned as shown in FIG. 45, the logical hardware request I / F 350m for the virtual server 2 shown in FIG. 49 is input from the console 230 to the virtual machine monitor 300. Assume that In the logical hardware request I / F 350m of FIG. 49, the priority 357 is 10, and the value is larger than the priority 5 of the logical hardware request I / F 350k of the virtual server 1. FIG. In this case, the virtual machine monitor 300 is required to rearrange the resources already allocated to the virtual server 1 so as to satisfy the resource allocation policy of the higher priority virtual server 2.

도 50은 가상 서버(1_370a)에 할당 완료된 리소스를 그대로 하고, 가상 머신 모니터(300)가 가상 서버(2_370b)에 대하여 리소스를 할당한 경우의 물리-논리 하드웨어 할당표(310m)를 도시한다. 또한, 도 51에 가상 서버(1_370a)로부터 할당 완료된 리소스를 일단 받아들이고, 가상 서버(2_370b)에 대하여 리소스를 할당한 후에 가상 서버(1_370a)에 새롭게 리소스를 할당한 경우의 물리-논리 하드웨어 할당표(310n)를 도시한다. 또한, 도 52에 도 50의 물리-논리 하드웨어 할당표(310m)에 따라서 계산한 리소스간 거리 계산표(600m)를 도시하고, 도 53에 도 51의 물리-논리 하드웨어 할당표(310n)에 따라서 계산한 리소스간 거리 계산표(600n)를 도시한다.FIG. 50 shows a physical-logical hardware allocation table 310m when the virtual machine monitor 300 allocates resources to the virtual server 2_370b without changing the resources allocated to the virtual server 1_370a. In addition, in Fig. 51, the physical-logical hardware allocation table in the case of accepting the allocated resource from the virtual server 1_370a once, allocating the resource to the virtual server 2_370b, and then newly assigning the resource to the virtual server 1_370a ( 310n). In addition, Fig. 52 shows an inter-resource distance calculation table 600m calculated according to the physical-logical hardware assignment table 310m of Fig. 50, and Fig. 53 is calculated according to the physical-logical hardware assignment table 310n of Fig. 51. The distance calculation table 600n between one resource is shown.

도 49의 논리 하드웨어 요구 I/F(350m)의 리소스 할당 폴리시(356)는 「I/O-메모리 우선」으로 되어 있어, 리소스간 거리 계산표(600)의 「I/O-메모리」의 컴포넌트간 거리의 총합(605)을 비교하면, 도 52의 계산표(600m)에서는 2인 것에 대해서 도 53의 계산표(600n)에서는 1로 되어 있고, 리소스의 재배치를 행한 쪽이, 보다 가상 서버2의 리소스 할당 폴리시를 만족시키는 배치가 가능하게 되어 있는 것을 알 수 있었다. 도 54에 물리-논리 하드웨어 할당표(310n)에 따라서 가상 머 신 모니터(300)가 멀티프로세서 시스템(100) 상에 가상 서버(1_370a)와 가상 서버(2_370b)를 할당한 모습을 도시한다.The resource allocation policy 356 of the logical hardware request I / F 350m in FIG. 49 is &quot; I / O-memory priority &quot;, and the inter-component component of the &quot; I / O-memory &quot; Comparing the sum of the distances 605, it is 1 in the calculation table 600n in FIG. 53 for 2 in the calculation table 600m in FIG. 52, and the resource relocation of the virtual server 2 is more relocated. It turned out that arrangement which satisfy | fills a policy is attained. FIG. 54 shows how the virtual machine monitor 300 allocates the virtual server 1_370a and the virtual server 2_370b on the multiprocessor system 100 according to the physical-logical hardware allocation table 310n.

이와 같이, 우선도가 서로 다른 복수의 논리 하드웨어 요구가 있는 경우, 우선도가 높은 논리 하드웨어 요구 I/F(350)로부터 순서대로 리소스를 할당함으로써, 보다 우선도가 높은 요구에 대하여 우선적으로 리소스를 할당하는 것이 가능하게 된다. 단, 리소스의 재배치를 행하는 경우에는, CPU 및 메모리의 이동이 필요로 되는 케이스가 있다. CPU의 이동에 관해서는, 레지스터의 내용의 카피, 캐쉬나 TLB의 플래시 등이 필요로 되고, 또한 메모리의 이동에 관해서는 메모리의 카피가 필요로 된다. CPU나 메모리의 구체적인 이동 방법에 대해서는 공지 또는 주지의 방법을 적용하면 된다. As described above, when there are a plurality of logical hardware requests having different priorities, the resources are allocated in order from the high priority logical hardware request I / F 350, so that the resources are preferentially allocated to the higher priority requests. It becomes possible to assign. However, in the case of rearrangement of resources, there are cases in which the CPU and the memory need to be moved. Regarding the movement of the CPU, a copy of the contents of the register, a cache or flashing of the TLB, etc. are required, and a copy of the memory is required for the movement of the memory. Known or well-known methods may be applied to the specific method of moving the CPU or memory.

이상과 같이, 본 발명의 제3 실시 형태에 따르면, 새롭게 가상 서버를 멀티프로세서 시스템(100)에 할당할 때에, 이미 할당한 리소스를 일단 해방시키고 나서, 가상 서버의 우선도가 높은 순으로 리소스의 재할당을 행함으로써, 보다 최적의 가상 서버를 구성하는 것이 가능하게 된다. As described above, according to the third embodiment of the present invention, when the virtual server is newly assigned to the multiprocessor system 100, the resources that have already been allocated are released after the resources have been released in order of high priority. By reallocating, it becomes possible to construct a more optimal virtual server.

이상과 같이, 본 발명은 복수의 프로세서나 I/O 디바이스에 의해 구성되고, 복수의 가상 서버로 분할된 계산기 시스템 및 그 가상 머신 모니터에 대하여 적용할 수 있다.As described above, the present invention is applicable to a calculator system composed of a plurality of processors or I / O devices and divided into a plurality of virtual servers, and a virtual machine monitor thereof.

도 1은 제1 실시 형태를 나타내고, 본 발명을 적용하는 멀티프로세서 시스템과 가상 머신 모니터의 구성을 도시하는 블록도.BRIEF DESCRIPTION OF THE DRAWINGS The block diagram which shows 1st Embodiment and shows the structure of the multiprocessor system and virtual machine monitor which apply this invention.

도 2는 제1 실시 형태를 나타내고, 물리 하드웨어 구성 정보 취득 I/F의 구성을 도시하는 설명도.2 is an explanatory diagram showing a first embodiment and showing a configuration of physical hardware configuration information acquisition I / F.

도 3은 제1 실시 형태를 나타내고, 물리 컴포넌트 구성표의 구성을 도시하는 설명도.3 is an explanatory diagram showing a first embodiment and illustrating a configuration of a physical component configuration table.

도 4는 제1 실시 형태를 나타내고, I/O 어댑터 구성표의 구성을 도시하는 설명도.4 is an explanatory diagram showing a first embodiment and showing a configuration of an I / O adapter configuration table.

도 5는 제1 실시 형태를 나타내고, 컴포넌트간 거리 대응표의 구성을 도시하는 설명도.5 is an explanatory diagram showing a first embodiment and showing a configuration of a distance correspondence table between components;

도 6은 제1 실시 형태를 나타내고, 물리 네트워크 구성표의 구성을 도시하는 설명도.6 is an explanatory diagram showing a first embodiment and showing a configuration of a physical network configuration table.

도 7은 제1 실시 형태를 나타내고, 가상 서버1의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.FIG. 7 is an explanatory diagram showing the first embodiment and showing the configuration of the logical hardware request I / F of the virtual server 1. FIG.

도 8은 제1 실시 형태를 나타내고, 가상 서버1의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.8 is an explanatory diagram showing a first embodiment and showing the configuration of a physical-logical hardware assignment table of the virtual server 1. FIG.

도 9는 제1 실시 형태를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 일례를 도시하는 블록도.Fig. 9 is a block diagram showing the first embodiment and showing an example of the virtual server 1 on the multiprocessor system.

도 10은 제1 실시 형태를 나타내고, 폴리시를 CPU-메모리 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 10 is an explanatory diagram showing the first embodiment and showing the configuration of the logical hardware request I / F of the virtual server 2 having the policy of CPU-memory priority.

도 11은 제1 실시 형태를 나타내고, 폴리시를 I/O-메모리 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 11 is an explanatory diagram showing a first embodiment and showing the configuration of a logical hardware request I / F of virtual server 2 having a policy of I / O-memory priority.

도 12는 제1 실시 형태를 나타내고, 폴리시를 CPU-메모리 우선으로 한 가상 서버2의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.Fig. 12 is an explanatory diagram showing a first embodiment and showing a configuration of a physical-logical hardware assignment table of virtual server 2 having a policy of CPU-memory priority.

도 13은 제1 실시 형태를 나타내고, 폴리시를 I/O-메모리 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 13 is an explanatory diagram showing a first embodiment and showing the configuration of a logical hardware request I / F of virtual server 2 having a policy of I / O-memory priority;

도 14는 제1 실시 형태를 나타내고, 폴리시를 CPU-메모리 우선으로 한 가상 서버2의 리소스간 거리 계산표의 구성을 도시하는 설명도.Fig. 14 is an explanatory diagram showing a first embodiment and showing a configuration of a distance calculation table between resources of virtual server 2 having a policy of CPU-memory priority;

도 15는 제1 실시 형태를 나타내고, 폴리시를 I/O-메모리 우선으로 한 가상 서버2의 리소스간 거리 계산표의 구성을 도시하는 설명도.Fig. 15 is an explanatory diagram showing a first embodiment and showing a configuration of a distance calculation table between resources of virtual server 2 having a policy of I / O-memory priority;

도 16은 제1 실시 형태를 나타내고, 폴리시를 CPU-메모리 우선으로 한 멀티프로세서 시스템 상의 가상 서버1, 2의 구성을 도시하는 블록도.Fig. 16 is a block diagram showing the first embodiment and showing the configuration of virtual servers 1 and 2 on a multiprocessor system with a policy of CPU-memory priority.

도 17은 제1 실시 형태를 나타내고, 폴리시를 I/O-메모리 우선으로 한 멀티프로세서 시스템 상의 가상 서버1, 2의 구성을 도시하는 블록도.Fig. 17 is a block diagram showing the first embodiment and showing the configuration of virtual servers 1 and 2 on a multiprocessor system with a policy of I / O-memory priority.

도 18은 제1 변형예를 나타내고, 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.18 is an explanatory diagram showing a first modification and showing a configuration of a logic hardware request I / F.

도 19는 제1 변형예를 나타내고, 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.19 is an explanatory diagram showing a first modification and showing the structure of a physical-logical hardware assignment table.

도 20은 제1 변형예를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 구 성을 도시하는 블록도.20 is a block diagram showing a first modification and showing the configuration of virtual server 1 on a multiprocessor system.

도 21은 제1 변형예를 나타내고, 폴리시를 CPU-메모리 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 21 is an explanatory diagram showing a first modification and showing the configuration of logical hardware request I / F of virtual server 2 with a policy of CPU-memory priority.

도 22는 제1 변형예를 나타내고, 폴리시를 CPU-I/O 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 22 is an explanatory diagram showing a first modification and showing the configuration of logical hardware request I / F of virtual server 2 with policy as CPU-I / O priority.

도 23은 제1 변형예를 나타내고, 폴리시를 CPU-메모리 우선으로 한 가상 서버2의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.Fig. 23 is an explanatory diagram showing a first modification and showing the configuration of a physical-logical hardware assignment table of virtual server 2 with a policy of CPU-memory priority.

도 24는 제1 변형예를 나타내고, 폴리시를 CPU-I/O 우선으로 한 가상 서버2의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.Fig. 24 is an explanatory diagram showing a first modification and showing the configuration of a physical-logical hardware assignment table of virtual server 2 having a policy of CPU-I / O priority.

도 25는 제1 변형예를 나타내고, 폴리시를 CPU-메모리 우선으로 한 가상 서버2의 리소스간 거리 계산표의 구성을 도시하는 설명도.25 is an explanatory diagram showing a first modification and showing a configuration of a distance calculation table between resources of virtual server 2 having a policy of CPU-memory priority;

도 26은 제1 변형예를 나타내고, 폴리시를 CPU-I/O 우선으로 한 가상 서버2의 리소스간 거리 계산표의 구성을 도시하는 설명도.FIG. 26 is an explanatory diagram showing a first modification and showing a configuration of a distance calculation table between resources of the virtual server 2 having the policy of CPU-I / O priority; FIG.

도 27은 제1 변형예를 나타내고, 폴리시를 CPU-메모리 우선으로 한 경우의 멀티프로세서 시스템 상의 가상 서버1, 2의 블록도.Fig. 27 is a block diagram of the virtual servers 1 and 2 on the multiprocessor system when the first modification is shown and the policy is CPU-memory priority.

도 28은 제1 변형예를 나타내고, 폴리시를 CPU-I/O 우선으로 한 경우의 멀티프로세서 시스템 상의 가상 서버1, 2의 블록도.Fig. 28 is a block diagram of the virtual servers 1 and 2 on the multiprocessor system in the first modification, when the policy is set to CPU-I / O priority.

도 29는 제2 변형예를 나타내고, 가상 서버1의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.29 is an explanatory diagram showing a second modification example and showing the configuration of the logical hardware request I / F of the virtual server 1. FIG.

도 30은 제2 변형예를 나타내고, 가상 서버1의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.30 is an explanatory diagram showing a second modification example and showing the structure of a physical-logical hardware assignment table of the virtual server 1. FIG.

도 31은 제2 변형예를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 구성을 도시하는 블록도.Fig. 31 is a block diagram showing the second modification and showing the configuration of virtual server 1 on the multiprocessor system.

도 32는 제2 변형예를 나타내고, 폴리시를 신뢰성 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 32 is an explanatory diagram showing a second modification and showing the configuration of logical hardware request I / F of virtual server 2 with policy as the priority of reliability.

도 33은 제2 변형예를 나타내고, 폴리시를 대역 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 33 is an explanatory diagram showing a second modification and showing the configuration of logical hardware request I / F of virtual server 2 with policy as band priority.

도 34는 제2 변형예를 나타내고, 폴리시를 전력 절약 우선으로 한 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.Fig. 34 is an explanatory diagram showing a second modification and showing the configuration of logical hardware request I / F of virtual server 2 with policy as the power saving priority;

도 35는 제2 변형예를 나타내고, 폴리시를 신뢰성 우선으로 한 가상 서버1, 2의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.Fig. 35 is an explanatory diagram showing a second modification and showing the configuration of the physical-logical hardware assignment table of the virtual servers 1 and 2 with policy as the reliability priority;

도 36은 제2 변형예를 나타내고, 폴리시를 대역 우선으로 한 가상 서버1, 2의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.Fig. 36 is an explanatory diagram showing a second modification and showing the configuration of the physical-logical hardware assignment table of the virtual servers 1 and 2 with policy as the band first.

도 37은 제2 변형예를 나타내고, 폴리시를 신뢰성 우선으로 한 가상 서버1, 2의 컴포넌트·네트워크 할당표의 구성을 도시하는 설명도.Fig. 37 is a diagram illustrating a configuration of a component network assignment table of virtual servers 1 and 2 in which a policy is given priority in reliability, showing a second modification.

도 38은 제2 변형예를 나타내고, 폴리시를 대역 우선으로 한 가상 서버1, 2의 컴포넌트·네트워크 할당표의 구성을 도시하는 설명도.FIG. 38 shows a second modification and shows an example of a configuration of a component network assignment table of virtual servers 1 and 2 in which the policy is band-first; FIG.

도 39는 제2 변형예를 나타내고, 폴리시를 신뢰성 우선으로 한 경우의 할당 리소스 소비 전력 계산표의 구성을 도시하는 설명도.39 is an explanatory diagram showing a second modification and showing a configuration of an allocation resource consumption power calculation table in the case where the policy is made with priority on reliability;

도 40은 제2 변형예를 나타내고, 폴리시를 소비 전력 우선으로 한 경우의 컴 포넌트·네트워크 할당표의 구성을 도시하는 설명도.40 is an explanatory diagram showing a second modification and showing the configuration of a component network allocation table in the case where the policy is set to consume power first;

도 41은 제2 변형예를 나타내고, 폴리시를 신뢰성 우선으로 한 가상 서버1, 2의 멀티프로세서 시스템 상의 블록도.Fig. 41 is a block diagram of a multiprocessor system of virtual servers 1 and 2 in which a second priority is given and policy is first of all reliability.

도 42는 제2 변형예를 나타내고, 폴리시를 대역 우선으로 한 가상 서버1, 2의 멀티프로세서 시스템 상의 블록도.Fig. 42 is a block diagram of a multiprocessor system of virtual servers 1 and 2, in which the policy is band-first, showing a second modification.

도 43은 제2 실시 형태를 나타내고, 가상 서버1의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.43 is an explanatory diagram showing a second embodiment and showing the configuration of a logical hardware request I / F of the virtual server 1;

도 44는 제2 실시 형태를 나타내고, 가상 서버1의 물리-논리 하드웨어 할당표의 구성을 도시하는 설명도.Fig. 44 is an explanatory diagram showing the second embodiment and showing the structure of a physical-logical hardware assignment table of the virtual server 1;

도 45는 제2 실시 형태를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 구성을 도시하는 블록도.Fig. 45 is a block diagram showing the second embodiment and showing the configuration of virtual server 1 on the multiprocessor system.

도 46은 제2 실시 형태를 나타내고, 물리 하드웨어 구성 정보의 구성을 도시하는 설명도.FIG. 46 is an explanatory diagram showing a second embodiment and showing the configuration of physical hardware configuration information; FIG.

도 47은 제2 실시 형태를 나타내고, 논리 하드웨어 구성 정보 통지 I/F의 구성을 도시하는 설명도.Fig. 47 is an explanatory diagram showing the second embodiment and showing the configuration of the logical hardware configuration information notification I / F;

도 48은 제2 실시 형태를 나타내고, 호스트 물리 어드레스와 게스트 물리 어드레스의 관계를 도시하는 맵.Fig. 48 is a map showing the second embodiment showing the relationship between the host physical address and the guest physical address.

도 49는 제3 실시 형태를 나타내고, 가상 서버2의 논리 하드웨어 요구 I/F의 구성을 도시하는 설명도.FIG. 49 is an explanatory diagram showing a third embodiment and showing the configuration of the logical hardware request I / F of the virtual server 2. FIG.

도 50은 제2 실시 형태를 나타내고, 가상 서버1, 2의 물리-논리 하드웨어 할 당표의 구성을 도시하는 설명도.FIG. 50 is an explanatory diagram showing a second embodiment and showing the configuration of the physical-logical hardware assignment table of the virtual servers 1 and 2; FIG.

도 51은 제2 실시 형태를 나타내고, 가상 서버1, 2의 물리-논리 하드웨어 할당표의 다른 구성을 도시하는 설명도.Fig. 51 is an explanatory diagram showing a second embodiment and showing another configuration of the physical-logical hardware assignment table of the virtual servers 1 and 2;

도 52는 제2 실시 형태를 나타내고, 가상 서버2의 리소스 소비 전력 계산표의 구성을 도시하는 설명도.FIG. 52 is an explanatory diagram showing a second embodiment and showing the configuration of a resource consumption power calculation table of virtual server 2; FIG.

도 53은 제2 실시 형태를 나타내고, 가상 서버2의 리소스 소비 전력 계산표의 다른 구성을 도시하는 설명도.FIG. 53 is an explanatory diagram showing a second embodiment and showing another configuration of the resource consumption power calculation table of the virtual server 2. FIG.

도 54는 제2 실시 형태를 나타내고, 멀티프로세서 시스템 상의 가상 서버1, 2를 도시하는 블록도.Fig. 54 is a block diagram showing the second embodiment and showing the virtual servers 1 and 2 on the multiprocessor system.

도 55는 제1 실시 형태를 나타내고, 가상 머신 모니터에서 행해지는 논리 하드웨어 할당 처리의 일례를 설명하는 플로우차트.55 is a flowchart illustrating the first embodiment and explaining an example of logical hardware allocation processing performed in a virtual machine monitor.

도 56은 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 I/O 어댑터 할당 처리의 서브 루틴을 설명하는 플로우차트.Fig. 56 is a flowchart showing the first embodiment and similarly explaining the subroutine of the I / O adapter allocation processing of the logical hardware allocation processing.

도 57은 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 CPU 및 메모리 선택 처리의 서브 루틴을 설명하는 플로우차트.Fig. 57 is a flowchart showing the first embodiment and similarly explaining the subroutine of the CPU and memory selection processing of the logical hardware allocation processing;

도 58은 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 폴리시 평가 처리의 서브 루틴을 설명하는 플로우차트.Fig. 58 is a flowchart showing the first embodiment and similarly explaining the subroutine of the policy evaluation processing of the logical hardware allocation processing;

도 59는 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 컴포넌트간 거리 산출 처리의 서브 루틴을 설명하는 플로우차트.Fig. 59 is a flowchart showing the first embodiment and similarly explaining the subroutine of the distance calculation processing between components of the logic hardware allocation processing;

도 60은 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 컴 포넌트 공용수 산출 처리의 서브 루틴을 설명하는 플로우차트.Fig. 60 is a flowchart showing the first embodiment and similarly explaining the subroutine of the component common water calculation processing of the logical hardware allocation processing.

도 61은 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 실효 대역 산출 처리의 서브 루틴을 설명하는 플로우차트.Fig. 61 is a flowchart showing the first embodiment and similarly explaining the subroutine of the effective band calculating process of the logical hardware allocation process;

도 62는 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 소비 전력 산출 처리의 서브 루틴을 설명하는 플로우차트.Fig. 62 is a flowchart showing the first embodiment and similarly explaining a subroutine of power consumption calculation processing of logical hardware allocation processing;

도 63은 제1 실시 형태를 나타내고, 동일하게 논리 하드웨어 할당 처리의 CPU 및 메모리 할당 처리의 서브 루틴을 설명하는 플로우차트.Fig. 63 is a flowchart showing the first embodiment and similarly explaining the subroutines of the CPU and memory allocation processing of the logical hardware allocation processing;

도 64는 제1 실시 형태를 나타내고, 멀티프로세서 시스템의 구성도.64 shows a first embodiment and a configuration diagram of a multiprocessor system;

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 멀티프로세서 시스템100: multiprocessor system

110 : CPU 소켓110: CPU socket

120 : CPU 코어 120: CPU core

130 : 메모리 컨트롤러130: memory controller

140 : 메모리 인터페이스140: memory interface

150 : 메모리150: memory

160 : I/O 허브160: I / O hub

170 : I/O 접속 인터페이스170: I / O interface

180 : I/O 어댑터180: I / O Adapter

190 : I/O 디바이스190: I / O device

200 : 모듈간 접속 인터페이스200: interface between modules

210 : 모듈 정보 취득 인터페이스210: module information acquisition interface

220 : 서비스 프로세서220: service processor

300 : 가상 머신 모니터300: virtual machine monitor

310 : 물리-논리 하드웨어 할당표310: physical-logical hardware assignment table

320 : 물리 하드웨어 구성 정보 취득 인터페이스320: physical hardware configuration information acquisition interface

330 : 물리-논리 하드웨어 할당 인터페이스330 physical-logical hardware assignment interface

340 : 논리 하드웨어 구성 정보 통지 인터페이스340: logical hardware configuration information notification interface

350 : 논리 하드웨어 요구 인터페이스350: logical hardware request interface

400 : 물리 컴포넌트 구성표400: physical component scheme

500 : 컴포넌트간 거리 대응표500: Distance correspondence table between components

550 : 물리 네트워크 구성표550 physical network scheme

600 : 리소스간 거리 계산표600: distance calculation table between resources

650 : 컴포넌트·네트워크 할당표650: component network allocation table

700 : 할당 리스스 소비 전력계 계산표700: allocation lease power consumption meter calculation table

750 : 물리 HW 구성 정보750: physical HW configuration information

801 : 논리 하드웨어 할당 처리부801: Logical Hardware Allocation Processing Unit

Claims (17)

복수의 프로세서와, 복수의 메모리와, 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스를 구비하고, 상기 컴퓨터 리소스는, 그룹을 이루어 각각 프로세서 소켓, I/O 허브 등의 컴포넌트에 접속되고, 그들 컴포넌트끼리를 내부 네트워크로 접속한 멀티프로세서 시스템 상에서 가상 서버를 가동시키는 가상 머신 모니터로서,And a plurality of processors, a plurality of memories, and a computer resource including a plurality of I / O devices, the computer resources being grouped and connected to components such as a processor socket, an I / O hub, and the like. A virtual machine monitor that runs a virtual server on a multiprocessor system with each other connected to an internal network. 상기 가상 머신 모니터는,The virtual machine monitor, 상기 멀티프로세서 시스템의 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보를 포함하는 하드웨어의 구성 정보를 취득하는 물리 하드웨어 정보 취득부와,Physical hardware for acquiring configuration information of hardware including information indicating an inclusion relationship between each of a plurality of processors of the multiprocessor system, a computer resource including a plurality of memories and a plurality of I / O devices, and a component to which they belong; An information acquisition unit, 생성하는 가상 서버의 프로세서의 수와 메모리량과 I/O 디바이스 및 리소스의 할당 폴리시를 포함하는 생성 요구를 접수하는 접수부와,A reception unit which receives a generation request including the number and memory of the virtual server to be created and the allocation policy of the I / O device and the resource; 접수한 상기 생성 요구에서 지정되는 I/O 디바이스를 상기 가상 서버에 할당하고 나서, 상기 할당 폴리시를 만족시키도록 요구되는 수의 프로세서와 요구되는 양의 메모리를 상기 가상 서버에 할당하는 할당 처리부An allocation processing unit for allocating the I / O device specified in the generated generation request to the virtual server and then allocating the virtual server with the required number of processors and the required amount of memory to satisfy the allocation policy. 를 포함한 것을 특징으로 하는 가상 머신 모니터.Virtual machine monitor comprising a. 삭제delete 제1항에 있어서, The method of claim 1, 상기 접수부가, 제2 가상 서버의 생성 요구를 접수하고, The reception unit receives a request for creating a second virtual server, 상기 할당 처리부는, The allocation processing unit, 할당 완료된 상기 가상 서버에 대하여 이미 할당한 프로세서와 메모리의 할당을 일단 해방하고, 상기 제2 가상 서버의 생성 요구에서 지정되는 I/O 디바이스를 상기 제2 가상 서버에 할당하고, 상기 제2 가상 서버의 생성 요구에 포함되는 프로세서의 수와 메모리량 및 리소스 할당 폴리시를 만족시키도록, 할당이 해방된 프로세서를 포함하는 프로세서군 및 할당이 해방된 메모리를 포함하는 메모리군으로부터, 상기 제2 가상 서버에 할당되는 프로세서 및 메모리를 선택하고, 상기 할당 완료된 가상 서버의 리소스의 할당 폴리시에 기초하여 그 가상 서버의 프로세서와 메모리를 재배치하는 것을 특징으로 하는 가상 머신 모니터.The allocation of the processor and memory already allocated to the allocated virtual server is released once, and the I / O device specified in the creation request of the second virtual server is allocated to the second virtual server, and the second virtual server is allocated. A processor group including an unallocated processor and a memory group including an unallocated memory to satisfy the number of processors and the amount of memory and resource allocation policy included in the generation request of the second virtual server; Selecting a processor and memory to be allocated and relocating the processor and memory of the virtual server based on an allocation policy of the allocated virtual server's resources. 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 프로세서와 메모리 간 및 프로세서와 I/O 디바이스 간의 거리를 구하고,The physical hardware information acquisition unit may be configured to perform a process between the processor and the memory and the processor and the I / O from information indicating the inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which they belong. Find the distance between O devices, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시에 기초하여 상기 프로세서와 메모리 및 I/O 디바이스의 거리의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.And allocate a processor and memory to the virtual server to which the I / O device is allocated such that the sum of the distances of the processor, memory, and I / O device is minimized based on the allocation policy of the resource. monitor. 제1항에 있어서, The method of claim 1, 상기 할당 처리부는, The allocation processing unit, 상기 복수의 I/O 디바이스 중 어느 하나의 I/O 디바이스를 복수의 가상 서버 간에서의 공유를 피해 1개의 가상 서버에 할당하는 것을 특징으로 하는 가상 머신 모니터.And assigning one I / O device of the plurality of I / O devices to one virtual server, avoiding sharing among the plurality of virtual servers. 삭제delete 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 프로세서와 메모리 간의 거리를 구하고,The physical hardware information acquisition unit obtains a distance between a processor and a memory from information indicating an inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories and the plurality of I / O devices, and a component to which the physical resources belong. 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 프로세서의 메모리에의 액세스를 우선하는 경우에는, 상기 프로세서와 메모리 간의 거리의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.If the resource allocation policy prioritizes access to the memory of the processor, assigning the processor and memory to the virtual server to which the I / O device is allocated such that the sum of the distances between the processor and the memory is minimal. Virtual machine monitor, characterized in that. 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 프로세서와 I/O 디바이스 간의 거리를 구하고,The physical hardware information acquisition unit may determine a distance between the processor and the I / O device from information indicating an inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which they belong. Finding, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 프로세서와 I/O 디바이스의 액세스를 우선하는 경우에는, 상기 프로세서와 I/O 디바이스 간의 거리의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.If the allocation policy of the resource prioritizes access of a processor and an I / O device, the processor is assigned to the virtual server to which the I / O device is allocated such that the sum of the distances between the processor and the I / O device is minimized. And memory allocation for the virtual machine. 제1항에 있어서,The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 메모리와 I/O 디바이스 간의 거리를 구하고,The physical hardware information acquisition unit may determine a distance between a memory and an I / O device from information indicating an inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which they belong. Finding, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 메모리와 I/O 디바이스의 액세스를 우선하는 경우에는, 상기 메모리와 I/O 디바이스 간의 거리의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.If the resource allocation policy prioritizes access of memory and I / O devices, the virtual server to which the I / O device is allocated has a processor such that the sum of the distances between the memory and the I / O devices is minimized. And memory allocation for the virtual machine. 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 프로세서와 메모리 및 I/O 디바이스의 상호의 거리를 구하고,The physical hardware information acquiring unit includes a processor, a memory, and an I / O device based on information indicating an inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which they belong. Find the distance of each other, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 가상 서버의 전체의 성능을 확보하는 경우에는, 상기 프로세서와 메모리 및 I/O 디바이스의 거리의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.When the resource allocation policy secures the performance of the entire virtual server, the processor is allocated to the virtual server to which the I / O device is allocated such that the sum of the distances between the processor, the memory and the I / O device is minimized. And memory allocation for the virtual machine. 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 프로세서와 메모리 및 I/O 디바이스를 접속하는 내부 네트워크의 경로를 구하고,The physical hardware information acquiring unit is configured to select a processor, a memory, and an I / O device from information indicating an inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which they belong. Find the path of the internal network to which you are connecting, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 가상 서버의 신뢰성을 우선하는 경우에는, 이미 할당한 가상 서버가 사용하는 내부 네트워크와, 상기 생성 요구가 있었던 새로운 가상 서버가 사용하는 내부 네트워크에서, 중복되는 내부 네트워크의 수의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 새로운 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.If the resource allocation policy gives priority to the reliability of the virtual server, the number of internal networks that are duplicated in the internal network used by the already allocated virtual server and the internal network used by the new virtual server that has created the request. And allocate a processor and memory to the new virtual server to which the I / O device is allocated so that the sum of the sums is minimal. 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터 프로세서와 메모리 및 I/O 디바이스를 접속하는 내부 네트워크의 경로를 구하고, The physical hardware information acquiring unit is configured to select a processor, a memory, and an I / O device from information indicating an inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which they belong. Find the path of the internal network to which you are connecting, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 내부 네트워크의 대역을 우선하는 경우에는, 이미 할당한 가상 서버가 사용하는 내부 네트워크와, 상기 생성 요구가 있었던 새로운 가상 서버가 사용하는 내부 네트워크에서, 중복되는 내부 네트워크의 대역을 가상 서버의 수로 나눈 값을 실효 대역으로 하고, 그 실효 대역이 최대로 되도록, 상기 I/O 디바이스가 할당된 상기 새로운 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.When the resource allocation policy has priority over the internal network bandwidth, the internal network bandwidth used by the already allocated virtual server and the internal network used by the new virtual server that has created the request overlap with the internal network bandwidth. And a number divided by the number of virtual servers as an effective band, and a processor and memory are allocated to the new virtual server to which the I / O device is allocated such that the effective band is maximized. 제1항에 있어서, The method of claim 1, 상기 물리 하드웨어 정보 취득부는, 상기 복수의 프로세서와 복수의 메모리와 복수의 I/O 디바이스를 포함하는 컴퓨터 리소스 각각과 그것이 소속하는 컴포넌트와의 포함 관계를 나타내는 정보로부터, 상기 프로세서와 메모리와 I/O 디바이스 및 각각이 소속하는 컴포넌트의 소비 전력을 각각 구하고,The physical hardware information acquisition unit includes the processor, the memory, and the I / O from the information representing the inclusion relationship between each of the computer resources including the plurality of processors, the plurality of memories, and the plurality of I / O devices, and the components to which the components belong. Calculate the power consumption of the device and the components to which each belongs, 상기 할당 처리부는, The allocation processing unit, 상기 리소스의 할당 폴리시가, 소비 전력을 우선하는 경우에는, 이미 할당한 가상 서버의 프로세서와 메모리와 I/O 디바이스 및 컴포넌트의 소비 전력과, 상기 생성 요구가 있었던 새로운 가상 서버가 사용하는 프로세서와 메모리와 I/O 디바이스 및 컴포넌트의 소비 전력의 총합이 최소로 되도록, 상기 I/O 디바이스가 할당된 상기 새로운 가상 서버에 프로세서와 메모리를 할당하는 것을 특징으로 하는 가상 머신 모니터.If the resource allocation policy prioritizes power consumption, the power consumption of the processor and memory and I / O devices and components of the virtual server already allocated, and the processor and memory used by the new virtual server that generated the request. And allocate a processor and memory to the new virtual server to which the I / O device is assigned so that the sum of power consumption of the I / O device and the component is minimized. 삭제delete 삭제delete 삭제delete 삭제delete
KR1020080079105A 2007-11-28 2008-08-12 Virtual machine monitor and multi-processor system KR101090651B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007307626 2007-11-28
JPJP-P-2007-00307626 2007-11-28
JP2008169803A JP5210730B2 (en) 2007-11-28 2008-06-30 Virtual machine monitor and multiprocessor system
JPJP-P-2008-00169803 2008-06-30

Publications (2)

Publication Number Publication Date
KR20090055459A KR20090055459A (en) 2009-06-02
KR101090651B1 true KR101090651B1 (en) 2011-12-07

Family

ID=40742614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080079105A KR101090651B1 (en) 2007-11-28 2008-08-12 Virtual machine monitor and multi-processor system

Country Status (3)

Country Link
JP (1) JP5210730B2 (en)
KR (1) KR101090651B1 (en)
CN (1) CN101446928B (en)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101068537B1 (en) * 2008-12-18 2011-09-28 한국전자통신연구원 Virtualization management apparatus using virtualization platform and control method thereof
JP4962921B2 (en) 2009-08-26 2012-06-27 日本電気株式会社 Computer memory relocation control method and program, and computer system
FR2952731B1 (en) * 2009-11-13 2011-11-04 Bull Sas METHOD AND DEVICE FOR OPTIMIZING THE EXECUTION OF SOFTWARE APPLICATIONS IN A MULTIPROCESSOR ARCHITECTURE COMPRISING SEVERAL INPUT / OUTPUT CONTROLLERS AND SECONDARY CALCULATION UNITS
KR101277274B1 (en) * 2009-11-27 2013-06-20 한국전자통신연구원 Method and Apparatus for Mapping a Physical Resource Model to a Logical Resource Model
CN102648455B (en) 2009-12-04 2015-11-25 日本电气株式会社 Server and stream control routine
US8898663B2 (en) * 2009-12-16 2014-11-25 Symantec Corporation Storage visibility in virtual environments
WO2011083505A1 (en) 2010-01-05 2011-07-14 Hitachi, Ltd. Method and server system for testing and executing migration between virtual servers
KR101334842B1 (en) * 2010-03-02 2013-12-02 한국전자통신연구원 Virtual machine manager for platform of terminal having function of virtualization and method thereof
JP5600277B2 (en) * 2010-09-27 2014-10-01 株式会社日立システムズ Cloud service relocation system, method and program
CN102822800B (en) 2011-02-04 2017-02-22 松下电器(美国)知识产权公司 Virtual computer system and shared device control method
US9614747B2 (en) 2011-02-24 2017-04-04 Nec Corporation Network system, controller, and flow control method
JP5696891B2 (en) * 2011-03-31 2015-04-08 日本電気株式会社 Job scheduling method by IO configuration
CN102915292B (en) * 2011-08-02 2015-12-09 北京大学 Based on the communication means of polycaryon processor and detection method thereof and control method
WO2013042271A1 (en) 2011-09-22 2013-03-28 富士通株式会社 Electronic computer system and virtual machine deployment method
US9372707B2 (en) 2011-11-18 2016-06-21 Hitachi, Ltd. Computer, virtual machine deployment method and program
KR101867960B1 (en) 2012-01-05 2018-06-18 삼성전자주식회사 Dynamically reconfigurable apparatus for operating system in manycore system and method of the same
US9626222B2 (en) * 2012-01-17 2017-04-18 Alcatel Lucent Method and apparatus for network and storage-aware virtual machine placement
US9183019B2 (en) * 2012-04-25 2015-11-10 Empire Technology Development Llc Certification for flexible resource demand applications
US20150277945A1 (en) * 2012-11-15 2015-10-01 Mitsubishi Electric Corporation Virtual computer system
JP5945512B2 (en) 2013-02-13 2016-07-05 株式会社日立製作所 Computer system and virtual computer management method
JP5660149B2 (en) * 2013-03-04 2015-01-28 日本電気株式会社 Information processing apparatus, job scheduling method, and job scheduling program
WO2014186945A1 (en) * 2013-05-21 2014-11-27 华为技术有限公司 Method for realizing correspondence of physical resource and virtual resource and basic input and output system
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
CN104811361B (en) * 2014-01-24 2018-06-15 新华三技术有限公司 A kind of method and apparatus for generating the virtualization network equipment
JP6323101B2 (en) 2014-03-20 2018-05-16 富士通株式会社 Arrangement control program, method and apparatus
WO2016056060A1 (en) * 2014-10-07 2016-04-14 株式会社日立製作所 Computer and vector setting method
KR101647099B1 (en) * 2014-12-18 2016-08-09 권영민 Server structure for supporting virtual multi session
US9535606B2 (en) * 2014-12-22 2017-01-03 Intel Corporation Virtual serial presence detect for pooled memory
US20160179582A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Techniques to dynamically allocate resources for local service chains of configurable computing resources
US20180341482A1 (en) * 2015-12-18 2018-11-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for utilization of a processing arrangement
CN106412075A (en) * 2016-10-14 2017-02-15 郑州云海信息技术有限公司 Resource allocation method and device based on cloud computing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139287A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282560A (en) * 2000-03-31 2001-10-12 Hitachi Ltd Virtual computer control method, its performing device and recording medium recording its processing program
US20030163651A1 (en) * 2002-02-26 2003-08-28 International Business Machines Corporation Apparatus and method of transferring data from one partition of a partitioned computer system to another
US20060253682A1 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning
JP4702127B2 (en) * 2006-03-22 2011-06-15 日本電気株式会社 Virtual computer system, physical resource reconfiguration method and program thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139287A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems

Also Published As

Publication number Publication date
CN101446928B (en) 2011-05-25
CN101446928A (en) 2009-06-03
KR20090055459A (en) 2009-06-02
JP2009151745A (en) 2009-07-09
JP5210730B2 (en) 2013-06-12

Similar Documents

Publication Publication Date Title
KR101090651B1 (en) Virtual machine monitor and multi-processor system
EP2065804A1 (en) Virtual machine monitor and multi-processor system
CN112099941B (en) Method, equipment and system for realizing hardware acceleration processing
US9250947B2 (en) Determining placement fitness for partitions under a hypervisor
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
KR100998298B1 (en) I/o adapter lpar isolation in a hypertransport environment
US9697024B2 (en) Interrupt management method, and computer implementing the interrupt management method
US20140282584A1 (en) Allocating Accelerators to Threads in a High Performance Computing System
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
US10248460B2 (en) Storage management computer
US10409519B2 (en) Interface device, and computer system including interface device
US9111046B2 (en) Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
JP2015504541A (en) Method, program, and computing system for dynamically optimizing memory access in a multiprocessor computing system
JP2008021252A (en) Computer system and address allocating method
WO2017181851A1 (en) Bios starting method and device
US10565133B2 (en) Techniques for reducing accelerator-memory access costs in platforms with multiple memory channels
CN113204421A (en) Serverless co-distribution of functions and storage pools
US11157191B2 (en) Intra-device notational data movement system
CN116324706A (en) Split memory pool allocation
US20140281343A1 (en) Information processing apparatus, program, and memory area allocation method
US20240020174A1 (en) Memory disaggregation in a multi-node environment
JP6694007B2 (en) Information processing equipment
JP6351387B2 (en) INFORMATION PROCESSING APPARATUS, PROGRAM, AND RECORDING MEDIUM
CN117785372A (en) Resource management method and device
CN117742890A (en) Virtual machine creation method, device, equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141104

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee