Other Information and Tasks
This chapter contains information and tasks about
using the Logical Domains software that are not described in the
preceding chapters.
Using CPU Power Management
With LDoms 1.1 Software
To use CPU Power Management (PM) with LDoms 1.1 software,
you first need to set the power management policy in ILOM 3.0 firmware.
This section summarizes the information that you need to use power
management with LDoms software. Refer to “Monitoring Power
Consumption” in the Sun Integration
Lights Out Management (ILOM) 3.0 CLI Procedures Guide for
more details.
The power policy is the setting that governs system power
usage at any point in time. The Logical Domains Manager, version
1.1, supports two power policies, assuming that the underlying platform
has implemented Power Management features:
Performance — The
system is allowed to use all the power that is available.
Elastic — The system power usage is adapted
to the current utilization level. For example, power up or down
just enough system components to keep utilization within thresholds
at all times, even if the workload fluctuates.
For instructions on configuring the power policy using the
ILOM 3.0 firmware CLI, refer to “Monitoring Power Consumption” in
the Sun Integration Lights Out Management
(ILOM) 3.0 CLI Procedures Guide.
Showing CPU Power-Managed Strands
in LDoms 1.1 Software
This section shows how to list power-managed strands and virtual
CPUs using LDoms 1.1 software.
List CPU Power-Managed Strands
|
List Power-Managed CPUs
|
Entering Names in the CLI
The following sections describe the restrictions on entering
names in the Logical Domains Manager CLI.
File Names (file)
and Variable Names (var_name)
First character must be a letter,
a number, or a forward slash (/).
Subsequent letters must be letters, numbers, or
punctuation.
Virtual Disk Server backend and
Virtual Switch Device Names
Configuration Name (config_name)
The logical domain configuration name (config_name)
that you assign to a configuration stored on the system controller
must have no more than 64 characters.
All Other Names
The remainder of the names, such as the logical domain name
(ldom), service names (vswitch_name, service_name, vdpcs_service_name,
and vcc_name), virtual network name (if_name),
and virtual disk name (disk_name), must
be in the following format:
First character must be a letter or
number.
Subsequent characters must be letters, numbers,
or any of the following characters: ’-_+#.:;~()’
Listing Logical Domains Resources
This section shows the syntax usage for the ldm subcommands,
defines some output terms, such as flags and utilization statistics,
and provides examples that are similar to what you actually see
as output.
Machine-Readable Output
If you are creating scripts that use ldm list command
output, always use the -p option
to produce the machine-readable form of the output. See Generate a Parseable, Machine-Readable
List (-p) for more information.
Show Syntax Usage for ldm Subcommands
|
EXAMPLE 9-1 Syntax Usage for All ldm Subcommands
primary# ldm --help
Usage:
ldm [--help] command [options] [properties] operands
ldm -V
Options:
-V Display version information
Command(s) for each resource (aliases in parens):
bindings
list-bindings [-e] [-p] [<ldom>...]
services
list-services [-e] [-p] [<ldom>...]
constraints
list-constraints ([-x] | [-e] [-p]) [<ldom>...]
devices
list-devices [-a] [-p] [cpu] [crypto|mau] [memory] [io]
domain ( dom )
add-domain (-i <file> | mac-addr=<num] [hostid=<num>] <ldom> | <ldom>...)
remove-domain (-a | <ldom>...)
list-domain [-e] [-l] [-o <format>] [-p] [<ldom>...]
’format’ is one or more of:
console,cpu,crypto,disk,domain,memory,network,physio,serial,status
start-domain (-a | -i <file> | <ldom>...)
stop-domain [-f] (-a | <ldom>...)
bind-domain (-i <file> | <ldom>)
unbind-domain <ldom>
panic-domain <ldom>
migrate-domain [-n|--dry-run] <source_ldom> [<user>@]<target_host>[:<target_ldom>]
io
add-io [bypass=on] <bus> <ldom>
remove-io <bus> <ldom>
crypto ( mau )
add-crypto <number> <ldom>
set-crypto <number> <ldom>
remove-crypto <number> <ldom>
memory ( mem )
add-memory <number>[GMK] <ldom>
set-memory <number>[GMK] <ldom>
remove-memory <number>[GMK] <ldom>
operation
cancel-operation (migration | reconf) <ldom>
reconf
cancel-reconf <ldom>
spconfig ( config )
add-spconfig <config_name>
set-spconfig <config_name>
remove-spconfig <config_name>
list-spconfig
variable ( var )
add-variable <var_name>=<value>... <ldom>
set-variable <var_name>=<value>... <ldom>
remove-variable <var_name>... <ldom>
list-variable [<var_name>...] <ldom>
vconscon ( vcc )
add-vconscon port-range=<x>-<y> <vcc_name> <ldom>
set-vconscon port-range=<x>-<y> <vcc_name>
remove-vconscon [-f] <vcc_name>
vconsole ( vcons )
set-vcons [port=[<port-num>]] [group=<group>] [service=<vcc_server>] <ldom>
vcpu
add-vcpu <number> <ldom>
set-vcpu <number> <ldom>
remove-vcpu <number> <ldom>
vdisk
add-vdisk [timeout=<seconds>] <disk_name> <volume_name>@<service_name> <ldom>
set-vdisk [timeout=<seconds>] [volume=<volume_name>@<service_name>] <disk_name> <ldom>
remove-vdisk [-f] <disk_name> <ldom>
vdiskserver ( vds )
add-vdiskserver <service_name> <ldom>
remove-vdiskserver [-f] <service_name>
vdpcc ( ndpsldcc )
add-vdpcc <vdpcc_name> <service_name> <ldom>
remove-vdpcc [-f] <vdpcc_name> <ldom>
vdpcs ( ndpsldcs )
add-vdpcs <vdpcs_name> <ldom>
remove-vdpcs [-f] <vdpcs_name>
vdiskserverdevice ( vdsdev )
add-vdiskserverdevice [options={ro,slice,excl}] [mpgroup=<mpgroup>] <backend> <volume_name>@<service_name>
set-vdiskserverdevice options=[{ro,slice,excl}] [mpgroup=<mpgroup>] <volume_name>@<service_name>
remove-vdiskserverdevice [-f] <volume_name>@<service_name>
vnet
add-vnet [mac-addr=<num>] [mode=hybrid] [pvid=<pvid>] [vid=<vid1,vid2,...>] <if_name> <vswitch_name> <ldom>
set-vnet [mac-addr=<num>] [mode=[hybrid]] [pvid=[<pvid>]]
[vid=[<vid1,vid2,...>]] [vswitch=<vswitch_name>] <if_name> <ldom>
remove-vnet [-f] <if_name> <ldom>
vswitch ( vsw )
add-vswitch [default-vlan-id=<vid>] [pvid=<pvid>]
[vid=<vid1,vid2,...>] [mac-addr=<num>] [net-dev=<device>]
[mode=<mode>] <vswitch_name> <ldom>
set-vswitch [pvid=[<pvid>]] [vid=[<vid1,vid2,...>]] [mac-addr=<num>] [net-dev=<device>] [mode=<mode>] <vswitch_name>
remove-vswitch [-f] <vswitch_name>
Verb aliases:
Alias Verb
----- -------
rm remove
ls list
Command aliases:
Alias Command
----- -------
cancel-op cancel-operation
create add-domain
destroy remove-domain
remove-reconf cancel-reconf
start start-domain
stop stop-domain
bind bind-domain
unbind unbind-domain
panic panic-domain
migrate migrate-domain
|
Flag Definitions
The following flags can be shown in the output for a domain (ldm list).
If you use the long, parseable options (-l -p)
for the command, the flags are spelled out; for example, flags=normal,control,vio-service.
If not, you see the letter abbreviation; for example -n-cv-.
The list flag values are position dependent. Following are the values
that can appear in each of the six columns from left to right.
Column 1
s starting
or stopping
- placeholder
Column 2
Column 3
Column 4
c control
domain
- placeholder
Column 5
Column 6
s source
domain in a migration
t target domain in a migration
e error occurred during a migration
- placeholder
Utilization Statistic Definition
The per virtual CPU utilization statistic (UTIL)
is shown on the long (-l) option of the ldm list command.
The statistic is the percentage of time that the virtual CPU spent
executing on behalf of the guest operating system. A virtual CPU
is considered to be executing on behalf of the guest operating system
except when it has been yielded to the hypervisor. If the guest
operating system does not yield virtual CPUs to the hypervisor,
the utilization of CPUs in the guest operating system will always show
as 100%.
The utilization statistic reported for a logical domain is
the average of the virtual CPU utilizations for the virtual CPUs
in the domain. A dash (---) in the UTIL column
means that the strand is power-managed.
Examples of Various Lists
Note - The actual output might vary slightly from what is shown
here. |
Show Software Versions (-V)
|
EXAMPLE 9-2 Software Versions Installed
primary$ ldm -V
Logical Domain Manager (v 1.1)
Hypervisor control protocol v 1.3
Using Hypervisor MD v 0.1
System PROM:
Hypervisor v. 1.7.0. @(#)Hypervisor 1.7.0. 2008/11/19 10:20
OpenBoot v. 4.30.0. @(#)OBP 4.30.0. 2008/11/18 13:44
|
Generate a Short List
|
EXAMPLE 9-3 Short List for All Domains
primary$ ldm list
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -t-cv 4 1G 0.5% 3d 21h 7m
ldg1 active -t--- 5000 8 1G 23% 2m
|
Generate a Long List (-l)
|
EXAMPLE 9-4 Long List for All Domains
primary$ ldm list -l
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -t-cv 1 768M 0.0% 0s
VCPU
VID PID UTIL STRAND
0 0 0.0% 100%
MEMORY
RA PA SIZE
0x4000000 0x4000000 768M
IO
DEVICE PSEUDONYM OPTIONS
pci@780 bus_a
pci@7c0 bus_b bypass=on
VCC
NAME PORT-RANGE
vcc0 5000-5100
VSW
NAME MAC NET-DEV DEVICE MODE
vsw0 08:00:20:aa:bb:e0 e1000g0 switch@0 prog,promisc
vsw1 08:00:20:aa:bb:e1 routed
VDS
NAME VOLUME OPTIONS DEVICE
vds0 myvol-a slice /disk/a
myvol-b /disk/b
myvol-c ro,slice,excl /disk/c
vds1 myvol-d /disk/d
VDPCS
NAME
vdpcs0
vdpcs1
------------------------------------------------------------------------------
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg1 bound ----- 5000 1 512M
VCPU
VID PID UTIL STRAND
0 1 100%
MEMORY
RA PA SIZE
0x4000000 0x34000000 512M
NETWORK
NAME SERVICE DEVICE MAC
mynet-b vsw0@primary network@0 08:00:20:ab:9a:12
mynet-a vsw0@primary network@1 08:00:20:ab:9a:11
DISK
NAME VOLUME DEVICE SERVER
mydisk-a myvol-a@vds0 disk@0 primary
mydisk-b myvol-b@vds0 disk@1 primary
VDPCC
NAME SERVICE
myvdpcc-a vdpcs0@primary
myvdpcc-b vdpcs0@primary
VCONS
NAME SERVICE PORT
mygroup vcc0@primary 5000
|
Generate an Extended List (-e)
|
EXAMPLE 9-5 Extended List for all Domains
primary$ ldm list -e
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -t-cv 1 768M 0.0% 0s
VCPU
VID PID UTIL STRAND
0 0 0.0% 100%
MEMORY
RA PA SIZE
0x4000000 0x4000000 768M
IO
DEVICE PSEUDONYM OPTIONS
pci@780 bus_a
pci@7c0 bus_b bypass=on
VLDC
NAME
primary
VCC
NAME PORT-RANGE
vcc0 5000-5100
VSW
NAME MAC NET-DEV DEVICE MODE
vsw0 08:00:20:aa:bb:e0 e1000g0 switch@0 prog,promisc
vsw1 08:00:20:aa:bb:e1 routed
VDS
NAME VOLUME OPTIONS DEVICE
vds0 myvol-a slice /disk/a
myvol-b /disk/b
myvol-c ro,slice,excl /disk/c
vds1 myvol-d /disk/d
VDPCS
NAME
vdpcs0
vdpcs1
VLDCC
NAME SERVICE DESC
hvctl primary@primary hvctl
vldcc0 primary@primary ds
------------------------------------------------------------------------------
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg1 bound ----- 5000 1 512M
VCPU
VID PID UTIL STRAND
0 1 100%
MEMORY
RA PA SIZE
0x4000000 0x34000000 512M
VLDCC
NAME SERVICE DESC
vldcc0 primary@primary ds
NETWORK
NAME SERVICE DEVICE MAC
mynet-b vsw0@primary network@0 08:00:20:ab:9a:12
mynet-a vsw0@primary network@1 08:00:20:ab:9a:11
DISK
NAME VOLUME DEVICE SERVER
mydisk-a myvol-a@vds0 disk@0 primary
mydisk-b myvol-b@vds0 disk@1 primary
VDPCC
NAME SERVICE
myvdpcc-a vdpcs0@primary
myvdpcc-b vdpcs0@primary
VCONS
NAME SERVICE PORT
mygroup vcc0@primary 5000
|
Generate a Parseable, Machine-Readable
List (-p)
|
EXAMPLE 9-6 Machine-Readable List
primary$ ldm list -p
VERSION 1.0
DOMAIN|name=primary|state=active|flags=-t-cv|cons=|ncpu=1|mem=805306368|util=0.0|uptime=0
DOMAIN|name=ldg1|state=bound|flags=-----|cons=5000|ncpu=1|mem=536870912|util=|uptime=
|
Generate a Subset of a Long
List (-o format)
|
Generate
output as a subset of resources by entering one or more of the following format options.
If you specify more than one format, delimit the items by a comma
with no spaces.
console -
output contains virtual console (vcons) and virtual
console concentrator (vcc) service
cpu - output contains virtual
CPU (vcpu) and physical CPU (pcpu)
crypto - cryptographic unit output
contains Modular Arithmetic Unit (mau) and any
other LDoms-supported cryptographic unit, such as the Control Word Queue
(CWQ)
disk - output contains virtual
disk (vdisk) and virtual disk server (vds)
domain - output contains variables
(var), host ID (hostid), domain
state, flags, and software state
memory - output contains memory
network - output contains media
access control (mac) address , virtual network
switch (vsw), and virtual network (vnet)
device
physio - physical input/output
contains peripheral component interconnect (pci)
and network interface unit (niu)
serial - output contains virtual
logical domain channel (vldc) service, virtual
logical domain channel client (vldcc), virtual
data plane channel client (vdpcc), virtual data
plane channel service (vdpcs)
status - output contains status
about a domain migration in progress.
The following examples show various subsets of output that
you can specify.
EXAMPLE 9-7 List CPU Information for the Control Domain
# ldm ls -o cpu primary
NAME
primary
VCPU
VID PID UTIL STRAND
0 0 1.0% 100%
1 1 0.6% 100%
2 2 0.2% 100%
3 3 0.5% 100%
|
EXAMPLE 9-8 List Domain Information for a Guest Domain
# ldm ls -o domain ldm2
NAME STATE FLAGS
ldm2 active -t---
SOFTSTATE
Openboot initializing
VARIABLES
auto-boot?=false
boot-device=/virtual-devices@100/channel-devices@200/disk@0
|
EXAMPLE 9-9 Lists Memory and Network Information for a Guest Domain
# ldm ls -o network,memory ldm1
NAME
ldm1
MAC
00:14:4f:f9:dd:ae
MEMORY
RA PA SIZE
0x6800000 0x46800000 1500M
NETWORK
NAME SERVICE DEVICE MAC MODE PVID VID
ldm1-network0 primary-vsw0@primary network@0 00:14:4f:fb:21:0f 1
|
List a Variable
|
EXAMPLE 9-10 Variable List for a Domain
primary$ ldm list-variable boot-device ldg1
boot-device=/virtual-devices@100/channel-devices@200/disk@0:a
|
List Bindings
|
EXAMPLE 9-11 Bindings List for a Domain
primary$ ldm list-bindings ldg1
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg1 bound ----- 5000 1 512M
VCPU
VID PID UTIL STRAND
0 1 100%
MEMORY
RA PA SIZE
0x4000000 0x34000000 512M
NETWORK
NAME SERVICE DEVICE MAC
mynet-b vsw0@primary network@0 08:00:20:ab:9a:12
PEER MAC
vsw0@primary 08:00:20:aa:bb:e0
mynet-a@ldg1 08:00:20:ab:9a:11
mynet-c@ldg2 08:00:20:ab:9a:22
NAME SERVICE DEVICE MAC
mynet-a vsw0@primary network@1 08:00:20:ab:9a:11
PEER MAC
vsw0@primary 08:00:20:aa:bb:e0
mynet-b@ldg1 08:00:20:ab:9a:12
mynet-c@ldg2 08:00:20:ab:9a:22
DISK
NAME VOLUME DEVICE SERVER
mydisk-a myvol-a@vds0 disk@0 primary
mydisk-b myvol-b@vds0 disk@1 primary
VDPCC
NAME SERVICE
myvdpcc-a vdpcs0@primary
myvdpcc-b vdpcs0@primary
VCONS
NAME SERVICE PORT
mygroup vcc0@primary 5000
|
List Configurations
|
EXAMPLE 9-12 Configurations List
primary$ ldm list-config
factory-default
3guests
foo [next poweron]
primary
reconfig-primary
|
List Devices
|
EXAMPLE 9-13 List of All Server Resources
primary$ ldm list-devices -a
VCPU
PID %FREE PM
0 0 NO
1 0 YES
2 0 YES
3 0 YES
4 100 ---
5 100 ---
6 100 ---
7 100 ---
8 100 ---
9 100 ---
10 100 ---
11 100 ---
12 100 ---
13 100 ---
14 100 ---
15 100 ---
16 100 ---
17 100 ---
18 100 ---
19 100 ---
20 100 ---
21 100 ---
22 100 ---
23 100 ---
24 100 ---
25 100 ---
26 100 ---
27 100 ---
28 100 ---
29 100 ---
30 100 ---
31 100 ---
MAU
CPUSET BOUND
(0, 1, 2, 3) ldg2
(4, 5, 6, 7)
(8, 9, 10, 11)
(12, 13, 14, 15)
(16, 17, 18, 19)
(20, 21, 22, 23)
(24, 25, 26, 27)
(28, 29, 30, 31)
MEMORY
PA SIZE BOUND
0x0 512K _sys_
0x80000 1536K _sys_
0x200000 62M _sys_
0x4000000 768M primary
0x34000000 512M ldg1
0x54000000 8M _sys_
0x54800000 2G ldg2
0xd4800000 29368M
IO
DEVICE PSEUDONYM BOUND OPTIONS
pci@780 bus_a yes
pci@7c0 bus_b yes bypass=on
|
List Available Memory
|
List Services
|
EXAMPLE 9-14 Services List
primary$ ldm list-services
VDS
NAME VOLUME OPTIONS DEVICE
primary-vds0
VCC
NAME PORT-RANGE
primary-vcc0 5000-5100
VSW
NAME MAC NET-DEV DEVICE MODE
primary-vsw0 00:14:4f:f9:68:d0 e1000g0 switch@0 prog,promisc
|
Listing Constraints
To the Logical Domains Manager, constraints are one or more
resources you want to have assigned to a particular domain. You
either receive all the resources you ask to be added to a domain
or you get none of them, depending upon the available resources.
The list-constraints subcommand lists those resources
you requested assigned to the domain.
List Constraints for One Domain
|
EXAMPLE 9-15 Constraints List for One Domain
primary$ ldm list-constraints ldg1
DOMAIN
ldg1
VCPU
COUNT
1
MEMORY
SIZE
512M
NETWORK
NAME SERVICE DEVICE MAC
mynet-b vsw0 network@0 08:00:20:ab:9a:12
mynet-b vsw0 network@0 08:00:20:ab:9a:12
DISK
NAME VOLUME
mydisk-a myvol-a@vds0
mydisk-b myvol-b@vds0
VDPCC
NAME SERVICE
myvdpcc-a vdpcs0@primary
myvdpcc-b vdpcs0@primary
VCONS
NAME SERVICE
mygroup vcc0
|
List Constraints in XML Format
|
EXAMPLE 9-16 Constraints for a Domain in XML Format
primary$ ldm list-constraints -x ldg1
<?xml version="1.0"?>
<LDM_interface version="1.0">
<data version="2.0">
<ldom>
<ldom_info>
<ldom_name>ldg1</ldom_name>
</ldom_info>
<cpu>
<number>8</number>
</cpu>
<memory>
<size>1G</size>
</memory>
<network>
<vnet_name>vnet0</vnet_name>
<service_name>primary-vsw0</service_name>
<mac_address>01:14:4f:fa:0f:55</mac_address>
</network>
<disk>
<vdisk_name>vdisk0</vdisk_name>
<service_name>primary-vds0</service_name>
<vol_name>vol0</vol_name>
</disk>
<var>
<name>boot-device</name>
<value>/virtual-devices@100/channel-devices@200/disk@0:a</value>
</var>
<var>
<name>nvramrc</name>
<value>devalias vnet0 /virtual-devices@100/channel-devices@200/
network@0</value>
</var> <var>
<name>use-nvramrc?</name>
<value>true</value>
</var>
</ldom>
</data>
</LDM_interface>
|
List Constraints in a Machine-Readable
Format
|
EXAMPLE 9-17 Constraints for All Domains in a Machine-Readable Format
primary$ ldm list-constraints -p
VERSION 1.0
DOMAIN|name=primary
MAC|mac-addr=00:03:ba:d8:b1:46
VCPU|count=4
MEMORY|size=805306368
IO
|dev=pci@780|alias=
|dev=pci@7c0|alias=
VDS|name=primary-vds0
|vol=disk-ldg2|opts=|dev=/ldoms/nv72-ldg2/disk
|vol=vol0|opts=|dev=/ldoms/nv72-ldg1/disk
VCC|name=primary-vcc0|port-range=5000-5100
VSW|name=primary-vsw0|mac-addr=|net-dev=e1000g0|dev=switch@0
DOMAIN|name=ldg1
VCPU|count=8
MEMORY|size=1073741824
VARIABLES
|boot-device=/virtual-devices@100/channel-devices@200/disk@0:a
|nvramrc=devalias vnet0 /virtual-devices@100/channel-devices@200/network@0
|use-nvramrc?=true
VNET|name=vnet0|dev=network@0|service=primary-vsw0|mac-addr=01:14:4f:fa:0f:55
VDISK|name=vdisk0|vol=vol0@primary-vds0
|
Connecting to a Guest Console
Over a Network
You can connect to a guest console over a network if the listen_addr property
is set to the IP address of the control domain in the vntsd(1M)
SMF manifest. For example:
Note - Enabling network access to a console has security implications.
Any user can connect to a console and for this reason it is disabled
by default. |
A Service Management Facility manifest is an XML file that
describes a service. For more information about creating an SMF
manifest, refer to the Solaris 10 System Administrator Collection.
Note - To access a non-English OS in a guest domain through
the console, the terminal for the console must be in the locale
required by the OS. |
Stopping a Heavily-Loaded Domain
Can Time Out
An ldm stop-domain command can time out
before the domain completes shutting down. When this happens, an
error similar to the following is returned by the Logical Domains
Manager.
LDom ldg8 stop notification failed
|
However, the domain could still be processing the shutdown
request. Use the ldm list-domain command to verify
the status of the domain. For example:
# ldm list-domain ldg8
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg8 active s---- 5000 22 3328M 0.3% 1d 14h 31m
|
The preceding list shows the domain as active, but the s flag
indicates that the domain is in the process of stopping. This should
be a transitory state.
The following example shows the domain has now stopped.
# ldm list-domain ldg8
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg8 bound ----- 5000 22 3328M
|
Determining Where Errors Occur
by Mapping CPU and Memory Addresses
The Solaris Fault Management Architecture (FMA) reports CPU
errors in terms of physical CPU numbers and memory errors in terms
of physical memory addresses.
If you want to determine within which logical domain an error
occurred and the corresponding virtual CPU number or real memory
address within the domain, then you must perform a mapping.
CPU Mapping
The domain and the virtual CPU number within the domain, which
correspond to a given physical CPU number, can be determined with
the following procedures.
Determine the CPU Number
|
Generate
a long parseable list for all domains.
Look for the entry in the list’s VCPU sections
that has a pid field equal to the physical CPU
number.
If you find
such an entry, the CPU is in the domain the entry is listed under, and
the virtual CPU number within the domain is given by the entry’s vid field.
If you do not find such an entry,
the CPU is not in any domain.
Memory Mapping
The domain and the real memory address within the domain,
which correspond to a given physical memory address (PA), can be
determined as follows.
Determine the Real Memory Address
|
Generate
a long parseable list for all domains.
Look for the line in the list’s MEMORY sections
where the PA falls within the inclusive range pa to
(pa + size -
1); that is, pa <= PA < (pa + size -
1).
Here pa and size refer
to the values in the corresponding fields of the line.
If you find
such an entry, the PA is in the domain the entry is listed under and
the corresponding real address within the domain is given by ra +
(PA - pa).
If you do not find such an entry,
the PA is not in any domain.
Examples of CPU and Memory
Mapping
Suppose you have a logical domain configuration as shown in EXAMPLE 9-18, and you want to determine
the domain and the virtual CPU corresponding to physical CPU number 5,
and the domain and the real address corresponding to physical address 0x7e816000.
Looking through the VCPU entries in the
list for the one with the pid field equal to 5,
you can find the following entry under logical domain ldg1.
|vid=1|pid=5|util=29|strand=100
|
Hence, the physical CPU number 5 is in
domain ldg1 and within the domain it has virtual
CPU number 1.
Looking through the MEMORY entries in the
list, you can find the following entry under domain ldg2.
ra=0x8000000|pa=0x78000000|size=1073741824
|
Where 0x78000000 <= 0x7e816000 <= (0x78000000 + 1073741824
- 1); that is, pa <= PA <= (pa + size -
1).Hence, the PA is in domain ldg2 and the corresponding
real address is 0x8000000 + (0x7e816000 - 0x78000000) = 0xe816000.
EXAMPLE 9-18 Long Parseable List of Logical Domains Configurations
primary$ ldm ls -l -p
VERSION 1.0
DOMAIN|name=primary|state=active|flags=normal,control,vio-service|cons=SP|ncpu=4|mem=1073741824|util=0.6|uptime=64801|softstate=Solaris running
VCPU
|vid=0|pid=0|util=0.9|strand=100
|vid=1|pid=1|util=0.5|strand=100
|vid=2|pid=2|util=0.6|strand=100
|vid=3|pid=3|util=0.6|strand=100
MEMORY
|ra=0x8000000|pa=0x8000000|size=1073741824
IO
|dev=pci@780|alias=bus_a
|dev=pci@7c0|alias=bus_b
VDS|name=primary-vds0|nclients=2
|vol=disk-ldg1|opts=|dev=/opt/ldoms/testdisk.1
|vol=disk-ldg2|opts=|dev=/opt/ldoms/testdisk.2
VCC|name=primary-vcc0|nclients=2|port-range=5000-5100
VSW|name=primary-vsw0|nclients=2|mac-addr=00:14:4f:fb:42:5c|net-dev=e1000g0|dev=switch@0|mode=prog,promisc
VCONS|type=SP
DOMAIN|name=ldg1|state=active|flags=normal|cons=5000|ncpu=2|mem=805306368|util=29|uptime=903|softstate=Solaris running
VCPU
|vid=0|pid=4|util=29|strand=100
|vid=1|pid=5|util=29|strand=100
MEMORY
|ra=0x8000000|pa=0x48000000|size=805306368
VARIABLES
|auto-boot?=true
|boot-device=/virtual-devices@100/channel-devices@200/disk@0
VNET|name=net|dev=network@0|service=primary-vsw0@primary|mac-addr=00:14:4f:f9:8f:e6
VDISK|name=vdisk-1|vol=disk-ldg1@primary-vds0|dev=disk@0|server=primary
VCONS|group=group1|service=primary-vcc0@primary|port=5000
DOMAIN|name=ldg2|state=active|flags=normal|cons=5001|ncpu=3|mem=1073741824|util=35|uptime=775|softstate=Solaris running
VCPU
|vid=0|pid=6|util=35|strand=100
|vid=1|pid=7|util=34|strand=100
|vid=2|pid=8|util=35|strand=100
MEMORY
|ra=0x8000000|pa=0x78000000|size=1073741824
VARIABLES
|auto-boot?=true
|boot-device=/virtual-devices@100/channel-devices@200/disk@0
VNET|name=net|dev=network@0|service=primary-vsw0@primary|mac-addr=00:14:4f:f9:8f:e7
VDISK|name=vdisk-2|vol=disk-ldg2@primary-vds0|dev=disk@0|server=primary
VCONS|group=group2|service=primary-vcc0@primary|port=5000
|
Using Console Groups
The virtual network terminal server daemon, vntsd(1M),
enables you to provide access for multiple domain consoles using
a single TCP port. At the time of domain creation, the Logical Domains
Manager assigns a unique TCP port to each console by creating a
new default group for that domain’s console. The TCP port is then assigned
to the console group as opposed to the console itself. The console
can be bound to an existing group using the set-vcons subcommand.
Combine Multiple Consoles Into
One Group
|
Bind
the consoles for the domains into one group.
The following example shows binding the console for three
different domains (ldg1, ldg2,
and ldg3) to the same console group (group1).
primary# ldm set-vcons group=group1 service=primary-vcc0 ldg1
primary# ldm set-vcons group=group1 service=primary-vcc0 ldg2
primary# ldm set-vcons group=group1 service=primary-vcc0 ldg3
|
Connect to the associated TCP
port (localhost at port 5000 in
this example).
# telnet localhost 5000
primary-vnts-group1: h, l, c{id}, n{name}, q:
|
You are prompted to select one of the domain consoles.
List the domains within the group
by selecting l (list).
primary-vnts-group1: h, l, c{id}, n{name}, q: l
DOMAIN ID DOMAIN NAME DOMAIN STATE
0 ldg1 online
1 ldg2 online
2 ldg3 online
|
Note - To re-assign the console to a different group or vcc instance,
the domain must be unbound; that is, it has to be in the inactive
state. Refer to the Solaris 10 OS vntsd(1M) man
page for more information on configuring and using SMF to manage vntsd and
using console groups. |
Operating the Solaris OS With Logical Domains
This section describes the changes in behavior in using the
Solaris OS that occur once a configuration created by the Logical
Domains Manager is instantiated; that is, domaining is enabled.
Note - Any discussion about whether domaining is enabled pertains
only to Sun UltraSPARC T1–based platforms. Otherwise, domaining
is always enabled. |
OpenBoot Firmware Not Available
After Solaris OS Has Started If Domaining Is Enabled
Domaining is enabled once a logical domains configuration
created by the Logical Domains Manager is instantiated. If domaining
is enabled, the OpenBoot
firmware is
not available after the Solaris OS has started, because it is removed
from memory.
To reach the ok prompt from the Solaris
OS, you must halt the domain. You can use the Solaris OS halt command
to halt the domain.
Power-Cycling a Server
Whenever performing any maintenance on a system running LDoms
software that requires power-cycling the server, you must save your
current logical domain configurations to the SC first.
Save Your Current Logical Domain
Configurations to the SC
|
Do Not Use the psradm(1M)
Command on Active CPUs in a Power-Managed Domain
Do not attempt to change an active CPU’s operational status
in a power-managed domain by using the psradm(1M)
command. This only applies if your platform supports power management.
Result of Solaris OS Breaks
If domaining is not enabled, the Solaris OS normally goes
to the OpenBoot prompt after a break is issued. The behavior described
in this section is seen in two situations:
You press the L1-A
key sequence when the input device is set to keyboard.
You enter the send break command
when the virtual console is at the telnet prompt.
If domaining is enabled, you receive the following prompt
after these types of breaks.
c)ontinue, s)ync, r)eboot, h)alt?
|
Type the letter that represents what you want the system to
do after these types of breaks.
Results From Halting or Rebooting
the Control Domain
The following table shows the expected behavior of halting
or rebooting the control (primary) domain.
Note - The question in TABLE 9-1 regarding
whether domaining is enabled pertains only to the Sun UltraSPARC
T1 processors. Otherwise, domaining is always enabled. |
TABLE 9-1 Expected Behavior of Halting or Rebooting the Control (primary)
Domain
Command |
Domaining Enabled? |
Other Domain Configured? |
Behavior |
halt |
Disabled |
N/A |
For Sun UltraSPARC
T1 Processors:
Drops to the ok prompt. |
|
Enabled |
No |
For Sun UltraSPARC
T1 Processors:
System either resets and goes to the OpenBoot ok prompt
or goes to the following prompt:
r)eboot, o)k prompt, or h)alt?
For Sun UltraSPARC T2 Processors:
Host powered off and stays off until powered on at the SC. |
|
Enabled |
Yes |
Soft resets and boots up if the variable auto-boot?=true.
Soft resets and halts at ok prompt if the variable auto-boot?=false. |
reboot |
Disabled |
N/A |
For Sun UltraSPARC
T1 Processors:
Powers off and powers on the host. |
|
Enabled |
No |
For Sun UltraSPARC
T1 Processors:
Powers off and powers on the host.
For Sun UltraSPARC T2 Processors:
Reboots the host, no power off. |
|
Enabled |
Yes |
For Sun UltraSPARC
T1 Processors:
Powers off and powers on the host.
For Sun UltraSPARC T2 Processors:
Reboots the host, no power off. |
shutdown -i 5 |
Disabled |
N/A |
For Sun UltraSPARC
T1 Processors:
Powers off the host. |
|
Enabled |
No |
Host powered off, stays off until powered
on at the SC. |
|
Enabled |
Yes |
Soft resets and reboots. |
Using LDoms With ALOM CMT
The section describes information to be aware of in using
Advanced Lights Out Manager (ALOM) chip multithreading (CMT) with
the Logical Domains Manager. For more information about using the
ALOM CMT software, refer to the Advanced Lights
Out Management (ALOM) CMT v1.3 Guide.
![caution icon caution icon](shared/caution.gif) | Caution - The ALOM CMT documentation refers
to only one domain, so you must be aware that the Logical Domains
Manager is introducing multiple domains. If a logical domain is
restarted, I/O services for guest domains might be unavailable until
the control domain has restarted. This is because the control domain
functions as a service domain in the Logical Domains Manager 1.1
software. Guest domains appear to freeze during the reboot process.
Once the control domain has fully restarted, the guest domains resume
normal operations. It is only necessary to shut down guest domains
when power is going to be removed from the entire server. |
An additional option is available to the existing ALOM CMT
command.
bootmode [normal|reset_nvram|bootscript=strong|config=”config-name”]
|
The config=”config-name” option
enables you to set the configuration on the next power on to another
configuration, including the factory-default shipping configuration.
You can invoke the command whether the host is powered on
or off. It takes effect on the next host reset or power on.
Reset the Logical Domain Configuration
to the Default or Another Configuration
|
Reset
the logical domain configuration on the next power on to the default shipping
configuration by executing this command in ALOM CMT software.
sc> bootmode config=”factory-default”
|
You also can select other configurations that have been created
with the Logical Domains Manager using the ldm add-config command
and stored on the system controller (SC). The name you specify in
the Logical Domains Manager ldm add-config command
can be used to select that configuration with the ALOM CMT bootmode command.
For example, assume you stored the configuration with the name ldm-config1.
sc> bootmode config=”ldm-config1”
|
Refer to the ldm(1M) man page or the Logical Domains (LDoms) Manager 1.1 Man Page
Guide for more information about the ldm add-config command.
Enabling and Using BSM Auditing
The Logical Domains Manager uses the Solaris OS Basic Security
module (BSM) auditing capability. BSM auditing provides the means
to examine the history of actions and events on your control domain
to determine what happened. The history is kept in a log of what
was done, when it was done, by whom, and what was affected.
If you want to use this auditing capability, this section
describes how to enable, verify, disable, print output, and rotate
audit logs. You can find further information about BSM auditing
in the Solaris 10 System Administration
Guide: Security Services.
You can enable BSM auditing in one of two ways. When you want
to disable auditing, be sure you use the same method that you used
in enabling. The two methods are:
Use the enable-bsm.fin finish
script in the Solaris Security Toolkit.
The enable-bsm.fin script is not used
by default by the ldm_control-secure.driver.
You must enable the finish script in your chosen driver.
Use the Solaris OS bsmconv(1M)
command.
Here are the procedures for both methods.
Use the enable-bsm.fin Finish
Script
|
Copy
the ldm_control-secure.driver to my-ldm.driver,
where my-ldm.driver is the name for your
copy of the ldm_control-secure.driver.
Copy the ldm_control-config.driver to my-ldm-config.driver,
where my-ldm-config.driver is the name
for your copy of the ldm_control-config.driver.
Copy the ldm_control-hardening.driver to my-ldm-hardening.driver,
where my-ldm-hardening.driver is the
name for your copy of the ldm_control-hardening.driver.
Edit my-ldm.driver to
refer to the new configuration and hardening drivers, my-ldm-control.driver and my-ldm-hardening.driver,
respectively.
Edit my-ldm-hardening.driver,
and remove the pound sign (#) from in front of
the following line in the driver.
Execute my-ldm.driver.
# /opt/SUNWjass/bin/jass-execute -d my-ldm.driver
|
Reboot the Solaris OS for auditing
to take effect.
Use the Solaris OS bsmconv(1M)
Command
|
Add vs in
the flags: line of the /etc/security/audit_control file.
Run the bsmconv(1M)
command.
For more information about this command, refer to the Solaris
10 Reference Manual Collection or the man page.
Reboot the Solaris Operating
System for auditing to take effect.
Verify that BSM Auditing is
Enabled
|
Type
the following command.
Check that audit condition = auditing appears
in the output.
Disable Auditing
|
Do
one of the following.
Reboot the Solaris OS for the
disabling of auditing to take effect.
Print Audit Output
|
Rotate Audit Logs
|
Logical Domains (LDoms) 1.1 Administration Guide | 820-4913-10 |
![Previous Chapter Previous Chapter](shared/prev01.gif) ![Next Chapter Next Chapter](shared/next01.gif) ![Book Index Book Index](shared/index01.gif) |
Copyright © 2008, Sun Microsystems, Inc. All rights reserved.