RustFS 支持同步和近乎同步的复制,具体取决于架构选择和数据的变化率。在上述每种情况下,复制都必须尽可能接近严格一致(考虑到带宽注意事项和更改率)。
在最基本的层面上,任何设计都需要考虑基础设施、带宽、延迟、
弹性和规模。让我们按顺序检查它们:
如果目标关闭,源将缓存更改,并在复制目标恢复后开始同步。达到完全同步可能会有一些延迟,具体取决于时间长度、更改次数、带宽和延迟。
支持不可变性。关键概念可以在这篇文章中找到。在主动-主动复制模式下,仅当对象进行版本控制时,才能保证不可变性。无法在源上禁用版本控制。如果目标上的版本控制暂停,RustFS 将开始复制失败。
在这些情况下,复制可能会失败。例如,如果您尝试在源存储桶上禁用版本控制,则会返回错误。您必须先删除复制配置,然后才能在源存储桶上禁用版本控制。此外,如果在目标存储桶上禁用版本控制,复制将失败。
必须在源和目标上启用对象锁定。有一种极端情况,即在设置存储桶复制后,可以删除并重新创建目标存储桶,但未启用对象锁定,复制可能会失败。如果两端未配置对象锁定设置,则可能会出现不一致的情况。在这种情况下,RustFS 将以静默方式失败。