Method and apparatus for migrating resources in a multi-processor computer system
First Claim
1. A computer system having a plurality of assignable system resources, including processors, memory and I/O circuitry, the computer system comprising:
- an interconnection mechanism for electrically interconnecting the processors, the memory and the I/O circuitry so that each processor has electrical access to all of the memory and at least some of the I/O circuitry;
a software mechanism for assigning the assignable system resources to a plurality of partitions, each partition including at least one processor, a portion of the memory and a portion of the I/O circuitry;
an operating system instance running in each partition; and
a migration mechanism for migrating one or more of the assignable system resources from one partition to another partition.
4 Assignments
0 Petitions
Accused Products
Abstract
Multiple instances of operating systems execute cooperatively in a single multi-processor computer wherein a single physical machine is subdivided by software into multiple partitions, each with the ability to run a distinct copy, or instance, of an operating system. Each individual instance has the resources it needs to execute independently, but instances cooperate to migrate resources from one partition to another. The migration can be initiated and carried out under control of the operating system instances “on the fly” without intervention of the system administrator. Alternatively, a system administrator can reconfigure the system. Resource migration is carried out under a “push” model in which resources are controlled by an owning partition and must be released by that partition before they can be migrated to another partition. In accordance with this model, a first operating system instance which requires a resource must first request the resource from a second instance. In response to this request, the second instance determines whether it can spare the resource, and if so, begins to bring the resource into an idle state. The resource is actually transferred when the second instance stops using the resource.
389 Citations
42 Claims
-
1. A computer system having a plurality of assignable system resources, including processors, memory and I/O circuitry, the computer system comprising:
-
an interconnection mechanism for electrically interconnecting the processors, the memory and the I/O circuitry so that each processor has electrical access to all of the memory and at least some of the I/O circuitry;
a software mechanism for assigning the assignable system resources to a plurality of partitions, each partition including at least one processor, a portion of the memory and a portion of the I/O circuitry;
an operating system instance running in each partition; and
a migration mechanism for migrating one or more of the assignable system resources from one partition to another partition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for changing a configuration of a computer system, the method comprising the steps of:
-
(a) electrically interconnecting a plurality of assignable system resources, including processors, memory and I/O circuitry, so that each processor has electrical access to all of the memory and at least some of the I/O circuitry;
(b) assigning the assignable system resources to a plurality of partitions, each partition including at least one processor, a portion of the memory, and a portion of the I/O circuitry;
(c) running an operating system instance in each partition; and
(d) changing the configuration by migrating one or more of the assignable system resources from one partition to another partition. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
(d1) moving one or more of the assignable system resources from one partition to another partition during system operation without a reboot of the entire system.
-
-
17. A method according to claim 15 wherein step (d) comprises the step of:
(d2) communicating with an operating system instance in a partition from which a processor is being moved to cause the operating system instance to quiesce the processor.
-
18. A method according to claim 17, wherein step (d2) comprises the step of:
(d2a) requiring an operating system instance in the partition from which the processor is being moved to acquiesce to the move before the processor can be removed from the partition.
-
19. A method according to claim 15 wherein step (b) comprise the step of:
(b1) maintaining, in a first data storage, configuration information indicating which of the plurality of processors is assigned to each partition.
-
20. A method according to claim 19, wherein step (b) comprises the step of:
(b2) modifying the configuration information to change an assignment of one or more of the assignable system resources from one partition to another partition.
-
21. A method according to claim 15 wherein step (d) comprises the step of:
(d3) communicating with an operating system instance in a partition to which a processor is being moved to cause the operating system instance to begin using the processor.
-
22. A method according to claim 15, wherein step (d) comprises the step of:
(d4) communicating with an operating system instance in a partition from which a region of the memory is being moved to cause the operating system instance to unload the region of the memory.
-
23. A method according to claim 15, wherein step (d) comprises the step of:
(d5) communicating with a plurality of operating system instances which share a region of the memory to be moved to cause the plurality of operating system instances to cooperatively unload the region of the memory to be moved.
-
24. A method according to claim 23, wherein step (d5) comprises the step of:
(d5a) controlling a console program with one of the plurality of operating system instances to move the region of the memory from the one partition to the other partition.
-
25. A method according to claim 15, wherein step (b) comprises the step of:
(b3) maintaining, in a second data storage, configuration information indicating which portions of the memory are assigned to each partition.
-
26. A method according to claim 15, wherein step (d) comprises the step of:
(d6) communicating with an operating system instance in a partition to which a region of the memory is being moved to cause the operating system instance to begin filling the region of the memory.
-
27. A method according to claim 15 wherein the plurality of processors is physically divided into partitions and wherein the method further comprises the step of:
(e) providing each partition with a console program which interacts with the processors in the partition.
-
28. A method according to claim 27 wherein step (e) comprises the step of:
(e1) providing a console program which maintains configuration information indicating which of the plurality of processors, which memory portions and which I/O circuitry are assigned to each partition.
-
29. A computer program product for changing a configuration of a computer system having a plurality of assignable system resources, including processors, memory and I/O circuitry, in which the processors, memory, and I/O circuitry are electrically interconnected so that each processor has electrical access to all of the memory and at least some of the I/O circuitry, the computer program product comprising a computer usable medium having computer readable program code thereon, comprising:
-
(a) program code which assigns the assignable system resources to a plurality of partitions, each partition including at least one processor, a portion of the memory, and a portion of the I/O circuitry;
(b) operating system code for creating an operating system instance running in each partition; and
(c) program code which changes the configuration by migrating one or more of the assignable system resources from one partition to another partition. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
Specification