Check out my first novel, midnight's simulacra!

ZFS: Difference between revisions

From dankwiki
No edit summary
No edit summary
Line 30: Line 30:
     $ cat /sys/module/zcommon/parameters/zfs_fletcher_4_impl
     $ cat /sys/module/zcommon/parameters/zfs_fletcher_4_impl
</pre>
</pre>
==Caching==
* L2ARC: general read cache between RAM (ARC) and zpool
* ZIL: zfs intent log for accelerating synchronous writes
** there is no general-purpose write cache (i.e. mirrored pair of SSDs between RAM and spinning zpool)
* [https://forum.level1techs.com/t/zfs-metadata-special-device-z/159954 metadata special device], pretty cool


==See also==
==See also==
* The [[growlight]] system installation tool supports ZFS
* The [[growlight]] system installation tool supports ZFS

Revision as of 04:42, 1 April 2024

i like Jim Salter's zfs tuning cheat sheet. lots of good info there, presented in an easily-digestible format.

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)
  • 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

Caching

  • L2ARC: general read cache between RAM (ARC) and zpool
  • ZIL: zfs intent log for accelerating synchronous writes
    • there is no general-purpose write cache (i.e. mirrored pair of SSDs between RAM and spinning zpool)
  • metadata special device, pretty cool

See also

  • The growlight system installation tool supports ZFS