在多台服务器上安全存储数据的最佳方法?

我需要在多台服务器上存储100多TB数据,所以我明白分布式文件系统是可能的。 我也需要这个系统是错误的。

所以,如果一台服务器停机,我不希望数据因此而死亡。 我也想用最有效率的方式做到这一点。

我喜欢RAID5如何工作。 我可以在几台服务器之间构build一个类似于RAID5的系统吗?或者,在几台服务器之间是否存在与RAID5相同的文件系统?

这听起来像你的要求是非常不切实际的。

首先,100TB的数据是很多的。 你真的需要所有这一切可以在同一时间? 如果是这样,你需要看的不仅仅是在多台服务器上传播。 要考虑到networking和访问的考虑和性能限制。 如果您确实需要这么多的在线数据,那么您将拥有大量的同时访问权限。 你的服务器是否能够完成所有这些IOPS的任务? 那么存在备份的问题……要备份超过100 TB的数据,就需要一个庞大的备份系统,需要多个磁带库和/或D2D备份系统。 你问这个问题的方式,使我绝对有信心,你没有考虑到这一点,你需要。

build立这么多的数据是一个项目中的几个项目(或者一个非常大的项目,取决于你的公司是如何做的)。请不要采取这种错误的方式,但是你显然不能胜任这个任务。 事实上,世界上只有极less数人自己决定接受这样的任务,他们中没有一个会对RAID5发表评论,并想知道如何在多台服务器或文件系统上进行传播事情。

更重要的是,没有空间高效的容错方式来分发大数据集。 在基本层面上,为了容错而牺牲空间效率,因为如果其中一个分布式节点出现故障,继续访问其所保存的数据的唯一方法是以某种forms再次复制或复制该数据。 因此,您可以对数据进行容错访问,也可以高效地使用可用磁盘空间,而不是同时使用两者。 要拥有超过100 TB数据的基本容错存储,至less需要两倍(200+ TB)以上的磁盘空间。

在一个相关的说明/上面的切线,RAID5是不是魔术。 它通过计算奇偶校验位来实现冗余。 这样可以节省空间,而且可以节省计算时间。 作为一种容错方法,在大数据集上也不是一个好主意,因为在某个时候几乎肯定会遇到一个比特级的错误,从而消除了容错性,而且计算量非常大。 DAYS可能需要重build大型RADI5arrays上的单个故障磁盘。 你认为需要做多更复杂的平价计算,比如从一个失败的节点来的20TB的数据呢?

例如GlusterFS可以做到这一点。

但是你可以在这里find许多其他的文件系统: http : //en.wikipedia.org/wiki/List_of_file_systems#Distributed_fault-tolerant_file_systems

看看MooseFS ,我们在这里用了3年的105TB,并且完美的工作。