您能将服务器 RAM 用于 NAS 缓存吗?

您能将服务器 RAM 用于 NAS 缓存吗?

我有一个 4 CPU 16GB RAM 系统,配有 Areca 1230 RAID 卡和 6 个 HD,采用 RAID 0+1 配置,并带有 1 个热备用。

系统有 2 个板载 1Gpbs 网卡

我想将该系统变成 NAS。

不过,对于 NAS 来说 16GB RAM 似乎有点浪费。

有没有什么方法可以将大部分额外的 RAM 转换为缓存,或者将某种 RAMDRIVE 转换为一些额外的快速交换空间?

主机控制器使用 Ubuntu。

哪种方法最可靠且设置相对简单?

如果我使用 NAS 的系统 RAM 建立某种缓存,是否会看到性能的明显改善?

答案1

这取决于提供 NAS 功能的服务。Samba?NFS?以上所有?从根本上讲,Linux 将使用所有可用的未分配内存作为文件缓存。默认情况下,该内存量将通过 Linux 的正常缓存机制使用。特别是如果使用 64 位内核。

对于该问题来说,16GB 的 RAM 已经足够了。但是,它也可以满足您的需要。这完全取决于在任何给定时间您的数据有多少处于活动状态。如果您的活动/打开文件的“工作集”超过 12GB,那么 16GB 的 RAM 就非常合适。理想情况下,您希望所有打开的文件都能够放入服务器缓存中,以提供最佳性能。具体到什么级别取决于您的环境,因此没有固定的答案。

将所有数据放入 RAM 中是件好事,原因有很多,但其中之一就是为了写入。它允许服务器进行 I/O 重新排序,以最大限度地减少 HD 延迟,RAID 卡也可以做到这一点。

答案2

Linux 将默认使用未分配的 RAM 作为缓存...但您的场景立即在我脑海中引发了两个问题:

  • 网络可能会成为瓶颈
  • 当服务器重新启动时,缓存会发生什么情况?意外情况如何?写入如何提交到磁盘?

您当然可以设置 ramfs 以通过网络使用,但您确实需要确保将其刷新到更永久的存储中。如果您的数据集是只读的(或者只是偶尔写入),那么这可能很完美。但对于用户数据或一般文件共享 - 哎呀!

我不知道您的具体环境是什么样的,但如果服务器容量过剩,虚拟化服务器可能会更好。另一个游戏/验证/测试场地通常很受欢迎。

相关内容