pool.update

Update pool of id, adding the new topology.

Add a new set of raidz1 to pool of id 1:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "pool.update",
    "params": [1, {
        "topology": {
            "data": [
                {"type": "RAIDZ1", "disks": ["da7", "da8", "da9"]}
            ]
        }
    }]
}

This method is a job.

Type: object

Type: array
No Additional Items

Tuple Validation

Parameter 1: id

id

Type: integer

ID of the pool to update.

Parameter 2: data

data

Type: object

Updated configuration for the pool.

No Additional Properties

Dedup Table Quota

Type: enum (of null or string)

How to manage the deduplication table quota allocation.

Must be one of:
  • "AUTO"
  • "CUSTOM"
  • null

Dedup Table Quota Value


Custom quota value in bytes when dedup_table_quota is set to CUSTOM.

Type: integer

Value must be strictly greater than 0

Type: null

PoolUpdateTopology

Type: object

Updated topology configuration for adding new vdevs to the pool.

No Additional Properties

Data

Type: array

All vdevs must be of the same type.

No Additional Items
Each item of this array must be:

PoolCreateTopologyVdevDRAID

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of distributed RAID configuration.

Must be one of:
  • "DRAID1"
  • "DRAID2"
  • "DRAID3"

Disks

Type: array of string

Array of disk names to use in this DRAID vdev.

No Additional Items
Each item of this array must be:
Type: string

Draid Data Disks

Default: null

Defaults to zfs.VDEV_DRAID_MAX_CHILDREN.

Type: integer
Type: null

Draid Spare Disks

Type: integer Default: 0

Number of distributed spare disks in the DRAID configuration.

PoolCreateTopologyVdevNonDRAID

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of vdev configuration.

Must be one of:
  • "RAIDZ1"
  • "RAIDZ2"
  • "RAIDZ3"
  • "MIRROR"
  • "STRIPE"

Disks

Type: array of string

Array of disk names to use in this vdev.

No Additional Items
Each item of this array must be:
Type: string

Special

Type: array

Array of special vdev configurations for metadata storage.

No Additional Items
Each item of this array must be:

PoolCreateTopologyVdevDRAID

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of distributed RAID configuration.

Must be one of:
  • "DRAID1"
  • "DRAID2"
  • "DRAID3"

Disks

Type: array of string

Array of disk names to use in this DRAID vdev.

No Additional Items
Each item of this array must be:
Type: string

Draid Data Disks

Default: null

Defaults to zfs.VDEV_DRAID_MAX_CHILDREN.

Type: integer
Type: null

Draid Spare Disks

Type: integer Default: 0

Number of distributed spare disks in the DRAID configuration.

PoolCreateTopologyVdevNonDRAID

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of vdev configuration.

Must be one of:
  • "RAIDZ1"
  • "RAIDZ2"
  • "RAIDZ3"
  • "MIRROR"
  • "STRIPE"

Disks

Type: array of string

Array of disk names to use in this vdev.

No Additional Items
Each item of this array must be:
Type: string

Dedup

Type: array of object

Array of deduplication table vdev configurations.

No Additional Items
Each item of this array must be:

PoolCreateTopologyDedupVdev

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of deduplication table vdev configuration.

Must be one of:
  • "MIRROR"
  • "STRIPE"

Disks

Type: array of string

Array of disk names to use in this dedup vdev.

No Additional Items
Each item of this array must be:
Type: string

Cache

Type: array of object

Array of L2ARC cache vdev configurations.

No Additional Items
Each item of this array must be:

PoolCreateTopologyCacheVdev

Type: object
No Additional Properties

Type

Type: const

Type of L2ARC cache vdev configuration (always stripe).

Specific value: "STRIPE"

Disks

Type: array of string

Array of disk names to use in this cache vdev.

No Additional Items
Each item of this array must be:
Type: string

Log

Type: array of object

Array of ZFS Intent Log (ZIL) vdev configurations.

No Additional Items
Each item of this array must be:

PoolCreateTopologyLogVdev

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of ZFS Intent Log (ZIL) vdev configuration.

Must be one of:
  • "MIRROR"
  • "STRIPE"

Disks

Type: array of string

Array of disk names to use in this log vdev.

No Additional Items
Each item of this array must be:
Type: string

Spares

Type: array of string

Array of spare disk names for the pool.

No Additional Items
Each item of this array must be:
Type: string

Allow Duplicate Serials

Type: boolean

Whether to allow disks with duplicate serial numbers in the pool.

All Sed

Type: boolean

When set, all disks in the pool must be SED based.

Force Topology

Type: boolean

Bypass topology policy validation. Allows data vdevs that differ in type or width from the rest of the pool, RAIDZ/mirror vdevs wider than the recommended maximum, and special or dedup vdevs whose redundancy does not match the data vdevs. Structural requirements (minimum disks per vdev type, dRAID configuration) still apply. This option is not permitted on Enterprise-licensed systems.

Autotrim

Type: enum (of string)

Whether to enable automatic TRIM operations on the pool.

Must be one of:
  • "ON"
  • "OFF"

PoolEntry

Type: object

The updated pool configuration.

No Additional Properties

Id

Type: integer

Unique identifier for this storage pool.

Name

Type: string

Name of the storage pool.

Guid

Type: string

Globally unique identifier (GUID) for this pool.

All Sed


Set when pool is made up of SED disks.

Type: boolean
Type: null

Status

Type: string

Current status of the pool.


Examples:

"ONLINE"
"DEGRADED"
"FAULTED"

Path

Type: string

Filesystem path where the pool is mounted.


Information about the most recent scrub or resilver operation. null if no scan data is available.

PoolScan

Type: object
No Additional Properties

Function

Type: enum (of string)

Type of ZFS pool scan.

Must be one of:
  • "RESILVER"
  • "SCRUB"

State

Type: enum (of string)

Current lifecycle state of the scan.

Must be one of:
  • "SCANNING"
  • "FINISHED"
  • "CANCELED"

Start Time

Type: stringFormat: date-time

Scan start time.

End Time


Scan end time (null while the scan is still running).

Type: stringFormat: date-time
Type: null

Percentage

Type: number

Scan progress (between 0 and 100%).

Bytes To Process

Type: integer

Total bytes located by scanner.

Bytes Processed

Type: integer

Total bytes to scan.

Bytes Issued

Type: integer

Issued bytes per scan pass.

Pause


Pause time of a scrub pass (null if the scan is not paused).

Type: stringFormat: date-time
Type: null

Errors

Type: integer

Number of scan errors.

Total Secs Left


Number of seconds left (null if the scan is not running).

Type: integer
Type: null
Type: null

Expand


Information about any active pool expansion operation. null if no expansion is running.

Type: object

Example:

{
    "bytes_reflowed": 978944,
    "bytes_to_reflow": 835584,
    "end_time": null,
    "expanding_vdev": 0,
    "percentage": 85.35564853556485,
    "start_time": null,
    "state": "FINISHED",
    "total_secs_left": null,
    "waiting_for_resilver": 0
}
Type: null

Is Upgraded

Type: boolean Default: false

Whether this pool has been upgraded to the latest feature flags.

Healthy

Type: boolean

Whether the pool is in a healthy state with no errors or warnings.

Warning

Type: boolean

Whether the pool has warning conditions that require attention.

Status Code


Detailed status code for the pool condition. null if not applicable.

Type: string
Type: null

Status Detail


Human-readable description of the pool status. null if not available.

Type: string
Type: null

Size


Total size of the pool in bytes. null if not available.

Type: integer
Type: null

Allocated


Amount of space currently allocated in the pool in bytes. null if not available.

Type: integer
Type: null

Free


Amount of free space available in the pool in bytes. null if not available.

Type: integer
Type: null

Freeing


Amount of space being freed (in bytes) by ongoing operations. null if not available.

Type: integer
Type: null

Dedup Table Size


Size of the deduplication table in bytes. null if deduplication is not enabled.

Type: integer
Type: null

Dedup Table Quota


Quota limit for the deduplication table. null if no quota is set.

Type: string
Type: null

Fragmentation


Percentage of pool fragmentation as a string. null if not available.

Type: string
Type: null

Size Str


Human-readable string representation of the pool size. null if not available.

Type: string
Type: null

Allocated Str


Human-readable string representation of allocated space. null if not available.

Type: string
Type: null

Free Str


Human-readable string representation of free space. null if not available.

Type: string
Type: null

Freeing Str


Human-readable string representation of space being freed. null if not available.

Type: string
Type: null

Autotrim

Type: object

Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.


Example:

{
    "parsed": "off",
    "rawvalue": "off",
    "source": "DEFAULT",
    "value": "off"
}


Physical topology and structure of the pool including vdevs. null if not available.

PoolTopology

Type: object
No Additional Properties

Data

Type: array

Array of data vdev configurations in the pool.

No Additional Items
Each item of this array must be:
Type: object

Log

Type: array

Array of ZFS Intent Log (ZIL) vdev configurations.

No Additional Items
Each item of this array must be:
Type: object

Cache

Type: array

Array of L2ARC cache vdev configurations.

No Additional Items
Each item of this array must be:
Type: object

Spare

Type: array

Array of spare disk configurations.

No Additional Items
Each item of this array must be:
Type: object

Special

Type: array

Array of special vdev configurations for metadata.

No Additional Items
Each item of this array must be:
Type: object

Dedup

Type: array

Array of deduplication table vdev configurations.

No Additional Items
Each item of this array must be:
Type: object
Type: null


Required roles: POOL_WRITE