Improved ZFS Pool Device Messages

Oracle Solaris 11.1: The zpool status command has been enhanced to provide more detailed information about
device failures. The zpool status output in this example identifies a pool device (c0t5000C500335F907Fd0) that
is UNAVAIL due to persistent errors and it should be replaced.

Shared var File System

Oracle Solaris 11.1: Installing Oracle Solaris 11.1 automatically creates a rpool/VARSHARE file system that is mounted
at /var/share. The purpose of this file system is to share file systems
across boot environments so that the amount of space that is needed in
the /var directory for all BEs is reduced. For example:

# ls /var/share
audit cores crash mail

Symbolic links are automatically created from /var to the /var/share components listed above
for compatibility purposes. This file system generally requires no administration except to ensure that
/var components do not fill the root file system.

If an Oracle Solaris 11 system is updated to the Oracle Solaris
11.1 release, it might take some time to migrate data from the original
/var directory to the /var/share directory.

Boot Support for EFI (GPT) Labeled Disks

Oracle Solaris 11.1: This release installs an EFI (GPT) disk label on a ZFS root
pool disk for an x86 based system, in most cases. For example:

Installing Oracle Solaris 11.1 on a SPARC based system with GPT aware firmware or an x86 based system applies a GPT disk label on the root pool disk that uses the entire disk. For SPARC based systems that support a GPT labeled boot disk, see the Oracle Solaris 11.1 release notes for information about applying GPT aware firmware. Otherwise, installing Oracle Solaris 11.1 on a SPARC system applies an an SMI (VTOC) label to the root pool disk with a single slice 0.

In most cases, an x86 based system is installed with an EFI (GPT) labeled disk

The zpool command has been enhanced to support an EFI (GPT) disk label so that if you need to recreate a root pool after the system is installed, you can do so with the zpool create-B command. This new command option creates the required partitions and boot information that is needed for booting. For more information about creating a root pool after installation, see How to Create a BE in Another Root Pool (SPARC or x86/VTOC).

If you need to replace a disk in a root pool with an EFI (GPT) label, you will need to run this command after the zpool replace operation.

# bootadm install-bootloader

Oracle Solaris installations are no longer limited to the first 2 TiB of the disk on an x86 based system.

ZFS Command Usage Enhancements

Oracle Solaris 11: The zfs and zpool command have a help subcommand that you can
use to provide more information about the zfs and zpool subcommands and
their supported options. For example:

ZFS Snapshot Enhancements

Oracle Solaris 11: This release includes the following ZFS snapshot enhancements:

The zfs snapshot command has a snap alias that provides abbreviated syntax for this command. For example:

# zfs snap -r users/home@snap1

The zfs diff command provides an enumeration option, -e, to identify all the files that were added or modified between the two snapshots. The generated output identifies all files added, but does not provide possible deletions. For example:

ZFS Manual Page Change (zfs.1m)

Oracle Solaris 11: The zfs.1m manual page has been revised so that core ZFS
file system features remain in the zfs.1m page, but delegated administration, encryption, and share
syntax and examples are covered in the following pages:

Improved aclmode Property

Oracle Solaris 11: The aclmode property modifies Access Control List (ACL) behavior whenever ACL
permissions on a file are modified during a chmod operation. The aclmode
property has been reintroduced with the following property values:

discard – A file system with an aclmode property of discard deletes all ACL entries that do not represent the mode of the file. This is the default value.

mask – A file system with an aclmode property of mask reduces user or group permissions. The permissions are reduced, such that they are no greater than the group permission bits, unless it is a user entry that has the same UID as the owner of the file or directory. In this case, the ACL permissions are reduced so that they are no greater than owner permission bits. The mask value also preserves the ACL across mode changes, provided an explicit ACL set operation has not been performed.

passthrough – A file system with an aclmode property of passthrough indicates that no changes are made to the ACL other than generating the necessary ACL entries to represent the new mode of the file or directory.

Identifying Pool Devices By Physical Location

Oracle Solaris 11: In this Solaris release, use the zpool status-l command to display physical
disk location information for pool devices that is available from the /dev/chassis directory.
This directory contains chassis, receptacle, and occupant values for the devices on your
system.

In addition, you can use the fmadm add-alias command to include a disk alias
name that helps you identify the physical location of disks in your environment.
For example:

The zpool iostat command has also been updated to provide physical location information for
a pool's devices.

In addition, the diskinfo, format, and prtconf commands also provide physical disk location information.
For more information, see diskinfo(1M).

ZFS Shadow Migration

Oracle Solaris 11: In this release, you can migrate data from an old file system
to a new file system while simultaneously allowing access and modification of the
new file system during the migration process.

Setting the shadow property on a new ZFS file system triggers the
migration of the older data. The shadow property can be set to migrate
data from the local system or a remote system with either of the
following values:

ZFS Send Stream Enhancements

Oracle Solaris 11: In this release, you can set file system properties that are sent
and received in a snapshot stream. These enhancements provide flexibility in applying file
system properties in a send stream to the receiving file system or in
determining whether the local file system properties, such as the mountpoint property value,
should be ignored when received.

You can import a pool in read-only mode. This feature is primarily for pool recovery. If a damaged pool cannot be accessed because the underlying devices are damaged, you can import the pool read-only to recover the data. For more information, see Importing a Pool in Read-Only Mode.

A RAID-Z (raidz1, raidz2, or raidz3) storage pool that is created in this release will have some latency-sensitive metadata automatically mirrored to improve read I/O throughput performance. For existing RAID-Z pools that are upgraded to at least pool version 29, some metadata will be mirrored for all newly written data.

Mirrored metadata in a RAID-Z pool does not provide additional protection against hardware failures, similar to what a mirrored storage pool provides. Additional space is consumed by mirrored metadata, but the RAID-Z protection remains the same as in previous releases. This enhancement is for performance purposes only.

Tuning ZFS Synchronous Behavior

Oracle Solaris 11: In this release, you can determine a ZFS file system's synchronous behavior
by using the sync property.

The default synchronous behavior is to write all synchronous file system transactions to
the intent log and to flush all devices to ensure that the data
is stable. Disabling the default synchronous behavior is not recommended. Applications that depend
on synchronous support might be affected, and data loss could occur.

The sync property can be set before or after the file system is
created. In either case, the property value takes effect immediately. For example:

# zfs set sync=always tank/neil

The zil_disable parameter is no longer available in Oracle Solaris releases that include
the sync property.

The following syntax uses the interval and count option to display ongoing pool
resilvering information. You can use the -T d value to display the information in
standard date format or -T u to display the information in an internal format.

ZFS ACL Interoperability Enhancements

Oracle Solaris 11: In this release, the following ACL enhancements are provided:

Trivial ACLs do not require deny Access control entries (ACEs) except for unusual permissions. For example, a mode of 0644, 0755, or 0664 does not require deny ACEs, but a mode, such as 0705, 0060, and so on, does require deny ACEs.

The old behavior includes deny ACEs in a trivial ACL like 644. For example:

ACLs are no longer split into multiple ACEs during inheritance to try to preserve the original unmodified permission. Instead, the permissions are modified as necessary to enforce the file creation mode.

The aclinherit property behavior includes a reduction in permissions when the property is set to restricted, which means that ACLs are no longer split into multiple ACEs during inheritance.

A new permission mode calculation rule specifies that if an ACL has a user ACE that is also the file owner, then those permissions are included in the permission mode computation. The same rule applies if a group ACE is the group owner of the file.

ZFS iSCSI Changes

Oracle Solaris 11: In this release, the iSCSI target daemon is replaced by using the
Common Multiprotocol SCSI Target (COMSTAR) target daemon. This change also means that the
shareiscsi property that was used to share a ZFS volume as an
iSCSI LUN is no longer available. Use the stmfadm command to configure and share
a ZFS volume as an iSCSI LUN.

New ZFS System Process

Oracle Solaris 11: In this release, each ZFS storage pool has an associated process,
zpool-poolname. The threads in this process are the pool's I/O processing threads to
handle I/O tasks, such as compression and checksum validation, that are associated with the
pool. The purpose of this process is to provide visibility into each storage
pool's CPU utilization.

Information about these running processes can be reviewed by using the ps
and prstat commands. These processes are only available in the global zone. For
more information, see SDC(7).

ZFS Deduplication Property

Oracle Solaris 11: In this release, you can use the deduplication (dedup) property to remove
redundant data from your ZFS file systems. If a file system has the
dedup property enabled, duplicate data blocks are removed synchronously. The result is that
only unique data is stored, and common components are shared between files.

You can enable this property as follows:

# zfs set dedup=on tank/home

Although deduplication is set as a file system property, the scope is pool-wide.
For example, you can identify the deduplication ratio as follows: