Check out my first novel, midnight's simulacra!
ZFS
From dankwiki
zpools
A ZFS storage pool (zpool) is a collection of devices (vdevs) that provides physical storage and data replication for ZFS datasets.
zpool vdevs
Only disks, partitions, and files can be used as "base vdevs" suitable for aggregation into mirrors and raidzs.
- Entire disks
- Partitions (not recommended)
- Files (strongly not recommended -- only as reliable as underlying filesystem)
- Partitions (not recommended)
- Mirrors (n-way replication)
- Raidz{1, 2, 3} (n-way parity)
- "spare" -- a pseudo-vdev which tracks spare disks
- Log -- separate-intent log device(s) supporting round-robining and mirroring, but not parity
- Cache -- a cache device
datasets
A more general concept than filesystems, a dataset is contained within a pool, and bound to a unique path in the ZFS namespace.
- Filesystems (not quite POSIX)
- Volume (exported block device)
- Snapshot (readonly copy of filesystem from some point at time)
- Available in .zfs/snapshot in the root of the associated filesystem
udev
- ZFS generates subsystem "bdi" udev events, pointing to devices/virtual/bdi in sysfs
Basic tuning
- zfs set atime=no
- zfs set xattr=sa
- ashift will generally be handled properly, assuming your disk properly exposes its true sector size (check sysfs)
- Verifying SIMD implementation in 5.x:
$ cat /sys/module/zfs/parameters/zfs_vdev_raidz_impl $ cat /sys/module/zcommon/parameters/zfs_fletcher_4_impl
See also
- The growlight system installation tool supports ZFS