Avamar 空間回收程式 - 第 1 部分:垃圾收集
Summary: 本知識庫文章說明 Avamar 空間回收程式的第一部分。這稱為垃圾收集。
Instructions
本文為系列中的第一篇文章,其中記錄了Avamar如何回收GSAN內部和硬碟上的空間。
目前實作的垃圾收集已與Avamar v7.0一起推出,其設計基本上維持不變。
垃圾收集有何作用?
垃圾收集是Avamar回收用來儲存備份數據的空間程式的第一階段。
它會在 Cur 目錄上運作,並移除任何備份不再引用的數據區塊,以釋放 GSAN 內的空間:
- 如果數據可以在索引中向上查閱,則應予以「定義」。
- 如果數據是作為備份的一部分存在,就會參考數據 (即哈希存在於使用者會計系統、複合等量分割區或目錄元素中)。
垃圾收集所回收的空間,必須等到開始 封存后才能 重複使用。每日排程的垃圾收集完成後,即刻開始進行垃圾處理。請參閱 Avamar 空間回收程式 - 第 2 部分:正在調整。
垃圾收集何時執行?
垃圾收集的運行時間有多長?
根據預設,垃圾收集會執行 4 小時。如果兩次傳遞在此時間內未完成,下一次垃圾收集的運行時間會增加 15 分鐘。這會持續直到兩次成功通過或達到 7 小時 (420 分鐘) 的預設限制為止。
常見問題如下所列。某些文章可能需要在 Dell 支援網站上檢視驗證。
- 維護排程器或更具體來說,垃圾收集已停用。status.dpn 的輸出可以確認此問題。
- 操作系統容量高於 disknogc 值 (可能為 86% 至 89%)。
- Avamar 節點之間的時間同步問題。
- 索引等量分割。
- 哈希引用的點陣圖無法重設。
垃圾收集的運作方式
步驟 1 - 建立參考計數表 (TORC):
垃圾收集會讀取使用者會計系統、複合等量和目錄元素中的專案,以建立參考表計數 (TORC)。
在 TORC 中,垃圾收集記錄系統上的所有哈希,以及每個哈希的參考次數。
步驟 2 - 讀取索引:
TORC 完成後,每個節點都會將個別索引等量的子集載入至記憶體。等量讀取的數目是由 gccount 參數定義。針對索引中定義的每個哈希,垃圾收集會在 TORC 中查閱哈希,以檢查是否已參考。
- 如果哈希存在於索引和 TORC 中,則無須採取任何行動。TORC 中的每一個哈希的參考計數至少為 1,因此哈希已定義並參照。
- 如果哈希存在於索引中,但 不是 存在於 TORC 中,則會定義哈希但未參考,因此可以移除。
注意:如果哈希存在於 TORC 中,但索引中 並未存在,則會是數據完整性錯誤 (已參考但未定義哈希)。 這會導致 hfschck 故障。
步驟 3 - 移除無參考哈希:
如前所述,未參考的哈希並非任何備份的一部分,因此可以安全地從 Avamar 中移除。為此,垃圾收集:
- 拿掉索引中的專案。
- 將區塊標頭描述器 (CHD) 中的哈希專案從零。CHD 可定義等量分配容器中個別區塊的位置。
Avamar 將哈希佔用的區域標示為空白。由於效能和容量原因,本階段不會刪除數據。
步驟 4 - 更新 TORC:
如果移除的垃圾收集區塊為複合式,則必須更新 TORC。
回首步驟 1,TORC 中的參考計數包括包含複合區塊的複合等量參考。
由於已移除複合區塊,我們可針對該複合區塊所參考的任何哈希,逐一將 TORC 中的參考計數刪除。
垃圾收集作業是透過在複合體中讀取,查看其參考的哈希,然後更新 TORC。
步驟 5 - 閱讀下一組索引:
垃圾收集會從記憶體中卸下前一組索引等量,然後載入新的索引等量集。
這些新的索引等量會重複步驟 2、3 和 4。
讀取所有索引等量后,TORC 中任何具有 0 個參考資料 (多虧步驟 4) 的數據區塊 (稱為「原文」區塊) 都會移除。
步驟 6 - 開始新通過:
讀取所有索引后,垃圾收集就會開始新的傳遞。
所有索引等量都會重新讀取,尋找由於我們先前通過的數據,而不再被引用。
這是必要的,因為哈希不是以邏輯順序讀取,而是以儲存在索引中的順序為準。
垃圾收集並無法確定以最佳順序找到哈希。哈希可以保留參考,直到通過為止。
在大多數 Avamar 伺服器環境中,兩次垃圾收集傳遞可以舒適地維持「穩定狀態」的容量。
垃圾收集會執行傳遞,直到時間用完,或傳遞完成而不移除任何數據。
手動收集
垃圾不應要求微管理 Avamar 伺服器。排程器旨在將維護工作的執行自動化。如果 Avamar 容量很高,請參閱《Avamar 作業最佳實務指南》和 《Avamar:容量管理概念和訓練。
在 極少數情況下 ,執行垃圾收集 作業可能會 減輕 GSAN「使用者容量」很高,系統進入只讀模式的急難解說問題。
在這些情況下,會手動執行垃圾收集,將容量層級降至低於只讀閾值。這可讓備份窗口執行。
自動化垃圾收集可以繼續正常運作。
Avamar 支援應先完整調查並了解情況,再考慮手動收集垃圾。
在調查結束后,要求支援部門在未經 L2 支援工程師授權的情況下,在系統上執行手動垃圾收集,這是 絕對 不適當的。
請參閱 Avamar - 關於手動垃圾收集的使用。