最近有些应用需要高iops,尝试看看能不能让虚拟机直接跑在宿主机的内存中,成功了;
整个过程记录如下:
首先想到的是使用tmpfs
创建了一个8G的tmpfs文件系统
然后挂载到给虚拟机
但是发现不能启动
应该是kvm不支持tmpfs这样的文件系统
然后尝试用ramdisk方式,修改grub.conf,让ramdisk大小到8G
重启后可以用fdisk 看到
还可以格式化文件系统
直接以裸盘的方式挂载给虚拟机
开机,启动了
安装系统
用fio测试了下
fio --filename=/test -direct=1 -rw=randwrite -bs=4k -size=1G -numjobs=64 -runtime=300 -group_reporting -name=test-rand-write
可以到5000的iops
另外将ram1挂载给系统,作为第二硬盘
测试了下,2万iops,比ssd不差什么!
如果在内存中跑虚拟机,优缺点如下:
优点:磁盘io非常快
缺点:断电后虚拟机就消失了,如果要使用这种方式,需要考虑和数据备份和恢复方案。