Reset all ix hidden datasets and mount points?

I made the mistake of importing a 24.10 pool into 24.04 to do some testing

when i reinstalled and reimported the pool to 24.10 the app service had a fit, sometimes this prevents the dataset UI from showing any of my datasets at all (though command line shows they are all there).

I get this error in the alerts.

Critical
Failed to configure docker for Applications: Missing "zfs/ix-apps/app_configs, zfs/ix-apps/app_mounts, zfs/ix-apps/docker, zfs/ix-apps/truenas_catalog" dataset(s) required for starting d

I tried setting and unsetting the apps pool, but it gave me errors about folders not exsting like /mnt/.ix-apps - thing is those did exist

i tried deleting the old mounts and datasets by command line hoping the system would regenerate it then (i did this because at the time the storage UI was utterly non functional). This was obviously a stupid idea.

Is there are command line way to get the system to regerate the defatul set of hidden datasers (as if this was a first install) or at this point am i going to have to nuke the OS, remove all hidden datasets and file structure, reinstall OS and start again?

this is the current set of datasets and mounts

truenas_admin@truenas[~]$ sudo zfs mount
[sudo] password for truenas_admin: 
boot-pool/ROOT/24.10.0.2        /
boot-pool/ROOT/24.10.0.2/audit  /audit
boot-pool/ROOT/24.10.0.2/conf   /conf
boot-pool/ROOT/24.10.0.2/data   /data
boot-pool/ROOT/24.10.0.2/etc    /etc
boot-pool/ROOT/24.10.0.2/home   /home
boot-pool/ROOT/24.10.0.2/mnt    /mnt
boot-pool/ROOT/24.10.0.2/opt    /opt
boot-pool/ROOT/24.10.0.2/root   /root
boot-pool/ROOT/24.10.0.2/usr    /usr
boot-pool/ROOT/24.10.0.2/var    /var
boot-pool/ROOT/24.10.0.2/var/ca-certificates  /var/local/ca-certificates
boot-pool/ROOT/24.10.0.2/var/log  /var/log
boot-pool/ROOT/24.10.0.2/var/log/journal  /var/log/journal
boot-pool/grub                  /boot/grub
zfs                             /mnt/zfs
foo                             /mnt/foo
foo/apps_data                   /mnt/foo/apps_data
zfs/.system                     /var/db/system
zfs/.system/cores               /var/db/system/cores
zfs/.system/nfs                 /var/db/system/nfs
zfs/.system/samba4              /var/db/system/samba4
zfs/.system/configs-ae32c386e13840b2bf9c0083275e7941  /var/db/system/configs-ae32c386e13840b2bf9c0083275e7941
zfs/.system/netdata-ae32c386e13840b2bf9c0083275e7941  /var/db/system/netdata
zfs/.system/cores               /var/lib/systemd/coredump

my initial failure mode was identical to thisā€¦

Iā€™d suggest reporting a bug

These failure scenarios should probably be handled.

Worst case, ā€œunsettingā€ and the reselecting the app pool ā€œshouldā€ fix things, and if it doesnā€™t, then Iā€™d regard that as a bug to be fixed personally.

1 Like

Thanks, is this something they would look at? I didnā€™t have much luck with my last bug.

I suspect the issue was because when when I imported into 24.04 it created the k8s dataset, but i never configured that service fully (just looked at the UI bits, set pool maybe?)

then i assume when i upgrade that 24.04 to 24.10 the upgrade for k8s failed like the other person

i had hoped the full re-install of 24.04 import would fix / reset truenas.

Good news, i think i fixed this with the following procedure (not saying all steps were needed)

  • tried to disconnect main pool called zfs, couldnā€™t due to missing folder
  • created new pool called foo (thankfully i had 2 spare disks)
  • sudo zfs create -o mountpoint=/.ix-apps zfs/ix-apps
  • now i could export zfs without the errir, i did export and selected delete config
  • set apps to the new pool foo
  • imported the pool zfs
  • changed the apps pool from foo to zfs
  • this seemed to create all the other ix-apps datasets and set the right mount poin
  • refreshed catalog
  • installed portainer from catalog as simple and quick test, left all settings default

this ā€˜seemsā€™ to have worked

this is my complete set of datasets and mounts, would be great if someone could validate if i am missing any

boot-pool/ROOT/24.10.0.2        /
boot-pool/ROOT/24.10.0.2/audit  /audit
boot-pool/ROOT/24.10.0.2/conf   /conf
boot-pool/ROOT/24.10.0.2/data   /data
boot-pool/ROOT/24.10.0.2/etc    /etc
boot-pool/ROOT/24.10.0.2/home   /home
boot-pool/ROOT/24.10.0.2/mnt    /mnt
boot-pool/ROOT/24.10.0.2/opt    /opt
boot-pool/ROOT/24.10.0.2/root   /root
boot-pool/ROOT/24.10.0.2/usr    /usr
boot-pool/ROOT/24.10.0.2/var    /var
boot-pool/ROOT/24.10.0.2/var/ca-certificates  /var/local/ca-certificates
boot-pool/ROOT/24.10.0.2/var/log  /var/log
boot-pool/ROOT/24.10.0.2/var/log/journal  /var/log/journal
boot-pool/grub                  /boot/grub
foo                             /mnt/foo
foo/apps_data                   /mnt/foo/apps_data
zfs                             /mnt/zfs
foo/.system                     /var/db/system
foo/.system/cores               /var/db/system/cores
foo/.system/nfs                 /var/db/system/nfs
foo/.system/samba4              /var/db/system/samba4
foo/.system/configs-ae32c386e13840b2bf9c0083275e7941  /var/db/system/configs-ae32c386e13840b2bf9c0083275e7941
foo/.system/netdata-ae32c386e13840b2bf9c0083275e7941  /var/db/system/netdata
foo/.system/cores               /var/lib/systemd/coredump
zfs/ix-apps                     /mnt/.ix-apps
zfs/ix-apps/docker              /mnt/.ix-apps/docker
zfs/ix-apps/app_mounts          /mnt/.ix-apps/app_mounts
zfs/ix-apps/truenas_catalog     /mnt/.ix-apps/truenas_catalog
zfs/ix-apps/app_configs         /mnt/.ix-apps/app_configs
zfs/ix-apps/app_mounts/portainer  /mnt/.ix-apps/app_mounts/portainer
zfs/ix-apps/app_mounts/portainer/data  /mnt/.ix-apps/app_mounts/portainer/data

also if you happen to fat finger the data set create mount point parameter you can fix all the auto created datapoints with this and reboot (guess who actually fat fingered it)

sudo zfs set -u mountpoint=/.ix-apps zfs/ix-apps
sudo zfs set -u mountpoint=/.ix-apps/app_configs zfs/ix-apps/app_configs
sudo zfs set -u mountpoint=/.ix-apps/docker zfs/ix-apps/docker
sudo zfs set -u mountpoint=/.ix-apps/app_mounts zfs/ix-apps/app_mounts
sudo zfs set -u mountpoint=/.ix-apps/truenas_catalog zfs/ix-apps/truenas_catalog

Hi,
Please post the result of

zfs list | grep .ix

and

zfs get mountpoint tank/ix-apps

Also, you can directly try using:

zfs set mountpoint=/.ix-apps tank/ix-apps

Replace tank with your pool or old ix-apps path. If you did not delete the configs it should directly create the relevant mountpoint and hide ix-apps folder.
After that you will still have to manually initiate the migration.

1 Like
truenas_admin@truenas[~]$ sudo zfs list | grep .ix
foo/ix-apps                                            564K   859G   104K  /mnt/.ix-apps
foo/ix-apps/app_configs                                 96K   859G    96K  /mnt/.ix-apps/app_configs
foo/ix-apps/app_mounts                                  96K   859G    96K  /mnt/.ix-apps/app_mounts
foo/ix-apps/docker                                     172K   859G   172K  /mnt/.ix-apps/docker
foo/ix-apps/truenas_catalog                             96K   859G    96K  /mnt/.ix-apps/truenas_catalog
zfs/ix-apps                                            180M  65.3T    35K  /mnt/.ix-apps
zfs/ix-apps/app_configs                                160K  65.3T   160K  /mnt/.ix-apps/app_configs
zfs/ix-apps/app_mounts                                 112K  65.3T    24K  /mnt/.ix-apps/app_mounts
zfs/ix-apps/app_mounts/portainer                        88K  65.3T    24K  /mnt/.ix-apps/app_mounts/portainer
zfs/ix-apps/app_mounts/portainer/data                   64K  65.3T    64K  /mnt/.ix-apps/app_mounts/portainer/data
zfs/ix-apps/docker                                     138M  65.3T   138M  /mnt/.ix-apps/docker
zfs/ix-apps/truenas_catalog                           41.2M  65.3T  41.2M  /mnt/.ix-apps/truenas_catalog

and

truenas_admin@truenas[~]$ sudo zfs get mountpoint zfs/ix-apps 
NAME         PROPERTY    VALUE          SOURCE
zfs/ix-apps  mountpoint  /mnt/.ix-apps  local

Note with one step i did in step 3 after that it auto did everything else - creating all the other app data sets and mount points