On Tue, 17 Mar 2009 22:43:24 +0900 (JST) Ryusuke Konishi <[email protected]> wrote:
> The garbage collection of nilfs is ``copying GC'', and it creates > checkpoints (it's normal for nilfs). In addition, if segments > selected for cleaning have few reclaimable blocks, most remaining > blocks are copied into new segments. I thought the NBLKINC count should not increase much when there are no user writes to the filesystem. But it was increasing by several thousands on every step. This filesystem has size of about 300 gigabytes, and all I did, is copied about 150 gigabytes of data to it, with no deletions, no modifications or rewrites. But even about 6-8 hours after that, the cleanerd process still has work to do, so much, that it interferes with normal usage of the filesystem (i.e. playing a FLAC audio file from it was skipping at times, even counting a bit increased load from going through kcryptd, this shouldn't happen). > If you are using nilfs-2.0.10 or later, you can see ``i'' flag in FLG > field of lscp. The ``i'' flag means the checkpoint is created only > for such internal operation including GC. Yes, after the upgrade to 2.0.11 I see "i" marks on these checkpoints. > Did you specify an fstype option? I had the fstype specified as "none" (in fstab). > /nilfs2 on /test type none (rw,bind) Yes, this is what I have. > and, the second cleanerd has gone: I have only one cleanderd in process list. What is really strange, is that it looks like I can unmount the main NILFS, but the bind mount will continue to be accessible and writable. And when I remount the main mount point back, cleanerd grabs the bind mount. See below: # mount -t nilfs2 /dev/mapper/hi320data /mnt/hi320data mount.nilfs2: WARNING! - The NILFS on-disk format may change at any time. mount.nilfs2: WARNING! - Do not place critical data on a NILFS filesystem. # mount --bind /mnt/hi320data/test/ /mnt/bind-test/ # ls /mnt/bind-test/ # touch /mnt/bind-test/abc # umount /mnt/hi320data # umount /mnt/hi320data umount: /mnt/hi320data: not mounted # touch /mnt/bind-test/def # ls /mnt/bind-test/ abc def # mount -t nilfs2 /dev/mapper/hi320data /mnt/hi320data mount.nilfs2: WARNING! - The NILFS on-disk format may change at any time. mount.nilfs2: WARNING! - Do not place critical data on a NILFS filesystem. # ls /mnt/hi320data/test/ abc def # umount /mnt/bind-test umount: /mnt/bind-test: device is busy umount: /mnt/bind-test: device is busy # fuser -c /mnt/bind-test/ /mnt/bind-test/: 23203 # ps -Af | grep 23203 root 23203 1 1 19:06 ? 00:00:00 /sbin/nilfs_cleanerd -n /dev/mapper/hi320data /mnt/hi320data ----------------------- Maybe it misdetects the bind mount as another mount of the same filesystem (e.g. like when mounting a snapshot)? -- With respect, Roman _______________________________________________ users mailing list [email protected] https://www.nilfs.org/mailman/listinfo/users
