最近有些应用需要高iops,尝试看看能不能让虚拟机直接跑在宿主机的内存中,成功了;


整个过程记录如下:





首先想到的是使用tmpfs

创建了一个8G的tmpfs文件系统

健步如飞--让虚拟机完全跑在宿主机内存中_第1张图片

然后挂载到给虚拟机

健步如飞--让虚拟机完全跑在宿主机内存中_第2张图片

但是发现不能启动

健步如飞--让虚拟机完全跑在宿主机内存中_第3张图片

应该是kvm不支持tmpfs这样的文件系统

然后尝试用ramdisk方式,修改grub.conf,让ramdisk大小到8G


clip_p_w_picpath008

重启后可以用fdisk 看到

健步如飞--让虚拟机完全跑在宿主机内存中_第4张图片

还可以格式化文件系统

健步如飞--让虚拟机完全跑在宿主机内存中_第5张图片

直接以裸盘的方式挂载给虚拟机

开机,启动了

健步如飞--让虚拟机完全跑在宿主机内存中_第6张图片

安装系统

健步如飞--让虚拟机完全跑在宿主机内存中_第7张图片

用fio测试了下

fio --filename=/test -direct=1 -rw=randwrite -bs=4k -size=1G -numjobs=64 -runtime=300 -group_reporting -name=test-rand-write

健步如飞--让虚拟机完全跑在宿主机内存中_第8张图片

可以到5000的iops

另外将ram1挂载给系统,作为第二硬盘

健步如飞--让虚拟机完全跑在宿主机内存中_第9张图片

测试了下,2万iops,比ssd不差什么!


健步如飞--让虚拟机完全跑在宿主机内存中_第10张图片



如果在内存中跑虚拟机,优缺点如下:

优点:磁盘io非常快

缺点:断电后虚拟机就消失了,如果要使用这种方式,需要考虑和数据备份和恢复方案。


欢迎加我微信(ID:xiaolikvm)一起交流。欢迎加入云技术社区KVM/QEMU技术交流QQ,请加QQ:502207183,注明姓名,城市,及要加入KVM群。