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.
Access
Section titled “Access”Navigate to Volumes & Pools in the Web UI sidebar, then select the Zpools tab.
Zpool Operations
Section titled “Zpool Operations”View Pool Status
Section titled “View Pool Status”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
Create a ZFS Pool
Section titled “Create a ZFS Pool”Use the Create ZFS Pool quick action from the sidebar:
- Enter pool name
- Select RAID level:
- mirror — 2-way mirror (recommended for HA)
- raidz / raidz1 — Single parity
- raidz2 — Double parity
- Select disks (NVMe or cloud disks)
- Optionally add:
- Log device — ZIL for write-heavy workloads
- Cache device — L2ARC for read-heavy workloads
- Spare device — Hot spare for automatic replacement
- Click Create
Import an Existing Pool
Section titled “Import an Existing Pool”Use the Import ZFS Pool quick action to import a previously exported or migrated pool.
Add a VDEV
Section titled “Add a VDEV”To expand an existing pool:
- Select the pool
- Click Add VDEV
- Select additional disks
- Click Add
Scrub verifies data integrity by reading all blocks and checking checksums:
- Select the pool
- Click Scrub to start
- Click Scrub again to cancel a running scrub
TRIM reclaims unused blocks on SSDs:
- Select the pool
- Click Trim to start
- Click Trim again to cancel
Run / Stop (Import / Export)
Section titled “Run / Stop (Import / Export)”- Run — Import a pool (make it available)
- Stop — Export a pool (safe detach)
Replace a Disk
Section titled “Replace a Disk”To replace a faulted or degraded disk:
- Select the pool
- Select the disk to replace
- Click Fault to mark it faulted
- Click Add to add the replacement disk
- Resilver will start automatically
ZFS Filesystems
Section titled “ZFS Filesystems”Filesystems are datasets within a pool used for NFS/SMB file sharing.
Create a Filesystem
Section titled “Create a Filesystem”- Select a pool
- Click New ZFS
- Configure:
| Field | Description | Default |
|---|---|---|
| Name | Dataset name | — |
| Record Size | Block size for the dataset | 128K |
| Compression | LZ4, GZIP, ZSTD, or off | LZ4 |
| Quota | Maximum size (optional) | — |
| Reservation | Guaranteed minimum space (optional) | — |
- Click Create
ZFS Volumes (ZVOLs)
Section titled “ZFS Volumes (ZVOLs)”ZVOLs are block devices within a pool used for iSCSI or NVMe-oF exports.
Create a ZVOL
Section titled “Create a ZVOL”- Select a pool
- Click New ZVOL
- Configure:
| Field | Description | Default |
|---|---|---|
| Name | Volume name | — |
| Size | Volume capacity | — |
| Block Size | ZVOL block size | 64K |
| Compression | LZ4, GZIP, ZSTD, or off | LZ4 |
| Sparse | Thin provisioning | Yes |
| Sync | Write barrier: standard, always, or disabled | standard |
- Click Create
Disk Management
Section titled “Disk Management”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.
# Show all zpoolsmayacli show zpool
# Show a specific poolmayacli show zpool tank
# Create a mirror poolmayacli create zpool tank raidlevel=mirror \ disk=/dev/nvme1n1 disk=/dev/nvme2n1
# Create a raidz2 poolmayacli create zpool tank raidlevel=raidz2 \ disk=/dev/sda disk=/dev/sdb disk=/dev/sdc
# Import an existing poolmayacli zpool import tank
# Add a vdev (disk) to existing poolmayacli bind zpool tank disk=/dev/nvme3n1
# Remove a disk from poolmayacli unbind zpool tank disk=/dev/nvme2n1
# Start scrubmayacli set zpool tank scrub=yes
# Stop scrubmayacli set zpool tank scrub=no
# Enable TRIMmayacli set zpool tank discard=1
# Export a poolmayacli set zpool tank online=no
# Create a ZFS filesystemmayacli create volume export1 filesys=zfs \ pathname=/tank/data zp=tank
# Create a ZVOLmayacli create volume vol1 zvol=1 zp=tank size=100G
# Extend a volumemayacli set volume vol1 size=200G
# Show all volumesmayacli show volume
# Show disksmayacli show diskSee CLI Guide for the full command reference.