Service Migration in a Distributed Virtualization System
Keywords:Virtualization, Process Migration, Distributed Systems
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.
P. Pessolani, T. Cortes, F. Tinetti, S. Gonnet: “An Architecture Model for a Distributed Virtualization System”; Cloud Computing 2018; The Ninth International Conference on Cloud Computing, GRIDs, and Virtualization; Barcelona, España.2018.
“VMware Infrastructure Architecture Overview”. White paper. Available at: https://www.vmware.com/pdf/vi_architecture_wp.pdf .Accessed on 2021-04-01.
A. Kivity, Y. Kamay, D. Laor, U. Lublin, A. Liguori: “KVM: the Linux Virtual Machine Monitor”, In Proceedings of the 2007 Ottawa Linux Symposium (OLS’-07), 2007.
R. Bradford, E. Kotsovinos, A. Feldmann, and H. Schioberg: “Live ¨ Wide-Area Migration of Virtual Machines Including Local Persistent State,” in SIGPLAN VEE. ACM, 2007.
M. Mahalingam, D. Dutt, K. Duda, P. Agarwal et al:, “VXLAN: A Framework for Over-laying Virtualized Layer 2 Networks over Layer 3 Networks,” Internet Draft (Work in Progress), 2013.
D. Erickson, G. Gibb, B. Heller, D. Underhill et al.: “A Demonstration of Virtual Machine Mobility in an OpenFlow Network,” in SIGCOMM (Demo). ACM, 2008.
K. Kompella and Y. Rekhter, “Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling,” RFC 4761 (Proposed Standard), 2007.
Pablo Pessolani; David Gabriel Harispe; Octavio Garcia Aguirre: “Localizacion y Segui-miento de Servicios Replicados en un Sistema de Virtualizacion Distribuido”, Revista Digital del Departamento de Ingenieria e Investigaciones Tecnologicas; vol.: 5 - nro. 1 (agosto-2020) ISSN: 2525-1333.
P. OsiĔski, E. Niewiadomska-Szynkiewicz: “Comparative Study of Single System Image Clusters”, Evolutionary Computation and Global Optimization 2009 / National Conference 2009 ; Zawoja, Poland.
R. Lawrence,: “ Introduction A Survey of Process Migration Mechanisms”. Department of Computer Science University of Manitoba, 1998
S. J. Mullender, G. van Rossum, A. S. Tananbaum, R. van Renesse, H. van Staveren: "Amoeba: a distributed operating system for the 1990s", in Computer, vol. 23, no. 5, pp. 44-53, May 1990
M.F. Kaashoek, R. Renesse, H. van Staveren, and A.S. Tanenbaum: “FLIP: An Internet-work Protocol for Supporting Distributed Systems”. ACM Transactions on Computer Systems, 11(2):73-106, 1993.
P. Pessolani, T. Cortes, F. G. Tinetti, and S. Gonnet: “An IPC Software Layer for Building a Distributed Virtualization System”, Congreso Argentino de Ciencias de la Computación (CACIC 2017) La Plata, Argentina, October 9-13, 2017
“Criu - checkpoint/restore in user space”. Available at: https://access.redhat.com/articles/2455211. Accessed on 2021-04-01.
“CRIU” Available at: https://criu.org/Main_Page, Accessed on 2021-04-01.
“DMTCP” Available at: http://dmtcp.sourceforge.net/index.html .Accessed on 2021-04-01.
“DMTCP_Distributed_MultiThreaded_CheckPointing_Works“ Available at: https://es2.slideshare.net/jserv/implement-checkpointing-for-android/13-. Accessed on 2021-04-01.
How to Cite
Copyright (c) 2021 Pablo Pessolani, Luis Santiago Re, Tomás Andrés Fleitas
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.