Why Can’t I Move System Memory Between Partition?
January 26, 2011 Hey, Joe
I’m using the Web interface on my Hardware Management Console (HMC) to move memory between my Power i partitions, and it keeps timing out before completing the move. What’s going on and why can’t I move memory between my partitions?
There are a number of reasons for moving memory between i/OS partitions. I’ve frequently moved memory and CPU from one partition to another during an upgrade, to help speed the process along faster. A few years ago, I also set up an HMC to automatically shift memory from our development box to our production system and back again during a long-running weekend maintenance job. So this is a fairly standard operation and there’s no great mystery in how to do it. But there is one trick that will sometimes torpedo the transfer. Fortunately, it’s relatively easy to perform that configuration and restart your partition memory moves.
To illustrate, the following picture shows an HMC where I have three partitions: DRSOC (affectionately called Doctor Sock), MIMIX, and MINIME (don’t ask). If I wanted to move memory from MIMIX to DRSOC, I would click on Systems Management→Servers in the left-hand HMC pane to bring up the servers that are available on the system. I would also click the check box (checked) in front of the MIMIX partition to perform actions on that partition. My screen would look like this.
To move memory, I would then click the Dynamic Logical Partitioning→Memory→Move node from the Tasks area at the bottom of the screen to bring up my transfer options. This will display the memory Move screen shown below where I would fill in the amount of memory to move, set my destination partition as DRSOC and press the OK key to move that memory between partitions.
Notice the Timeout (minutes) value on this screen. This is how long the HMC will give your requested move to work before it gives up and sends an error message that it can’t complete the request. Click OK on this screen to start moving memory from one partition to another. Under certain circumstances, my move will not work correctly, and it will time out. Which gets back to your original question: what happens when a memory move doesn’t work?
The only issue I’ve ever run into with intra-partition memory moves is that the memory to be moved has to first be in the *BASE storage pool before it can be moved. To see what I mean, let’s look at the current system storage pool allocations on MIMIX at the time I’m attempting to move 10 GB of working memory to DRSOC. I can do this by using the Work with Shared Pools (WRKSHRPOOL) command.
And I’ll get a screen that looks like this.
See the problem? My transfer will fail because I’m trying to move 10 GB of memory from MIMIX to DRSOC but there’s only 5.19113 Gb (5191.13 M) available in the partition’s *BASE storage pool. While there’s enough memory on the entire partition to complete the move, the HMC will only move available memory from the *BASE storage pool to the target partition. In this case, there isn’t enough memory in *BASE to satisfy the 10 GB request, so the HMC can’t complete the operation and the move is going to time out.
The solution for this one is simple. Go back into the WRKSHRPOOL command on the green screen and make sure there’s enough available memory in *BASE before you make the move request. You can do this by lowering the amount of memory in the other storage pools on the system. When you reduce memory in another storage pool, that memory will automatically be transferred back to *BASE where it will be available for transfer the next time you run your request.
In my case, I would probably reduce the memory in storage pool 1 by 10 GB (21445.35 – 10000 = 11445.35) to add 10 GB back to *BASE. After I reduce the storage pool 1 size, all that extra memory will automatically be added back to the *BASE storage pool where it will available for the transfer. Don’t forget to put in enough memory into *BASE before you retry the move and allow don’t forget to allow for minimum *BASE storage pool requirements. Many storage pools (including *BASE) have a minimum size percentage of total memory that needs to stay in the storage pool and that memory cannot be moved between partitions, which may also cause your memory move to fail. To view your minimum memory requirement for *BASE and the other storage pools, simply press the F11 key on the WRKSHRPOOL screen and WRKSHRPOOL will show you each pool’s minimum size requirements.
In this case, the *BASE storage pool must always have a minimum of 5.68 percent of available system memory after your transfer occurs. Given that minimum, make sure that you have enough memory to cover the minimum amount of memory needed in *BASE plus all the memory you’ll need for the transfer itself.
Once you have the correct amount of memory staged in *BASE, perform the transfer again. This time it should work out without any kinks and the right amount of memory will be moved to DRSOC from MIMIX.