IaaS 对象存储(S3/Azure Blobs)上的重复数据删除和成本节省

IaaS 对象存储(S3/Azure Blobs)上的重复数据删除和成本节省

是否有任何商业 IaaS 对象存储(S3、Azure Blob 等)可以避免因存储重复数据(相同文件或文件的部分内容)而多次收费?例如,我们有一个 15 TB 的推文数据集,我们团队中的一个人想要复制一份,然后对数据进行一些修改。我们会为 30 TB 的存储付费吗?

有没有好的方法可以在这些大型对象存储中找到重复的块,或者就地压缩大型数据集?我们可以用某种符号链接替换重复的文件吗?

答案1

存储提供商(至少是 AWS、Google 和 Microsoft)不对 blob 对象进行重复数据删除和/或压缩。这会导致不可预测的延迟、抖动增加和 RAM 消耗增加。并不是说在这种情况下不可能实施良好的计费策略,而且跨多个服务器/可用区域删除重复对象是一个巨大的技术挑战。

您可以在自己的终端上实现压缩。重复数据删除比较困难,因为您需要维护带有哈希表等的中间件。

另一种方法可能是使用虚拟文件系统在您的 EC2 实例上,而不是 S3 上。您可以附加 EBS 卷并将其挂载为 ZFS 卷,ZFS 具有内置的压缩​​和重复数据删除功能。如果您需要在多个 EC2 实例上使用这些文件/对象,您可以随时将 ZFS 导出和导入为 NFS 共享。再一次,重复数据删除需要额外的 RAM

答案2

您可以使用现场重复数据删除,这可以通过一些备份解决方案来执行,Veeam例如https://www.veeam.com/hyper-v-vmware-backup-deduplication-compression.html并将重复数据删除后的数据推送到云端,从而节省网络带宽。当及时恢复至关重要时,此功能非常有用。

目前,我们的生产环境中运行着大量 VM,并且使用了 Veeam 和 Starwind,所以我认为情况类似。还测试了其他解决方案,例如 MS DPM 和 Backup Exec,但 Veeam 的效果更好。

相关内容