我们的静态Web服务器的现状:
(*)只有我们的内部应用程序通过ftp写入两台服务器。 如果其中一个失败,整个操作失败=>当其中一个服务器closures时上传不起作用。 但是,向Web客户端提供静态内容仍然有效。
我们已经达到了磁盘容量的50%,我们开始寻找更好的解决scheme。 因为我们不需要标准的posix调用,所以我正考虑迁移到对象存储。
我发现OpenStack Swift非常有名,可能会有用。 我害怕的是:
另一个问题是更具体一点。 我们希望为用户提供通过一些上传表单(例如eshop中的图片产品)上传内容的能力。 所以问题是 – 是否有任何直接上传进度条的方式,…? 或者我们必须把它上传到没有处理任何静态内容(=不在git中的内容)的标准Web服务器,然后将其上传到对象存储。
随意张贴您的意见,甚至更好的最佳做法。
还有一件重要的事情 – 我们不想使用任何CDN提供商。
更新#1:
好了朋友们。 还有一些我发现的技术:
估计您的存储上的实际负载将非常有用。
使用提供的参数进行原始计算可以获得大约10KGets / sec(4Gbps / 50KB)。 但是它没有考虑到cachingfunction。
我想SWIFT设置能够承担这个负载需要大量的投资。 我们的同事试图使用SWIFT来存储需要SWIFT的数千IOPS性能的特殊用途数据库块。 但是我没有听说他们取得了很好的成绩。 最后我知道它还是试验台。 另外,我没有发现其他人报告的很好的结果。
我同意你的理由,即减lessPOSIX需求的共享存储当然是有益的。 但SWIFT是在高层实施的,这为操作带来了巨大的开销。 另外它有一个相当复杂的架构。 所以,我不确定SWIFT是否适合于IOPS负载较重的小型安装。
另外,考虑到SWIFT的使用使得我们可以考虑使用经典的本地文件系统从“盒子”中获得的RAMcaching层的实现。
最后的SWIFT冗余是通过全面的数据复制来实现的。 因此,您的SSD空间效率将提供RAID5(4 + 1)的40%左右。
我发现经典的方法更具吸引力:专用的存储盒,冗余RAID控制器和集群文件系统GFS / OCFS2就可以了。