我一直在研究使用分布式文件系统和我的专用服务器的想法,而不是使用Amazon S3,结果只是非常头痛!
我的项目有以下特点/要求:
用户文件存储在专用服务器中。每个文件存储在2台不同的机器中,位于不同的数据中心(彼此相距150-200英里)
我正在使用Amazon RDS来托管相关的mysql数据库(*)。它相当紧凑(仅保存ID /文件元数据)
文件/数据大约为50TB。当然,数据确实会发生变化,并且肯定会随着时间的推移而增长
我的问题是:是否有一个良好的通用,分布式并行容错文件系统,具有以下特征:
稳定&合理快速(上传/下载)
相当容易设置&保持
处理数据存储,以便我 必须关心在需要时删除/添加新服务器(即通过编辑简单配置将新服务器添加到文件系统的服务器池中,或类似的东西)
我读过OpenStack,GlusterFS,MogileFS,XtreemFS等等......但是我读的越多,我就越困惑!
(*)是的,我意识到了矛盾。在成本方面,在RDS上托管数据库确实有意义。但是,与使用专用服务器相比,在亚马逊上存储(最多)50TB的用户文件是非常昂贵的(只要它足够好)。
PS。我的应用程序尚未生效,所以如果有人对我的情况有好的想法,我愿意接受建议。
编辑我不尝试制作S3克隆,我只需要使用现有的托管基础架构来构建小规模云解决方案,我的问题是关于找到合适的分布式文件系统来处理/自动化。
答案 0 :(得分:1)
管理这些服务器一年几个月不会超过一个人吗?这将花费一些$,然后你有自己托管数据的成本,然后你有额外的巨大成本,你正在构建的业务/系统不明显可扩展?此外,任何可能的投资者都将被一个复杂的本土数据托管系统拒之门外。您将如何确保与亚马逊同等的诚信/安全?您每年的最大节省成本约为30,000美元左右。
您可以通过执行重复数据删除存储系统来节省资金,您只需存储所有独特的数据块 - 另请参阅rsync。不知道你的数据多么冗余。
答案 1 :(得分:1)
答案 2 :(得分:1)
我们最近从昂贵的存储解决方案切换到开源Lizardfs,用于我们的分布式存储解决方案。一旦理解了基本概念,设置和扩展就非常简单。
查看https://docs.lizardfs.com/introduction.html#architecture以获取快速概览。但是现在忘记shadow master en meta loggers。您需要知道的是
master :调节流量(确保有足够的cpu)
chunkservers :实际存储数据。使用任何类型的现成硬件和一堆硬盘。
客户端:这只是简单的挂载点。如果你愿意,你可以得到一个巨大的50TB支架。主人将告诉客户端在哪里查找/存储文件。实际数据直接从客户端> chunkserver传回并返回。
您可以根据需要添加任意数量的块服务器,主服务器将自动尝试平衡它们之间的存储使用情况。添加存储是添加硬盘或添加服务器的问题。它们不一定是实际的裸机,但这可能是最便宜的。
蜥蜴翅有两个令人惊奇的功能,可以进行地理复制。
这些相同的目标也可用于进行地理复制。您可以通过相应地标记块服务器来定义您的数据必须存储在至少两个不同的位置。 (例如DC1和DC2)
设置它的便利性是我卖蜥蜴鱼的原因。我听说过Ceph非常好的事情,但是设置它是另一回事......
起初让我担心的是这项技术的成熟程度。因此,我花了很多时间研究如何使用它。 Orange Poland(一家大型电信提供商)是其中一个用户。 并且Cloudweavers/opennebula实际上围绕它构建了一个商家selling complete solutions。