esxi由于本身的特殊内核,非服务器专用网卡常常会因为网卡驱动问题导致性能较弱,所以我尝试在windows server 2012 DataCenter里测试共享存储的性能,看是否会有所提升。
服务器和客户端的网络环境为千兆有线,所有服务保持默认设置
这个图显示的是,esxi 5.1b上的windows 2012 server VM里安装了vmtools之后,用windows 2012的NFS服务器共享了一个目录,远程win8上的vmware Workstaion 9上跑了一个centos6.4 VM挂载这个NFS共享目录,获取里面数据的速度,可以看到windows server 内存做为缓存的影响下,小文件可以达到千兆网络满速的效果,大文件因为磁盘和协议以及源和目标都在虚拟机里,跑33MB/s
对比NFS协议,SMB协议因为是windows 2012 VM 到客户端 win8 实体机,达到50MB/s的速度
而反过来从客户端win8实体机到esxi里的windows 2012 VM,因为内存缓存效果,达到满速,缓存满了后,降低到esxi磁盘最大写入速度。
iSCSI共享暂时没有测试,因为网上这类资料较多,基本上是缺少内存缓存的情况下,比SMB和NFS都差,而且我这里esxi的磁盘物理速度较慢,无法达到网络最高速度。
在共享为SMB+NFS混合的情况下,windows server作为存储服务器以及Hyper-V平台,同样测试NFS和SMB的性能
windows server 2012 Hyper-V测试环境: Windows server 2012 datacenter 开启NFS和SMB共享,同时Hyper-V里跑centos
windows 2012到客户端win8,SMB满速不用说
NFS选用客户端win8 vmware WorkStation 9里的centos,挂载windows 2012里的NFS后,读写速度均保持在81MB/s ,windows 2012里的性能监控600-700Mbps切合实际。
SMB选用了两侧,先是win8 vmware WorkStation 9里的centos,挂载windows 2012里的SMB,读取速度满速,写入速度46MB/s。反过来,windows 2012 hyper-V里的centos 6.4挂载客户端win8里的SMB共享,读取速度50MB/s,写入速度40MB/s,略低。
结论:
因为windows 2012 server 改进了NFS至v4.1版本,同时windows server 2012和win8之间的SMB高效共享
esxi里跑windows server 2012 VM ,SMB性能可以达到实体windows共享性能,而NFS因为驱动问题,写入降至30MB/s
windows 2012 server实体环境,SMB和NFS共享都能达到极高的水平,只有在hyper-V里的linux获取远程SMB数据时因为smbfs协议兼容问题效率较低,但这种使用方法几乎不会出现。
所以windows 2012 server 完胜。
过去考虑ALL-IN-ONE,esxi上跑NAS VM这种方案,因为windows 2012 server的高效率SMB/NFS共享所击败,一扫过去Windows 2008时代NFS共享给Linux效率常常减半的阴霾。更别说windows 2012 驱动优势,尚可接受的Hyper-V效率和功能,以及底层NTFS格式存储比esxi VMFS好不少的兼容性和容错性。