As part of moving to a new FreeNAS box, I want to replicate data from the old (nas2, running FreeNAS 11.1 U7) to the new (nas3, running FreeNAS 11.3 U5) machine. During the initial phase nas2 will still be my primary storage location. Think of this as something like a burn-in to ensure that there are no dead-on-arrival components in the new box, esp. hard disks of course. This is planned to last for at least two months and I want all my data synchronized constantly.
The solution I laid my eyes on is Syncthing and I want to run it in a FreeNAS jail on both systems. On the new system the installation was smooth, but on nas2 it was not possible to even create a jail. It turned out to be a setting that had not been migrated from the original FreeNAS 9.3 installation, which had been the initial version of FreeNAS on nas2.
All that had to be done was fix the “Collection URL” setting in the jails configuration as shown below.
- Go to “Jails / Configuration”
- Switch to “Advanced Mode”
- Make sure that the URL contains “11.1” (was “9.3” before on my system)
The next step was to install Syncthing with
pkg. The problem with FreeNAS 11.1 is that the underlying FreeBSD is no longer maintained (EOL) and therefore no package repository exists for this version. The workaround is to forcibly switch to an existing repository, even if it does not match the FreeBSD version. I am ok with that, as long as only applications and not OS tools are installed (you should carefully think, whether this is also ok for you!). To do this, issue the following command:
# pkg bootstrap -f
You will get a warning about different OS versions and need to confirm that you want to continue. Once this is complete, install Syncthing with
pkg install syncthing
You get the same warning as just before and need to confirm the installation.
[..] [syncthing] [1/1] Fetching syncthing-1.10.0.txz: 99% 16 MiB 1.0MB/s 00:0 [syncthing] [1/1] Fetching syncthing-1.10.0.txz: 100% 16 MiB 1.0MB/s 00:1 6 Checking integrity... done (0 conflicting) [syncthing] [1/1] Installing syncthing-1.10.0... ===> Creating groups. Creating group 'syncthing' with gid '983'. ===> Creating users Creating user 'syncthing' with uid '983'. ===> Creating homedir(s) [syncthing] [1/1] Extracting syncthing-1.10.0: 100% root@syncthing:/ #
From here, you can just continue with the normal process of setting thins up. A good starting point might be the following YouTube video.