Skip to content

mount.flexfs

mount.flexfs is the FUSE-based mount client that presents a flexFS volume as a local POSIX filesystem. It connects to a metadata server for inode/dentry operations and to object storage (directly or through a proxy group) for block data.

These flags apply to every subcommand.

FlagTypeDefaultDescriptionVisibility
--reportErrorsboolfalseReport errors and panics to Paradigm4. Off by default; a volume or token flag can mandate it for every mount of a volume — see Accepted Volume and Token Flags.Public

What is sent: panic traces, auto-update failures, and abnormal exits. When a mount fails to come up at all — the daemon dies during startup, or does not mount within ten minutes — the child’s entire log file is sent as well, since the trace alone rarely explains a startup failure. Mount logs carry volume names, mount points and paths, so treat enabling this as a decision about what leaves the host.

SubcommandDescriptionVisibility
deinit credsRemove the credentials filePublic
deinit fstabRemove the fstab entryPublic
init credsInitialize the credentials filePublic
init fstabCreate an fstab entry and mount pointPublic
licensePrint license informationPublic
startStart the mount clientPublic
versionPrint the build versionPublic
Terminal window
mount.flexfs deinit creds <name>

Removes the credentials file for a volume. If the credentials file is referenced by an fstab entry or systemd unit, the command refuses unless --force is passed, in which case it removes the references too.

FlagTypeDefaultDescriptionVisibility
--credsFilestring~/.flexfs/mount/creds/<name>Path to the credentials file. The <name> placeholder is replaced with the volume name.Public
--forceboolfalseRemove creds even if referenced by fstab/systemd (removes references too)Public
Terminal window
sudo mount.flexfs deinit fstab <mount-point>

Removes flexFS fstab entries for the given mount point from /etc/fstab. Requires root.

Terminal window
mount.flexfs init creds --adminAddr <admin-addr> [--token <uuid>]

Initializes a credentials file for a volume. If --token is omitted, the command prompts for a volume token interactively.

The reporting utilities (analyze.flexfs, dedup.flexfs, find.flexfs) fall back to this file when the user running them has no credentials of their own, so a user who has run this command needs no further setup to query the volume.

FlagTypeDefaultDescriptionVisibility
--adminAddrstring""Admin server address (required)Public
--credsFilestring~/.flexfs/mount/creds/<name>Path to the credentials file. The <name> placeholder is replaced with the volume name.Public
--forceboolfalseOverwrite existing credentials filePublic
--noAdminSSLboolfalseDisable SSL for admin server connectionsInternal
--printNameboolfalsePrint the volume name to stdout after initializationPublic
--secretstring""Volume encryption secret (will prompt if omitted and needed)Public
--tokenstring""Volume auth token (will prompt if omitted)Public
Terminal window
sudo mount.flexfs init fstab <name> <mount-point> [flags]

Creates an /etc/fstab entry and the mount point directory for the volume. Requires root.

FlagTypeDefaultDescriptionVisibility
--credsFilestring~/.flexfs/mount/creds/<name>Path to the credentials file. The <name> placeholder is replaced with the volume name.Public
--forceboolfalseOverwrite an existing fstab entry for this volumePublic
--mountOptionsstring""Additional mount options to include in the fstab entryPublic
--nowboolfalseMount the volume immediately after creating the fstab entryPublic
Terminal window
mount.flexfs start [flags] <name> <mount-point>

The start subcommand connects to the admin server, retrieves volume settings, and mounts the filesystem at the specified mount point. In the default daemon mode, the process forks into the background and writes logs to a file. Use --foreground to run in the foreground.

FlagTypeDefaultDescriptionVisibility
--aclboolfalseEnable extended ACL support (implies --xattr)Public
--adminAddrstring""Admin server address (overrides credentials file)Internal
--allSquashboolfalseMap all uids/gids to the anonymous uid/gid (implies --rootSquash)Public
--anonGIDuint3265534GID squashed callers are mapped toPublic
--anonUIDuint3265534UID squashed callers are mapped toPublic
--atTimestring""Mount at a point in time (RFC3339, implies --ro)Public
--attrValidstring1hHow long to cache file attributes, given as a duration (30s, 1h) or whole seconds (3600). Must resolve to a whole number of seconds; use --attrValidNsec for sub-second precision.Internal
--attrValidNsecuint320Nanosecond offset for --attrValidInternal
--blockRTTboolfalseLog block storage round-trip timesInternal
--credsFilestring~/.flexfs/mount/creds/<name>Path to the credentials file. The <name> placeholder is replaced with the volume name.Public
--diagHolesboolfalseLog a diagnostic line whenever a read returns a zero-filled block because the file has no data stored for it. Costs an extra metadata round trip per zero-filled block and is not rate limited; leave it off outside an investigation.Internal
--dirPageSizeuint325000Directory stream page sizeInternal
--dirtyActiveuint320 = autoMaximum number of active dirty block syncsInternal
--dirtyCapacityuint320 = autoIn-memory dirty block cache capacity (blocks)Internal
--dirValidstring5sHow long to cache directory stream pages, given as a duration (5s, 1m) or whole seconds (5). Must resolve to a whole number of seconds.Internal
--diskFolderstring~/.flexfs/mount/cache/<pid>On-disk block cache folder pathPublic
--diskMaxBlockSizestring256KMaximum processed block size that will be cached to disk. Blocks larger than this after processing bypass the disk cache. Given as a size (256K, 1M) or bytes (262144). 0 means no limit.Public
--diskQuotastring"" = disabledMaximum disk usage for the block cache (e.g. 5%, 64M, 10G; empty or 0 = disabled)Public
--diskWritebackboolfalseEnable disk cache writeback modePublic
--entryValidstring1sHow long the kernel caches directory entries, given as a duration (1s, 30s) or whole seconds (1). Must resolve to a whole number of seconds; use --entryValidNsec for sub-second precision.Internal
--entryValidNsecuint320Nanosecond offset for --entryValidInternal
--forceClientDACboolfalseForce extended-ACL enforcement into the mount client (implies --acl)Internal
--foreground, -fboolfalseRun in foreground mode (implies --noRemount)Public
--fuseRTTboolfalseLog FUSE round-trip timesInternal
--invalQueueSlotsuint320 = autoTotal kernel invalidation queue slots across all lanesInternal
--logFilestring~/.flexfs/mount/logs/<name>-<pid>.logLog file path in daemon mode. The <name> and <pid> placeholders are replaced at startup.Public
--maxBopsuint320 = autoMaximum number of parallel block operationsInternal
--memCapacitystring"" = autoIn-memory block cache capacity in blocks or bytes (e.g. 2000, 64M, 2%)Internal
--memLimitstring"" = autoSoft memory limit for the mount process (e.g. 40%, 512M; 0 = disabled). A GOMEMLIMIT environment variable is honored when setInternal
--memStatsboolfalseLog buffer pool and LRU cache statsInternal
--metaRTTboolfalseLog metadata store round-trip timesInternal
--metricsboolfalseEnable the Prometheus metrics endpoint (see Metrics Reference)Public
--metricsPortint6074Metrics server portPublic
--noAdminSSLboolfalseDisable SSL for admin server connections, auto-update downloads includedInternal
--noAppendBarrierboolfalseSkip the cache synchronization each append performs for same-mount readers (readers may transiently see NUL bytes inside the file)Internal
--noAppendDirectReadsboolfalseLet reads of actively-appended files use normal OS caching instead of always-fresh reads (racing readers may transiently see NUL bytes)Internal
--noAppendGrantboolfalseDisable serialized append grants (peer reads may observe zeros for in-flight appends)Internal
--noAtimeboolfalseMount with noatime optionPublic
--noCreateConflictDACboolfalseSkip permission checks when a create finds an existing fileInternal
--noExecboolfalseMount with noexec optionPublic
--noLockCoherenceboolfalseSkip the cache barriers a cross-mount lock carries (peers may lose updates made under a lock)Internal
--noMaxPagesboolfalseLimit FUSE max_pages to 32Internal
--noMetaSSLboolfalseDisable SSL for metadata server connectionsInternal
--nonEmptyboolfalseAllow mounting over a non-empty directoryPublic
--noOpenCoherenceboolfalseSkip the open() cross-mount freshness checkInternal
--noPrefetchboolfalseDisable block prefetchingInternal
--noProxyboolfalseDisable block proxyingInternal
--noProxyReadsboolfalseDisable proxy readsInternal
--noProxySSLboolfalseDisable SSL for proxy server connectionsInternal
--noProxyWritesboolfalseDisable proxy writesInternal
--noRemountboolfalseDisable remount after auto-updatePublic
--noSUIDboolfalseMount with nosuid optionPublic
--noUpdateboolfalseDisable auto-update mechanism (implies --noRemount)Public
--numReadersuint320 = autoNumber of FUSE readersInternal
--poolCapacityuint320 = autoBlock buffer pool capacity (blocks)Internal
--pprofboolfalseEnable pprof profilerInternal
--pprofPortint6064Pprof server portInternal
--prefetchActiveuint320 = autoMaximum number of active prefetchesInternal
--prefetchDepthuint320 = autoMaximum number of queued prefetchesInternal
--proxyProbeTOstring125msPer-proxy-group health check timeout, given as a duration (125ms, 1s) or whole milliseconds (125).Internal
--readAheadstring"" = autoKernel readahead window (e.g. 4M)Internal
--roboolfalseMount read-only (implies --noAtime)Public
--rootSquashboolfalseMap uid/gid 0 to the anonymous uid/gid (implies --acl)Public
--secretstring""Volume encryption secret (overrides credentials file)Internal
--sseboolfalseRequest S3 server-side encryption (AES256)Public
--stagingboolfalseAuto-update from staged buildsPublic
--statFsValidstring3sHow long to serve statfs answers from cache, given as a duration (3s, 1m) or whole seconds (3). Must resolve to a whole number of seconds. 0 = disabled.Internal
--storeRTTboolfalseLog store subsystem round-trip timesInternal
--subTypestringflexfsFUSE filesystem sub typeInternal
--testVersionstring""Override build version to exercise auto-update handoffInternal
--tokenstring""Volume auth token (overrides credentials file)Internal
--umaskstring""Umask override (octal, with or without a leading 022 and 0022 mean the same thing; max 0777)Public
--updateIntervalstring6mAuto-update check interval, given as a duration (6m, 1h) or whole seconds (360). Must resolve to a whole number of seconds.Internal
--verbose, -vboolfalseEnable verbose loggingPublic
--xattrboolfalseEnable extended attribute supportPublic

The credentials file is a TOML file stored at the path specified by --credsFile. It contains the admin server address, volume token, and optionally an encryption secret:

adminAddr = "admin.example.com:443"
token = "<volume-token>"
secret = "<secret>"