...
- Stop all jobs in old server, then terminate. Check that the checkpoint file was written.
- Module load ecflow/5new
- Start the new ecflow 5 server. It will automatically read the checkpoint file that were created in version 4.7.X and above.
Migration( only required for ecflow < 4.7.0)
In most cases we can easily migrate from one version of ecflow to another. Since the checkpoint file will be readable by the new version of ecflow.
However occasionally this may not always be possible. (i.e. if there has been large internal re-factoring). On these occasions we can use ecflow_client --migrate.
The simplest migration involves running:
Code Block |
---|
ecflow_client --migrate > migrate.def # run on old server |
migrate.def is like a normal definition file where the state is encoded as comments.
Then run the following with the new client/server:
Code Block |
---|
ecflow_client --load migrate.def # run on new server |
This will load the file into the new server preserving all state information.
If the backup servers functionality is used, then then backup servers should also be migrated at the same time.
The following notes provides more detail guidance on the migration process.
This assumes you are migrating half way through running some experiments,and want to continue where you left.
Steps for Old server:
shut-down
Code Block language bash title shutdown ecflow_client --shutdown
suspend all suites
Code Block language bash title suspend CL="ecflow_client --port 3142 --host machineX" for s in $($CL --suites); do $CL --suspend /$s; done
- wait for active/submitted tasks to complete
halt the server:
Code Block language bash title halt ecflow_client --halt
Use --migrate to dump state and structure to a file:
Code Block language bash title migrate ecflow_client --migrate > all_suites.def
- terminate server *or* leave server running but start new server on different machine to avoid port number clash.
- remove checkpt and backup checkpt files, to prevent new server from loading them
*Only* applicable if starting new server on same machine
Steps for New server:
module load latest release
Code Block title Load latest ecflow > module load ecflow/5new > module load python3
- start server
load the migration file:
Code Block language bash title Load ecflow_client --load=all_suites.def
set server running:
Code Block language bash title restart ecflow_client --restart
resume suspended suites:
Code Block language bash title Resume CL="ecflow_client --port 3142 --host machineX" for s in $($CL --suites); do $CL --resume=/$s; done
If you are using earlier versions, then :
...