我需要以4种尺寸存储25M照片=总共100M文件,文件大小将在每个文件3Kb和200kb之间变化,开始时使用的存储大约为14-15TB.
我们的目标是让2-4服务器上的数据可用,并使用本地快速Web服务器(Nginx或lighthttpd)为它们提供服务,我们需要尽可能多的服务器req / sec.
我的计划是使用英特尔的2U Servercase和12x2TB(WD RE4)以及用于数据的Raid 6(或具有冗余的FS)和用于OS的2x60GB SSD,这是一个好方法吗?
现在:
我发现Adaptec 5805ZQ可以使用SSD SLC驱动器来缓存大多数使用过的文件,对它有什么建议吗?
我需要选择什么读缓存大小?
如果我计划拥有2-4个这样的服务器,那么冗余和负载平衡的最佳方法是什么?
群集和分布式FS之间关于我们的目标是什么?
鉴于我们正在讨论100 M文件,我相信我们可以放心地说数据集的某些部分将是“热门”(经常请求)并且大多数部件都是冷的.因此我们真的想要缓存.
概述如何在Amazon Web Services上完成此操作:
>第一层:亚马逊管理的Elastic Load Balancing和Amazon CloudWatch使用Nginx或Apache监控几个小型EC2实例.这些服务器只是带有静态配置文件的哑负载平衡器,因此Cloudwatch可以为我们监控它们,并在其中一个崩溃时自动生成新实例.
>从第一层:Consistent hasting based on request URL (filename)到一层缓存服务器.您希望基于文件名进行散列以确保每个文件不会缓存多次(降低缓存命中率),而是使用N个缓存服务器,每个服务器处理1 / N的地址空间.
>第二层:缓存服务器.您的缓存服务器是具有更多内存的EC2实例,并且安装了Squid或Varnish或Apache Traffic Server缓存.
>从第二层:普通的旧HTTP到Amazon S3文件存储.
由于此设置松散耦合,因此水平缩放很容易(因为缩放问题会发生).
速度有多快将取决于热数据和冷数据之间的比率.如果你的工作量大多很热,那么从2个小负载均衡器EC2和2个高内存缓存EC2实例看到远高于10.000 req / s我就不会感到惊讶.