RFC nfsv41/pnfsblock: allow block client not to layoutget in pg_init
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest4 patches 0 repliesNew
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | nfsv41: export pnfs_find_alloc_layoutfs/ fs/ | +6 | 0 replies | |
| 2/4 | nfsv41: add and export pnfs_find_get_layout_lockedfs/ fs/ | +30 | 0 replies | |
| 3/4 | nfsv41: get lseg before issue LD IO if pgio doesn't carry onefs/ | +46 | 0 replies | |
| 4/4 | pnfsblock: do ask for layout in pg_initfs/ | +52 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH RFC 0/4] nfsv41/pnfsblock: allow block client not to layoutget in pg_init
Asking for layout in pg_init will always let client ask for only 4KB layout in every layoutget. This way, client drops the IO size information.
In such case, server needs to pre-allocate layout to allow better performance. However, IO size information is very useful for MDS to determine how much layout it gives client. This is more important for block layout MDS because it needs to pre-allocate disk for layoutget that extends file size.
Initial tests against a server that does not aggressively pre-allocate layout, shows that passing IO size information to server helps to improve performance quite a lot.
The generic pnfs layer changes are trival to file layout and object.
iozone cmd:
./iozone -r 1m -s 4G -w -W -c -t 10 -i 0 -F /mnt/iozone.data.1 /mnt/iozone.data.2 /mnt/iozone.data.3 /mnt/iozone.data.4 /mnt/iozone.data.5 /mnt/iozone.data.6 /mnt/iozone.data.7 /mnt/iozone.data.8 /mnt/iozone.data.9 /mnt/iozone.data.10
Befor patch: around 12MB/s throughput
After patch: around 72MB/s throughput
Peng Tao (4):
nfsv41: export pnfs_find_alloc_layout
nfsv41: add and export pnfs_find_get_layout_locked
nfsv41: get lseg before issue LD IO if pgio doesn't carry one
pnfsblock: do not ask for layout in pg_init
fs/nfs/blocklayout/blocklayout.c | 54 +++++++++++++++++++++++++++- fs/nfs/pnfs.c | 73 +++++++++++++++++++++++++++++++++++++- fs/nfs/pnfs.h | 9 +++++ 3 files changed, 133 insertions(+), 3 deletions(-)