Automatic generic process migration system in linux - Zarrabi, Amirreza (2012)
Process migration refers to the act of transferring a process in the middle of its execution from one machine to another in a network. It introduces an intuitively appealing approach which facilitates dynamic load distribution, fault resilience, easy system administration, and data access locality. Process migration has not reached widespread use in Linux Operating System (OS) which was originally designed to run standalone. However, several packages exist which extend Linux with migration functionality. They generally depend on specific features in kernel or target some well behaved applications. These packages are specifically tailored for specific goals, result in predefined operation which contradicts with the concept of generic tools. In this work, a process migration system architecture for Linux is proposed. It does not impose any requirement on the existence of specific infrastructure in the kernel. It is a multilayer architecture to confine every functionality independent section of the system in separate layer. This architecture is capable of supporting diverse applications due to dynamic structure that can be modified according to demands. A fexible interface to the underlying checkpoint/ restart subsystem is designed which permits users to specify the migration mechanism according to process constraints. A migration algorithm is designed which attempts to exploit the unique features of the basic migration algorithms to form a generic algorithm. Furthermore, to enhance the process migration system performance a number of optimizations are enforced in each layer, including: bufer aggregation and interleaving, operation parallelism, and early event request. The entire system is absolutely implemented in multiple kernel modules which results in ease of use and eliminates the burden of complex system administration. The proposed architecture is evaluated qualitatively and compared with the proprietary products to reveal its significance. However, the quantitative experiments are conducted to assess the implementation performance. The early event request is deployed to speedup the migration event by reducing the process migration latency time by almost 27% to 77%. Using the migration event concurrency, the freeze time for the migration events would practically be similar irrespective to the number of processes involved in the event. Exploiting the concurrency in the proposed migration system and introducing the notion of parallelism for transferring of the shared resources, the state relocation time is reduced by almost 20% for nine processes sharing 1MiB of their address space.