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.

相关内容