MinIO 支持同步和近同步复制,具体取决于体系结构选择
以及数据的变化率。在上述每种情况下,复制必须尽可能接近严格一致(考虑到带宽注意事项和变化率)。
MinIO 建议在复制端点的两侧使用相同的硬件。 虽然类似的硬件会执行,但引入异构硬件配置文件会带来复杂性并减慢问题识别速度。
带宽是保持两个站点始终同步的重要因素。 站点之间的最佳带宽要求由传入数据的速率决定。 具体来说,如果带宽不足以处理峰值,则更改将排队到远程站点并最终同步。
除了带宽之外,延迟是设计主动-主动模型时最重要的考虑因素。 延迟表示两个 MinIO 集群之间的往返时间 (RTT)。 目标是在带宽施加的预算限制内将延迟降低到尽可能小的数字。 MinIO 建议以太网链路和网络的 RTT 阈值不超过 20 毫秒,丢包率不超过 0.01%。
目前,MinIO 只推荐跨两个数据中心进行复制。 可以跨多个数据中心进行复制,但是,所涉及的复杂性和所需的权衡使得这相当困难。
如果目标出现故障,源将缓存更改并在复制目标恢复后开始同步。 根据时间长度、更改次数、带宽和延迟,可能会有一些延迟才能达到完全同步。
支持不变性。 关键概念可以参考 在这篇文章中。 在主动-主动复制模式下,只有对象版本化才能保证不变性。 无法在源上禁用版本控制。 如果目标上的版本控制暂停,MinIO 将开始复制失败。
在这些情况下,复制可能会失败。 例如,如果您尝试在源存储桶上禁用版本控制,则会返回错误。 您必须先删除复制配置,然后才能对源存储桶禁用版本控制。 此外,如果您在目标存储桶上禁用版本控制,复制将失败。
必须在源和目标上启用对象锁定。 有一种极端情况,在设置存储桶复制后,可以删除目标存储桶并在未启用对象锁定的情况下重新创建,复制可能会失败。 如果未在两端配置对象锁定设置,则可能会出现不一致。 在这种情况下,MinIO 将默默地失败。