Skip to content

ZFS Pools & Datasets

ZFS pools (zpools) are the foundation of storage in both MayaNAS and MayaScale. Marketplace deployments create pools automatically, but you can create additional pools, filesystems, and volumes as needed.

Navigate to Volumes & Pools in the Web UI sidebar, then select the Zpools tab.

The Zpools tab shows each pool with:

  • RAID level (mirror, raidz, raidz2)
  • Pool size and device count
  • Scan status (scrub progress)
  • Trim status
  • Per-disk read/write/checksum error counts

Use the Create ZFS Pool quick action from the sidebar:

  1. Enter pool name
  2. Select RAID level:
    • mirror — 2-way mirror (recommended for HA)
    • raidz / raidz1 — Single parity
    • raidz2 — Double parity
  3. Select disks (NVMe or cloud disks)
  4. Optionally add:
    • Log device — ZIL for write-heavy workloads
    • Cache device — L2ARC for read-heavy workloads
    • Spare device — Hot spare for automatic replacement
  5. Click Create

Use the Import ZFS Pool quick action to import a previously exported or migrated pool.

To expand an existing pool:

  1. Select the pool
  2. Click Add VDEV
  3. Select additional disks
  4. Click Add

Scrub verifies data integrity by reading all blocks and checking checksums:

  1. Select the pool
  2. Click Scrub to start
  3. Click Scrub again to cancel a running scrub

TRIM reclaims unused blocks on SSDs:

  1. Select the pool
  2. Click Trim to start
  3. Click Trim again to cancel
  • Run — Import a pool (make it available)
  • Stop — Export a pool (safe detach)

To replace a faulted or degraded disk:

  1. Select the pool
  2. Select the disk to replace
  3. Click Fault to mark it faulted
  4. Click Add to add the replacement disk
  5. Resilver will start automatically

Filesystems are datasets within a pool used for NFS/SMB file sharing.

  1. Select a pool
  2. Click New ZFS
  3. Configure:
FieldDescriptionDefault
NameDataset name
Record SizeBlock size for the dataset128K
CompressionLZ4, GZIP, ZSTD, or offLZ4
QuotaMaximum size (optional)
ReservationGuaranteed minimum space (optional)
  1. Click Create

ZVOLs are block devices within a pool used for iSCSI or NVMe-oF exports.

  1. Select a pool
  2. Click New ZVOL
  3. Configure:
FieldDescriptionDefault
NameVolume name
SizeVolume capacity
Block SizeZVOL block size64K
CompressionLZ4, GZIP, ZSTD, or offLZ4
SparseThin provisioningYes
SyncWrite barrier: standard, always, or disabledstandard
  1. Click Create

Navigate to Disks in the sidebar to see all physical and virtual disks — NVMe SSDs (local), cloud disks (object-backed), device names, sizes, and allocation status.

Terminal window
# Show all zpools
mayacli show zpool
# Show a specific pool
mayacli show zpool tank
# Create a mirror pool
mayacli create zpool tank raidlevel=mirror \
disk=/dev/nvme1n1 disk=/dev/nvme2n1
# Create a raidz2 pool
mayacli create zpool tank raidlevel=raidz2 \
disk=/dev/sda disk=/dev/sdb disk=/dev/sdc
# Import an existing pool
mayacli zpool import tank
# Add a vdev (disk) to existing pool
mayacli bind zpool tank disk=/dev/nvme3n1
# Remove a disk from pool
mayacli unbind zpool tank disk=/dev/nvme2n1
# Start scrub
mayacli set zpool tank scrub=yes
# Stop scrub
mayacli set zpool tank scrub=no
# Enable TRIM
mayacli set zpool tank discard=1
# Export a pool
mayacli set zpool tank online=no
# Create a ZFS filesystem
mayacli create volume export1 filesys=zfs \
pathname=/tank/data zp=tank
# Create a ZVOL
mayacli create volume vol1 zvol=1 zp=tank size=100G
# Extend a volume
mayacli set volume vol1 size=200G
# Show all volumes
mayacli show volume
# Show disks
mayacli show disk

See CLI Guide for the full command reference.