ファイル操作による残量の変化
容量の増減については、仕組みの違いから、伝統的なFSと違った挙動になるので要注意。
消しても減らないというのが大きく違うところだ。
減るときはガベコレによって勝手に減る。
コピーした場合のファイルの増える様子。
元のサイズ。
# df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 843772 8650752 9% /mnt/nilfs
ファイルを別の名前にコピーする。
# cp /mnt/nilfs/dd.text /mnt/nilfs/dd.text3 # df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 942076 8552448 10% /mnt/nilfs
削除する。
# rm /mnt/nilfs/dd.text3 # df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 950268 8544256 11% /mnt/nilfs
消してもファイルは減らない。
むしろ増える。これは変だな。なんか別のオペレーションと重なった?
# df /mnt/nilfs; cp /mnt/nilfs/dd.text /mnt/nilfs/dd.text3; df /mnt/nil fs/; rm /mnt/nilfs/dd.text3; df /mnt/nilfs Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 1155068 8339456 13% /mnt/nilfs Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 1458172 8036352 16% /mnt/nilfs Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 1458172 8036352 16% /mnt/nilfs
減らないのは特徴だが、増えるのはおかしいので、これが正しい。
面白い。
ファイル移動の様子。
# df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 950268 8544256 11% /mnt/nilfs # mv /mnt/nilfs/dd.text2 /mnt/nilfs/dd.text3 # df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 950268 8544256 11% /mnt/nilfs # mv /mnt/nilfs/dd.text3 /mnt/nilfs/dd.text2 # df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 950268 8544256 11% /mnt/nilfs
これは、通常のファイルシステムと同じ感覚。
cpが増えた部分については、ここに現れない程度の小さいサイズの変更になるようだ。
# lscp 461 2008-03-07 14:28:59 cp - 25 1433 462 2008-03-07 14:30:00 cp - 25 1433
ファイル末尾に追記した場合。
# df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 950268 8544256 11% /mnt/nilfs # cat /mnt/nilfs/dd.text2 >> /mnt/nilfs/dd.text # df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 1040380 8454144 11% /mnt/nilfs # ls -l /mnt/nilfs/dd.text -rw-r--r-- 1 root root 204800000 2008-03-07 14:33 /mnt/nilfs/dd.text
あれ?減った。
これは変だな。途中でgcが起きたかな?
# df /mnt/nilfs; cat /mnt/nilfs/dd.text2 >> /mnt/nilfs/dd.text; df /mnt/nilfs; ls -l /mnt/nilfs/dd.text Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 1056764 8437760 12% /mnt/nilfs Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda6 10002428 1146876 8347648 13% /mnt/nilfs -rw-r--r-- 1 root root 307200000 2008-03-07 14:36 /mnt/nilfs/dd.text
うまくいった。
通常と同じように1つ分だけ増えたようだけど、全部上書きされていれば2つ分増えるはずなのに1つしか増えていないということは、もとのdd.textにあった部分はcp/ssで共有されているということだ。
シンボルはファイル名を基準にしているので、dd.text2で使われている部分がdd.textの領域に再利用されて増分ゼロになるということはない。
が〜ん!
The df command displays the wrong amount of disk space available on the NILFS file system.
だって...
dfの値はアテにならないってことか...
まぁ、変な値になる場合の理由がわかってよかったってことで。
他にも
Deletion a large file takes very long time.
でかいファイルの削除には時間がかかるってのがある。