我在 OpenIndiana 151a 托管的 NFS 共享上写入性能很差。我有 2 个 1 TB 镜像(Seagate Constellation 驱动器)、2 个 SSD 驱动器、1 个读取缓存和 1 个写入缓存。我的想法是,通过使用写入缓存,即使我的硬盘速度很慢,我也可以获得与 SSD 类似的性能。我的平均速度为 40 MB/s。我应该注意,我的两个 SSD 驱动器都是 SATA3,速度可达 500 MB/s。我感觉被骗了!我的设置如下:
- ESXi 5,NFS 数据存储,VMkernel 和 vSwitch 上的 MTU 设置为 9000
- VM1 OpenIndiana 托管数据存储,位于直接连接存储上。
- VM2 Windows XP 配备 2 个 10GB 硬盘、1 个系统驱动器、第 2 个测试驱动器,使用 HD tune pro,驻留在 NFS 数据存储上。
我正在忙着运行一系列 IOmeter 测试,完成后会发布结果。
我在这里没有看到宣传的 SATA3 速度,我是否最好使用 SSD 作为直接连接存储?换句话说,NFS 是这里的问题吗?
答案1
这完全取决于您测试的内容和方式。这是 40Mb/秒的读取速度还是写入速度?还是两者兼而有之?如果您的基准测试软件都是顺序读取或顺序写入,那么您很可能不会看到 SSD 缓存单元带来的好处。
您的虚拟交换机设置应如下所示。我使用的是 NexentaStor 而不是 OpenIndiana,但适用相同的原则。存储服务器应具有带有 VMkernel 端口的专用交换机。这是为了向 ESXi 主机提供 NFS。然后,您向 ESXi 系统提供数据存储并将虚拟机放置在其上。您不需要物理适配器,使用 VMXNET3 网络适配器,应该显示为 10GbE。
答案2
据我所知,ZIL 不是“写入缓存”,而更像是一个性能日志,因此您最多只能获得原始磁盘的速度。虽然 40MB/s 低于这个速度,但这就是“您是如何进行这些测试的”发挥作用的地方。
更正:有人告诉我我错了,ZIL 确实具有写入缓存的双重功能,但不确定这是否完全正确。
答案3
vSphere 会同步挂载所有 NFS 共享,这意味着所有写入都是同步完成的。如果您通过 iSCSI 挂载 LUN,则所有特定的同步写入都将同步,其余的写入将是异步的。
那么,回答关于 SSD 为 ZIL 的问题;对于连续写入的(同步)数据流,它将受限于磁盘(给定的 i/o 模式)的写入速度。ZIL 对于实现高随机 iops 确实比原始同步连续写入更有用。
在大多数情况下,顺序数据的数量并不像您可以处理的真正随机写入和读取的数量那么重要 - 特别是在虚拟化环境中,您可能有许多不同的“客户端”访问存储。如果您需要使用 iSCSI 而不是 NFS 来实现高吞吐量,请考虑异步写入。