在共享存储上使用虚拟磁盘,或者在guest虚拟机中公开共享存储

在工作中,我们有一个系统,依赖于我可以等同于一个平面文件数据库。 它似乎是每个数据库文件的class轮扫描。 当然,我们的限制是文件I / O。 这个应用程序数据库表页面驻留在同一个目录中。 虽然有些桌子经常被阅读,但其他人几乎没有触及正常的业务。

我们正在创build共享存储设置(早期阶段,不确定供应商或设置)。

我的问题是,将共享存储上的磁盘(如存储在ISCSI目标或NFS共享上的VMDK)或者连接到guest虚拟机中的共享存储上的性能会更好。

我的假设(根据我有限的知识)是后者,因为存储服务器可能只caching更常用的文件,而不是整个磁盘,而前者需要caching整个磁盘,可能会占用更多的caching,也许更多基于caching大小的caching交换。

首先,你对caching工作的假设是有缺陷的。 它们几乎总是caching在块级别,而不是文件级别。

在所有其他条件相同的情况下,从guest虚拟机内直接访问共享存储的速度将比通过虚拟磁盘更快。 但是,要知道设置上的实际性能差异的唯一方法是testing两种configuration并对其进行基准testing。

任何caching文件都会在客人级别发生。 caching(可能)块在存储头上发生。 一般来说,certificate偏离正常虚拟化策略的理由应该需要显着的好处。 这听起来像他们都是虚拟磁盘,所以除非你有显着的改善证据“覆盖”服务器的独特性,否则我会坚持使用虚拟磁盘。