This sections describes new ZFS features in the Developer 1/08 release.
Using Cache Devices in Your ZFS Storage Pool – In this Solaris 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 |
After cache devices are added, they gradually fill with content from main memory. Depending on the size of your cache device, it could take over an hour for them to fill. Capacity and reads can be monitored by using the zpool iostat command as follows:
# zpool iostat -v pool 5 |
Cache devices can be added or removed from the pool after the pool is created.
For more information, see zpool(1M) and Solaris ZFS Administration Guide.
Enhancements to the zfs send Command – This release includes the following enhancements to the zfs send command.
Send all incremental streams from one snapshot to a cumulative snapshot. For example:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo |
Send all incremental snapshots between fs@snapA to fs@snapD to fs@combo.
Send an incremental stream from the origin snapshot to create a clone. The original snapshot must already exist on the receiving side to accept the incremental stream. For example:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I |
Send a replication stream of all descendent file systems, up to the named snapshots. When received, all properties, snapshots, descendent file systems, and clones are preserved. For example:
zfs send -R pool/fs@snap > snaps/fs-R |
For an extended example, see Sending and Receiving Complex ZFS Snapshot Streams in Solaris ZFS Administration Guide.
Send an incremental replication stream.
zfs send -R -[iI] @snapA pool/fs@snapD |
For an extended example, see Sending and Receiving Complex ZFS Snapshot Streams in Solaris ZFS Administration Guide.
For more information, see Saving and Restoring ZFS Data in Solaris ZFS Administration Guide.
ZFS Quotas and Reservations for File System Data Only – In addition to the existing ZFS quota and reservation features, this release includes dataset quotas and reservations that do not include descendents, such as snapshots and clones, in the space consumption accounting.
The refquota property limits the amount of space a dataset can consume. This property enforces a hard limit on the amount of space that can be used. This hard limit does not include space used by descendents, such as snapshots and clones.
The refreservation property sets the minimum amount of space that is guaranteed to a dataset, not including its descendents.
For example, you can set a 10 Gbyte refquota for studentA that sets a 10-Gbyte hard limit of referenced space. For additional flexibility, you can set a 20-Gbyte quota that allows you to manage studentA's snapshots.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA |
For more information, see ZFS Quotas and Reservations in Solaris ZFS Administration Guide.
ZFS File System Properties for the Solaris CIFS Service – This release provides support for the Solaris Common Internet File System (CIFS) service. This product provides the ability to share files between Solaris and Windows or MacOS systems.
To facilitate sharing files between these systems by using the Solaris CIFS service, the following new ZFS properties are provided:
Case sensitivity support (casesensitivity)
Non-blocking mandatory locks (nbmand)
SMB share support (sharesmb)
Unicode normalization support (normalization)
UTF-8 character set support (utf8only)
In addition to the ZFS properties added for supporting the Solaris CIFS software product, the vscan property is available for scanning ZFS files if you have a 3rd party virus scanning engine.
For more information about using these properties, see Managing ZFS Properties in Solaris ZFS Administration Guide.
For more information about the Solaris CIFS service, see the Solaris CIFS Administration Guide.
ZFS Storage Pool Properties – This release provides ZFS pool property information. For example:
# zpool get all users NAME PROPERTY VALUE SOURCE users size 16.8G - users used 217M - users available 16.5G - users capacity 1% - users altroot - default users health ONLINE - users guid 11063207170669925585 - users version 8 default users bootfs - default users delegation on default users autoreplace off default users temporary on local |
The cachefile property – This release provides the cachefile property, which controls where pool configuration information is cached. All pools in the cache are automatically imported when the system boots. However, installation and clustering environments might need to cache this information in a different location so that pools are not automatically imported.
You can set this property to cache pool configuration in a different location that can be imported later by using the zpool import c command. For most ZFS configurations, this property would not be used.
The cachefile property is not persistent and is not stored on disk. This property replaces the temporary property that was used to indicate that pool information should not be cached in previous Solaris releases.
The failmode property – This release provides the failmode property for determining the behavior of a catastrophic pool failure due to a loss of device connectivity or the failure of all devices in the pool. The failmode property can be set to these values: wait, continue, or panic. The default value is wait, which means you must reconnect the device or replace a failed device and clear the error with the zpool clear command.
The failmode property is set like other settable ZFS properties, which can be set either before or after the pool is created. For example:
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local |
# zpool create -o failmode=continue |
For a description of all ZFS pool properties, see Managing ZFS Storage Pool Properties in Solaris ZFS Administration Guide.
ZFS and File System Mirror Mounts – In this Solaris release, NFSv4 mount enhancements are provided to make ZFS file systems more accessible to NFS clients.
When file systems are created on the NFS server, the NFS client can automatically discover these newly created file systems within their existing mount of a parent file system.
For example, if the server neo already shares the tank file system and client zee has it mounted, /tank/baz is automatically visible on the client after it is created on the server.
zee# mount neo:/tank /mnt zee# ls /mnt baa bar neo# zfs create tank/baz zee% ls /mnt baa bar baz zee% ls /mnt/baz file1 file2 |
See the following What's New sections for related ZFS feature information: