How to Build a Minimal ZFS NAS Without Synology, QNAP, TrueNAS
This guide champions a minimalist approach to building a ZFS NAS on Debian, bypassing feature-rich GUIs like TrueNAS in favor of a command-line setup. It highlights ZFS's inherent self-contained, portable nature as a critical, often underestimated, feature that gives users ultimate control over their data. The appeal lies in empowering technically inclined individuals to construct a highly customized and deeply understood storage solution.
The Lowdown
This article provides a comprehensive, step-by-step guide for setting up a basic ZFS NAS using Debian 12 and Samba, eschewing the complexities of commercial or full-featured NAS solutions. The author argues that for users who don't require extensive GUI features, a command-line approach offers greater control and a deeper understanding of the system.
- Scope and Requirements: The build specifies Debian 12, RAIDZ1 (one drive redundancy), 16GB ECC RAM, and four 4TB NVMe SSDs, targeting a beginner to easy skill level with basic Linux familiarity.
- ZFS's Core Advantage: A key emphasis is placed on ZFS's self-contained filesystem, where all configuration data resides on the disks themselves. This allows for unparalleled data portability; if the host OS fails, simply move the drives to a new machine, install ZFS tools, and import the pool to recover data.
- Disk Preparation: The guide begins with locating and organizing disks, recommending the use of
/dev/disk/by-idfor persistent device naming, with an optionalvdev_id.conffor creating aliases. - ZPOOL Creation: It details installing OpenZFS and creating a RAIDZ1 zpool, advising the crucial
ashift=12option for optimal performance with modern 4KB sector drives. - Dataset Configuration: Post-pool creation, instructions are given for setting a mountpoint, enabling LZ4 compression, and creating distinct ZFS datasets (e.g.,
s16z1/docs,s16z1/backups) to leverage ZFS's granular features like snapshots and replication. - Samba Sharing: The final section covers installing Samba, creating a dedicated UNIX and Samba user, and configuring
smb.confto share both a general purpose folder and a Time Machine-compatible share for macOS users.
By following these steps, users can establish a robust, reliable, and deeply understood network-attached storage system, with the author promising future articles on ZFS encryption and dataset replication.