一致性控管
一致性控制功能可根據應用程式的需求、在物件的可用度與不同儲存節點和站台之間的物件一致性之間取得平衡。
根據預設StorageGRID 、此功能可確保新建立物件的寫入後讀取一致性。任何「Get」追蹤成功完成的「PUT」、都能讀取新寫入的資料。覆寫現有物件、更新中繼資料及刪除的動作最終一致。覆寫通常需要幾秒鐘或幾分鐘才能傳播、但可能需要15天的時間。
如果您想要在不同的一致性層級執行物件作業、可以為每個儲存區或每個API作業指定一致性控制。
一致性控管
一致性控制項會影響StorageGRID 到物件所用的中繼資料如何在節點之間分佈、進而影響物件對用戶端要求的可用度。
您可以將桶或API作業的一致性控制設定為下列其中一個值:
-
* 全部 * :所有節點都會立即接收資料、否則要求將會失敗。
-
強式全域:保證所有站台所有用戶端要求的寫入後讀取一致性。
-
* Strong站台*:保證站台內所有用戶端要求的寫入後讀取一致性。
-
* 新寫入後讀取 * :(預設)提供新物件的寫入後讀取一致性、以及物件更新的最終一致性。提供高可用度與資料保護保證。建議大多數情況下使用。
-
* 可用 * :提供新物件和物件更新的最終一致性。對於 S3 貯體、請僅視需要使用(例如、包含很少讀取的記錄值之貯體、或用於對不存在的金鑰執行 HEAD 或 GET 作業)。S3 FabricPool 儲存區不支援。
使用「全新寫入後的準備」和「可用」一致性控制
當執行者或Get作業時、StorageGRID 若使用「全新寫入後的讀取」一致性控制、則由下列多個步驟執行查詢:
-
它會先使用低一致性來查詢物件。
-
如果該查詢失敗、它會在下一個一致性層級重複查詢、直到達到等同於 Strong-global 行為的一致性層級為止。
如果 HEAD 或 GET 作業使用「讀取新寫入後」一致性控制項、但物件不存在、則物件查詢一律會達到等同於 Strong-global 行為的一致性層級。由於此一致性層級需要在每個站台上提供多個物件中繼資料複本、因此如果同一個站台上的一個或多個儲存節點無法使用、您可能會收到大量 500 個內部伺服器錯誤。
除非您需要與Amazon S3類似的一致性保證、否則您可以將一致性控制設定為「可用」、以防止這些錯誤發生、並取得作業。 當使用「可用的」一致性控制時StorageGRID 、只有提供最終一致性的功能、它不會在增加一致性層級的情況下重試失敗的作業、因此不需要物件中繼資料的多個複本。
指定API作業的一致性控制
若要設定個別API作業的一致性控制、作業必須支援一致性控制、而且您必須在要求標頭中指定一致性控制。此範例將Get物件作業的一致性控制設為「站台」。
GET /bucket/object HTTP/1.1 Date: date Authorization: authorization name Host: host Consistency-Control: strong-site
您必須對「放置物件」和「取得物件」作業使用相同的一致性控制。 |
指定桶的一致性控制
若要設定桶的一致性控制、您可以使用StorageGRID 「用作桶」一致性要求和「取得桶」一致性要求。您也可以使用租戶管理程式或租戶管理API。
設定桶的一致性控制時、請注意下列事項:
-
設定區段的一致性控制可決定哪些一致性控制用於在區段或區段組態中的物件上執行S3作業。它不會影響儲存庫本身的作業。
-
個別API作業的一致性控制會覆寫貯體的一致性控制。
-
一般而言、儲存貯體應該使用預設的一致性控制:「全新寫入後的讀取」。 如果要求無法正常運作、請盡可能變更應用程式用戶端行為。或者、將用戶端設定為針對每個API要求指定一致性控制。只能將貯體層級的一致性控制設定為最後的方法。
一致性控制與ILM規則如何互動、以影響資料保護
您選擇的一致性控制和ILM規則都會影響物件的保護方式。這些設定可以互動。
例如、儲存物件時所使用的一致性控制項會影響物件中繼資料的初始放置位置、而針對ILM規則所選取的擷取行為則會影響物件複本的初始放置位置。由於支援對象的中繼資料及其資料、因此需要同時存取才能滿足用戶端要求、因此針對一致性層級和擷取行為選擇相符的保護層級、可提供更好的初始資料保護、並提供更可預測的系統回應。StorageGRID
下列擷取行為適用於ILM規則:
-
嚴格:ILM規則中指定的所有複本都必須在成功傳回用戶端之前完成。
-
平衡:StorageGRID 在擷取時、會嘗試製作ILM規則中指定的所有複本;如果不可能、則會製作過渡複本、並將成功傳回給用戶端。ILM規則中指定的複本會盡可能製作。
-
雙重承諾:StorageGRID 此物件立即製作過渡複本、並讓用戶端恢復成功。在ILM規則中指定的複本會盡可能製作。
選取 ILM 規則的擷取行為之前、請先閱讀中這些設定的完整說明 使用ILM管理物件。 |
一致性控制和ILM規則如何互動的範例
假設您有一個雙站台網格、其中包含下列ILM規則和下列一致性層級設定:
-
* ILM規則*:建立兩個物件複本、一個在本機站台、一個在遠端站台。選取嚴格的擷取行為。
-
一致性層級:「'trong-globat'(物件中繼資料會立即發佈至所有站台)。
當用戶端將物件儲存到網格時、StorageGRID 在成功傳回用戶端之前、功能區會同時複製物件並將中繼資料散佈到兩個站台。
在擷取最成功的訊息時、物件會受到完整保護、不會遺失。例如、如果在擷取後不久即遺失本機站台、則物件資料和物件中繼資料的複本仍存在於遠端站台。物件可完全擷取。
如果您改用相同的ILM規則和「站台」一致性層級、則用戶端可能會在物件資料複寫到遠端站台之後、收到成功訊息、但物件中繼資料才會散佈到該站台。在此情況下、物件中繼資料的保護層級與物件資料的保護層級不符。如果在擷取後不久本機站台便會遺失、則物件中繼資料將會遺失。無法擷取物件。
一致性層級與ILM規則之間的相互關係可能相當複雜。如需協助、請聯絡NetApp。