Data Domain:可清理大小是預估值
Summary: 對於 Data Domain 系統上顯示的「可清理 GiB」值經常存在混淆,對於執行清理時可復原的空間量也有不適當的期望
Instructions
人們常常會混淆 Data Domain 系統上顯示的「可清理的 GiB」值,以及對於執行清理後可復原的空間量有不適當的期望。
提供的「可清理 GiB」數字純屬預估值,由於在開發 Data Domain 檔案系統時所做的技術選擇,因此無法取得執行清理可回收空間量的準確值。
以下是對可清理空間的估計值可能與實際回收空間有很大差異的簡明解釋。不過,這裡沒有考慮其他因素,這些因素可能會使估計值和清理運行時真正釋放的磁碟空間量有很大差異
當 Data Domain 系統消化資料時,會計算壓縮後值,並將其儲存為每個檔案的靜態資料。「可清理」值只是自上次執行 DD 清理至完成以來所有已刪除檔案的壓縮後值之和。
如果已刪除檔案的檔案區段曾用於對其他尚未刪除檔案中的重複資料刪除,則可清除值會變為不準確。只要有單一檔案提及現有的唯一區段,DD 清理程序就不會考慮回收這些區段。因此,即使將檔的後續編譯添加到“可清理的 GiB”計數器中,就好像其所有唯一段都將被處置一樣,部分(或許多)可能不會因為被其他檔重複使用而無法使用。
顯示此效果的更詳細範例如下:
假設您有 5 個檔案,逐一新增至 Data Domain 系統,其中先前沒有其他資料。
由於前 100GB 檔包含所有唯一數據,因此其壓縮率為 1x(假設第一個檔本身沒有任何冗餘)。第 2 至 5 個檔案能夠在新增時針對第 1 個檔案的資料和每個較舊的檔案進行重複資料刪除,由於要刪除重複資料的檔案不斷增加,每個檔案的重複資料刪除能力都不斷增加。
File 1: precomp: 100 GB postcomp: 100 GB compression ratio: 1x File 2: precomp: 100 GB postcomp: 50 GB compression ratio: 2x File 3: precomp: 100 GB postcomp: 25 GB compression ratio: 4x File 4: precomp: 100 GB postcomp: 25 GB compression ratio: 4x File 5: precomp: 100 GB postcomp: 1 GB compression ratio: 100x Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 500 - - - /backup: post-comp 1000 201 799 20% 0 ---------------- --------- --------- --------- ---- --------------
例 1.從 /backup 刪除前 3 個檔案後的狀態:
Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 200 - - - /backup: post-comp 1000 201 799 20% 175 ---------------- --------- --------- --------- ---- --------------
如果您在此之後執行清理,您可能能夠回收 125,而不是完整的 175 可清理。這是因為最後 2 個檔與檔 1-3 共用段。 清理不會復原其他 50 GB 的空間,因為檔案 3-5 仍在使用這些區段。
範例 2:使用與範例 1 相同的起點,假設檔案 1 已刪除,然後對整個 /backup 資料夾執行快速複製 (即所有 5 個檔案),然後刪除檔案 2-4。
Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 800 - - - /backup: post-comp 1000 201 799 20% 200 ---------------- --------- --------- --------- ---- --------------
預先壓縮的「大小 GiB」數字來自於 (500-100)=400*2=800,5 個原始檔案為 500,刪除檔案 1 減去 100 則得到 400 GiB。 接著,由於對其餘 4 個檔案進行快速複製,導致 400 GiB 乘以 2。
請注意,所使用的壓縮後空間仍然相同,因為 filecopy 僅添加少量空間,由指向原始數據的元數據指標組成。儘管刪除了檔 1,但空間使用量沒有更改,因為尚未運行“filesys 清理啟動”(以啟動清理)。
清潔完成後,我們將看到:
Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 800 - - - /backup: post-comp 1000 176 824 18% 0 ---------------- --------- --------- --------- ---- --------------
請注意,即使 200GB 顯示為可清理,但實際上只清理了 25GB。「Cleanable GiB」顯示為 200,因為檔案 1 到 4 的「post-comp」檔案大小總計為 200 GB。 僅刪除了100GB的“檔1”,但其中75GB仍在其他4個檔使用(由於重複數據消除)。
這可能看起來很奇怪,因為「檔案 2」到「檔案 4」也已被刪除,但請記住,雖然系統會顯示「檔案 2」到「檔案 4」已移除,但無法移除這些檔案的實際資料區段,因為這些檔案已快速複製到另一個資料夾。 只有在刪除了所有快速複製版本后,才能通過清理完全恢復空間。
由於可清理的 GiB 只是一個「估計」,可能並不準確,即使有時它反映的大小可能與 Data Domain 的實體容量相同。
如果由於可清理的 GiB 顯示與「/data: post-comp」的附近或相同值,導致 DDFS 空間使用率接近 100%,可能會導致混淆是允許執行排定的 DDFS 清理,還是手動執行。
為了有更好、更可靠的方法來估計清理時會回收的磁片空間量,從 DDOS 7.7.x 開始,現在可以從 CLI 中判斷作用層下一個 GC 能夠回收的實際「總可清理空間」。這是 CLI 的摘要:
# filesys cleanable-space calculate Cleanable space calculation started. Use 'filesys cleanable-space watch' to monitor progress.
程序與一般 GC 相同,會經歷階段 1 到 4,但略過階段 5 (複製),因為這個階段可有效地向前複製容器以回收死磁碟空間。因此,只要常規 GC 需要完成清理階段 1 到 4 才能返回值,因此這不是為了更新估計而定期運行,而只是在需要時運行。換言之,「filesys cleanable-space calculate」會在使用中層執行 GC,只是跳過回收空間的部份。
可以按如下方式監控過程:
# filesys cleanable-space watch Beginning 'filesys cleanable-space calculation' monitoring. Use Control-C to stop monitoring. Cleaning: phase 1 of 4 (pre-merge) 100.0% complete, 96233 GiB free; time: phase 0:02:07, total 0:02:07 Cleaning: phase 2 of 4 (pre-analysis) 100.0% complete, 96233 GiB free; time: phase 0:06:51, total 0:08:59 Cleaning: phase 3 of 4 (pre-enumeration) 100.0% complete, 96233 GiB free; time: phase 0:00:20, total 0:09:20 Cleaning: phase 4 of 4 (pre-select) 100.0% complete, 96233 GiB free; time: phase 0:00:25, total 0:09:46
完成後,可以訪問可清潔的測量結果:
# filesys cleanable-space status Cleanable space on active tier is 94649698202 bytes. Last calculated on 2023/08/25 03:29:51 Cleanable space calculation finished at 2023/08/25 03:29:51.
因此在上述測試範例中 如果 DD GC 要立即執行 則可釋出 94649698202 個位元組這是 88.1 GiB,而在計算時,“df”在使用的實驗室 DD 中報告的估計值為 41.9 GiB。當然,隨著對 FS 進行更改(新備份、更多刪除、正在創建和過期的快照等),計算將會失敗。
如有需要,可以使用以下命令來停止上述程序:
# filesys cleanable-space stop The 'filesys cleanable-space stop' command stops calculating cleanable space in the system. Are you sure? (yes|no) [no]: yes ok, proceeding. # filesys cleanable-space status Cleanable space on active tier is 2607064 bytes. Last calculated on 2021/06/27 23:23:05 Cleanable space calculation started at 2021/06/27 23:27:58 and was aborted at 2021/06/27 23:28:19. Cleaning was aborted by user.
請注意,此 CLI 僅適用於 DD 活動層。對於 DD 雲端裝置,沒有計算其可清理數量的等效程序,因為該裝置有自己的預估,但仍受上述相同的不確定因素限制。