User Tools

Site Tools


computing:storage:zfs

ZFS

Down-Side of ZFS

ZFS Server Software

Choosing Array Configurations

Optimal Configurations

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide

:!: Always use mirrored VDEVs for best performance, reasonable protection, best degraded performance and fastest recovery from a failed disk.

:!: Performance really depends on the number of spindles.

:!: Only for VM storage and databases do you need or want to enable sync. If you simply use ZFS without foreign filesystems on it (VMs), ZFS will never corrupt on a crash due Copy On Write. So for regular filer use, disable sync unless you want a maximal security for small files like on a mailserver.

:!: Always utilize an SLOG for your ZIL to improve synchronous write performance. Database applications, NFS environments, particularly for virtualization, as well as backups are known use cases with heavy synchronous writes.

RAIDZ1

You should have 3, 5, or 9 devices in each vdev

RAIDZ2

You should have 4, 6, or 10 devices in each vdev

RAIDZ3

You should have 5, 7, or 11 devices in each vdev

Choosing RAID Strategies

Compression

:!: Always enable compression.

  • LZJB is the default compression algorithm
  • Choose “compression=lzjb” due to its lower overhead
  • gzip level 6 (default) saves more space and is still pretty fast
  • gzip level 9 saves even more space but uses more CPU
  • If you enable compression on a pool, it will also be enabled for datasets in that pool
  • You can specify compression settings per dataset (share)
zfs set compression=on rpool
zfs set compression=on rpool/ROOT

Networking

High Availability

Deduplication

Advance Format Disks (4k Sector)

Managing ZFS Swap and Dump Devices

:!: For large-memory systems, choose a larger boot drive because the swap and dump devices take up a lot of space by default.

http://docs.oracle.com/cd/E19963-01/html/821-1448/ggrln.html

http://docs.oracle.com/cd/E19963-01/html/821-1448/zfsboot-2.html

Scrub Your Zpools

https://github.com/justintime/zpool-scrub-cron/blob/master/zpool_scrub.sh

:!: Scrubs are I/O intensive and can negatively impact performance. They should be scheduled for evenings or weekends to minimize the impact to users.

  • Napp-IT has an auto-service to facilitate scrub job scheduling and creation

Snapshots and Clones

https://www.howtoforge.com/tutorial/how-to-use-snapshots-clones-and-replication-in-zfs-on-linux/

A snapshot provides a read-only, point-in-time copy of a file system or volume that does not consume extra space in the ZFS pool. The snapshot only uses space when the block references are changed. Snapshots preserve disk space by recording only the differences between the current dataset and a previous version.

:!: A typical example use for a snapshot is to have a quick way of backing up the current state of the file system when a risky action like a software installation or a system upgrade is performed.

A clone is a writable volume or file system whose initial contents are the same as the dataset from which it was created.

computing/storage/zfs.txt · Last modified: 2022/08/01 12:26 by gcooper