
Em todos os sistemas operacionais, eu crio snapshots de tamanho maior que o espaço fs ocupado. Por exemplo: se eu tivesse um fs chamado /try de 250GB mas o espaço utilizado for 100GB vou criar um snapshot de 100GB ou um pouco mais. No AIX eu crio um snapshot com um tamanho abaixo do espaço ocupado pelo fs..e funciona. Em um volume lógico de 2GB eu crio um arquivo de 590MB
dd if=/dev/zero of=hello bs=1m count=590
590+0 records in
590+0 records out
então eu crio o instantâneo de 256 MB em vez de 590 MB ou mais
snapshot -o snapfrom=/try -o size=256m
Snapshot for file system /try created on /dev/fslv00
df reporta o tamanho correto de fs "try"
df -hT /try
/dev/try jfs2 2,0G 591M 1,5G 29% /try
Eu posso montar o snapshot
mount -o snapshot /dev/fslv00 /mnt/
tamanho do relatório df de 256 MB para o instantâneo, mas com 1,5 MB usado!
df -hT /mnt
/dev/fslv00 jfs2 256M 1,5M 255M 1% /mnt
Para a tentativa final, fiz uma verificação md5sum de um arquivo ... e funciona tanto para instantâneo quanto para fs real.
b7fb2207c641085a9cf02064edf1742e /mnt/hello
b7fb2207c641085a9cf02064edf1742e /try/hello
As perguntas são simples: como o tamanho do snapshot pode estar abaixo do tamanho do fs real? Por que o espaço no snapshot (1,5mb) está abaixo do espaço utilizado (591mb) do fs real?
Responder1
Solução encontrada. É "possível" criar um snapshot com tamanho inferior ao tamanho fs usado do fs real, mas é totalmente inútil. Quando eu excluo o arquivo original /try/hello, o tamanho do snapshot fica grande (devido à transferência dos blocos de arquivo), mas como eu o criei com o tamanho do fs real, o fs fica cheio e o arquivo "hello" fica quebrado e retornar erro de E/S.
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.