A goal is used to configure how persistent memory modules connected to a CPU socket are used. You can configure a persistent
memory module to be used in Memory Mode, App Direct Mode, or Mixed Mode. When a persistent memory module is configured as 100% Memory Mode, it can be used completely as volatile memory. Conversely, when it is configured as 0% Memory Mode, it becomes App Direct Mode and can be used completely as persistent memory. When you configure a persistent memory module as x% Memory Mode, x% is used as memory and the remaining is used as persistent memory. For example, when you configure 20% Memory Mode, 20 percent of the persistent memory module is used as memory and the remaining 80 percent is used as persistent memory.
This mode is called Mixed Mode.
In mixed mode, the percentage may not linearly translate into the actual memory available. The actual memory size obtained
may not accurately correspond to the specified percentage. Also, if the percentage is changed, the resultant memory obtained
may not change in the same proportion.
In memory mode, DDR4 memory is used as a cache layer to the persistent memory module, and, is therefore not visible to the
OS. For example, if you have 1.5 Tb of persistent memory in memory mode and 256 Gb DDR4, the OS/Hypervisor would still only
see 1.5 Tb of total memory.
For completely persistent memory or mixed mode, you can configure the persistent memory type as App Direct or App Direct Non Interleaved. The App Direct type configures all the memory modules connected to a socket into one interleaved set, and creates one region for it. The
App Direct Non Interleaved type configures one region for each memory module.
You can create a goal only at the server level for all sockets together, and not for each socket separately. After a goal
is created and applied on a server, the regions that are created are visible in the server inventory. A region is a grouping
of one or more persistent memory modules that can be divided up into one or more namespaces. When a host application uses
namespaces, it stores application data in them.
For UCS M5 S-Series servers:
The only supported goal configuration is 0% Memory Mode and App Direct Non Interleaved persistent memory type.
The persistent memory modules for S-Series servers are shipped with 100% Memory Mode. To use the persistent memory modules for S-Series servers do one of the following:
The system does not restrict you from configuring any other combination of Memory Mode % and persistent memory type. However,
unsupported goal configurations cannot be used.
After a persistent memory scrub (Cisco UCS Manager) or reset persistent memory module to factory defaults (Cisco IMC), the
default goal is 0% Memory Mode and App Direct Non Interleaved persistent memory type.
Goal modification is a destructive operation. When a goal is modified, new regions are created based on the modified goal
configuration. This results in the deletion of all existing regions and namespaces on the associated servers, which leads
to the loss of data currently stored in the namespaces.
Before modifying the Persistent Memory Type in a goal, delete the existing namespaces. This is because, in the App Direct persistent memory type you do not specify a DIMM number for each namespace. In the App Direct Non Interleaved persistent memory type, each namespace has a DIMM number specified.
For UCS M5 and M6 B-Series and C-Series servers, deleting a goal deletes all related regions and namespaces on the associated
servers, and disables security. For UCS M5 S-Series servers, deleting a goal deletes all namespaces on the associated servers,
and disables security. Goal deletion also returns the persistent memory module to its default state. The default state of
a persistent memory module is: