MEET MIN, MAX and DES
When you create an LPAR (Logical Partition), you have to create a profile to specify the processors, memory and I/O slots you want to allocate. I’m going to focus on memory right now, and specifically what the minimum, desired and maximum memory settings mean. You’ll see that the memory allocation can change while the LPAR is up and running using Dynamic LPAR (DLPAR) and DLPAR's can only go as low as min and as high as max. Makes sense, doesn't it?
This is about setting up LPARs that use dedicated memory. I’m not touching on Active Memory Sharing because sharing is not dedicated. I’m also not going to go into the Power7 magic called Active Memory Expansion. Just the vanilla answer to “how much memory am I assigning to my LPAR and can I shoot anyone who tries to steal it?”
The minimum memory is the amount which is required for the LPAR to start. If you don’t have the minimum, you can’t activate the LPAR. And for as long as that LPAR is up, nothing will take away that memory. You can’t even dynamically remove it using DLPAR. If you really don’t have the minimum available when it comes time to activate your LPAR, there is only one option: change the profile settings and attempt to activate it again. By the way, if you change the settings in a profile once an LPAR is activated, you need to shut it down and activate the new profile for the settings to take effect. A software reboot ( for example, using shutdown –r) won’t activate a new LPAR profile.
Minimum memory and Required adapters
There’s a useful comparison between the minimum requirements of memory and setting adapters as required. Supposing you have a physical adapter that will give you access to disks or the network. You want that adapter, because if you don’t have the disks you don’t have the LPAR. So you’d make that adapter required. If that adapter was also set to required on a second LPAR, the first LPAR to get activated would get the adapter, and the second LPAR to get activated … wouldn’t get activated. Required means business. It’s a demand, not a wish and if the LPAR doesn't get it, it's going to take its bat and go home.
Now just as an adapter can be set to required, an LPAR can have a minimum amount of memory. Once the LPAR is activated with that profile, the minimum memory, like the adapter, can’t be taken away until the LPAR is shut down. If you try it with DLPAR, you’ll get told off very quickly.
The desired memory generally is the amount of memory you actually get when you activate an LPAR. At least, you’ll get that much if it’s available (not used by other activated LPARs or the hypervisor). As you’d expect, the desired memory can’t be less than the minimum but it can be the same. It’s usually higher, because it’s your memory wish list, and because if you play your cards right (and set your values properly), you usually get it. When you activate your LPAR, your memory allocation will be as close to the desired as is available at the time. So you could have a minimum of 1 GB, a desired of 24 GB and the actual allocation of only 10 GB because that's all that was available when the LPAR got activated.
Whatever you end up with when you activate the LPAR (somewhere between min and desired), if someone happens to run a Dynamic LPAR operation to remove some of your allocated memory, then you could go below your desired amount. Your memory could go right down till your LPAR has the minimum set in the activated profile. No one can take it below your minimum without a shut down of your LPAR.
Once again, let’s consider the adapter comparison. Supposing you had an adapter which had a DVD-ROM connected to it. You’d be happy to have it moved around between LPARs without having to shut either one down. So you make the adapter desired on both LPARs. The first one to get activated gets it, but not for keeps. You can still move the adapter (and the DVD-ROM that hangs off it) to the second LPAR, or for that matter, even to another LPAR which doesn’t have it as desired at all.
Next we get to maximum memory. Actually, we don’t get to it next. You really only get to see the max when you assign extra memory using Dynamic LPAR. Maximum memory is the high water mark for the LPAR. You won’t ever exceed this amount unless you shut down, adjust your profile settings and activate the LPAR with the new profile. The maximum memory can't be less than desired but it can be the same. It's usually greater. And guess what? The maximum memory can't be less than the minimum. Just thought I'd mention it for some readers who needed to hear it (not you, of course).
So, supposing your system has 512 GB of physical memory, and you set your min, desired and max to 1 GB, 2 GB and 500 GB respectively. For the life of the LPAR, the OS will have 2 GB of memory. If it needs more, it will go to paging space, unless you dynamically allocate more or do the shutdown / edit profile / activate thing. IBM Power Systems are good, but they’re not mind readers. If you want more memory, you have to say so! Change the Desired amount before you activate your profile, or adjust it using Dynamic LPAR, OK?
Now if you find in the course of running your partition that it needs more memory, you can assign more dynamically up to the maximum memory setting in the profile which you have activated. Sounds like a good reason to set the max for all LPARs to the highest possible value, doesn’t it? Except that there’s a little man inside the hypervisor who’s on alert, just in case you want to grow the memory on demand. He’s a bit expensive, keeping him on call with all that spare memory in his back pocket, so if your max memory is absurdly high, you’re setting aside some memory in the hypervisor for him to be able to grow your LPAR’s memory just in case. He doesn't reserve everything you might possibly need to allocate, but it is an overhead if you're sailing close to the wind with your total system memory.
WATCH OUT FOR MAX: CUSTOMER SERVICE WITH A FROWN
When I was a young system admin and file systems were 2 GB, if someone asked for an extra 2 GB, I told them that my motto was “the customer is always wrong” and that if they thought I was going to throw away good disk after bad just because they were too lazy to clean up their files they had another thing coming. So they cleaned up and I gave them some extra disk, and told them to come back with their begging bowl in a month if they dared.
The purpose of this little lesson in customer service is to show that assigning extra resources isn’t always a smart solution. Expensive, yes, but not always wise. In setting the memory requirements for your LPARs, it’s a bit hit and miss, but you hopefully will, in the end, hit the right amount of min, desired and max without breaking the budget or losing all your friends.