MinIO 根據架構選擇支援同步和近乎同步的複寫
以及資料的變更率。在這些情況下,至關重要的是,複寫應盡可能接近嚴格一致(考慮到頻寬考量和變更率)。
在最基本的層面上,任何設計都需要考慮基礎架構、頻寬、延遲、
彈性和規模。讓我們依序檢查它們
MinIO 建議在複寫端點的兩側使用相同的硬體。雖然相似的硬體可以運作,但引入異質 HW 設定檔會增加複雜性並減慢問題識別速度。
頻寬是使兩個站點始終保持同步的重要因素。站點之間的最佳頻寬要求取決於傳入資料的速率。具體來說,如果頻寬不足以處理尖峰,則變更將排隊到遠端站點,並最終同步。
在頻寬之後,延遲是設計主動式-主動式模型時最重要的考量。延遲表示兩個 MinIO 叢集之間的往返時間 (RTT)。目標是在頻寬所施加的預算限制內將延遲降至最小。MinIO 建議乙太網路連結和網路的 RTT 閾值不超過 20 毫秒,且封包遺失不超過 0.01%。
目前,MinIO 僅建議跨兩個資料中心進行複寫。可以跨多個資料中心進行複寫,但是,所涉及的複雜性和所需的權衡使這相當困難。
MinIO 在每個資料中心都支援非常大型的部署,無論是來源還是目標,
上面概述的考量將決定規模。
如果目標關閉,來源將快取變更,並在複寫目標恢復時開始同步。根據時間長度、變更次數、頻寬和延遲,可能會有一定的延遲才能達到完全同步。
支援不可變性。主要概念可以在 此文章 中找到。在主動式-主動式複寫模式下,僅當物件版本化時才保證不可變性。無法在來源上停用版本控制。如果在目標上暫停版本控制,MinIO 將開始複寫失敗。
在這些情況下,複寫可能會失敗。例如,如果您嘗試在來源儲存桶上停用版本控制,則會傳回錯誤。您必須先移除複寫設定,才能在來源儲存桶上停用版本控制。此外,如果您在目標儲存桶上停用版本控制,則複寫會失敗。
必須在來源和目標上都啟用物件鎖定。在一個角落案例中,在設定儲存桶複寫後,可以刪除目標儲存桶並重新建立,而未啟用物件鎖定,複寫可能會失敗。如果未在兩端設定物件鎖定設定,則可能會出現不一致的情況。在這種情況下,MinIO 將靜默失敗。