CN101271409B - 用于迁移逻辑分区的装置和方法以及设备 - Google Patents

用于迁移逻辑分区的装置和方法以及设备 Download PDF

Info

Publication number
CN101271409B
CN101271409B CN2008100858553A CN200810085855A CN101271409B CN 101271409 B CN101271409 B CN 101271409B CN 2008100858553 A CN2008100858553 A CN 2008100858553A CN 200810085855 A CN200810085855 A CN 200810085855A CN 101271409 B CN101271409 B CN 101271409B
Authority
CN
China
Prior art keywords
place
logical partition
operating system
migration
call
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008100858553A
Other languages
English (en)
Other versions
CN101271409A (zh
Inventor
W·J·阿姆斯特朗
D·A·拉森
N·纳亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101271409A publication Critical patent/CN101271409A/zh
Application granted granted Critical
Publication of CN101271409B publication Critical patent/CN101271409B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种用于迁移逻辑分区的装置和方法以及设备。一种分区迁移机制迁移执行操作系统的逻辑分区并在该逻辑分区中的全部资源已完成迁移之前继续使用该逻辑分区。当分区被迁移时,调用检查点机制在调用分区管理器时创建操作系统的状态的检查点。在执行对分区管理器的调用之前,进行检查以确定该调用所需的全部资源是否可用。如果可用,则执行分区管理器调用。如果该调用所需的全部资源不都可用,则指示资源故障,其使得从上一次检查点恢复操作系统状态并预占对应的虚拟CPU,直到引起故障的资源变得可用为止。在虚拟CPU等待资源变得可用时,可以执行不需要缺失的资源的异常。

Description

用于迁移逻辑分区的装置和方法以及设备
技术领域
本公开内容一般地涉及数据处理,并且更为特别地涉及逻辑分区的移动。
背景技术
自从计算机时代开始以来,计算机系统已发展成可具有许多不同设置的极其复杂的设备。计算机系统通常包括硬件(例如半导体,电路板,等等)和软件(例如计算机程序)的组合。随着半导体工艺和计算机架构的进步推动计算机硬件的性能变得越来越高,越来越复杂的计算机软件发展为利用硬件的这种更高性能,从而目前的计算机系统比几年前的计算机系统强大得多。
具体的计算机系统上的硬件和软件的组合限定了计算环境。因此,不同硬件平台和不同操作系统提供不同的计算环境。近年来,工程师已认识到可在同一物理计算机系统上通过逻辑地将计算机系统资源分区成不同的计算环境来提供不同的计算环境。IBM开发的p系列的计算机系统是支持逻辑分区的计算机系统的一个例子。如果想要对p系列的计算机系统进行逻辑分区,则安装分区管理器代码(在p系列的术语中被称为“管理程序(hypervisor)”),其允许在同一平台上限定不同的计算环境。一旦安装了分区管理器,则可以创建限定不同计算环境的逻辑分区。分区管理器管理逻辑分区以确保它们可共享所需的计算机系统中的资源而同时维护由逻辑分区限定的独立的计算环境。
包括多个逻辑分区的计算机系统通常在各逻辑分区之间共享资源。例如,具有单个CPU的计算机系统可以具有已限定的两个逻辑分区,其中50%的CPU被分配给每个逻辑分区,30%的存储器被分配给第一逻辑分区且67%的存储器被分配给第二逻辑分区,并且两个不同的I/O插槽被分配给这两个逻辑分区,每个分区一个。一旦逻辑分区被限定并且共享的资源被分配给各逻辑分区,则每个逻辑分区用作独立的计算机系统。因此,在上面的具有带两个逻辑分区的单个计算机系统的例子中,对于所有实际用途而言这两个逻辑分区将看起来是两个独立的和截然不同的计算机系统。
存在需要移动逻辑分区的时候。例如,如果安装了新计算机系统以接管正在运行逻辑分区的老计算机系统的功能,则需要将老计算机系统上的逻辑分区移动或迁移到该新计算机系统。然而,迁移逻辑分区的操作是费时的。如果逻辑分区直到迁移完成才能使用,则将产生不可接受的耽误。如果没有一种以允许在完成迁移之前使用逻辑分区的方式来迁移逻辑分区的方法,则计算机行业在迁移逻辑分区时将继续遭受过长的停机时间的困扰。
发明内容
一种分区迁移机制移动执行操作系统的逻辑分区并且在该逻辑分区中的全部资源已完成迁移之前继续使用(resume)该逻辑分区。当分区被迁移时,调用检查点机制在分区管理器被调用时创建操作系统状态的检查点。在执行对分区管理器的调用之前,进行检查以确定该调用所需的全部资源是否可用。如果可用,则执行分区管理器调用。如果该调用所需的全部资源不可用,则指示资源故障,其使得从上一次检查点恢复操作系统状态并且预占对应的虚拟CPU,直到引起故障的资源变得可用为止。在虚拟CPU等待资源变得可用时,可以执行不需要引起故障的资源的异常(exception)。从而得到一种可以以最小停机时间来快速迁移逻辑分区的系统。
根据本发明的第一方面,提供了一种用于分区管理的装置,包括:分区迁移装置,用于将执行操作系统的逻辑分区从第一位置迁移到第二位置,所述分区迁移装置包括调用检查点装置,所述调用检查点装置用于在将所述逻辑分区从所述第一位置迁移到所述第二位置期间每次调用所述用于分区管理的装置时保存所述操作系统的状态的检查点,其中所述分区迁移装置还用于确定每次调用所述用于分区管理的装置的全部所需资源是否可用,并且如果不可用,则所述分区迁移装置从上一次检查点恢复操作系统的状态并预占所述第二位置处的对应的虚拟处理器,直到所需资源可用为止。
在一些实施方式中,当所述所需资源可用时所述分区迁移装置使能所述对应的虚拟处理器。
在一些实施方式中,所述第二位置包括耦合到所述用于分区管理的装置的计算机系统。
在一些实施方式中,还包括用于记录当所述对应的虚拟处理器被预占时在所述操作系统上已使能的功能,并允许所述虚拟处理器执行仅需要所述第二位置处可用资源的已使能的功能中的任何一个的装置。
在一些实施方式中,所述功能包括异常。
在一些实施方式中,还包括用于当调用的全部所需资源在所述第二位置处都可用时执行对所述用于分区管理的装置的调用的装置。
根据本发明的第二方面,提供了一种用于将执行操作系统的逻辑分区从第一位置迁移到第二位置的计算机实现的方法,所述方法包括以下步骤:开始所述逻辑分区从所述第一位置到所述第二位置的迁移;在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,使能所述第二位置中的逻辑分区;在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,针对在所述第二位置中的所述逻辑分区中对分区管理器的每次调用,存储在执行所述调用之前的所述操作系统的状态的检查点;在执行所述调用之前,确定所述调用的全部所需资源是否已经被迁移到所述第二位置;如果所述调用的全部所需资源已经被迁移到所述第二位置,则执行对所述分区管理器的调用;如果所述调用的全部所需资源还没被迁移到所述第二位置,则执行以下步骤:从上一次检查点恢复所述操作系统的状态;以及预占对应的虚拟处理器,直到所需资源可用为止。
在一些实施方式中,该方法还包括当所需资源可用时使能所述对应的虚拟处理器的步骤。
在一些实施方式中,第二位置包括与限定第一位置的第一计算机系统不同的第二计算机系统。
在一些实施方式中,该方法还包括以下步骤:记录当所述对应的虚拟处理器被预占时在所述操作系统上已使能的功能;以及允许所述虚拟处理器执行仅需要所述第二位置处可用资源的任何已使能的功能。
在一些实施方式中,所述功能包括异常。
在一些实施方式中,该方法还包括当调用的全部所需资源在所述第二位置处都可用时执行对所述分区管理器的调用的步骤。
根据本发明的第三方面,提供了一种计算机实现的方法,用于将执行操作系统的逻辑分区从第一位置迁移到第二位置,所述方法包括以下步骤:开始所述逻辑分区从所述第一位置到所述第二位置的迁移;在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,使能所述第二位置中的所述逻辑分区;在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,针对在所述第二位置中的所述逻辑分区中对分区管理器的每次调用,存储在执行所述调用之前的所述操作系统的寄存器状态的检查点;在执行所述调用之前,确定所述调用的全部所需资源是否已经被迁移到所述第二位置;如果所述调用的全部所需资源已经被迁移到所述第二位置,则执行对所述分区管理器的调用;如果所述调用的全部所需资源还没被迁移到所述第二位置,则执行以下步骤:从上一次检查点恢复所述操作系统的寄存器状态;记录当对应的虚拟处理器被预占时在所述操作系统上已使能的功能;预占所述对应的虚拟处理器直到所需资源可用为止;允许所述虚拟处理器执行仅需要所述第二位置处可用资源的任何已使能的功能;以及当所需资源变得可用时使能所述对应的虚拟处理器。
根据本发明的第四方面,提供了一种用于将执行操作系统的逻辑分区从第一位置迁移到第二位置的计算机实现的设备,包括:用于开始所述逻辑分区从所述第一位置到所述第二位置的迁移的装置;用于在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,使能所述第二位置中的逻辑分区的装置;用于在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,针对在所述第二位置中的所述逻辑分区中对分区管理器的每次调用,存储在执行所述调用之前的所述操作系统的状态的检查点的装置;用于在执行所述调用之前,确定所述调用的全部所需资源是否已经被迁移到所述第二位置的装置;用于如果所述调用的全部所需资源已经被迁移到所述第二位置,则执行对所述分区管理器的调用的装置;用于如果所述调用的全部所需资源还没被迁移到所述第二位置,则执行以下操作的装置:从上一次检查点恢复所述操作系统的状态;以及预占对应的虚拟处理器,直到所需资源可用为止。
在一些实施方式中,该设备还包括用于当所需资源可用时使能所述对应的虚拟处理器的装置。
在一些实施方式中,所述第二位置包括与限定所述第一位置的第一计算机系统不同的第二计算机系统。
在一些实施方式中,该设备还包括:用于记录当所述对应的虚拟处理器被预占时在所述操作系统上已使能的功能的装置;以及用于允许所述虚拟处理器执行仅需要所述第二位置处可用资源的任何已使能的功能的装置。
在一些实施方式中,所述功能包括异常。
在一些实施方式中,该设备还包括用于当调用的全部所需资源在所述第二位置处都可用时执行对所述分区管理器的调用的装置。
如在附图中所说明的,从以下更为具体地的描述中,上述以及其它特征和优点将变得明显。
附图说明
本公开内容将结合附图进行描述,其中相同的标号表示相同的单元,以及:
图1是支持进行逻辑分区和实时分区迁移的计算机装置的框图;
图2是示出在两个计算机系统之间迁移逻辑分区的示例的联网的计算机系统;
图3是用于迁移逻辑分区的第一现有技术的方法的流程图;
图4是用于迁移逻辑分区的第二现有技术的方法的流程图;
图5是示出用于执行实时迁移逻辑分区的方法的流程图;
图6是示出图5中的步骤575的一种可能实现的流程图。
具体实施方式
此处,本权利要求书和公开内容允许通过甚至在完成迁移逻辑分区的全部资源之前继续执行该逻辑分区来尽可能快地迁移逻辑分区。尽管迁移在进行中,但是分区迁移机制在每次调用分区管理器时以保存的操作系统的状态的形式记录检查点。在执行对分区管理器的调用之前,分区管理器确保用于该调用的所需资源都可用。如果全部所需资源不都可用,则操作系统的状态恢复自先前存储的检查点,并且对应的虚拟CPU被预占,直到所需资源变得可用为止。在被预占且正等待所需资源时,如果在该预占之前使能的某些异常不需要不可用的资源,则这些异常仍可进行处理。通过这种方式,可以以最小的停机时间来非常快地移动逻辑分区。
参考图1,计算机系统100是增强型IBM eServer p系列的计算机系统,并且代表一种合适类型的支持逻辑分区和分区迁移的计算机系统。本领域的普通技术人员将意识到,此处的公开内容同样适用于支持逻辑分区的任何计算机系统。如图1中所示出,计算机系统100包括一个或多个连接到主存储器120的处理器110、大容量存储接口130、显示器接口140、网络接口150、以及多个I/O插槽180。这些系统部件通过使用系统总线160进行互连。大容量存储接口130用于将大容量存储设备(诸如直接存取存储设备155)连接到计算机系统100。一个具体类型的直接存取存储设备是CD-RW驱动器,其可从CD-RW195中读取数据。注意,大容量存储接口130、显示器接口140和网络接口150实际上可以以耦合到I/O插槽180的适配器来实现。I/O适配器是一种合适的网络接口150,其可以以插入I/O插槽180之一的外部卡来实现。另外,诸如调制解调器之类的其它I/O设备可插入I/O插槽180之一。
主存储器120优选地包含分区管理器121和N个逻辑分区,其在图1中被示出为逻辑分区125A到125N。分区管理器121优选地创建这N个逻辑分区。每个逻辑分区优选地包括对应的操作系统,其在图1中被示出为操作系统126A到126N。分区管理器包括分区迁移机制122,其迁移逻辑分区并在逻辑分区的全部资源的迁移完成之前继续执行新位置中的逻辑分区。这是通过使用调用检查点机制123来实现的。当迁移正在进行但还没有完成时,调用检查点机制123在每次调用分区管理器时保存操作系统的寄存器状态。在执行对分区管理器的调用之前,进行检查以弄清调用所需的全部资源是否已经被迁移。如果调用所需的全部资源已经被迁移,则执行分区管理器调用。如果一个或多个所需资源仍然不可用(也即,还没有被迁移),则恢复操作系统的检查点寄存器保存状态,并且对应于调用的虚拟CPU被预占,直到全部所需资源可用为止。如果异常的全部所需资源是可用的,则被预占的虚拟CPU仍可处理在分区管理器被预占之前在该操作系统上已使能的异常。从而得到一种允许以最小的停机时间来非常快地迁移逻辑分区的系统。这在本文中被称为“实时分区迁移”,因为分区可以被移动,并在迁移完成之前在新位置继续使用,而无需重启逻辑分区。实际测试已示出,可以以亚秒级的延迟来如此处所讨论的那样迁移逻辑分区,由此在迁移逻辑分区时提供了可接受的延迟。
操作系统126是多任务操作系统,诸如AIX或Linux;然而,本领域的普通技术人员将意识到,本公开内容的精神和范围不限于任何一个操作系统。任何合适的操作系统都可被使用。操作系统126是复杂的程序,其包含低级代码以管理计算机系统100的资源。这些资源中的某些是处理器110、主存储器120、大容量存储接口130、显示器接口140、网络接口150、系统总线160、以及I/O插槽180。每个分区中的操作系统126可与其它分区中的操作系统相同,或者可以是完全不同的操作系统。因此,一个分区可以运行AIX操作系统,而同时不同的分区可运行AIX的另一实例,其可能是不同版本的或者具有不同的环境设置(例如时区或语言)。逻辑分区中的操作系统甚至可以与AIX不相同,只要它与硬件兼容(诸如Linux)。通过这种方式,逻辑分区可以在同一物理计算机系统上提供完全不同的计算环境。
分区125A-125N在图1中示出是驻留在主存储器120内。然而,本领域的普通技术人员将认识到,分区是一种逻辑构造,其包括除了存储器之外的其它资源。逻辑分区通常指定一部分存储器,以及对处理器能力和诸如I/O插槽和可驻留在I/O插槽180上的I/O适配器之类的其它系统资源的分配。因此,一个分区可被限定成包括两个处理器和一部分存储器120,以及一个或多个I/O处理器,该I/O处理器可提供大容量存储接口130、显示器接口140、网络接口150或者到I/O适配器或插入I/O插槽180中的其它设备(诸如调制解调器)的接口的功能。接着,另一分区可被限定成包括另外三个处理器、不同部分的存储器120、以及一个或多个I/O处理器。这些分区在图1中被示出以象征性地代表逻辑分区。还要注意,分区管理器121优选地驻留在与逻辑分区相分开的存储器和硬件中,并且包括逻辑分区不可直接使用的设施和机制。
计算机系统100使用公知的虚拟寻址机制,虚拟寻址机制允许计算机系统100的程序表现得仿佛它们只有权对大型的单个存储实体进行访问而不是对诸如主存储器120和DASD设备155之类的多个较小的存储实体进行访问。因此,当分区管理器121和分区125A-125N被示出驻留在主存储器120中时,本领域的普通技术人员将认识到这些项不一定同时都完全包含于主存储器120中。还应当注意,此处术语“存储器”用于一般地指计算机系统100的整个虚拟存储器。
处理器110可由一个或多个微处理器和/或集成电路来构造。处理器110执行存储在主存储器120上的程序指令。主存储器120存储处理器110可以访问的程序和数据。当计算机系统100启动时,处理器110首先执行组成分区管理器121的程序指令,其初始化逻辑分区中的操作系统。
虽然计算机系统100被示出为仅包含单个系统总线,但是本领域的普通技术人员将意识到可以使用具有多总线的计算机系统来实现如此处所公开的分区迁移。另外,所使用的I/O接口可以每个都包括用于从处理器110卸载高计算强度的处理的独立的完全编程的微处理器,诸如I/O加速器处理器,或者可以是简单的工业标准I/O适配器(IOA)。
显示器接口140用于直接将一个或多个显示器165连接到计算机系统100。这些显示器165用于允许系统管理员和用户与计算机系统100进行通信,显示器165可以是非智能(也即,哑的(dumb))终端或全部可编程的工作站。然而,应该注意,尽管提供显示器接口140以支持与一个或多个显示器165的通信,但是计算机系统100不一定需要显示器165,因为所有需要的与用户的交互和其它处理可经由网络接口150发生。
网络接口150用于通过网络170将其它计算机系统和/或工作站(例如图1中的175)连接到计算机系统100。网络接口150和网络170广泛地代表用于互连电子设备的任何合适的方式,而不论网络170是否包括现在的模拟和/或数字技术或者是否经由未来的某种组网机制。另外,许多不同网络协议可用于实现网络。这些协议是允许计算机通过网络170进行通信的专用计算机程序。TCP/IP(传输控制协议/网际协议)是合适的网络协议的例子。
此刻,重点要注意,尽管上面的描述是在具有全部功能的计算机系统的环境中,但是本领域的普通技术人员将意识到此处所公开的和所要求保护的分区管理器能够被分布为各种形式的产品,并且这些保护范围延伸到用于实际实现这种分发的所有合适类型的计算机可读介质。合适的计算机可读介质的例子包括诸如软盘和CD-RW之类的可记录介质(例如图1中的195)。
分区管理器还可作为与客户公司、非赢利机构、政府实体、内部组织结构等等之间的服务约定的一部分被交付。这可包括配置计算机系统以执行此处所描述的方法中的某些或全部,以及部署实现此处所描述的方法中的某些或全部的软件、硬件和web服务。这还可包括:分析客户的操作,响应于该分析而提出建议,构建实现部分建议的系统,将系统集成到现有的处理和基础设施中,测量(metering)系统的使用,将开销分配给系统用户,以及针对系统的使用进行计费。
参考图2,示例的联网的计算机系统200被示出以说明迁移逻辑分区的概念。第一计算机系统210包括分区管理器212,其管理三个逻辑分区即薪水册分区220、HR分区230和销售分区240的功能。每个分区具有对应的存储器。因此,薪水册分区220具有对应的存储器222,HR分区230具有对应的存储器232,而销售分区240具有对应的存储器242。假定第二计算机系统250耦合到第一计算机系统210,并且包括分区管理器252,分区管理器252管理具有对应的存储器272的市场分区270的功能。假定需要将销售分区240从计算机系统210移动到计算机系统220。这可以用现有技术中的不同方式来完成。
参考图3,用于移动称为LP1的逻辑分区的第一方法通过在新位置中创建称为LP2的新逻辑分区来开始(步骤310)。参考图2,这意味着计算机系统250上的逻辑分区260被创建。接下来,新逻辑分区LP2被配置成与正被移动的逻辑分区LP1匹配(步骤320)。对于图2中的例子,这意味着与老逻辑分区240中所分配的那些资源相类似的资源被分配给新逻辑分区260。接下来,第一逻辑分区被停止(步骤240),并且存储器中的内容被移动到新位置中的存储器(步骤250)。在图2中的例子中,这意味着存储器242中的数据被写到新位置中的存储器262中。在步骤330中,在将存储器242中的数据写到新位置262之前,老逻辑分区240必须被停止,以防止老分区240在正被拷贝时改变数据。一旦全部所需资源(包括存储器)已经被转移到新位置,则启用新位置中的逻辑分区(步骤350)。注意,在步骤350中的逻辑分区的启用需要启动该逻辑分区中的操作系统,其需要相当多的时间,由此产生了相当大的延迟,这在许多情况下是不可接受的。
在图4中示出了用于移动逻辑分区的另一现有技术的方法400。这被公知为“实时迁移”,因为逻辑分区在新位置中被继续使用,而不存在在新位置中启动操作系统的延迟。创建新逻辑分区(步骤410)。该新逻辑分区被配置成与老逻辑分区匹配(步骤420)。接着,启用该新逻辑分区(步骤430),其启动操作系统。一旦新逻辑分区中的操作系统被启动并运行,则逻辑分区被暂停(步骤440)。接着,老逻辑分区的状态被拷贝到新逻辑分区(步骤450)。接着,老逻辑分区中的存储器的内容被移动到新逻辑分区中的存储器(步骤460)。接着,第二逻辑分区可被继续使用,其允许新逻辑分区在老逻辑分区由于在步骤450中拷贝状态数据和在步骤460中拷贝存储器的原因而停止的地方立即开始执行。现有技术的方法400通过允许新逻辑分区中的操作系统在转移发生之前进行启动,改进了图3中的现有技术方法300。然而,注意,在步骤440中老逻辑分区的暂停与在步骤470中继续使用第二逻辑分区之间仍然存在相当大的延迟。特别地,在步骤460中移动存储器内容可能要用相当多的时间。让逻辑分区暂停直到完成步骤460中的存储器拷贝,会导致相当大的延迟,这在许多情况下仍然是不可接受的。
为了解决在迁移逻辑分区时过大的延迟的问题,此处,本公开内容和权利要求书提供了以在新逻辑分区中的全部资源(诸如存储器)可用之前就继续使用逻辑分区的方式进行的逻辑分区的实时迁移。某些已知的分区管理器运行在没有使能任何硬件再分配特征的执行环境中。在这种低级固件中,在尝试访问仍不可用的资源时,根本不涉及任何能够生成页错误或类似异常的硬件地址翻译。结果,本公开内容和权利要求书提供了一种新颖且非显而易见的用以在分区迁移期间在资源不可用时检测故障的方式,其允许实时迁移逻辑分区并在逻辑分区上的全部资源可用之前继续使用该逻辑分区。
参考图5,方法500优选地由图1中的分区迁移机制122来执行。当在迁移逻辑分区期间调用分区管理器时(也即在已经开始逻辑分区的迁移之后但是在还未完成迁移之前),方法500开始(步骤510)。首先,在转到(branching)分区管理器调用之前,由操作系统的易失性寄存器状态来制成检查点(步骤520)。检查点仅是操作系统的易失性寄存器状态的时间上的快照。接着,分区管理器调用确定对分区管理器的该调用的全部所需资源在启动执行分区管理器调用的工作之前是否可用(步骤530)。如果全部所需资源都可用(步骤540=是),则执行分区管理器调用(步骤542)。如果用于分区管理器调用的全部所需资源不都可用(步骤540=否),则指示资源故障(步骤544)。响应于资源故障,从上一次检查点获取操作系统的易失性寄存器状态(步骤550)。接着,就在调用分区管理器之前,才将获取的操作系统的易失性寄存器状态与操作系统的非易失性寄存器状态进行组合(步骤555)以提供对操作系统的保存状态的精确表示。经组合的寄存器状态被保存为对应于对分区管理器的调用的虚拟CPU的保存状态(步骤560)。记录在调用分区管理器之前在操作系统上已使能的异常(步骤565)。接着,对应于对分区管理器的调用的虚拟CPU被预占,直到引起步骤544中的资源故障的资源变得可用为止(步骤570)。尽管在步骤570中虚拟CPU被预占,但是它仍然可以执行其全部资源都可用的与引起步骤544中的资源故障的资源可用性非相关的功能(步骤575)。方法500提供了一种在完成迁移逻辑分区之前继续使用新位置中的逻辑分区的方式,其通过提供一种非常简单的检测分区管理器中的资源故障和处理资源故障的的方法来实现。
图5中的步骤575的一种合适的实现示出为图6中的方法575。当运行在逻辑分区中的操作系统中发生异常时,方法575开始(步骤610)。如果该异常位于图5中的步骤565中所创建的已使能的异常的记录中(步骤620=是),并且如果用于该异常的全部资源都可用(步骤630=是),则该异常被处理(步骤640),即使虚拟CPU仍然被预占并正等待引起资源故障的资源,也是如此。如果该异常不在已使能的异常的记录中(步骤620=否),或者如果用于该异常的一个或多个资源不可用(步骤630=否),则该异常被阻断(步骤650),这意味着不允许该异常运行,直到完成对引起资源故障的资源的迁移为止。
此处,本公开内容和权利要求书提供一种简单和有效的方法,用于对逻辑分区的实时迁移并在完成迁移逻辑分区中的全部资源之前继续使用逻辑分区。当逻辑分区具有必须被迁移的大块存储器时,这有极大的好处。分区可以在已迁移一小部分存储器之后继续使用,而不是在继续使用它的新位置中的分区之前为了要转移的存储器块等待不可接受的时间量。实际测试已示出,在许多情况下通过使用这种系统允许在小于一秒的时间内实时迁移逻辑分区,转移在迁移逻辑分区时提供了可接受的延迟。
本领域的普通技术人员将意识到,在本权利要求书的范围内还可有许多变型。因此,尽管上面具体地示出并描述了本公开内容,但是本领域的普通技术人员将理解,在不偏离本发明的精神和范围的条件下可以在形式和细节上做出这些和其它改变。例如,尽管此处具体的例子涉及存储器资源,但是本公开内容和权利要求书显然延伸到逻辑分区中的全部资源。

Claims (19)

1.一种用于分区管理的装置,包括:
分区迁移装置,用于将执行操作系统的逻辑分区从第一位置迁移到第二位置,
所述分区迁移装置包括调用检查点装置,所述调用检查点装置用于在将所述逻辑分区从所述第一位置迁移到所述第二位置期间每次调用所述用于分区管理的装置时保存所述操作系统的状态的检查点,
其中所述分区迁移装置还用于确定每次调用所述用于分区管理的装置的全部所需资源是否可用,并且如果不可用,则所述分区迁移装置从上一次检查点恢复操作系统的状态并预占所述第二位置处的对应的虚拟处理器,直到所需资源可用为止。
2.根据权利要求1所述的用于分区管理的装置,其中当所述所需资源可用时所述分区迁移装置使能所述对应的虚拟处理器。
3.根据权利要求1所述的用于分区管理的装置,其中所述第二位置包括耦合到所述用于分区管理的装置的计算机系统。
4.根据权利要求1所述的用于分区管理的装置,还包括用于记录当所述对应的虚拟处理器被预占时在所述操作系统上已使能的功能,并允许所述虚拟处理器执行仅需要所述第二位置处可用资源的已使能的功能中的任何一个的装置。
5.根据权利要求4所述的用于分区管理的装置,其中所述功能包括异常。
6.根据权利要求1所述的用于分区管理的装置,还包括用于当调用的全部所需资源在所述第二位置处都可用时执行对所述用于分区管理的装置的调用的装置。
7.一种用于将执行操作系统的逻辑分区从第一位置迁移到第二位置的计算机实现的方法,所述方法包括以下步骤:
开始所述逻辑分区从所述第一位置到所述第二位置的迁移;
在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,使能所述第二位置中的逻辑分区;
在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,针对在所述第二位置中的所述逻辑分区中对分区管理器的每次调用,存储在执行所述调用之前的所述操作系统的状态的检查点;
在执行所述调用之前,确定所述调用的全部所需资源是否已经被迁移到所述第二位置;
如果所述调用的全部所需资源已经被迁移到所述第二位置,则执行对所述分区管理器的调用;
如果所述调用的全部所需资源还没被迁移到所述第二位置,则执行以下步骤:
从上一次检查点恢复所述操作系统的状态;以及
预占对应的虚拟处理器,直到所需资源可用为止。
8.根据权利要求7所述的方法,还包括当所需资源可用时使能所述对应的虚拟处理器的步骤。
9.根据权利要求7所述的方法,其中所述第二位置包括与限定所述第一位置的第一计算机系统不同的第二计算机系统。
10.根据权利要求7所述的方法,还包括以下步骤:
记录当所述对应的虚拟处理器被预占时在所述操作系统上已使能的功能;以及
允许所述虚拟处理器执行仅需要所述第二位置处可用资源的任何已使能的功能。
11.根据权利要求10所述的方法,其中所述功能包括异常。
12.根据权利要求7所述的方法,还包括当调用的全部所需资源在所述第二位置处都可用时执行对所述分区管理器的调用的步骤。
13.一种计算机实现的方法,用于将执行操作系统的逻辑分区从第一位置迁移到第二位置,所述方法包括以下步骤:
开始所述逻辑分区从所述第一位置到所述第二位置的迁移;
在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,使能所述第二位置中的所述逻辑分区;
在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,针对在所述第二位置中的所述逻辑分区中对分区管理器的每次调用,存储在执行所述调用之前的所述操作系统的寄存器状态的检查点;
在执行所述调用之前,确定所述调用的全部所需资源是否已经被迁移到所述第二位置;
如果所述调用的全部所需资源已经被迁移到所述第二位置,则执行对所述分区管理器的调用;
如果所述调用的全部所需资源还没被迁移到所述第二位置,则执行以下步骤:
从上一次检查点恢复所述操作系统的寄存器状态;
记录当对应的虚拟处理器被预占时在所述操作系统上已使能的功能;
预占所述对应的虚拟处理器直到所需资源可用为止;
允许所述虚拟处理器执行仅需要所述第二位置处可用资源的任何已使能的功能;以及
当所需资源变得可用时使能所述对应的虚拟处理器。
14.一种用于将执行操作系统的逻辑分区从第一位置迁移到第二位置的计算机实现的设备,包括:
用于开始所述逻辑分区从所述第一位置到所述第二位置的迁移的装置;
用于在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,使能所述第二位置中的逻辑分区的装置;
用于在所述逻辑分区从所述第一位置到所述第二位置的迁移完成之前,针对在所述第二位置中的所述逻辑分区中对分区管理器的每次调用,存储在执行所述调用之前的所述操作系统的状态的检查点的装置;
用于在执行所述调用之前,确定所述调用的全部所需资源是否已经被迁移到所述第二位置的装置;
用于如果所述调用的全部所需资源已经被迁移到所述第二位置,则执行对所述分区管理器的调用的装置;
用于如果所述调用的全部所需资源还没被迁移到所述第二位置,则执行以下操作的装置:
从上一次检查点恢复所述操作系统的状态;以及
预占对应的虚拟处理器,直到所需资源可用为止。
15.根据权利要求14所述的设备,还包括用于当所需资源可用时使能所述对应的虚拟处理器的装置。
16.根据权利要求14所述的设备,其中所述第二位置包括与限定所述第一位置的第一计算机系统不同的第二计算机系统。
17.根据权利要求14所述的设备,还包括:
用于记录当所述对应的虚拟处理器被预占时在所述操作系统上已使能的功能的装置;以及
用于允许所述虚拟处理器执行仅需要所述第二位置处可用资源的任何已使能的功能的装置。
18.根据权利要求17所述的设备,其中所述功能包括异常。
19.根据权利要求14所述的设备,还包括用于当调用的全部所需资源在所述第二位置处都可用时执行对所述分区管理器的调用的装置。
CN2008100858553A 2007-03-23 2008-03-21 用于迁移逻辑分区的装置和方法以及设备 Active CN101271409B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/690,174 2007-03-23
US11/690,174 US7882326B2 (en) 2007-03-23 2007-03-23 Live migration of a logical partition

Publications (2)

Publication Number Publication Date
CN101271409A CN101271409A (zh) 2008-09-24
CN101271409B true CN101271409B (zh) 2013-07-03

Family

ID=39775894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100858553A Active CN101271409B (zh) 2007-03-23 2008-03-21 用于迁移逻辑分区的装置和方法以及设备

Country Status (2)

Country Link
US (1) US7882326B2 (zh)
CN (1) CN101271409B (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529897B1 (en) 2003-12-31 2009-05-05 Vmware, Inc. Generating and using checkpoints in a virtual computer system
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7984262B2 (en) * 2008-01-16 2011-07-19 International Business Machines Corporation Data transmission for partition migration
JP5391601B2 (ja) * 2008-07-18 2014-01-15 富士通株式会社 資源転送システム、資源転送方法、情報処理装置及びコンピュータプログラム
US8868622B2 (en) * 2009-02-11 2014-10-21 Hewlett-Packard Development Company, L.P. Method and apparatus for allocating resources in a computer system
US8205117B2 (en) * 2009-02-25 2012-06-19 Hewlett-Packard Development Company, L.P. Migratory hardware diagnostic testing
US8332848B2 (en) * 2009-03-12 2012-12-11 Red Hat Israel, Ltd. Mechanism for staged upgrades of a virtual machine system
US8458284B2 (en) * 2009-06-12 2013-06-04 International Business Machines Corporation Systems and methods for efficient live application migration within bandwidth constrained networks
US8635395B2 (en) * 2009-09-14 2014-01-21 Vmware, Inc. Method of suspending and resuming virtual machines
US20110125979A1 (en) * 2009-11-25 2011-05-26 International Business Machines Corporation Migrating Logical Partitions
US8352702B2 (en) * 2009-12-17 2013-01-08 International Business Machines Corporation Data processing system memory allocation
US8407516B2 (en) * 2009-12-23 2013-03-26 Intel Corporation Controlling memory redundancy in a system
US8752058B1 (en) * 2010-05-11 2014-06-10 Vmware, Inc. Implicit co-scheduling of CPUs
US8484654B2 (en) * 2010-11-23 2013-07-09 International Business Machines Corporation Determining suitable network interface for partition deployment/re-deployment in a cloud environment
CN102761566B (zh) 2011-04-26 2015-09-23 国际商业机器公司 迁移虚拟机的方法和装置
US10289684B2 (en) * 2011-05-03 2019-05-14 Vmware, Inc. Live migration of virtual machine persistent data using mirrored input-output operations
US8880934B2 (en) * 2012-04-04 2014-11-04 Symantec Corporation Method and system for co-existence of live migration protocols and cluster server failover protocols
US9158668B2 (en) * 2012-06-27 2015-10-13 International Business Machines Corporation System and program product to allocate and reallocate CPU resources needed to utilize full available network adapter bandwidth capacity for logical partition migration
US8984240B2 (en) * 2012-08-30 2015-03-17 International Business Machines Corporation Reducing page faults in host OS following a live partition mobility event
US20140232733A1 (en) * 2013-02-19 2014-08-21 Jason Caulkins Graphics Processing Unit Pre-Caching
US9280371B2 (en) * 2013-07-10 2016-03-08 International Business Machines Corporation Utilizing client resources during mobility operations
US9235485B2 (en) * 2013-07-22 2016-01-12 International Business Machines Corporation Moving objects in a primary computer based on memory errors in a secondary computer
US9274853B2 (en) 2013-08-05 2016-03-01 International Business Machines Corporation Utilizing multiple memory pools during mobility operations
US9563481B2 (en) 2013-08-06 2017-02-07 International Business Machines Corporation Performing a logical partition migration utilizing plural mover service partition pairs
US10817320B2 (en) 2015-12-11 2020-10-27 International Business Machines Corporation High resolution timer expiry in live partition migration
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
US10430266B2 (en) * 2016-06-13 2019-10-01 Vmware, Inc. Full state session reviving, forking, and snapshoting based on an application data dump
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9760512B1 (en) 2016-10-21 2017-09-12 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9740647B1 (en) 2016-10-21 2017-08-22 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US10649806B2 (en) * 2017-04-12 2020-05-12 Petuum, Inc. Elastic management of machine learning computing
CN109284166A (zh) * 2017-07-20 2019-01-29 上海木鸡网络科技有限公司 执行程序的方法及装置、存储介质、工作站、终端
CN112559253B (zh) * 2020-12-24 2021-12-03 科东(广州)软件科技有限公司 一种计算机系统数据备份与还原的方法及装置
US20240069980A1 (en) * 2022-08-24 2024-02-29 International Business Machines Corporation Disabling a processor facility on a new processor generation without breaking binary compatibility

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212854A1 (en) * 2000-05-18 2003-11-13 Hitachi, Ltd. Computer system
US20050251802A1 (en) * 2004-05-08 2005-11-10 Bozek James J Dynamic migration of virtual machine computer programs upon satisfaction of conditions

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212854A1 (en) * 2000-05-18 2003-11-13 Hitachi, Ltd. Computer system
US20050251802A1 (en) * 2004-05-08 2005-11-10 Bozek James J Dynamic migration of virtual machine computer programs upon satisfaction of conditions

Also Published As

Publication number Publication date
US7882326B2 (en) 2011-02-01
US20080235482A1 (en) 2008-09-25
CN101271409A (zh) 2008-09-24

Similar Documents

Publication Publication Date Title
CN101271409B (zh) 用于迁移逻辑分区的装置和方法以及设备
US7313793B2 (en) Method for forking or migrating a virtual machine
US9671967B2 (en) Method and system for implementing a distributed operations log
EP2053509B1 (en) System for and method of migrating one or more virtual machines
JP4001873B2 (ja) 論理的にパーティションが作成されたコンピュータ・システム内で割り込みを仮想化するための装置および方法
JP5071913B2 (ja) 同時物理プロセッサ再割り当て方法、システム、およびプログラム
US6275893B1 (en) Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US8370560B2 (en) Symmetric live migration of virtual machines
US7613897B2 (en) Allocating entitled processor cycles for preempted virtual processors
JP2003345612A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
JP2010510607A (ja) システムハードウェアの交換
KR20040028805A (ko) 프로세서로 산출하기 위한 시스템
CN102193824A (zh) 虚拟机均质化以实现跨异构型计算机的迁移
US9875057B2 (en) Method of live migration
CN101211289A (zh) 恢复操作管理系统和方法
US8255639B2 (en) Partition transparent correctable error handling in a logically partitioned computer system
JP2007133544A (ja) 障害情報解析方法及びその実施装置
US9195528B1 (en) Systems and methods for managing failover clusters
CN114035905A (zh) 基于虚拟机的故障迁移方法及装置、电子设备和存储介质
US6810523B2 (en) Efficient thread programming using a single callback function
Dell
US11775395B2 (en) Withdrawing a point-in-time snapshot copy operation within a data consistency application
CN116126471A (zh) 容器创建处理方法、系统、电子设备和可读存储介质
CN116094897A (zh) 一种网页配置方法、装置及存储介质
CN117827502A (zh) 一种基于云计算技术的计算任务处理方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant