DR Procedures
This section presents the various DR interfaces and DR operations commonly used in the field.
Interfaces
This section describes the various Sun Fire 15K/12K DR interfaces. DR operations can be executed from the domain DR command line interface (CLI), from the system controller (SC), Systems Management Services (SMS) software CLI, or from the Sun™ Management Center software graphical user interface (GUI).
The interfaces can be categorized into two groups:
Local DR operations: cfgadm command (See "Solaris Command Line Interface: cfgadm" on page 3.)
Remote DR operations: rcfgadm, addboard, deleteboard, and moveboard commands (See "SC and SMS CLI: rcfgadm, addboard, deleteboard, and moveboard Commands" on page 5 and "Sun Management Center Software" on page 8.)
CLI commands to DR can be scripted and placed in CRON to automate DR operations.
Solaris Command Line Interface: cfgadm
The DR software has a CLI using the cfgadm command, which is the configuration administration program. The cfgadm command is executed directly from the domain. It provides configuration administration operations on dynamically reconfigurable hardware resources. These operations include:
Displaying status (-l)
Initiating testing (-t)
Invoking configuration state changes (-c)
Invoking hardware specific functions (-x)
Obtaining configuration administration help messages (-h)
The cfgadm command is most commonly used for displaying the status of an attachment point, as shown in the following code sample, and for changing the state of an attachment point.
CODE EXAMPLE 1 Using cfgadm to Display Status of Attachment Points
# cfgadm -alv Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id IO1 connected configured ok powered-on, assigned Dec 18 17:39 HPCI n /devices/pseudo/dr@0:IO1 IO1::pci0 connected configured ok device /pci@3d,700000 Dec 18 17:39 io n /devices/pseudo/dr@0:IO1::pci0 IO1::pci1 connected configured ok device /pci@3d,600000 Dec 18 17:39 io n /devices/pseudo/dr@0:IO1::pci1 IO1::pci2 connected configured ok device /pci@3c,700000, referenced Dec 18 17:39 io n /devices/pseudo/dr@0:IO1::pci2 IO1::pci3 connected configured ok device /pci@3c,600000 Dec 18 17:39 io n /devices/pseudo/dr@0:IO1::pci3 ... SB1 connected configured ok powered-on, assigned Dec 18 17:39 CPU n /devices/pseudo/dr@0:SB1 SB1::cpu0 connected configured ok cpuid 32, speed 900 MHz, ecache 8 MBytes Dec 18 17:39 cpu n /devices/pseudo/dr@0:SB1::cpu0 SB1::cpu1 connected configured ok cpuid 33, speed 900 MHz, ecache 8 MBytes Dec 18 17:39 cpu n /devices/pseudo/dr@0:SB1::cpu1 SB1::cpu2 connected configured ok cpuid 34, speed 900 MHz, ecache 8 MBytes Dec 18 17:39 cpu n /devices/pseudo/dr@0:SB1::cpu2 SB1::cpu3 connected configured ok cpuid 35, speed 900 MHz, ecache 8 MBytes Dec 18 17:39 cpu n /devices/pseudo/dr@0:SB1::cpu3 SB1::memory connected configured ok base address 0x2000000000, 8388608 KBytes total Dec 18 17:39 memory n /devices/pseudo/dr@0:SB1::memory ... c0 connected configured unknown unavailable scsi-bus n /devices/pci@3c,700000/pci@1/scsi@2,1:scsi c0::dsk/c0t0d0 connected configured unknown FUJITSU MAN3367M SUN36G unavailable disk n /devices/pci@3c,700000/pci@1/scsi@2,1:scsi::dsk/c0t0d0 c0::dsk/c0t1d0 connected configured unknown FUJITSU MAN3367M SUN36G unavailable disk y /devices/pci@3c,700000/pci@1/scsi@2,1:scsi::dsk/c0t1d0 c1 connected unconfigured unknown unavailable scsi-bus n /devices/pci@3c,700000/pci@1/scsi@2:scsi pcisch0:e01b1slot1 connected configured ok C5V0 Dec 18 17:37 pci-pci/hp n /devices/pci@3c,700000:e01b1slot1 pcisch1:e01b1slot0 connected configured ok C3V0 Dec 18 17:37 scsi/hp n /devices/pci@3c,600000:e01b1slot0 pcisch2:e01b1slot3 connected configured ok C5V1 Dec 18 17:37 pci-pci/hp n /devices/pci@3d,700000:e01b1slot3 pcisch3:e01b1slot2 disconnected unconfigured unknown C3V1 Dec 18 17:37 unknown n /devices/pci@3d,600000:e01b1slot2 pcisch4:e02b1slot1 disconnected unconfigured unknown C5V0 Dec 18 17:37 unknown n /devices/pci@5c,700000:e02b1slot1 pcisch5:e02b1slot0 disconnected unconfigured unknown C3V0 Dec 18 17:37 unknown n /devices/pci@5c,600000:e02b1slot0 pcisch6:e02b1slot3 disconnected unconfigured unknown C5V1 Dec 18 17:37 unknown n /devices/pci@5d,700000:e02b1slot3 pcisch7:e02b1slot2 connected configured ok C3V1 Dec 18 17:37 ethernet/hp n /devices/pci@5d,600000:e02b1slot2
SC and SMS CLI: rcfgadm, addboard, deleteboard, and moveboard Commands
Remote DR is the Sun Fire 15K/12K framework for enabling the SC and other utility applications running on the SC, for example, Sun Management Center software, to execute DR operations on a domain. DR operations can be executed from the SC by using the SMS software commands rcfgadm, addboard, deleteboard, and moveboard.
When hardening the Sun Fire 15K/12K SC, be aware that when you disable all IP traffic on the I1 MAN network, the remote DR functionality is no longer available. The rcfgadm, addboard, deleteboard, and moveboard commands cannot be used for domains excluded from the I1 MAN network. Domain-side DR (for example, cfgadm command) is still available for domains that are excluded from the MAN network. Refer to the Sun BluePrints OnLine article titled "Securing the Sun Fire 12K and 15K System Controller."
rcfgadm Command
With the rcfgadm command, configuration administration operations on a domain can be executed from the SC. The rcfgadm command allows cfgadm commands to be run remotely on a domain. The operations are the same as executed by the cfgadm command from the domain CLI. Therefore, the rcfgadm command can be executed from the SC only if the domain is up and running Solaris OE. The syntax of the commands is similar to the cfgadm command, except that the -d option is added to specify the remote domain indicator. Command line options and usage are as follows.
sf15k-sc1:sms-svc:41> rcfgadm -h usage: rcfgadm -d domain_indicator [-f] [-y|-n] [-v] [-o hardware_options] -c function [-r retry_count [-T timeout] ] ap_id... rcfgadm -d domain_indicator [-f] [-y|-n] [-v] [-o hardware_options] -x hardware_function ap_id... rcfgadm -d domain_indicator [-v] [-a] [-s listing_options] [-o hardware_options] [-l [ap_id|ap_type...]] rcfgadm -d domain_indicator [-v] [-o hardware_options] -t ap_id... rcfgadm -d domain_indicator [-v] [-o hardware_options] -h [ap_id|ap_type...]
addboard Command
The addboard command provides a convenient way to configure a domain configurable unit (DCU) into a domain. It interfaces with the platform configuration daemon (PCD) and the domain configuration agent (DCA) to transition a slot or board from its current configuration state to a new configuration state. Depending on the value of the -c option, the addboard command assigns, connects, or configures a CPU/Memory board or an I/O board to a domain. If the -c option is not specified, the default expected configuration state is configure.
Command usage and options are as follows:
sf15k-sc1:sms-svc:41> addboard -h usage: addboard -d domain_indicator [-c function] [-r retry_count [-t timeout]] [-q] [-f] [-y|-n] location...
NOTE
Refer to the System Management Services (SMS) 1.4 Administrator Guide for required privileges and ACL setups when performing the addboard command.
deleteboard Command
The deleteboard command provides a convenient way to unconfigure and power off a DCU board for replacing the board. It interfaces with the PCD and the DCA to transition a slot or board from its current configuration state to a new configuration state. Depending on the value of the -c option, the deleteboard command unconfigures, disconnects, or unassigns a CPU/Memory board or an I/O board from a domain. If the -c option is not specified, the default expected configuration state is unassign.
Command usage and options are as follows:
sf15k-sc1:sms-svc:41> deleteboard -h usage: deleteboard [-c function] [-r retry_count [-t timeout]] [-q] [-f] [-y|-n] location...
NOTE
Refer to the System Management Services (SMS) 1.4 Administrator Guide for required privileges and ACL setups when performing the deleteboard command.
moveboard Command
The moveboard command is used to move a CPU/Memory board or I/O board from a source domain to a target domain. This command is equivalent to executing a deleteboard command followed by an addboard command.
The moveboard command dynamically de-configures, disconnects and unassigns a DCU from the source domain and dynamically assigns, connects, or configures the DCU into the target domain.
The moveboard command interfaces with the PCD and the DCA. The -c option is used to specify the ending state of the board in the target domain. Configuration states are assign, connect, and configure. If the -c option is not specified, the default configuration state is configure.
Command usage and options are as follows:
sf15k-sc1:sms-svc:41> moveboard -h usage: moveboard -d domain_indicator [-c function] [-r retry_count [-t timeout]] [-q] [-f] [-y|-n] location
NOTE
Refer to the System Management Services (SMS) 1.4 Administrator Guide for required privileges and ACL setups when performing the moveboard command.
Sun Management Center Software
The optional Sun Management Center software provides a GUI where DR operations can be performed. It runs on the SC and provides the following features:
Domain management
GUI to the rcfgadm DR command
CLI
For slot 0 DR, the Sun Management Center 3.0 Platform Update 4 software must be installed. For slot 1 DR, the Sun Management Center 3.5 or newer software must be installed.
Collecting Status Information
To collect configuration information about boards and attachment points, use the following commands:
showboards
showdevices
cfgadm or rcfgadm
Before you attempt to execute any DR operation, use these commands to display the device information. This is particularly important when you are detaching components.
After performing a DR operation, check that the operating system (OS) has detected the configuration change by using these commands and Solaris UNIX commands like psrinfo and prtconf.
The showboards command displays the assignment information and the status of the system boards in a domain, as shown in the following example.
CODE EXAMPLE 2 Using showboards to Display Assignment and Status Information
sf15k-sc1:sms-svc:41> showboards -d b Retrieving board information. Please wait. ........ Location Pwr Type of Board Board Status Test Status Domain -------- --- ------------- ------------ ----------- ------ SB1 On CPU Active Passed B SB2 On CPU Active Passed B SB3 Off CPU Available Unknown Isolated SB4 On CPU Available Unknown Isolated SB5 Off CPU Available Unknown Isolated SB6 On CPU Available Unknown Isolated SB7 On CPU Available Unknown Isolated SB8 Off CPU Available Unknown Isolated SB9 Off CPU Available Unknown Isolated SB10 Off CPU Available Unknown Isolated SB11 Off CPU Available Unknown Isolated SB12 Off CPU Available Unknown Isolated SB13 On CPU Available Unknown Isolated IO1 On HPCI Active Passed B IO2 On HPCI Active Passed B IO4 - Empty Slot Available - Isolated IO5 - Empty Slot Available - Isolated IO6 - Empty Slot Available - Isolated IO7 On WPCI Available Unknown Isolated IO8 On WPCI Available Unknown Isolated IO9 - Empty Slot Available - Isolated IO10 - Empty Slot Available - Isolated IO11 - Empty Slot Available - Isolated IO12 - Empty Slot Available - Isolated IO13 - Empty Slot Available - Isolated
The showdevices command displays the configured physical system board devices and the resources made available by these devices, as shown in the following example.
CODE EXAMPLE 3 Using showdevices to Display Configured Devices
sf15k-sc1:sms-svc:41> showdevices -d b CPU --- domain board id state speed ecache usage B SB1 32 online 900 8 B SB1 33 online 900 8 B SB1 34 online 900 8 B SB1 35 online 900 8 B SB2 64 online 900 8 B SB2 65 online 900 8 B SB2 66 online 900 8 B SB2 67 online 900 8 Memory ------ board perm base domain domain board mem MB mem MB address mem MB B SB1 8192 0 0x2000000000 16384 B SB2 8192 982 0x6000000000 16384 IO Devices ---------- domain board device resource usage B IO1 qfe0 SUNW_network/qfe0 qfe0 hosts IP addresses: 192.168.210.213 B IO1 sd16 /dev/dsk/c0t1d0s0 mounted filesystem "/" B IO1 sd16 /dev/dsk/c0t1d0s1 swap area B IO1 sd16 /dev/dsk/c0t1d0s1 dump device (swap) B IO1 sd16 /dev/dsk/c0t1d0s7 mounted filesystem "/export/home" B IO2 ce2 SUNW_network/ce2 ce2 hosts IP addresses: 192.168.210.225
Using the -alv option of the cfgadm and rcfgadm commands provides the state and conditions of all attachment points of a given domain, as shown in the following example.
CODE EXAMPLE 4 Retrieving State and Condition of Attachment Points
# cfgadm -alv Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id c0 connected configured unknown unavailable scsi-bus n /devices/pci@1f,0/pci@1,1/scsi@2:scsi c0::dsk/c0t2d0 connected configured unknown SEAGATE ST318404LSUN18G unavailable disk n /devices/pci@1f,0/pci@1,1/scsi@2:scsi::dsk/c0t2d0 c0::dsk/c0t3d0 connected configured unknown SEAGATE ST318404LSUN18G unavailable disk n /devices/pci@1f,0/pci@1,1/scsi@2:scsi::dsk/c0t3d0 c0::dsk/c0t6d0 connected configured unknown TOSHIBA DVD-ROM SD-M1401 unavailable CD-ROM n /devices/pci@1f,0/pci@1,1/scsi@2:scsi::dsk/c0t6d0 c0::rmt/0 connected configured unknown HP C5683A unavailable tape n /devices/pci@1f,0/pci@1,1/scsi@2:scsi::rmt/0
The cfgadm command can be used to identify the location of the kernel permanent memory. From the domain, execute the following command:
# cfgadm -alv | grep SB | grep permanent SB2::memory connected configured ok base address 0x6000000000, 8388608 KBytes total, 976296 KBytes permanent
Alternatively, the rcfgadm command can be executed from the SC as follows:
sf15k-sc1:sms-svc:41> rcfgadm -d A -alv | grep SB | grep permanent SB0::memory connected configured ok base address 0x20000000000, 8388608 KBytes total, 1801720 KBytes permanent
DR Attach Operations
This section presents the most commonly used DR operations for inserting a new component into a running domain and making it available for the Solaris OE. Before attempting to add a board into a domain, verify that all requirements are fulfilled. The requirements are presented in the first part of this two-part series. Refer to the Sun BluePrints OnLine article titled "Dynamic Reconfiguration for High-End Servers: Part 1: Planning Phase."
DR Attach addboard Command
The following example adds a CPU/Memory board to a domain. The addboard command is executed from the SC. This technique is probably the most convenient way to attach a new board into a running domain.
CODE EXAMPLE 5 Using addboard to Add CPU/Memory Board to a Domain
sf15k-sc1:sms-svc:41> addboard -d b sb12 assign SB12 . assign SB12 done poweron SB12 poweron SB12 done test SB12 .......... test SB12 done connect SB12 ..... connect SB12 done configure SB12 .. configure SB12 done . notify online SUNW_cpu/cpu384 notify online SUNW_cpu/cpu385 notify online SUNW_cpu/cpu386 notify online SUNW_cpu/cpu387 notify add capacity (4 cpus) notify add capacity (1048576 pages) notify add capacity SB12 done
DR Attach rcfgadm Command
The following example adds a CPU/Memory board to a domain. The rcfgadm command is executed from the SC.
CODE EXAMPLE 6 Using rcfgadm to Add CPU/Memory Board to a Domain
sf15k-sc1:sms-svc:41> rcfgadm -d b -v -c configure SB1 assign SB1 assign SB1 done poweron SB1 poweron SB1 done test SB1 test SB1 done connect SB1 connect SB1 done configure SB1 configure SB1 done notify online SUNW_cpu/cpu32 notify online SUNW_cpu/cpu33 notify online SUNW_cpu/cpu34 notify online SUNW_cpu/cpu35 notify add capacity (4 cpus) notify add capacity (1048576 pages) notify add capacity SB1 done
DR Attach cfgadm Command
The following example adds a CPU/Memory board to a domain. The cfgadm command is executed from the domain. The syntax of the cfgadm command is similar to the syntax of the rcfgadm command in the previous section, except the domain identifier is not required.
CODE EXAMPLE 7 Using cfgadm to Add CPU/Memory Board to a Domain
# cfgadm -v -c configure SB1 assign SB1 assign SB1 done poweron SB1 poweron SB1 done test SB1 test SB1 done connect SB1 connect SB1 done configure SB1 Sep 5 02:11:33 15k-dom dr: OS configure dr@0:SB1::cpu0 Sep 5 02:11:33 15k-dom dr: OS configure dr@0:SB1::cpu1 Sep 5 02:11:33 15k-dom dr: OS configure dr@0:SB1::cpu2 Sep 5 02:11:33 15k-dom dr: OS configure dr@0:SB1::cpu3 Sep 5 02:11:33 15k-dom dr: OS configure dr@0:SB1::memory configure SB1 done notify online SUNW_cpu/cpu32 notify online SUNW_cpu/cpu33 notify online SUNW_cpu/cpu34 notify online SUNW_cpu/cpu35 notify add capacity (4 cpus) notify add capacity (1048576 pages) notify add capacity SB1 done
The following example adds an hsPCI assembly to a domain. At the end of the DR attach, the resources provided by the I/O board are ready for use by the Solaris OE.
CODE EXAMPLE 8 Adding an hsPCI Assembly to a Domain
# cfgadm -v -c configure IO5 assign IO5 assign IO5 done poweron IO5 poweron IO5 done test IO5 test IO5 done connect IO5 connect IO5 done configure IO5 configure IO5 done notify online /devices/pci@bd,700000 notify online /devices/pci@bd,600000 notify online /devices/pci@bc,700000 notify online /devices/pci@bc,600000 notify add capacity IO5 done
DR Attach a CPU Using cfgadm Command
CPUs are dynamic attachment points on a CPU/Memory board and can be configured individually.
CODE EXAMPLE 9 Attach a CPU Using cfgadm Command
# cfgadm -v -c configure SB12::cpu3 configure SB12::cpu3 Sep 5 01:05:07 15k-dom: OS configure dr@0:SB12::cpu3 configure SB12::cpu3 done notify online SUNW_cpu/cpu387 notify add capacity (1 cpu) notify add capacity SB12::cpu3 done
DR Attach Memory Using cfgadm Command
The following example adds all memory banks of a CPU/Memory board to a domain.
The cfgadm command is executed from the domain. The same result can be achieved with the rcfgadm command executed from the SC.
CODE EXAMPLE 10 Attach Memory Using cfgadm Command
# cfgadm -v -c configure SB12::memory configure SB12::memory Sep 5 01:08:33 15k-dom dr: OS configure dr@0:SB12::memory configure SB12::memory done notify add capacity (1048576 pages) notify add capacity SB12::memory done
DR Attach a PCI Card Using cfgadm Command
Each of the four PCI slots of an hsPCI assembly can be individually reconfigured. After configuring a PCI card into a domain, the Solaris OE displays a message in the domain-console log indicating the configuration of the components. Unlike DR operations on the components, the cfgadm command yields no output when performing a DR operation on a PCI card. Therefore, it is recommended that you check the state and condition of the card before and after the DR detach operation. The states and condition information must be connected, configured, and ok.
At the end of the attach operation, the resources provided by the PCI card are ready for use for the Solaris OE.
When attaching a PCI card, the card must be connected first, then, in a second step configured for use by the Solaris OE, as shown in the following example.
CODE EXAMPLE 11 Attach a PCI Card Using the cfgadm Command
# cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 unknown disconnected unconfigured unknown # # cfgadm -c connect pcisch7:e02b1slot2 # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 unknown connected unconfigured unknown # # cfgadm -c configure pcisch7:e02b1slot2 # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 ethernet/hp connected configured ok
However, it is not necessary to first connect a component. A component that is disconnected can be put into use for the Solaris OE by just configuring it, as shown in the following example.
CODE EXAMPLE 12 Configure a PCI Card Using the cfgadm Command
# cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 unknown disconnected unconfigured unknown # # cfgadm -c configure pcisch7:e02b1slot2 # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 ethernet/hp connected configured ok
To match the PCI card to its logical attachment point, see FIGURE 1.
FIGURE 1 Matching the PCI Card to a Logical Attachment Point
DR Detach Operations and Board Removal
In this section we present the most common operations for removing a component from a running domain. Before attempting to remove a board from a domain, verify that all requirements are fulfilled. For requirements, refer to the Sun BluePrints OnLine article titled "Dynamic Reconfiguration for High-End Servers: Part 1: Planning Phase," the first article in this two-part series.
DR Detach Using the deleteboard Command
The following example lists the results from disconnecting a CPU/Memory board using the SC and SMS CLI.
CODE EXAMPLE 13 Disconnecting a CPU/Memory Board Using deleteboard
sf15k-sc1:sms-svc:41> deleteboard sb12 request delete capacity (4 cpus) request delete capacity (1048576 pages) request delete capacity SB12 done request offline SUNW_cpu/cpu384 request offline SUNW_cpu/cpu385 request offline SUNW_cpu/cpu386 request offline SUNW_cpu/cpu387 request offline SUNW_cpu/cpu384 done request offline SUNW_cpu/cpu385 done request offline SUNW_cpu/cpu386 done request offline SUNW_cpu/cpu387 done unconfigure SB12 unconfigure SB12 done notify remove SUNW_cpu/cpu384 notify remove SUNW_cpu/cpu385 notify remove SUNW_cpu/cpu386 notify remove SUNW_cpu/cpu387 notify remove SUNW_cpu/cpu384 done notify remove SUNW_cpu/cpu385 done notify remove SUNW_cpu/cpu386 done notify remove SUNW_cpu/cpu387 done disconnect SB12 disconnect SB12 done poweroff SB12 poweroff SB12 done SB12 successfully unassigned.
DR Detach Using the deleteboard Command With OS Quiescence
This example lists the results from disconnecting SB1 using the SC and SMS CLI. In this case, the CPU/Memory board contains the kernel permanent memory. Therefore, the OS must be quiesced and the kernel memory must be relocated before the CPU/Memory board can be unconfigured from the OS.
After confirming the OS quiescence, all threads and devices are suspended. The kernel pages are copied to the memory of the new target board and the physical address space base addresses are swapped. Finally, the threads and devices are resumed.
CODE EXAMPLE 14 Disconnecting CPU/Memory Board with OS Quiescence
sf15k-sc1:sms-svc:41> deleteboard SB1 System may be temporarily suspended, proceed (yes/no)? Y request suspend SUNW_OS request suspend SUNW_OS done request delete capacity (4 cpus) request delete capacity (1048576 pages) request delete capacity SB1 done request offline SUNW_cpu/cpu32 request offline SUNW_cpu/cpu33 request offline SUNW_cpu/cpu34 request offline SUNW_cpu/cpu35 request offline SUNW_cpu/cpu32 done request offline SUNW_cpu/cpu33 done request offline SUNW_cpu/cpu34 done request offline SUNW_cpu/cpu35 done unconfigure SB1 unconfigure SB1 done notify remove SUNW_cpu/cpu32 notify remove SUNW_cpu/cpu33 notify remove SUNW_cpu/cpu34 notify remove SUNW_cpu/cpu35 notify remove SUNW_cpu/cpu32 done notify remove SUNW_cpu/cpu33 done notify remove SUNW_cpu/cpu34 done notify remove SUNW_cpu/cpu35 done disconnect SB1 disconnect SB1 done poweroff SB1 poweroff SB1 done notify resume SUNW_OS notify resume SUNW_OS done SB1 successfully unassigned.
DR Detach Using the rcfgadm Command
This example lists the results from executing a disconnect operation on a CPU/Memory board using the SC and SMS CLI.
CODE EXAMPLE 15 Disconnecting a CPU/Memory Board Using rcfgadm
sf15k-sc1:sms-svc:41> rcfgadm -d b -v -c disconnect SB1 request delete capacity (4 cpus) request delete capacity (1048576 pages) request delete capacity SB1 done request offline SUNW_cpu/cpu32 request offline SUNW_cpu/cpu33 request offline SUNW_cpu/cpu34 request offline SUNW_cpu/cpu35 request offline SUNW_cpu/cpu32 done request offline SUNW_cpu/cpu33 done request offline SUNW_cpu/cpu34 done request offline SUNW_cpu/cpu35 done unconfigure SB1 unconfigure SB1 done notify remove SUNW_cpu/cpu32 notify remove SUNW_cpu/cpu33 notify remove SUNW_cpu/cpu34 notify remove SUNW_cpu/cpu35 notify remove SUNW_cpu/cpu32 done notify remove SUNW_cpu/cpu33 done notify remove SUNW_cpu/cpu34 done notify remove SUNW_cpu/cpu35 done disconnect SB1 disconnect SB1 done poweroff SB1 poweroff SB1 done unassign SB1 skipped
DR Detach Using the cfgadm Command
This example shows the results from disconnecting a CPU/Memory board using the domain CLI. The board is automatically powered off at the end of the DR operation and is now ready to be removed.
CODE EXAMPLE 16 Disconnecting CPU/Memory Board Using cfgadm
# cfgadm -v -c disconnect SB1 request delete capacity (4 cpus) request delete capacity (1048576 pages) request delete capacity SB1 done request offline SUNW_cpu/cpu32 request offline SUNW_cpu/cpu33 request offline SUNW_cpu/cpu34 request offline SUNW_cpu/cpu35 request offline SUNW_cpu/cpu32 done request offline SUNW_cpu/cpu33 done request offline SUNW_cpu/cpu34 done request offline SUNW_cpu/cpu35 done unconfigure SB1 Sep 5 02:12:41 15k-dom dr: OS unconfigure dr@0:SB1::cpu0 Sep 5 02:12:42 15k-dom dr: OS unconfigure dr@0:SB1::cpu1 Sep 5 02:12:42 15k-dom dr: OS unconfigure dr@0:SB1::cpu2 Sep 5 02:12:42 15k-dom dr: OS unconfigure dr@0:SB1::cpu3 Sep 5 02:12:43 15k-dom dr: OS unconfigure dr@0:SB1::memory unconfigure SB1 done notify remove SUNW_cpu/cpu32 notify remove SUNW_cpu/cpu33 notify remove SUNW_cpu/cpu34 notify remove SUNW_cpu/cpu35 notify remove SUNW_cpu/cpu32 done notify remove SUNW_cpu/cpu33 done notify remove SUNW_cpu/cpu34 done notify remove SUNW_cpu/cpu35 done disconnect SB1 disconnect SB1 done poweroff SB1 poweroff SB1 done unassign SB1 skipped
This example shows the results from disconnecting an hsPCI assembly using the domain CLI. The board is automatically powered off at the end of the DR operation and is now ready to be removed. When replacing a failed I/O board, use a procedure similar to the one below.
CODE EXAMPLE 17 Disconnecting an hsPCI Assembly Using Domain CLI
# cfgadm -v -c disconnect IO5 request offline /devices/pci@bd,700000 request offline /devices/pci@bd,600000 request offline /devices/pci@bc,700000 request offline /devices/pci@bc,600000 request offline /devices/pci@bd,700000 done request offline /devices/pci@bd,600000 done request offline /devices/pci@bc,700000 done request offline /devices/pci@bc,600000 done unconfigure IO5 unconfigure IO5 done notify remove /devices/pci@bd,700000 notify remove /devices/pci@bd,600000 notify remove /devices/pci@bc,700000 notify remove /devices/pci@bc,600000 notify remove /devices/pci@bd,700000 done notify remove /devices/pci@bd,600000 done notify remove /devices/pci@bc,700000 done notify remove /devices/pci@bc,600000 done disconnect IO5 disconnect IO5 done poweroff IO5 poweroff IO5 done unassign IO5 skipped
DR Detach a CPU Using the cfgadm Command
CPUs are dynamic attachment points on a CPU/Memory board and can be unconfigured individually. However, individual CPUs cannot be disconnected.
CODE EXAMPLE 18 Unconfiguring a Single CPU
# cfgadm -v -c unconfigure SB12::cpu3 request delete capacity (1 cpu) request delete capacity SB12::cpu3 done request offline SUNW_cpu/cpu387 request offline SUNW_cpu/cpu387 done unconfigure SB12::cpu3 Sep 5 01:06:18 15k-dom dr: OS unconfigure dr@0:SB12::cpu3 unconfigure SB12::cpu3 done notify remove SUNW_cpu/cpu387 notify remove SUNW_cpu/cpu387 done
DR Detach Memory Using cfgadm Command
Memory is a dynamic attachment point on a CPU/Memory board. You cannot unconfigure individual memory banks; you can only detach all memory banks on a CPU/Memory board. Disconnect operations of individual memory banks are not supported.
CODE EXAMPLE 19 Unconfiguring Memory Using cfgadm
# cfgadm -v -c unconfigure SB12::memory request delete capacity (1048576 pages) request delete capacity SB12::memory done unconfigure SB12::memory Sep 5 01:06:57 15k-dom dr: OS unconfigure dr@0:SB12::memory unconfigure SB12::memory done
DR Detach a PCI Card Using cfgadm
The following procedure shows how to unconfigure and electrically disconnect a PCI card. Unlike DR operations on the components, the cfgadm command yields no output when performing a DR operation on a PCI card. Therefore, it is recommended that you check the state and condition of the card before and after the DR detach operation. Also, check the /var/adm/messages file.
At the end of the detach operation, the card can be safely removed from the hsPCI assembly. If the card could only be unconfigured, it would remain in the power-on state and could not be removed.
CODE EXAMPLE 20 Detaching a PCI Card Using cfgadm
# cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 ethernet/hp connected configured ok # # ifconfig -a lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 dman0: flags=1008843<UP,BROADCAST,RUNNING,MULTICAST,PRIVATE,IPv4> mtu 1500 index 3 inet 10.10.10.3 netmask ffffffe0 broadcast 10.10.10.31 ether 0:3:ba:3:f4:58 qfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4 inet 192.168.210.213 netmask ffffff00 broadcast 192.168.210.225 ether 0:3:ba:3:f4:58 ce2: flags=1000803<UP,BROADCAST,MULTICAST,IPv4> mtu 1500 index 5 inet 192.168.210.225 netmask ffffff00 broadcast 192.168.210.225 ether 0:3:ba:3:f4:58 # ifconfig ce2 down # ifconfig ce2 unplumb # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 ethernet/hp connected configured ok # # cfgadm -c unconfigure pcisch7:e02b1slot2 # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 unknown connected unconfigured unknown # # cfgadm -c disconnect pcisch7:e02b1slot2 # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 unknown disconnected unconfigured unknown
The same result is achieved by just executing the disconnect operation. When the disconnect operation is performed on a component that is in the configured state, the DR framework automatically performs an unconfigure operation before the disconnect operation is executed.
CODE EXAMPLE 21 Disconnecting a PCI Card Using cfgadm
# cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 ethernet/hp connected configured ok # # ifconfig -a lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 dman0: flags=1008843<UP,BROADCAST,RUNNING,MULTICAST,PRIVATE,IPv4> mtu 1500 index 3 inet 10.10.10.3 netmask ffffffe0 broadcast 10.10.10.31 ether 0:3:ba:3:f4:58 qfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4 inet 192.168.210.213 netmask ffffff00 broadcast 192.168.210.225 ether 0:3:ba:3:f4:58 ce2: flags=1000803<UP,BROADCAST,MULTICAST,IPv4> mtu 1500 index 6 inet 192.168.210.225 netmask ffff0000 broadcast 192.168.210.225 ether 0:3:ba:3:f4:58 # # ifconfig ce2 down # ifconfig ce2 unplumb # # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 ethernet/hp connected configured ok # # cfgadm -c disconnect pcisch7:e02b1slot2 # cfgadm -al | grep pcisch7:e02b1slot2 pcisch7:e02b1slot2 unknown disconnected unconfigured unknown