【问题标题】:nodejs open nfs files by inode (or a the fastest way to reopen a file)nodejs 通过 inode 打开 nfs 文件(或重新打开文件的最快方式)
【发布时间】:2012-04-25 07:49:17
【问题描述】:

我目前正在编写一个缓存系统,它将序列化 (json) 数据保存在磁盘和内存中,以减少数据库上的 I/O 负载。

系统将通过在内存中保存最后 X 个访问的文件并从磁盘读取其他文件来工作。

我读到有一些系统可以通过 inode 打开文件来减少 nfs(我将来可能会使用)系统上的 I/O 负载。

我的问题是:

  1. 有没有办法通过nodejs中的inode打开nfs文件系统上的文件?如果没有,我需要做哪些功课才能做到这一点?
    2.用inode打开本地文件系统上的文件是绝对不可能的吗?
    3.如果实际上不可能,是否有更快的方法来重新打开文件,因为让操作系统一遍又一遍地统计文件似乎是不必要的重复?

【问题讨论】:

  • 我建议您在开始这次冒险之前先研究一下久经考验的方法,例如 memcached 或 redis 吗?两者都可以用作 LRU 缓存,这对您来说应该是完美的,因为我认为您将从数据库中重建数据?
  • 谢谢你莱纳斯! memcached 几乎正是我所计划的。如果密钥不在 memcached 中,我仍然认为我应该退回到 nfs 存储。所以我的部分问题仍然存在。

标签: node.js nfs


【解决方案1】:
  1. 不,没有用户可访问的方式通过 inode 打开文件,因为这样做在某些情况下会允许用户绕过文件系统 ACL。

  2. 是的。同样的原因。

  3. 大多数能胜任的 NFS 客户端,包括 Linux 内核,都会在本地缓存统计结果。

【讨论】:

  • 不想在这里拖钓只是想表明我的问题并不完全是疯子。这个大男孩显然是用一些内核黑客来做这个把戏。例如:perspectives.mvdirona.com/2008/06/30/…“他们扩展了 Linux 内核以允许通过 inode 编号而不是文件名打开 NFS 文件”。当我第一次发表我的帖子时,我不知道实现这一点需要内核破解。因此,除非有人知道我冷使用的被黑客入侵的 nfs 系统,否则我将在没有它的情况下生活 FTM。
猜你喜欢
  • 2016-07-05
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 2016-04-26
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
相关资源
最近更新 更多