对于一个实际的项目,我必须build立一个高可用的存储服务器,可以存储和发布(http)1.5亿张7种尺寸的照片,总计10亿5000万个文件。 对于每张照片,我们都需要总共200 KB的空间来存储它们共计28 TB的7种尺寸。
其实我有两个服务器(2个E5620,12GB内存,Raid控制器1GB NVcaching,2个160GB的磁盘操作系统),都有一个存储arrays(DAS)与12x3TB SAS磁盘。
我不确定我的计划设置是否是最好的解决scheme:
操作系统:RHEL 6
磁盘arrays:Raid 6,ext4 / rsync或gfs2
HTTP服务器:Apache Traffic Server 3或nginx
通过这种方式,服务器存储和发布照片。
对我有什么build议? 我可以根据需要添加更多的服务器。 什么文件系统是正确的路要走? Raid 6好吗?
编辑:误读存储要求!
我会使用至less2 + K + N服务器。
keepalived ,运行在纯故障转移(或任何漂浮你的船) – 我猜测,1GigE连接可用,并可以处理大量简单的GET请求,如果您使用直接返回您的IPVS组态 开放性问题(以及封面问题) :(不知道你的需求是否清楚)
在任何情况下,我都会远离涉及同步文件的解决scheme,因为它听起来像是希望能够将文件放置在某处并立即可用。 只有在服务器上放置15分钟的文件才是最佳select,而且在大多数情况下会花费实实在在的成本。
注意我假设你有一个备份系统,将采取28TB,如果不扔在另一个存储系统与所需的冗余来处理最坏的情况下select。 join一些非现场备份来处理如果你忘记了一些最糟糕的情况会发生什么
毕竟听起来不太复杂。 有趣的问题是: 你的pipe理层是否愿意花钱?
为什么不存储一个大文件并让服务器将它们转换为所需的大小,然后将它们存储在caching中? 考虑同时运行多个前端服务器(通过负载平衡器)为请求提供服务,然后可能使用NAS或其他几台服务器来提供静态内容。 您需要的前端数量取决于您将获得多lessstream量(YouTube容量或仅存储偶尔访问的内容)。