Use data pool's 'df' for statfs instead of global stats, if there is only one data pool
The client sends a MStatfs to the mon to get the info for a statfs system call. Currently the mon gives it the global usage information of the cluster.
If a filesystem has exactly one data pool, it should be straightforward to modify this to pass a pool ID and respond to statfs with pool-specific stats instead.
In the case of filesystems with multiple data pools, we need to fall back to the global stats. Doing a sum of the per-pool stats would probably not make sense because the pools could use overlapping sets of OSDs and we wouldn't want to double-report space.
This would require updates to the mon, fuse client, and kernel client.
Opened from: https://bugzilla.redhat.com/show_bug.cgi?id=1427512
#7 Updated by Patrick Donnelly almost 4 years ago
Partially resolved by: https://github.com/ceph/ceph/commit/eabe6626141df3f1b253c880aa6cb852c8b7ac1d
#8 Updated by Patrick Donnelly almost 4 years ago
- Status changed from Fix Under Review to Pending Backport
- Backport set to luminous
to be merged upstream.
In the meantime, we need a backport of https://github.com/ceph/ceph/pull/16378 to luminous.
#9 Updated by Douglas Fuller almost 4 years ago
There's no need to wait for the kernel client since the message encoding is versioned. This has already been merged into luminous. (4aef4eab99c63d6ed84968e7ac6861ca081e737c, 76fc99a0a5112847ecc0eb7de8730c1a56c5930c, aeeeb43da90b61f8dad83251991088d667b7be47)