• 沒有找到結果。

In this chapter, first, we introduce some researches about process migration task because it is the foundation of migration. Then, we introduce some researches about migration of virtual machine. Finally, we introduce some researches about Inter-Virtual-Machine that can improve the performance of our mechanism.

2.1 Process Migration

Process migration is an act of transferring an executing process between two machines. This idea was first presented by Finkel et al.[6], and also, Rashid and Robertson[7] in the 80’s. Powell and Miller[5] firstly added feature of process migration on DEMOS/MP operating system. There are some challenges for process migration, such as full transparency, dependence of other processes, fast transferring for process state, proper migration algorithm and etc. The past researches[1][5][9][10][11][12] have provided several mechanisms to overcome those challenges in different operating systems, but it spent the expensive implementation cost if the operating systems do not support process migration.

Generally speaking, process migration for reaching load-balance in distributed systems has three major tasks: migration algorithm, load information management and distributed scheduling [13]. The algorithms of process migration are quite similar, and they can be summarized as following. Firstly, a migration request is issued to a remote node, and then the process is detached from source node. Secondly, we need to do some preparations before state transferring, such as redirecting the communication, extracting the process state and creating the destination process instance. Then, process state is transferred and imported into a new instance. Finally, resume the new

instance from destination node. Load information management is also an important component of process migration because we need to get the information that we want and normalize it. In addition, transferring the information as small as possible to improve the performance is also important. Distributed scheduling plays the major role of load balancing or overloads eliminating. The main goal is to determine when to migrate which process to where. Distributed scheduling can not only achieve load-balance but also eliminate overload; moreover, improve overall performance if we migrate right process to right destination.

Milojicic et al. [14] first suggested that move the client to destination where the server is located to improve performance because the client/server communication takes place in parallel. To get the better performance, the operating system needs to provide parallel programming environment and parallel run-time support system, such as PVM system [16].

2.2 Migration in Virtual Machine

Different from process migration, virtual machine migration can avoid many difficulties faced by process migration, such as process state saved and transferred, name space of process, and transparency of process migration. Moreover, the virtual machine environment provides a clean platform between operating system and hardware to solve the dependence issue.

Self-migration [19] used the mechanism, resend-on-write and transferred the remained dirty pages after checkpoint has been suspended to reduce the overall migration time, but it can not keep the service alive. Clark et al. [3] presented a transparent and fast virtual machine migration, named live-migration on Xen [4]. To achieve live-migration, there are three phases of transferring memory, pre-copy, stop-and-copy and demand-copy. When migration starting, all pages are transferred in

pre-copy phase. If the rate of dirty pages is lower than limited, it enters the stop-and-copy phase to transfer the remained dirty pages. After being finished of transferring dirty pages, the destination virtual machine starts and provides the service as before. If the page fault occurs, it will copy the page from source machine. They successfully minimized both downtime and total migration time and keep the service alive.

There are two types of storage in the common virtual machine environment, one is local disk and the other is using Network Attached Storage (NAS). NAS is a better choice for modern clusters because it can provide strong availability of data by building in RAID and the front-end can reduce the expensive disk I/O. Doing migration is unreasonable in the previous researches if only using local disk because the migrated domain on the destination machine will still access the local disk on the source machine. Nevertheless, Bradford et al. [20] has mentioned that transferring memory state as well as local persistent state in WAN, it will make the virtual machine environment friendlier. Therefore, doing migration is suitable for academy, industry, as well as common user.

With the maturity of virtual machine migration, some people try to solve system overload or making load-balance of clusters by using domain migration. Menasce and Bennani presented an autonomic virtualized environment [22], they consider dynamically CPU priority allocation and allocation of CPU shares in virtual machine to achieve load-balance. However, it just considers the factors of CPU and do not use the technique of virtual machine migration. Ruth et al.[23] builds autonomic virtual machine with consideration of CPU resource and memory resource, and it keeps each virtual machine’s resource utilization within a specific range.

The above researches make the idea of load-balance and autonomic in the virtual machine become more practical, but they still lack consideration. T. Wood et al.[24]

show black-box and gray-box strategies to observe the utilization of resources and eliminate hotspots. They present Sandpiper, as a complete solution to support load-balance and autonomic virtualized environment with consideration of CPU, memory resource and network bandwidth in the virtual machine environment, and it consists of profiling engine, hotspot detector and migration manager. They integrate those resources into a formula to reduce the time of decision and use the swap mechanism to make migration more practical. Hyser et al.[25] presented overview of a virtual machine placement system and used a mean-value migration policy.

2.3 Inter-Domain Communication

Although the virtual machine environment can provide several advantages, the performance of virtual machine is still lower than the native machine. Some researches [26][27][28] introduced that I/O virtualization is the significant performance overhead of virtual machine environment because all of the I/O operations will go through domain-0 and VMM, and it caused the expensive domain switch and longer path of I/O operation. The main idea of solving the problem is bypassing domain-0 and VMM to reduce the overhead of communication between two domains on the same machine.

XenSocket [28] is a socket-based solution for increasing inter-domain throughput in xen. XenSocket avoid the TCP/IP overhead and bypass the domain-0 by providing a socket-based interface to shared memory buffers for inter-domain communication, but it can not support the general socket interface. Kim et al.[26]

presented XWAY channel to deal with the socket between two guest domains. XWAY achieves high performance by bypassing TCP/IP stacks, avoiding page exchanging overhead, and create a directed and shorter communication path between two different guest domains. It also supports the general socket interface and live migration easily.

相關文件