分布式图像存储/预算服务

我不确定在提供上传文件时如何提供容错解决scheme。

我有一台负载均衡器,两台服务器(webserver1,webserver2)作为节点,都运行Apache2,两个节点都可以访问数据库,而不是WAN。

networking服务器最终将被缩放,数据库将被分割。

一般文件复制

此时,我正在运行从webserver2到webserver1的预定rsync,webserver1是主服务器,谁的文件正在分发到webserver2。 目前只有两台服务器,尽pipe这是为了扩展。

共享图像

我的Web应用程序中有三个目录用于上传到webserver1和webserver2的用户生成文件(这些是rsync操作的例外)。

目前,我有3个NFS共享从webserver1提供,表示共享正在由webserver2挂载。

我对分布式体系结构相当陌生,但从我所看到的情况来看,NFS解决scheme导致了单点故障 – 我已经改变了负载平衡器上的权重,以确保webserver2接收更多stream量,所以webserver1上的负载不应该更高。

我没有更多的预算花在任何云解决scheme(如Amazon S3)上,所以我唯一的行动就是提供免费的软件解决scheme。

有没有可行的软件解决scheme? 我的最高优先级是删除单一故障点,同时将服务器负载降至最低。

在这种情况下,我喜欢使用专用的NFS服务器…关于单点故障可以通过某些devise决定来抵消…

  • 你想要保护什么? 组件失败? 服务器故障? networking中断?
  • 这个设置在哪里托pipe? 数据中心设施? 办公室? 云端?
  • 预算是否有限制?

如果基础架构是虚拟化的,我将有一对虚拟负载平衡器(或单个硬件LB),一层Web服务器,数据库(可能)和后端存储。 该存储可以由虚拟NFS服务器,独立的物理盒子,NAS等提供。我很less使用集群文件系统。

这似乎不像你在这个应该是一个问题的规模。 我明白规划更大规模的动机,但是你所做的事情并没有什么错。 尽pipeNFS导出不应该对服务器性能产生如此负面的影响…

在性能和耐用性方面复制隔离文件系统之间的数据有很多需要说的。 你目前的设置究竟有什么错误?

我会远离共享文件系统(GFS2,OCFS等)他们不给很好的performance。 像Lustre或AFS这样的复制文件系统在这种angular色的性能和function之间提供了合理的折衷。

是否有一个原因,你想存储在一个文件系统的数据? 一个NoSQL数据库集群可能会简单得多。 当然,也有HDFS 。

master / master中的DRBD将覆盖您的大部分需求,它没有很高的开销,并且任何一个服务器都可以写或读,并且在没有另一个的情况下运行。

工作起来有点复杂,但如果不是所有的要求,这个解决scheme都是适合的。

这听起来像你正在寻找像MogileFS的东西。 这是基于webdav的分布式复制文件共享。 请注意,这不符合POSIX标准,您的应用程序需要“模糊认识”。 它的目的是为了分享一个网站的图像。