모든 운영 체제에서 나는 파일 시스템이 차지하는 공간보다 큰 스냅샷을 생성했습니다. 예를 들어, 용량이 250GB이고 100GB를 사용하는 /try라는 파일 시스템이 있는 경우 100GB 이상의 스냅샷을 생성합니다. 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,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.