blob: 24c6a0dd346275b5929cdb2584b2aeaeaef428a2 [file] [log] [blame]
The following config blocks exist:
NFS_CORE_PARAM {}
NFS_IP_NAME {}
NFS_KRB5 {}
NFSV4 {}
EXPORT_DEFAULTS {}
EXPORT {}
EXPORT { CLIENT {} }
EXPORT { FSAL {} }
EXPORT { FSAL { FSAL {} } }
EXPORT { FSAL { PNFS {} } }
LOG {}
LOG { COMPONENTS {} }
LOG { FACILITY {} }
LOG { FORMAT {} }
9P {}
CACHEINODE
CEPH {}
GPFS {}
RGW {}
VFS {}
XFS {}
ZFS {}
PROXY {}
PROXY { Remote_Server {} }
Notably the following FSALs do not have a global config block:
PSEUDO, PROXY, NULL, GLUSTER
NFS_CORE_PARAM {}
-----------------
NFS_Port (uint16, range 0 to UINT16_MAX, default 2049)
MNT_Port (uint16, range 0 to UINT16_MAX, default 0)
NLM_Port (uint16, range 0 to UINT16_MAX, default 0)
Rquota_Port (uint16, range 0 to UINT16_MAX, default 875)
Bind_addr(IP4 addr, default 0.0.0.0)
* This eventually needs to support IPv6
NFS_Program(uint32, range 1 to INT32_MAX, default 100003)
MNT_Program(uint32, range 1 to INT32_MAX, default 100005)
NLM_Program(uint32, range 1 to INT32_MAX, default 100021)
Rquota_Program(uint32, range 1 to INT32_MAX, default 100011)
Nb_Worker(uint32, range 1 to 1024*128, default 256)
Drop_IO_Errors(bool, default false)
Drop_Inval_Errors(bool, default false)
Drop_Delay_Errors(bool, default false)
Dispatch_Max_Reqs(uint32, range 1 to 1024*128*16, default 5000)
Dispatch_Max_Reqs_Xprt(uint32, range 1 to 2048, default 512)
DRC_Disabled(boo, default false)
DRC_TCP_Npart(uint32, range 1 to 20, default 1)
DRC_TCP_Size(uint32, range 1 to 32767, default 1024)
DRC_TCP_Cachesz(uint32, range 1 to 255, default 127)
DRC_TCP_Hiwat(uint32, range 1 to 256, default 64)
DRC_TCP_Recycle_Npart(uint32, range 1 to 20, default 7)
DRC_TCP_Recycle_Expire_S(uint32, range 0 to 60*60, default 600)
DRC_TCP_Checksum(bool, default true)
DRC_UDP_Npart(uint32, range 1 to 100, default 7)
DRC_UDP_Size(uint32, range 512, to 32768, default 32768)
DRC_UDP_Cachesz(uint32, range 1 to 2047, default 599)
DRC_UDP_Hiwat(uint32, range 1 to 32768, default 16384)
DRC_UDP_Checksum(bool, default true)
RPC_Debug_Flags(uint32, range 0 to UINT32_MAX, default 0)
RPC_Max_Connections(uint32, range 1 to 10000, default 1024)
RPC_Idle_Timeout_S(uint32, range 0 to 60*60, default 300)
MaxRPCSendBufferSize(uint32, range 1 to 1048576*9, default 1048576)
MaxRPCRecvBufferSize(uint32, range 1 to 1048576*9, default 1048576)
RPC_Ioq_ThrdMax(uint32, range 1 to 1024*128 default 200)
RPC_GSS_Npart(uint32, range 1 to 1021, default 13)
RPC_GSS_Max_Ctx(uint32, range 1 to 1048576, default 16384)
RPC_GSS_Max_Gc(uint32, range 1 to 1048576, default 200)
Decoder_Fridge_Expiration_Delay(int64, range 0 to 7200, default 600)
Decoder_Fridge_Block_Timeout(int64, range 0 to 7200, default 600)
Blocked_Lock_Poller_Interval(int64, range 0 to 180, default 10)
NFS_Protocols(list, valid values [3, 4], default 3,4)
NSM_Use_Caller_Name(bool, default false)
Clustered(bool, default true)
Enable_NLM(bool, default true)
Enable_RQUOTA(bool, default true)
Enable_TCP_keepalive(bool, default false)
Enable_Fast_Stats(bool, default false)
Short_File_Handle(bool, default false)
Manage_Gids_Expiration(int64, range 0 to 7*24*60*60, default 30*60)
Plugins_Dir(path, default "/usr/lib64/ganesha")
heartbeat_freq(uint32, range 0 to 5000 default 1000)
NFS_IP_NAME {}
--------------
Index_Size(uint32, range 1 to 51, default 17)
Expiration_Time(uint32, range 1 to 60*60*24, default 3600)
NFS_KRB5 {}
-----------
PrincipalName(string, default "nfs")
KeytabPath(path, default "")
CCacheDir(path, default "/var/run/ganesha")
Active_krb5(bool, default true)
NFSV4 {}
--------
Graceless(bool, default false)
Lease_Lifetime(uint32, range 0 to 120, default 60)
Grace_Period(uint32, range 0 to 180, default 90)
DomainName(string, default "localdomain")
IdmapConf(path, default "/etc/idmapd.conf")
UseGetpwnam(bool, default false if using idmap, true otherwise)
Allow_Numeric_Owners(bool, default true)
Only_Numeric_Owners(bool, default false)
Delegations(bool, default false)
EXPORT_DEFAULTS {}
------------------
These options are all "export permissions" options, and will be
repeated in the EXPORT {} and EXPORT { CLIENT {} } blocks.
These options will all be dynamically updateable.
Access_Type(enum, values [None, RW, RO, MDONLY, MDONLY_RO],
default None)
Protocols(enum list,
values [3, 4, NFS3, NFS4, V3, V4, NFSv3, NFSv4, 9P],
default [3, 4])
Transports(enum list, values [UDP, TCP, RDMA], default [UDP, TCP])
Anonymous_uid(anonid, range INT32MIN to UINT32MAX, default -2)
Anonymous_gid(anonid, range INT32MIN to UINT32MAX, default -2)
SecType(enum list, values [none, sys, krb5, krb5i, krb5p],
default [none, sys])
PrivilegedPort(bool, default false)
Manage_Gids(bool, default false)
Squash(enum, values [root, root_squash, rootsquash,
rootid, root_id_squash, rootidsquash,
all, all_squash, allsquash,
all_anomnymous, allanonymous,
no_root_squash, none, noidsquash],
default root_squash)
* Each line of defaults above are synonyms
NFS_Commit(bool, default false)
Delegations(enum, values [None, read, write, readwrite, r, w, rw],
default None)
EXPORT {}
---------
* Take all the "export permissions" options from EXPORT_DEFAULTS.
* The first 5 options are considered static from the perspective of
dynamic update.
Path(path, no default, must be supplied)
Pseudo(path, no default)
Tag(string, no default)
Export_id(uint16, range 0 to UINT16_MAX, default 1)
Filesystem_id(fsid, format is uint64.uint64, default 666.666)
* Updating Filesystem_id would have an adverse impact on
existing client mounts and it's not currently a type that
can be atomically updated.
* The following options may be dynamically updated
MaxRead(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
MaxWrite(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
PrefRead(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
PrefWrite(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
PrefReaddir(uint64, range 512 to 64*1024*1024, default 16384)
MaxOffsetWrite(uint64, range 512 to UINT64_MAX, default UINT64_MAX)
MaxOffsetRead(uint64, range 512 to UINT64_MAX, default UINT64_MAX)
DisableReaddirPlus(bool, default false)
Trust_Readdir_Negative_Cache(bool, default false)
* The following options may have limits on dynamic effect
UseCookieVerifier(bool, default true)
* Updating UseCookieVerifier while a readdir is in
progress may result in unexpected behavior.
Disable_ACL(bool, default false)
* Disable_ACL is processed at create_export time currently
which makes it effectively a static option.
Attr_Expiration_Time(int32, range -1 to INT32_MAX, default 60)
* Attr_Expiration_Time is evaluated when an MDCACHE entry
is created, so the dynamic effect of this option may
be constrained to new entries.
EXPORT { CLIENT {} }
---------------------
* Take all the "export permissions" options from EXPORT_DEFAULTS.
* The client lists are dynamically updateable.
Clients(client list, empty)
* Client list entries can take on one of the following forms:
* Match any client
@name Netgroup name
x.x.x.x/y IPv4 network address
wildcarded If the string contains at least one ? or *
character (and is not simply "*"), the string is
used to pattern match host names. Note that [] may
also be used, but the pattern MUST have at least one
? or *
hostname Match a single client (match is by IP address, all
addresses returned by getaddrinfo will match, the
getaddrinfo call is made at config parsing time)
IP address Match a single client
EXPORT { FSAL {} }
------------------
Name(string, default "VFS")
FSAL_GLUSTER:
-------------
volume(string, no default, must be supplied)
hostname(string, no default, must be supplied)
volpath(path, default "/")
glfs_log(path, default "/tmp/gfapi.log")
FSAL_VFS:
---------
pnfs(bool, default false)
fsid_type(enum, values [None, One64, Major64, Two64, uuid, Two32, Dev,
Device], no default)
FSAL_ZFS:
---------
zpool(string, default "tank", must be supplied)
EXPORT { FSAL { PNFS { } } }
---------------------------
Stripe_Unit(uint32, range 1024 to 1024*1024, default 8192)
pnfs_enabled(bool, default false)
FSAL_NULL:
----------
EXPORT { FSAL { FSAL {} } }
describes the stacked FSAL's parameters
LOG {}
------
Default_log_level(token, values [NULL, FATAL, MAJ, CRIT, WARN, EVENT,
INFO, DEBUG, MID_DEBUG, M_DBG,
FULL_DEBUG, F_DBG], default EVENT)
LOG { COMPONENTS {} }
---------------------
These entries are of the form:
COMPONENT = LEVEL;
The components are: ALL, LOG, LOG_EMERG, MEMLEAKS, FSAL, NFSPROTO,
NFS_V4, EXPORT, FILEHANDLE, DISPATCH, CACHE_INODE,
CACHE_INODE_LRU, HASHTABLE, HASHTABLE_CACHE, DUPREQ,
INIT, MAIN, IDMAPPER, NFS_READDIR, NFS_V4_LOCK,
CONFIG, CLIENTID, SESSIONS, PNFS, RW_LOCK, NLM, RPC,
NFS_CB, THREAD, NFS_V4_ACL, STATE, 9P, 9P_DISPATCH,
FSAL_UP, DBUS
Some synonyms are:
FH = FILEHANDLE
HT = HASHTABLE
INODE_LRU = CACHE_INODE_LRU
INODE = CACHE_INODE
DISP = DISPATCH
LEAKS = MEMLEAKS
NFS3 = NFSPROTO
NFS4 = NFS_V4
HT_CACHE = HASHTABLE_CACHE
NFS_STARTUP = INIT
NFS4_LOCK = NFS_V4_LOCK
NFS4_ACL = NFS_V4_ACL
9P_DISP = 9P_DISPATCH
The log levels are: NULL, FATAL, MAJ, CRIT, WARN, EVENT,
INFO, DEBUG, MID_DEBUG, M_DBG,
FULL_DEBUG, F_DBG], default EVENT
LOG { FACILITY {} }
-------------------
name(string, no default)
destination(string, no default, must be supplied)
max_level(token, values [NULL, FATAL, MAJ, CRIT, WARN, EVENT,
INFO, DEBUG, MID_DEBUG, M_DBG,
FULL_DEBUG, F_DBG], default FULL_DEBUG)
headers(token, values [none, component, all], default all)
enable(token, values [idle, active, default], default idle)
LOG { FORMAT {} }
-----------------
date_format(enum, values [ganesha, true, local, 8601, ISO-8601,
ISO 8601, ISO, syslog, syslog_usec,
false, none, user_defined], default ganesha)
time_format(enum, values [ganesha, true, local, 8601, ISO-8601,
ISO 8601, ISO, syslog, syslog_usec,
false, none, user_defined], default ganesha)
user_date_format(string, no default)
user_time_format(string, no default)
EPOCH(bool, default true)
CLIENTIP(bool, default false)
HOSTNAME(bool, default true)
PROGNAME(bool, default true)
PID(bool, default true)
THREAD_NAME(bool, default true)
FILE_NAME(bool, default true)
LINE_NUM(bool, default true)
FUNCTION_NAME(bool, default true)
COMPONENT(bool, default true)
LEVEL(bool, default true)
CACHEINODE
----------
NParts(uint32, range 1 to 32633, default 7)
Cache_Size(uint32, range 1 to UINT32_MAX, default 32633)
Attr_Expiration_Time(int32, range -1 to INT32_MAX, default 60)
Use_Getattr_Directory_Invalidation(bool, default false)
Dir_Max_Deleted(uint32, range 1 to UINT32_MAX, default 65536)
Dir_Max(uint32, range 1 to UINT32_MAX, default 65536)
Entries_HWMark(uint32, range 1 to UINT32_MAX, default 100000)
LRU_Run_Interval(uint32, range 1 to 24 * 3600, default 90)
Cache_FDs(bool, default true)
FD_Limit_Percent(uint32, range 0 to 100, default 99)
FD_HWMark_Percent(uint32, range 0 to 100, default 90)
FD_LWMark_Percent(uint32, range 0 to 100, default 50)
Reaper_Work(uint32, range 1 to 2000, default 1000)
Biggest_Window(uint32, range 1 to 100, default 40)
Required_Progress(uint32, range 1 to 50, default 5)
Futility_Count(uint32, range 1 to 50, default 8)
Retry_Readdir(bool, default false)
9P {}
-----
_9P_TCP_Port(uint16, range 1 to UINT16_MAX, default 564)
_9P_RDMA_Port(uint16, range 1 to UINT16_MAX, default 5640)
_9P_TCP_Msize(uint32, range 1024 to UINT32_MAX, default 65536)
_9P_RDMA_Msize(uint32, range 1024 to UINT32_MAX, default 1048576)
_9P_RDMA_Backlog(uint16, range 1 to UINT16_MAX, default 10)
_9P_RDMA_Inpool_size(uint16, range 1 to UINT16_MAX, default 64)
_9P_RDMA_Outpool_Size(uint16, range 1 to UINT16_MAX, default 32)
CEPH {}
-------
Ceph_Conf(path, default "")
GPFS {}
-------
link_support(bool, default true)
symlink_support(bool, default true)
cansettime(bool, default true)
umask(mode, range 0 to 0777, default 0)
auth_xdev_export(bool, default false)
xattr_access_rights(mode, range 0 to 0777, default 0400)
Delegations(enum, values [None, read, write, readwrite, r, w, rw],
default read)
pnfs_file(bool, default false)
fsal_trace(bool, default true)
fsal_grace(bool, default false)
RGW {}
-------
The following configuration variables customize the
startup of the FSAL's radosgw instance.
* ceph_conf -- optional full-path to the Ceph configuration
file (equivalent to passing "-c /path/to/ceph.conf" to any
Ceph binary
* name -- optional instance name (equivalent to passing
"--name ceph.rgw.foohost" to the radosgw binary); the value
provided here should be the same as the section name (sans
brackets) of the radosgw facility in the Ceph configuration
file (which must exist)
* cluster -- optional cluster name (equivalent to passing
"--cluster foo" to any Ceph binary); use of a non-default
value for cluster name is uncommon, but can be verified by
examining the startup options of Ceph binaries
* init_args -- additional argument strings which will be
passed verbatim to the radosgw instance startup process as
if they had been given on the radosgw command line; provided
for customization in uncommon setups
ceph_conf(path, default "")
name(string, default "")
cluster(string, default "")
init_args(string, default "")
VFS {}
------
link_support(bool, default true)
symlink_support(bool, default true)
cansettime(bool, default true)
maxread(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
maxwrite(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
umask(mode, range 0 to 0777, default 0)
auth_xdev_export(bool, default false)
xattr_access_rights(mode, range 0 to 0777, default 0400)
XFS {}
------
link_support(bool, default true)
symlink_support(bool, default true)
cansettime(bool, default true)
maxread(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
maxwrite(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
umask(mode, range 0 to 0777, default 0)
auth_xdev_export(bool, default false)
xattr_access_rights(mode, range 0 to 0777, default 0400)
ZFS {}
------
link_support(bool, default true)
symlink_support(bool, default true)
cansettime(bool, default true)
maxread(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
maxwrite(uint64, range 512 to 64*1024*1024, default 64*1024*1024)
umask(mode, range 0 to 0777, default 0)
auth_xdev_export(bool, default false)
xattr_access_rights(mode, range 0 to 0777, default 0400)
PROXY {}
--------
link_support(bool, default true)
symlink_support(bool, default true)
cansettime(bool, default true)
/*MAX_READ_WRITE_SIZE == 1MB*/
/*FSAL_MAXIOSIZE = 64 MB*/
/*SEND_RECV_HEADER_SPACE == 512 Bytes*/
maxread(uint64, range 512 to FSAL_MAXIOSIZE - SEND_RECV_HEADER_SPACE,
default MAX_READ_WRITE_SIZE)
maxwrite(uint64, range 512 to FSAL_MAXIOSIZE - SEND_RECV_HEADER_SPACE,
default MAX_READ_WRITE_SIZE)
umask(mode, range 0 to 0777, default 0)
auth_xdev_export(bool, default false)
xattr_access_rights(mode, range 0 to 0777, default 0400)
PROXY { Remote_Server {} }
--------------------------
Retry_SleepTime(uint32, range 0 to 60, default 10)
Srv_Addr(ipv4_addr default "127.0.0.1")
NFS_Service(uint32, range 0 to UINT32_MAX, default 100003)
/*NFS_SendSize must be greater than maxwrite+SEND_RECV_HEADER_SPACE .*/
/*NFS_RecvSize must be greater than maxread+SEND_RECV_HEADER_SPACE .*/
/*MAX_READ_WRITE_SIZE == 1 MB*/
/*SEND_RECV_HEADER_SPACE == 512 Bytes*/
/*FSAL_MAXIOSIZE = 64 MB*/
NFS_SendSize(uint32, range 512 + SEND_RECV_HEADER_SPACE
to FSAL_MAXIOSIZE,
default MAX_READ_WRITE_SIZE + SEND_RECV_HEADER_SPACE)
NFS_RecvSize(uint32, range 512 + SEND_RECV_HEADER_SPACE
to FSAL_MAXIOSIZE,
default MAX_READ_WRITE_SIZE + SEND_RECV_HEADER_SPACE)
NFS_Port(inet_port, range 0 to UINT16_MAX, default 2049)
Use_Privileged_Client_Port(bool, default false)
RPC_Client_Timeout(uint32, range 1 to 60*4, default 60)
Remote_PrincipalName(string, no default)
KeytabPath(string, default "/etc/krb5.keytab")
Credential_LifeTime(uint32, range 0 to 86400*2, default 86400)
Sec_Type(enum, values [krb5, krb5i, krb5p], default krb5)
Active_krb5(bool, default false)
Enable_Handle_Mapping(bool, default false)
HandleMap_DB_Dir(string, default "/var/ganesha/handlemap")
HandleMap_Tmp_Dir(string, default "/var/ganesha/tmp")
HandleMap_DB_Count(uint32, range 1 to 16, default 8)
HandleMap_HashTable_Size(uint32, range 1 to 127, default 103)