-
Notifications
You must be signed in to change notification settings - Fork 3
License
XenVMCgroup/XenVMC
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
/* * XenVMC -- A Residency Aware Transparent Inter-VM Network Communication Accelerator * Copyright (C) 2012-2016 XenVMC Group of NUDT * Authors: * Ren Yi - National University of Defense Technology(renyi@nudt.edu.cn, * yiren_xenvmc@163.com) * Liu Renshi(Newcent) - National University of Defense Technology (liurenshi_1989@163.com) * You Ziqi(Ziv) - National University of Defense Technology(yzq529@qq.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * */ What is XenVMC? =============== XenVMC is a residency aware transparent Inter-VM network communication accelerator. It bypasses traditional network data transmission path between Linux DomUs with shared-momory channels when the communicating VMs are on the same physical machine. XenVMC is designed under three main principles: - High Performance; XenVMC intercepts network requests at the System Call level and forwards them to the shared-memory channels, which leads XenVMC to shorter communication paths and less switches between the VMs and VMM. The evaluation shows that XenVMC improves the throughput up to about a factor of 8, compared with the netfront-netback mode of Xen when communicating VM peers are co-resident. (we use netperf-2.6.0 as the benchmark) - Multi-level Transparency; XenVMC achieves multi-level transparency. That is to say, you can use XenVMC without modifying Xen, Linux Kernel or applicaions. - VM Live Migration Supporting; XenVMC supports on-demand co-resident VM detection and automatic switch between local shared memory channel and traditional network path to retain the benefits of VM live migration and the flexibility for VM deployment. Curently, XenVMC supports both TCP and UDP workloads. Get Source Code =============== We publish the latest release here: https://github.com/XenVMCgroup/XenVMC Running Environment =================== We test XenVMC on following platform: - Xen-4.5.1 - paravirtualized Linux-3.13.0 XenVMC Binary Components ======================== XenVMC consists of two kernel modules: - xenvmc_backend.ko This is a kernel module which should be inserted into Dom0. This module is responsible for co-resident VMs detection and membership maintainence and notifies all DomUs which have installed xenvmc_frontend.ko. - xenvmc_frontend.ko This kernel module should be inserted into DomUs which are willing to enable inter-VM communication optimization by XenVMC. Building and Installing ======================= 1. Download XenVMC tarball file and decompress it into your workpalce. # tar -xzvf xenvmc.tar.gz 2. cd to XenVMC directory. 3. Build XenVMC. # make If building is successful, you will see two kernel moudles(xenvmc_backend.ko and xenvmc_frontend.ko)being created. Note that we use the same kernel version on DomUs and Dom0. If not, you may have to recompile it with your specific kernel version. 4. Install XenVMC Copy xenvmc_backend.ko to Dom0, and run command as follows: # insmod xenvmc_backend.ko This command needs root privilege. Copy xenvmc_frontend.ko to DomUs you wish to enable XenVMC, and run command as follows: # insmod xenvmc_frontend.ko This command needs a root privilege. If everything is all right, you can get notification information on system log. Using XenVMC ============ XenVMC is designed fully transparent to user level applications. If you've successfully finish above installation, congratulations, XenVMC is enabled. Legacy network applications can use XenVMC without modification to the application itself, the Linux kernel and the VMM. When two applicaions are communicating, XenVMC will detect the destination automatically. If the destination is a co-resident VM, the data will be transmitted via the shared-memory channel. From a VM administrator's perspective, he doesn't need any extra operations to make XenVMC work. Welcome all feedback ==================== You can email the authors if you have any suggestions or if you find any bugs. We really appreciate it. The authors and their email adresses are as follows: * Ren Yi - National University of Defense Technology(renyi@nudt.edu.cn, yiren_xenvmc@163.com) * Liu Renshi(Newcent) - National University of Defense Technology (liurenshi_1989@163.com) * You Ziqi(Ziv) - National University of Defense Technology(yzq529@qq.com) References ========== COPYRIGHT: The following materials are copyrighted by the corresponding publishers (e.g. ACM, IEEE). You should download them only if you accept and obey the terms and restrictions defined by the respective publishers, including only use the downloaded materials for personal or educational purpose. The online version may be slightly older than the printed version available at the respective publisher's website. Selected Publications: 1. Yi Ren, Ling Liu, Qi Zhang, Qingbo Wu, Jianbo Guan, Jinzhu Kong, Huadong Dai, Lisong Shao: Shared Memory Optimizations for Inter Virtual Machine Communication. Journal of ACM Computing Surveys(CSUR), Volume 48 Issue 4, February 2016. Article No. 49. (https://github.com/XenVMCgroup/XenVMC/tree/master/docs/YiRen-ACMCSUR2016.pdf) 2. Yi Ren, Ling Liu, Qi Zhang, Qingbo Wu, Jie Yu, Jinzhu Kong, Jianbo Guan, Huadong Dai: Residency-Aware Virtual Machine Communication Optimization: Design Choices and Techniques. In Proceedings of IEEE 6th International Conference on Cloud Computing (Cloud 2013), June 27-July 2, 2013, Santa Clara Marriott, CA, USA. (https://github.com/XenVMCgroup/XenVMC/tree/master/docs/YiRen-Cloud2013.pdf) 3. Qi Zhang, Ling Liu, Yi Ren, Kisung Lee, Yuzhe Tang, Xu Zhao, Yang Zhou: Residency Aware Inter-VM Communication in Virtualized Cloud: Performance Measurement and Analysis. In Proceedings of IEEE 6th International Conference on Cloud Computing (CLOUD 2013). June 27-July 2, 2013, Santa Clara Marriott, CA, USA. (https://github.com/XenVMCgroup/XenVMC/tree/master/docs/QiZhang-Cloud2013.pdf) 4. Yi Ren, Ling Liu, Xiaojian Liu, Jinzhu Kong, Huadong Dai, Qingbo Wu, Yuan Li: A fast and transparent communication protocol for co-resident virtual machines. In Proceedings of 8th IEEE International Conference on Collaborative Computing (CollaborateCom2012), October 14 - 17, 2012 Pittsburgh, Pennsylvania, USA. (https://github.com/XenVMCgroup/XenVMC/tree/master/docs/YiRen-CollaborateCom2012.pdf) 5. Renshi Liu. Study on Shared Memory based Optimization for Inter-VM Communication (In Chinese). M. S. thesis, National University of Defense Technology. March, 2016. (刘仁仕. 基于共享内存连接的虚拟机间通信优化机制研究. 硕士学位论文. 国防科学技术大学研究生院. 2016年3月) Presentation: Yi Ren. Co-location Aware Optimizations for Inter Virtual Machine Communication (In Chinese). Presentation (XenVMC). January, 2016. (https://github.com/XenVMCgroup/XenVMC/tree/master/docs/presentation_YiRen_201601.pdf) (任怡. 共生关系感知的虚拟机间通信优化. 交流报告. 2016年1月) Patents: 1. Yi Ren, Xiaojian Liu, et al. A Fast and Live Migration Enabled Inter-VM Communication Method. Granted Chinese patent: ZL20100198970.9 (一种支持在线迁移的虚拟机间快速通信方法. 中国发明专利. 专利授权号:ZL20100198970.9) 2. Yi Ren, Qingbo Wu, Renshi Liu, Huadong Dai, et al. A Transparent and Dynamic Switching Method for Alternative Inter-VM Communication Modes. Pending Chinese patent: 201510092457 (一种虚拟机域间通信模式的动态透明切换方法. 中国发明专利. 申请受理号:201510092457) 3. Yi Ren, Renshi Liu, Ziqi You, et al. An Event Driven Transparent method for Dynamic Co-located VMs Discovery. Pending Chinese patent: 201610025913.8 (一种透明的基于事件驱动的共生虚拟机动态发现方法. 中国发明专利. 申请受理号:201610025913.8)
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published