Operations
Migration Manual
This guide explains how to import an existing ZFS pool into a new FreeBSD and RealNAS installation. The data stays on the pool; the users, shares, schedules, and alerts are recreated on the new host.
ZFS pools are portable across compatible systems. The migration path is a fresh FreeBSD install, RealNAS installed with pkg, and a clean zpool import of the existing data pool.
Back up data you cannot afford to lose. The pool import should not rewrite your data, but the migration changes the boot device and management configuration.
Recommended path
Step 1. Inventory the current system
Record the settings you will need to recreate:
- Pool names and the disk identifiers each pool uses.
- Dataset paths that are shared.
- SMB share names, ACL behavior, and guest settings.
- NFS exports and any host or network restrictions.
- Local users and groups, including numeric UIDs and GIDs.
- Snapshot schedules and retention policies.
- Scrub and SMART schedules.
- SMTP relay settings and alert destinations.
- SSH authorized keys.
- Non-default ZFS properties such as compression, atime, recordsize, quota, reservation, and encryption.
# inventory commands on the old system
zpool list
zpool status
zfs list -o name,used,available,mountpoint,compression,atime
zfs list -t snapshot | head -50
showmount -e
pw usershow -a
pw groupshow -a
Step 2. Export the pool cleanly
Stop services that have files open on the pool, then export it:
service smbd stop
service nfsd stop
service mountd stop
zpool export tank
If zpool export says the pool is busy, find the process with fstat -f /tank and stop it before trying again.
Step 3. Install FreeBSD 15.x
Install FreeBSD on the boot device. Do not create the data pool during installation; you will import the existing pool later.
After the first boot, bring up networking and update the system:
freebsd-update fetch
freebsd-update install
pkg update
Step 4. Install RealNAS
pkg install realnas-middleware realnas-webui
sysrc realnasd_enable=YES
sysrc realnas_proxy_enable=YES
service realnasd start
service realnas_proxy start
Log in at https://<host>:4443/ with the temporary password from /var/log/realnas/initial-root-password, then change it.
Step 5. Import the data pool
Connect the drives to the new host. Import from the web UI or from the shell:
zpool import
# inspect the listed candidate pools, then import the one you want:
zpool import tank
Datasets, snapshots, and ZFS properties come with the pool. The data is not copied to a new format.
Step 6. Recreate users and groups
File ownership on disk is numeric. Recreate users and groups with the same UIDs and GIDs they had on the old host. The UI exposes the numeric UID field; from the shell, use matching numeric IDs:
pw groupadd staff -g 1001
pw useradd alice -u 1001 -g staff -d /home/alice -m -s /bin/sh
Step 7. Recreate shares
SMB and NFS shares are management configuration, not ZFS pool data. Recreate them in the web UI under Sharing → SMB and Sharing → NFS.
Step 8. Recreate schedules and alerts
Recreate snapshot schedules, scrub schedules, SMART tests, alert routing, and SMTP settings. Use the inventory from step 1 as the checklist.
Step 9. Verify before cutover
- Mount each share from a client and confirm read/write behavior.
- Create a test file and verify ownership and permissions.
- Take a snapshot and confirm it appears in the UI and in
zfs list -t snapshot. - Trigger a test alert and confirm delivery.
- Reboot the host and confirm pools, shares, and services return correctly.
After verification, point clients at the new host. Keep the old system powered off and unchanged until you are done with it as a fallback.
What changes
- Updates
- Use
freebsd-updatefor the base system,pkg upgradefor packages, andbectlbefore risky changes. - Manual edits to
/etc - They remain valid. RealNAS writes share configuration to include files under
/usr/local/etc/smb4.d/and/etc/exports.d/. - Service enablement
- Service state lives in
/etc/rc.confand can be changed withsysrc. The UI reads that state. - Boot environments
- Boot environments are managed by
bectland shown in the UI under System → Boot Environments. - Telemetry and registration
- RealNAS has no telemetry, diagnostic upload, support registration, or anonymous statistics flow.
Caveats
- In-place upgrade is not supported. RealNAS does not import another product's configuration database. The supported path is fresh install, pool import, and manual recreation of management settings.
- Vendor-specific ZFS user properties may remain. They should not harm the pool. Clean them up with
zfs inheritif needed. - Replication relationships must be recreated. The data remains on the pool, but schedules and credentials live in management configuration.
- Disk paths may change. ZFS identifies devices by label and should still import the pool, but external automation that used old controller paths may need updating.
The migration moves management to RealNAS. The ZFS data stays on the existing pool.