Types of logical domains

Name Purpose
Guest No direct access to underlying hardware and does not provide virtual device or services to other ldoms. Uses virtual device.
I/O has direct access to underlying hardware in the server. It can be used in cases like oracle DB which wants direct/raw access to the storage devices.
Service provides virtualized devices and services to guest domains.
Control Service domain that also runs the ldoms manager software to control the configuration of hypervisor. This ldom manager is responsible for mapping between physical and virtual devices.

Virtual Services and Devices

Abbreviation Name Purpose
VLDC virtual logical domain channel communication channel between logical domain and hypervisor
VCC Virtual console concentrator Acts as a virtual console for each logical domain
VSW Virtual switch service provides network access for guest ldoms to the physical network ports
VDS virtual disk service provides virtual storage service for guest ldoms
VCPU virtual CPU Each thread of a T series CPU acts as a virtual CPU
MAU Mathematical arithmetic unit Each core of T series CPU will have a MAU for accelerated RAS/DSA encryption
Memory Physical memory is mapped into virtual memory and assigned to ldoms
VCONS Virtual console a port in guest ldom that connects to the VCC service in control domain
VNET Virtual network network port in guest ldom which is connected to the VSW service in the control domain
VSDEV Virtual disk service device physical storage device that is virtualized by VDS service in control domain
VDISK Virtual disk VDISK in guest domain is connected to the VDS service in control domain/service domain

Installing the OVM software

To install the LDOM software simply unzip the software zip and run the install-ldm script with -s option in case you don’t want to use the configuration assistant to configure the primary and guest ldoms.

primary # unzip OVM_Server_SPARC_latest.zip
primary # ./install-ldm -s

Creating the default services

Create the essential services like vsw, vcc and vds required to serve the guest LDOMs.

primary# ldm add-vcc port-range=5000-5100 primary-vcc0 primary
primary# ldm add-vds primary-vds0 primary
primary# ldm add-vsw net-dev=nxge0 primary-vsw0 primary
primary# ldm list-services primary 
    NAME             VOLUME         OPTIONS          DEVICE
    NAME             PORT-RANGE
    primary-vcc0     5000-5100
    NAME             MAC               NET-DEV   DEVICE     MODE
    primary-vsw0     02:04:4f:fb:9f:0d nxge0     [email protected]   prog,promisc

Initial configuration of the control domain

By default all the VCPUs, Memory and MAUs are assigned to the primary domain which is the default domain created after installing the OVM for SPARC software. Primary or control domain is used to configure all the guest ldoms and provide necessary virtual services to them like vcc, vsw and vds. Logical domain manager is responsible to create, delete, modify and control ldoms, thus make sure the ldmd service is running before configuring the primary and guest domains. Use delayed reconfiguration in order to configure the primary ldom without rebooting for previous changes to take effect.

primary# svcs -a | grep ldmd
online 14:23:34 svc:/ldoms/ldmd:default
primary# ldm set-mau 1 primary
primary# ldm set-vcpu 8 primary
primary# ldm start-reconf primary          (delayed reconfiguration)
primary# ldm set-memory 4G primary
primary# ldm add-config new_config
primary# ldm list-config 
new_config [current]

Reboot the primary domain for configuration settings to take effect

primary# shutdown -y -g0 -i6

Enable networking between primary and guest domains

By default communication between control domain and all the guest domains is disabled. To enable it, virtual switch has to be configured as the network device instead of nxge0.

primary# ifconfig nxge0 down unplumb
primary# ifconfig vsw0 plumb
primary# ifconfig vsw0 netmask + broadcast + up
primary# mv /etc/hostname.nxge0 /etc/hostname.vsw0

Enable virtual network terminal server daemon

The vntsd daemon is responsible to provide the virtual network terminal services to the guest ldoms. If this service is not running enable it with svcadm command.

primary# svcadm enable vntsd
primary# svcs vntsd
    STATE          STIME    FMRI
    online         Oct_12   svc:/ldoms/vntsd:default

Setting up the Guest Domain

We would assign 8 VCPUs, 2 GB of memory and 1 MAU to our first guest ldom. Also a virtual network vnet1 will be created and associated with the virtual switch vsw0.

primary# ldm add-domain ldom01
primary# ldm add-vcpu 8 ldom01
primary# ldm add-memory 2G ldom01
primary-domain# ldm set-mau 1 ldom01
primary# ldm add-vnet vnet1 primary-vsw0 ldom01

Adding storage to the guest domain

Here we first need to specify the physical device that needs to be exported by vdsdev to the guest domain and then we actually add the virtual disk thus created to the guest domain. Now use any one of the 3 methods mentioned below.
1. Adding physical disks

primary# ldm add-vdsdev /dev/dsk/c2t1d0s2 [email protected]
primary# ldm add-vdisk vdisk1 [email protected] ldom01

2. Adding file

primary# mkfile 10g /ldoms/ldom01_boot
primary# ldm add-vdsdev /ldoms/ldom01_boot [email protected]
primary# ldm add-vdisk vdisk1 [email protected] ldom01

3. Adding a volume

primary# zfs create -V 5gb pool/vol01
primary# ldm add-vdsdev /dev/zvol/dsk/pool/vol01 [email protected]
primary# ldm add-vdisk vdisk1 [email protected] ldom01

Setting variables

Setup the boot environment variable for the guest ldom.

primary# ldm set-var auto-boot?=true ldom01
primary# ldm set-var boot-device=vdisk1 ldom01

Setting up the solaris ISO image for installing guest ldom

Now we can also do a jumpstart installation of the guest domain. But one of the easiest and most widely used method is add iso image as virtual disk to the guest ldom and install it from it. Here you can access the vdisk sol10_iso in the ok prompt and boot from it.

primary# ldm add-vdsdev options=ro /data/sol_10.iso [email protected]
primary# ldm add-vdisk sol10_iso [email protected] ldom01

Bind and start installing the ldom

primary# ldm bind ldom01
primary# ldm start ldom01
LDom ldom01 started
ok> devalias
ok> boot sol10_iso

Connect the guest domain

Now check the port which is bound with the guest domain and connect the virtual console of the guest domain.

primary:~ # ldm list
primary active -n-cv  SP   8    4G    0.3% 8h 46m 
ldom01  active -n--- 5000  8    2G     48% 1h 52m
primary# telnet localhost 5000 Trying
    Connected to localhost.
    Escape character is ’^]’.
Connecting to console "ldom01" in group "ldom01" .... Press ~? for control options ..

Flag definitions

Now you can see various flags in the “ldm list” command output. The falgs represent the current state of the ldom.

column 1 column 2 column 3
s starting or stopping
– placeholder
n normal
t transition
d delayed reconfiguration
– placeholder
column 4 column 5 column 6
c control domain
– placeholder
v virtual I/O service domain
– placeholder
s source domain in migration
t target domain in migration
e error occurred in migration
– placeholder

Other useful Commands

View current version of Oracle VM server for SPARC software

primary# ldm -V

Long listing of domains

primary# ldm list -l

List the resource for all LDOMs and per LDOM

# ldm list -o cpu primary
# ldm list -o network,memory ldom01

List the boot variables

# ldm list-variable boot-device ldg1 
boot-device=/[email protected]/[email protected]/[email protected]:a

List the bindings of all the LDOMs

# ldm list-bindings ldom

List all server resources, bound and unbound.

# ldm list-devices -a
# ldm list-devices mem



Sheba Couley · 28/02/2019 at 01:53

Attractive section of content. I just stumbled upon your weblog and in accession capital to assert that I acquire actually enjoyed account your blog posts. Anyway I will be subscribing to your feeds and even I achievement you access consistently fast.

Erlene Enge · 01/03/2019 at 04:57

Post wrting is also a fun, if you be familiar with then youcan write if not it iis complicated to write.

Suzi Else · 23/03/2019 at 11:10

Thank you for your blog article.Really looking forward to read more. Will read on…

Hairstyles Look · 02/08/2019 at 05:38

I am very happy to read this. This is the type of manual that needs to be given and not the random misinformation that’s at the other blogs. Appreciate your sharing this greatest doc.

Phillip · 01/11/2020 at 15:49

You need to show a diagram as it does not make sense to what you building. Looks good but for someone who never implemented this will never see why he is doing this way. I don’t. As example of what I mean look at this link: https://docs.oracle.com/cd/E37838_01/html/E60990/grmqw.html#NWDLKgrnr

As of Solaris 11.4 the software is included in the OS and you don’t have to download it anymore. I am building one using the above design above.Nice details.


    Rizki Amar Kuswara · 10/11/2020 at 03:20

    Hi Phillip,

    thanks for your advise, yup’s as of solaris 11.4, the software is already available

Leave a Reply

Your email address will not be published. Required fields are marked *

1 × three =

Related Posts


Solaris Snoop for packet sniffing

The snoop command can come very handy to monitor the network traffic to troubleshoot any network related issues like packet drops, high network latency etc. Snoop command can be run to see the real time Read more…


How to Find and Remove Old or Inactive Files

How to Find and Remove Old or Inactive Files Become an administrator. Find files that have not been accessed for a specified number of days and list them in a file. # find directory -type Read more…


How to Collect a Snapshot on SPARC M series servers Mx000 and M10-x systems

Running snapshot The syntax varies slightly from the Mx000 to the M10-x .The M10 requires a “-a” option to collect logs from all chassis. The two most common usages are described below. The first example Read more…