我在HPCloud的6台服务器上运行了一个SaaS应用程序,该程序创build大量数据(GB / TB)。 用户通过RESTful api与应用程序交谈,通过链接回到我们的CDN,他们可以下载他们的文件。
我的问题:
从我的研究和上一个关于SF的问题来看,将所有生成的数据存储在某种集中式存储(例如,通过NAS / SAN)将是最好的解决scheme,所以我的CDN总是知道文件在哪里服务 – 这也将使未来能够更好地扩展。 由于我的云类似于Rackspace,我有什么select呢?
对于我自己的参考,像mediafire这样的公司如何同时存储数据的TB / PB和LB的下载? 他们只有大量的服务器连接到相同的NAS / SAN?
Ablue要求的数据:
你正在创build文件由http服务? 是的,这些文件将主要通过HTTP下载
你需要块级存储吗? 目前不是,但将来可能会是这样
你想要多less储存? 目前我可以逃脱〜300GB,但我需要能够在未来扩大
你想要什么样的访问速度? 写得越快越好,但阅读时间并不重要。 这里最重要的是,使用像S3这样的系统会增加延迟,因为复制数据需要多长时间
你有预算吗? 是/否…对于我所在的云,我基本上可以增加3-5台服务器,每台服务器大约有120GB存储空间
1)在云上,除非你想要一个类似S3的系统,否则没有那么多便宜的选项。 使用集中式系统,在开始遇到问题之前,您只能进行扩展(请参阅扩展与扩展),所以如果您要自行开发解决scheme,最好从分布式系统开始,让您添加并根据需要删除服务器,而不仅仅是获得一个大的SAN,并继续添加磁盘。
2)他们几乎肯定会使用专用硬件,位于同一地点或专用数据中心。 如果你去一个存储提供商,并说“嗨,我想买2000个磁盘”,他们会给你一些相当不错的折扣,如果你知道你在做什么。 存储100TB数据总是比存储100GB便宜(每GB),存储越便宜。
看看像HFS或Riak这样的分布式数据存储。 从未使用过HFS,但是我们在4个节点上使用Riak集群,存储容量为10TB。 RIAK有一个HTTP API,所以通过一点点仔细的configuration,你可以把你的CDN指向你的Riak集群。 或者只是使用S3,RackSpace云文件,谷歌存储等,让别人担心你。 由于现有的存储提供商已经在多TB / PB的存储上,所以他们最有可能比自己能够推出更便宜的存储提供商。
这就是说, BackBlaze(在线备份公司)“开源”的存储devise“豆荚”存储荒谬的数据量非常便宜 。 与备份的本质一样,它们更适合“一次写入,多年没有做任何事情”,但仍然是一个有趣的阅读。 你也可以看看像BroadBerry存储服务器 ,他们的高端型号有36个热插拔驱动器托架,但没有驱动器的成本+5000美元(用2TB企业7200RPM驱动器填充你看起来更像是25000美元,或与便宜的硬盘$ 15k,完全取决于你的工作量)。 如果我没有记错的话, OVH会提供一些“备份”服务器,每个服务器的容量大约为200英镑/月。
您还需要考虑分层存储。 基本上,这意味着您根据自己需要将数据分成“层”。 如果您的一些对象必须不惜一切代价保留,并且需要快速访问,那么它们应该位于顶层,或者带有快速,可靠的磁盘的“黄金”层存储上,并装载在服务器上以处理负载。 这可能是你将放在一个高端的SAN,有很多可爱的SAS甚至SSD磁盘的东西。 如果你有一些可重新生成的对象,并且不需要快速访问(比如说,通常在CDN边缘上caching的图像的缩略图),那么你可以将它们放在“silverlight”层存储上; 更便宜的磁盘,在较慢的服务器上。 那么你有备份,而你可能永远不需要他们,他们可能不需要立即可用,你想尽可能长时间,尽可能便宜。 你可以把它们放在“青铜”的存储上,比如磁带。
我所描述的存储级别仅仅是一种虚构的情况,完全有可能拥有50层的存储空间,无论您想要什么,都可以打电话给他们。 可能是因为即使是最低级别的存储也需要超高速访问,这一切都取决于您的使用情况。
知道需要访问哪些文件以及如何访问是非常重要的。
当人们想要以低延迟和高速存储大量数据时,通常使用SAN。 光纤通道通常用于实现最佳延迟,但是iSCSI和NFS的性能也非常好。 很显然,无法将光纤连接到VPS,而iSCSI和NFS在隔离(单独的NIC和VLAN)和最大的MTU可以处理时performance最佳,因此VPS不适用于此。
在这种情况下,您需要共同布置自己的物理服务器。
这一切都假设这是您需要访问的文件的要求,并假设您不只是从您的提供商购买更多的存储。
在开始讨论任何细节之前,你至less需要解决以上几点。
编辑(回答问题编辑):
你提到了负载均衡。 如果您正在使用自己的硬件,则可能需要使用某种ACTIVE:ACTIVE HA群集。
根据您的标准,Sambuild议使用RAIK是一个非常好的主意。
我个人认为,如果你要投资硬件和托pipe,你应该有一个坚实的计划,你想要或希望成长; 这应该有助于防止您投资于错误的领域。
在游戏的这个阶段,你可能想要跟随Sam的build议,另外一个想法可能是购买一些位于你希望使用的地方的VPS,每个VPS都有你想要的存储空间(300GB应该相当便宜)。 然后复制它们之间的数据。 您可以使用DNS负载平衡使用循环或更复杂的,如果你喜欢(通过地理位置或其他)。 对于VPS来说,扩展存储非常容易。
在这个阶段运行自己的硬件将是非常昂贵的,没有什么好处。 当/如果您需要tb / pb存储时,可能是时候投资硬件了,在这种情况下,您只需购买硬件即可提供目前托pipe的任何东西。