1. 引入vmsplice对localhost mirgratgion的改进
localhost主要用于对虚拟机进行live upgrade。
splice是linxu的一个系统调用,作用是将数据在文件描述符和pipe间移动,而不需要在用户空间进行拷贝数据的过程。
vmsplice在pipe和用户空间移动数据而不许要拷贝。通过内存页面的remapping来实现因此不需要真的拷贝任何数据。
因此能改善IO性能。
2. binding guest numa
支持binding guest numa nodes到host numa nodes
ccording to this patch set, we are able to set guest nodes memory policy like following: -numa node,nodeid=0,cpus=0, \ -numa mem,size=1024M,policy=membind,host-nodes=0-1 \ -numa node,nodeid=1,cpus=1 \ -numa mem,size=1024M,policy=interleave,host-nodes=1 This supports "policy={default|membind|interleave|preferred},relative=true,host-nodes=N-N" like format.
3. 通过qemu-nbd暴露内部快照的内容
之前用户读取内部快照内容,需要使用qemu-img进行转换。
4. audio patch
再次降低声音部分代码的频率,从而达到降低CPU占用率的目的。
从250HZ改为100HZ,CPU从13%降低到9%。
之前 研究过,qemu的audio部分之前的触发频率更高。频繁的虚拟机退出,导致CPU占用率偏高。
5. vhost/vhost-net支持用户空间backends
最终目的是支持Snabbswitch ethernet switch。
改patch引入了vhost-backend的概念。定义了vhost-kernel和vhost-user两种类型的后端。
6. RFC Common base for memory hotplug and NUMA
http://lists.gnu.org/archive/html/qemu-devel/2013-12/msg01984.html
7. pc: CPU hotplug support for Q35
在使用Q35的虚拟机上实现支持cpu hotplug。
8. block:add native support for NFS
支持直接访问NFS而不许要进行mount。
For example: qemu-img create -f qcow2 nfs://10.0.0.1/qemu-images/test.qcow2
9. tpm:Provide a software vTPM
提供了软件的TPM。使用该patch后,每个guest可以有自己的vTPM。
之前通过passthrough实现的TPM无法共享使用。
TPM:含有密码运算和存储部件的小系统。
提供存储/管理bios开机密码以及 硬盘密码,对系统登录/应用软件登录进行加密,加密硬盘的任意分区。
用法如下:
Following is a sample command line: qemu-img create -f qcow2 /home/qemu/images/nvram.qcow2 500K qemu-system-x86_64 ... \ -drive file=/home/qemu/images/nvram.qcow2,if=none,id=nvram0-0-0,format=qcow2 \ -device tpm-tis,tpmdev=tpm-tpm0,id=tpm0 \ -tpmdev libtpms,id=tpm-tpm0,nvram=nvram0-0-0