1. Technical Field
This disclosure generally relates to migration and configuration of software in a multi-partition computer system, and more specifically relates to a method and apparatus for migration of memory blocks in a partitioned computer system by utilizing I/O space located outside logical memory blocks of memory to be migrated.
2. Background Art
Computer systems typically include a combination of hardware and software. The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. It was recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources into different computing environments. The eServer computer system developed by International Business Machines Corporation (IBM) is an example of a computer system that supports logical partitioning. On an eServer computer system, partition managing firmware (referred to as a “hypervisor”) allows defining different computing environments on the same platform. A Hardware Management Console (HMC) provides a user interface to the hypervisor. The hypervisor manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
A computer system that includes multiple logical partitions typically shares resources between the logical partitions. For example, a computer system with a single CPU could have two logical partitions defined, with 50% of the CPU allocated to each logical partition, and with the memory and the I/O slots also allocated to the two logical partitions. Each logical partition functions as a separate computer system.
Partition memory is often divided up into logical memory blocks (LMBs). It is desirable to move a LMB with any software and/or data stored in the LMB to another partition. This is often done for system maintenance and load balancing. One particular difficulty with moving LMBs to another partition is the presence of an I/O space or I/O memory pages in the LMB to be moved.
I/O spaces or I/O memory pages are portions of partition memory which are used by network or storage or other I/O adapters that send/receive data. These I/O spaces typically cause the LMB to be non-migratable, which means that the LMB cannot be removed from the space of the partition which owns it and given to a second partition. The memory pages for some Ethernet adapters are not migratable during operation. The adapter must be shut down and restarted to free up the pages so memory migration can occur. Other Ethernet hardware supports migration, but the hardware must be suspended, in order to migrate the send/receive queues.
Current implementations of I/O space in server products make the LMBs non-migratable. Without a way to make I/O space migratable, LMBs in partitioned computer systems will continue to require substantial effort by system administrators to suspend and restart software and hardware during very high bandwidth network operations, which is costly and inefficient.
The disclosure and claims herein are directed to a method and apparatus for migrating partition memory by utilizing I/O space outside the LMBs to be migrated. The transmit/receive (X/R) queues that are used by network storage adapters and any fixed memory items such as transmit/receive buffers are placed outside the logical memory blocks (LMBs) of the partition. Without the fixed memory items, these LMBs may be migrated without affecting the operation of the network storage adapters or the software in partition memory. The I/O space may be placed outside the partition in a specialized LMB that holds fixed memory items for one or more I/O adapters.
The foregoing and other features and advantages will be apparent from the following more particular description, as illustrated in the accompanying drawings.
The disclosure will be described in conjunction with the appended drawings, where like designations denote like elements, and:
The present invention relates to migration of LMBs in logically partitioned computer systems. For those not familiar with the concepts of logical partitions, this Overview section will provide background information that will help to understand the present invention.
As stated in the Background Art section above, a computer system may be logically partitioned to create multiple virtual machines on a single computer platform. For an example, we assume that we to create a sample computer system to include four processors, 16 GB of main memory, and six I/O slots. Note that there may be many other components inside the sample computer system that are not shown for the purpose of simplifying the discussion herein. We assume that our sample computer system 200 is configured with three logical partitions 210, as shown in
A hypervisor (or partition manager) 218 is firmware layer that is required for a partitioned computer to interact with hardware. The hypervisor 218 manages LMBs and the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions. With hardware resources allocated to the logical partitions, software is installed as shown in
The claims and disclosure herein provide a method and apparatus for migrating partition memory by utilizing I/O space outside the LMBs to be migrated. The transmit/receive (X/R) queues that are used by network storage adapters and any fixed memory items such as transmit/receive buffers are placed outside the partition with the logical memory blocks (LMBs) to be migrated. Without the fixed memory items, these LMBs may be migrated without affecting the operation of the network storage adapters or the software in partition memory.
Referring to
Main memory 120 preferably contains data 121 and an operating system 122. Data 121 represents any data that serves as input to or output from any program in computer system 100. Operating system 122 is a multitasking operating system known in the industry as eServer OS; however, those skilled in the art will appreciate that the spirit and scope of this disclosure is not limited to any one operating system. The memory further includes a hypervisor or partition manager 123 that contains a memory migration mechanism 124, a partition memory 125 with software 126, an I/O space 127 with buffers 128 and transmit/receive queues 129. Each of these entities in memory is described further below.
Computer system 100 utilizes well known virtual addressing mechanisms that allow the programs of computer system 100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such as main memory 120 and DASD device 155. Therefore, while data 121, operating system 122, hypervisor 123, memory migration mechanism 124, partition memory 125, software 126, I/O space 127, buffers 128, and transmit/receive queues 129 are shown to reside in main memory 120, those skilled in the art will recognize that these items are not necessarily all completely contained in main memory 120 at the same time. It should also be noted that the term “memory” is used herein generically to refer to the entire virtual memory of computer system 100, and may include the virtual memory of other computer systems coupled to computer system 100.
Processor 110 may be constructed from one or more microprocessors and/or integrated circuits. Processor 110 executes program instructions stored in main memory 120. Main memory 120 stores programs and data that processor 110 may access. When computer system 100 starts up, processor 110 initially executes the program instructions that make up operating system 122.
Although computer system 100 is shown to contain only a single processor and a single system bus, those skilled in the art will appreciate that a memory migration mechanism may be practiced using a computer system that has multiple processors and/or multiple buses. In addition, the interfaces that are used preferably each include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from processor 110. However, those skilled in the art will appreciate that these functions may be performed using I/O adapters as well.
Display interface 140 is used to directly connect one or more displays 165 to computer system 100. These displays 165, which may be non-intelligent (i.e., dumb) terminals or fully programmable workstations, are used to provide system administrators and users the ability to communicate with computer system 100. Note, however, that while display interface 140 is provided to support communication with one or more displays 165, computer system 100 does not necessarily require a display 165, because all needed interaction with users and other processes may occur via network interface 150.
Network interface 150 is used to connect computer system 100 to other computer systems or workstations 175 via network 170. Network interface 150 broadly represents any suitable way to interconnect electronic devices, regardless of whether the network 170 comprises present-day analog and/or digital techniques or via some networking mechanism of the future. In addition, many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across a network. TCP/IP (Transmission Control Protocol/Internet Protocol) is an example of a suitable network protocol.
At this point, it is important to note that while the description above is in the context of a fully functional computer system, those skilled in the art will appreciate that the memory migration mechanism described herein may be distributed as an article of manufacture in a variety of forms, and the claims extend to all suitable types of computer-readable media used to actually carry out the distribution, including recordable media such as floppy disks and CD-RW (e.g., 195 of
Embodiments herein may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. These embodiments may include configuring a computer system to perform some or all of the methods described herein, and deploying software, hardware, and web services that implement some or all of the methods described herein.
As briefly described above, an I/O space 127 is used to hold the buffers 128 and X/R queues 129 or any other fixed memory items to free the LMBs to be able to migrate freely in partitioned memory space. The I/O space 127 is defined outside the LMBs or at least outside the LMBs that need to be migrated. This means that the I/O space 127 may be a specially designated LMB (I/O space LMB) that is used to hold the buffers 128 and X/R queues 129 and other fixed memory items for one or more applications in one or more LMBs. The designated I/O space LMB could be set up when the system is configured to be an LMB that is a small subset of the total system memory. Further, the I/O space LMB 127 in the example lies outside the logical partition space. As described and claimed herein, the buffers 128, X/R queues 129 and other fixed memory items associated with any software such as operating system device drivers, applications or utilities are stored outside the LMBs in the I/O space 127. Thus, the contents of LMB B 220B as described above with reference to
Again referring to
Again referring to
One skilled in the art will appreciate that many variations are possible within the scope of the claims. Thus, while the disclosure is particularly shown and described above, it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the claims.