KR20140097450A - 가상 머신 관리 기록 매체, 방법 및 장치 - Google Patents
가상 머신 관리 기록 매체, 방법 및 장치Info
- Publication number
- KR20140097450A KR20140097450A KR1020147017348A KR20147017348A KR20140097450A KR 20140097450 A KR20140097450 A KR 20140097450A KR 1020147017348 A KR1020147017348 A KR 1020147017348A KR 20147017348 A KR20147017348 A KR 20147017348A KR 20140097450 A KR20140097450 A KR 20140097450A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- live migration
- virtual machine
- access
- cost
- Prior art date
Links
Images
Classifications
-
- 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]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
라이브 마이그레이션을 행할 때에 유용한 정보를 가상 머신의 통상 동작 시에 있어서도 간편하게 취득하고, 또는 효율적인 계획·실행을 할 수 있도록 한다. 가상 머신의 라이브 마이그레이션을 관리하는 프로그램이며, 상기 가상 머신에 할당된 메모리의 액세스수를 계수하는 액세스 카운터의 카운트값과, 상기 메모리의 용량과, 라이브 마이그레이션에서의 물리 머신간의 데이터 전송의 대역폭을 사용하여, 상기 가상 머신의 라이브 마이그레이션을 실행할 때의 비용을 추정하고, 또한 라이브 마이그레이션의 계획 책정 및 실행을 행한다.
Description
본 발명은, 가상 머신에 대한 관리 프로그램, 방법 및 장치에 관한 것이다.
최근들어 물리 머신(PM: Physical Machine) 상에서, 가상 머신(VM: Virtual Machine)을 가동시키기 위한 가상 머신 기술(가상화 기술)이 활용되고 있다. 이 가상 머신 기술을 이용함으로써, 1개의 물리 머신 상에 복수의 가상 머신을 가동시킬 수 있다. 그리고, 가상 머신마다 상이한 오퍼레이팅 시스템이나 어플리케이션을 동작시킬 수 있다.
서버에 가상 머신 기술을 도입함으로써, 복수의 가상화된 서버를 1개의 물리 서버에 집약할 수 있다. 이 집약은, 합리적이어서, 결과적으로 비용(cost) 삭감으로도 연결된다. 그러나, 예를 들어 각 머신의 부하 상황의 변화 등이 발생하면, 집약된 가상 머신의 1개가 다른 가상 머신에 영향을 미치는 경우가 있다. 이로 인해, 이러한 가상 머신 기술에 있어서는, 가상 머신이 제공하고 있는 서비스를 거의 정지시키지 않고 별도의 물리 머신으로 이동시키는 라이브 마이그레이션(Live Migration) 기술이 있다.
라이브 마이그레이션에 대하여, 그 개요를 설명한다. 라이브 마이그레이션에는 크게 나누어 「프리카피 방식」과 「포스트카피 방식」이 있다. 라이브 마이그레이션을 행하기 위해서는, 라이브 마이그레이션의 타깃으로 되어 있는 가상 머신의 적어도 물리 메모리의 내용 및 스토리지의 전환, 네트워크의 전환 등을 행한다. 프리카피 방식이란, 이 물리 메모리의 내용을 사전에 이동시킨 후에 CPU의 상태를 이동시키는 방식을 의미한다. 이에 반하여, 포스트카피 방식은, 물리 메모리의 내용은 이동시키지 않고, CPU의 상태 등을 이동시키는 방식을 의미한다. 이 경우, 물리 메모리의 내용이 이동처의 머신으로 이동하고 있지 않기 때문에, 이동처의 머신 가상 메모리 시스템의 어드레스 변환 테이블을 빈 상태로 해 둔다. 이렇게 해 둠으로써, 이동처 머신에 의해 CPU가 메모리를 액세스할 때에는 초기 단계에서는 물리 메모리에 원하는 데이터가 존재하지 않는다. 이로 인해, 페이지폴트가 발생하고, 이것에 대처하기 위하여 하드 디스크로부터 물리 메모리에 필요하게 되는 페이지가 채워져 간다.
또한, 양쪽 방식 모두, 하드 디스크 등의 대용량 메모리에 대해서는 공유화를 도모하기 때문에, 하드 디스크 상의 대량의 데이터의 이동은 불필요하다.
종래, 라이브 마이그레이션 요구에 대하여 라이브 마이그레이션 가부 판단을 행하여, 이 가부 판단 결과가 부정적인 경우에는 라이브 마이그레이션을 중지하는 기술이 있다(예를 들어, 특허문헌 1). 이 기술은, 안전 레벨의 속성을 각 VM에 갖게 하여, 안전 레벨이 「저」인 VM과 안전 레벨이 「고」인 VM을 동일한 컴퓨터 상에서 동작시키지 않도록 한다. 이에 의해, 안전 레벨이 「저」인 VM의 문제에 의해, 안전 레벨이 「고」인 VM의 실행이 위협받는 사태를 피한다.
또한, 마이그레이션을 실행으로 옮기기 직전의 단계에 있어서, 부하 정보에 기초하여 마이그레이션의 필요성을 판단함으로써 불필요한 마이그레이션을 중지하는 기술이 있다(예를 들어, 특허문헌 2). 또한, 특허문헌 2는 부하 정보로서, 이행원, 이행처 서버, 가상 머신의 CPU 사용률이나 메모리 사용률을 제시하는데 머문다.
또한, 가상 머신이 현재 가동하고 있는 물리 머신으로부터 다른 물리 머신으로 이동하기 위하여 필요로 하는 시간인 이동 소요 시간을 추계하는 기술이 있다(예를 들어, 특허문헌 3 및 특허문헌 4). 특허문헌 3 및 4에서는, 메모리 변경률을 사용하여, 메모리 전송 시간을 추계할 수 있는 것을 개시한다.
또한, 카메라의 프레임 메모리에 대하여 수회 기입 액세스가 있었는지 카운트하는 카운터의 값을 사용하여, 2개의 연속하는 프레임간의 화상 차이의 크기를 판정하는 기술이 있다(예를 들어, 특허문헌 5).
라이브 마이그레이션에 있어서의 메모리 전송 중에 메모리가 재기입되어 버리는 비율(즉, 다시 카피를 실행해야 할 비율)을 더티율(메모리 변경률)이라고 칭한다. 더티율은 메모리 변경량을 메모리 전송량으로 제산한 값이다. 이 더티율이 너무 높은 경우, 메모리 전송을 종료시킬 수 없는 경우도 발생한다. 이 경우에는 컨텍스트를 정지시켜, 메모리 전송을 강제적으로 종료시키는 실장도 행하여지는 경우가 있다. 이 경우에는 서비스 정지의 시간이 허용 범위를 초과해 버릴 가능성이 있다. 가상 머신의 서비스를 제공하고 있는 고객과의 사이의 서비스 레벨 어그리먼트(SLA)에 규정된, 서비스 정지 시간의 한도를 초과하는 것은 피해야 한다. 따라서, 이러한 장기적인 서비스 정지를 피하기 위하여, 타깃의 가상 머신의 라이브 마이그레이션을 중지하고, 그 대신에 다른 가상 머신에 대하여 라이브 마이그레이션을 실행하여, 부하 분산을 담보하는 것도 행하여지는 경우가 있다.
따라서, 라이브 마이그레이션을 행함으로써 컨텍스트 정지가 장기간 계속되는 상태나, 라이브 마이그레이션의 중지를 사전에 방지할 필요가 있다. 이를 위해서는, 라이브 마이그레이션을 행하기 전의 통상 동작 시에 있어서, 물리 머신에 부여하는 부하를 가능한 한 적게 하여, 메모리의 더티율을 파악해 두고, 라이브 마이그레이션 실행 시에 있어서의 메모리 전송 시간을 예측하는 것이 필요하다.
또한, 라이브 마이그레이션에 필요로 하는 메모리 전송 시간의 예측값 T는, 메모리의 용량을 M, 라이브 마이그레이션으로 사용하는 데이터 전송 대역폭(전송 스루풋)을 tp, 더티율(메모리 변경량을 메모리 전송량으로 제산한 값)을 r로 하면, 이하의 수학식에 의해 부여된다.
따라서, 통상 시에 있어서의 더티율을 얻을 수 있으면, 라이브 마이그레이션 시에 있어서의 메모리 전송 시간을 추정할 수 있다.
그러나, 일반적으로 이 더티율의 검출에는 오버헤드가 수반된다. 라이브 마이그레이션 중에 있어서의 더티율의 검출의 방법은 이하와 같다. 우선, 카피 완료 영역을 하드웨어적으로 기입 금지 영역으로서 설정한다. 그리고, 기입 금지 영역으로의 기입 요구를 소프트웨어적으로 트랩한다. 이 트랩에 의해, 소정의 루틴을 동작시켜, 특정한 영역으로의 기입을 검출하여, 기입이 있던 것을 나타내는 정보를 보존한다. 이 처리는, 기입을 트랩할 때마다 처리 루틴을 동작시키는 것이기 때문에, 오버헤드가 발생하게 된다. 따라서, 통상 동작 중에 있어서 더티율을 검출하기 위하여, 이 구조를 이용한 경우, 큰 오버헤드로 되어 버린다. 이것은, 가상 머신의 통상 처리를 압박하게 된다.
따라서, 라이브 마이그레이션을 실행하고 있지 않은 통상 동작 시에 있어서, 메모리 더티율이나 프리카피에 있어서의 메모리 전송 시간의 추정값을 간편하게 파악하는 기술이 요망되고 있다.
하나의 측면에서는, 본 발명은 라이브 마이그레이션을 행할 때에 유용한 정보를 취득하는 것을 목적으로 한다.
일 실시 형태에 의하면, 가상 머신의 라이브 마이그레이션을 관리하는 프로그램이며, 상기 가상 머신에 할당된 메모리의 액세스수를 계수하는 액세스 카운터의 카운트값과, 상기 메모리의 용량과, 라이브 마이그레이션에서의 물리 머신간의 데이터 전송의 대역폭을 사용하여, 상기 가상 머신의 라이브 마이그레이션을 실행할 때의 비용을 추정하는, 처리를 컴퓨터에 실행시키는 프로그램이 제공된다.
실시 형태에 의하면, 라이브 마이그레이션을 행할 때에 유용해지는 정보를 간편하게 취득할 수 있다.
도 1은 가상 머신의 라이브 마이그레이션의 예를 나타내는 도면이다.
도 2는 메모리의 카피 수순을 도시하는 도면이다.
도 3은 본 발명의 실시예에 관한 장치의 전체 구성을 도시하는 도면이다.
도 4는 하나의 실시예를 나타내는 도면이다.
도 5는 하나의 실시예를 나타내는 도면이다.
도 6은 하나의 실시예를 나타내는 도면이다.
도 7은 하나의 실시예를 나타내는 도면이다.
도 8은 배치 관리부의 처리 플로우를 도시하는 도면이다.
도 9는 VM 관리부에 있어서의 카운터의 처리를 도시하는 도면이다.
도 10은 라이브 마이그레이션의 계획 책정과 실행의 예를 나타내는 도면이다.
도 11은 라이브 마이그레이션의 일련의 처리의 다른 예를 나타내는 도면이다.
도 12는 하나의 실시예에 있어서의 기능 블록도이다.
도 13은 서버 및 가상 머신 관리 장치의 하드웨어 구성을 도시하는 도면이다.
도 2는 메모리의 카피 수순을 도시하는 도면이다.
도 3은 본 발명의 실시예에 관한 장치의 전체 구성을 도시하는 도면이다.
도 4는 하나의 실시예를 나타내는 도면이다.
도 5는 하나의 실시예를 나타내는 도면이다.
도 6은 하나의 실시예를 나타내는 도면이다.
도 7은 하나의 실시예를 나타내는 도면이다.
도 8은 배치 관리부의 처리 플로우를 도시하는 도면이다.
도 9는 VM 관리부에 있어서의 카운터의 처리를 도시하는 도면이다.
도 10은 라이브 마이그레이션의 계획 책정과 실행의 예를 나타내는 도면이다.
도 11은 라이브 마이그레이션의 일련의 처리의 다른 예를 나타내는 도면이다.
도 12는 하나의 실시예에 있어서의 기능 블록도이다.
도 13은 서버 및 가상 머신 관리 장치의 하드웨어 구성을 도시하는 도면이다.
이하에, 도면을 사용하여 본 발명의 실시예를 상세하게 설명한다. 또한, 이하의 실시예는 발명을 이해하기 위한 것이고, 본 발명의 범위를 한정하기 위한 것이 아닌 점에 유의해야 한다. 또한, 이하의 복수의 실시예는, 서로 배타적인 것이 아니다. 따라서, 모순이 발생하지 않는 한, 실시예의 각 요소를 조합하는 것도 의도되고 있음에 유의해야 한다. 또한, 청구항에 기재된 방법이나 프로그램에 관한 발명은, 모순이 없는 한 처리의 순서를 바꾸어도 좋고, 혹은 복수의 처리를 동시에 실시해도 좋다. 그리고, 이들 실시 형태도 청구항에 기재된 발명의 기술적 범위에 포함되는 것은 물론이다.
본 발명의 실시예에서는, 상술한 프리카피 방식을 채용하는 것을 전제로 하고 있다.
프리카피 방식의 개략을 이하에 설명한다.
도 1은 가상 머신의 라이브 마이그레이션의 예를 나타내고 있다. 물리 머신인 서버(110) 상에서, VM 관리부(115) 하에 가상 머신 B(111)가 동작하고 있다. 이 가상 머신 B(111)는 자신의 가상 메모리 공간을 관리한다. 가상 머신 B(111)가 관리하는 가상 메모리 중 서버(110)의 물리 메모리에 존재하는 물리 메모리 영역을 메모리 A(112)라고 한다. 이 상태에 있어서, 라이브 마이그레이션을 실행하여, 이 가상 머신 B(111)를 서버(120)로 이송하여, 서버(120) 상의 가상 머신 B'(121)로서 동작시키는 경우에 대하여 설명한다. 서버(120)는 VM 관리부(125)를 갖고 있다. 그리고 가상 머신 B'(121)가 관리하는 가상 메모리 공간 중 서버(120)의 물리 메모리에 카피해야 할 물리 메모리 영역을 메모리 A'(122)라고 한다.
도 2는 물리 메모리의 카피 수순을 나타내고 있다. 상술한 프리카피 방식을 채용하여, 라이브 마이그레이션을 행하기 위해서는, 우선, 가상 머신 B(111)의 관리 하에 있는 물리 메모리 A(112)의 내용을 서버(120) 상의 물리 메모리 A'(122)에 카피할 필요가 있다(이미 설명한 바와 같이, 하드 디스크에 스웹 아웃되어 있는 가상 메모리 영역은 양쪽 서버가 하드 디스크를 공유화하기 때문에 카피할 필요는 없다).
시각 t1에 있어서, 메모리 A(112)의 내용과 메모리 A'(122)의 내용은 상이하다.
시각 t2에 있어서, 메모리 A(112)의 내용의 모든 정보(222)를 메모리 A'(122)에 카피하는 동작을 개시한다. 이 카피하는 동안에도 메모리 A(112)는 내용이 재기입되고 있다.
시각 t3에 있어서, 직전의 전송 도중에 있어서 재기입된 데이터(224)를 A'(122)에 카피하는 동작을 개시한다. 이 카피하는 동안에도 메모리 A(112)는 내용이 재기입되고 있다.
시각 t4에 있어서, 직전의 전송 도중에 있어서 재기입된 데이터(226)를 A'(122)에 카피하는 동작을 개시한다. 이 카피하는 동안에도 메모리 A(112)는 내용이 재기입되고 있다.
시각 t5에 있어서, 직전의 전송 도중에 있어서 재기입된 데이터(228)를 A'(122)에 카피하는 동작을 개시한다. 이 카피하는 동안에도 메모리 A(112)는 내용이 재기입되고 있다.
이상의 처리를, 나머지 카피 견적 시간이, 예를 들어 1초 이하(혹은, 카피해야 할 나머지 데이터량이 소정량 이하)로 될 때까지 반복한다. 시각 tn에 있어서, 카피 견적 시간이 1초 이하로 된 경우에는 가상 머신 B(111)의 컨텍스트를 정지시킨다. 그리고, 나머지 카피 부분을 메모리 A(112)로부터 메모리 A'(122)에 카피함과 함께, 가상 머신 B(111)의 CPU 내의 레지스터 정보 등을 가상 머신 B'(122)에 카피한다. 또한, 스토리지의 전환, 네트워크의 전환 등을 행한다.
그 후, 가상 머신 B'(121)를 개시시킨다. 이 일련의 처리에 의해, 가상 머신 B가 서버(110)로부터 서버(120)로 라이브 마이그레이션된다.
이상과 같이, 동작하고 있는 가상 머신의 메모리는 계속하여 변경되기 때문에, 차이없이 카피하기 위해서는 복수회에 걸치는 카피 조작이 필요하다.
실시예
도 3은 본 발명의 실시예에 관한 장치의 전체 구성을 도시하고 있다. 도 3에 도시한 바와 같이 가상 머신 관리 장치(310), 서버 1, 서버 2 및 서버 3이 네트워크 NW에 의해 접속되어 있다. 이들은 모두 물리 머신이다. 서버 1에는 가상 머신 VM1, VM2 및 VM3이 동작하고 있다. 이 가상 머신은, VM 관리부 1의 관리 하에 놓여 있다. VM 관리부 1은 복수의 가상 머신의 각각 동작 상태를 파악함과 함께, 외부와의 인터페이스를 포함하는 가상적인 머신 환경을 가상 머신에 제공하고 있다. 또한, VM 관리부 1은 가상 머신 관리 장치(310)와 제휴하여, 라이브 마이그레이션의 실행을 행해도 좋다. 마찬가지로, 서버 2에 있어서는, VM 관리부 2 하에서, 가상 머신 VM4, VM5 및 VM6이 동작하고 있다. 서버 3에 있어서는, VM 관리부 3이 존재하고 있다. 도 3은 서버 1에 있어서의 가상 머신 VM1 및 VM2가, 라이브 마이그레이션에 의해 서버 3으로 이동할 준비가 이루어져 있는 것이 도시되어 있다.
가상 머신 관리 장치(310)는 서버 1, 서버 2 및 서버 3에 존재하는 가상 머신 전체의 관리를 담당한다. 그리고, 배치 관리부(312)는 복수의 가상 머신의 동작 상태, 물리 머신의 동작 상태, 오퍼레이터의 지시를 포함하는 정보에 기초하여, 가상 머신의 동적인 재배치를 계획하고, 그 계획을 라이브 마이그레이션에 의해 실행한다. 또한, 배치 관리부(312)는 라이브 마이그레이션이 행하여지고 있는 상황을 감시하여, 라이브 마이그레이션의 중지를 행해도 좋다.
또한, 도 3에 있어서의 각각의 물리 머신은, 하우징이 별개일 필요는 없다. 또한, 배치 관리부(312)는 가상 머신이 존재하는 물리 머신 상에 존재해도 좋다. 또한, 각 물리 머신이 네트워크 NW 이외의 통신 기능에 의해 정보 전송을 행해도 좋다. 혹은, 네트워크 NW와 그 밖의 통신 기능의 양자가 협동하여 정보 전송을 행해도 좋다. 정보 전송의 수단을 복수 사용하여 대역폭을 넓히면, 라이브 마이그레이션에 걸리는 시간을 단축할 수 있다.
도 4는 하나의 실시예를 나타내고 있다. 도 4의 (a)는 서버 1의 기능 블록도를 도시하고 있다. 도 4의 (b)는 서버 1의 하드웨어 블록도를 도시하고 있다. 또한, 이해를 돕기 위하여, 서버 1의 기능 블록도인 도 4의 (a)와 서버 1의 하드웨어 블록도인 도 4의 (b)를 상하로 배치하고, 또한 데이터의 흐름을 알 수 있도록 화살표를 그리고 있는 점에 유의해야 한다.
도 4의 (a)는 VM 관리부가, 가상 머신 VM1, VM2 및 VM3을 관리하고 있다. VM 관리부에는 가상 머신 VM1, VM2, VM3에 대응지어, 각각 메모리에의 액세스를 카운트하는 카운터(401, 402, 403)가 설치되어 있다. 도 4의 (b)에 있어서, 서버 1은 CPU(440), 물리 메모리(460) 및 액세스 카운터(450)를 포함해도 좋다. 액세스 카운터(450)는 하드웨어에 의해 구성되어 있는 것으로 한다.
여기서, 하드웨어란, 와이어드 로직 또는 마이크로프로그램을 포함하는 하드웨어를 의미한다.
도 4의 (b)에 있어서는, 액세스 카운터(450)가 물리 메모리(460)에 인접하여 설치되어 있지만, 액세스 카운터의 위치는 CPU 등의 다른 장소에 있어도 좋다. 그리고, VM 관리부는 타이머 인터럽트 등을 사용하여, 액세스 카운터(450)를 정기적으로 읽어내어도 좋다. VM 관리부는 액세스 카운터(450)의 값을 기초로 하여, VM1, VM2, VM3에 각각 대응하여 설치된 카운터(401, 402, 403)에, 대응하는 가상 머신의 액세스수를 할당하여 적산하여 보존한다. 이 결과, 카운터(401, 402, 403)에는 각각 VM1, VM2, VM3의 액세스수가 보존된다. 또한, 액세스 카운터(450)는 가상 머신이 전환될 때마다(컨텍스트가 스위치할 때마다) 리셋시켜도 좋다.
또한, 이 실시예에 있어서는, 액세스 카운터(450)가 1개이기 때문에, 각 메모리의 어느 위치가 재기입되었는지의 정보는 취득할 수 없다. 따라서, 라이브 마이그레이션에 있어서의 메모리 전송의 단위를 페이지로 하고, 예를 들어 가중치를 α, 1페이지의 용량을 W, 카운터(401)의 값에 기록된 단위 시간당 메모리 기입 횟수를 n, 단위 시간당 전송량(즉 스루풋)을 tp로 하면, VM1이 관리하고 있는 물리 메모리의 더티율 r은, 이하의 수학식으로 표현된다.
여기서, 가중치 α는, 동일한 페이지에 복수회 기입이 행하여지는 것을 고려한 것이다. 즉, 동일한 페이지에 대하여 복수회의 기입이 이루어져도 다시 전송하는 페이지는 그 페이지뿐이어도 좋다. 따라서, α는 1보다도 작은 가중치이다.
따라서, 상술한 수학식 1에 수학식 2를 적용하면, VM1이 관리하는 메모리의 예상 전송 시간 TVM1은, 이하의 수학식으로 표현된다.
또한, 액세스 카운터(450)가 기입과 읽어들이기의 양자의 액세스 횟수를 계수하는 액세스 카운터인 경우에는, 액세스 카운터의 전체 계수값 중 기입의 계수값의 비율을 β로 하면, VM1이 관리하는 메모리의 예상 전송 시간 TVM1은, 이하의 수학식으로 표현된다.
이 전송 시간 TVM1은, 라이브 마이그레이션 시의 메모리 전송 시간의 추정값으로 된다. 그리고, 전송 시간 TVM1은 시간적인 리소스를 소비하는 것이기 때문에, VM1의 라이브 마이그레이션에 대한 추정 비용으로 인식해도 좋다.
상술한 가중치 α는 메모리의 액세스의 흩어짐 정도에 관련한다. α 및 β는 가상 머신 동작 시에 있어서 통계적으로 측정함으로써 취득하여, 미리 정해 두어도 좋다. 또한, 가상 머신마다 별개의 값을 미리 정해 두어도 좋다. 또한, 가상 머신 상에서 동작하는 어플리케이션에 따라 미리 정해 두어도 좋다.
카운터(401, 402, 403)에는, 각각 VM1, VM2, VM3에 대응하여 메모리 액세스 횟수가 적산되어 보존된다. 단위 시간당 액세스 횟수를 산출하기 위해서는, 단위 시간의 개시 시의 카운터의 값과 단위 시간의 종료 시 카운터 값의 차를 구함으로써 산출해도 좋다. 혹은 단위 시간마다 카운터의 값을 읽어내고, 읽어낸 후에 카운터를 리셋해도 좋다. 이 카운터의 내용은, 배치 관리부(312) 등에서 이용되어도 좋다. 또한, 배치 관리부(312)의 동작에 대해서는, 도 10 및 도 11을 사용하여 후술한다.
도 5는 다른 실시예를 도시하고 있다. CPU 내에는 다양한 퍼포먼스를 측정하기 위하여, 복수의 퍼포먼스 카운터가 설치되어 있다. 물리 메모리(460)의 기입 액세스를 계수하는 퍼포먼스 카운터인 액세스 카운터(550)를 사용해도 좋다. 도 5에 있어서의 그 밖의 구성은, 도 4와 마찬가지이기 때문에 동일한 참조 부호를 부여하고 있다. 이 액세스 카운터(550)의 이용 방법은, 도 4에 도시한 액세스 카운터(450)와 동일해도 좋다. 액세스 카운터(550)는 하드웨어에 의해 구성된 카운터이기 때문에, 액세스 카운터(550)의 사용에 의한 CPU로의 부하는 매우 작다. 또한, 본 명세서에 있어서, 하드웨어란, 하드와이어드, 마이크로프로그램을 포함하는 하드웨어를 의미한다. 이로 인해, 라이브 마이그레이션이 실행되어 있지 않은 통상의 오퍼레이션 시에 있어서도, 상술한 수학식 3에 의해 메모리 전송 시간의 추정값(추정 비용)을 얻을 수 있다. 이에 대하여, 상술한 바와 같이 메모리를 기입 금지 상태로 하고, 메모리 기입의 액세스를 소프트웨어적으로 트랩하여 카운트하는 처리를, 통상의 처리에 있어서 도입하는 것은 오버헤드가 증가되어 버린다. 이 오버헤드는, 통상의 처리를 압박하게 된다. 이에 반하여, 본 실시예에 의하면, 메모리 전송의 추정값을 산출하기 위한 처리는, 통상의 처리에 거의 영향을 주지 않는다는 큰 이점이 있다.
그 외에, 이와 같이, 사전에 각 가상 머신의 라이브 마이그레이션에 필요로 하는 추정 비용을 얻음으로써, 보다 정확한 라이브 마이그레이션의 실행 계획을 책정할 수 있다. 또한, 실행 계획의 책정에 관한 구체적인 설명은, 도 10 및 도 11을 사용하여 후술한다.
도 6은 또 다른 실시예를 도시하고 있다. 또한, 도 4 및 도 5와 동일한 구성 요소에 대해서는, 동일한 참조 번호가 부여되어 있다. 복수의 액세스 카운터(650)는 복수의 가상 머신 각각에 대응하여, 하드웨어로서 설치된 메모리 액세스 카운터이다. 따라서, 예를 들어 VM1 전용 액세스 카운터가 복수의 액세스 카운터(650) 내에 존재하게 된다. 이로 인해, 본 실시예의 경우에는 VM 관리부가 각 가상 머신에 대응하는 액세스 카운터의 내용을 읽어낸다. 그리고, 그 값을 VM 관리부 내의 각 가상 머신에 대응하는 카운터에 적산해 가면 된다.
액세스 카운터(650)가 기입 액세스를 카운트하는 것이면, 수학식 3을 사용하여 메모리 전송 시간의 추정값을 산출할 수 있다. 또한, 액세스 카운터(650)가 읽어내기 및 기입 액세스를 카운트하는 것이면, 수학식 4를 사용하여 메모리 전송 시간의 추정값을 산출할 수 있다.
도 7은 물리 메모리(460)의 페이지 단위에 액세스 카운터(751, 752, 753 내지 799)가 설치된, 또 다른 실시예를 나타내고 있다. 이 액세스 카운터는, 예를 들어 가상 메모리 시스템에 있어서 메모리 액세스 관리에 사용되는 페이지마다 설치되어도 좋다. 이 페이지는, 물리 메모리(460)와 동적 기억 장치(도시하지 않음) 사이의 메모리 스와프의 전송 단위와 동일해도 좋다. 또한, 이 페이지는, 라이브 마이그레이션 시의 메모리 전송 단위와 동일해도 좋다. 복수의 액세스 카운터(751, 752, 753 내지 799)를 집약하여, 1개의 카운터로서 취급하는 경우에는 도 4에 도시한 실시예 1과 동일한 처리를 행해도 좋다. 즉, 각 메모리 영역의 액세스 카운터의 값을 각 가상 머신의 메모리 액세스수로서 총계하여, 대응하는 가상 머신의 카운터에 적산해도 좋다.
이상의 실시예에 있어서, 각 가상 머신의 메모리 액세스수는 VM 관리부가 대응하는 카운터에 축적된다. 메모리 전송 시간의 추정값은, 상술한 수학식 3 또는 수학식 4에 의해 마찬가지로 구할 수 있다.
또한, 본 실시예의 경우에는, VM1을 예로, 예를 들어 이하의 처리를 행해도 좋다.
우선, 이하의 전제 조건을 둔다.
(1) 물리 메모리(460)에는 L개의 페이지가 존재한다고 하자. VM 관리부의 각 가상 머신에 대응하는 카운터(401, 402, 403) 대신에, VM 관리부에 L개의 카운터(도시하지 않음)를 설치하고, L개의 액세스 카운터의 각각과 대응짓는다. L개의 카운터는 초기값을 제로로 한다.
그리고, 타이머 인터럽트를 사용하여 이하의 처리를 실행한다.
(A) 타이머 인터럽트로 정기적으로 L개의 액세스 카운터 각각을 읽어내고, 읽어내어진 값을 사용하여, VM 관리부가 대응하는 L개의 카운터 각각을 개별로 적산한다.
(B) 타이머 인터럽트를 사용하여, 단위 시간(예를 들어, 더티율을 계산하기 위한 단위 시간) 간격으로 VM1에 할당되어 있는 페이지에 대응하는 VM 관리부의 카운터를 읽어내어, 제로보다 큰 값을 갖는 카운터의 수를 조사한다(예를 들어 j개). 다른 가상 머신에 대해서도 마찬가지로 조사한다. VM 관리부의 L개의 카운터를 제로로 리셋한다.
이상의 처리에 있어서, 예를 들어 VM1에 있어서의, 메모리 더티율 rVM1은, 메모리 변경량을 전송량으로 제산한 값이기 때문에 1페이지의 용량을 W, 단위 시간당의 전송량(즉 스루풋)을 tp로 하여, 이하의 수학식으로부터 구해도 좋다.
이 더티율 rVM1은 데이터 취득 시각에 의해 변동할 수 있다. 이로 인해, 순차 축적하고, 예를 들어 이동 평균을 구하여 이용해도 좋다. 또한, 물리 메모리(460)에 있어서, 각 가상 머신에 할당되는 물리 메모리의 페이지수를 동적으로 변경하는 아키텍처를 채용하고 있는 경우에는 이 더티율 rVM1은 근사값인 점에 유의할 필요가 있다.
그리고, 이 더티율로부터 수학식 1을 사용하여, 메모리 전송 시간의 추정값을 산출할 수 있다.
상기한 실시예로부터, 당업자는, 그 밖의 변형예를 생각해 낼 수 있다.
이상의 실시예에 의해, VM 관리부에 구비된 카운터의 값은 가상 머신 관리 장치(310)에 존재하는 배치 관리부(312)에 보내져도 좋다. 배치 관리부(312)는 메모리 전송 시간의 추정값을 산출해도 좋다.
또한, 이상의 실시예에서는 메모리 액세스에 대한 카운터를 이용했다. 그 밖의 변형예로서는, TLB(Translation Look aside Buffer)(도시하지 않음)의 참조 횟수를 카운트하는 퍼포먼스 카운터를 이용해도 좋다. CPU가 메모리에 액세스하기 위해서는, 가상 어드레스로부터 물리 어드레스로 변환할 필요가 있다. 이로 인해, 가상 메모리 시스템에 있어서는, 가상 어드레스와 물리 어드레스를 대응짓는 어드레스 변환 테이블을 갖고 있다. TLB는, 이 어드레스 변환 테이블을 캐싱하는 것이며, 고속으로 액세스 가능하다. 따라서, CPU는, 가상 메모리 어드레스를 물리 메모리 어드레스로 변환하기 위하여, 메모리 액세스할 때마다 TLB를 참조한다. 따라서, TLB 참조 횟수는 메모리 액세스 횟수와 일치하거나, 또는 강한 상관성을 갖고 있다. 따라서, TLB의 참조 횟수를 카운트하는 카운터를 사용하는 경우에는 도 4 또는 도 5에 도시한 실시예와 마찬가지의 방법을 채용할 수 있다.
도 8은 배치 관리부(312)의 처리 플로우를 나타내고 있다.
스텝 802에 있어서, VM 관리부에 축적된 VM마다의 메모리 액세스수를 취득한다.
스텝 804에 있어서, 상술한 수학식 1, 3 또는 4에 의해, 가상 머신의 메모리 전송 시간의 추정값을 산출한다. 이 메모리 전송 시간의 추정값을 마이그레이션의 추정 비용이라고 칭해도 좋다.
스텝 820에 있어서, 그 추정 비용을 표시 장치에 출력해도 좋다. 또한, 표시는, 임의의 스텝에 있어서 이루어져도 좋다.
스텝 806에 있어서, 추정 비용을 소정의 임계값과 비교해도 좋다. 이 판단이 「예」이면, 스텝 808로 진행된다. 「아니오」이면, 스텝 802로 되돌아간다.
스텝 808에 있어서, 임계값을 초과한 추정 비용을 갖는 가상 머신은, 라이브 마이그레이션의 대상으로부터 제외해도 좋다. 후의 배치 계획의 책정을 위하여, 제외해야 할 가상 머신의 리스트를 메모리에 축적해도 좋다. 혹은, 그 가상 머신의 라이브 마이그레이션이 실행 중이면, 라이브 마이그레이션을 중지해도 좋다.
스텝 810에 있어서, 모든 가상 머신에 있어서, 처리가 남아 있는지 체크된다. 판단 결과가, 「아니오」이면, 모든 가상 머신에 있어서의 처리가 종료되게 된다. 판단 결과가, 「예」이면, 스텝 802로 되돌아가, 다음 가상 머신에 대한 처리를 실행한다. 또한, 표시 출력 스텝 820에 있어서는, 라이브 마이그레이션의 대상 밖으로 된 가상 머신의 리스트나, 메모리 더티율 등의 다양한 정보를 표시하도록 해도 좋다.
도 8의 처리는 타이머 인터럽트로 실행해도 좋다. 혹은, 오퍼레이터의 지시에 의해 실행해도 좋다.
도 9는 VM 관리부에 있어서의 카운터의 처리 일례를 나타내고 있다. 이 처리는 타이머 인터럽트를 이용하여 실행해도 좋다.
스텝 902는 타이머 트리거를 계기로 하여, 인터럽트가 발생하여 이 처리로 이행한 것을 나타내고 있다.
스텝 904에 있어서, 메모리 액세스 카운터를 읽어낸다. 상술한 바와 같이, 메모리 액세스 카운터는, 물리 머신의 아키텍처에 의해 다양한 형태가 존재한다.
스텝 906에 있어서, 메모리 액세스 카운터를 읽어낸 시각에 있어서 동작하고 있는 가상 머신이 특정된다. 이 특정은, VM 관리부 자신이 인식하고 있는 것이다.
스텝 908에 있어서, 대응하는 가상 머신의 카운터에 읽어내기값을 계상한다. 액세스 카운터의 읽어내기 간격은, 타이머 인터럽트의 간격을 설정함으로써 변경 가능하다. 이 타이머 인터럽트의 간격은 가상 머신이 전환되는 간격보다도 짧은 것이 바람직하다. 이와 같이 함으로써, 어떤 가상 머신이 동작하고 있는 동안에, 얼마만큼 액세스 카운터의 값이 증가하는지를 알 수 있다. 이 증가된 값을 VM 관리부가 대응하는 카운터에 적산해도 좋다. 액세스 카운터가 리셋할 수 있게 되어 있는 경우에는 가상 머신이 전환되었을 때에 리셋해도 좋다. 혹은, 액세스 카운터에 값을 세트할 수 있는 경우에는 가상 머신이 전환되었을 때에 VM 관리부의 카운터의 값을 세트하고, 다른 가상 머신으로 전환될 때까지 액세스 카운터를 카운트 업시켜도 좋다. 그리고, 액세스 카운터의 카운트 업한 결과를 VM 관리부의 카운터에 덮어쓰기해도 좋다. 또한, 가상 머신이 전환되었을 때에 이 처리를 실행해도 좋다.
이상의 처리에서, 타이머 인터럽트를 종료시켜, 인터럽트 전의 처리로 리턴해도 좋다.
도 10은 배치 관리부(312)가 행하는, 라이브 마이그레이션의 계획 책정과 실행의 예를 나타내고 있다.
스텝 1002에 있어서, 라이브 마이그레이션의 필요성이 판단된다. 판단하는 요소로서는, 오퍼레이터의 지시, 특정한 물리 머신에 의한 가동률의 상승, 예정되어 있는 가동률의 상승, 물리 머신의 보수, VM 관리부의 버전 업, 에너지 절약 등을 목적으로 한 가상 머신의 물리 머신으로의 집약, 가동률 등에 관한 특정한 물리 머신과의 상관성 등을 들 수 있다. 판단 결과가 「아니오」이면 처리는 종료된다. 판단 결과가 「예」이면, 스텝 1004로 이행된다. 이하의 처리에 있어서는, 도 3과 도 12도 함께 참조하길 바란다.
스텝 1004에 있어서, 배치 관리부(312(1210)) 내의 배치 계획부(1212)에 의해 배치 계획의 책정이 행하여진다. 배치 계획의 일례로서는, 추정 비용(메모리 전송 시간의 추정값)이 작은 순으로 가상 머신을 재배열한다. 그리고, 이 순서의 선두의 가상 머신부터 순서대로 라이브 마이그레이션을 실행하도록 배치 계획을 세운다. 이동처의 물리 머신은, 물리 머신 가동률이 가장 작은 머신을 선정해도 좋고, 또는 미리 정해져 있어도 좋다. 혹은, 오퍼레이터의 지정을 고려해도 좋다.
스텝 1006에 있어서, 책정된 배치 계획에 기초하여, 라이브 마이그레이션을 실행한다. 도 8과 함께 설명한 바와 같이, 라이브 마이그레이션의 실행 중에 있어서, 추정 비용이 임계값을 초과하는 경우에는 라이브 마이그레이션을 중지해도 좋다.
도 11은 라이브 마이그레이션의 일련의 처리의 다른 예를 나타내고 있다.
스텝 1102는 라이브 마이그레이션의 요구 발생을 나타내고 있다. 이 처리가 개시된 것을 나타내고 있다.
스텝 1104에 있어서, 가상 메모리마다의 카운터 읽어내기값으로부터 액세스 빈도를 산출한다.
스텝 1106에 있어서, 가상 메모리마다의 액세스 빈도로부터 더티율을 산출한다.
스텝 1108에 있어서, 적어도 메모리량과, 더티율과, 전송 대역폭으로부터 메모리 전송 시간의 추정값, 즉 라이브 마이그레이션의 추정 비용을 산출한다.
스텝 1110에 있어서, 가상 머신마다의 라이브 마이그레이션 추정 비용을 오름차순으로 소트한다.
스텝 1112에 있어서, 라이브 마이그레이션 추정 비용이 낮은 것을 일단 이동 대상으로 설정한다. 다른 비용(예를 들어, 다른 가상 머신과의 상관 관계, 안정적 동작을 하는 것의 중요도, 장래에 있어서의 비용 변동 요인 등)을 검토한다.
스텝 1114에 있어서, 상기 스텝 1112에 있어서 검토한 결과의 비용과 베네피트가 적절한 것부터 라이브 마이그레이션을 실행하도록 배치 계획을 세운다. 또한, 적절한 것을 선택하기 위하여, 스텝 1112에 있어서의 다양한 검토 요인을 고려한 평가 함수를 미리 정하여, 그 평가 함수의 출력 결과에 기초하여, 최적의 라이브 마이그레이션의 순서를 포함하는 배치 계획을 책정해도 좋다.
스텝 1116에 있어서, 배치 계획에 기초하여 라이브 마이그레이션을 순차 실행한다.
스텝 1118에 있어서는, 도 8의 설명에 있어서 이미 설명한 바와 같이 라이브 마이그레이션을 실행 중이라도 비용이 큰 경우에는 라이브 마이그레이션을 중지해도 좋다.
이상의 처리에 의해, 라이브 마이그레이션이 실행된다. 또한, 상술한 각 스텝은 모순이 발생하지 않는 범위에서 순서를 교체하여 실행해도 좋고, 또한 동시에 실행해도 좋다.
도 12는 하나의 실시예에 있어서의 기능 블록도를 도시하고 있다.
액세스 카운터(1202)는 메모리에 대한 액세스 카운터이다.
카운터 축적부(1204)는 액세스 카운터(1202)의 내용을, 예를 들어 가상 메모리마다 적산하여 축적하는 카운터의 집합이다.
비용 추정부(1206)는 카운터 축적부의 값, 전송 대역폭, 가상 머신의 물리 메모리 용량 등으로부터 메모리 전송 시간의 추정값을 산출하고, 이것을 라이브 마이그레이션의 비용으로서 추정하는 것이다. 이 비용 추정부(1206)는 이하에 설명하는 배치 관리부(1220)의 일부이어도 좋다.
표시부(1208)는 각 가상 머신의 추정 비용, 더티율, 배치 계획, 라이브 마이그레이션의 진척 내용 등을 표시해도 좋다.
배치 관리부(1220)는 배치 제어부(1210), 배치 계획부(1212), 마이그레이션 실행부(1214)를 포함한다. 상술한 바와 같이, 비용 추정부(1206)가 이것에 포함되어도 좋다.
배치 계획부(1212)는 라이브 마이그레이션 추정 비용이 작은 것을 일단 이동 대상으로 설정해도 좋다. 다른 비용(예를 들어, 다른 가상 머신과의 상관 관계, 안정적 동작을 하는 것의 중요도, 장래에 있어서의 비용 변동 요인 등)을 검토해도 좋다. 그리고, 전체적인 비용과 베네피트가 적절한 것부터 라이브 마이그레이션을 실행하도록 배치 계획을 세워도 좋다. 또한, 적절한 것을 선택하기 위하여, 다양한 검토 요인을 고려한 평가 함수를 미리 정하고, 그 평가 함수의 출력 결과에 기초하여, 최적의 라이브 마이그레이션의 순서를 포함하는 배치 계획을 책정해도 좋다.
마이그레이션 실행부(1214)는 배치 계획에 기초하여, 마이그레이션을 실행한다.
배치 제어부(1210)는 마이그레이션에 관한 전체적인 관리를 담당한다. 예를 들어, 라이브 마이그레이션을 실행 중이라도 비용이 큰 경우에는 라이브 마이그레이션을 중지시켜도 좋다.
도 13은 물리 머신인 서버 및 가상 머신 관리 장치(310)의 하드웨어 구성을 도시하고 있다.
물리 머신은 CPU(1302), ROM(1304), 드라이브 장치(1306), RAM(1310), 네트워크 컨트롤러(1312), HDD(1314)를 포함해도 좋다. 이들은 버스(1316)로 접속되어 있다.
CPU에는 퍼포먼스 카운터(1303)가 포함되어도 좋다. 또한 드라이브 장치는, 프로그램 등이 저장된 기억 매체(1308)를 읽고 쓰는 것이 가능하다. 기억 매체(1308)로부터 읽어들인 프로그램은 CPU가 실행할 수 있다.
또한, 본 실시 형태의 프로그램은, 기억 매체(1308)에 저장할 수 있다. 기억 매체(1308)란, 구조(structure)를 갖는 1개 이상의 비일시적(non-transitory) 인 유형(tangible)의 기억 매체를 의미한다. 예시로서, 가반 기록 매체(1440)로서는, 자기 기록 매체, 광 디스크, 광자기 기록 매체, 불휘발성 메모리 등이 있다. 자기 기록 매체에는 HDD, 플렉시블 디스크(FD), 자기 테이프(MT) 등이 있다. 광 디스크에는 DVD(Digital Versatile Disc), DVD-RAM, CD-ROM(Compact Disc-Read Only Memory), CD-R(Recordable)/RW(ReWritable) 등이 있다. 또한, 광자기 기록 매체에는, MO(Magneto-Optical disk) 등이 있다.
1202 액세스 카운터
1204 카운터 축적부
1206 비용 추정부
1208 표시부
1210 배치 제어부
1212 배치 계획부
1214 마이그레이션 실행부
1220 배치 관리부
1204 카운터 축적부
1206 비용 추정부
1208 표시부
1210 배치 제어부
1212 배치 계획부
1214 마이그레이션 실행부
1220 배치 관리부
Claims (27)
- 가상 머신의 라이브 마이그레이션을 관리하는 프로그램으로서,
상기 가상 머신에 할당된 메모리의 액세스수를 계수하는 액세스 카운터의 카운트값과, 상기 메모리의 용량과, 라이브 마이그레이션에서의 물리 머신간의 데이터 전송의 대역폭을 사용하여, 상기 가상 머신의 라이브 마이그레이션을 실행할 때의 비용(cost)을 추정하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는, 프로그램. - 제1항에 있어서, 상기 비용은 메모리 전송 시간인 것을 특징으로 하는, 프로그램.
- 제1항 또는 제2항에 있어서, 추정된 상기 비용을 소정의 임계값과 비교한 결과에 기초하여, 상기 가상 머신을 라이브 마이그레이션의 실행 대상으로부터 제외하고, 또는 상기 가상 머신의 라이브 마이그레이션의 실행 중에 있어서는 라이브 마이그레이션의 실행을 중지하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는, 프로그램.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 추정된 상기 비용에 기초하여, 복수의 가상 머신의 라이브 마이그레이션의 실행 계획을 책정하고,
상기 배치 계획에 기초하여, 라이브 마이그레이션을 행하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는, 프로그램. - 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 액세스 카운터는 메모리로의 기입 횟수를 계수하는 것인 것을 특징으로 하는, 프로그램.
- 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 축적하는 처리는 복수의 가상 머신 각각에 대응지어 상기 액세스 카운터의 값을 적산하는 처리를 더 포함하는 것을 특징으로 하는, 프로그램.
- 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 액세스 카운터는 복수의 가상 머신 각각에 대응지어진 복수의 액세스 카운터를 포함하는 것을 특징으로 하는, 프로그램.
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 액세스 카운터는, 상기 메모리에 포함되는 복수의 메모리 영역 각각에 대응지어진 복수의 액세스 카운터를 포함하고,
상기 축적하는 처리는, 상기 복수의 액세스 카운터의 값을 상기 복수의 메모리 영역 각각에 대응지어 적산하는 처리를 더 포함하는 것을 특징으로 하는, 프로그램. - 제1항 내지 제8항 중 어느 한 항에 있어서, 추정된 상기 비용은, 상기 가상 머신의 마이그레이션에 있어서, 상기 메모리의 내용을 물리 머신간에서 전송하는데 필요로 하는 추정 시간을 나타내는 것을 특징으로 하는, 프로그램.
- 가상 머신의 라이브 마이그레이션을 관리하는 방법으로서,
상기 가상 머신에 할당된 메모리의 액세스수를 계수하는 액세스 카운터의 카운트값과, 상기 메모리의 용량과, 라이브 마이그레이션에서의 물리 머신간의 데이터 전송의 대역폭을 사용하여, 상기 가상 머신의 라이브 마이그레이션을 실행할 때의 비용을 추정하는 처리를 갖는 것을 특징으로 하는, 방법. - 제10항에 있어서, 상기 비용은 메모리 전송 시간인 것을 특징으로 하는, 방법.
- 제10항 또는 제11항에 있어서, 추정된 상기 비용을 소정의 임계값과 비교한 결과에 기초하여, 상기 가상 머신을 라이브 마이그레이션의 실행 대상으로부터 제외하고, 또는 상기 가상 머신의 라이브 마이그레이션의 실행 중에 있어서는 라이브 마이그레이션의 실행을 중지하는 처리를 갖는 것을 특징으로 하는, 방법.
- 제10항 내지 제12항 중 어느 한 항에 있어서, 추정된 상기 비용에 기초하여, 복수의 가상 머신의 라이브 마이그레이션의 실행 계획을 책정하고,
상기 배치 계획에 기초하여, 라이브 마이그레이션을 행하는 처리를 갖는 것을 특징으로 하는, 제어 장치. - 제10항 내지 제13항 중 어느 한 항에 있어서, 상기 액세스 카운터는, 메모리로의 기입 횟수를 계수하는 것인 것을 특징으로 하는, 방법.
- 제10항 내지 제14항 중 어느 한 항에 있어서, 상기 축적하는 처리는, 복수의 가상 머신 각각에 대응지어 상기 액세스 카운터의 값을 적산하는 처리를 더 포함하는 것을 특징으로 하는, 방법.
- 제10항 내지 제15항 중 어느 한 항에 있어서, 상기 액세스 카운터는, 복수의 가상 머신 각각에 대응지어진 복수의 액세스 카운터를 포함하는 것을 특징으로 하는, 방법.
- 제10항 내지 제16항 중 어느 한 항에 있어서, 상기 액세스 카운터는, 상기 메모리에 포함되는 복수의 메모리 영역 각각에 대응지어진 복수의 액세스 카운터를 포함하고,
상기 축적하는 처리는, 상기 복수의 액세스 카운터의 값을, 상기 복수의 메모리 영역 각각에 대응지어 적산하는 처리를 더 포함하는 것을 특징으로 하는, 방법. - 제10항 내지 제17항 중 어느 한 항에 있어서, 추정된 상기 비용은, 상기 가상 머신의 마이그레이션에 있어서, 상기 메모리의 내용을 물리 머신간에서 전송하는데 필요로 하는 추정 시간을 나타내는 것을 특징으로 하는, 방법.
- 가상 머신의 라이브 마이그레이션을 관리하는 장치로서,
상기 가상 머신에 할당된 메모리의 액세스수를 계수하는 액세스 카운터의 카운트값과, 상기 메모리의 용량과, 라이브 마이그레이션에서의 물리 머신간의 데이터 전송의 대역폭을 사용하여, 상기 가상 머신의 라이브 마이그레이션을 실행할 때의 비용을 추정하는 비용 추정부를 갖는 것을 특징으로 하는, 장치. - 제19항에 있어서, 상기 비용은, 메모리 전송 시간인 것을 특징으로 하는, 장치.
- 제19항 또는 제20항에 있어서, 추정된 상기 비용을 소정의 임계값과 비교한 결과에 기초하여, 상기 가상 머신을 라이브 마이그레이션의 실행 대상으로부터 제외하고, 또는 상기 가상 머신의 라이브 마이그레이션의 실행 중에 있어서는 라이브 마이그레이션의 실행을 중지하는 배치 제어부를 갖는 것을 특징으로 하는, 장치.
- 제19항 내지 제21항 중 어느 한 항에 있어서, 추정된 상기 비용에 기초하여, 복수의 가상 머신의 라이브 마이그레이션의 실행 계획을 책정하는 배치 계획부와,
상기 배치 계획에 기초하여, 라이브 마이그레이션을 행하는 마이그레이션 실행부를 갖는 것을 특징으로 하는, 장치. - 제19항 내지 제22항 중 어느 한 항에 있어서, 상기 액세스 카운터는 메모리로의 기입 횟수를 계수하는 것인 것을 특징으로 하는, 장치.
- 제19항 내지 제23항 중 어느 한 항에 있어서, 상기 축적부는 복수의 가상 머신 각각에 대응지어 상기 액세스 카운터의 값을 적산하는 것을 특징으로 하는, 장치.
- 제19항 내지 제24항 중 어느 한 항에 있어서, 상기 액세스 카운터는, 복수의 가상 머신 각각에 대응지어진 복수의 액세스 카운터를 포함하는 것을 특징으로 하는, 장치.
- 제19항 내지 제25항 중 어느 한 항에 있어서, 상기 액세스 카운터는, 상기 메모리에 포함되는 복수의 메모리 영역 각각에 대응지어진 복수의 액세스 카운터를 포함하고,
상기 축적부는 상기 복수의 액세스 카운터의 값을, 상기 복수의 메모리 영역 각각에 대응지어 적산하는 것을 특징으로 하는, 장치. - 제19항 내지 제26항 중 어느 한 항에 있어서, 추정된 상기 비용은, 상기 가상 머신의 마이그레이션에 있어서, 상기 메모리의 내용을 물리 머신간에서 전송하는데 필요로 하는 추정 시간을 나타내는 것을 특징으로 하는, 장치.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/050273 WO2013105217A1 (ja) | 2012-01-10 | 2012-01-10 | 仮想マシン管理プログラム、方法、及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140097450A true KR20140097450A (ko) | 2014-08-06 |
KR101586598B1 KR101586598B1 (ko) | 2016-01-18 |
Family
ID=48781195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147017348A KR101586598B1 (ko) | 2012-01-10 | 2012-01-10 | 가상 머신 관리 기록 매체, 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9262227B2 (ko) |
EP (1) | EP2804100B1 (ko) |
JP (1) | JP5817844B2 (ko) |
KR (1) | KR101586598B1 (ko) |
CN (1) | CN104011683B (ko) |
WO (1) | WO2013105217A1 (ko) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9027024B2 (en) * | 2012-05-09 | 2015-05-05 | Rackspace Us, Inc. | Market-based virtual machine allocation |
US9081599B2 (en) * | 2013-05-28 | 2015-07-14 | Red Hat Israel, Ltd. | Adjusting transfer rate of virtual machine state in virtual machine migration |
JP6217302B2 (ja) * | 2013-10-15 | 2017-10-25 | 富士通株式会社 | ストレージ管理装置、情報処理システムおよびストレージ管理プログラム |
US9720728B2 (en) | 2013-12-06 | 2017-08-01 | Huawei Technologies Co., Ltd. | Migrating a VM when the available migration duration times of a source and destination node are greater than the VM's migration duration time |
CN103685256B (zh) * | 2013-12-06 | 2017-08-04 | 华为技术有限公司 | 一种虚拟机迁移管理方法、装置及系统 |
JP6372074B2 (ja) | 2013-12-17 | 2018-08-15 | 富士通株式会社 | 情報処理システム,制御プログラム及び制御方法 |
US9436751B1 (en) * | 2013-12-18 | 2016-09-06 | Google Inc. | System and method for live migration of guest |
US9767276B1 (en) | 2014-08-26 | 2017-09-19 | Amazon Technologies, Inc. | Scanning kernel data structure characteristics |
US9507621B1 (en) | 2014-08-26 | 2016-11-29 | Amazon Technologies, Inc. | Signature-based detection of kernel data structure modification |
US9530007B1 (en) * | 2014-08-26 | 2016-12-27 | Amazon Technologies, Inc. | Identifying tamper-resistant characteristics for kernel data structures |
US9575793B1 (en) | 2014-08-26 | 2017-02-21 | Amazon Technologies, Inc. | Identifying kernel data structures |
US9594649B2 (en) | 2014-10-13 | 2017-03-14 | At&T Intellectual Property I, L.P. | Network virtualization policy management system |
US10067800B2 (en) * | 2014-11-06 | 2018-09-04 | Vmware, Inc. | Peripheral device sharing across virtual machines running on different host computing systems |
US9612765B2 (en) * | 2014-11-19 | 2017-04-04 | International Business Machines Corporation | Context aware dynamic composition of migration plans to cloud |
JP2016184252A (ja) * | 2015-03-26 | 2016-10-20 | 日本電気株式会社 | ライブマイグレーション管理方法および装置 |
JP6319770B2 (ja) * | 2015-07-27 | 2018-05-09 | 日本電信電話株式会社 | コンテナのマイグレーションシステム及び方法 |
US20180246751A1 (en) * | 2015-09-25 | 2018-08-30 | Intel Corporation | Techniques to select virtual machines for migration |
US10853111B1 (en) * | 2015-09-30 | 2020-12-01 | Amazon Technologies, Inc. | Virtual machine instance migration feedback |
US9336042B1 (en) * | 2015-11-19 | 2016-05-10 | International Business Machines Corporation | Performing virtual machine live migration within a threshold time by adding available network path in multipath network |
DE112015007188T5 (de) * | 2015-12-18 | 2018-09-13 | Intel Corporation | Batch-Migration virtueller Maschinen während des aktiven Bertriebs |
JP2017146791A (ja) * | 2016-02-17 | 2017-08-24 | 日本電信電話株式会社 | クラスタ内マイグレーション管理システム、クラスタ内マイグレーション管理方法、管理サーバ及びプログラム |
US10334044B1 (en) * | 2016-03-30 | 2019-06-25 | EMC IP Holding Company LLC | Multi-cloud data migration in platform as a service (PAAS) environment |
US11487566B2 (en) * | 2016-06-28 | 2022-11-01 | Vmware, Inc. | Cross-cloud provider virtual machine migration |
EP3506099A4 (en) * | 2016-08-25 | 2019-09-04 | Fujitsu Limited | MAINTENANCE MANAGEMENT PROGRAM, MAINTENANCE MANAGEMENT METHOD, AND MAINTENANCE MANAGEMENT DEVICE |
CN107870916A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 存储管理方法及设备 |
US10740466B1 (en) | 2016-09-29 | 2020-08-11 | Amazon Technologies, Inc. | Securing interfaces of a compute node |
US10671426B2 (en) | 2016-11-28 | 2020-06-02 | Arm Limited | Data processing |
US10423446B2 (en) | 2016-11-28 | 2019-09-24 | Arm Limited | Data processing |
US10552212B2 (en) * | 2016-11-28 | 2020-02-04 | Arm Limited | Data processing |
JP6882662B2 (ja) * | 2016-11-29 | 2021-06-02 | 富士通株式会社 | マイグレーションプログラム、情報処理装置およびマイグレーション方法 |
US10404674B1 (en) | 2017-02-28 | 2019-09-03 | Amazon Technologies, Inc. | Efficient memory management in multi-tenant virtualized environment |
US10474359B1 (en) | 2017-02-28 | 2019-11-12 | Amazon Technologies, Inc. | Write minimization for de-allocated memory |
US10901627B1 (en) * | 2017-02-28 | 2021-01-26 | Amazon Technologies, Inc. | Tracking persistent memory usage |
US10496429B2 (en) | 2017-07-20 | 2019-12-03 | Vmware, Inc. | Managing virtual computing instances and physical servers |
JP7197783B2 (ja) * | 2019-01-11 | 2022-12-28 | 富士通株式会社 | 情報処理システム、管理装置および管理プログラム |
CN110688064A (zh) * | 2019-09-05 | 2020-01-14 | 浪潮电子信息产业股份有限公司 | 一种虚拟磁盘迁移方法、装置、设备及可读存储介质 |
US11409619B2 (en) | 2020-04-29 | 2022-08-09 | The Research Foundation For The State University Of New York | Recovering a virtual machine after failure of post-copy live migration |
CN115543530A (zh) * | 2021-06-30 | 2022-12-30 | 华为技术有限公司 | 一种虚拟机迁移方法以及相关装置 |
JP2023023474A (ja) | 2021-08-05 | 2023-02-16 | キオクシア株式会社 | メモリシステム |
US20230359533A1 (en) * | 2022-05-05 | 2023-11-09 | Google Llc | User Triggered Virtual Machine Cloning for Recovery/Availability/Scaling |
US20240028387A1 (en) * | 2022-07-22 | 2024-01-25 | Dell Products L.P. | Device health driven migration of applications and its dependencies |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006243940A (ja) | 2005-03-01 | 2006-09-14 | Oki Electric Ind Co Ltd | カメラデータ転送装置 |
JP2010233020A (ja) | 2009-03-27 | 2010-10-14 | Kddi Corp | 情報提供システム |
JP2010238044A (ja) | 2009-03-31 | 2010-10-21 | Nec Corp | 仮想マシン管理システム、仮想マシン管理方法および仮想マシン管理プログラム |
JP2011108014A (ja) | 2009-11-18 | 2011-06-02 | Nec Corp | 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム |
JP2011138184A (ja) | 2009-12-25 | 2011-07-14 | Fujitsu Ltd | 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム |
JP2011210151A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Solutions Ltd | サーバ装置、及び情報処理システムの制御方法、並びにプログラム |
JP2011221945A (ja) * | 2010-04-14 | 2011-11-04 | Hitachi Ltd | データ転送装置、計算機システム及びメモリコピー装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8150904B2 (en) * | 2007-02-28 | 2012-04-03 | Sap Ag | Distribution of data and task instances in grid environments |
CN100571281C (zh) * | 2007-06-29 | 2009-12-16 | 清华大学 | 海量数据分级存储方法 |
JP4990322B2 (ja) * | 2009-05-13 | 2012-08-01 | 株式会社日立製作所 | データ移動管理装置及び情報処理システム |
CN101609419B (zh) * | 2009-06-29 | 2012-05-30 | 北京航空航天大学 | 虚拟机持续在线迁移的数据备份方法及装置 |
CN102136993B (zh) * | 2010-07-29 | 2016-12-21 | 华为技术有限公司 | 一种数据迁移的方法、装置和系统 |
US8478961B2 (en) * | 2011-03-02 | 2013-07-02 | International Business Machines Corporation | Dynamic migration of virtual machines based on workload cache demand profiling |
US9063762B2 (en) * | 2011-08-26 | 2015-06-23 | Vmware, Inc. | Methods, apparatus, and articles of manufacture to virtualize performance counters |
-
2012
- 2012-01-10 WO PCT/JP2012/050273 patent/WO2013105217A1/ja active Application Filing
- 2012-01-10 EP EP12865275.7A patent/EP2804100B1/en active Active
- 2012-01-10 CN CN201280064275.0A patent/CN104011683B/zh active Active
- 2012-01-10 JP JP2013553125A patent/JP5817844B2/ja active Active
- 2012-01-10 KR KR1020147017348A patent/KR101586598B1/ko active IP Right Grant
-
2014
- 2014-06-16 US US14/305,050 patent/US9262227B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006243940A (ja) | 2005-03-01 | 2006-09-14 | Oki Electric Ind Co Ltd | カメラデータ転送装置 |
JP2010233020A (ja) | 2009-03-27 | 2010-10-14 | Kddi Corp | 情報提供システム |
JP2010238044A (ja) | 2009-03-31 | 2010-10-21 | Nec Corp | 仮想マシン管理システム、仮想マシン管理方法および仮想マシン管理プログラム |
JP2011108014A (ja) | 2009-11-18 | 2011-06-02 | Nec Corp | 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム |
JP2011138184A (ja) | 2009-12-25 | 2011-07-14 | Fujitsu Ltd | 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム |
JP2011210151A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Solutions Ltd | サーバ装置、及び情報処理システムの制御方法、並びにプログラム |
JP2011221945A (ja) * | 2010-04-14 | 2011-11-04 | Hitachi Ltd | データ転送装置、計算機システム及びメモリコピー装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140298338A1 (en) | 2014-10-02 |
JP5817844B2 (ja) | 2015-11-18 |
WO2013105217A1 (ja) | 2013-07-18 |
CN104011683B (zh) | 2017-07-07 |
JPWO2013105217A1 (ja) | 2015-05-11 |
EP2804100B1 (en) | 2020-04-29 |
CN104011683A (zh) | 2014-08-27 |
KR101586598B1 (ko) | 2016-01-18 |
EP2804100A4 (en) | 2016-06-08 |
US9262227B2 (en) | 2016-02-16 |
EP2804100A1 (en) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101586598B1 (ko) | 가상 머신 관리 기록 매체, 방법 및 장치 | |
US8769534B2 (en) | Measuring CPU utilization in a cloud computing infrastructure by artificially executing a bursting application on a virtual machine | |
US9256469B2 (en) | System and method for improving memory usage in virtual machines | |
US20140359356A1 (en) | Information processing apparatus and method for shutting down virtual machines | |
US9336055B2 (en) | Apparatus and method for predicting processing performance | |
US8145455B2 (en) | Predicting resource usage of an application in a virtual environment | |
JP6075226B2 (ja) | プログラム、仮想マシン管理方法および情報処理装置 | |
US9759752B2 (en) | Power consumption amount estimating apparatus and power consumption amount estimating method | |
CN106293881B (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
JP6149595B2 (ja) | キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法 | |
JP2008217332A (ja) | 仮想マシン管理システム、その方法及びそのプログラム | |
US9720600B2 (en) | Apparatus and method for transferring data between storages having different access speeds | |
US20200104065A1 (en) | Storage capacity usage management | |
JP4894745B2 (ja) | 仮想マシン移動制御方式 | |
JP2010009160A (ja) | 性能値算出装置 | |
JP4905120B2 (ja) | 負荷集約プログラム、該プログラムを記録した記録媒体、負荷集約装置および負荷集約方法 | |
Scolari et al. | A software cache partitioning system for hash-based caches | |
US9910709B2 (en) | Allocation control method and apparatus | |
US20110191094A1 (en) | System and method to evaluate and size relative system performance | |
Wang et al. | Dynamic memory balancing for virtualization | |
JP6135392B2 (ja) | キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法 | |
KR101109009B1 (ko) | 비정규 리덕션의 병렬화 방법 | |
Hermenier et al. | Hotspot Mitigations for the Masses | |
JP6213309B2 (ja) | 情報処理装置、情報処理装置の性能情報採取プログラム及び情報処理装置の性能情報採取方法 | |
JP2014157476A (ja) | 計測装置及び計測方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20191217 Year of fee payment: 5 |