Server Roles
Overview
There are two possible roles in the Corellium cluster architecture: The compute role and the controller role. Each server in a cluster can take on one or more of these two roles. A server configured to take on both roles is referred to as a “dual-node” configuration. In this case, each roles must be treated as a logically node within the cluster. All single-server and all desktop deployments of Corellium software are necessarily dual-node configurations.
Nodes that serve the compute role are the ones that run the virtual devices. These nodes necessarily have to be Arm servers running our proprietary hypervisor.
Nodes that serve the controller role are the ones that run the front-facing Corellium software. Compute nodes report to the controller nodes, which coordinate the cluster. The controller nodes take care of the allocation and scheduling of virtual devices onto the compute nodes. They also store both the default virtual device firmware, and and any custom kernels or other software uploaded by the user, and serve it to compute nodes as necessary.
Multi-Node Setups
In the Multi-Node setup, Corellium configures one of the servers to be a controller node as well as a compute node. It comes equipped with extra storage to store the virtual device firmware files.
The Controller Node will be your single point of contact with the Corellium software. It runs the Corellium user interface. Additionally, the Controller Node can be used to upgrade, reconfigure, or reset Corellium if necessary since it contains credentials necessary to alter the other servers.
Single-Node Setups
In the Single-Node setup, Corellium configures the same server to be both a controller node and a compute node. When we refer to the Controller Node in the document, we are referring to that server, even though it serves both as a controller and a compute node.