Debian Bullseye + ZFS on Lacie 5Big NAS Pro

Written 2021-11-26

Tags:ZFS 5big NAS Debian Lacie 

I've added a SanDisk Ultra Fit USB disk to my 5Big NAS Pro for the purposes of setting up Debian with ZFS as a NAS. TrueNAS is another option, but suggests a minimum of 16GB of RAM, while the processor in the Lacie 5Big NAS Pro is limited to 4GB. ZFS does work better with more available memory, but I don't plan to use deduplication, and only would like to sustain a 1gbps ethernet link.

System Configuration

5Big NAS Pro, unlike Lacie's earlier, ARM-based systems, has an Intel Atom processor, DDR3 SO-DIMM RAM, and a traditional BIOS accessible with a keyboard and VGA monitor. For my system, I added an internal USB stick for the OS, but this is not required - you could also use a SATA disk, though I wanted to reserve all of those for storage. For now you'll need to set the BIOS to boot from an external USB stick over any SATA or internal USB disks.

Base Installation

I used the ISO from here: https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/amd64/iso-cd/ and then wrote it to a USB thumbdrive, inserted it to the NAS, booted and installed. Notably, though the BIOS appears to support EFI, I couldn't get it to boot Debian, and so re-installed with GRUB and no EFI partition.

Apt Configuration

Add or update the following entries to /etc/apt/sources.list

    Add backports: deb http://deb.debian.org/debian/ bullseye-backports main contrib non-free
    Add contrib non-free to: deb http://deb.debian.org/debian/ bullseye main contrib non-free
ZFS is in bullseye-backports and we need bulleye's contrib and non-free components to update the CPU microcode. Once done, run 'apt update'.

Additional Packages

You may find the additional packages useful

    sudo
    openssh-server #remote access
    htop #better system monitor
    nload #network monitor
    fatrace #watch for unexpected disk accesses
    powertop #power monitoring and configuration
    intel-microcode #ZFS guide suggests running up to date microcode
    linux-headers-amd64 #will be needed for installing ZFS
    hdparm #used to set spindown for power savings
    samba #used for windows file sharing
    nfs-kernel-server #used for UNIX-like file sharing
    i2c-tools #needed for scanning the motherboard

Debian recommended installing ZFS by specifying the target release like so:

apt install -t bullseye-backports zfsutils-linux

Configuring Spindown

Note, this is a point of contention among many, and it is easy to end up with a system where your disks spin up and down too often. Keeping the disks up limits latency and wear and tear, but does cost power. In my case, the NAS lives in a small office with poor ventilation, and is not accessed often, so I enabled spindown

Edit /etc/hdparm.conf and uncomment or adjust(it means N * 5 seconds):

spindown_time = 24

Configure Swappiness

Because I placed a swap partition on a USB drive, I lowered the swappiness from default to 10. To do so, add a line(or file) to /etc/sysctl.d/local.conf with

vm.swappiness = 10

Setting up ZFS

At this point, pick up at https://wiki.debian.org/ZFS#Creating_the_Pool and continue there.

Misc Powersaving Tasks

Once installed, powertop can provide guidance on power tuning. If disks support it, ALPM can save some power as well. fatrace can help identify any periodic disk accesses as well.

zfs-auto-snapshot

The Debian package zfs-auto-snapshot will set up cron jobs to automatically create snapshots periodically. Note that if you enabled spindown, snapshots will spin up the disks. Specifically /etc/cron.d/zfs-auto-snapshot will snapshot every 15 minutes, and may need to be removed. Snapshots are pretty cheap in ZFS, but I kept only the weekly and monthly, as this is a low-write device.