Migrate an On-Site Server
Changing Corellium's networking configuration in the web application will reset Corellium. Everything - all users, projects, and VM instances - will be deleted.
We're currently exploring ways to make this process less destructive. If you have any ideas, please let us know!
Overview
To migrate an on-site server to a new IP address:
- Gather existing and new networking configuration.
- Update networking configurations in two configuration files.
- Run
corellium-configure
to apply the changes. - Reboot.
Gather Existing and New Networking Configuration
In Corellium, these are the configurable networking parameters:
- Corellium server IP addresses (combined/controller node IP address and compute node IP address)
- Corellium server netmask
- Corellium server gateway
- Corellium server DNS servers
- Virtual device starting subnet
- Virtual device netmask
- Virtual device gateway
- Virtual device DNS servers
You may or may not need to change all of these values when you move the server.
Update Networking Configurations
On each node in your cluster, SSH in as root, then back up /etc/corellium/setup.json
and /etc/network/interfaces
e.g.
cp /etc/corellium/setup.json /etc/corellium/setup.json.bak
cp /etc/network/interfaces /etc/network/interfaces.bak
Then, in both configuration files, for each networking parameter that's changing, replace the old value with the new value. That could look like this, with the italicized phrases replaced with the appropriate values:
sed --expression 's/old-compute-node-ip-address/new-compute-node-ip-address/g' --in-place /etc/corellium/setup.json
sed --expression 's/old-controller-node-ip-address/new-controller-node-ip-address/g' --in-place /etc/corellium/setup.json
sed --expression 's/old-gateway-ip-address/new-gateway-ip-address/g' --in-place /etc/corellium/setup.json
# ...
sed --expression 's/old-compute-node-ip-address/new-compute-node-ip-address/g' --in-place /etc/network/interfaces
sed --expression 's/old-controller-node-ip-address/new-controller-node-ip-address/g' --in-place /etc/network/interfaces
sed --expression 's/old-gateway-ip-address/new-gateway-ip-address/g' --in-place /etc/network/interfaces
# ...
Apply the Corellium configuration. On the combined/controller node, run:
corellium-configure --leader --postinst
On the compute node, run:
corellium-configure --postinst
Then reboot both nodes with reboot
. When the nodes finish rebooting, if the virtual device networking configurations changed, delete and recreate projects.