1. Packages
  2. Packages
  3. Proxmox Virtual Environment (Proxmox VE)
  4. API Docs
  5. node
  6. node/disk
  7. Zfs
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.3.0
published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski
proxmoxve logo
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.3.0
published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski

    Manages a ZFS pool (zpool) on a Proxmox VE node.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const example = new proxmoxve.node.disk.Zfs("example", {
        nodeName: "pve",
        name: "tank",
        devices: [
            "/dev/sdb",
            "/dev/sdc",
        ],
        raidlevel: "mirror",
        ashift: 12,
        compression: "lz4",
        addStorage: true,
        cleanupConfig: true,
        cleanupDisks: false,
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    example = proxmoxve.node.disk.Zfs("example",
        node_name="pve",
        name="tank",
        devices=[
            "/dev/sdb",
            "/dev/sdc",
        ],
        raidlevel="mirror",
        ashift=12,
        compression="lz4",
        add_storage=True,
        cleanup_config=True,
        cleanup_disks=False)
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve/node"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := node.NewZfs(ctx, "example", &node.ZfsArgs{
    			NodeName: pulumi.String("pve"),
    			Name:     pulumi.String("tank"),
    			Devices: pulumi.StringArray{
    				pulumi.String("/dev/sdb"),
    				pulumi.String("/dev/sdc"),
    			},
    			Raidlevel:     pulumi.String("mirror"),
    			Ashift:        pulumi.Int(12),
    			Compression:   pulumi.String("lz4"),
    			AddStorage:    pulumi.Bool(true),
    			CleanupConfig: pulumi.Bool(true),
    			CleanupDisks:  pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new ProxmoxVE.Node.Disk.Zfs("example", new()
        {
            NodeName = "pve",
            Name = "tank",
            Devices = new[]
            {
                "/dev/sdb",
                "/dev/sdc",
            },
            Raidlevel = "mirror",
            Ashift = 12,
            Compression = "lz4",
            AddStorage = true,
            CleanupConfig = true,
            CleanupDisks = false,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.node.Zfs;
    import io.muehlbachler.pulumi.proxmoxve.node.ZfsArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Zfs("example", ZfsArgs.builder()
                .nodeName("pve")
                .name("tank")
                .devices(            
                    "/dev/sdb",
                    "/dev/sdc")
                .raidlevel("mirror")
                .ashift(12)
                .compression("lz4")
                .addStorage(true)
                .cleanupConfig(true)
                .cleanupDisks(false)
                .build());
    
        }
    }
    
    resources:
      example:
        type: proxmoxve:node/disk:Zfs
        properties:
          nodeName: pve
          name: tank
          devices:
            - /dev/sdb
            - /dev/sdc
          raidlevel: mirror
          ashift: 12
          compression: lz4
          addStorage: true
          cleanupConfig: true
          cleanupDisks: false
    
    pulumi {
      required_providers {
        proxmoxve = {
          source = "pulumi/proxmoxve"
        }
      }
    }
    
    resource "proxmoxve_node_disk_zfs" "example" {
      node_name      = "pve"
      name           = "tank"
      devices        = ["/dev/sdb", "/dev/sdc"]
      raidlevel      = "mirror"
      ashift         = 12
      compression    = "lz4"
      add_storage    = true
      cleanup_config = true
      cleanup_disks  = false
    }
    

    Device Reuse After Destroy

    When cleanupDisks = true, Proxmox wipes the contents of each ZFS member partition (e.g. /dev/nvme0n1p1) but leaves the parent disk’s GPT partition table intact. If you destroy a pool and immediately recreate it on the same device, the create may fail with “device is already in use”.

    To fully prepare the device for reuse after destroy, run on the Proxmox node:

    wipefs -a /dev/nvme0n1
    partprobe /dev/nvme0n1
    

    Replace /dev/nvme0n1 with the actual disk device (not the partition).

    Create Zfs Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Zfs(name: string, args: ZfsArgs, opts?: CustomResourceOptions);
    @overload
    def Zfs(resource_name: str,
            args: ZfsArgs,
            opts: Optional[ResourceOptions] = None)
    
    @overload
    def Zfs(resource_name: str,
            opts: Optional[ResourceOptions] = None,
            devices: Optional[Sequence[str]] = None,
            node_name: Optional[str] = None,
            raidlevel: Optional[str] = None,
            add_storage: Optional[bool] = None,
            ashift: Optional[int] = None,
            cleanup_config: Optional[bool] = None,
            cleanup_disks: Optional[bool] = None,
            compression: Optional[str] = None,
            draid_config: Optional[ZfsDraidConfigArgs] = None,
            name: Optional[str] = None)
    func NewZfs(ctx *Context, name string, args ZfsArgs, opts ...ResourceOption) (*Zfs, error)
    public Zfs(string name, ZfsArgs args, CustomResourceOptions? opts = null)
    public Zfs(String name, ZfsArgs args)
    public Zfs(String name, ZfsArgs args, CustomResourceOptions options)
    
    type: proxmoxve:node/disk/zfs:Zfs
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "proxmoxve_node_disk_zfs" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ZfsArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ZfsArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ZfsArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ZfsArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ZfsArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Zfs Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Zfs resource accepts the following input properties:

    Devices List<string>
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    NodeName string
    The name of the Proxmox node on which to create the ZFS pool.
    Raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    AddStorage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    Ashift int
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    CleanupConfig bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    CleanupDisks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    Compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    DraidConfig Pulumi.ProxmoxVE.Node.Disk.Inputs.ZfsDraidConfig
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    Name string
    The name of the ZFS pool (storage identifier).
    Devices []string
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    NodeName string
    The name of the Proxmox node on which to create the ZFS pool.
    Raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    AddStorage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    Ashift int
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    CleanupConfig bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    CleanupDisks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    Compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    DraidConfig ZfsDraidConfigArgs
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    Name string
    The name of the ZFS pool (storage identifier).
    devices list(string)
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    node_name string
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    add_storage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift number
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanup_config bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanup_disks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    draid_config object
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    name string
    The name of the ZFS pool (storage identifier).
    devices List<String>
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    nodeName String
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel String
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    addStorage Boolean
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift Integer
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanupConfig Boolean
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanupDisks Boolean
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression String
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    draidConfig ZfsDraidConfig
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    name String
    The name of the ZFS pool (storage identifier).
    devices string[]
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    nodeName string
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    addStorage boolean
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift number
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanupConfig boolean
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanupDisks boolean
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    draidConfig ZfsDraidConfig
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    name string
    The name of the ZFS pool (storage identifier).
    devices Sequence[str]
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    node_name str
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel str
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    add_storage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift int
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanup_config bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanup_disks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression str
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    draid_config ZfsDraidConfigArgs
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    name str
    The name of the ZFS pool (storage identifier).
    devices List<String>
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    nodeName String
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel String
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    addStorage Boolean
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift Number
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanupConfig Boolean
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanupDisks Boolean
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression String
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    draidConfig Property Map
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    name String
    The name of the ZFS pool (storage identifier).

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Zfs resource produces the following output properties:

    Errors string
    Error information reported by the ZFS pool.
    Id string
    The provider-assigned unique ID for this managed resource.
    State string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    Errors string
    Error information reported by the ZFS pool.
    Id string
    The provider-assigned unique ID for this managed resource.
    State string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    errors string
    Error information reported by the ZFS pool.
    id string
    The provider-assigned unique ID for this managed resource.
    state string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    errors String
    Error information reported by the ZFS pool.
    id String
    The provider-assigned unique ID for this managed resource.
    state String
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    errors string
    Error information reported by the ZFS pool.
    id string
    The provider-assigned unique ID for this managed resource.
    state string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    errors str
    Error information reported by the ZFS pool.
    id str
    The provider-assigned unique ID for this managed resource.
    state str
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    errors String
    Error information reported by the ZFS pool.
    id String
    The provider-assigned unique ID for this managed resource.
    state String
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).

    Look up Existing Zfs Resource

    Get an existing Zfs resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ZfsState, opts?: CustomResourceOptions): Zfs
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            add_storage: Optional[bool] = None,
            ashift: Optional[int] = None,
            cleanup_config: Optional[bool] = None,
            cleanup_disks: Optional[bool] = None,
            compression: Optional[str] = None,
            devices: Optional[Sequence[str]] = None,
            draid_config: Optional[ZfsDraidConfigArgs] = None,
            errors: Optional[str] = None,
            name: Optional[str] = None,
            node_name: Optional[str] = None,
            raidlevel: Optional[str] = None,
            state: Optional[str] = None) -> Zfs
    func GetZfs(ctx *Context, name string, id IDInput, state *ZfsState, opts ...ResourceOption) (*Zfs, error)
    public static Zfs Get(string name, Input<string> id, ZfsState? state, CustomResourceOptions? opts = null)
    public static Zfs get(String name, Output<String> id, ZfsState state, CustomResourceOptions options)
    resources:  _:    type: proxmoxve:node/disk/zfs:Zfs    get:      id: ${id}
    import {
      to = proxmoxve_node_disk_zfs.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AddStorage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    Ashift int
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    CleanupConfig bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    CleanupDisks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    Compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    Devices List<string>
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    DraidConfig Pulumi.ProxmoxVE.Node.Disk.Inputs.ZfsDraidConfig
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    Errors string
    Error information reported by the ZFS pool.
    Name string
    The name of the ZFS pool (storage identifier).
    NodeName string
    The name of the Proxmox node on which to create the ZFS pool.
    Raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    State string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    AddStorage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    Ashift int
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    CleanupConfig bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    CleanupDisks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    Compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    Devices []string
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    DraidConfig ZfsDraidConfigArgs
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    Errors string
    Error information reported by the ZFS pool.
    Name string
    The name of the ZFS pool (storage identifier).
    NodeName string
    The name of the Proxmox node on which to create the ZFS pool.
    Raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    State string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    add_storage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift number
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanup_config bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanup_disks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    devices list(string)
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    draid_config object
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    errors string
    Error information reported by the ZFS pool.
    name string
    The name of the ZFS pool (storage identifier).
    node_name string
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    state string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    addStorage Boolean
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift Integer
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanupConfig Boolean
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanupDisks Boolean
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression String
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    devices List<String>
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    draidConfig ZfsDraidConfig
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    errors String
    Error information reported by the ZFS pool.
    name String
    The name of the ZFS pool (storage identifier).
    nodeName String
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel String
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    state String
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    addStorage boolean
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift number
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanupConfig boolean
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanupDisks boolean
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression string
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    devices string[]
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    draidConfig ZfsDraidConfig
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    errors string
    Error information reported by the ZFS pool.
    name string
    The name of the ZFS pool (storage identifier).
    nodeName string
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel string
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    state string
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    add_storage bool
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift int
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanup_config bool
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanup_disks bool
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression str
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    devices Sequence[str]
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    draid_config ZfsDraidConfigArgs
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    errors str
    Error information reported by the ZFS pool.
    name str
    The name of the ZFS pool (storage identifier).
    node_name str
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel str
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    state str
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).
    addStorage Boolean
    Configure a Proxmox storage entry using this zpool after creation. Applied at create time only.
    ashift Number
    Pool sector size exponent (2^ashift bytes). Defaults to 12 (4 KiB sectors) server-side.
    cleanupConfig Boolean
    On destroy, mark associated Proxmox storage entries as unavailable (or remove them if configured for this node only). Defaults to false.
    cleanupDisks Boolean
    On destroy, wipe the ZFS member partitions so they can be reused. Defaults to false. Note: Proxmox wipes the partition contents but leaves the parent disk's GPT partition table intact. If you plan to reuse the same device immediately, run wipefs -a <disk> and partprobe <disk> on the node after destroy.
    compression String
    The compression algorithm for the pool. One of on, off, gzip, lz4, lzjb, zle, zstd. Defaults to on server-side.
    devices List<String>
    The block devices to use for the ZFS pool (e.g. ["/dev/sdb", "/dev/sdc"]).
    draidConfig Property Map
    dRAID configuration. Required when raidlevel is draid, draid2, or draid3.
    errors String
    Error information reported by the ZFS pool.
    name String
    The name of the ZFS pool (storage identifier).
    nodeName String
    The name of the Proxmox node on which to create the ZFS pool.
    raidlevel String
    The RAID level for the ZFS pool. One of single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3.
    state String
    The current state of the ZFS pool (e.g. ONLINE, DEGRADED).

    Supporting Types

    ZfsDraidConfig, ZfsDraidConfigArgs

    Data int
    Number of data devices per redundancy group.
    Spares int
    Number of dRAID distributed spare devices.
    Data int
    Number of data devices per redundancy group.
    Spares int
    Number of dRAID distributed spare devices.
    data number
    Number of data devices per redundancy group.
    spares number
    Number of dRAID distributed spare devices.
    data Integer
    Number of data devices per redundancy group.
    spares Integer
    Number of dRAID distributed spare devices.
    data number
    Number of data devices per redundancy group.
    spares number
    Number of dRAID distributed spare devices.
    data int
    Number of data devices per redundancy group.
    spares int
    Number of dRAID distributed spare devices.
    data Number
    Number of data devices per redundancy group.
    spares Number
    Number of dRAID distributed spare devices.

    Import

    !/usr/bin/env sh ZFS pools can be imported using the format node_name/pool_name, e.g.:

    $ pulumi import proxmoxve:node/disk/zfs:Zfs example pve/tank
    

    Note on import: The write-only attributes devices, raidlevel, ashift, compression, draidConfig, and addStorage cannot be reconstructed from the Proxmox API and must be added to the configuration manually after import. Once added, the next pulumi up will record them in state without replacing the pool.

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    proxmoxve muhlba91/pulumi-proxmoxve
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the proxmox Terraform Provider.
    proxmoxve logo
    Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.3.0
    published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial