Distributed and cloud computing
In the Cloud Computing paradigm a large number of computers collaborate with each other and can be seen as "a cloud of computing resources" from the viewpoint of the user. Currently, many companies such as Amazon, Rackspace, and Salesforce, provide various kinds of clouds.
- Machines may be geographically distributed or are managed by different organizations (un-uniformity).
- Machines, users, and the cloud providers can be malicious (un-trustability).
- The computation load, network speed, energy costs, etc. may change dynamically (dynamicity).
Our goal is to realize more efficient and user friendly clouds with these characteristics in mind. The issues of clouds spread across many layers:
- More secure clouds against malicious entities with virtualization techniques (OS-level).
- Algorithms for efficient management of data that is geographically distributed (Algorithm-level).
- Geographical placement issues of application servers tackled by optimization techniques (Services-level).
- Inter-user negotiation issues tackled by applying auction algorithms(Business-level).
We approach these issues from various viewpoints, in cooperation with the other research groups in our laboratory.
A Fast Live Migration by Memory Reusing
In an Infrastructure-as-a-Service cloud, computing resources are provided in a form of a virtual machine (VM). The VMs of the users can be moved between physical hosts on demand with live migration techniques. Many studies use live migration to optimize the efficiency of clouds. For example, the energy consumption is reduced by consolidating and distributing VMs depending on their load; the memory usage decreases by consolidating VMs that have similar memory images. Furthermore, the run time of certain applications decreases by migrating the corresponding VM from the user desktop pc to a computing node and a DB node.
These studies can be utilized by dynamically migrating VMs depending on the concrete situation. However, a naive live migration algorithm might transfer the whole memory image of the target VM. This leads to a long migration time and network congestion, which can be problematic when executing live migrations a lot of times. Existing research focuses on single live migration methods, but does not take multiple live migration operations into account.
We assume that in a system where VMs are migrated frequently, a VM can migrate back to a host on which it has been executed before. For example, if we use live migration to reduce the energy consumption, VMs are migrated out when they are active and migrated back to the original host after they become idle. In this situation, if the memory image of the VM is kept in the original host, unchanged regions of the VM memory do not need to be transferred. We call this mechanism "memory reusing".
We developed a system, named MiyakoDori, that provides VM migration with memory reusing. Application benchmarks showed that MiyakoDori reduces the amount of transferred memory in live migration by up to 90%. By integrating our method into an energy-consumption reduction system, we showed that our method better reduces the energy consumption than the naive one.
In our research we envision a system that adapts to workflows, which update the memory frequently and moreover reduces the unnecessary transfer of memory. For that purpose, the system improves the memory allocation of guest OSes or utilizes the memory update characteristics of each application.
- Soramichi Akiyama (D1)
- Soramichi Akiyama, Takahiro Hirofuchi, Ryousei Takano, Shinichi Honiden: "MiyakoDori: A Memory Reusing Mechanism for Dynamic VM Consolidation ", The 5th International Conference on Cloud Computing (IEEE CLOUD 2012) (Application & Experience Track), (to appear) June, 2012.
- Daisuke Fukuchi, Christian Sommer, Yuichi Sei, Shinichi Honiden,"Distributed Arrays: A P2P Data Structure for Efficient Logical Arrays" The 28th Conference on Computer Communications, Rio de Janeiro, Brazil, April 19-25, 2009.