KR20220035933A - 크로스 프레임 실시간 업데이트들의 성능 향상 - Google Patents

크로스 프레임 실시간 업데이트들의 성능 향상 Download PDF

Info

Publication number
KR20220035933A
KR20220035933A KR1020227005253A KR20227005253A KR20220035933A KR 20220035933 A KR20220035933 A KR 20220035933A KR 1020227005253 A KR1020227005253 A KR 1020227005253A KR 20227005253 A KR20227005253 A KR 20227005253A KR 20220035933 A KR20220035933 A KR 20220035933A
Authority
KR
South Korea
Prior art keywords
migration
computer
server
pages
hypervisor
Prior art date
Application number
KR1020227005253A
Other languages
English (en)
Inventor
체탄 가온카르
산치타 신하
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20220035933A publication Critical patent/KR20220035933A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

크로스 프레임 실시간 업데이트들의 성능 향상(INCREASING THE PERFORMANCE OF CROSS THE FRAME LIVE UPDATES)
실시간 업데이트들을 수행하는 방법의 구현들이 제공된다. 상기 방법은 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형(a migration type)을 결정하는 단계, 및 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계를 포함한다. 상기 방법은 또한, 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계(maintaining), 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계(tracking), 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션(a back-migration)을 수행하는 단계를 포함한다. 또한 실시간 업데이트들을 수행하기 위한 시스템 및 컴퓨터 프로그램 제품의 구현들도 제공된다.

Description

크로스 프레임 실시간 업데이트들의 성능 향상
[0001] 본 발명은 데이터 마이그레이션에 관한 것이고, 더 구체적으로는 크로스 프레임 실시간 업데이트들(cross the frame live updates)의 효율성을 높이기 위한 것에 관한 것이다.
[0002] 기술로서의 가상화는 하드웨어 플랫폼과 운영 체제 및 애플리케이션 실행 사이에 하나의 계층을 끼워 넣는 것을 목표로 한다. 비즈니스 연속성과 재해 복구의 관점에서 가상화는 환경 이동성의 고유한 이점을 제공한다. 구체적으로, 서로 다른 다수의 애플리케이션들로 구성된 전체 환경을 이동하는 것이 가상 이미지를 하나의 지원 하드웨어 플랫폼에서 다른 플랫폼으로 이동하는 문제가 된다. 또한 더 강력한 컴퓨팅 환경들은 이미지들 간에 가상 분리를 유지하면서도 다수의 서로 다른 가상 이미지들의 공존을 지원할 수 있다. 그 결과, 한 가상 이미지에서 고장 상태(a failure condition)가 동일한 하드웨어 플랫폼 내의 다른 공동-실행 가상 이미지들의 무결성을 위태롭게 하지 않을 수 있다.
[0003] 본 발명에서, "하이퍼바이저"라고 하는, 가상 머신 모니터는 각 가상 이미지와 하드웨어 플랫폼에 의해서 제공하는 기본 자원들(the underlying resources) 간의 상호 작용을 관리한다.
[0004] 이와 관련하여, 운영 체제가 하드웨어에서 직접 실행되는 것처럼 베어 메탈 하이퍼바이저(a bare metal hypervisor)도 하드웨어 플랫폼에서 직접 실행된다. 이에 비해, 호스트된 하이퍼바이저(a hosted hypervisor)는 호스트 운영 체제 내에서 실행된다. 두 경우 모두, 하이퍼바이저는, 가상 머신(VM) 이미지들로 알려진, 다른 "게스트 운영 체제 이미지들"의 운영을 지원할 수 있고, 이 때 VM 이미지들의 수는 상기 VM 이미지들을 보유하는 VM 컨테이너의 처리 자원들 또는 하드웨어 플랫폼 자체에 의해서만 제한된다.
[0005] 가상화는 단일 하드웨어 플랫폼에 제한되면서 다양한 유형들의 애플리케이션들을 위해 별도의 컴퓨팅 환경들을 필요로 하는 최종 사용자들에게 특히 유용한 것으로 입증되었다. 예를 들어, 한가지 유형의 하드웨어 플랫폼에 네이티브인(native to) 기본 운영 체제가 다른 하드웨어 플랫폼에 네이티브인 가상화 된 게스트 운영 체제를 제공하여서 상기 게스트 운영 체제의 존재를 필요로 하는 애플리케이션들이 기본 운영 체제의 존재를 필요로 하는 다른 애플리케이션들과 공존할 수 있도록 하는 것은 잘 알려져 있다. 이 방식에서, 최종 사용자는 다른 유형의 애플리케이션을 지원하기 위해 별도의 컴퓨팅 환경을 제공할 필요가 없다. 그러나, 게스트 운영 체제에 관계없이, 단일 하드웨어 플랫폼의 기본 자원들에 대한 액세스는 정적으로 유지된다.
[0006] 애플리케이션 솔루션을 구성할 때 서로 다른 VM들의 서로 다른 상호 의존적인 애플리케이션들을 통합(aggregate)하기 위해 가상화 된 환경들이 배치되었다. 예를 들어, 애플리케이션 서버는 한 VM 내에서 실행될 수 있고 데이터베이스 관리 시스템은 다른 VM에서 실행될 수 있으며 웹 서버는 또 다른 VM에서 실행될 수 있다. 각 VM은 보안 네트워크에서 서로 통신 가능하게 결합될 수 있지만, 그러나, 배치된 애플리케이션들 중 임의의 하나가 다른 VM들에서의 다른 애플리케이션들의 실행을 방해하지 않고 다른 배치로 실시간 마이그레이트 될 수 있다. 통상적인 실시간 마이그레이션에서, VM은 하나의 호스트 서버에서 다른 호스트 서버로 이동될 수 있는데, 이는 서버 유지보수를 허용하거나 또는 VM에 대한 하드웨어 지원 개선을 허용하기 위해서이다. 따라서 실시간 마이그레이션은 시간이 많이 소요되는 프로세스(a time-consuming process)로 입증될 수 있다.
[0007] 따라서 전술한 문제를 해결할 필요가 있다.
[0008] 제1 실시 예에서, 본 발명은 실시간 업데이트(a live update)를 수행하기 위한 컴퓨터-구현 방법을 제공하고, 상기 방법은: 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형(a migration type)을 결정하는 단계; 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계; 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계(maintaining); 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계(tracking); 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션(a back-migration)을 수행하는 단계를 포함한다.
[0009] 다른 실시 예에서, 본 발명은 실시간 업데이트들을 수행하는 시스템을 제공하고, 상기 시스템은: 하나 또는 그 이상의 프로세서들; 및 상기 하나 또는 그 이상의 프로세서들에 결합된 적어도 하나의 메모리를 포함하고, 상기 하나 또는 그 이상의 프로세서들은 방법을 수행하도록 구성되며, 상기 방법은: 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형을 결정하는 단계; 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계; 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계; 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계; 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션을 수행하는 단계를 포함한다.
[0010] 다른 실시 예에서, 본 발명은 실시간 업데이트들을 수행하기 위한 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 프로그램 제품은: 본 발명의 단계들을 수행하는 방법을 수행하기 위해 처리회로에 의해서 판독 가능하고 상기 처리회로에 의한 실행을 위한 명령들을 저장하는 컴퓨터 판독 가능 스토리지 매체를 포함한다.
[0011] 또 다른 실시 예에서, 본 발명은 컴퓨터 판독 가능 매체 상에 저장되고 디지털 컴퓨터의 내부 메모리에 로드 할 수 있는 컴퓨터 프로그램을 제공하고, 상기 컴퓨터 프로그램은: 상기 프로그램이 컴퓨터 상에서 실행될 때, 본 발명의 단계들을 수행하기 위한, 소프트웨어 코드 부분들을 포함한다.
[0012] 또 다른 실시 예에서, 본 발명은 실시간 업데이트들을 수행하기 위한 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 프로그램 제품은: 프로세서가 방법을 수행하도록 상기 프로세서에 의해서 실행가능한 프로그램 명령들을 저장하는 컴퓨터 판독 가능 스토리지 매체를 포함하고, 상기 방법은: 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형을 결정하는 단계; 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계; 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계; 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계; 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션을 수행하는 단계를 포함한다.
[0013] 본 발명의 실시 예들은 크로스 프레임 실시간 업데이트들(cross the frame live updates)의 향상된 효율성을 위한 컴퓨터-구현 방법을 지향한다. 상기 컴퓨터-구현 방법의 제한-없는 예는 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형(a migration type)을 결정하는 단계와 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계를 포함한다. 상기 컴퓨터-구현 방법은 또한, 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계(maintaining), 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계(tracking), 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션(a back-migration)을 수행하는 단계를 포함한다.
[0014] 본 발명의 실시 예들은 크로스 프레임 실시간 업데이트들(cross the frame live updates)의 향상된 효율성을 위한 시스템을 지향한다. 상기 시스템의 제한-없는 예는 하나 또는 그 이상의 프로세서들, 및 상기 하나 또는 그 이상의 프로세서들에 결합된 적어도 하나의 메모리를 포함한다. 상기 하나 또는 그 이상의 프로세서들은 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형(a migration type)을 결정하는 단계와 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계를 수행하도록 구성된다. 상기 하나 또는 그 이상의 프로세서들은 또한, 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계(maintaining), 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계(tracking), 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션(a back-migration)을 수행하는 단계를 수행하도록 구성된다.
[0015] 본 발명의 실시 예들은 크로스 프레임 실시간 업데이트들(cross the frame live updates)의 향상된 효율성을 위한 컴퓨터 프로그램 제품을 지향하고, 상기 컴퓨터 프로그램 제품은, 함께 구현된 프로그램 명령들을 갖는 컴퓨터-판독 가능 스토리지 매체를 포함한다. 상기 프로그램 명령들은 프로세서가 방법을 수행하도록 하기 위해 상기 프로세서에 의해 실행 가능하다. 상기 방법의 제한-없는 예는 소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형을 결정하는 단계, 및 상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계를 포함한다. 상기 컴퓨터-구현 방법은 또한, 상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계, 하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계, 및 상기 마이그레이션 유형에 기초하여, 백-마이그래이션을 수행하는 단계를 포함한다.
[0016] 추가적인 기술적 특징들과 이점들이 본 발명의 기술들을 통해 실현될 수 있다. 발명의 구현들과 실시 예들은 여기에 자세히 설명되어 있으며 청구된 주제의 일부로 간주된다. 더 나은 이해를 위해서는 자세한 설명과 도면들을 참조한다.
[0017] 여기에 설명된 배타적 권리들의 상세한 사항들은 본 명세서의 결론 부분의 청구항들에 구체적으로 명확하게 기재되고 청구된다. 본 발명의 실시 예들의 전술한 기타 특징들 및 장점들은 첨부된 도면들을 참조하여 기술된 상세한 설명에서 분명하게 드러난다.
[0018] 도 1은 본 발명의 하나 또는 그 이상의 실시 예들에 따른 클라우드 컴퓨팅 환경을 도시한다.
[0019] 도 2는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 추상화 모델 계층들을 도시한다.
[0020] 도 3은 본 발명을 실시하는데 사용되는 컴퓨터 시스템의 블록도를 도시한다.
[0021] 도 4는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 다른 시스템을 도시한다.
[0022] 도 5는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 제1 서버에서 제2 서버로의 마이그레이션을 도시한다.
[0023] 도 6은 본 발명의 하나 또는 그 이상의 실시 예들에 따른 시스템 상태를 도시한다.
[0024] 도 7은 본 발명의 하나 또는 그 이상의 실시 예들에 따른 시스템 상태를 도시한다.
[0025] 도 8은 본 발명의 하나 또는 그 이상의 실시 예들에 따라 여기에 설명된 마이그레이션 프로세스 동안의 마이그레이션-후- 마이그레이션 비트를 포함하는 하이퍼바이저 테이블들을 도시한다.
[0026] 도 9는 본 발명의 하나 또는 그 이상의 실시 예들에 따른 시스템 상태를 도시한다.
[0027] 도 10은 본 발명의 하나 또는 그 이상의 실시 예들에 따라 마이그레이션을 수행하는 방법의 플로차트를 도시한다.
[0028] 여기에 설명된 다이어그램들은 예시이다. 본 발명 정신에서 벗어나지 않고 다이어그램이나 그 안에 기술된 연산들에는 많은 변형들이 있을 수 있다. 예를 들어, 연산들을 다른 순서로 수행하거나 연산들을 추가, 삭제 또는 수정할 수 있다. 또한, "결합된"이라는 용어와 그 변형들은 두 엘리멘트들 사이에 통신 경로를 갖는 것을 설명하며, 두 엘리멘트들 사이에 개입하는 엘리멘트/연결이 없는 엘리멘트들 사이의 직접적인 연결을 의미하지 않는다. 이러한 모든 변형들은 본 명세서의 일부로 간주된다.
[0029] 첨부된 도면들 및 개시된 실시 예들의 아래의 상세한 설명에서, 도면들에 예시된 다양한 엘리멘트들에는 두 자리 또는 세 자리 숫자의 참조번호들이 제공된다. 사소한 예외들을 제외하고, 각 참조 번호의 가장 왼쪽 숫자는 엘리멘트들이 처음 도시된 도면에 대응한다.
[0030] 본 발명의 다양한 실시 예들이 관련 도면들을 참조하여 여기서 설명된다. 본 발명의 범위에서 벗어나지 않고 본 발명의 대체 실시 예들이 고안될 수 있다. 다양한 연결들 및 위치 관계들(예: 위, 아래, 인접 등)이 다음 설명과 도면들에서 엘리멘트들 사이에 제공된다. 이들 연결들 및/또는 위치 관계들은, 달리 명시하지 않는 한, 직접적이거나 간접적일 수 있으며, 본 발명은 이러한 측면에서 제한하려는 것이 아니다. 따라서, 실체들의 결합은 직접적 결합이나 간접적 결합을 가리킬 수 있고, 실체들 간의 위치적 관계도 직접적 또는 간접적 위치적 관계가 될 수 있다. 또한, 여기에 설명된 다양한 작업들 및 프로세스 단계들은 여기에 자세히 설명되지 않은 추가의 단계들 또는 기능들을 가진 보다 포괄적인 절차 또는 프로세스에 통합될 수 있다.
[0031] 다음의 정의들과 약어들은 청구항들과 명세서의 해석에 사용된다. 여기서 사용될 때, "포함한다(comprise)", "포함하는(comprising)", "포함되다(include)", "포함되는(including)", "갖다(has)," "갖는(having)," "함유하다(contain)" 또는 "함유하는(containing),"또는 그 밖의 이들에 관한 변형들은 비-배타적 포함을 포괄하기 위한 것이다. 이라는 용어들은 말들은, 언급되는 특징들, 정수들, 단계들, 동작들, 엘리멘트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리멘트들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하는 것은 아니라는 것을 이해할 수 있을 것이다. 예를 들어, 엘리멘트들의 목록을 포함하는 조성물, 혼합물, 프로세스, 방법, 물품 또는 장치는 반드시 목록에 포함된 엘리멘트들에만 국한되지 않으며, 그러한 조성물, 혼합물, 프로세스, 방법, 물품 또는 장치에 명시적으로 나열되지 않았거나 고유하지 않은 다른 엘리멘트들도 포함할 수 있다.
[0032] 또한, "예시적인"이라는 용어는 여기서는 "예, 사례 또는 예시로서 사용됨"을 의미하기 위해 사용된다. 여기서 "예시적인"으로 묘사되는 어떤 실시 예 또는 설계가 반드시 다른 실시 예들 또는 설계들에 비해 선호되거나 유리한 것으로 해석될 필요는 없다. "적어도 하나"와 "하나 또는 그 이상"이라는 용어는 1보다 크거나 같은 정수(예: 1, 2, 3, 4 등)를 포함하는 것으로 이해할 수 있다. "복수"라는 용어는 2보다 크거나 같은 정수(예: 2, 3, 4, 5 등)를 포함하는 것으로 이해할 수 있다. "연결"이라는 용어는 간접적인 "연결"과 직접적 "연결"을 모두 포함할 수 있다.
[0033] 용어들 "약", "실질적으로", "대략적으로" 및 이들의 변형들은 본출원의 접수 당시 이용 가능한 장비에 기초한 특정 수량 측정과 연관된 오차 정도를 포함하기 위해 의도된 것이다. 예를 들어, "약"은 주어진 값의 ±8% 또는 5%, 또는 2%의 범위를 포함할 수 있다.
[0034] 간결성을 위하여, 본 발명 실시 예들의 제작 및 사용과 관련된 종래의 기술들이 여기에 자세히 설명될 수도 있고 설명되지 않을 수도 있다. 특히, 여기에 설명된 다양한 기술적 특징들을 구현하기 위한 컴퓨팅 시스템들의 다양한 종류들과 특정 컴퓨터 프로그램은 잘 알려져 있다. 따라서, 간결성을 위해, 많은 종래의 구현 세부사항들은 여기에 간략하게만 언급되거나 잘 알려진 시스템 및/또는 프로세스 세부 사항들은 제공되지 않고 완전히 생략된다.
[0035] 본 명세서는 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 설명들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해하여야 한다. 오히려, 본 발명의 실시 예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
[0036] 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한, 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
[0037] 클라우드 컴퓨팅 특성들은 다음과 같다:
주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 기능들을 일방적으로 제공(provision)할 수 있다.
광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일 폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크을 통해서 이용할 수 있다.
자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은 멀티-테넌트 모델(a multi-tenant model)을 이용하여, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하면서, 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 레벨에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 원하는 수량으로 구매할 수 있는 것처럼 보인다.
측정 가능한 서비스(Measured service): 클라우드 시스템들은 자원 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 레벨에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 자원 사용량은 모니터되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
인프라스트럭처 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영 체제들과 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않지만, 운영 체제들, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
[0038] 배치 모델들(Deployment Models)은 다음과 같다:
사설 클라우드(Private cloud): 클라우드 인프라스트럭처는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
커뮤니티 클라우드(Community cloud): 클라우드 인프라스트럭처는 여러 조직들에 의해 공유되고 관심사(예를 들어, 미션, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
공공 클라우드(Public cloud): 클라우드 인프라스트럭처는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
하이브리드 클라우드(Hybrid cloud): 클라우드 인프라스트럭처는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 주체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[0039] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크을 포함하는 인프라스트럭처가 있다.
[0040] 이제 도 1을 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(50)은, 예를 들어 개인 휴대 정보 단말기(PDA) 또는 휴대폰(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차용 컴퓨터 시스템(54N)과 통신할 수 있는 것과 같이, 클라우드 소비자가 사용하는 로컬 컴퓨팅 디바이스가 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(10)을 포함한다. 노드들(10)은 서로 통신할 수 있다. 이들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 디바이스 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(50)이 인프라스트럭처, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 1에 도시된 컴퓨팅 디바이스들(54A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(10)과 클라우드 컴퓨팅 환경(50)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화 된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
[0041] 이제 도 2를 참조하면, 클라우드 컴퓨팅 환경(50) (도 1)에 의해 제공되는 일 세트의 기능별 추상화 계층들이 도시된다. 도 2에 도시된 컴포넌트들, 계층들, 및 기능들은 단지 예시의 목적이며 본 발명의 바람직한 실시 예들은 이것에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 계층들과 그에 대응하는 기능들이 제공된다:
[0042] 하드웨어 및 소프트웨어 계층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(61); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(62); 서버들(63); 블레이드 서버들(64); 스토리지 디바이스들(65); 그리고 네트워크 및 네트워킹 컴포넌트들(66)이 포함된다. 일부 실시 예들에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
[0043] 가상화 계층(70)은 추상화 계층을 제공하며 이로부터 다음의 가상 주체들의 예들이 제공될 수 있다: 가상 서버들(71); 가상 스토리지(72); 가상 사설 네트워크들을 포함하는, 가상 네트워크들(73); 가상 애플리케이션들 및 운영 체제들(74); 및 가상 클라이언트들(75).
[0044] 한 예에서, 관리 계층(80)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)(81)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(82)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(83)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 레벨 관리(Service level management)(84)는 요구되는 서비스 레벨이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 레벨 협약서(SLA) 기획 및 충족(planning and fulfillment)(85)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[0045] 워크로드 계층(90)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 계층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음과 같다: 맵핑 및 네비게이션(91); 소프트웨어 개발 및 라이프사이클 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 트랜잭션 처리(95); 및 액션 분석과 통지들(96).
[0046] 이제 보다 구체적으로 본 발명의 실시 예들과 관련된 기술의 개요로 돌아가면, 서버는 때때로 다양한 이유로 마이그레이션을 수행한다. 실시간 마이그레이션들(Live migrations)을 통해 고객들은 마이그레이션 프로세스 동안 연산들을 유지하여 애플리케이션 다운타임을 피할 수 있다.
[0047] 실시간 업데이트(Live Update)를 구현하기 위해, 오리지널(the original)과 동일한 양의 시스템 자원들을 갖는 추가 대리 LPAR(an additional surrogate LPAR)이 생성된다. 모든 프로세스들 및 관련 자원들은 실시간 업데이트 연산의 종료 시에 오리지널에서 대리 LPAR로 전송된다. 경우에 따라서는, 팩된 서버들(packed servers)의 경우, 실시간 업데이트 연산 동안 대리 및 오리지널 LPAR을 모두 수용하기 위한 자원이 부족하거나 또는 제한됨으로 인해 문제가 발생할 수 있다. 이 제한을 극복하기 위해 실시간 업데이트는 충분한 프로세서 및 메모리 자원이 있는 다른 서버(타겟 서버)로 VM을 마이그레이트 할 수 있는 기능을 갖는다. 실시간 업데이트는 타겟 서버 상에서 수행된다. 실시간 업데이트가 완료되고 난 후, 백 마이그레이션이 호스팅 서버로 수행된다.
[0048] LPM(Live Partition Mobility)은 인프라 서비스 및 워크로드를 중단하지 않고 논리적 파티션(LPAR) 또는 가상 머신(VM)을 하나의 서버에서 다른 서버로 이동하는 기능을 제공한다. 시스템의 하이퍼바이저는 MSP(Moving Service Partition)와 협력하여 LPAR/VM의 메모리 페이지들을 하나의 시스템에서 다른 시스템으로 마이그레이트 하는 동작들을 관리한다. 임시 마이그레이션 프로세스와 영구 마이그레이션 프로세스를 포함한 다양한 마이그레이션 유형들이 있다. 임시 마이그레이션은 일정 기간 동안 논리 파티션을 다른 위치 또는 서버로 이동한 다음 논리 파티션을 소스 위치 또는 서버로 반환한다. 영구 마이그레이션은 소스 서버 또는 위치로 돌아갈 의도를 갖고 있지 않다.
[0049] 실시간 업데이트는 충분한 프로세서 및 메모리 자원들을 갖는 다른 서버(타겟 서버)로 VM(업데이트를 해야 할 필요한)을 마이그레이트 할 수 있는 기능을 갖는다. 실시간 업데이트는 타겟 서버 상에서 수행된다. 실시간 업데이트가 완료된 후 호스팅 서비스로 백 마이그레이션이 수행된다.
[0050] 실시간 업데이트는 대체 서버로 실시간 마이그레이션을 수행하고, 타겟 서버에서 실시간 업데이트 연산을 수행한 후, 호스팅 또는 소스 서버로 다시 후속 마이그레이션을 수행한다. 서버들 간의 이동은 LPM 연산을 포함하기 때문에 실시간 업데이트에 의한 추가 시간 소비가 추가되어 전체 실시간 업데이트 연산 시간이 증가한다.
[0051] 실시간 업데이트 연산이 완료되면 LPAR/VM이 오리지널 호스팅 서버로 돌아오므로 실시간 업데이트 중에 수행된 LPM 연산은 임시 마이그레이션일 뿐이다. 메모리로 그리고 메모리로부터의 LPM/실시간 마이그레이션은 일시적인 이동으로 간주되지 않는다. 갔다 오는 이동(The to and from movement)(2회 LMP)은 실시간 업데이트의 성능 저하를 초래한다. 현재, 하이퍼바이저에서 마이그레이트 된 페이지들의 상태를 추적하는 종래의 기술은 없다. 따라서, LPM 동안 페이지가 업데이트되었는지 여부에 관계없이 모든 메모리 페이지를 전송한다.
[0052] 즉, 임시 마이그레이션 동안에는 페이지 메모리가 유지되지 않으며 임시 마이그레이션이 수행될 때 전체 페이지 메모리는 소스 하이퍼바이저로 다시 전송되어야 한다. 즉, 영구 이동과 임시 이동이 동일하게 취급된다. 이 것은 백-마이그레이션 프로세스에서 지연의 증가를 일으키는데, 그 이유는 수정되지 않은 페이지들도 소스 서버로 다시 전송되기 때문이다.
[0053] 본 발명의 실시 예들의 개요로 돌아가면, 본 발명의 하나 또는 그 이상의 실시 예들은 여기에 설명된 기술들을 제공함으로써 위에서 설명된 선행 기술의 단점들을 해결하고, 제1 LPM 이후 기록/업데이트된 메모리 페이지들만 선택함으로써 메모리 페이지 전송 연산 시간을 개선한다.
[0054] 전술한 본 발명의 실시 예들은 플래그(마이그레이션 후 수정 비트)로서 작동하는 하이퍼바이저 페이지 테이블에 도입될 수 있는 추가 필드를 사용하여 선행 기술의 단점을 해결한다. 논리 페이지 번호는 사전 및 사후 LVM(the pre and post LVM)에 대해 동일할 수 있다. 실시간 업데이트(LU)는 페이지 테이블을 보고 이 추가 필드를 기록한다. 백 마이그레이션을 수행하는 동안, 시스템은 마이그레이션-후-수정 플래그(the modification-after-migration flag)가 세트 된 페이지들만 전송한다.
[0055] 하이퍼바이저는 가상 페이지의 물리적 페이지에 대한 매핑을 담당하므로 이 추가 필드를 알고 있어야 한다. 하이퍼바이저는 물리적 페이지 매핑만 참조한다. 플래그 비트가 설정된 논리 페이지의 물리적 페이지만 참조한다. 이렇게 하면 전체 메모리 페이지 전송 시간이 단축된다. 이 추가 필드는 MAM(modification-after-migration bit) 비트로서 어드레스 될 수 있다.
[0056] 본 발명의 실시 예들에 대한 보다 자세한 설명으로 돌아가면, 도 3은 본 발명의 다양한 실시 예들에 대해 작동 가능한 예시적 컴퓨터 시스템(즉, 서버)(12)의 블록도를 예시한다. 도시된 바와 같이, 서버(12)는 하나의 논리 파티션(LPAR)을 한 머신에서 다른 머신으로 마이그레이션하는 데 적합한 컴퓨터의 한 예에 불과하며, 여기에 설명된 본 발명의 실시 예들의 사용 또는 기능의 범위에 대한 제한을 제안하려고 의도하는 것은 아니다.
[0057] 서버(12)는 다른 수많은 컴퓨팅 시스템 환경들 또는 구성들에서 작동가능하다. 예를 들어, 서버(12)는 물리적 호스트 상의 가상 파티션, 클러스터 된 서버 환경, 또는 위의 시스템들 중 하나를 포함하는 분산 클라우드 컴퓨팅 환경, 및 이와 유사한 것일 수 있다. 분산 클라우드 컴퓨팅 환경에서 실시 되었을 때, 작업들은, 네트워크(99)와 같은, 통신 네트워크을 통해 서로 링크되고 통신하는 로컬 및 원격 서버들(12) 모두에 의해 수행될 수 있다. 본 발명의 일 실시 예에서, 로컬 및 원격 서버들(12)은 실시간 운영 체제 마이그레이션들을 위해 소스 및 타겟 서버들로 참조될 수 있다. 또한, 서버(12)의 일 실시 예는 인벤토리 검증(the inventory validation) 및 실시간 운영 체제 마이그레이션들의 조정자(the coordinator) 기능을 수행하는 HMC(하드웨어 관리 콘솔)라 하는 독립형 시스템 컨트롤 포인트를 포함한다. 또 다른 실시 예에서, 서버(12)는 시스템 관리 기기(a systems management appliance)를 포함할 수 있고, 이 기기는, 멀티-노드 또는 멀티 서버 환경에서, 하드웨어 구성과, 소프트웨어, 하드웨어 및 네트워크 관리를 포함하는, 시스템들 관리를 위한 단일 포컬 포인트(a single focal point)를 제공하도록 구성될 수 있다. 서버(12)의 또 다른 실시 예는, 가상화 관리자라고도 하는 가상 I/O 서버(VIOS)를 포함하고, 이 서버는, LPAR들(논리 파티션들) 또는 클라이언트들이라 하는, 가상 머신들을 호스트하고, 물리적 하드웨어 자원들의 가상화를 관리하며, 실시간 운영 체제 마이그레이션에 참여한다.
[0058] 서버(12)는 프로그램, 보다 구체적으로는 운영 체제(OS)(40)과 같은, 실행 명령들의 맥락에서 설명될 수 있으며, 운영 체제(OS)(40)은, 프로그램 모듈(42), 컴포넌트들, 객체들, 논리, 또는 데이터 구조들의 집합이고, 예를 들어, 서버(12)의 연산을 제어하기 위해 처리 유닛(16)에 의해 실행된다. 인벤토리 검증(Inventory validation) 및 실시간 운영 체제 마이그레이션은 프로그램 모듈들(42) 또는 OS(40)의 확장들로서 구현될 수 있다. 적어도 OS(40)의 일부는 도 3-4의 알고리즘을 실행하도록 전문화될 수 있다.
[0059] 참여하는 각 서버(12)는 각각 로컬 및 원격 서버(12)에 상주하는 OS(40)의 제어 하에 있다. 가상 시스템의 각 인스턴스는 물리적 컴퓨터의 에뮬레이션이다. 물리적 컴퓨터는, 다수의 가상 머신 인스턴스들을 호스트할 수 있고, 각 인스턴스는 물리적 컴퓨터의 하드웨어 자원들을 공유하며, 각 인스턴스는 물리적 컴퓨터를 에뮬레이트 한다. 가상 머신 인스턴스들 각각은 OS(40)의 컨트롤 하에 있다.
[0060] 서버(12)의 컴포넌트들은, 하나 또는 그 이상의 프로세서들 또는 처리 유닛들(16), 시스템 메모리(28), 그리고, 시스템 메모리(28)와 같은 다양한 시스템 컴포넌트들을, 처리 유닛들(16)에 결합하는 버스(18)를 포함할 수 있지만, 이에 한정되지는 않는다.
[0061] 시스템 메모리(28)는 랜덤 액세스 메모리(RAM)(30) 및/또는 캐시 메모리 (32)와 같은 휘발성 메모리의 형태로 컴퓨터 시스템 판독가능 매체를 포함할 수 있다. 서버(12)는, 착탈가능/비-착탈가능, 휘발성/비-휘발성 컴퓨터 시스템 스토리지 매체를 더 포함할 수 있다.
[0062] 예를 들어, 스토리지 시스템(34)는, 하드 디스크 드라이브(HDD) 또는 CD-ROM, DVD-ROM과 같은 광 디스크 드라이브와 같은, 비-착탈식, 비-휘발성 자기 매체로부터 읽고/에 쓰기 위한 하나 또는 그 이상의 디바이스들로 제공될 수 있다. 스토리지 시스템(34)의 각 디바이스는 하나 또는 이상의 데이터 매체 인터페이스들에 의해서 버스(18)에 연결될 수 있다. OS(40) 및 하나 또는 그 이상의 애플리케이션 프로그램들은 스토리지 시스템(34)에 저장되어, 필요에 따라 실행을 위해 메모리(28)에 후속적으로 로드 될 수 있다.
[0063] 서버(12)는 또한, 키보드, 포인팅 디바이스, 디스플레이(24) 등과 같은 하나 또는 그 이상의 외부 디바이스들(14)과 통신할 수 있고, 사용자가 서버(12)와 상호 작용할 수 있게 하는 하나 또는 그 이상의 디바이스들과 통신할 수 있으며, 및/또는 서버(12)가 하나 또는 그 이상의 다른 컴퓨팅 디바이스들과 통신할 수 있게 하는 모든 디바이스들(예: 네트워크 카드, 모뎀 등)와 통신할 수 있다. 그러한 통신은 I/O 인터페이스들(22)를 통해 실시될 수 있다.
[0064] 서버(12)는 네트워크 어댑터(20)을 통해 LAN, WAN 및/또는 공용 네트워크(예: 인터넷)와 같은 하나 또는 그 이상의 네트워크들과 통신할 수 있다. 도시된 바와 같이, 네트워크 어댑터(20)는 버스(18)를 통해 서버(12)의 다른 컴포넌트들과 통신한다. 그러나, 클라우드 컴퓨팅 환경과 같은, 멀티-테넌트 데이터 센터(MTD) 환경에서, 네트워크 통신들은 물리적 디바이스들(예: 네트워크 어댑터들 네트워크 스위치들)과, 가상화된 네트워크들(예: 소프트웨어-정의된 네트워킹(SDN)을 사용하여 구현된 것들) 모두를 거쳐 멤버 서버들(12)과 가상 머신들을 통해 라우트 될 수 있다.
[0065] 외부 스토리지 어댑터(26)는 서버(12)를 SAN(Storage Area Network)(15)과 같은 외부 스토리지 서브시스템과 연결한다. 또한 이동성 이벤트(a mobility event) 또는 실시간 파티션 이동성(live partition mobility)이라고도 하는, 실시간 운영 체제 마이그레이션을 위해, 소스, 및 타겟 서버들은 SAN(15)에 대한 연결을 공유한다. 마이그레이트하는 가상 머신도 또한 소스 물리적 컴퓨터를 통해 SAN(15)에 대한 가상 연결을 갖는다. 예시적 외부 스토리지 어댑터(26)는, 아키텍처 구현에 따라, 파이버 채널(a Fibre Channel), HCA(호스트 채널 어댑터), SCSI 및 iSCSI로도 지칭되는 HBA(호스트 버스 어댑터)를 포함하지만, 이에 국한되지는 않는다. 외부 스토리지 어댑터(26)는 버스(18)를 통해 서버(12)의 처리 유닛(16) 및 메모리(28)와 통신한다.
[0066] 도시되지는 않았지만 다른 하드웨어 및/또는 소프트웨어 컴포넌트들이 서버(12)와 함께 사용될 수 있음을 이해해야 한다. 예들은, 마이크로코드, 디바이스 드라이버, 중복 처리 유닛들, 외부 디스크 드라이브 어레이들, 테이프 드라이브 및 데이터 아카이브 스토리지 시스템 등을 포함하나, 이에 국한되지는 않는다.
[0067] 도 4는 실시간 운영 체제 마이그레이션을 위한 중복 검증들(redundant validations)을 줄이기 위한 시스템을 보여준다. 실시 예는 소스 및 타겟 서버 시스템들(12)를 포함한다. 소스 서버 시스템(12)은 LPAR들(220 및 222)을 포함하고, 제공되는(provisioned) LPAR들의 수는 더 많거나 더 적을 수 있다. LPAR들에는 컴퓨터의 물리적 하드웨어 자원들의 서브세트(즉, 하드웨어 기반 서버 환경의 서브세트)가 할당되며, 별도의 컴퓨터/가상 머신으로서 서버 환경 내에서 가상화된다. 프로세서 용량, 가상 및 물리적 I/O 디바이스들, 메모리와 같은 자원들 또는 기타 유형의 자원은 특정 LPAR에 할당될 수 있다. 각 LPAR은 자체 운영 체제 인스턴스(예: OS 224, 226 및 293)와 애플리케이션 프로그램들(예: 애플리케이션(들) 228, 230, 295) 및/또는 연관된 파일들을 가지고 있으므로, 서버 환경 내에서 다수의 가상 환경들을 동시에 실행할 수 있다.
[0068] 전문화된 LPAR들(240 및 242)는 VIOS 소프트웨어/펌웨어를 실행함으로써 I/O 기능을 구현하는 데 전념한다(VIOS 소프트웨어/펌웨어는 여기서 기술된 다양한 기능들을 수행하기 위한, 소프트웨어, 로직 및/또는 실행가능 코드이다(이들은, 예를 들어, 데이터 처리 시스템에서 단일 집적 회로에 집중된 또는 다른 칩들 가운데 분산된, 처리 유닛, 프로세서에 상주하는 하드웨어 논리 또는 기타 유형의 논리 칩 상에서 실행하는 소프트웨어 및/또는 앨고리듬으로서 상주한다)).물리적 하드웨어 자원들의 가상화를 포함하는, 논리 파티셔닝은 소프트웨어/펌웨어 하이퍼바이저(246 및 248)에 의해 용이하게 된다. 하이퍼바이저(246/248)는 VIOS(240/242) 및 컨트롤 포인트(250)과 협력하여, LPAR들의 운영 체제들을 포함하는, 서버 시스템(12) 하드웨어 및 소프트웨어의 상태 및 운영을 컨트롤하고 모니터 한다. 하이퍼바이저(246/248)는, 구현에 따라, 컴퓨터 시스템의 하드웨어 상에서 직접 실행될 수 있거나, VIOS와 결합될 수 있거나, 또는 기존 운영 체제 환경 내에서 실행될 수 있다.
[0069] 컨트롤 포인트(250)는 VIOS(240/242) 및 하이퍼바이저(246/248)와 협력하여 시스템 서버 및 LPAR 관리를 수행한다. 컨트롤 포인트(250), 또는 그 일부들은, 하드웨어-기반, 소프트웨어-기반 또는 두 가지 모두의 조합일 수 있는 알려진 기술들을 사용하여 적절한 방식으로 구현될 수 있다. 예를 들어, 컨트롤 포인트(250)는 여기에 설명된 대로 다양한 기능들을 수행하기 위한 소프트웨어, 논리 및/또는 실행 가능한 코드를 포함할 수 있다(이들은, 예를 들어, 데이터 처리 시스템에서 단일 집적 회로에 집중된 또는 다른 칩들 가운데 분산된, 처리 유닛, 프로세서에 상주하는 하드웨어 논리 또는 기타 유형의 논리 칩 상에서 실행하는 소프트웨어 및/또는 앨고리듬으로서 상주한다). 대체 실시 예에서, LPAR 프로파일들을 관리하고, LPAR 연산들(즉, 활성화, 비활성화, 업데이트)을 수행하며, 인벤토리 검증을 수행하는 컨트롤 포인트 운영 체제(215)의 부분들은 VIOS(240/242) 운영 체제에 통합될 수 있다. 인벤토리 검증, 구성 프로필 관리 및 LPAR 마이그레이션 연산들은 VIOS(240/242) 및/또는 컨트롤 포인트(250)로부터 수행될 수 있다. 예를 들어, 일부 실시 예들에서, 컨트롤 포인트(250)의 디스플레이(24)가 사용될 수 있는데, 이는 이동성 이벤트를 위해 선택할 수 있는 다양한 구성 프로파일(205) 및 검증 인벤토리(210) 데이터를 표시할 수 있다. 선택된 정보는 컨트롤 포인트(250)에서 VIOS LPAR(240 및/또는 242)로 전달될 수 있다.
[0070] 컨트롤 포인트(250)는 구성 프로필들(205)의 저장소를 포함한다. 각 LPAR은 적어도 하나의 프로파일과 연관되는데, 이 프로파일은, 다른 파라미터들 중에서, LPAR에 할당된 시스템 서버(12) 하드웨어 자원들의 부분, 초과 시스템 자원들을 수용하는 우선순위의 표시, 그리고 운영 체제 환경을 정의한다. 구성 프로필(205)은 LPAR의 가상 및 물리적 I/O 디바이스 구성을 포함한다. 컨트롤 포인트(250)는 검증 인벤토리 저장소(210)를 포함한다. 각 LPAR은 검증 인벤토리 저장소(210)의 검증 인벤토리와 연관된다. LPAR의 검증 인벤토리는 고유의 LPAR 식별자, 이동성 이벤트 소스, 및 타겟 서버 시스템들, LPAR의 구성 프로필(205)에 따른 LPAR 자원들, 그리고 이전의 이동 이벤트 시도에 대해 프리-마이그레이션 검증(the pre-migration validation)이 통과되었는지 실패했는지에 대한 표시를 포함할 수 있다. 검증 인벤토리 저장소(210)는 컨트롤 포인트(250)상에 캐시 될 수 있다. LPAR 활성화 프로세스의 일부로서, 컨트롤 포인트(250)는 LPAR의 이전 검증으로부터 검증 인벤토리(210)를 찾아내어 LPAR이 정의된 서버 시스템 상의 VIOS(240/242)로 보낸다. VIOS(240/242)는 검증 인벤토리가 무효화될 수 있는 구성 변경에 대해 LPAR을 모니터 하고, 이에 의해서 후속 이동 이벤트 전에 전체 검증(a full validation)이 필요한 지를 모니터 한다. 컨트롤 포인트(250)는 VIOS(240/242)로부터 LPAR의 검증 인벤토리의 무효 통지에 응답하기 위해 하나 또는 그 이상의 조치들을 취할 수 있다. 예를 들어, 컨트롤 포인트(250)는 다음 이동성 이벤트에서 LPAR에 대해 전체 검증이 필요한지를 주목할 수 있다. 또 다른 실시 예에서, 컨트롤 포인트(250)는 통지를 받는 즉시 전체 검증을 시작하고 다음 이동성 이벤트 전에 결과들을 캐시 할 수 있다. 추가적인 실시 예에서, 컨트롤 포인트(250)는 새롭게 수정되거나, 추가되거나 또는 제거된 자원에 대한 부분 검증을 시작할 수 있다. 도시된 바와 같이, 동일 컨트롤 포인트(250)는 소스 및 타겟 서버 시스템들(12) 모두를 관리한다. 그러나 다른 컨트롤 포인트들(250)은 소스 및 타겟 서버 시스템들(12)을, 예를 들어, 소스 및 타겟 서버 시스템들(12)가 지리적으로 분리된 때에, 관리할 수 있다.
[0071] 도 4에 예시된 실시 예에서, LPAR(222)은 소스 서버 시스템(12)에서 타겟 서버 시스템(12)로 마이그레이트 하고 있다. LPAR(288)은 타겟 서버 시스템(12)상에 존재하지 않지만, 마이그레이션의 일부로서 동적으로 생성된다. LPAR이 활성화되지 않은 동안 마이그레이션이 수행될 수 있지만, 여기서 구현된 본 발명의 다양한 실시 예들은 특히 워크로드들을 실행하는 것을 마이그레이트 하는 것에 적용된다. LPAR들은 서로 다른 하드웨어 플랫폼들 간에 마이그레이트 될 수 있으며, 다수의 LPAR들이 직렬 또는 동시에 마이그레이트 될 수 있다. LPAR(222)을 소스 서버 시스템(12)에서 타깃 서버 시스템(12)로 전송하거나 마이그레이트 하는 것은 하이퍼바이저들(246과 248)의 협력으로 그리고 에이전트들로서 역할을 하는 VIOS(240 및 242)와 함께 컨트롤 포인트(250)에 의해서 조정된다.
[0072] 마이그레이션 환경에 대한 구성은 소스 및 타겟 VIOS(240/242) 각각에 구성된 적어도 하나의 물리적 HBA를 포함한다. 이들 물리적 HBA들은, SAN(268)에 연결된 외부 스토리지 서브 시스템(15) 상에서, 동일 LUN들(논리 유닛 번호들), 즉 물리적 디스크 볼륨들에 액세스하도록 구성되어 있다. 각 물리적 HBA는 각 VIOS(240/242)에 있는 하나 또는 그 이상의 VFC(가상 파이버 채널) 어댑터들에 연관된다. LPAR(222)는 VIOS(240)으로부터 하나 또는 그 이상의 VFC 어댑터들로 구성된다. 이동 이벤트 동안, 하나 또는 그 이상의 추가 VFC 어댑터들이 타겟 LPAR(288) 상에 생성된다. 마이그레이션하는 동안, LPAR(222)의 메모리 페이지들은 소스 시스템 서버(12)에서 타깃 시스템 서버(12)로 비동기식으로 복사되며 LPAR들(222와 288)은 실행 중인 애플리케이션들에 대해 중단 없는 액세스(uninterrupted access)를 유지한다.
[0073] VFC 어댑터들은 NPIV(N_Port ID Virtualization) 기술을 구현할 수 있다. NPIV 기술을 구현하는 VFC 어댑터는 또한 NPIV 어댑터라고도 한다. NPIV를 사용하면, NPIV에서 N_Port라고 하는, 단일 HBA가 다수의 WWPN들(World Wide Port Names) 및 N_Port 식별 번호를 등록하도록 할 수 있다. WWPN은 SAN 상에서 엔드포인트(endpoint)를 고유하게 식별한다. 각 VFC 어댑터에는 외부 스토리지 서브시스템(15) 상의 LPAR의 LUN들에 액세스하기 위해 한 쌍의 WWPN들이 할당된다. 이동 이벤트 동안에, LPAR(222)를 마이그레이트 하는 경우 VIOS(240)을 통한 연결에 WWPN을 하나 사용하고 VIOS(242)를 통한 연결에 WWPN을 하나 사용한다. 마이그레이션 동안, LPAR(222)은 소스 및 타겟 서버 시스템들(12) 모두에서 잠시 활성화되고, 한편 LPAR(222)의 메모리 페이지들은 전송된다. 따라서, WWPN들의 쌍은 SAN(268) 연결들에 의해서 필요한, 고유한 엔드포인트 ID를 유지한다.
[0074] 만일 LPAR의 검증 인벤토리가 통과된 것으로 표시되고 LPAR의 활성화 이후 변경되지 않았다면 VIOS(240)는 검증 없이 이동 이벤트를 계속할 수 있다. 따라서 불필요한 검증 체크들을 피할 수 있으므로 마이그레이션 시간이 단축된다. 소스 및 타겟 VIOS들(240 및 242)은 서비스 프로세서들(260/262)을 거쳐 공용 네트워크(252) 및/또는 사설 네트워크(254)을 통해 서로 통신한다. 컨트롤 포인트(250)는 LPAR(288)의 검증 인벤토리 컨텐츠와 구성 프로필(205) 모두 사용하여, 타겟 서버 시스템(12) 상에 타겟 LPAR(288)을 생성한다. 소스 하이퍼바이저(246)는 소스 LPAR(222)로부터 메모리 페이지들을 보내고 추적하는데, 이에 의해서 LPAR(222)을 마이그레이트 하는 것이 이동 이벤트 중에도 계속 실행되게 한다.
[0075] 이제 도 5를 참조하면, 하나 또는 그 이상의 실시 예들에 따라 크로스 프레임 실시간 업데이트(a cross frame live update)를 수행하는 시스템이 도시된다. 도 5에 도시된 바와 같이, 서버1(Server1)은 가상 머신1(VM1)과 가상 머신2(VM2)을 포함한다. VM1은 현재 워크로드와 오리지널 커널을 실행하고 있으며, VM2도 또한 워크로드와 오리지널 커널을 실행하고 있다. 또한 VM1에 연결된 VM1의 하이퍼바이저 테이블은 도시된 바와 같이 서버에 저장된다. 임의 수의 VM들이 서버1에서 실행할 수 있고, 도 5에 도시된 예에 의해서 제한되지 않는다는 점을 이해해야 한다.
[0076] 이 예시적 예에서, 서버2는 VM3을 포함하고, 이도 또한 워크로드와 오리지널 커널을 실행한다. 서버2는 마이그레이션을 위한 타겟 또는 대상으로 선택될 수 있다. 마이그레이션은 영구 마이그레이션 또는 임시 마이그레이션을 포함할 수 있다.
[0077] 도 6에 도시된 바와 같이, 마이그레이션 프로세스가 시작되고 VM1의 오리지널 HPT가 서버2에 저장된다. 만일 임시 마이그레이션이 수행된다면, 서버 1은 HPT의 상태를 유지하고, MSP 상태는 유지되며, 그리고 OS/VM 상태도 유지된다. 반면에, 만일 영구 마이그레이션이 수행된다면, 상태들은 서버1에 의해서 유지되지 않는다. 기존 기술들은 마이그레이션 후 자원들을 확보하고 해제하기 위해 소스-측/호스트-측 상태 정보를 삭제한다.
[0078] 임시 마이그레이션을 위해, 서버2에 있는 VM1의 HPT는 마이그레이션 프로세스 동안에 발생하는 변경들을 추적하도록 구성된다. 하나의 비트가 어떤 변경들이 발생했는지를 표시하기 위해 사용된다. 마이그레이션-후-수정 비트는 서버 2 상의 HPT(서버1의 하이퍼바이저 페이지 테이블(서버2에서 오리지널))에 유지된다. 본 발명의 하나 또는 그 이상의 실시 예들에서, MAM 비트들은 LPM으로 인해 수정된 엔트리들에 대해 "1"로 세트 된다.
[0079] 도 7은 대리 LPAR, HPT 및 업데이트된 커널을 포함하는 타겟 서버2를 도시한다. 대리 LPAR, HPT 및 업데이트된 커널은 서버2에 상주한다. 마이그레이션이 완료된 후, 워크로드는 대리 HPT(VM1 대리 노드)로 전송되고 커널이 업데이트된다. 오리지널의 HPT와 비슷하게, 대리 HPT는 또한 MAM 비트를 사용하여 커널 업데이트 동안 메모리 페이지의 변경들을 추적한다.
[0080] 업데이트가 완료된 후, 대리 LPAR의 HPT는 마이그레이션 및 커널 업데이트 동안에 변경된 페이지들을 식별하기 위해 검색된다. 이들 페이지들은 서버1로 백-마이그레이션하기 위해 준비되고, 오리지널 LPAR의 유지된 상태 데이터와 결합하여 LPAR의 전체 인스턴스를 제공한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, 변경들만 소스로 다시 전송되어 프로세스 동안 상당한 시간 절약을 제공한다. 프로세스가 구현될 때 VM1, VM2 또는 VM3에서 실행되는 프로세스들에 대해서는 중단이 없다는 점을 이해해야 한다.
[0081] 이제 도 8을 참조하면, 본 발명의 하나 또는 그 이상의 실시 예들에 따라 MAM 비트를 저장하는 테이블(800)이 도시된다. 위의 예들에서 논의된 바와 같이, MAM 비트들은 서버2의 오리지널 노드 및 대리 노드의 하이퍼바이저 페이지 테이블들에 저장된다. 도 8은 서버1 상의 VM1의 HPT에 저장된 제1 하이퍼바이저 테이블(810)을 도시한다. VM1의 HPT는 서버1에 저장되고 논리적 어드레스(LP)를 물리적 어드레스(PP)로 매핑한다. 도 8은 또한 VM1의 HPT 사본을 포함하고 서버2에 저장된 제2 하이퍼바이저 테이블(820)도 도시한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, MAM 비트들은 LPM 동안 수정된 페이지들에 대해 1로 세트 된다. 도 8은 서버2에 저장된 VM1의 HPT(대리)를 포함하는 제3 하이퍼바이저 테이블(830)을 도시한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, MAM 비트들은 실시간 업데이트(LU)로 인해 수정된 페이지들에 대해 1로 세트 된다.
[0082] 이제 도 9를 참조하면, 서버1 및 서버2가 도시되는데, 임시 마이그레이션을 위해 백 마이그레이션을 수행한 후를 도시한다. 백 마이그레이션 프로세스 동안, 서버2의 HPT가 분석되고 마이그레이션 및 업데이트 프로세스 동안에 수정된 페이지들이 식별되어 오리지널 서버1로 전송된다. 서버2로부터 수정된 페이지들은 소스 서버1에서 유지된 페이지들과 결합하여 업데이트된 LPAR의 완전한 인스턴스를 제공한다. 도시된 바와 같이, 서버2는 임시 마이그레이션을 위한 업데이트들을 추적하는 데 사용된 자원들을 해제하였다. 마이그레이션 프로세스 동안, VM들 각각은 다운타임이 발생하지 않도록 온라인 상태를 유지한다.
[0083] 이제 도 10을 참조하면, 본 발명의 하나 도는 그 이상의 실시 예들에 따른 마이그레이션을 수행하기 위한 방법(1000)의 플로차트가 제공된다. 방법(1000)은 블록(1002)에서 시작하여 블록(1004)로 진행하고, 여기서 소스 서버에서 타겟 서버로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형을 결정하는 단계를 제공한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, 운영 체제는 실시간 파티션 마이그레이션을 시작한다. 이동성 프로세스(The mobility process)는 프로세서 상태, 메모리, 부착된 가상 디바이스들, 및 연결된 사용자들을 포함하는 시스템 환경을 다른 파티션이나 다른 서버로 전송한다.
[0084] 그 다음, 운영 체제는 마이그레이션이 임시 마이그레이션인지 영구 마이그레이션인지를 표시한다. 만일 마이그레이션이 임시 마이그레이션으로 결정되면, 소스 서버는 그 상태를 유지한다. 만일 마이그레이션이 영구 마이그레이션으로 결정되면, 소스 서버는 마이그레이션에 따라 상태 정보를 무효화하고 자원들을 해제한다. 발명의 범위 내에서 다른 유형들도 고려될 수 있다는 것을 이해해야 한다.
[0085] 소스 하이퍼바이저/MSP는 마이그레이션 유형이 임시라고 결정한다. 소스 하이퍼바이저/MSP는 마이그레이션 유형이 임시 유형 마이그레이션임을 대상-측 하이퍼바이저/MSP에 알려준다.
[0086] 블록(1006)은 소스 서버에서 타겟 서버로 실시간 마이그레이션을 수행하고, 블록(1008)은 마이그레이션 유형에 기초하여 마이그레이트 될 페이지들을 유지한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, 만일 마이그레이션 유형이 영구 마이그레이션 유형이라면, 마이그레이션된 가상 머신이나 가상 서버의 하이퍼바이저 페이지 테이블은 사용을 위해 해제된다(freed). 만일 마이그레이션 유형이 가상 서버 또는 가상 머신이 소스 서버로 백-마이그레이트 되는 임시 마이그레이션 유형이라면, 하이퍼바이저 페이지 테이블 및 상태 정보는 유지된다. 즉, 페이지 테이블과 상태 정보는 저장되며 백 마이그레이션 프로세스 동안에 사용된다.
[0087] 블록(1010)은 하이퍼바이저 페이지 테이블에서 수정들을 추적한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, 오리지널 하이퍼바이저 페이지 테이블의 사본이 타겟 서버에 저장된다. 이 하이퍼바이저 페이지 테이블은 마이그레이션 프로세스 동안에 업데이트 되었던 페이지들을 추적하기 위해 추가 비트(MAM 비트)를 포함한다. 서버는 오리지널 하이퍼바이저 페이지 테이블에서 수신된 페이지들의 사본을 유지한다. 오리지널 하이퍼바이저 페이지 테이블은 마이그레이션 동안에 수정된 페이지들을 추적한다.
[0088] 마이그레이션 프로세스가 완료된 후, 대리 LPAR이 커널 업데이트 프로세스를 위한 업데이트들을 저장하기 위해 사용된다. 커널 업데이트 동안에, 대리 페이지 테이블(a surrogate page table)이 LKU 동안 변경된 페이지들을 추적하기 위해 사용된다. 오리지널 HPT와 마찬가지로, 대리 페이지 테이블은 MAM을 사용하여 LKU 동안 변경된 페이지를 추적한다.
[0089] 블록(1012)는 마이그레이션 유형에 기초하여 백-마이그레이션을 수행한다. 본 발명의 하나 또는 그 이상의 실시 예들에서, 백 마이그레이션은 마이그레이션 유형이 일시적인 마이그레이션일 때 수행된다. 실시간 마이그레이션 프로세스 및 실시간 업데이트 프로세스 동안에 수정된 페이지들만 소스 서버로 다시 전송된다. 다시 말해, 하이퍼바이저 페이지 테이블에서 MAM 비트에 의해 업데이트된 것으로 표시된 페이지들만 소스 서버로 다시 전송된다. 이렇게 하면 모든 페이지가 업데이트되었는지 여부에 관계없이 더 이상 임시 마이그레이션을 완료하기 위해 소스로 다시 전송될 필요가 없으므로 전체 마이그레이션 시간이 향상된다.
[0090] LKU를 수행한 후, 대리 HPT는 백 마이그레이션을 위해 준비된다. 프로세서는 마이그레이트 될 페이지들의 목록을 생성하는데, MAM 비트들이 세트된 페이지들만 추가함으로써 그렇게 한다. 서버1로의 LPM 백 마이그레이션은 수정된 페이지들만 전송한다. 본 발명의 하나 또는 그 이상의 실시 예들에서 MAM 비트에 의해서 표시된, 수정된 페이지들은 마이그레이션 프로세스를 완료하기 위해 보존된 페이지와 병합된다. 블록(1014)에서, 방법(1000)은 종료된다. 방법(1000)은 도 10에 도시된 단계들에 국한되지 않고 다른 시퀀스 또는 다른 단계들이 사용될 수 있음을 이해해야 한다.
[0091] 여기에 설명된 기술들은 페이지 메모리를 관리하고, 메모리의 변경들을 추적하며, 그리고 변경된 페이지들만 하이퍼바이저로 전송함으로써 임시 마이그레이션을 완료하여 실시간 마이그레이션을 향상시킨다.
[0092] 본 발명의 기술적 효과와 이점은 LPM 시간을 줄임으로써 전반적인 실시간 업데이트 연산 시간을 개선하는 것이다. 하이퍼바이저와 MSP(Mover Service Partition)는 수정된 페이지들만 전송한다.
[0093] 본 발명은 시스템, 방법, 및/또는 통합의 모든 가능한 기술적 세부 레벨에서 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체(또는 미디어)를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0094] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 기계적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0095] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 네트워크, 광역 네트워크 및/또는 무선 네트워크 등의 네트워크을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 네트워크은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 네트워크으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0096] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)을 포함한 모든 종류의 네트워크을 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0097] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0098] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0099] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[00100] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 실시 예들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 플로 차트 예시도의 각 블록, 및 블록도들 및/또는 플로 차트 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[00101] 본 발명의 다양한 실시 예들에 대한 설명은 예시의 목적으로 제공되는 것이며, 개시된 실시 예들이 전부라거나 이들에 한정하려는 의도가 있는 것은 아니다. 많은 수정들 및 변형들이 기술된 실시 예들의 범위와 정신을 벗어남이 없이 이 기술 분야에서 통상의 지식을 가진 자들에게 명백할 것이다. 여기서 사용된 용어들은 본 발명의 실시 예들의 원리들, 시장에서 발견된 기술들에 대한 실제 응용 또는 기술적 개선을 잘 설명하기 위해서, 또는 이 기술 분야에서 통상의 지식을 가진 자들이 여기서 기술된 실시 예들을 이해할 수 있도록 하기 위해, 선택되고 기술되었다.

Claims (16)

  1. 실시간 업데이트(a live update)를 수행하기 위한 컴퓨터-구현 방법에 있어서, 상기 방법은:
    소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형(a migration type)을 결정하는 단계;
    상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계;
    상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계(maintaining);
    하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계(tracking); 및
    상기 마이그레이션 유형에 기초하여, 백-마이그래이션(a back-migration)을 수행하는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 방법은 상기 타겟 서버의 하이퍼바이저 테이블에서 상기 실시간 마이그레이션 동안 수정들을 추적하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 방법은 상기 타겟 서버의 제2 하이퍼바이저 테이블에서 상기 실시간 마이그레이션이 완료된 후 발생하는 수정들을 추적하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  4. 이전 항들 중 어느 한 항에 있어서, 상기 방법은 상기 마이그레이션 유형이 영구 마이그레이션(a permanent migration) 인지 또는 임시 마이그레이션(a temporary migration) 인지를 결정하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  5. 제4항에 있어서, 상기 마이그레이션 유형이 영구 마이그레이션이라고 결정하는 것에 응답하여, 상기 영구 마이그레이션과 연관된 소스 서버의 페이지 메모리를 해제하는 단계(freeing)를 포함하는
    컴퓨터 구현 방법.
  6. 이전 항들 중 어느 한 항에 있어서, 상기 수정들을 추적하는 단계는 수정된 페이지들을 표시하기 위해 마이그레이션-후-수정(modification-after-migration: MAM) 비트를 사용하는 단계를 포함하는
    컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 백-마이그레이션은 상기 MAM 비트에 의해서 표시된 상기 하이퍼바이저 테이블에서의 변경들(changes)만 전송하고, 상기 변경들은 상기 소스 서버에서 유지된 페이지들과 결합되는
    컴퓨터 구현 방법.
  8. 실시간 업데이트들을 수행하는 시스템에 있어서, 상기 시스템은:
    하나 또는 그 이상의 프로세서들; 및
    상기 하나 또는 그 이상의 프로세서들에 결합된 적어도 하나의 메모리를 포함하고, 상기 하나 또는 그 이상의 프로세서들은 방법을 수행하도록 구성되며, 상기 방법은:
    소스 서버(a source server)에서 타겟 서버(a target server)로 실시간 마이그레이션을 수행하기 위해 마이그레이션 유형을 결정하는 단계;
    상기 소스 서버에서 상기 타겟 서버로 상기 실시간 마이그레이션을 수행하는 단계;
    상기 마이그레이션 유형에 기초하여, 마이그레이트 될 페이지들을 유지하는 단계;
    하이퍼바이저 페이지 테이블에서 수정들을 추적하는 단계; 및
    상기 마이그레이션 유형에 기초하여, 백-마이그래이션을 수행하는 단계를 포함하는
    시스템.
  9. 제8항에 있어서, 상기 하나 또는 그 이상의 프로세서들은 상기 타겟 서버의 하이퍼바이저 테이블에서 상기 실시간 마이그레이션 동안 수정들을 추적하는 단계를 수행하도록 구성되는
    시스템.
  10. 제9항에 있어서, 상기 하나 또는 그 이상의 프로세서들은 상기 타겟 서버의 제2 하이퍼바이저 테이블에서 상기 실시간 마이그레이션이 완료된 후 발생하는 수정들을 추적하는 단계를 수행하도록 구성되는
    시스템.
  11. 제8항 내지 제10항의 항들 중 어느 한 항에 있어서, 상기 하나 또는 그 이상의 프로세서들은 상기 마이그레이션 유형이 영구 마이그레이션 인지 또는 임시 마이그레이션 인지를 결정하는 단계를 수행하도록 구성되는
    시스템.
  12. 제11항에 있어서, 상기 마이그레이션 유형이 영구 마이그레이션이라고 결정하는 것에 응답하여, 상기 하나 또는 그 이상의 프로세서들은 상기 영구 마이그레이션과 연관된 소스 서버의 페이지 메모리를 해제하는 단계(freeing)를 수행하도록 구성되는
    시스템.
  13. 제8항 내지 제12항의 항들 중 어느 한 항에 있어서, 상기 수정들을 추적하는 단계는 수정된 페이지들을 표시하기 위해 마이그레이션-후-수정(modification-after-migration: MAM) 비트를 사용하는 단계를 포함하는
    시스템.
  14. 제13항에 있어서, 상기 백-마이그레이션은 상기 MAM 비트에 의해서 표시된 상기 하이퍼바이저 테이블에서의 변경들만 전송하고, 상기 변경들은 상기 소스 서버에서 유지된 페이지들과 결합되는
    시스템.
  15. 실시간 업데이트들을 수행하기 위한 컴퓨터 프로그램 제품에 있어서, 컴퓨터 프로그램 제품은:
    제1항 내지 제7항의 항들 중 어느 한 항에 따른 방법을 수행하기 위해 처리회로에 의해서 판독 가능하고 상기 처리회로에 의한 실행을 위한 명령들을 저장하는 컴퓨터 판독 가능 스토리지 매체를 포함하는
    컴퓨터 프로그램 제품.
  16. 컴퓨터 판독 가능 매체 상에 저장되고 디지털 컴퓨터의 내부 메모리에 로드 할 수 있는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은:
    상기 프로그램이 컴퓨터 상에서 실행될 때, 제1항 내지 제7항의 항들 중 어느 한 항에 따른 방법을 수행하기 위한, 소프트웨어 코드 부분들을 포함하는
    컴퓨터 프로그램.
KR1020227005253A 2019-09-25 2020-09-23 크로스 프레임 실시간 업데이트들의 성능 향상 KR20220035933A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/581,883 2019-09-25
US16/581,883 US11340938B2 (en) 2019-09-25 2019-09-25 Increasing the performance of cross the frame live updates
PCT/IB2020/058880 WO2021059153A1 (en) 2019-09-25 2020-09-23 Increasing performance of cross frame live updates

Publications (1)

Publication Number Publication Date
KR20220035933A true KR20220035933A (ko) 2022-03-22

Family

ID=74881885

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227005253A KR20220035933A (ko) 2019-09-25 2020-09-23 크로스 프레임 실시간 업데이트들의 성능 향상

Country Status (8)

Country Link
US (1) US11340938B2 (ko)
JP (1) JP7491650B2 (ko)
KR (1) KR20220035933A (ko)
CN (1) CN114424180A (ko)
AU (1) AU2020351839B2 (ko)
DE (1) DE112020004522T5 (ko)
GB (1) GB2602768B (ko)
WO (1) WO2021059153A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113364806B (zh) * 2021-06-30 2023-04-07 深圳前海微众银行股份有限公司 一种服务接口迁移的校验方法及装置
US11586371B2 (en) * 2021-07-23 2023-02-21 Vmware, Inc. Prepopulating page tables for memory of workloads during live migrations
US12050798B2 (en) 2021-07-29 2024-07-30 International Business Machines Corporation Memory migration within a multi-host data processing environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019962B2 (en) 2007-04-16 2011-09-13 International Business Machines Corporation System and method for tracking the memory state of a migrating logical partition
JP5363379B2 (ja) * 2009-05-20 2013-12-11 ルネサスエレクトロニクス株式会社 通信システム
CN101819545B (zh) 2010-04-09 2012-07-25 济南银泉科技有限公司 一种利用虚拟化技术实现平台迁移的方法
JP2013080346A (ja) 2011-10-03 2013-05-02 Daiwa Securities Group Inc 情報処理装置、保守作業支援方法および保守作業支援用プログラム
US9183035B2 (en) * 2013-11-08 2015-11-10 International Business Machines Corporation Virtual machine migration with swap pages
US9727374B2 (en) 2015-04-21 2017-08-08 International Business Machines Corporation Temporary virtual machine migration for improved software application warmup
US10684876B2 (en) 2015-05-14 2020-06-16 Netapp, Inc. Migration of virtual machine data using native data paths
US10540196B2 (en) 2016-07-01 2020-01-21 Intel Corporation Techniques to enable live migration of virtual environments
US10635420B2 (en) 2016-07-12 2020-04-28 Oracle International Corporation Overriding a migrated method in an updated type
US10691477B2 (en) 2016-09-27 2020-06-23 Red Hat Israel, Ltd. Virtual machine live migration using intelligent order of pages to transfer
US9928056B1 (en) 2016-10-10 2018-03-27 International Business Machines Corporation Operating system update management
US11392508B2 (en) * 2017-11-29 2022-07-19 Advanced Micro Devices, Inc. Lightweight address translation for page migration and duplication
US10768965B1 (en) * 2018-05-02 2020-09-08 Amazon Technologies, Inc. Reducing copy operations for a virtual machine migration
US11579909B2 (en) * 2018-07-31 2023-02-14 Vmware, Inc. Honoring resource scheduler constraints during maintenances

Also Published As

Publication number Publication date
DE112020004522T5 (de) 2022-07-07
WO2021059153A1 (en) 2021-04-01
JP7491650B2 (ja) 2024-05-28
AU2020351839A1 (en) 2022-03-17
US11340938B2 (en) 2022-05-24
US20210089347A1 (en) 2021-03-25
JP2022550280A (ja) 2022-12-01
CN114424180A (zh) 2022-04-29
AU2020351839B2 (en) 2023-11-09
GB2602768B (en) 2022-12-14
GB2602768A (en) 2022-07-13
GB202204969D0 (en) 2022-05-18

Similar Documents

Publication Publication Date Title
US11210759B2 (en) Placement optimization for virtualized graphics processing
US11061709B2 (en) Storage management for deployment of virtual machine
US9424097B1 (en) Dynamically managing workload placements in virtualized environments based on current user globalization customization requests
US10747581B2 (en) Virtual machine migration between software defined storage systems
US9904975B2 (en) Scaling for virtualized graphics processing
US20190026141A1 (en) Maintaining unallocated hosts of a pre-configured hyper-converged computing device at a baseline operating system version
US9928056B1 (en) Operating system update management
US20180020077A1 (en) Live migration of containers based on geo-location
AU2020351839B2 (en) Increasing performance of cross frame live updates
US11099952B2 (en) Leveraging server side cache in failover scenario
US20200167093A1 (en) Storage virtualization with high availability
WO2023056183A1 (en) Offloaded container execution environment
US9542314B2 (en) Cache mobility
US12050930B2 (en) Partition migration with critical task prioritization
US9727374B2 (en) Temporary virtual machine migration for improved software application warmup
US9935824B2 (en) Virtualization of consistency groups
US11782623B2 (en) Transferring an operating image into a multi-tenant environment
US11960917B2 (en) Live migration and redundancy for virtualized storage

Legal Events

Date Code Title Description
A201 Request for examination