This document summarizes all features in the Solaris 10 Operating System (OS) that are new or have been enhanced in the current release, the Solaris 10 10/09 release.
For a summary of all features in the Solaris 10 OS that were introduced or enhanced since the Solaris 9 OS was originally distributed in May 2002, see Solaris 10 What’s New.
The following system administration features and enhancements have been added to the Solaris 10 10/09 release.
Starting with the Solaris 10 10/09 release, you can install and boot the Solaris OS from a disk that is up to 2 Tbytes in size. In previous Solaris releases, you could not install and boot the Solaris OS from a disk that was greater than 1 Tbyte in size.
In this Solaris release, you can use the VTOC label on a disk of any size. However, the addressable space by the VTOC is limited to 2 Tbytes. This feature enables disks that are larger than 2 Tbytes to also be used as boot drive. However, the usable space from label is limited to 2 Tbytes.
This feature is available only on systems that run a 64-bit kernel. A minimum of 1 Gbyte of memory is required for x86–based systems.
For more information about the Solaris disk drivers and disk utilities that have been updated to support boot on disks greater than 1 Tbyte, see System Administration Guide: Devices and File Systems.
The pcitool utility enables system administrators to bind interrupts to specific hardware strands for enhanced performance. This utility exists in the public SUNWio-tools package. For more information about using pcitool, see the pcitool man page.
The following section summarizes new features in the ZFS file system.
ZFS and Flash installation support – In the Solaris 10 10/09 release, you can set up a JumpStart profile to identify a flash archive of a ZFS root pool. For more information, see the Solaris ZFS Administration Guide.
Setting ZFS user and group quotas – In previous Solaris releases, you could apply quotas and reservations to ZFS file systems to manage and reserve space. In this Solaris release, you can set a quota on the amount of space consumed by files that are owned by a particular user or group. You might consider setting user and group quotas in an environment with a large number of users or groups. You can set user or group quotas by using the zfs userspace and zfs groupspace properties as follows:
# zfs set userquota@user1=5G tank/data # zfs set groupquota@staff=10G tank/staff/admins |
You can display a user's or group's current quota setting as follows:
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE SOURCE tank/staff/admins groupquota@staff 10G local |
Using ZFS ACL pass through inheritance for execute permission – In previous Solaris releases, you could apply ACL inheritance so that all files are created with 0664 or 0666 permissions. If you want to optionally include the execute bit from the file creation mode into the inherited ACL, you can use the pass through inheritance for execute permission in this release.
If aclinherit=passthrough-x is enabled on a ZFS dataset, you can include execute permission for an output file that is generated from cc or gcc tools. If the inherited ACL does not include execute permission, then the executable output from the compiler won't be executable until you use the chmod command to change the file's permissions.
Using cache devices in your ZFS storage pool – In the Solaris 10 10/09 release, you can create pool and specify cache devices, which are used to cache storage pool data. Cache devices provide an additional layer of caching between main memory and disk. Using cache devices provide the greatest performance improvement for random read-workloads of mostly static content.
One or more cache devices can specified when the pool is created. For example:
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors |
For information about determining whether using cache devices is appropriate for your environment, see the Solaris ZFS Administration Guide.
ZFS property enhancements – The Solaris 10 10/09 release provides the following ZFS property enhancements:
You can set ZFS file system properties at pool creation time. In the following example, compression is enabled on the ZFS file system that is created when the pool is created.
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0 |
You can set two cache properties on a ZFS file system that allow you to control what is cached in the primary cache (ARC) or the secondary cache (L2ARC). The cache properties are set as follows:
primarycache – Controls what is cached in the ARC.
secondarycache – Controls what is cached in the L2ARC.
You can set these properties on an existing file system or when the file system is created. For example:
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab |
Some database environments might benefit from not caching user data. You will have determine if setting cache properties is appropriate for your environment.
For more information, see the Solaris ZFS Administration Guide.
You can use the space usage properties to identify space usage for clones, file systems, and volumes, but not snapshots. The properties are as follows:
usedbychildren – Identifies the amount of space that is used by children of this dataset, which would be freed if all the dataset's children were destroyed. The property abbreviation is usedchild.
usedbydataset – Identifies the amount of space that is used by this dataset itself, which would be freed if the dataset was destroyed, after first destroying any snapshots and removing any refreservation. The property abbreviation is usedds.
usedbyrefreservation – Identifies the amount of space that is used by a refreservation set on this dataset, which would be freed if the refreservation was removed. The property abbreviation is usedrefreserv.
usedbysnapshots – Identifies the amount of space that is consumed by snapshots of this dataset. In particular, it is the amount of space that would be freed if all of this dataset's snapshots were destroyed. Note that this is not simply the sum of the snapshots' used properties, because space can be shared by multiple snapshots. The property abbreviation is usedsnap.
These new properties break down the value of the used property into the various elements that consume space. In particular, the value of the used property breaks down as follows:
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots |
You can view these properties by using the zfs list -o space command. For example:
# zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD pool 33.2G 72K 0 21K 0 51K rpool 27.0G 6.27G 20.5K 97K 0 6.27G rpool/ROOT 27.0G 4.73G 0 21K 0 4.73G rpool/ROOT/zfsBE 27.0G 4.73G 97.5M 4.63G 0 0 rpool/dump 27.0G 1.00G 16K 1.00G 0 0 rpool/export 27.0G 60K 16K 23K 0 21K rpool/export/home 27.0G 21K 0 21K 0 0 rpool/swap 27.5G 553M 0 41.5M 512M 0 |
In this release, snapshots are omitted from zfs list output. The listsnaps pool property controls whether snapshot information is displayed by the zfs list command. If you use the zfs list -t snapshots command, snapshot information is displayed. The default value is off, which means snapshot information is not displayed by default.
ZFS log device recovery – In the Solaris 10 10/09 release, ZFS identifies intent log failures in the zpool status command. FMA reports these errors as well. Both ZFS and FMA describe how to recover from an intent log failure.
For example, if the system shuts down abruptly before synchronous write operations are committed to a pool with a separate log device, you will see intent-log related error messages in the zpool status output. For information about resolving log device failures, see the Solaris ZFS Administration Guide.
Using ZFS ACL Sets – The Solaris 10 10/09 release provides the ability to apply NFSv4–style ACLs in sets, rather than apply different ACL permissions individually. The following ACL sets are provided:
full_set = all permissions
modify_set = all permissions except write_acl and write_owner
read_set = read_data, read_attributes, read_xattr, and read_acl
write_set = write_data, append_data, write_attributes, and write_xattr
These ACL sets are pre-defined and cannot be modified.
For more information about these improvements and changes, see the Solaris ZFS Administration Guide.
See the following What's New sections for related ZFS feature information:
The LDAP name service is enhanced to support the account locking and password aging functionality using the data in the shadow database stored on a configured LDAP server. This support enables the passwd(1) utility and the pam_unix_*(5) PAM modules to function almost the same when handling account locking and password aging for local accounts and remote LDAP user accounts. Therefore, using the pam_ldap(5) module is no longer the only way to implement the password policy and account control for the LDAP name service. pam_unix_*(5) can be used to obtain the same consistent results as with the files and nisplus name services.
For more information, see System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).
The SunVTSTM 7.0 Patch Set 6 is integrated in the Solaris 10 10/09 release. The SunVTS 7.0 Patch Set 6 follows a conventional three-tier architecture model. The patch set includes a browser-based user interface (BUI), a Java technology-based middle server, and a diagnostic agent. Enhancements to the SunVTS infrastructure include:
Support for solid-state drives (SSD) added to vtsk
Default level of logical tests enhanced to adapt to system configuration size
Minimum and maximum values or hard limit for reserve swap in vtsk
Ability to change the sequence of Logical Test execution
The Solaris 10 10/09 release includes the following enhancements to memory and CPU diagnostics:
Coverage is added for X86-L3$ in l3sramtest
Enhanced vmemtest, fputest, and l2sramtest provide callbacks to return swap requirements
Tuned logical tests for x86 systems and UltraSPARC® T2 Processor-based systems
The Solaris 10 10/09 release also includes the following enhancements to the I/O diagnostics:
disktest is enhanced to run in Read only mode if Write or Read option is not applicable
Disk Logical Test is tuned for x86, UltraSPARC T2 Processor, and UltraSPARC IV systems
disktest options are automated to run solid-state drive (SSD) and hard disk drive (HDD) Tasks in Disk LT
Selection of test-options is automated in netlbtest
Support in disktest and iobustest for safe and unsafe test options
The following installation feature has been added to the Solaris 10 10/09 release.
Starting with the Solaris 10 10/09 release, SVR4 package commands run faster. This enhancement means that the Solaris installation technologies, such as initial installations, upgrades, live upgrades, and zone installations, perform significantly faster.
The following system resources feature has been added to the Solaris 10 10/09 release.
The zones parallel patching enhancement to the standard Solaris 10 patch utilities increases the patching tools performance on systems with multiple zones by allowing parallel patching of the non-global zones. In releases prior to Solaris 10 10/09, the feature is implemented through the patch utilities patch 119254-66 or later revision for SPARC and 119255-66 or later revision for x86. The global zone is still patched before the non-global zones are patched.
For more information, see the following:
When using the Sun xVM hypervisor in a Solaris OS, fully virtualized guest domains are referred to as hardware-assisted virtual machines (HVMs). HVM + PVIO guests provide better performance through the use of PV drivers.
Releases starting with the Solaris 10 10/08 release are shipped with the Solaris PV drivers. A patch is available for Solaris 10 5/08.
For more information, see “Solaris 10 releases” in Guests That Are Known to Work in System Administration Guide: Virtualization Using the Solaris Operating System. This guide also discusses HVM-capable machines.
The following device management feature has been added to the Solaris 10 10/09 release.
A new SMF service, under FMRI svc:/network/iscsi/initiator:default is introduced to control the availability of iSCSI devices. The SMF service also controls the timing to start discovery and enumeration of iSCSI devices during OS start—up.
Other services that rely on the availability of iSCSI devices can customize their dependency on the this new iSCSI Initiator services. For more information see, the iscsi(7D) man page.
Starting with the Solaris 10 10/09 release, Solaris MPxIO supports the LSI 6180 controller-based storage arrays.
The following system performance feature has been added to the Solaris 10 10/09 release.
The callout subsystem is redesigned to include the following features:
Performance and scalability improvements:
Per-CPU data structures to minimize mutex contention
Per-CPU callout processing to improve scalability
Event-based implementation that avoids polling overhead
High-resolution timers for improved functionality. Many API calls use high-resolution timers and do not experience latency because the system rounds off the specified intervals. These timers include commonly used calls such as poll() and nanosleep().
Observability improvements:
Comprehensive set of options for the MDB dcmd callout
New MDB dcmd calloutid
New callout kstats
The following driver features and enhancements have been added to the Solaris 10 10/09 release.
The Solaris 10 10/09 includes many enhancements to the Solaris 10GbE drivers. The nxge 10GbE driver includes the following enhancements:
TCP receive throughput is improved from 40% at 8 connections to over 90% improvements for 32, 100, 400, and 1000 connections
TCP transmit throughput is improved from almost 80% at 8 connections to over 100% for the higher connection tests
UDP transmit throughput is improved from 80% for 64 byte messages to over 160% for 8 Kbyte messages
The ixgbe driver on x86 systems includes the following enhancements:
TCP transmit throughput is improved to almost 100% for 8 or more connections
TCP receive rates are 10Gb line rate for 8, 32, 100, 400, and 1000 connections
UDP transmit maximum throughput doubles to 10Gb line rate
Ping pong data rates are improved from 2x to 3x as the message size increases from 64 bytes to 512 bytes
Solaris 10GbE drivers can now deliver close to line data rates providing optimal performance on 10 Gigabit networks.
The Solaris 10 10/09 release includes the following InfiniBand-related enhancements:
InfiniBand Host Channel Adapter (HCA) – The Solaris 10 10/09 release includes a significantly enhanced InfiniBand driver for the Mellanox ConnectX HCA. The InfiniBand driver enables InfiniBand protocols to operate over both Double Data Rate (DDR) and Quad Data Rate (QDR) InfiniBand fabrics. The driver is also integrated into the Solaris FMA framework for fault management and the driver supports relaxed ordering on SPARC systems.
InfiniBand Transport Framework (IBTF) – The Solaris 10 10/09 release includes a significantly improved IBTF implementation that provides enhanced support for running RDMA-based InfiniBand protocols in Solaris. InfiniBand for SPARC now supports both the PCI Dynamic Reconfiguration (DR).
Internet Protocol over InfiniBand (IPoIB) – The Solaris 10 10/09 release includes a significantly improved IPoIB driver (ibd) supporting Internet RFCs 4391 and 4392. The IPoIB driver in the Solaris 10 10/09 release supports the User Datagram (UD) mode of operation, IPv4 and IPv6 addressing, and takes advantage of hardware offloads in the ConnectX HCA for improved throughput at lower CPU utilization. IPoIB-UD enables the use of any TCP/IP application protocol such as SSH, HTTP, FTP, NFS, and iSCSI over both Double Data Rate (DDR) and Quad Data Rate (QDR) InfiniBand fabrics. The new IPoIB driver for both SPARC and x86 platforms offers a significant performance boost over the previously available driver.
Sockets Direct Protocol (SDP) – The Solaris 10 10/09 release includes a significantly improved SDP driver and sockfs implementation. SDP is a transport protocol layered over the Infiniband Transport Framework (IBTF). SDP is a standard implementation based on Annex 4 of the Infiniband Architecture Specification Vol 1. The SDP protocol provides reliable byte-stream, flow controlled two-way data transmission that is similar to the Transmission Control Protocol (TCP). InfiniBand programmers use SDP through the libsdp C library that supports a sockets-based SOCK_STREAM interface to application programs. The SDP protocol supports graceful close, IPv4 and IPv6 addressing, the connecting/accepting connect model, out-of-band (OOB) data and common socket options. The SDP protocol also supports kernel bypass data transfers and data transfers from send-upper-layer-protocol (ULP) buffers to receive ULP buffers.
Reliable Datagram Sockets (RDS) – The Solaris 10 10/09 release includes an improved RDSv1 driver certified for use with Oracle RAC (Real Application Clusters) 10gR2.
User-Level Direct Access Programming Library (uDAPL) – The Solaris 10 10/09 release includes an updated uDAPL over InfiniBand API that conforms to the latest Direct Access Transport (DAT) Collaborative uDAPL 1.2 specification.
The mpt_sas(7D) driver supports SAS, SATA, SMP physical devices, and virtual devices by using the Integrated RAID feature. The new architecture for SAS drivers supports the following features:
SAS initiator ports (iports)
Dynamic reconfiguration of SAS, SATA, and SMP targets
FWARC 2008/013-compliant device representation
Multipathing
For more information, see the mpt_sas(7D) man page.
The Solaris 10 10/09 release includes new chipsets support such as bcm5716c and bcm5716s.
The Solaris 10 10/09 release provides an interrupt-remapping table that isolates interrupts on at least the Intel Nehalem platform and ensures that devices can only use authorized interrupts and that the interrupts are properly targeted. This feature improves system reliability, availability, and serviceability (RAS).
SATA tape devices are now supported by the AHCI driver. Users can connect or hot-plug the SATA tape drive to the AHCI controller though the SATA or eSATA cable. Error handling mechanism is also enhanced for SATA ATAPI devices including CD, DVD, or tape.
For more information, see the ahci(7D) man page.
The mr_sas MegaRAID SAS2.0 controller host bus adapter driver is a SCSA-compliant nexus driver that supports the LSI MegaRAID SAS 92xx series of controllers and the StorageTek 6Gb/s SAS RAID HBA series of controllers and the LSI MegaRAID SAS 92xx series of controllers.
Some of the supported RAID features include:
RAID levels 0, 1, 5, and 6, and RAID spans 10, 50 and 60
Online capacity expansion (OCE)
Online RAID level migration (RLM)
Auto resume after loss of system power during array rebuild or reconstruction (OCE or RLM)
Configurable stripe size up to 1 Mbyte
Capability to check consistency for background data integrity
Patrol read for media scanning and repairing
64 logical drive support
Up to 64 TB LUN support
Automatic rebuild, and global and dedicated hot—spare support
Starting with the Solaris 10 10/09 release, the ixgbe driver supports the Intel 82599 10Gb PCI Express Ethernet Controller chipset.
Starting with the Solaris 10 10/09 release, the ixgbe driver supports the Intel 82598 10Gb PCI Express Ethernet Controller chipset.
The following freeware features and enhancements have been added to the Solaris 10 10/09 release.
The Solaris 10 10/09 release includes the latest version of the network time protocol that supports enhanced authentication, IPv6, and greater performance. For more information, see the ntpdate(1M) man page.
The Solaris 10 10/09 release supports PostgreSQL versions 8.1.17, 8.2.13, and 8.3.7.
The Solaris 10 10/09 release supports Samba 3.0.35.