本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

一致性控管

貢獻者

一致性控制可讓您在物件的可用度與不同儲存節點和站台之間的物件一致性之間(視應用程式需求而定)達成平衡。

根據預設StorageGRID 、此功能可確保新建立物件的寫入後讀取一致性。任何「Get」追蹤成功完成的「PUT」、都能讀取新寫入的資料。覆寫現有物件、更新中繼資料及刪除的動作最終一致。覆寫通常需要幾秒鐘或幾分鐘才能傳播、但可能需要15天的時間。

如果您想要在不同的一致性層級執行物件作業、可以為每個儲存區或每個API作業指定一致性控制。

一致性控管

一致性控制項會影響StorageGRID 到物件所用的中繼資料如何在節點之間分佈、進而影響物件對用戶端要求的可用度。

您可以將桶或API作業的一致性控制設定為下列其中一個值:

一致性控制 說明

全部

所有節點都會立即接收資料、否則要求將會失敗。

強大的全球化技術

保證所有站台所有用戶端要求的寫入後讀取一致性。

強式網站

保證站台內所有用戶端要求的寫入後讀取一致性。

全新寫入後讀取

(預設)為新物件提供寫入後讀取一致性、並最終確保物件更新一致。提供高可用度與資料保護保證。最符合Amazon S3一致性保證。

*附註:*如果您的應用程式在不存在的物件上使用標頭或取得要求、如果一個或多個儲存節點無法使用、您可能會收到大量500個內部伺服器錯誤。若要避免這些錯誤、請將一致性控制設為「可用」、除非您需要類似Amazon S3的一致性保證。

可用(最終一致的主管或Get作業)

其行為與「全新寫入後的讀取」一致性層級相同、但最終仍能維持一致性、讓使用者獲得營運。如果儲存節點無法使用、則可提供更高的可用度來執行作業、而非「全新寫入後的作業」。不同於Amazon S3一致性保證、可確保使用者執行作業。

使用「全新寫入後讀取」和「可用」一致性控制

當執行者或Get作業時、StorageGRID 若使用「全新寫入後的讀取」一致性控制、則由下列多個步驟執行查詢:

  • 它會先使用低一致性來查詢物件。

  • 如果該查詢失敗、它會在次一一致性層級重複查詢、直到達到最高一致性層級「all」、這需要所有物件中繼資料複本都可用。

如果執行者或Get作業使用「全新寫入後的讀取」一致性控制、但物件不存在、則物件查詢將永遠達到「ALL」一致性層級。由於此一致性層級需要所有物件中繼資料複本都可供使用、因此如果一個或多個儲存節點無法使用、您可能會收到大量500個內部伺服器錯誤。

除非您需要與Amazon S3類似的一致性保證、否則您可以將一致性控制設定為「可用」、以防止這些錯誤發生、並取得作業。 當使用「可用的」一致性控制時StorageGRID 、只有提供最終一致性的功能、它不會重試失敗的作業、直到達到「all」一致性層級為止、因此不需要所有的物件中繼資料複本都可用。

指定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規則*:建立兩個物件複本、一個在本機站台、一個在遠端站台。選取嚴格的擷取行為。

  • 一致性層級:「'trong-globat'(物件中繼資料會立即發佈至所有站台)。

當用戶端將物件儲存到網格時、StorageGRID 在成功傳回用戶端之前、功能區會同時複製物件並將中繼資料散佈到兩個站台。

在擷取最成功的訊息時、物件會受到完整保護、不會遺失。例如、如果在擷取後不久即遺失本機站台、則物件資料和物件中繼資料的複本仍存在於遠端站台。物件可完全擷取。

如果您改用相同的ILM規則和「站台」一致性層級、則用戶端可能會在物件資料複寫到遠端站台之後、收到成功訊息、但物件中繼資料才會散佈到該站台。在此情況下、物件中繼資料的保護層級與物件資料的保護層級不符。如果在擷取後不久本機站台便會遺失、則物件中繼資料將會遺失。無法擷取物件。

一致性層級與ILM規則之間的相互關係可能相當複雜。如需協助、請聯絡NetApp。