我有一个包含用户上传图片的大型应用程序。存储空间每天增加约 1GB。
我需要以某种方式备份所有图片。每天备份所有图片可能会成为一个大问题(数量大、网络流量大等)。
备份此类数据的最佳方法是什么?首选哪种存储(FTP、S3、本地服务器等)?哪种备份策略最好?
答案1
几点建议:
首先,快照。任何备份操作(甚至增量备份,可能也是如此)都需要花费大量时间才能完成。除非您可以在备份过程中锁定存储,否则您可能会遇到数据不一致的问题。我建议您调查文件系统和系统拍摄快照的可能性。锁定存储,拍摄快照(应该非常非常快)并解锁存储。您的快照现在包含存储的一致副本,可以按照您需要的任何速度进行备份。在 Windows 中查找卷影副本、在 Linux 中查找 LVM 快照等。
第二,复制。同样,任何备份作业都可能占用存储中相当一部分的 IO 和 CPU 性能。要么您的主应用程序的性能会受到影响,要么您的备份将需要很长时间才能完成。如果您可以将存储系统持续复制到第二个系统,您将能够备份而不必担心影响您的实时生产系统。此副本还可能有助于防止停机(如果主存储发生故障,则切换到副本)。使用复制时,您可以在复制的系统中获取快照 - 只需在进行备份时暂停复制即可。
第三,一旦有了复制和快照,您只需要找到一种对带宽、存储和您的要求都有意义的备份方法。首先,弄清楚恢复时要回溯到多远。您是否只需要昨天的存储副本?8 小时前?您是否需要回溯并恢复上周的文件?上个月?去年?
完整复制存储需要多长时间?每日增量复制需要多长时间?这限制了您进行完整备份和增量备份的频率。如果您不从存储中删除数据,那么副本可能就足够了。
最后,如果您要移动大量数据,您可能正在使用 SAN。并签订服务合同。您的 SAN 可能内置了某些功能来处理备份,或者至少支持它的人应该会给您更具体的想法……
答案2
您想通过编程删除旧版本的资产吗?
如果是这样,您可以构建一种机制,根据特定参数归档旧图像。这些文件可能会被压缩到从机器中删除的档案中。旧版本可以标记为已归档,并参考它们将在磁盘/磁带等远程/物理存储位置以供以后检索。