
どの OS でも、占有されているファイルシステムのスペースよりも大きいサイズのスナップショットを作成します。たとえば、/try という 250 GB のファイルシステムがあり、使用中のスペースが 100 GB の場合、100 GB かそれより少し大きいスナップショットを作成します。AIX では、ファイルシステムの占有スペースよりも小さいサイズのスナップショットを作成します。これで動作します。2 GB の論理ボリュームでは、590 MB のファイルを作成します。
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 の正しいサイズを報告します "try"
df -hT /try
/dev/try jfs2 2,0G 591M 1,5G 29% /try
スナップショットをマウントできます
mount -o snapshot /dev/fslv00 /mnt/
スナップショットの df レポート サイズは 256 MB ですが、使用されているのは 1.5 MB です。
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.