RustFS 支持同步和近乎同步的复制,具体取决于架构选择和数据的变化率。在上述每种情况下,复制都必须尽可能接近严格一致(考虑到带宽注意事项和更改率)。
源存储桶和目标存储桶具有相同名称的能力。对于必须透明地故障转移到远程站点而不会造成任何中断的应用程序,这是必需的。
本机支持跨源和目标的自动对象锁定/保留复制。
近乎同步的复制,可在存储桶发生任何突变后立即更新对象。RustFS 遵循数据中心内的严格一致性和数据中心之间的最终一致性来保护数据。
用于推送复制失败事件的通知功能。应用程序可以订阅这些事件并提醒运营团队。
RustFS 建议在复制端点的两端使用相同的硬件。虽然类似的硬件可以运行,但引入异构硬件配置文件会带来复杂性并减慢问题识别速度。
带宽是使两个站点始终保持同步的重要因素。站点之间的最佳带宽要求由传入数据的速率决定。具体而言,如果带宽不足以处理峰值,则更改将排队到远程站点,并最终同步。
在带宽之后,延迟是设计主动-主动模型时最重要的考虑因素。延迟表示两个 RustFS 集群之间的往返时间 (RTT)。目标是在带宽施加的预算限制范围内将延迟降低到尽可能小的数字。RustFS 建议以太网链路和网络的 RTT 阈值不超过 20 毫秒,丢包率不超过 0.01%。
目前,RustFS 仅建议跨两个数据中心进行复制。可以跨多个数据中心进行复制,但是,所涉及的复杂性和所需的权衡使得这相当困难。
如果目标关闭,源将缓存更改,并在复制目标恢复后开始同步。达到完全同步可能会有一些延迟,具体取决于时间长度、更改次数、带宽和延迟。
支持不可变性。关键概念可以在这篇文章中找到。在主动-主动复制模式下,仅当对象进行版本控制时,才能保证不可变性。无法在源上禁用版本控制。如果目标上的版本控制暂停,RustFS 将开始复制失败。
在这些情况下,复制可能会失败。例如,如果您尝试在源存储桶上禁用版本控制,则会返回错误。您必须先删除复制配置,然后才能在源存储桶上禁用版本控制。此外,如果在目标存储桶上禁用版本控制,复制将失败。
必须在源和目标上启用对象锁定。有一种极端情况,即在设置存储桶复制后,可以删除并重新创建目标存储桶,但未启用对象锁定,复制可能会失败。如果两端未配置对象锁定设置,则可能会出现不一致的情况。在这种情况下,RustFS 将以静默方式失败。
您也可以通过以下方式与我们联系: hello@rustfs.com