KR101090651B1 - Virtual machine monitor and multi-processor system - Google Patents
Virtual machine monitor and multi-processor system Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation 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에 대하여 적절하게 변환하여 통지하는 인터페이스를 가상 머신 모니터에 구비한다.
멀티프로세서 시스템, 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.
Multiprocessor System, CPU Socket, CPU Core, Memory Controller, Memory Interface, Memory, Hub, Adapter, Service Processor, Console
Description
본 발명은, 가상 머신 모니터에 의해 물리 계산기 상에서 가상 서버를 가동시켜, 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
그러나 고집적화가 비교적 쉬운 프로세서나 메모리에 비하여, 입출력의 자리(경로)를 가질 필요가 있기 때문에 본질적으로 집적하기 어려운 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
한편, 멀티 코어화의 진행이나 메모리 컨트롤러를 통합한 프로세서의 등장에 의해, 프로세서·메모리·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
멀티프로세서 시스템(100) 상에는 1개 이상의 서비스 프로세서(220)가 있고, 상기 각 모듈(물리적 구성 요소)의 물리 위치 정보나 접속 정보를 모듈 정보 취득 I/F(210)를 통해서 수집한다. 서비스 프로세서(220)는 멀티프로세서 시스템(100)의 옵션으로서 외장되는 형태로 탑재되어도 되고, I/O 디바이스의 하나로서 탑재되는 형태이어도 된다. 또한,LAN 등으로 접속된 별도의 컴퓨터 상에 서비스 프로세서(220)의 기능이 있어도 된다. 또한,I/O 디바이스는, 데이터의 입출력을 행하는 장치로 구성된다.There is at least one
멀티프로세서 시스템(100) 상에는, 가상 머신 모니터(300)가 실행되어, 멀티프로세서 시스템(100) 상의 리소스를 1개 이상의 가상 서버에 분할하여 게스트 OS(360a∼360c)에 대하여 제공한다. 가상 머신 모니터(300)는 서비스 프로세서(220)가 수집한 모듈의 물리 구성 정보와 접속 정보를, 물리 하드웨어 구성 정보 취득 인터페이스(320)를 통해서 수취한다. 또한, 게스트 OS(360a∼360c)의 총칭을 게스트 OS(360)로 한다.On the
게스트 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
또한, 멀티프로세서 시스템(100)에는, 입력 장치와 출력 장치를 구비하며 관리자가 사용하는 콘솔(230)이 접속되어, 가상 머신 모니터(300)나 서비스 프로세서(220)에 명령을 주거나, 가상 머신 모니터(300)나 서비스 프로세서(220)로부터 처리의 결과를 수신하여 출력 장치에 표시를 행한다.In addition, the
<멀티프로세서 시스템의 구성> <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
각각의 CPU 소켓(110) 상의 메모리 컨트롤러(130)는 각각 4개의 메모리 I/F(140)를 갖고, 각각 4개의 DIMM(메모리)(150)이 접속되어 있다. 여기서는 이후의 설명을 간단히 하기 위해서, 각 DIMM(150)은 1GB이고, 1CPU 소켓당 4GB, 멀티프로세서 시스템 전체로는 16GB의 메모리를 탑재하고 있는 것으로 한다. 이하의 설명에서, 이 16매의 DIMM(150)의 일련 번호를 도면의 좌측으로부터 DIMM#0∼#15로 부르는 경우가 있다.The
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 /
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 /
도 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,
게스트 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 /
도 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
도 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
본 실시 형태의 설명에서는, 컴포넌트#(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
또한, 리소스의 소비 전력(430)과 컴포넌트의 소비 전력(435)은, 서비스 프로세서(220)의 ROM(221)에 미리 설정한 데이터를 이용한다. 또한, 이 ROM에는 I/O 어댑터(180)의 소비 전력이나 각 컴포넌트간의 대역이나 레이턴시 등 컴포넌트의 성능에 관련되는 정보를 저장해 둔다.In addition, the
도 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 /
도 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
또한, 모듈간 접속 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
또한, 본 실시 형태에서는, 메모리(150)는 CPU 소켓(110)에 직접 접속되기 때문에, CPU 소켓(110)과 메모리(150)의 거리는 0이므로 컴포넌트간 거리 대응표(500)에 포함되지 않지만, 메모리(150)가 내부 네트워크(모듈간 접속 I/F(200))에 접속되어 있는 경우에서는, 메모리(150)를 컴포넌트#(420)에 부가하여 각 컴포넌트간의 거리를 컴포넌트간 거리 대응표(500)에 설정하면 된다.In addition, in this embodiment, since the
또한, 컴포넌트간 거리 대응표(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
도 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
이상이 물리 하드웨어 구성 정보 취득 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
<가상 서버의 구성><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
논리 하드웨어 요구 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
성능 우선: 컴포넌트간의 거리를 짧게 하도록 하는 배치를 선택한다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
또한, 본 실시 형태에서는 가상 서버에 제공하는 폴리시를 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
도 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
도 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
도 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
도 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
도 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
이상과 같이 하여 리소스간 거리 계산표(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
도 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
이상의 예에 의해, 논리 하드웨어 요구 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> <
계속해서 제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
계속해서 도 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
도 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
도 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
도 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
도 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
이상이 제1 실시 형태의 제1 변형예이다.The above is the first modification of the first embodiment.
<변형예 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
도 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
도 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,
할당 폴리시가, 전술한 실시 형태까지와 같은 거리 우선이 아닌 경우에는, 리소스 할당의 기준으로서 상기 리소스간 거리 계산표(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
도 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
도 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.
리소스 할당 폴리시(356)가 「신뢰성 우선」이었던 경우, 공용 컴포넌트수·공용 네트워크수가 되도록 이면 적어지도록 하는 구성을 선택한다. 이 경우, 가상 서버1과 가상 서버2가 요구하는 I/O 어댑터가 동일한 I/O 허브(160a) 상에 있기 때 문에, 공용 컴포넌트수를 0으로 하는 것은 불가능하다. 그러나 물리-논리 하드웨어 할당표(310h와 310i)에 각각 대응한 컴포넌트·네트워크 할당표(650h, 650i)를 비교한 경우, 도 35에 도시한 물리-논리 하드웨어 할당표(310h)에 대응하는 쪽이 공용 컴포넌트수가 적은 것을 알 수 있었다. 따라서 요구된 폴리시가 「신뢰성 우선」인 도 32의 논리 하드웨어 요구 I/F(350h)의 요구에 대해서는, 도 35에 나타낸 물리-논리 하드웨어 할당표(310h)의 할당이 선택된다. If the
리소스 할당 폴리시(356)가 「대역 우선」이었던 경우, 네트워크의 실효 대역이 되도록 이면 커지도록 하는 구성을 선택한다. 이 경우, 도 37의 컴포넌트·네트워크 할당표(650h와 650i)를 비교하면, 컴포넌트·네트워크 할당표(650h)의 구성 쪽이 실효 대역이 크다. 따라서 폴리시가 「대역 우선」인 논리 하드웨어 요구 I/F(350i)의 요구에 대해서는, 실효 대역이 최대로 되는 도 37의 물리-논리 하드웨어 할당표(310h)의 할당이 선택된다.When the
도 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
도 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
논리 하드웨어 요구 I/F(350)의 리소스 할당 폴리시(356)가 「전력 절약 우선」이었던 경우, 가상 머신 모니터(300)는 소비 전력의 총합(705)이 되도록 이면 작아지도록 하는 할당 방법을 선택한다. 따라서, 폴리시가 「전력 절약화 우선」인 도 34의 논리 하드웨어 요구 I/F(350j)의 요구에 대해서는, 가상 머신 모니 터(300)의 논리 하드웨어 할당 처리부(801)는 도 36의 물리-논리 하드웨어 할당표(310i)의 할당을 선택한다. When the
도 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
스텝805는, 논리 하드웨어 요구 I/F(350a)에서 요구된 I/O 어댑터(353)의 할당 요구가 전유인지 공유인지를 판정한다. 판정의 결과 전유이면 스텝810으로, 공유이면 스텝830으로 진행한다. Step 805 determines whether the allocation request of the I /
스텝810은, 요구된 I/O 어댑터(353)가 할당 가능한지를 판정한다. 이미 다른 가상 서버에 할당되어 있어 할당 불가인 경우에는 스텝820으로, 할당 가능하면 스텝830으로 진행한다. Step 810 determines whether the requested I /
스텝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
스텝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 /
스텝860은, 스텝850에서 선택한 CPU·메모리에 대하여, 할당 폴리시에 따른 평가를 행하는 스텝이다. 폴리시 평가(860)의 서브 루틴의 플로우는 도 58에 도시한다. 이 서브 루틴의 완료 후, 스텝870으로 진행한다.Step 860 is a step for evaluating the CPU memory selected in
스텝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
스텝890은, 스텝850에서 할당의 도중에서 에러로 된 경우(또는 스텝810에서 할당하는 리소스가 모자랐던 경우)에, 물리-논리 하드웨어 할당표(310)의 가상 서버(351)의 엔트리를 말소하는 스텝이다. 이 엔트리의 말소 후, 논리 하드웨어 할당 처리는 완료로 된다. Step 890 terminates the entry of the
도 56에 I/O 어댑터 할당 처리(830)의 서브 루틴의 플로우를 도시한다. 우선 스텝900으로 진행한다.56 shows the flow of the subroutine of the I / O
스텝900은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)에 대응하는 I/O 어댑터#(455)을 I/O 어댑터 구성표(450)로부터 선택하고, 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 I/O 어댑터(312)에 추가하는 스텝 이다. 스텝901로 진행한다. Step 900 selects an I /
스텝901은, I/O 어댑터(353)에 대응하는 I/O 슬롯#(465)을 I/O 어댑터 구성표(450)로부터 선택하고, 물리 컴포넌트 구성표(400)의 리소스 종별(410)이 I/O 슬롯의 엔트리로부터 I/O 슬롯#(465)에 대응하는 엔트리를 찾고, 대응하는 컴포넌트(420)를 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 컴포넌트(315)에 추가하는 스텝이다. 스텝902로 진행한다.In
스텝902는, 모든 I/O 어댑터(353)를 할당했는지를 판정하는 스텝이다. 아직 할당하지 않은 어댑터가 남아 있는 경우에는 스텝900으로 되돌아간다. 그렇지 않은 경우에는 I/O 어댑터 할당 처리(830)는 완료로 된다.Step 902 is a step of determining whether all the I /
도 57에 CPU/메모리 선택 처리(850)의 서브 루틴의 플로우를 도시한다. 우선 스텝905로 진행한다.Fig. 57 shows the flow of the subroutine of the CPU /
스텝905는, 논리 하드웨어 요구 I/F(350a)에서 요구된 CPU 코어수(354)와 메모리량(355)이 할당 가능한지의 여부를 판정하는 스텝이다. 할당 불가능한 경우, 스텝907로 진행한다. 할당 가능하면 스텝906으로 진행한다. Step 905 is a step of determining whether the number of
스텝906은, 미할당의 조합 중으로부터, 논리 하드웨어 요구 I/F(350a)에서 요구된 CPU 코어수(354)와 메모리량(355)을 만족시키는 CPU 코어와 메모리를 선택하고, 가할당 CPU(851)와 가할당 메모리(852)에 설정하는 스텝이다. 이에 의해 CPU/메모리 선택 처리(850)는 완료로 된다. In
스텝907은, 에러 응답하는 스텝이다. 이에 의해 CPU/메모리 선택 처리(850)는 완료로 된다. Step 907 is an error response step. As a result, the CPU /
도 58에, 폴리시 평가(860)의 서브 루틴의 플로우를 도시한다. 우선 스텝910으로 진행한다.58 shows the flow of the subroutine of
스텝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
스텝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
스텝913은, 가할당 CPU(851), 가할당 메모리(852), 가할당 폴리시값(853)을, 각각 할당 후보 CPU(841), 할당 후보 메모리(842), 할당 후보 폴리시값(843)에 대입하는 스텝이다. 이 처리에 의해, 할당 후보 CPU(841), 할당 후보 메모리(842), 할당 후보 폴리시값(843)에는, 지금까지 할당된 것 중에서 가장 폴리시값이 작은 조합의 CPU·메모리의 조합이 유지된다. 이 처리에 의해, 폴리시 평가(860)는 완료한다.In
또한, 도 58의 스텝913에서, 할당 후보 폴리시값(843)은 가할당 폴리시값(853)의 값을 이어받는 형태로 설정되어 있어, 첫회의 스텝912에서는 할당 후보 폴리시값(843)의 초기값은 부정으로 되지만, 첫회는 도 55의 스텝840에서, 할당 후보 CPU(841)와 할당 후보 메모리(842)가 φ로 설정되므로, 스텝911의 판정에서 반드시 스텝913으로 향하게 되어, 스텝912는 통과하지 않는다. 또한, 할당 후보 폴리시값(843)을 소정의 최대값으로 초기화해 두어도 된다.In addition, in
도 59에 컴포넌트간 거리 산출(920)의 서브 루틴의 플로우를 도시한다. 우선 스텝921로 진행한다.59 shows a flow of the subroutine of the
스텝921은, 논리 하드웨어 요구 I/F(350a)의 가상 서버(351)의 I/O 어댑 터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용하여, 리소스간 거리 계산표(600)를 작성하는 스텝이다. 구체적으로는,In
(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
(3) 카테고리(601)별로 컴포넌트간 거리(604)의 합계를 구하고 Σ(605)에 대입한다(3) The sum of
라고 하는 처리로 구성된다. 다음으로, 스텝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
스텝923은, 리소스간 거리 계산표(600)의 카테고리(601)의 CPU-메모리에 대응하는 Σ(605)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 923 is a step of setting the
스텝924는, 리소스간 거리 계산표(600)의 카테고리(601)의 CPU-I/O에 대응하는 Σ(605)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 924 is a step of setting
스텝925는, 리소스간 거리 계산표(600)의 카테고리(601)의 I/O-메모리에 대응하는 Σ(605)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 925 is a step of setting
스텝926은, 리소스간 거리 계산표(600)의 모든 카테고리(601)의 Σ(605)의 합계를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해 컴포넌트간 거리 산출(920)은 완료된다.Step 926 is a step in which the sum of
도 60에, 컴포넌트 공용수 산출(930)의 서브 루틴의 플로우를 도시한다. 우선 스텝931로 진행한다. 60 shows the flow of the subroutine of the component
스텝931은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용한 가상 서버(351)를 포함하는, 모든 할당 완료된 가상 서버에 대하여, 컴포넌트·네트워크 할당표(650)를 작성하는 스텝이다. 구체적으로는,Step 931 includes all allocations, including the I /
(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
(3) 공용 컴포넌트#의 수를 공용수(654)에 설정한다(3) Set the number of shared components # to the
라고 하는 처리로 구성된다. 스텝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
도 61에, 실효 대역 산출(940)의 서브 루틴의 플로우를 도시한다. 우선 스텝941로 진행한다.61 shows the flow of the subroutine of the
스텝941은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용한 가상 서버(351)를 포함하는, 모든 할당 완료된 가상 서버에 대하여, 컴포넌트·네트워크 할당표(650)를 작성하는 스텝이다. 구체적으로는,Step 941 allocates all of the allocations, including the I /
(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
(3) 서로 다른 가상 서버간에서 공용되는 네트워크#(653)을 공용 네트워크#(652)에 설정한다 (3) Set the
(4) 각 네트워크의 대역을 물리 네트워크 구성표(550)의 대역(560)으로부터 구하고, 이것을 공유수(654)로 나눈 값을 실효 대역(655)에 설정한다(4) The band of each network is obtained from the
라고 하는 처리를 포함한다. 스텝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
도 62에, 소비 전력 산출(950)의 서브 루틴의 플로우를 도시한다. 우선 스텝951로 진행한다. 62 shows a flow of the subroutine of
스텝951은, 논리 하드웨어 요구 I/F(350a)의 I/O 어댑터(353)와, 가할당 CPU(851)와, 가할당 메모리(852)를 사용한 가상 서버(351)를 포함하는, 모든 할당 완료된 가상 서버에 대하여, 할당 리소스 소비 전력 계산표(700)를 계산하는 스텝이다. 구체적으로는,Step 951 includes all allocations, including the I /
(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
(3) 모든 소비 전력(704)의 합계를 계산하여 Σ(705)에 설정(3) Calculate the sum of all
이라고 하는 처리를 포함한다. 스텝952로 진행한다.It includes processing called. Proceed to step 952.
스텝952는, 할당 리소스 소비 전력 계산표(700)의 소비 전력 합계(705)를 가할당 폴리시값(853)으로 하는 스텝이다. 이에 의해, 소비 전력 산출(950)은 완료된다.Step 952 is a step of setting the
도 63에, CPU/메모리 할당 처리(880)의 서브 루틴의 플로우를 도시한다. 우선 스텝960으로 진행한다.63 shows the flow of the subroutine of the CPU /
스텝960은, 할당 후보 CPU(841)를 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 CPU 코어(313)에, 할당 후보 메모리(842)를 사용 메모리(314)에 추가하는 스텝이다. 스텝961로 진행한다.Step 960 adds the allocation candidate CPU 841 to the
스텝961은, 물리 컴포넌트 구성표(400)의 리소스 종별(410)이 CPU 코어인 엔트리로부터 CPU 코어(313)에 대응하는 엔트리를 찾고, 대응하는 컴포넌트(420)를 물리-논리 하드웨어 구성표(310)의 가상 서버(351)의 엔트리의 사용 컴포넌트(315)에 추가하고, 동일하게 리소스 종별(410)이 메모리인 엔트리로부터 메모리(314)에 대응하는 엔트리의 사용 컴포넌트(315)에 추가하는 스텝이다. 스텝962로 진행한다.Step 961 finds an entry corresponding to the
스텝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,
이상의 일련의 동작에 의해, 가상 머신 모니터(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
이상과 같이 본 제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
특히, 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
도 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,
도 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
여기서 가상 서버(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
도 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
도 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
이상과 같이 본 발명의 제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
도 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
이와 같이, 우선도가 서로 다른 복수의 논리 하드웨어 요구가 있는 경우, 우선도가 높은 논리 하드웨어 요구 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
이상과 같이, 본 발명은 복수의 프로세서나 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
도 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
도 9는 제1 실시 형태를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 일례를 도시하는 블록도.Fig. 9 is a block diagram showing the first embodiment and showing an example of the
도 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
도 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
도 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
도 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
도 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
도 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
도 16은 제1 실시 형태를 나타내고, 폴리시를 CPU-메모리 우선으로 한 멀티프로세서 시스템 상의 가상 서버1, 2의 구성을 도시하는 블록도.Fig. 16 is a block diagram showing the first embodiment and showing the configuration of
도 17은 제1 실시 형태를 나타내고, 폴리시를 I/O-메모리 우선으로 한 멀티프로세서 시스템 상의 가상 서버1, 2의 구성을 도시하는 블록도.Fig. 17 is a block diagram showing the first embodiment and showing the configuration of
도 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
도 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
도 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
도 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
도 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
도 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
도 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
도 27은 제1 변형예를 나타내고, 폴리시를 CPU-메모리 우선으로 한 경우의 멀티프로세서 시스템 상의 가상 서버1, 2의 블록도.Fig. 27 is a block diagram of the
도 28은 제1 변형예를 나타내고, 폴리시를 CPU-I/O 우선으로 한 경우의 멀티프로세서 시스템 상의 가상 서버1, 2의 블록도.Fig. 28 is a block diagram of the
도 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
도 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
도 31은 제2 변형예를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 구성을 도시하는 블록도.Fig. 31 is a block diagram showing the second modification and showing the configuration of
도 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
도 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
도 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
도 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
도 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
도 37은 제2 변형예를 나타내고, 폴리시를 신뢰성 우선으로 한 가상 서버1, 2의 컴포넌트·네트워크 할당표의 구성을 도시하는 설명도.Fig. 37 is a diagram illustrating a configuration of a component network assignment table of
도 38은 제2 변형예를 나타내고, 폴리시를 대역 우선으로 한 가상 서버1, 2의 컴포넌트·네트워크 할당표의 구성을 도시하는 설명도.FIG. 38 shows a second modification and shows an example of a configuration of a component network assignment table of
도 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
도 42는 제2 변형예를 나타내고, 폴리시를 대역 우선으로 한 가상 서버1, 2의 멀티프로세서 시스템 상의 블록도.Fig. 42 is a block diagram of a multiprocessor system of
도 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
도 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
도 45는 제2 실시 형태를 나타내고, 멀티프로세서 시스템 상의 가상 서버1의 구성을 도시하는 블록도.Fig. 45 is a block diagram showing the second embodiment and showing the configuration of
도 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
도 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
도 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
도 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
도 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
도 54는 제2 실시 형태를 나타내고, 멀티프로세서 시스템 상의 가상 서버1, 2를 도시하는 블록도.Fig. 54 is a block diagram showing the second embodiment and showing the
도 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)
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)
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)
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)
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 |
-
2008
- 2008-06-30 JP JP2008169803A patent/JP5210730B2/en not_active Expired - Fee Related
- 2008-08-12 KR KR1020080079105A patent/KR101090651B1/en not_active IP Right Cessation
- 2008-08-13 CN CN2008102106429A patent/CN101446928B/en not_active Expired - Fee Related
Patent Citations (1)
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 |