I recently upgraded my Proxmox VE server with 48GB RAM and added a new 1TB SSD. This guide documents how I set up ZFS on the new SSD and configured it as a storage backend optimized for VM and container use.


๐Ÿ–ฅ๏ธ System Overview

  • Proxmox Version: 8.4.0
  • New SSD: /dev/sda (1TB)
  • Existing boot disk: /dev/sdb (240GB)

๐Ÿ”ง Step 1: Identify the New SSD

Run lsblk to identify your drives:

lsblk -o NAME,SIZE,TYPE,MOUNTPOINT

Look for your unpartitioned 1TB SSD (e.g. /dev/sda).


๐Ÿงน Step 2: Wipe the New Disk

Ensure the drive has no partitions:

wipefs -a /dev/sda

๐Ÿ—๏ธ Step 3: Create the ZFS Pool

zpool create zfs-ssd /dev/sda

This creates a new ZFS pool named zfs-ssd.


๐Ÿ’ป Step 4: Add Storage to Proxmox

In the Proxmox Web GUI:

  • Navigate to: Datacenter โ†’ Storage โ†’ Add โ†’ ZFS
  • ID: zfs-ssd
  • ZFS Pool: zfs-ssd
  • Thin Provision: โœ… Checked
  • Content Types: Disk Image, Container

Proxmox ZFS Add Dialog


๐Ÿง  Step 5: Enable Compression (lz4)

To enable lightweight compression for this pool:

zfs set compression=lz4 zfs-ssd

Verify:

zfs get compression zfs-ssd

Expected output:

NAME      PROPERTY     VALUE     SOURCE
zfs-ssd   compression  lz4       local

๐Ÿ“ˆ Benefits of This Setup

  • โœ… Thin provisioning saves space on VM disks
  • โœ… Compression improves disk usage efficiency
  • โœ… ZFS snapshots and rollback supported
  • โœ… Great performance with SSD + 48GB RAM