在多台计算机之间共享存储的最佳方式

我需要在Linux环境中为集群中的多个应用程序服务器节点提供共享存储。 换句话说,我的集群中的每个节点都需要能够将文件读/写到同一个网段中的一个集中的地方(NAS设备)。 请注意,这些文件是二进制文件,不需要进行版本控制(cvs将会过度使用),而不是要存储在数据库中 – 只能在文件系统中存储。

我已经缩小了我的select这些:

  1. 使用ftp / ftps / ftpfs将文件传输到NAS。 每个节点都可以访问一个ftp客户端,并且必须设置一个ftp服务器
  2. 在NAS中共享目录,在每个节点中引用它,并使用NFS / SMB等协议来执行文件的实际传输

这种情况最好的做法是什么? 什么是最快的select? 任何需要注意的地方或问题(可用性,并发性,安全性,性能,所需configuration等) 任何build议,您可以提供将不胜感激。

您需要一个中心位置来保存文件,以便多个工作站可以使用该系统中的文件。

你会build立一个服务器来保存文件,然后分享出来。

如果您在文件服务器上使用Linux,则可以使用NFS,也可以设置SAMBA,并从中创build和装载文件共享。

或者您可以设置sshfs并使用FUSE来挂载远程目录。

除了您select适合您的环境的存储连接选项之外,没有其他的最佳做法; 如果这是所有的Linux然后NFS将正常工作。 或者运行NFS和SAMBA。 没有说你不能同时运行。 而且你必须考虑你如何进行身份validation以及你需要什么样的安全措施。

并发性问题? 那么,你怎么使用这些文件? 应用程序是否会尝试从另一台服务器上同时读取和写入应用程序? 这不是文件共享协议的问题,而是软件问题的架构。

安全? 你需要什么样的安全性? NTFS的发现ACL的? encryption端到端的电线? 标准的POSIX? 你不说你需要什么。

性能? 他们都应该工作得很好,好吧,你不要说。 你需要什么样的performance? 你将运行什么样的磁盘子系统? 千兆以太网? 具有大caching的专用RAID控制器? 你在组网吗? 什么样的网卡? 即使是一个蹩脚的磁盘子系统也能工作,如果你不推动这个子系统,一个快速磁盘子系统可能会在25个服务器同时传输数据的同时窒息。

你的意思是什么? 这又是一个架构问题,取决于你的应用程序。 如果可以将存储集群,则可以获得更多可用性。 如果你只是想着RAID,那么直到你的电源死亡。 除非你有双重供应。 那么它死了,因为你有他们在同一UPS。 或者主板失败。 或者你的一个RAID控制器死亡。 你需要多less冗余? 而在什么预算?

为了回答这个问题,设置SAMBA和NFS,看看哪一个可以最容易地安装到你的工作站上去。

我认为最常见的做法是build立一个简单的文件共享。 对于小型企业,Windows 2003和2008是非常普遍的。 如果您熟悉Linux,可以尝试像Zentyal或Clearos一样使用gui界面通过SMB / NFS共享。 您也可以安装任何Linux发行版,并按照发行版的文档来设置各种支持的文件共享方法。

我会用sshfs来使用openssh服务器 。 您可以在所有服务器上使用单个命令对其进行设置,然后进行自动挂载,并使用密钥进行身份validation。 但是,如果用户正在编辑相同的文件,则会遇到版本控制问题。