AIX jfs2快照大小如何小於fs上資料的大小?

AIX jfs2快照大小如何小於fs上資料的大小?

在每個作業系統上,我都建立過大小大於佔用的檔案系統空間的快照。例如:如果我有一個名為 /try 的檔案系統,容量為 250GB,但使用的空間為 100GB,我將建立一個 100GB 或更多的快照。在 AIX 上,我創建了一個大小低於 fs 佔用空間的快照......並且可以工作。在 2GB 的邏輯磁碟區上我建立了一個 590MB 的文件

dd if=/dev/zero of=hello bs=1m count=590
590+0 records in
590+0 records out

然後我創建 256MB 而不是 590MB 或更多的快照

snapshot -o snapfrom=/try -o size=256m 
Snapshot for file system /try created on /dev/fslv00

df 報告 fs「嘗試」的正確大小

df -hT /try
/dev/try     jfs2    2,0G  591M    1,5G  29% /try

我可以掛載快照

mount -o snapshot /dev/fslv00 /mnt/

df 報告快照大小為 256mb,但已使用 1.5mb!

df -hT /mnt
/dev/fslv00    jfs2  256M  1,5M    255M   1% /mnt

對於最後一次嘗試,我對檔案進行了 md5sum 檢查。

b7fb2207c641085a9cf02064edf1742e  /mnt/hello
b7fb2207c641085a9cf02064edf1742e  /try/hello

問題很簡單:快照大小如何小於真實檔案系統的大小?為什麼快照上的空間(1,5mb)低於真實檔案系統的已使用空間(591mb)?

答案1

找到解決方案。 「可能」會建立一個大小低於實際檔案系統所用檔案系統大小的快照,但完全沒用。當我刪除原始檔案 /try/hello 時,快照大小變大(因為檔案區塊的傳輸),但因為我在真實檔案系統的大小下創建了它,所以檔案系統變滿,檔案「hello」變成損壞,並回傳I/O 錯誤。

df -hT /mnt
/dev/fslv00    jfs2    256M  256M     0 100% /mnt

md5sum /mnt/hello 
md5sum_64: /mnt/hello: There is an input or output error.

相關內容