INTRO

What's GiantVM

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

PATENT

GIANTVM FOR RESOURCE AGGREGATION

US Patent 10853119

CODE

1. QEMU

BASE QEMU branch stable-2.8
https://github.com/GiantVM/QEMU.git

2. KVM

BASE Linux Kernel branch 4.8.10
https://github.com/GiantVM/Linux-DSM.git

COMMAND LINE

Run GiantVM on a single machine

ubuntu 16.04.7 linux kernel version: 4.15.0

boot reference documentation - 1

boot reference documentation - 2

sudo apt-get install build-essential openssl libncurses5-dev libssl-dev
sudo apt-get install zlibc minizip libidn11-dev libidn11 bison flex
git clone https://github.com/GiantVM/Linux-DSM.git
cd Linux-DSM
Switch the MACRO definition from USE_KRDMA_NETWORK to USE_KTCP_NETWORK in arch/x86/include/asm/kvm_host.h.
make menuconfig
`Virtualization` --> `KVM distributed software memory support` --> `press 'Y' to include the option`
`Save` --> `Exit`
make -jN
N is the number of threads you'd like to run parallelly.
sudo make modules_install
sudo make install
sudo update-grub
reboot
sudo apt-get install python pkg-config libglib2.0-dev zlib1g-dev libpixman-1-dev libfdt-dev
git clone https://github.com/GiantVM/QEMU.git
cd QEMU
./configure --target-list=x86_64-softmmu --enable-kvm
make -jN
cd ..
wget http://ftp.sjtu.edu.cn/ubuntu-cd/16.04.6/ubuntu-16.04.7-server-amd64.iso
cd QEMU
./qemu-img create -f qcow2 ubuntu-server.img 10G

We simulate two machines by running two QEMU processes on a single machine.
First we install vncviewer to monitor the guest.

wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.19.325-Linux-x64.deb
sudo dpkg -i VNC-Viewer-6.19.325-Linux-x64.deb

Terminal 1:

 sudo x86_64-softmmu/qemu-system-x86_64 --nographic -hda ubuntu-server.img -cpu host -machine kernel-irqchip=off -smp 4 -m 4096  --enable-kvm -serial mon:stdio -local-cpu 2,start=0,iplist="127.0.0.1 127.0.0.1" -vnc :0

Terminal 2:

sudo x86_64-softmmu/qemu-system-x86_64 --nographic -hda ubuntu-server.img -cpu host -machine kernel-irqchip=off -smp 4 -m 4096  --enable-kvm -serial mon:stdio -local-cpu 2,start=2,iplist="127.0.0.1 127.0.0.1"

Terminal 3:

vncviewer :0

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

There is a video on Youtube about this paper:
Read a paper: GiantVM—a type-II hypervisor implementing many-to-one virtualization

VIDEO

GiantVM Video Gallery

Watch demonstrations and technical overviews of our distributed hypervisor technology.

CHECK VIDEOS

SLIDES

GiantVM Slide Decks

Visit our slide decks and dive deeper into GiantVM.

CHECK SLIDES

PEOPLE

Trusted Cloud Group · Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao Tong University

alternative

Zhuocheng Ding

[email protected]

alternative

Yubin Chen

[email protected]

alternative

Jin Zhang

[email protected]

alternative

Jiacheng Ma

[email protected]

alternative

Xingguo Jia

[email protected]

alternative

Weiye Chen

[email protected]

alternative

Chenggang Wu

[email protected]

alternative

Yuxin Xiang

[email protected]

alternative

Tianlei Xiong

[email protected]

alternative

Muliang Shou

[email protected]

alternative

Kailiang Xu

[email protected]

alternative

Songtao Xue

[email protected]

COOPERATIONS

Electronics and Telecommunications Research Institute (South Korea)

Baik Song An ([email protected])
Myung Hoon Cha ([email protected])
Lee ([email protected])
Hong Yeon Kim ([email protected])

CONTACT

[email protected]

Room 5406, School of Software,

Shanghai Jiao Tong University, Shanghai, 200240