Back of the Terramster F8 SSD

Overview

This post covers the details around the configuration for the F8 SSD, both hardware and software, as well as BIOS changes and other setup & configuration work. 

BIOS Changes

  1. Disable VTx via BIOS->Chipset->North Bridge
  2. Disable TOS Boot First (if required) via BIOS->Boot
  3. One-Time boot from installer via BIOS->Save & Exit->Boot Override->Whatever installer drive is named
    1. For one time installer boot
  4. Change Boot Option Priorities to boot Fedora first
    1. Can disable others if desired
    2. Must be done post-install

Configuration

Hardware

  • Terramaster F8 SSD
    • For those of us with 10GbE (or more) switching - You may want a 10gbase-t SFP+ so the F8 SSD will have a full 10GbE connection. 
  • 32GB DDR5 4800MHz PC5-38400 CL40 SODIMM 2Rx8 1.1V Non-ECC Unbuffered
  • 32GB Small Form Factor Thumb Drive
    • Used as OS drive
    • Placed in one of two external USB 3 ports
    • Can't put in internal USB port; maybe a size limit on that port. 
  • 4GB Small Form Factor Thumb Drive
    • Default USB thumb drive that's on the internal USB port
    • Included in stock F8 SSD
    • Fedora 40 installer on it - can leave blank/unused
    • Be sure to set BIOS not to boot off it by default if boot order options are grayed out
  • 4x M.2 2TB NVMe 
    • Main ZFS pool - RAIDz1
  • 2x M.2 16GB Optane
    • Main ZFS pool - ZIL - Mirrored
  • 2x M.2 Slots unused
    • Future expansion :)

Software

  • Fedora 40
    • Note: Fedora 41 doesn't have ZFS On Linux support as of 2024-11-14
  • ZFS (from zfsonlinux project)
  • iSCSI target for Windows editor

Steps

  1. Install all hardware
  2. Configure BIOS
  3. Boot off thumb drive with F40 Server on it
    1. Use Fedora Media Writer
  4. Install F40 Server
    1. Disk
      1. Select USB thumb drive (32GB in my case) as install drive
        1. Use custom partitioning radio button
      2. Delete all partitions from it, if needed
      3. Auto create partitions using btrfs
      4. Optionally add /home and /var under btrfs 
        1. Do NOT add a swap partition on any usb storage
    2. Everything else is up to you :)
  5. From BIOS, set Fedora (or whatever your distro is) to boot by default if required
  6. After booting, login and get a root shell or run via sudo...
    1. Run `dnf install -y atop vim tmux`
    2. Run `dnf update -y` in a tmux session
    3. Run `reboot`
  7. Wait for system to boot back up
  8. SSH in and get a root shell or run via sudo
    1. Install ZFS on Linux (Fedora)
      1. Run `dnf install -y https://zfsonlinux.org/fedora/zfs-release-2-5$(rpm --eval "%{dist}").noarch.rpm`
      2. Run `dnf install -y kernel-devel-$(uname -r | awk -F'-' '{print $1}')`
      3. Run `dnf install -y zfs`
      4. Run `echo zfs > /etc/modules-load.d/zfs.conf`
    2. Configure ZPool
      1. Run `zpool create -o ashift=12 data raidz1 /dev/nvme{1,3,4,5}n1 log mirror /dev/nvme{0,2}n1`
    3. Configure zvol
      1. Run `zfs create -sV 4T data/lun0`
    4. Configure iSCSI target
      1. See this post
      2. Run `dnf -y install targetcli `
      3. Run `targetcli`
        1. Run `cd /backstores/block`
        2. Run `create lun0 /dev/zvol/data/lun0`
        3. Run `cd /iscsi`
        4. Run `create iqn.2024-04.gpmidi.net:stor1`
        5. Run `cd iqn.2024-04.gpmidi.net:stor1/tpg1/
        6. Run `set attribute authentication=1`
        7. Run `cd luns`
        8. Run `create /backstores/block/lun0`
        9. Run `cd ../acls`
        10. Run `create <initiator name>`
        11. Run `cd <initiator name>`
        12. Run `set auth userid=<user>`
        13. Run `set auth password=<password>`
        14. Run `exit`
      4. Run `systemctl enable --now target`
      5. Run `firewall-cmd --add-service=iscsi-target`
      6. Run `firewall-cmd --runtime-to-permanent`
  9. Configure the iSCSI initiator
  10. ...
  11. Profit!