How to move APPS & DATA from one POOL to another POOL due to NO SPACE

Hello All,

I have OS Version:TrueNAS-SCALE-24.04.2.5
I installed 4 Apps in my SSD-POOL so apps run faster because of SSD, has size 256GB. I have another HDD-POOL with free 8TB.

One of the apps is IMMICH, all of a sudden I ran out of space due to many photos & video I was backing up from my phone. This below is the error I see.

Critical

Failed to sync TRUENAS catalog: [EFAULT] Failed to clone ‘/truenas/charts.git’ repository at ‘/mnt/SSD-POOL/ix-applications/catalogs/github_com_truenas_charts_git_master’ destination: [EFAULT] Failed to clone /truenas/charts.git’ repository at ‘/mnt/SSD-POOL/ix-applications/catalogs/github_com_truenas_charts_git_master’ destination: fatal: could not create work tree dir…

What steps I can take to move APPS from SSD-POOL to HDD-POOL?

Apps can store data either in the apps dataset on your apps pool or in host paths (wherever you define it).

In general terms, you should always use Host Paths for app data, and use a separate dataset for each type of host data. Thus you can put the Immich metadata on SSD, and the photos themselves on HDD.

2 Likes

@Protopia thank you for quick response. Do you or anyone know how I can set HOST PATH for APP DATA and now that I’m out of space MIGRATE APP DATA to my HDD, at the same time keep metadata on SSD? I’m looking for guidance/steps to do this?

Here are the storage areas defined by the Dragonfish Immich app:

  • Immich Uploads Storage
  • Immich Library Storage
  • Immich Thumbs Storage
  • Immich Profile Storage
  • Immich Video Storage
  • Immich Postgres Data Storage
  • Immich Postgres Backup Storage

You will need to decide where each of these storage areas need to go (HDD or SSD).

You can create a dataset for each of these, but if it were me I would create an Immich dataset on each of your HDD and SSD pools, and then create sub-datasets for each of the above storage. You will need to record the paths for each of these datasets.

Then you need to shutdown Immich and from the shell go into the iXapplications dataset and find the equivalent data area, and 1) set the ACL on the equivalent new dataset to the same ACL on the matching iXapps area, and 2) move the data from the iXapps area to the new dataset.

I would probably do this first with a small one of these areas which is going to be on HDD and one which is perhaps less important (in case something doesn’t work, and I would move the data from the iXapps area to the equivalent HDD area. Then I would edit the app definitions and change the setting for that storage area to point to the new dataset and not the old iXvolume, and restart immich to see if it all works.

Then I would shut immich down again and do exactly the same actions for all the other areas, and then start it up and make sure everything is working and all the data is still there.

Sorry I can’t be much more help - I simply haven’t used immich and not had to do this before, so you will need to work out the details for yourself.

@Protopia thank you so much again! I found an another easier solution.

Migrate: APPS > Settings > Choose Pool > changed pool from SSD to HDD
Delete: DATASETS > SSD-Pool > IX-Applications

Ah - that is certainly a good short-term solution, but it does mean that all your apps move to HDD - which means that the app itself and the active metadata are all located on slow HDD rather than fast SSD - whereas what you really want is active data on SSD and inactive at-rest data on HDD.

1 Like