Journal of Computer Science and Technology (Oct 2021)
Service Migration in a Distributed Virtualization System
Abstract
Cloud applications are usually formed by different components (microservices) that may be located in different virtual and/or physical computers. To achieve the desired level of performance, availability, scalability, and robustness in this kind of system developers are forced to maintain and configure complex sets of infrastructure, platforms and frameworks which are expensive to implement, operate and manage. Another approach would be to use a Distributed Virtualization System (DVS) that provides a transparent mechanism that each component could use to communicate with others, regardless of their location and thus, avoiding the potential problems and complexity added by their distributed execution. This communication mechanism already has useful features for developing commercial-class distributed applications, such as replication support (active and passive) and process migration. In general, process migration is used when a node in the cluster is overloaded, or it has been scheduled to be disconnected in order to save energy or to do maintenance tasks in it. When this occurs, it is very important that any application using a service running in that node does not end up being affected by the migration. This article describes the mechanisms used for the migration of server processes between nodes of a DVS cluster in a transparent way for client and server processes, doing special focus on how to solve the problem of keeping client/server communications active even when the server process location has changed.
Keywords