# This is a config file for BeeGFS clients. # http://www.beegfs.com # --- [Table of Contents] --- # # 1) Settings # 2) Mount Options # 3) Basic Settings Documentation # 4) Advanced Settings Documentation # # --- Section 1.1: [Basic Settings] --- # sysMgmtdHost = # # --- Section 1.2: [Advanced Settings] --- # connAuthFile = /etc/beegfs/conn.auth connDisableAuthentication = false connClientPort = 8004 connMgmtdPort = 8008 connPortShift = 0 connCommRetrySecs = 600 connFallbackExpirationSecs = 900 connInterfacesFile = connRDMAInterfacesFile = connMaxInternodeNum = 12 connMaxConcurrentAttempts = 0 connNetFilterFile = connUseRDMA = true connTCPFallbackEnabled = true connTCPRcvBufSize = 0 connUDPRcvBufSize = 0 connRDMABufNum = 70 connRDMABufSize = 8192 connRDMAFragmentSize = page connRDMATypeOfService = 0 connTcpOnlyFilterFile = logClientID = false logLevel = 3 quotaEnabled = false sysCacheInvalidationVersion = true sysCreateHardlinksAsSymlinks = false sysMountSanityCheckMS = 11000 sysSessionCheckOnClose = false sysSyncOnClose = false sysTargetOfflineTimeoutSecs = 900 sysUpdateTargetStatesSecs = 30 sysXAttrsEnabled = false tuneFileCacheType = buffered tunePreferredMetaFile = tunePreferredStorageFile = tuneRemoteFSync = true tuneUseGlobalAppendLocks = false tuneUseGlobalFileLocks = false # # --- Section 1.3: [Enterprise Features] --- # # See end-user license agreement for definition and usage limitations of # enterprise features. # sysACLsEnabled = false # # --- Section 2: [Mount Options] --- # # Valid mount options are: # cfgFile, logLevel, connPortShift, connMgmtdPort, # sysMgmtdHost, sysMountSanityCheckMS, connInterfacesList. # # Use the mount option "cfgFile" to specify a different config file # for the beegfs client. # Example: # $ /bin/mount -t beegfs beegfs_nodev /beegfs -ocfgFile=/etc/anotherconfig.conf # # Use the mount option "connInterfacesList" to pass the list of interfaces names. # These interfaces names should be space-separated. # Example: # $ /bin/mount -t beegfs beegfs_nodev /beegfs \ # -ocfgFile=/etc/anotherconfig.conf,connInterfacesList='ib0 eth0' # # Mount options override the corresponding config file values. # Example: # $ /bin/mount -ocfgFile=/etc/anotherconfig.conf,logLevel=3 ... # # --- Section 3: [Basic Settings Documentation] --- # # [sysMgmtdHost] # Hostname (or IP) of the host running the management service. # (See also "connMgmtdPort".) # Default: # # --- Section 4: [Advanced Settings Documentation] --- # # # --- Section 4.1: [Connections & Communication] --- # # [connAuthFile] # The path to a file that contains a shared secret for connection based # authentication. Only peers that use the same shared secret will be able to # connect. # Default: # [connDisableAuthentication] # If set to true, explicitly disables connection authentication and allow the # service to run without a connAuthFile. Running BeeGFS without connection # authentication is considered insecure and is not recommended. # Default: false # [connClientPort] # The UDP port of the client. # Default: 8004 # [connMgmtdPort] # The UDP and TCP port of the management node. # Default: 8008 # [connPortShift] # Shifts all following UDP and TCP ports according to the specified value. # Intended to make port configuration easier in case you do not want to # configure each port individually. # Default: 0 # [connCommRetrySecs] # The time (in seconds) for retries in case a network communication fails # (e.g. if a server is down). After this time, the I/O operation will fail # and the calling process will receive an error. # Note: Set this value to 0 for infinite retries. In this case, a process # accessing the file system will block until the corresponding server # becomes available (or until it is interrupted by a signal). # Default: 600 # [connFallbackExpirationSecs] # The time in seconds after which a connection to a fallback interface expires. # When a fallback connection expires, the system will try to establish a new # connection to the other hosts primary interface (falling back to another # interface again if necessary). # Note: The priority of node interfaces can be configured using the # "connInterfacesFile" parameter. # Default: 900 # [connInterfacesFile] # The path to a text file that specifies the names of the interfaces, which # may be used for communication by other nodes. One interface per line. The # line number also defines the priority of an interface. # Example: "ib0" in the first line, "eth0" in the second line. # Values: This setting is optional. If unspecified, all available interfaces # will be published and priorities will be assigned automatically. # Note: This has no influence on outgoing connections. The information is sent # to other hosts to inform them about possible communication paths. # Default: # [connInterfacesList] # Comma-separated list of interface names. Performs the same function as # connInterfacesFile. # If use as the mount option "connInterfacesList" to pass the list of interfaces # names then it override the corresponding config file/list values.. # The interfaces names should be space-separated. # Example: # $ /bin/mount -t beegfs beegfs_nodev /beegfs \ # -ocfgFile=/etc/anotherconfig.conf,connInterfacesList='ib0 eth0' # # Default: # [connRDMAInterfacesFile] # The path to a text file that specifies the names of IPoIB interfaces, which # may be used for outbound RDMA communication with other nodes. One interface # per line. These interfaces must be RDMA-capable NICs. # # All storage and metadata servers must be IP-reachable from each specified # interface. # # Specifying interfaces in this file limits which RDMA NICs are used for outbound # RDMA. Specifying multiple interfaces allows the client to use multiple RDMA # interfaces for outbound communication. # # Example: "ib0" in the first line, "ib1" in the second line. # Values: This setting is optional. When none are specified, the client will use # the first client host interface that can reach the remote node via IPoIB, # as decided by rdma_cm. When multiple interfaces are specified, the client # round-robins creation of outbound RDMA connections across the specified # interfaces. # Default: # [connMaxInternodeNum] # The maximum number of simultaneous connections to the same node. # Default: 12 # [connMaxConcurrentAttempts] # The maximum number of simultaneous connection attempts. This may help in case # establishing new connections keeps failing and produces fallbacks. # It may happen particularly when using RDMA in an Omni-Path setup. If you # don't have failing connection attempts, tuning this option might still lead # to a faster connection process. This option is experimental, so there is no # experience with different values. Setting it to 0 disables it, which means # concurrent connection attempts are not limited. # Default: 0 # [connNetFilterFile] # The path to a text file that specifies allowed IP subnets, which may be used # for outgoing communication. One subnet per line in classless notation (IP # address and number of significant bits). # Example: "192.168.10.0/24" in the first line, "192.168.20.0/24" in the second # line. # This value is optional. If unspecified, all addresses are allowed for # outgoing communication. # Default: # [connUseRDMA] # Enables the use of Remote Direct Memory Access (RDMA) for InfiniBand or RoCE. # For this setting to be effective, OFED ibverbs support also has to be enabled # at compile time of the beegfs client modules (typically via # beegfs-client-autobuild.conf). # Default: true # [connTCPFallbackEnabled] # Enables fallback from RDMA to TCP sockets when there is a problem connecting # via RDMA to a storage or meta node. # Default: true # [connTCPRcvBufSize], [connUDPRcvBufSize] # Sets the size for TCP and UDP socket receive buffers (SO_RCVBUF). The maximum # allowed value is determined by sysctl net.core.rmem_max. This value is ignored # if it is less than the default value determined by net.core.rmem_default. # For legacy reasons, the default value 0 indicates that the buffer size is set # to connRDMABufNum * connRDMABufSize. # -1 indicates that the buffer size should be left at the system default. # Default: 0 # [connRDMABufNum], [connRDMABufSize], [connRDMAFragmentSize] # InfiniBand RDMA buffer settings. # connRDMABufSize is the maximum size of a buffer (in bytes) that will be sent # over the network; connRDMABufNum is the number of available buffers that can # be in flight for a single connection. These client settings are also applied # on the server side for each connection. Ideally, the largest, commonly used # filesytem chunksize should be < connRDMABufNum * connRDMABufSize to achieve # the best performance. # # The minimum usable value for connRDMABufNum is 3, which is required by the # BeeGFS RDMA protocol. Lower values will immediately result in communication # failures. # # connRDMAFragmentSize determines how contiguous memory is allocated per # buffer. If connRDMAFragmentSize=4096 and connRDMABufSize=8192, each buffer # is allocated in 2 regions of 4096 contiguous bytes. Less fragmentation # improves performance. The value "none" indicates that buffers will not be # fragmented, resulting in allocation of contiguous regions of # connRDMABufSize. The value "page" uses the Linux PAGE_SIZE as the # fragmentation value. # The reason for using fragmentation is that large allocations # are more likely to fail if there is a shortage of heap memory. The minimum # fragmentation value is PAGE_SIZE. Using larger values (or 0) should improve # performance and allows for larger values of connRDMABufSize. # # Note: RAM usage per connection is connRDMABufSize x connRDMABufNum x 2. Keep # resulting RAM usage (x connMaxInternodeNum x number_of_clients) on the # server in mind when increasing these values. # Default: 70, 8192, page # [connRDMAMetaBufNum], [connRDMAMetaBufSize], [connRDMAMetaFragmentSize] # InfiniBand RDMA buffer settings for connections to beegfs-meta. # These settings behave in the same way as connRDMABufNum, connRDMABufSize # and connRDMAFragmentize except that they are used for connections to # beegfs-meta. # Metadata messages are usuallly small and do not require the large amount # of buffer space that is typically configured for connections to # beegfs-storage. One exception to this would be if large extended attributes # are added to files. # connRDMAMetaBufNum = "default" indicates that connRDMABufNum should be used. # connRDMAMetaBufSize = "default" indicates that connRDMABufSize should be used. # connRDMAMetaFragmentSize = "default" indicates that connRDMAFragmentSize # should be used. # The minimum value for connRDMAMetaBufNum is 3. # Default: default, default, default # [connRDMATypeOfService] # InfiniBand provides the option to set a type of service for an application. # This type of service can be used by your subnet manager to provide Quality of # Service functionality (e.g. setting different service levels). # In openSM the service type will be mapped to the parameter qos-class, which # can be handled in your QoS configuration. # See # www.openfabrics.org/downloads/OFED/ofed-1.4/OFED-1.4-docs/ # QoS_management_in_OpenSM.txt # for more information on how to configure openSM for QoS. # This parameter sets the type of service for all outgoing connections of this # daemon. # Default: 0 (Max: 255) # [connRDMAKeyType] # In RDMA, an "rkey" is used to provide an access token for a peer to access # local memory regions that are registered for RDMA. Historically, # BeeGFS used either a "DMA key" or an "unsafe global rkey" depending upon # whether or not "unsafe global rkey" is supported by the operating system. # This is now selectable. "DMA key" is not supported on kernel >= 4.9 # unless MOFED is installed. If an unsupported option is specified, there # will be warnings in syslog and RDMA connections will not be established. # Use of "unsafe global rkey" is preferred, but generates a syslog message # every time an RDMA connection is established: "enabling unsafe global rkey". # Neither option is considered "safe" because they both provide access # to all DMA mapped memory for a given connection. This technique is # used to provide better performance for small I/O requests. # "register" uses a memory registration per connection to provide an rkey. # "register" is not compatible with NVIDIA GPUDirect Storage. # Specify "dma" or "register" to squelch the syslog warning. # Values: "global" (unsafe global rkey), "dma" (DMA key), "register" # (memory registration) # Default: "global" # [connTcpOnlyFilterFile] # The path to a text file that specifies IP address ranges to which no RDMA # connection should be established. This is useful e.g. for environments where # all hosts support RDMA, but some hosts cannot connect via RDMA to some other # hosts. # Example: "192.168.10.0/24" in the first line, "192.168.20.0/24" in the second # line. # Values: This setting is optional. # Default: # [connMessagingTimeouts] # These constants are used to set some of the connection timeouts for sending # and receiving data between services in the cluster. They used to be hard-coded # (CONN_LONG_TIMEOUT, CONN_MEDIUM_TIMEOUT and CONN_SHORT_TIMEOUT) but are now # made configurable for experimentation purposes. # This option takes three integer values of milliseconds, separated by a comma # in the order long, medium, short. # WARNING: This is an EXPERIMENTAL configuration option that should not be # changed in production environments unless properly tested and validated. # Some configurations can lead to service lockups and other subtle issues. # Please make sure that you know exactly what you are doing and properly # test any changes you make. # Default: 600000,90000,30000 # [connRDMATimeouts] # These constants are used to set some of the timeouts for sending and receiving # data between services in the cluster via RDMA. They used to be # hard-coded IBVSOCKET_CONN_TIMEOUT_MS, IBVSOCKET_COMPLETION_TIMEOUT_MS, # IBVSOCKET_FLOWCONTROL_ONSEND_TIMEOUT_MS, # IBVSOCKET_FLOWCONTROL_ONRECV_TIMEOUT_MS and a 10000 literal for poll timeout # but are now made configurable for experimentation purposes. # This option takes five integer values of milliseconds, separated by a comma # in the order connectMS, completionMS, flowSendMS, flowRecvMS and pollMS. # WARNING: This is an EXPERIMENTAL configuration option that should not be # changed in production environments unless properly tested and validated. # Some configurations can lead to service lockups and other subtle issues. # Please make sure that you know exactly what you are doing and properly # test any changes you make. # Default: 5000,300000,180000,180000,10000 # --- Section 4.2: [Logging] --- # # [logClientID] # Defines whether the ClientID should appear in each log line. # This is mainly helpful if BeeGFS is mounted multiple times on this machine. # Default: false # [logLevel] # Defines the amount of log messages. The higher this level, the more detailed # the log messages will be. # Level 3 will print connection messages, level 4 will print syscall messages, # level 5 will print debug messages. # Note: Levels above 3 might decrease performance. # Default: 3 (Max: 5) # # --- Section 4.3: [Quota Settings] --- # # [quotaEnabled] # Enables user and group quota support by transferring extra user data to the # servers. This uses quota information of the underlying file systems on the # storage servers, which needs to be enabled by the server administrator. # Note: In the first implementation, only quota monitoring is available. # Note: Get quota information with "beegfs-ctl --getquota". # Note: If this option is true, performance might be slightly decreased due to # extra information tracking. # Default: false # # --- Section 4.4: [System Settings] --- # # [sysCacheInvalidationVersion] # # Enable the client to invalidate its cache and reload the inode of a file when # the version parameter of the file on metadata changes due to internal metadata # operations such as stripe pattern change. This is done by comparing the # version parameters on client and metadata on the first lookup after internal # metadata changes. If the versions differ, the client invalidates the cache and # reloads the inode. # Note: If this option is set to true, performance may be decreased. # Default: true # [sysCreateHardlinksAsSymlinks] # Create a symlink when an application tries to create a hardlink for files in # different directories. # Default: false # [sysMountSanityCheckMS] # Perform some basic checks during mount (e.g. whether the client helper daemon # and storage servers are reachable). Mounting will fail if a problem is # detected. # Values: Set the time (in ms) you want to spend waiting for the servers # (especially the management daemon) to respond. Use 0 to disable all checks # and allow mounting even if no servers are reachable. # Default: 11000 # [sysSessionCheckOnClose] # Checks for a valid session on the storage servers when a file is closed. If # this option is set to true, a potential cache loss from a crash of a storage # server can be detected. This will be reported to the user application as a # close() error code. # Note: There is also a session check included in all read/write/fsync messages, # which is independent of this setting. # Note: If this option is set to true, more network messages are required on # close(), so performance will decreased. # Default: false # [sysSessionChecksEnabled] # Enable session checks in read/write/fsync operations to be able to detect # server crashes that could have caused a loss of server side caches. Disabling # these checks is useful in certain system configurations to be able to cleanly # resume I/O after a server crash/unclean failover. # WARNING: Disabling session checks can lead to undetected cache loss and # therefore silent data corruption on the storage servers. Only disable the # checks if absolutely necessary and if there are measures in place to prevent # cache loss (synchronous mounts, battery backed caches) on the storage servers. # Default: true # [sysSyncOnClose] # Sync file contents on close. If this option is set to true, the storage # servers will flush the write cache of a file to disk immediately when it is # closed by the application. If this option is set to false, the write cache # will be flushed to disk asynchronously after a few seconds. # Note: If this option is true, performance will be decreased. # Default: false # [sysTargetOfflineTimeoutSecs] # Timeout until all storage targets and metadata nodes are considered offline # when no target state updates can be fetched from the management server. # If this value is 0, targets will never be set to offline due to an # unreachable management node and will stay in state probably-offline. # Note: This must be at least twice as large as the value of # sysTargetOfflineTimoutSecs in the server config files. # Values: time in seconds # Default: 900 # [sysUpdateTargetStatesSecs] # Interval in which the states of the storage targets are checked. # Note: This must be significantly shorter than the sysTargetOfflineTimeoutSecs # value set in the server (recommendation: maximum 1/3 of it). # Values: time in seconds # Default: 30 # [sysXAttrsEnabled] # Enable extended attributes (also know as EAs/xattrs). # Default: false # [sysXAttrsCheckCapabilities] # Check inodes for existing "security.capability" extended attribute and # optionally cache to reduce metadata requests and increase write performance. # The Linux kernel uses a security mechanism that automatically removes # setuid/setgid bits and capabilities from files when they are changed. This is # done to prevent users from executing binaries with elevated privileges that # were changed after the privileges were originally set. That mechanism requires # that, by default, the kernel has to check each file for existing capabilities # on every write which leads to a large overhead in metadata RPCs to fetch the # "security.capability" extended attribute. To optimize this, Linux allows file # systems to set a flag (S_NOSEC) on the file, which short-circuits these # checks. # This configuration option configures the file system mount to allow the # client to either always check, check once and cache that flag after a first # lookup of the extended attribute returns an empty result, or set the flag on # inode creation and never check. The flag will automatically be cleared when # capabilities are modified on this client. It will, however, currently not # be cleared when a different client modifies capabilities or sets setuid/setgid # bits, which can lead to capabilities not being cleared, even after the file is # written to. If this is a concern, this option should be set to "always". # As long as BeeGFS is mounted using the "nosuid" mount option (which is # recommended and the default setting), elevating privileges via setuid/setgid # bits and capabilities is disabled and it is safe to set this option to "never". # Possible values: # always (always check for security xattr, never cache the result) # cache (check for security xattr once, then cache) # never (mark new inodes immediately, never check security xattr) # Default: never # [sysBypassFileAccessCheckOnMeta] # Allow this client to bypass file access restrictions enforced by metadata # servers. When enabled, the client is permitted to open files even if access # restrictions are currently in place (e.g., file marked read-only, # write-locked, or fully restricted). This setting is primarily intended for # specialized clients in controlled environments, such as HSM (Hierarchical # Storage Management) systems that need to restore file data, or backup/recovery # tools that require access to otherwise locked files. # Note: This setting only affects metadata-level access checks and has no effect # on other security or permission mechanisms. # Default: false # [sysACLsEnabled] # Allow the creation and enforcement of Access Control Lists (ACLs). # Note: Only works if sysXAttrsEnabled=true. # Note: Requires at least Linux kernel version 3.2. # Note: Enabling this setting can affect metadata performance. # Default: false # [sysFileEventLogMask] # Specifies which file system events shall be logged by the metadata servers. If # unset, this client doesn't send log events at all. This can either be "none" # or a comma separated list of event types to log. The following event types # (and any comma-separated combination) are possible: # "flush" (explicit data flushes on files), "close" (close writable file), # "trunc" (file truncation), "setattr" (set attributes), # "link-op" (create,mkdir,mknod,create symlink,create hardlink,rmdir,unlink, rename), # "read" (deprecated, see notes) or "open-read" (file opened in read-only mode), # "open-write" (file opened in write only mode), # "open-readwrite" (file opened for both read and write), # Note: If a client opens a file multiple times, "close" will only generate an # event if the last fd is closed. If events for each fd shall be generated, # "flush" needs to be used. However, "flush" might have a small performance # impact. Also note that "read" is deprecated for file opening in read-only mode, # but it is still allowed for backward compatibility. It is recommended to use # "open-read" instead of "read" for clarity and consistency. # Example: sysFileEventLogMask = close,trunc,setattr,link-op,open-read # Default: none # [sysRenameEbusyAsXdev] # Changes the semantics of rename() to return an EXDEV error if a file could not # be moved because it is in use (instead of the default EBUSY). Applications and # tools like mv can handle EXDEV and fall back to copy/unlink for the files. # This is mostly useful for NFS exports, where files may not be closed by the # server until after the last open file handle has been closed by clients. This # can cause spurious EBUSY errors in clients that close a file and rename it # immediately afterwards. # Default: false # # --- Section 4.5: [Tuning] --- # # [tuneFileCacheType] # Sets the file read/write cache type. # Values: "none" (disable client caching), "buffered" (use a pool of small # static buffers for write-back and read-ahead), "native" (use the kernel # pagecache), "paged" (experimental, deprecated). # Note: The cache protocols are currently non-coherent (but caches are # automatically flushed when a file is closed). # Note: When client and servers are running on the same machine, "paged" mode # contains the typical potential for memory allocation deadlocks (also known # from local NFS server mounts). So do not use "paged" mode for clients that # run on a metadata or storage server machine. # Default: buffered # [tunePreferredMetaFile], [tunePreferredStorageFile] # Path to a text file that contains the numeric IDs of preferred storage targets # and metadata servers. These will be preferred when the client creates new file # system entries. This is useful e.g. to take advantage of data locality in the # case of multiple data centers. If unspecified, all available targets and # servers will be used equally. # Usage: One targetID per line for storage servers, one nodeID per line for # metadata servers. # Note: TargetIDs and nodeIDs can be queried with the beegfs-ctl tool. # Default: # [tuneRemoteFSync] # Controls whether fsync() syscalls from a user application should only be # executed on the client to transfer data from the client cache to server # cache (=false); or also on the servers to flush the server's cached file # data to the disks (=true). # Default: true # [tuneUseGlobalAppendLocks] # Controls whether files opened in append mode should be protected by locks on # the local machine only (=false) or globally on the servers (=true). # Default: false # [tuneUseGlobalFileLocks] # Controls whether application advisory file locks via flock() and fcntl() # should be checked for conflicts on the local machine only (=false) or # globally on the servers (=true). # Default: false # [tuneCoherentBuffers] # Enables or disables coherence between the buffers used by # tuneFileCacheType=buffered and the page cache. # If a file is concurrently accessed via mmap() regions and read()/write() # system calls, the buffers used by tuneFileCacheType=buffered and the page # cache used by mmap() may go out of sync - changes made in an mmap()ed region # may not be visible to read() calls immediately, or changes made by write() # calls may not be immediately reflected in mmap()ed regions. # Many programs that use both methods of accessing a file assume that # read()/write() and mmap() present the same view of the file, if this is not # the case, those programs may not work correctly. Programs that have been # observed to misbehave with non-coherent buffers are, for example, git and # some in-memory database applications. # When this option is enabled, files that are currently mmap()ed will behave as # though they had been opened with tuneFileCacheType=none # Default: true # # --- Section 5: [Expert options] # # [connUnmountRetries] # Retry communications during unmount. # If this option is set to `true` and a communication error occurs during # unmont, for example due to a transient network fault, the unsuccessful # communications will be retried normally. When set to `false` they will not be # retried; this leads to a quicker unmount, but resources allocated to current # client will not be freed for a few hours. # Default: true # [tuneFileCacheBufSize] # When using buffered mode: maximum size of the (contiguous) data cache for an # open file. # When using native mode: threshold for direct operations. If a read() or # write() passes a buffer size larger than tuneFileCacheBufSize the client will # bypass the page cache and send/receive the data directly to/from the storage # servers. # Default: 524288 (512KiB) # [tuneFileCacheBufNum] # When using buffered mode: maximum number of file caches to preallocate # for the mount. When a file is opened a cache is allocated, up to this number. # If the maximum number of caches is reached no cache is allocated and all # read/write operations for the file go to the storage servers directly. # Default: 4*(number of CPUs) # [tunePageCacheValidityMS] # Maximum lifetime of cached data in the page cache. # In buffered mode the page cache is used for mmap(), in native mode the page # cache is used for all data. Data in the page cache that was not yet written # to the storage server is written after at most this time, data that was read # but not modified is discarded. # Default: 2000000000 (approx. 23 days) # [tuneDirSubentryCacheValidityMS] # Validity time of directory attribute data, in milliseconds. # Attributes of directories (eg stat() data) that have been loaded from the # metadata servers are assumed to be valid for this amount of time without # requiring a refresh. Once the time has passed the next access will cause a # refresh. # Default: 1000 # [tuneFileSubentryCacheValidityMS] # Validity time of file attribute data, in milliseconds. # Attributes of files (eg stat() data) that have been loaded from the metadata # servers are assumed to be valid for this amount of time without requiring a # refresh. Once the time has passed the next access will cause a refresh. # Default: 0 # [tuneENOENTCacheValidityMS] # Validity time of the non-existing file in milliseconds. # A negative result of a stat call indicating "No such file or directory" # (ENOENT) is assumed to be valid for this amount of time without requiring a # new request to the meta server. Once the time has passed the next access will # cause a refresh. # Default: 0 # [tunePathBufSize] # Size of buffers used for constructing paths. # Whenever a full path must be constructed (eg for log messages) a preallocated # buffer of this size will be used. # Default: 4096 # [tunePathBufNum] # Number of path buffers for path construction. # Determines how many path buffers are preallocated during mount. If no buffers # are available for an operation the operation must wait for another thread to # free enough buffers. # Default: 8 # [tuneMsgBufSize] # Size of buffers used for messaging. # Messages sent and received by the client (except logging messages) use # buffers preallocated at mount time. Buffers are allocated with the size # given here. # Default: 65536 # [tuneMsgBufNum] # Number of message buffers. # During mount this many message buffers are preallocated. If an operation # requires communication with a server but all buffers are used, the operation # must wait until a buffer is released. # Default: 4*(number of CPUs) + 1 # [tuneRefreshOnGetAttr] # If set to `true`, file attributes will be loaded from the server on each call # to fstat(). When set to `false` a call to fstat() may return stale # information for files that are not currently open; this can happen mainly # when NFS exports are used. # Default: false # [tuneInodeBlockBits] # Sets the block size of file on the mountpoint to 2**tuneInodeBlockBits. # Default: 19 (512KiB) # [tuneEarlyCloseResponse] # Request close responses from the metadata server before the file is fully closed. # This may improve close() performance, but closed files may be accounted as # open for a short time after close() has returned. Files accounted as open # cannot be moved. # Default: false # [tuneUseBufferedAppend] # Used only buffered mode. If set, writes to files opened with O_APPEND will be # cached. Ignored unless tuneUseGlobalAppendLocks is also set. # Default: true # [tuneStatFsCacheSecs] # Validity time of statfs() results, in seconds. # Results of statfs(), once queried from the storage servers, will be cached # for this amount of time. # Default: 10 # [sysInodeIDStyle] # Sets the hash function used to compute inode numbers from metadata IDs. # The *32 options produce 32 bit inodes numbers, the *64 variants produce 64 # bit inode numbers. # Possible values: # hash32 # hash64 # md4hash32 # md4hash64 # Default: md4hash64