重新平衡銷毀編碼資料的考量事項
如果您要執行擴充以新增儲存節點、且ILM原則包含一或多個ILM規則來銷毀程式碼資料、則可能需要在擴充完成後執行EC重新平衡程序。
例如、如果您無法在擴充中新增建議數量的儲存節點、則可能需要執行EC重新平衡程序、以允許儲存其他銷毀編碼物件。
什麼是EC重新平衡?
EC重新平衡StorageGRID 是擴充儲存節點之後可能需要的一個過程。此程序會以命令列指令碼形式從主要管理節點執行。當您執行EC重新平衡程序時、StorageGRID 即可在站台現有和新擴充的儲存節點之間重新分配銷毀編碼的片段。
執行EC重新平衡程序時:
-
它只會移動以銷毀編碼的物件資料。它不會移動複寫的物件資料。
-
它會在站台內重新散佈資料。它不會在站台之間移動資料。
-
它會在站台的所有儲存節點之間重新分配資料。它不會重新分配儲存磁碟區內的資料。
當EC重新平衡程序完成時:
-
以銷毀編碼的資料會從可用空間較少的儲存節點移至具有更多可用空間的儲存節點。
-
使用的(%)值可能會在儲存節點之間維持不變、因為EC重新平衡程序不會移動複寫的物件複本。
-
銷毀編碼物件的資料保護將維持不變。
執行EC重新平衡程序時、ILM作業和S3和Swift用戶端作業的效能可能會受到影響。因此、您只能在有限的情況下執行此程序。
不執行EC重新平衡時
例如、當您不需要執行EC重新平衡時、請考慮下列事項:
-
包含三個儲存節點的單一站台正在執行。StorageGRID
-
ILM原則對所有大於0.2 MB的物件使用2+1銷毀編碼規則、而對較小的物件使用雙複製複寫規則。
-
所有儲存節點已完全滿、且*低物件儲存*警示已在主要嚴重性層級觸發。建議採取的行動是執行擴充程序來新增儲存節點。
若要擴充此範例中的站台、建議您新增三個以上的新儲存節點。支援2+1銷毀編碼需要三個儲存節點、以便將兩個資料分段和一個同位元檢查分段放置在不同的節點上。StorageGRID
新增三個儲存節點之後、原始儲存節點仍會保持滿量、但物件仍可繼續擷取至新節點上的2+1銷毀編碼方案。在此情況下、不建議執行EC重新平衡程序:執行程序會暫時降低效能、這可能會影響用戶端作業。
何時執行EC重新平衡
例如、您應該執行EC重新平衡程序時、請考慮相同的範例、但假設您只能新增兩個儲存節點。由於2+1銷毀編碼至少需要三個儲存節點、因此新節點無法用於銷毀編碼資料。
若要解決此問題並使用新的儲存節點、您可以執行EC重新平衡程序。執行此程序時StorageGRID 、將以銷毀編碼的資料和同位元檢查片段重新散佈到站台上的所有儲存節點。在此範例中、當EC重新平衡程序完成時、所有五個節點現在只有60%已滿、而且物件仍可繼續擷取至所有儲存節點上的2+1銷毀編碼方案。
EC重新平衡的考量
一般而言、您只能在有限的情況下執行EC重新平衡程序。具體而言、只有在下列所有陳述均為真時、才應執行EC重新平衡:
-
您使用銷毀編碼來處理物件資料。
-
站台上的一個或多個儲存節點已觸發*低物件儲存*警示、表示節點已滿80%以上。
-
您無法為使用中的銷毀編碼方案新增建議數量的新儲存節點。
-
您的S3和Swift用戶端可在執行EC重新平衡程序時、容忍寫入和讀取作業的效能降低。
EC重新平衡程序如何與其他維護工作互動
您無法在執行EC重新平衡程序的同時執行特定的維護程序。
程序 | 在EC重新平衡程序期間允許? |
---|---|
其他EC重新平衡程序 |
不可以 您一次只能執行一個EC重新平衡程序。 |
取消委任程序 EC資料修復工作 |
不可以
|
擴充程序 |
不可以 如果您需要在擴充中新增儲存節點、請等到新增所有新節點之後、再執行EC重新平衡程序。如果在新增儲存節點時正在進行EC重新平衡程序、則不會將資料移至這些節點。 |
升級程序 |
不可以 如果您需要升級StorageGRID 版的軟件、您應該在執行EC重新平衡程序之前或之後執行升級程序。您可以視需要終止EC重新平衡程序、以執行軟體升級。 |
應用裝置節點複製程序 |
不可以 如果您需要複製應用裝置儲存節點、請等到新增節點之後、再執行EC重新平衡程序。如果在新增儲存節點時正在進行EC重新平衡程序、則不會將資料移至這些節點。 |
修復程序 |
是的。 您可以在StorageGRID 執行EC重新平衡程序時套用更新程式。 |
其他維護程序 |
不可以 在執行其他維護程序之前、您必須先終止EC重新平衡程序。 |
EC重新平衡程序如何與ILM互動
當EC重新平衡程序正在執行時、請避免變更ILM、以免變更現有銷毀編碼物件的位置。例如、請勿開始使用具有不同「刪除編碼」設定檔的ILM規則。如果您需要進行此類ILM變更、則應中止EC重新平衡程序。