Oracle VM Server for SPARC
Logical Domains is the server virtualization and partitioning technology for SPARC V9 processors. It was first released by Sun Microsystems in April 2007. After the Oracle acquisition of Sun in January 2010, the product has been re-branded as Oracle VM Server for SPARC from version 2.0 onwards.
Each domain is a full virtual machine with a reconfigurable subset of hardware resources. Domains can be securely live migrated between servers while running. Operating systems running inside Logical Domains can be started, stopped, and rebooted independently. A running domain can be dynamically reconfigured to add or remove CPUs, RAM, or I/O devices without requiring a reboot.
Supported hardware
SPARC hypervisors run in hyperprivileged execution mode, which was introduced in the sun4v architecture. The sun4v processors released as of October 2015 are the UltraSPARC T1, T2, T2+, T3, T4, T5, M5, M6, M10, and M7. Systems based on UltraSPARC T1 support only Logical Domains versions 1.0-1.2. The newer types of T-series servers support both older Logical Domains and newer Oracle VM Server for SPARC product version 2.0 and later. These include:UltraSPARC T1-based:
- Sun / Fujitsu SPARC Enterprise T1000 and T2000 servers
- Sun Fire T1000 and T2000 servers
- Netra T2000 Server
- Netra CP3060 Blade
- Sun Blade T6300 Server Module
- Sun / Fujitsu SPARC Enterprise T5120 and T5220 servers
- Sun Blade T6320 Server Module
- Netra CP3260 Blade
- Netra T5220 Rackmount Server
- Sun / Fujitsu SPARC Enterprise T5140 and T5240 servers
- Sun / Fujitsu SPARC Enterprise T5440
- Sun Blade T6340 Server Module
- Sun / Fujitsu SPARC T3-1 servers
- Sun SPARC T3-1B Server Module
- Sun / Fujitsu SPARC T3-2 servers
- Sun / Fujitsu SPARC T3-4 servers
- SPARC T4-1 Server
- SPARC T4-1B Server Module
- SPARC T4-2 Server
- SPARC T4-4 Server
- SPARC T5-1B Server Module
- SPARC T5-2 Server
- SPARC T5-4 Server
- SPARC T5-8 Server
- SPARC T7-1
- SPARC T7-2
- SPARC T7-4
- Oracle SPARC M5-32 Server
- Oracle SPARC M6-32 Server
- Fujitsu M10-1
- Fujitsu M10-4
- Fujitsu M10-4S
- Oracle SPARC M7-8
- Oracle SPARC M7-16
Logical Domains exploits the chip multithreading nature of the "CoolThreads" processors. A single chip contains up to 32 CPU cores, and each core has either four hardware threads or eight hardware threads that act as virtual CPUs. All CPU cores execute instructions concurrently, and each core switches between threads—typically when a thread stalls on a cache miss or goes idle—within a single clock cycle. This lets the processor gain throughput that is lost during cache misses in conventional CPU designs. Each domain is assigned its own CPU threads and executes CPU instructions at native speed, avoiding the virtualization overhead for privileged operation trap-and-emulate or binary rewrite typical of most VM designs.
Each server can support as many as one domain per hardware thread up to a maximum of 128. That's up to 32 domains for the UltraSPARC T1, 64 domains for the UltraSPARC T2 and SPARC T4-1, and 128 domains for UltraSPARC T3 as examples single-processor servers. Servers with 2-4 UltraSPARC T2+ or 2-8 SPARC T3-T5 CPUs support as many logical domains as the number of processors multiplied by the number of threads of each CPU up to the limit of 128. M-series servers can be subdivided into physical domains, each of which can host up to 128 logical domains. Typically, a given domain is assigned multiple CPU threads or CPU cores for additional capacity within a single OS instance. CPU threads, RAM, and virtual I/O devices can be added to or removed from a domain by administrator issuing command in the control domain. This change takes effect immediately without the need to reboot the affected domain, which can immediately make use of added CPU threads or continue operating with reduced resources.
When hosts are connected to shared storage, running guest domains can be securely live migrated between servers without outage. The process encrypts guest VM memory contents before they are transmitted between servers, using cryptographic accelerators available on all processors with sun4v architecture.
Logical Domain roles
All logical domains are the same except for the roles that they are assigned. There are multiple roles that logical domains can perform such as:- Control domain
- Service domain
- I/O domain
- Root domain
- Guest domain
Service domains present virtual services, such as virtual disk drives and network switches, to other domains. In most cases, guest domains perform I/O via bridged access through services domains, which are usually I/O domains and directly connected to the physical devices. Service domains can provide virtual LANs and SANs as well as bridge through to physical devices. Disk images can reside on complete local physical disks, shared SAN block devices, their slices, or even on files contained on a local UFS or ZFS file system, or on a shared NFS export or iSCSI target.
Control and service functions can be combined within domains, however it is recommended that user applications not run within control or service domains in order to protect domain stability and performance.
I/O domains have direct ownership of a PCI bus, or card on a bus, or Single Root I/O Virtualization function, providing direct access to physical I/O devices, such as a network card in a PCI controller. An I/O domain may use its devices to have native I/O performance its own applications, or act as a service domain and share the devices to other domains as virtual devices.
Root domains have direct ownership of PCIe "root complex" and all associated PCIe slots. This can be used to grant access to physical I/O devices. A root domain is also an I/O domain. There are a maximum of two root domains for the UltraSPARC T1 servers, one of which also must be the control domain. UltraSPARC T2 Plus, SPARC T3, and SPARC T4 servers can have as many as 4 root domains, limited by the number of PCIe root complexes installed on the server. SPARC T5 servers can have up to 16 root complex domains. Multiple I/O domains can be configured to provide resiliency against failures.
Guest domains run an operating system instance without performing any of the above roles, but leverage the services provided by the above in order to run applications.
Supported guest operating systems
The only operating system supported by the vendor for running within logical domains is Solaris 10 11/06 and later updates, and all Solaris 11 releases.There are operating systems that are not officially supported, but may still be capable of running within logical domains:
- Debian ports version
- OpenSolaris 2009.06
- Illumos-derived releases
- Ubuntu Linux Server Edition
- OpenBSD 4.5 or later
- Wind River Linux 3.0
- Oracle Linux for SPARC