如何QoS NFS?

我有以下基于NFS的存储设置: 在这里输入图像说明

计算节点是Linux。 NFS服务器是Solaris。

一个不太重要的用户在计算节点的一个子集上运行一堆读取密集型作业。 结果,整个计算节点组变得非常慢( ls块30秒)。 我能够追踪到专用NFS服务器达到SAN读取吞吐量的限制。

如何实现服务质量(QoS),限制节点,进程或用户的NFS带宽?

我不确定NFS能够从集群中“强化”到什么程度的DDOS。 如果你确实需要这个,那么使用其他的东西来访问持久化的存储将会更容易。

给定你的设置,我会build议在集群引擎级别上执行“QoS”。

configuration一个资源“io_heavy”限于说“10”,并让你的用户请求“1”这个IO重任务。 这样,不超过10个I / O约束的工作将同时运行。 您的NFS不会崩溃,并且群集的其余部分对于CPU限制任务将保持空闲状态。

您还应该添加临时磁盘到节点。 这些可以保存暂时的数据,而不需要去NFS。 这也有助于提供这里常用的“参考数据”。

我假设你的Solaris NFS服务器使用ZFS。 用尽可能多的内存填充服务器。 将SSD添加到要用作ZFScaching磁盘的服务器。 这两件事都会减lessSAN上的stream量。

QOS通常用于优先考虑某些types的networkingstream。 你不能隔离和限制networking交换机上的用户端口吗? 或者把他/她放在一个单独的VLAN中? 或者将端口的数据速率限制为100MBps?

除此之外,我不知道有任何NFS带宽限制的用户名或MAC地址。 也许你的NFS服务器有select,以确保更分散的方式提供文件请求?

开箱即用:将读取密集型文件移近用户,并运行备份/ rsync进程将更新后的数据写回NAS?

这些读取密集型的工作是什么?