ZFS / Solaris上的NFS IO优先级

我有一台Nexenta / ZFS NAS,用作小型VMware vSphere场的NFS后备存储。 目前我有9x1TB磁盘全部镜像(最后一个磁盘configuration为写入日志设备)。

磁盘性能对于我对NFS的需求非常好。 不过,我注意到的一件事是,如果我直接在NAS上执行任何IO操作,则VM性能会变慢。 一个例子是在同一个zpool中的两个不同的ZFS文件系统之间复制1TB的数据。

有没有什么好的方法可以确保NFS守护进程执行的IO请求优先于磁盘上的其他IO操作? 在一个理想的世界里,我会把我的虚拟机备份到一个完全独立的zpool上,这样它们就不会受到ZFS文件系统负载的影响。 不过,我想知道是否有一个单一的zpool做一个好方法。

Linux有ionice,所以如果我使用的话,如果我要以很低的IO优先级移动大量的数据,我可以用ionice作为前缀。 但是,我不认为它在Solaris内核上可用。

有什么build议么?

AFAIK,到ZFS所有的I / O都是I / O。 我的意思是,它不会区分您的本地操作和NFS要求ZFS执行的操作。

您可以使用调度类来以某种方式放慢您的用户级进程,即在本地复制所有这些数据。

顺便说一下,你的专用1TB磁盘写日志设备将不会帮助你,除非该特定磁盘比其他更快(例如,SATA 7200与SAS 15k)。 我们通常将SSD用于日志/caching设备,或者什么也不做。

之后添加更多RAM。 你可能要考虑添加更多的RAM。 在固态硬盘的L2ARC是伟大的,我有几个。 他们不需要被镜像。 ZIL必须被镜像(如果不是,那么它不会有游戏结束,并且有一些失败)。 你可能也想添加一些RAM。

德里克

除非你使用一些丑恶的pvdd混合物,否则你将无法控制你的I / O …但是这不值得。 另一张海报是正确的,你的第九个磁盘是无用的ZIL。 SSD或没有磁盘将会更好。 不过,它可能对L2arccaching很有用。

另见: http : //opensolaris.org/jive/thread.jspa?messageID=493112

你可以从另一个虚拟机运行你的IO重任务吗?

会有很多开销,是的,你仍然必须确保你不会超载你的NFS,但是这样所有的stream量都是平等对待的。