IBM's new feature in PowerVM Enterprise Edition takes configuring, but once you set it, you can forget it.
One of the visions that IBM has for Power Systems within the enterprise is to maximize utilization of server resources through virtualization. One of the more interesting technology announcements to emerge from COMMON this year is support for Active Memory Sharing in PowerVM.
Active Memory Sharing is a new technology that represents the next step in resource virtualization. It's a way for users to improve memory utilization by dynamically allocating a pool of physical memory across logical partitions. The idea is to achieve higher utilization of system resources and deploy an increased number of workloads on a single physical system footprint. The goal here is to enable doing as much work as possible with existing resources and right-size all the workloads that you deploy.
In a white paper by Erwin Earley, managing consultant, IBM i Technology Services, the company explains the capabilities, benefits, and necessary conditions for Active Memory Sharing. A component of PowerVM Enterprise Edition, Active Memory Sharing is available on Power6 processor-based systems running IBM i 6.1 (with enablement PTFs), AIX 6.1 (TL3), and SUSE Linux Enterprise Server 11. For partitions that will be leveraging Active Memory Sharing, a virtual I/O server (VIOS) must be deployed. Partitions all must be "pure" virtual partitions, meaning that all I/O access must be virtualized by the VIOS partition, and a shared memory partition must be leveraging shared processors.
Using Active Memory Sharing, users do not need to allocate the maximum amount of memory a given workload might require at peak performance because the configured shared memory pool will adjust automatically. As memory is needed, the shared pool of memory self-balances accordingly. It's similar to a shared processor pool and represents the total physical memory resource that assigned shared memory partitions have available. The pool of memory automatically flows between running partitions without manual intervention once the partitions are configured. A shared memory partition is defined as one that has been configured to use a shared memory pool.
Defining a shared memory partition means defining the minimum, maximum, and desired (assigned) memory for the partition, much the way a user defines logical partitions that don't share memory. The only catch about shared memory partitions is that changing a partition between being "dedicated" and one that shares memory requires that the partition first be shut down.
To understand the idea of a shared memory partition, it helps to define one using dedicated memory. In a dedicated partition, the user configures the allocation of memory as minimum, maximum, or desired. The allocated memory is referred to as logical memory. But once the partition is activated, the allocated memory remains constant, unless the user makes a Dynamic LPAR change.
With Active Memory Sharing, the partition's logical memory can be mapped to any physical memory contained within a shared memory pool. Physical memory assigned to one partition can be reassigned to a different partition as requirements change. The physical memory is not dedicated to a single partition; it can be mapped to any logical memory address of any partition within the shared memory pool and remapped as needed. The pool of physical memory is, in effect, dynamically allocated across logical partitions.
Earley uses the example of a system that has a total of 350GB of physical memory, but the logical partitions are defined at 450GB. This wouldn't work on a system that didn't have Active Memory Sharing since it could result in either partitions with less than the specified memory definition or one that actually fails going active. With Active Memory Sharing, the user takes a portion of the physical memory and defines a pool of shared memory that is managed across a set of shared memory partitions. The result is the system now can support higher memory requirements. This is achieved by dynamically adjusting the allocation of shared memory within the designated partitions.
When a shared memory partition needs additional memory, the hypervisor acquires that memory from another partition within the shared memory pool. An interesting aspect of all this is that the hypervisor works in conjunction with the operating system to decide where to get the needed memory. The hypervisor takes cues from the operating system to determine which memory pages it will acquire. There are provisions for the over-commitment of logical memory, with overflows going to a paging device such as the newly supported Power Systems solid-state disk drives (SSD).
With Active Memory Sharing, the amount of memory available to a partition will change during the course of a series of tasks, depending on the memory requirements of the workload. Earley notes that Active Memory Sharing is intended for workloads that have memory requirements that vary over time. The sharing of memory allows for automatic expansion and contraction of the partitions' physical memory footprint. Active Memory Sharing is best used where multiple workloads have peak resource demands at different times. Server workloads spread across geographically disparate areas might be candidates.
Workloads that differ between day and night, such as where resource requirements are typically peaking during normal business hours and other workloads peak at night could be enhanced by employing Active Memory Sharing. These might be situations where partitions have been configured to support interactive business-hour functions, such as sales kiosks, while other partitions might support batch processing at night.
Another scenario for use would be one in which there's a mix of workloads and corresponding partitions, but each partition is used infrequently. As Earley says, "Environments that can most benefit from Active Memory Sharing are those with a mix of workloads that have different peak demands at different times. The idea is to have one workload's resource requirements low while another's...requirements are high and to allow the hypervisor to manage [the] balance of resources."
Earley notes that environments where demands are consistent across all workloads may not be ideal for Active Memory Sharing, nor are environments requiring high or sustained memory requirements. Environments that require high-performance predictability also may not be suitable.
"The primary benefit of Active Memory Sharing is maximizing overall memory utilization on the system rather than improving the overall performance of the workloads implemented on the system," Earley says.
Deploying Active Memory Sharing requires a series of simple progressive steps, starting from a baseline of dedicated memory partitions and proceeding toward a shared memory pool, checking to see if the shared memory has sufficient physical memory behind it to satisfy peaks.
Active Memory Sharing is an expansion of the virtualization capabilities of IBM's Power Systems, one that may save companies the expense of purchasing unneeded additional memory when running many workloads. Administrators now have a means of utilizing the memory they already have on their systems. Combined with processor micro-partitioning and I/O virtualization, Active Memory Sharing should help some companies manage their resources more efficiently.
LATEST COMMENTS
MC Press Online