ZFS File system

Abstract

ZFS (Zettabyte FileSystem) is a file system designed by Sun Microsystems for the Solaris Operating System. ZFS is a 128-bit file system, so it can address 18 billion billion times more data than the 64-bit systems ZFS is implemented as open-source filesystem, licensed under the Common Development and Distribution License (CDDL).

The features of ZFS include support for high storage capacities, integration of the concepts of file system and volume management, snapshots and copy-on-write clones, continuous integrity checking and automatic repair, RAID-Z etc. Additionally, Solaris ZFS implements intelligent prefetch, performing read ahead for sequential data streaming, and can adapt its read behavior on the fly for more complex access patterns.

To eliminate bottlenecks and increase the speed of both reads and writes, ZFS stripes data across all available storage devices, balancing I/O and maximizing throughput. And, as disks are added to the storage pool, Solaris ZFS immediately begins to allocate blocks from those devices, increasing effective bandwidth as each device is added. This means system administrators no longer need to monitor storage devices to see if they are causing I/O bottlenecks.

Requirement
The minimum amount of disk space required for a storage pool is 64 MB. The minimum disk size is 128 MB.
The minimum amount of memory needed to install a Solaris system is 768 MB.
scrubbing – examines all data to discover hardware faults or disk failures

resilvering :The process of copying data from one device to another device is known as resilvering.

For example, if a mirror device is replaced or taken offline, the data from an up-to-date mirror device is copied to the newly restored mirror device. This process is referred to as mirror resynchronization in traditional volume management products.

Quota
===============
Limits the amount of space a dataset and its descendents can consume. This property enforces a hard limit on the amount of
space used, including all space consumed by descendents,including file systems and snapshots

refquota
===========
The refquota property limits the amount of space a dataset can consume.
This hard limit does not include space used by descendents, such as snapshots and clones.

The minimum amount of space guaranteed to a dataset and its descendents.

reservation : minmum guranted on dataset, it includes its descendents

refreservation
================
The refreservation property sets the minimum amount of space that is guaranteed to a dataset, not including its descendents.

# zfs set refquota=10g tank/studentA
# zfs set quota=20g tank/studentA

checksum
When a block is accessed, regardless of whether it is data or meta-data, its checksum is calculated and compared with the stored checksum value
If the checksums match, the data are passed up the programming stack to the process that asked for it; if the values do not match, then ZFS can heal the data if the storage pool provides data redundancy (such as with internal mirroring),

# zfs mount -c home/bob /export/home/bob

ZFS Pool Statuses:
1. ONLINE
2. DEGRADED
3. FAULTED
4. OFFLINE
5. UNAVAILABLE

Repairing an Unbootable System

# If the system is in a panic-reboot loop:
boot -m milestone=none
mount -o remount /
rm /etc/zfs/zpool.cache
svcadm milestone all
# …perform ZFS repairs.