Upgrades
FlexFS provides several upgrade paths depending on which components you are upgrading and your tolerance for downtime.
Upgrade overview
Section titled “Upgrade overview”| Component | Upgrade method | Downtime |
|---|---|---|
| Servers (meta, proxy, admin) | manage.flexfs upgrade | Brief restart per service |
| Mount clients | Auto-update (automatic) or update.flexfs (manual) | Seamless FUSE session handoff |
| CSI driver | Helm upgrade or manifest reapply | Pod restarts |
Server upgrades with manage.flexfs
Section titled “Server upgrades with manage.flexfs”The manage.flexfs upgrade command performs a complete upgrade cycle: download new binaries, install them, stop services, clean state, and restart services.
sudo manage.flexfs upgradeThis will:
- Download the latest binaries for all installed flexFS components from
get.flexfs.io - Install them to
/usr/sbin/ - Stop all flexFS systemd services
- Clean runtime state
- Start all services
Specifying a version
Section titled “Specifying a version”sudo manage.flexfs upgrade --version v1.9.xUpgrading specific binaries
Section titled “Upgrading specific binaries”sudo manage.flexfs upgrade meta proxyThis downloads and upgrades only the specified binaries while still performing the full stop/clean/start cycle.
Specifying architecture
Section titled “Specifying architecture”sudo manage.flexfs upgrade --arch aarch64By default, the host architecture is detected automatically.
Vacuum journal logs
Section titled “Vacuum journal logs”Add --vacuum to also clean system journal logs during the upgrade:
sudo manage.flexfs upgrade --vacuumDownloading binaries separately
Section titled “Downloading binaries separately”If you prefer more control, use manage.flexfs download to download binaries without installing or restarting:
# Download to /tmpsudo manage.flexfs download meta proxy mount
# Download and install to /usr/sbinsudo manage.flexfs download meta proxy mount --install| Flag | Default | Description |
|---|---|---|
--version | (build version) | Version branch to download (e.g., v1.9.x). |
--arch | (host arch) | Architecture: amd64 or aarch64. |
--install | false | Install binaries to /usr/sbin/ after downloading. |
Deploying mount client updates
Section titled “Deploying mount client updates”The manage.flexfs deploy command downloads the latest mount.flexfs binary and places it in the admin server’s deploy directory, making it available for auto-update by mount clients.
sudo manage.flexfs deploy| Flag | Default | Description |
|---|---|---|
--version | (build version) | Version branch to deploy. |
--channel | all | Deployment channel: staging, production, or all. |
--adminPath | (auto) | Path to the admin folder. |
Channels
Section titled “Channels”The deploy directory has two channels:
| Channel | Description |
|---|---|
staging | Mount clients with --staging flag pull from this channel. Use for testing updates before wide rollout. |
production | Default channel for all mount clients. |
Deploy flow:
# Deploy to staging firstsudo manage.flexfs deploy --channel staging
# Test with staging mounts, then promote to productionsudo manage.flexfs deploy --channel productionOr deploy to both at once:
sudo manage.flexfs deploy --channel allMount client auto-update
Section titled “Mount client auto-update”Mount clients automatically check the admin server for new versions and update themselves. When an update is available:
- The mount client downloads the new
mount.flexfsbinary from the admin server’s deploy endpoint. - It performs a FUSE session handoff — the new binary takes over the existing FUSE mount without interrupting running applications.
- The old process exits cleanly.
Controlling auto-update
Section titled “Controlling auto-update”| Flag | Effect |
|---|---|
--noUpdate | Disable auto-update entirely. |
--noRemount | Download the update but do not perform the FUSE session handoff. The update takes effect on next manual mount. |
--staging | Pull updates from the staging channel instead of production. |
Manual mount client update
Section titled “Manual mount client update”Use update.flexfs to manually update the mount client binary:
sudo update.flexfsThis downloads the latest version and replaces the binary at /sbin/mount.flexfs. Running mounts are not affected until they are remounted.
Version compatibility
Section titled “Version compatibility”FlexFS maintains backward compatibility within a major version series. A v1.9.x mount client can connect to v1.9.x servers without issues. When upgrading, update servers first, then mount clients.
Service ordering
Section titled “Service ordering”When manage.flexfs starts services, it follows the correct dependency order:
- Statistics server (
stat.flexfs, if installed) - Admin server (
admin.flexfs, if installed) - Free server (
free.flexfs, if installed) - Proxy server (
proxy.flexfs, if installed) - Metadata server (
meta.flexfs)
When stopping, the order is reversed.