[RFC] Different flock/fcntl locking behaviors via libcephfs and cephfs kernel client

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I’m encountering unexpected behavior when testing file locking semantics on
CephFS accessed concurrently via Samba and NFS, both backed by libcephfs.

I’m running a CephFS cluster with both Samba and NFS-Ganesha services.
All clients (Samba and NFS) use libcephfs as the underlying CephFS mount
mechanism. My goal is to verify how file locking behaves across protocols
(SMB and NFS) and whether POSIX lock interoperability is maintained.

Ceph version: 19.2.2
Samba version: 4.20.7
Ganesha version: V5.5
"posix locking = yes" is toggled in Samba

For each combination of mount type and posix locking setting in Samba, we test:
1. flock()/fcntl() from NFS and Samba clients.
2. Write attempts from the other side (e.g., NFS flock, then Samba write).

A. Samba with libcephfs + posix locking = yes
- samba flock()/fcntl(), samba write() -> permission denied (expected)
- nfs flock()/fcntl(),  samba write() -> write succeeds (unexpected)
- samba flock()/fcntl(), nfs write() -> write succeeds (expected)
- nfs flock()/fcntl(), nfs write() -> write succeeds (expected)

B. Samba with libcephfs + posix locking = no
- samba flock()/fcntl(), samba write() -> permission denied (expected)
- nfs flock()/fcntl(),  samba write() -> write succeeds (expected)
- samba flock()/fcntl(), nfs write() -> write succeeds (expected)
- nfs flock()/fcntl(), nfs write() -> write succeeds (expected)

We expected that if "posix locking = yes", locks obtained via NFS (via fcntl
or flock) would be respected by Samba as POSIX locks, but in case A, they are
seemingly ignored.

On the other hand, using ceph kernel mount for Samba (instead of libcephfs)
respect NFS-side locks when "posix locking = yes". (deny write when NFS obtain
flock/fcntl locks)

My questions are:

1. Is this behavior expected with libcephfs?
2. Are there known limitations when mixing cephfs use across protocols?
3. Is there a recommended practice for exporting cephfs volumes by Samba and
NFS simultaneously?

Any comments would be greatly appreciated, and please let me know if any
additional logs or test code would be helpful.

Thanks,
Frank




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux