Migrate TrueNAS Core to Sylve

For years I ran TrueNAS Core on my home fileserver. This was an awesome, easy way of running FreeBSD + ZFS + tools without a lot of manual maintenance. Unfortunately TrueNAS decided to start using Linux as the basis of TrueNAS and I love using FreeBSD. Fortunately a new project is on the horizon which looks promising:

 Sylve

 I'm eager to try out Sylve and will write down my plan and the results in this blog.

Some useful facts

  • TrueNAS Core installs full images containing the OS, middleware and UI. The last version was based on FreeBSD 13.3 and uses Boot Environments to manage versions.
  • Sylve wants FreeBSD 15.0 or later pre-installed and only installs middleware and UI on top of it.
  • I use my NAS mainly for Samba (Time Machine) and ZRepl (zfs+ssh send-receive backups).
  • The machine: dmesg.
  • root@freenas[~]# gpart show
    =>       40  234441568  ada0  GPT  (112G)
             40       1024     1  freebsd-boot  (512K)
           1064  234422272     2  freebsd-zfs  (112G)
      234423336      18272        - free -  (8.9M)

    =>        40  7814037088  ada2  GPT  (3.6T)
              40          88        - free -  (44K)
             128     4194304     1  freebsd-swap  (2.0G)
         4194432  7809842696     2  freebsd-zfs  (3.6T)

    =>        40  7814037088  ada3  GPT  (3.6T)
              40          88        - free -  (44K)
             128     4194304     1  freebsd-swap  (2.0G)
         4194432  7809842696     2  freebsd-zfs  (3.6T)

    =>       40  234441568  ada1  GPT  (112G)
             40       1024     1  freebsd-boot  (512K)
           1064  234422272     2  freebsd-zfs  (112G)
      234423336      18272        - free -  (8.9M)
  • root@freenas[~]# zpool status

      pool: freenas-boot

     NAME          STATE     READ WRITE CKSUM
        freenas-boot  ONLINE       0     0     0
          mirror-0    ONLINE       0     0     0
            ada1p2    ONLINE       0     0     0
            ada0p2    ONLINE       0     0     0

      pool: zdata
    NAME                                                STATE     READ WRITE CKSUM
        zdata                                               ONLINE       0     0     0
          mirror-0                                          ONLINE       0     0     0
            gptid/ac5968d1-c9ff-11ea-9bab-002170466cda.eli  ONLINE       0     0     0
            gptid/ad3475fc-c9ff-11ea-9bab-002170466cda.eli  ONLINE       0     0     0 
  • root@freenas[~]# mount
    freenas-boot/ROOT/13.3-U1.2 on / (zfs, local, noatime, nfsv4acls)
    devfs on /dev (devfs)
    tmpfs on /etc (tmpfs, local)
    tmpfs on /mnt (tmpfs, local)
    tmpfs on /var (tmpfs, local)
    fdescfs on /dev/fd (fdescfs)
    zdata on /mnt/zdata (zfs, local, nfsv4acls)
    zdata/backups on /mnt/zdata/backup (zfs, local, read-only, nfsv4acls)
    zdata/.system on /var/db/system (zfs, local, nfsv4acls)
    zdata/.system/cores on /var/db/system/cores (zfs, local, nfsv4acls)
    zdata/.system/samba4 on /var/db/system/samba4 (zfs, local, nfsv4acls)
    zdata/.system/syslog-646f8dae97d646cc8946ddeb0ca79d97 on /var/db/system/syslog-646f8dae97d646cc8946ddeb0ca79d97 (zfs, local, nfsv4acls)
    zdata/.system/rrd-646f8dae97d646cc8946ddeb0ca79d97 on /var/db/system/rrd-646f8dae97d646cc8946ddeb0ca79d97 (zfs, local, nfsv4acls)
    zdata/.system/configs-646f8dae97d646cc8946ddeb0ca79d97 on /var/db/system/configs-646f8dae97d646cc8946ddeb0ca79d97 (zfs, local, nfsv4acls)
    zdata/.system/webui on /var/db/system/webui (zfs, local, nfsv4acls)
    zdata/.system/services on /var/db/system/services (zfs, local, nfsv4acls)
    fdescfs on /var/run/samba/fd (fdescfs)

So it has 2 mirrored SSDs containing the OS and 2 mirrored HDDs containing my data.
The Boot Environment is one big filesystem containing the whole OS. Only /var/db/system is a filesystem on the HDD containing TrueNAS specific config files and statistics.

Personal requirement

  • Keep existing disks with all data untouched.
  • Keep existing Boot Environments so I can revert or lookup current configuration settings. 

The Plan

  1. Create new Boot Environment for plain FreeBSD 15.0.
  2. Install Sylve and recommended packages.
  3. Hope that it recognizes my existing pools.
  4. Configure Samba and ZFS send-receive.

To be continued... 

Comments

Popular posts from this blog

FreeBSD running vlan and bridge on one shared interface

Waiting for clang. Forever and ever.