All Projects → GiantVM → giantvm.github.io

GiantVM / giantvm.github.io

Licence: other
No description, website, or topics provided.

Programming Languages

PostScript
262 projects
CSS
56736 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
PHP
23972 projects - #3 most used programming language

GiantVM

https://github.com/GiantVM/homepage/blob/master/images/arch.png

GiantVM is a distributed hypervisor that aggregates resources from multiple physical machines, providing the guest OS with a uniform hardware abstraction. A QEMU-KVM instance runs on each node of a cluster.

This work is supported by the NSFC Key Program (No.61732010), and National Key Research & Development Program of China 2016YFB1000502.

About distributed QEMU

In QEMU-KVM virtualization, QEMU simluates guest or device I/O requests and interrupts by interception. GiantVM is equipped IPI forwarding, interrupt forwarding and I/O forwarding techniques, which overcome the difficulties of sharing CPU and I/O devices across machines.

About distributed KVM

KVM manages memory virtualization. At the heart of GiantVM is a distributed shared memory (DSM) based on Ivy, which enables the sharing of memory across multiple machines. GiantVM implements various techniques to overcome the challenges of integrating the DSM into virtualization environments.

Code

QEMU

BASE QEMU branch stable-2.8

https://github.com/GiantVM/QEMU.git (To be uploaded)

KVM

BASE Linux Kernel branch 4.8.10

https://github.com/GiantVM/Linux-DSM.git (To be uploaded)

sv6

BASE https://github.com/aclements/sv6

https://github.com/GiantVM/sv6.git (To be uploaded)

Command line

For example, run sv6 OS in GiantVM on two machines:

  1. On machine 1 (ip 10.0.0.2), run:

    sudo qemu-system-x86_64 -smp 2 -m 20480 -machine q35,kernel-irqchip=off -serial mon:stdio -nographic -net user -net nic,model=e1000 -device ahci,id=ahci0 -drive if=none,file=o.qemu/fs.img,format=raw,id=drive-sata0-0-0 -device ide-drive,bus=ahci0.0,drive=drive-sata0-0-0,id=sata0-0-0 -kernel o.qemu/kernel.elf --enable-kvm -local-cpu 16,start=0,iplist="10.0.0.1 10.0.0.2"
    
  2. On machine 0 (ip 10.0.0.1), run:

    sudo qemu-system-x86_64 -smp 2 -m 20480 -machine q35,kernel-irqchip=off -serial mon:stdio -nographic -net user -net nic,model=e1000 -device ahci,id=ahci0 -drive if=none,file=o.qemu/fs.img,format=raw,id=drive-sata0-0-0 -device ide-drive,bus=ahci0.0,drive=drive-sata0-0-0,id=sata0-0-0 -kernel o.qemu/kernel.elf --enable-kvm -local-cpu 16,start=16,iplist="10.0.0.1 10.0.0.2"
    
  3. Wait for guest OS booting

Publication

GiantVM: A Type-II Hypervisor Implementing Many-to-one Virtualization

Jin Zhang, Zhuocheng Ding, Yubin Chen, Xingguo Jia, Boshi Yu, Zhengwei Qi, Haibing Guan

VEE '20: Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments · March 2020 · Pages 30–44

Book

《深入浅出系统虚拟化:原理与实现》

Demo

kvm_forum_v4.mp4

Slides

Distributed QEMU - KVM forum 2018

About Us

Trusted Cloud Group, Shanghai Jiao Tong University

Zhengwei Qi <[email protected]>

Zhuocheng Ding <[email protected]>

Yubin Chen <[email protected]>

Jin Zhang <[email protected]>

Yun Wang <[email protected]>

Jiacheng Ma <[email protected]>

Boshi Yu <[email protected]>

Xingguo Jia <[email protected]>

Weiye Chen <>

Yuxin Xiang <[email protected]>

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].