Move Apps to another Pool (ElectricEel 24.10-RC.2)

Hi Community,

Recently I have added a new pool with new disks and I want to move my current deployed Apps (ElectricEel 24.10-RC.2) to the new pool because is new and faster.

My workflow tod do it is go to Apps->Configuration->Choose Pool and select destination pool marking: “Migrate applications to the new pool” and nothing happen: no jobs, no logs, … and after show a dialog saying: stoping Docker an ddisappear I don’t see any app in Applications, checking it seems like current pool is the pool I have choosed as destination so it’s seems ok except because applications are not there. If I do the same in the opposite way, choosing now as destination the old pool then Applications are there … So apparenty Apps are not migrating even marking the choice.

Honestly I don’t know how to proceed, I also tried with the shell doing a snapshot and after doing send and receive and same result … no error but nothing happens, it’s weird.

As additional information originally my Apps were installed in TrueNAS SCALE 24.04 (with k3s).

Now Apps are working without issues in the source pool so it’s not a big issue because I can continue working.

I’m thinking maybe is an issue in RC2 or something like that but not sure, I’m not an expert.

Any help is very welcome and thanks in advanced!

I’m in the same boat. I added an NVME pool and wanted to move all my apps over to it. My problem is that the apps all stopped on the previous pool and now won’t start.

1 Like

For what it’s worth I started my TrueNAS from scratch with ElectricEel beta. I’m now on RC.2 and hitting the same issue. I’m digging, I’ll post back if I find anything useful in terms of workarounds to migrate.

Sounds like “a bit” of a bug, looking on jira I don’t see anything, so you might want to create a bug report?

On the note of resolving this, did you use host path or volumes for your data?

If you used host paths, I’d just blow it away and redeploy all containers if thats viable.

If they are volumes, I’d add more storage using host path and from within the container migrate the persistant data to that new mount.

TBH, I don’t use volumes and only use host paths because it makes the data more portable and management for my setup.

Unfortunately the new docker applications framework was found not to support migration of the apps pool in the way we had it implemented with kubernetes in 24.04. This checkbox has been removed for 24.10.0 and we are looking into a method to replace the functionality in a future release.

In the meantime, if you want to change the apps pool location, you can either delete the existing apps (with the delete ix-apps checkbox selected) to clear the existing app data and then reinstall applications on the new pool. Or you can change your pool and accept that some apps will continue to remain on the old pool for now.

1 Like

I am using the apps as they were migrated from kubernetes. I had just finally re-deployed my apps as Truenas versions from the Truecharts ones I had. I recently added an NVME pool so I thought I’d run my apps from it, but didn’t want to have to fully reinstall them all again.

Is there a third party method of backing up all the containers and re-deploying into the new pool. Something like Portainer?

Found a solution to this:

Stop all apps and copy .ix-apps to another location, rsync -acX /mnt/.ix-apps/ /mnt/apps_temp/.ix-apps
Unmount apps pool. Apps - Unset Pool
Chang to new pool. Apps - Choose Pool
Copy temp .ix-apps to new pool. rsync -acX /mnt/apps_temp/.ix-apps/ /mnt/.ix-apps
Check applications and they should now be on new pool, may want to remount the pool just be sure.

I’d be very concerned about not having datasets where they are expected with the above.

This looks like a possible way to at least get all the apps into the new pool.

Couldn’t one just go through and fix any “Host Path” settings to point to the new apps folder? For my situation, I’m trying to move all my apps to a new dataset altogether.

I have the following dataset currently:

-Storage
      -apps
      -ix-applications
      -plex_config

and I want to replicate the subdirectories to a new dataset on some NVME drives so it will be

-NVME_Storage
     -apps
     -ix-applications
     -plex_config

Could I just follow the workaround after doing my replication and then go through the apps to change anything that had “Host Path = mnt/Storage/xxx” to be “Host Path = mnt/NVME_Storage/xxx”. I would hope than anything using ixVolume would be loading from the current apps pool which was replicated over to the new dataset and should just work after having set the new pool to the dataset that was replicated to.

Can anyone confirm if this could work for me.

If it were replicated. Rsync is not replication.

Ix-volumes create datasets inside the hidden ix-apps dataset.

It should be possible (but I have not tested) to unset an apps pool, then manually recursively replicate the ix-apps dataset to another pool, then select that pool.

It depends if the apps use absolute paths for anything, rather than referencing via /mnt/.ix-apps

I did try to unset the pool and performed a replication. Upon choosing my new NVME_Storage pool I had no apps. Would references to /mnt/.ix-apps be different than the references in the app to ixVolume, or is it the same? Wouldn’t /mnt/.ix-apps move with the replication, or is it stored somewhere other than the selected pool dataset?