【本文不讨论的】
想获得最高的虚拟机硬盘效率,是可以直通sata控制器的,这样阵列、休眠、smart信息等特性都可以直接使用。其次,直通硬盘也不错,单盘的效率基本接近原生。
这两种直通在ESXi、PVE、unRaid下性能都很好,虚拟机做nas强烈推荐这两种方式。但本文不会讨论这块,因为没什么研究空间了。。。
【本文讨论的】
如果你无法使用直通(比如说硬盘数量不够),那就必须创建虚拟磁盘了。如何创建一个适合自己的虚拟磁盘?尤其是虚拟机玩NAS或Windows等系统,占用磁盘空间大且有一定性能需求,该如何权衡?
本文只是想给出一些我尝试过的方法和结论,希望能够提供帮助。
【大致想法】
首先最简单的方法肯定是虚拟机下直接创建虚拟磁盘,那么虚拟磁盘的硬盘控制器、精简置备、置零这些选项对磁盘的性能到底有多大影响?精力有限,本文只研究了ESXi,其它虚拟系统情形大体相似。
如果你的虚拟机中有一个NAS(比如说群晖),你可能已经把最大最快的硬盘直通给它了。其它次要的系统可否从NAS中分一部分硬盘空间使用,性能如何?是否实用?
【测试的环境】
主机(ESXi系统):
CPU:E3-1265L v3 主硬盘:WDC WD5000BPVT(读取速度72MB/s)
群晖(虚拟机):
直通了sata控制器,两块4T酷狼组raid0,虚拟万兆网卡
Win10(虚拟机):
除系统盘外,对下面1、2、3、4情况各自建立了2G的虚拟磁盘,虚拟万兆网卡
【待测试的方案】
- ESXi下的SCSI厚置备、置零硬盘
- ESXi下的SATA厚置备、置零硬盘
- ESXi下的SATA厚置备、延迟置零硬盘
- ESXi下的SATA精简置备硬盘
- 群晖提供的iSCSI磁盘
- 群晖提供的SMB共享
- 群晖提供的NFS共享
接下来,我们按照解决疑问的方式一步步给出测试数据。
【SCSI有必要吗?】(方案1、2对比)
ESXi创建Windows虚拟机,会默认采用SCSI控制器。而我们一般家用主机,基本都是用SATA控制器的,SCSI一般只会在服务器上见到。是不是SCSI比SATA更高级呢?
理论上,SCSI会占用较少的CPU、有更好的扩展性,但硬件要求较高,所以家用很少用到。我们还是看看实测数据: