AIX jfs2スナップショット・サイズは、どのようにfsのデータ・サイズより小さくできますか?

AIX jfs2スナップショット・サイズは、どのようにfsのデータ・サイズより小さくできますか?

すべてのオペレーティングシステムで、私はファイルシステムが占めるスペースよりも大きなスナップショットを作成しました。たとえば、容量が 250 GB で、100 GB を使用する /try というファイルシステムがある場合は、100 GB 以上のスナップショットを作成します。 AIXでは、fsスペースよりも小さいサイズのスナップショットを作成しました。 2GBの論理ボリュームに590MBのファイルを作成しました。

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

次に、590MB以上ではなく256MBのスナップショットを作成します。

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,5 mb)が実際のファイルシステムで使用されているスペース(591 mb)より低いのはなぜですか?

答え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.

関連情報