diff options
Diffstat (limited to 'xlators/nfs/server/src')
| -rw-r--r-- | xlators/nfs/server/src/nfs.c | 16 | ||||
| -rw-r--r-- | xlators/nfs/server/src/nfs3-helpers.c | 2 | ||||
| -rw-r--r-- | xlators/nfs/server/src/nfs3.h | 40 | 
3 files changed, 43 insertions, 15 deletions
diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index 831e82a8c..dfb92068e 100644 --- a/xlators/nfs/server/src/nfs.c +++ b/xlators/nfs/server/src/nfs.c @@ -1121,23 +1121,31 @@ struct xlator_dumpops dumpops = {  struct volume_options options[] = {          { .key  = {"nfs3.read-size"},            .type = GF_OPTION_TYPE_SIZET, +          .min  = GF_NFS3_RTMIN, +          .max  = GF_NFS3_RTMAX,            .default_value = TOSTRING(GF_NFS3_RTPREF),            .description = "Size in which the client should issue read requests"                           " to the Gluster NFSv3 server. Must be a multiple of" -                         " 4KB." +                         " 4KB. Max supported value is 1MB(1048576)."          },          { .key  = {"nfs3.write-size"},            .type = GF_OPTION_TYPE_SIZET, +          .min  = GF_NFS3_WTMIN, +          .max  = GF_NFS3_WTMAX,            .default_value = TOSTRING(GF_NFS3_WTPREF),            .description = "Size in which the client should issue write requests"                           " to the Gluster NFSv3 server. Must be a multiple of" -                         " 4KB." +                         " 4KB. Max supported value is 1MB(1048576)."          },          { .key  = {"nfs3.readdir-size"},            .type = GF_OPTION_TYPE_SIZET, +          .min  = GF_NFS3_DTMIN, +          .max  = GF_NFS3_DTMAX,            .default_value = TOSTRING(GF_NFS3_DTPREF), -          .description = "Size in which the client should issue directory " -                         " reading requests." +          .description = "Size in which the client should issue directory" +                         " reading requests to Gluster NFSv3 server. Must" +                         " be a multiple of 4KB. Max supported value is" +                         " 1MB(1048576)."          },          { .key  = {"nfs3.*.volume-access"},            .type = GF_OPTION_TYPE_STR, diff --git a/xlators/nfs/server/src/nfs3-helpers.c b/xlators/nfs/server/src/nfs3-helpers.c index 4a5854d2b..9069a90d7 100644 --- a/xlators/nfs/server/src/nfs3-helpers.c +++ b/xlators/nfs/server/src/nfs3-helpers.c @@ -496,7 +496,7 @@ nfs3_fill_fsinfo3res (struct nfs3_state *nfs3, fsinfo3res *res,          resok.wtpref = nfs3->writesize;          resok.wtmult = GF_NFS3_WTMULT;          resok.dtpref = nfs3->readdirsize; -        resok.maxfilesize = GF_NFS3_MAXFILE; +        resok.maxfilesize = GF_NFS3_MAXFILESIZE;          resok.time_delta = tdelta;          resok.properties = GF_NFS3_FS_PROP; diff --git a/xlators/nfs/server/src/nfs3.h b/xlators/nfs/server/src/nfs3.h index 6b37cd458..19353abea 100644 --- a/xlators/nfs/server/src/nfs3.h +++ b/xlators/nfs/server/src/nfs3.h @@ -48,16 +48,36 @@  /* Static values used for FSINFO -FIXME: This should be configurable */ -#define GF_NFS3_RTMAX      (64 * GF_UNIT_KB) -#define GF_NFS3_RTPREF     (64 * GF_UNIT_KB) -#define GF_NFS3_RTMULT     (4 * GF_UNIT_KB) -#define GF_NFS3_WTMAX      (64 * GF_UNIT_KB) -#define GF_NFS3_WTPREF     (64 * GF_UNIT_KB) -#define GF_NFS3_WTMULT     (4 * GF_UNIT_KB) -#define GF_NFS3_DTMIN      (4 * GF_UNIT_KB) -#define GF_NFS3_DTPREF     (64 * GF_UNIT_KB) -#define GF_NFS3_MAXFILE    (1 * GF_UNIT_PB) + * To change the maximum rsize and wsize supported by the NFS client, + * adjust GF_NFS3_FILE_IO_SIZE_MAX. The Gluster NFS server defaults to + * 64KB(65536) which is reasonable for 1GE and 10GE. But for better + * performance on 10GE, rsize/wsize can be raised to 1MB(1048576). + * rsize and wsize can be tuned through nfs.read-size and + * nfs.write-size respectively. + * + * NB: For Kernel-NFS, NFS_MAX_FILE_IO_SIZE is 1048576U (1MB). + */ +#define GF_NFS3_FILE_IO_SIZE_MAX     (1  * GF_UNIT_MB) /* 1048576 */ +#define GF_NFS3_FILE_IO_SIZE_DEF     (64 * GF_UNIT_KB) /* 65536 */ +#define GF_NFS3_FILE_IO_SIZE_MIN     (4  * GF_UNIT_KB) /* 4096 */ + +#define GF_NFS3_RTMAX          GF_NFS3_FILE_IO_SIZE_MAX +#define GF_NFS3_RTMIN          GF_NFS3_FILE_IO_SIZE_MIN +#define GF_NFS3_RTPREF         GF_NFS3_FILE_IO_SIZE_DEF +#define GF_NFS3_RTMULT         GF_NFS3_FILE_IO_SIZE_MIN + +#define GF_NFS3_WTMAX          GF_NFS3_FILE_IO_SIZE_MAX +#define GF_NFS3_WTMIN          GF_NFS3_FILE_IO_SIZE_MIN +#define GF_NFS3_WTPREF         GF_NFS3_FILE_IO_SIZE_DEF +#define GF_NFS3_WTMULT         GF_NFS3_FILE_IO_SIZE_MIN + +/* This can be tuned through nfs.readdir-size */ +#define GF_NFS3_DTMAX          GF_NFS3_FILE_IO_SIZE_MAX +#define GF_NFS3_DTMIN          GF_NFS3_FILE_IO_SIZE_MIN +#define GF_NFS3_DTPREF         GF_NFS3_FILE_IO_SIZE_DEF + +#define GF_NFS3_MAXFILESIZE    (1 * GF_UNIT_PB) +  /* FIXME: Handle time resolutions */  #define GF_NFS3_TIMEDELTA_SECS     {1,0}  #define GF_NFS3_TIMEDELTA_NSECS    {0,1}  | 
