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

DEMO

SLIDES

PEOPLE

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

alternative

Prof. Zhengwei Qi

qizhwei@sjtu.edu.cn

alternative

Prof. Haibing Guan

hbguan@cs.sjtu.edu.cn

alternative

Zhuocheng Ding

tcbbd@sjtu.edu.cn

alternative

Yubin Chen

binsschen@sjtu.edu.cn

alternative

Jin Zhang

jzhang3002@sjtu.edu.cn

alternative

Yun Wang

yunwang94@sjtu.edu.cn

alternative

Jiacheng Ma

jcma@umich.edu

alternative

Boshi Yu

201608ybs@sjtu.edu.cn

alternative

Xingguo Jia

jiaxg1998@sjtu.edu.cn

alternative

Weiye Chen

jcma@umich.edu

alternative

Chenggang Wu

wuchenggang@sjtu.edu.cn

alternative

Yuxin Xiang

xiangyuxin@sjtu.edu.cn

COOPERATIONS

Electronics and Telecommunications Research Institute (South Korea)

Baik Song An (bsahn@etri.re.kr)
Myung Hoon Cha (mhcha@etri.re.kr)
Lee (sangmin2@etri.re.kr)
Hong Yeon Kim (kimhy@etri.re.kr)

CONTACT

qizhwei@sjtu.edu.cn

Room 5406, School of Software,

Shanghai Jiao Tong University, Shanghai, 200240