Maybe one or the other has ever wondered how and where the current configuration of an LPAR is stored. If the current configuration and profile are not synchronized with each other, differences will quickly arise. When an LPAR is shut down and deactivated, the last current configuration is retained. When activating the LPAR, this configuration is available in addition to the profiles of the LPAR as the “current configuration” in the GUI. If one selects the current configuration, then the LPAR has the same configuration after activation as before deactivation. For a newly created LPAR, however, this selection is not available on activation. The difference also manifests itself on the HMC command line: the already activated LPAR can be activated without specifying a profile, the newly created LPAR can only be activated by specifying a profile. Let’s take a closer look.
(Short note: The commands on the HMC command line were executed directly on the HMC hmc01. In the example outputs with the LPAR tool, the commands were started from a Linux jump server. All commands are always shown with both variants!)
We have activated and booted the LPAR aix01 with the profile “standard“. We have not made any dynamic changes yet. We briefly look at the status of the LPAR and check if there is an RMC connection to the HMC:
hscroot@hmc01:~> lssyscfg -m p710 -r lpar --filter lpar_names=aix01 --header -F name lpar_env state curr_profile rmc_state os_version name lpar_env state curr_profile rmc_state os_version aix01 aixlinux Running standard active "AIX 7.1 7100-04-00-0000" hscroot@hmc01:~>
linux $ lpar status aix01 NAME ID TYPE STATUS PROFILE RMC PROCS PROCUNITS MEMORY OS aix01 5 aixlinux Running standard active 1 - 3072 AIX 7.1 7100-04-00-0000 linux $
To see the effect of a dynamic change, let’s take a look at the actual state and the profile “standard“:
hscroot@hmc01:~> lshwres -m p710 -r mem --level lpar --filter lpar_names=aix01 -F curr_mem 3072 hscroot@hmc01:~> lssyscfg -m p710 -r prof --filter profile_names=standard,lpar_names=aix01 -F desired_mem 3072 hscroot@hmc01:~>
linux $ lpar mem aix01 MEMORY MEMORY HUGEPAGES NAME MODE AME MIN CURR MAX MIN CURR MAX aix01 ded - 2048 3072 8192 0 0 0 linux $ lpar -p standard mem aix01 MEMORY MEMORY HUGEPAGES NAME MODE AME MIN CURR MAX MIN CURR MAX aix01 ded - 2048 3072 8192 0 0 0 linux $
The LPAR has currently 3072 MB of main memory, which are also stored in the “standard” profile.
Now we add 1024 MB of main memory dynamically (DLPAR):
hscroot@hmc01:~> chhwres -m p710 -r mem -o a -p aix01 -q 1024 hscroot@hmc01:~>
linux $ lpar -d addmem aix01 1024 linux $
Now let’s look at the resulting memory resources of the LPAR:
hscroot@hmc01:~> lshwres -m p710 -r mem --level lpar --filter lpar_names=aix01 -F curr_mem 4096 hscroot@hmc01:~>
linux $ lpar mem aix01 MEMORY MEMORY HUGEPAGES NAME MODE AME MIN CURR MAX MIN CURR MAX aix01 ded - 2048 4096 8192 0 0 0 linux $
As expected, the LPAR now has 4096 MB of RAM. But what does the profile “standard” looks like?
hscroot@hmc01:~> lssyscfg -m p710 -r prof --filter profile_names=standard,lpar_names=aix01 -F desired_mem 3072 hscroot@hmc01:~>
linux $ lpar -p standard mem aix01 MEMORY MEMORY HUGEPAGES NAME MODE AME MIN CURR MAX MIN CURR MAX aix01 ded - 2048 3072 8192 0 0 0 linux $
The profile has not changed, activating the LPAR with this profile would result in 3072 MB of main memory.
The current configuration is always saved in the special profile “last*valid*configuration“:
hscroot@hmc01:~> lssyscfg -m p710 -r prof --filter profile_names=last*valid*configuration,lpar_names=aix01 -F desired_mem 4096 hscroot@hmc01:~>
linux $ lpar -p last*valid*configuration mem aix01 MEMORY MEMORY HUGEPAGES NAME MODE AME MIN CURR MAX MIN CURR MAX aix01 ded - 2048 4096 8192 0 0 0 linux $
Here the value of 4096 MB is consistent with the currently available memory in the LPAR.
Every dynamic change to an LPAR is performed on the LPAR via a DLPAR operation and by updating the special profile! If a profile is synchronized manually or automatically, then this special profile is ultimately synchronized with the desired profile.
The existence and handling of the special profile “last*valid*configuration” also makes some LPM possibilities easier to understand. We will deal with this in a later blog post.