Capacity on Demand (COD) Administration

This guide describes how to manage system resources with the Capacity on Demand (COD) feature of M4000/M5000/M8000/M9000 servers.


About Capacity on Demand

The COD feature allows you to configure spare processing resources on your M4000/M5000/M8000/M9000 server in the form of one or more COD CPUs which can be activated at a later date when additional processing power is needed. To access each COD CPU, you must purchase a COD Hardware Activation Option.



Note - Beginning with the XCP 1101 firmware release COD no longer supports the headroom feature.


COD Boards

A COD board is a system board that has been configured at the factory for COD capability. COD boards come in the same configurations as standard system boards. The number of CPUs per COD board depends on the configuration of your server.

COD boards are subject to the same limitations for mixed architectures and CPU speeds as system boards. Likewise, COD board software requirements, such as the Oracle Solaris Operating System (Oracle Solaris OS) or OpenBoot PROM version, are the same as those of system boards.

For SPARC Enterprise M8000/M9000 (high-end) servers, you can order COD boards at original purchase or at any time afterward. High-end servers support any combination of COD boards and system boards.

SPARC Enterprise M4000/M5000 (midrange) servers do not use individual CPU Boards. On these servers, the system board components are mounted on a Mother Board Unit (MBU). Midrange systems can be configured to use COD only at original purchase.

Once a COD board has been activated, you can configure it into a domain in the same way as a system board.

COD boards are identified by a special field-replaceable unit (FRU) ID and by a COD label. Except for their FRU ID, label and COD capability, once COD boards are activated, they are handled by the rest of the hardware and software in exactly the same way as system boards. COD boards fully support Dynamic Reconfiguration (DR) operations.

The COD Hardware Activation Option

The COD Hardware Activation Option lets you purchase COD permits that authorize you to activate and use COD CPUs on a M4000/M5000/M8000/M9000 server. If you purchase a COD Hardware Activation Option for, say, six CPUs, you receive a COD permit that entitles you to use up to six COD CPUs on your server.

Your purchase authorizes you to use a number of COD CPUs rather than specific COD CPUs. For example, if your server has two COD boards with four COD CPUs each, but you only need to use six CPUs at any given time, buy only six COD permits. You can use any of the eight COD CPUs, but only six at a time.

Your server can support activated COD CPUs purchased from up to 50 COD Hardware Activation Option orders. Each order can cover multiple COD CPUs. They have no expiration date.


COD CPU Activation

When you purchase a COD Hardware Activation Option you get a COD permit which authorizes you to download a COD hardware activation key (COD key) in the form of text lines. You install that key into the COD database, which then allows you to activate the number of COD CPUs specified in your order. The COD database is stored in nonvolatile memory on the Service Processor. Servers with multiple Service Processors support COD database failover.



Note - The XCP 1101 firmware release introduces support for unlocked COD keys, which are not assigned to a server’s individual Chassis HostID. The new type of COD keys include the word UNLOCKED.

The XCP 1101 firmware release also introduces a new, streamlined process for acquiring COD keys. Beginning with this release, use the new process described in this document. Any old-style keys in your COD database will continue to work, even when new-style keys are also present.



COD Activation Log

To display the COD activation log, which contains a record of additions and deletions of COD hardware activation permits, use the showcodactivationhistory command. See the showcodactivationhistory(8) man page.


COD CPU Allocation

Activated COD CPUs become active either when a domain with a COD board is powered on or when a new COD board is installed and powered on. The software assigns COD CPUs automatically on a first-come, first-served basis. However, you can reserve one or more COD permits for a particular domain.

At board power on, the Service Processor determines which COD CPUs are in working order and requests COD permits for them. The COD software checks the COD database and current usage, determines which boards are COD boards, and allocates COD permits to their COD resources. It then tells the Service Processor which COD CPUs to configure into the domain.

The Service Processor configures only those COD resources that are activated. COD CPUs that are not activated are assigned COD-disabled status. A COD CPU might be assigned COD-disabled status if it cannot be activated because all COD permits are in use.

When you remove a COD board from a domain through a reconfiguration operation, when a domain containing a COD board is shut down normally, or when the Service Processor detects a fault and unconfigures a board from the domain, COD permits for the resources on those boards are released and added to the pool of available COD permits and can be used to put other COD CPUs in your server into use.

Allocation of COD permits does not change during a Service Processor reboot or failover.

You can reserve COD permits for specific domains by using the setcod(8) command. After power on, permits are first allocated to COD CPUs in domains with reserved permits, then remaining COD permits are allocated on a first-come, first-served basis to the remaining resources. When a domain is powered off, the reverse happens: First the unreserved COD permits are released, then the reserved COD permits are released.

For example, assume your server has 10 COD permits and you reserved them for these domains


PROC Permits reserved for domain 0: 4
PROC Permits reserved for domain 1: 2
PROC Permits reserved for domain 2: 0
PROC Permits reserved for domain 3: 0

When the domains are first powered on, four COD permits are assigned to COD CPUs in domain 0 and two to domain 1. The remaining four COD permits are available on a first-come, first-served basis to all four domains (0, 1, 2, and 3).

Violations

A violation occurs if more COD resources are in use than authorized on the server. These events can cause a violation:

Once the system detects a violation, the Service Processor posts a notice on the server console and ensures that no additional COD resources are brought online until the violation is corrected. In the meantime, it will not shut down domains or COD resources.


COD Commands

The COD commands are:


Activating COD Resources


procedure icon  To Purchase a COD Hardware Activation Option and Download a COD Key

1. Purchase a COD Hardware Activation Option.

Contact your support representative for assistance.

2. Sign in at the Oracle E-Delivery website at http://edelivery.oracle.com

On the Export Validation screen, enter your contact information, read the License Agreement and Export Restrictions, click the check boxes to indicate your acceptance, then, click Continue.

3. Select M-Series Products as the Product Pack, Generic Platform as the Platform Description, then click Go.

A table with the following entries is displayed:

4. Select your media pack, then click Continue.

The download page displays with the following options:

5. Optionally click the Readme and View Digest buttons, review their displays, then click Download.

A zip file that contains the COD key and a README file is downloaded.


procedure icon  To Install a COD Key

This procedure tells you how to install the COD key to activate COD resources on your server.

1. If you have not already done so, log in to the XSCF console with platadm privileges.

2. Unzip the downloaded file.

3. Use copy/paste to install the COD key using the addcodactivation(8) command:


XSCF> addcodactivation COD-key

For example:


XSCF> addcodactivation 01:UNLOCKED:104:0301010100:3:00000000:xxxxxxxxxxxxxxx

4. Verify that the key was added to the COD database:


XSCF> addcodactivation -r

The key you add should be listed in the output. See To Display COD Permit Status.

5. Save the key in a safe place where you can refer to it if the XCP configuration is reset, the COD database is lost, or some other event requires you to reinstall it.



Note - Do not attempt to install the same COD key more than once, except as noted in Step 5. Doing so would be a contract violation.



procedure icon  To Delete a COD Key

Before deleting a key from the COD database, the COD software determines whether a sufficient number of active COD CPUs are available. You can force the operation by using the -f option in Step 3, below, but doing so will overcommit any COD CPU reservations that might be in effect.

1. Log in to the XSCF console with platadm privileges.

2. Verify that you have enough COD permits to cover COD resources currently in use.

Use the showcodactivation(8) command as described in To Display COD Permit Status. If you do not have sufficient COD permits to compensate, power off one or more domains or disconnect the appropriate number of boards.

3. Delete the key from the COD database:


XSCF> deletecodactivation key

4. Verify that the key was removed from the COD database:


XSCF> deletecodactivation -r

The key that you deleted should not be listed in the output. See To Display COD Permit Status.


procedure icon  To Reserve COD Permits for a Domain

You need to reserve COD permits only if you want to make sure a specific number of COD permits are allocated to a particular domain.

1. Log in to the XSCF console with platadm privileges.

2. Execute the setcod command with or without options.

a. Execute the command with options:


XSCF> setcod -d domain_id cod_cpu_quantity

For example:


XSCF> setcod -d 1 4

b. Execute the setcod command with no options.


XSCF> setcod

Executing the command without options lets you reserve COD permits for all domains at once. First, the number of available COD permits (eight in the example below) prompt is displayed:


XSCF> setcod
PROC Permits installed: 8

The following prompts are displayed, in order:


PROC Permits reserved for domain 0 (6 MAX) [0]: 
PROC Permits reserved for domain 1 (6 MAX) [2]: 
PROC Permits reserved for domain 2 (4 MAX) [0]: 
PROC Permits reserved for domain 3 (4 MAX) [0]: 

Enter the number of COD permits reserved for each domain. The currently reserved number appears in parentheses. Do not exceed the number of available COD permits. To leave a reservation unchanged, press Return.

3. Verify the allocation with the showcod command.


procedure icon  To Display COD Information

1. Log in to the XSCF console with platadm, platop, domainadm, or domainop privileges, or domainmgr privileges for a specific domain.

2. Execute the showcod command.

The output displays the server’s Chassis HostID, number of COD permits, and number of COD permits reserved for each domain. For example:


XSCF> showcod
Chassis HostID: 80e3e446
PROC Permits installed: 10
PROC Permits reserved for domain 0: 4
PROC Permits reserved for domain 1: 0
PROC Permits reserved for domain 2: 0
PROC Permits reserved for domain 3: 0

To display COD information only for a specific domain, use the showcod -d domain_id command, where domain_id is 0-23 depending on system configuration.


procedure icon  To Display COD Activation History

1. Execute the showcodactivationhistory(8) command.


XSCF> showcodactivationhistory
 


procedure icon  To Display COD Permit Status

1. Log in to the XSCF console with platadm or platop privileges.

2. Execute the showcodactivation command.

The output displays the resource description, COD permit version number, expiration date, number of COD permits, and COD permit status. For example:


XSCF> showcodactivation
 
Description  Ver   Expiration  Count  Status
-----------  ---   ----------  -----  ------
PROC          01         NONE      8  GOOD

To display COD permit information in raw key format (the complete COD key assigned by Oracle), use the -r option. For example:


XSCF> showcodactivation -r
 
01:UNLCOKED:104:0301010100:3:00000000:xxxxxxxxxxxxxxx

To display COD permit information in verbose mode, use the -v option. For example:


XSCF> showcodactivation -v
 
Description  Ver   Expiration  Count  Status
-----------  ---   ----------  -----  ------
PROC          01         NONE      1  GOOD
01:UNLCOKED:000000001:0301010100:1:00000000:xxxxxxxxxxxxxxxxxxxxxx
PROC          01         NONE      2  GOOD
01:UNLCOKED:000000004:0301010100:2:00000000:xxxxxxxxxxxxxxxxxxxxxx


procedure icon  To Display Usage Statistics for COD Resources

1. Log in to the XSCF console with platadm or platop privileges, or domainadm, domainop, or domainmgr privileges for a specific domain.

2. Execute the showcodusage command.

The output displays a summary of COD permit usage by resource type and for each domain. For example:


XSCF> showcodusage
 
Resource      In Use  Installed  COD Permitted  Status
--------      ------  ---------  -------------  ------
PROC               0          4         0       OK: 0 available
Domain/Resource  In Use  Installed  Reserved
---------------  ------  ---------  --------
0  - PROC             0          4         0
1  - PROC             0          0         0
2  - PROC             0          0         0
3  - PROC             0          0         0
Unused - PROC         0          0         0

To display usage statistics only for domains or resources, use the
showcodusage -p domain command or the showcodusage -p resource command. All COD usage information can be displayed with the
showcodusage -p all command.

You can also use the showboards command to identify which board is a COD board. The output from this command has a column titled “COD”. This column contains an “n” for a non-COD board or a “y” for a COD board. For example, on a high-end server you might see:


XSCF> showboards -v -a
 
XSB  R DID(LSB) Assignment  Pwr  Conn Conf Test    Fault    COD
---- - -------- ----------- ---- ---- ---- ------- -------- ----
00-0   00(00)   Assigned    y    y    y    Passed  Normal   n
01-0   SP       Unavailable y    n    n    Unknown Normal   y
01-1   SP       Unavailable y    n    n    Unknown Normal   y
01-2   SP       Unavailable y    n    n    Unknown Normal   y
01-3   SP       Unavailable y    n    n    Unknown Normal   y