Hi,
On Tue, 17 Mar 2009 15:45:29 +0500, Roman Mamedov wrote:
> Hello.
> 
> I am seeing strange behaviour of nilfs. Namely, a new checkpoint with
> significant NBLKINC value is created on every cleanerd step, even though
> the file system is not accessed or written to by any apps at the time.
> Also, lssu shows that new segments are being continuously appended to
> the tail, whereas segments at the top are disappearing.

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.

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.

> I am not completely sure, but this might have begun after doing a
> bind mount, i.e. `mount --bind /mnt/nilfs/somedir /some/other/dir`.
> Timestamp of the first strange checkpoint roughly corresponds to the
> time when I did that mount. And when I was trying to unmount it, the
> mount point was "busy", and `fuser` reported that the process using it
> is nilfs_cleanerd.

Did you specify an fstype option?  The behavior seems different
between:

  $ mount --bind /nilfs2 /test

and

  $ mount --bind -t nilfs2 /nilfs2 /test

In the former case, the result was as follows:

  /dev/sdb1 on /nilfs2 type nilfs2 (rw,gcpid=12667)
  /nilfs2 on /test type none (rw,bind)

In the latter case, it became

  /dev/sdb1 on /nilfs2 type nilfs2 (rw,gcpid=12667)
  /nilfs2 on /test type nilfs2 (rw,bind,gcpid=12673)

and, the second cleanerd has gone:

  nilfs_cleanerd[12673]: start
  nilfs_cleanerd[12673]: cannot create cleanerd on /nilfs2
  nilfs_cleanerd[12673]: shutdown
  nilfs_cleanerd[12667]: wake up
  nilfs_cleanerd[12667]: wait 21.000000000

Either example is safe. (the latter is a mere lucky)

I couldn't confirm your case that the clearnerd grabs different
mount point and prevent unmount.

> Hmm, now I see that `/mnt/nilfs/somedir` also has a zero-sized ".nilfs"
> file, just like the root directory of that filesystem. Perhaps this is
> the cause of the problem?

``.nilfs'' is just a regular file used to allow locking between
cleanerd and other userland tools.  So it will appear both mount
points.

Maybe clearnerd mistook the mount point, but the background checkpoint
creation itself is normal behavior.

Regards,
Ryusuke Konishi
 
> My kernel is 2.6.28. Initially, nilfs module and tools were versions
> 2.0.6, but an upgrade to 2.0.11 did not help.
> 
> If it matters, nilfs is created over a LUKS encrypted partition
> (/dev/mapper/device).
> 
> -- 
> With respect,
> Roman
> _______________________________________________
> users mailing list
> [email protected]
> https://www.nilfs.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
https://www.nilfs.org/mailman/listinfo/users

Reply via email to