Open Source, Low Cost, Zero Downtime and Optimized Live Migration

Virtualization is one of the fastest and highly demanded technologies that is currently being used, many reasons can be listed for usage of virtualization such as: consuming less energy, less financial costs, much better resource utilization, centralizing the systems, less physical space, less coolant systems, moving toward green computing, these are all benefits that can be achieved through implementing virtualization concept. While speaking of virtualization there are many concepts inside virtualization which one of them is live migration, it is the process of moving one VM (Virtual Machine) from one physical host to another physical host, in a manner that user shouldn’t feel any interruption in other words there should be no service down, achieving this goal is crucial for many organizations while there are many users working on the systems, and an interruption might be a big danger to the organization’s assets and cause irreparable problems, while many enterprise organizations are able to achieve this goal easily, there are also organizations with less funding which need more cost efficient methods and strategies for achieving the goal. The paper briefs and illustrates a complete practical approach for achieving this goal with minimum possible costs Keywords— Virtualization, Technology, Virtual Machine, Live Migration

INTRODUCTION Virtualization is one of the most used keywords in today's tech world, in computers world it means running something in virtual state rather than running it in actual state, or in technical terms it gives the ability to emulate hardware or software resources with the help of hypervisor. Virtualization is used by most companies functioning in IT world today, and it is used because of its many benefits that are provided by using it, these benefits can range from environmental benefits to top level security benefits in the systems and networks.
It works by giving an abstract of resources that is needed for every process on the system through a combination of both hardware and software which, provides resource utilization and enables the user to run multiple guest operating systems on a virtualization enabled system. Below figure gives a basic explanation on a virtualized and non-virtualized system. II. HYPERVISOR Hypervisor can be an engine, framework, platform, software or even a hardware system which provides the ability of virtualizing, it is the core of virtualizing system which takes the control of hardware resources on the host operating system and manages them between the guest operating systems. There are two types of hypervisors which are: Type1: is a self-stand platform which is ran directly on hardware and there is no intermediate operating system, these hypervisors are also called bare metal or native hypervisors.
Type2: this hypervisor stands on top of an operating system and can't act independently.

III. MIGRATION
Process of moving data from one device to another device without losing data, compromising security and saving the state of our machine is called migration, usually this act takes place on virtualization machines by moving a guest operating system from one physical system to another. There are many reasons for performing a migration in computers world such as: upgrading, changing ISP or imminent host failure. The process of migrating can be performed in two different methods which are: Offline migration: suspends the guest on host, transfer it to the destination host and then resumes it once it is fully transferred and operational. Online migration: keeps the guest running on the source hos and begins moving the memory without stopping the guest. All modified memory pages are monitored for changes and sent to the destination while the image is sent, the memory is update with the changed pages. The process continues until the amount of paused time allowed for the guest the predicated time for the final few pages to be transferred. After that the CPUSs registers are loaded on the new host and the guest is then resumed on the destination host. If the guest cannot be merged which, happens when guests are under extreme loads, the guest is paused and then an offline migration is started instead.

Live Migration
The process of moving a running guest operating system or application between different physical machines without disconnecting the client guest operating system, in this method, memory, network states, storage and its states and guest operating system processes are going to be transferred from the original guest machine to the destination machine. Live migration is not provided with all virtual machines' managers and engines, some of these have this ability. While performing this action the users see no interruption in the service and nothing happens inside guest operating system but in reality, after the process completion the guest operating system is running on a completely different host. Virtual machine managers such as Virtuozzo IV. PROPOSED WORK Though computer processors, network devices, peripheral devices, RAMs and other appliances have grown in quality dramatically within last decade still, there are many problems that are caused by low performance in respective devices and still there is room for improvement in all respective areas. Speaking of performing a live migration between two servers, is going to bring up the topic of performance and robustness on these servers, to perform live migration without fail and service downtime, hosts that the process is being done on them should have high performance in hardware and well optimized in software also, but packet loss and performance degradation dramatically happens while, performing the process [1]. This paper briefs a method of performing the process without packet loss and degradation in service quality step by step, but first let's have a look at the systems spec that are used in here. Above are the specification of the servers which XenServer is already installed on them, there is also another comuter existed that Citrix XenCenter and storage servers are running on it.
Citrix XenCenter is actually an open source project available on GitHub under BSD-Style License and comes with lots of capabilities which all are going under giving full access to the servers, basically it is a graphical interface that is going to connect to the real servers and gives the ability to control the servers within it's interface, since the servers only have command line interface.

A. Installation
Installation and primary configuration of the servers is easy, they can be found easily on internet, after installing these two servers download Citrix XenCenter from web or it is also available inside the XenServers also, add both servers inside XenCenter and create an ISO Repository for accessing ISOs from it and installing them as virtual machines or guest operating systems.

B. Pool
Using Citrix Xen Center users can pool up to 16 servers together while, one of them is going to act as the master and others are going to act as slaves, and it will allow for resource sharing and using XenMotion which is responsible for live migration process, to be mentioned that all the servers in one pool should have same processor family, means it is not possible to pool both AMD processor servers with intel inside same pool. After installing the servers and adding them to Citrix XenCenter, then they should be combined inside a single pool.

C. Internet Small Computer Systems Interface (ISCSI)
This is going to be our centralized storage server for better availability, easier management, lower cost, more security and better implementing of a backup strategy, actually it is a single shared storage for as many devices as users likes to give it, and it is mandatory for users whom want to have live migration option within their servers. ISCSI is going to reduce a lot of load on servers while performing live migration because the most resource demanding part in live migration is storage synchronization and while using shared storage there is no need for synchronizing the storage so it is going to keep away a lot of load and resource utilization.
ISCSI can be configured on any operating system but what is used here is an ubuntu operating system installed on a VWmware virtual machine manager. After configuring the ISCSI server add this server also inside the pool and install the guest operating systems on this.
V. RESULTS As shown in figure below all the process for the live migration is done without any service interruption or down time, as shown there are two servers combined inside a single pool, and on XenServer-1 there is a Ubuntu Linux Distro that is being migrated lively to the XenServer-2 and the process is almost finished and inside command line at the left you can see that the guest operating system is being pinged continuously to check if there is service down, but as it is reports there is no service down, this is due to shared storage algorithm which is ISCSI, that give this ability.

VI. CONCLUSION
Speaking of live migration in virtualization would always bring a high performance demanding and hard process in mind, that is only achievable via latest hardware devices and most optimized software solutions, but in this paper the computers that are used as servers are 3rd generation intel processors that are almost 7 years old and very cheap, and all the software that are used are open source and freely available, and yet the live migration process is done without down time, this shows a great achievement in cost saving and implementing this project completely on open source solutions.