3 ms·
* ZFS is a volume manager. * ZFS is a RAID manager. * ZFS is also a filesystem. * Writes are handled in transaction groups (TXGs). * Every transaction group
by atoponce 13y ago
* ZFS is a volume manager.
* ZFS is a RAID manager.
* ZFS is also a filesystem.
* Writes are handled in transaction groups (TXGs).
* Every transaction group is written atomically.
* ZFS keeps a revision history of the past 128 transactions written to disk.
* ZFS is a Copy on Write filesystem.
* As such, due to the previous 2 features, snapshots are free.
* Snapshots are first class, read-only filesystems.
* Snapshots can be upgraded to read-write clones.
* Snapshots can be sent and received to other locations.
* ZFS uses block-level deduplication.
* ZFS supports transparent compression.
* Every metadata and block data is checksummed with SHA256 by default.
* Other checksum algorithms are supported.
* ZFS uses a "slab allocator" to minimize fragmentation.
* ZFS implements an "intent log" for synchronous writes.
* The intent log can be migrated to a fast SSD or NVRAM drive.
* ZFS uses advanced caching implementing for MRU/LRU and MFU/LFU caches.
* A secondary cache (outside of RAM) can be installed on fast SSDs.
* ZFS uses dynamic striping with its RAID arrays.
* ZFS supports triple parity RAID.
* ZFS autoheals bit rot when a block does not match its checksum, if the pool is redundant.
* ZFS fully supports advanced format disks (4k blocks and beyond).
* In fact, block sizes are dynamic from 512 bytes to 128K (or 1M in the proprietary ZFS).
* In the proprietary release of ZFS, native encryption is supported.
* In the Free Software release of ZFS, "feature flags" have been introduced to add on "plugins" without changing the core of the filesystem.
* ZFS supports native NFS, allowing the mount to be available before the export.
* ZFS supports native SMB for the same reason.
* ZFS supports native iSCSI, also for the same reason.
* ZFS can create static sized block devices called "ZVOLS".
* ZFS pools can be exported and imported.
* ZFS "scrubs" data to find blocks that do not match their checksum.
* The Free Software release of ZFS is supported on GNU/Linux, OpenIndiana, SmartOS, FreeBSD, and many other operating systems.
* Administration of ZFS is done via 3 commands: zpool(8), zfs(8) and zdb(8).
- midas007 13y agoGreat list. L2ARC, zil can each have their own volume configuration (mirror, etc.) For example, using different types of SSDs for each. http://forums.freenas.org/index.php?threads/zfs-and-ssd-cache-size-log-zil-and-l2arc.6345/ http://forums.freenas.org/index.php?threads/zfs-and-ssd-cach... zfs send & receive ... Send snapshots around like a fancy SAN. raidz (N+1 - like raid5) raidz2 (N+2 - like raid6) raidz3 (N+3) It's also way faster and cheaper to put together boxes from commodity enterprise server hardware, making hardware raid cards basically expensive shelf dust catchers along with overpriced SANs and NASes. (Extra shout out for iXsystems, not because they use lots of Python, but because of massive awesomeness supporting FreeBSD and FreeNAS. Also their parties put Defcon afterparties to shame.) Conclusion: Full ZFS is often better than a SAN, NAS and/or hardware solutions. Also protip: Direct attached is way, way faster than 10 GbE, FC or IB, especially if images are directly available to compute nodes.