Table of Contents
fstab
To mount SeaweedFS using /etc/fstab (such as on boot):
- Follow the directions in https://github.com/seaweedfs/seaweedfs/wiki/FUSE-Mount for setting up a SeaweedFS mount subtype for FUSE (hint:
cp weed /sbin/weed) - Install SeaweedFS as usual, making sure any specific settings (such as
security.toml) are in the correct location to be read - Add the fstab entry as described below
If you have a single filer server, this is the syntax you will use:
fuse /path/to/mountpoint fuse.weed filer=localhost:8888,filer.path=/,defaults,_netdev 0 0
If you have multiple filer servers, this is the syntax you will use:
fuse /path/to/mountpoint fuse.weed filer='192.168.0.1:8888,192.168.0.2:8888',filer.path=/,defaults,_netdev 0 0
Place the appropriate line into /etc/fstab and attempt to mount your filesystem. If you encounter any issues, run weed mount directly in verbose/debug mode to diagnose the issue, and switch back to fstab-style mounting once you have resolved the issues.
Systemd
Systemd takes over and enhances fstab-based mount in the following two ways:
systemd-fstab-generator(8)will translate the mount option in /etc/fstab intosystemd.mount/systemd.automountunits. Systemd-related enhancement option (nofail,x-systemd.device-timeout,x-systemd.mount-timeout,x-systemd.automount, etc.) will be parsed into systemd.mount options.- Explicit
systemd.mount/systemd.automountunit files configured.
If you don't use systemd.automount option, editing /etc/fstab as above and enable systemd-fstab-generator. (On modern systemd-based systems this is enabled by default).
systemd.automount
systemd.automount is a tool where systemd automatically and transparently handles on-demand connection and disconnect when not needed.
Mount onto root-owned mountpoint
If mountpoint is owned by root, fstab can do the job, by adding x-systemd.automount (and related options) and autofs to fstab entries.
fuse /path/to/mountpoint fuse.weed filer='192.168.0.1:8888,192.168.0.2:8888',filer.path=/,x-systemd.automount,x-systemd.idle-timeout=300,autofs,defaults,_netdev 0 0
Added options:
x-systemd.automount: enables systemd automountx-systemd.idle-timeout=300: set systemd auto-disconnect timeoutautofs: makes weed fuse compatible with systemd.automount.
Mount onto user-owned mountpoint
If the mountpoint needs to be owned by a user, e.g. mounting /home/user which is owned by user:user, manual systemd.mount / systemd.automount files is required to pass correct uid/gid to autofs.
Create following systemd unit files:
/etc/systemd/system/path-to-mount.automount
[Automount]
Where=/path/to/mount
TimeoutIdleSec=30
ExtraOptions=uid=USERID,gid=GROUPID
Here ExtraOptions sets the uid/gid.
/etc/systemd/system/path-to-mount.mount
[Mount]
What=fuse
Where=/path/to/mount
Type=weed
Options=filer=localhost:8888,filer.path=/,autofs
If you are unsure about the options, you can utilize systemd-fstab-generator to generate one:
Add your line to /etc/fstab temporarily:
fuse /path/to/mountpoint fuse.weed filer='192.168.0.1:8888,192.168.0.2:8888',filer.path=/,x-systemd.automount,x-systemd.idle-timeout=300,autofs,defaults,_netdev 0 0
run systemd daemon-reload and check generated files:
systemd cat path-to-mountpoint.mount
systemd cat path-to-mountpoint.automount
Add the line ExtraOptions=uid=USERID,gid=GROUPID to the automount and create both files in /etc/systemd/system. Remove the temporary fstab entries, and run systemd daemon-reload again.
You can enable the automount by systemctl enable --now path-to-mountpoint.automount.
Introduction
- Quick Start with weed mini
- Simplest S3 Bucket and User Setup
- Components
- Getting Started
- Production Setup
- A typical step‐by‐step example
- Benchmarks
- FAQ
- Applications
API
Configuration
- Replication
- Store file with a Time To Live
- Failover Master Server
- Erasure coding for warm storage
- EC Bitrot Detection
- Server Startup via Systemd
- Environment Variables
Filer
- Filer Setup
- Directories and Files
- File Operations Quick Reference
- Data Structure for Large Files
- Filer Data Encryption
- Filer Commands and Operations
- Filer JWT Use
- TUS Resumable Uploads
Filer Stores
- Filer Cassandra Setup
- Filer Redis Setup
- Super Large Directories
- Path-Specific Filer Store
- Choosing a Filer Store
- Customize Filer Store
Management
Advanced Filer Configurations
- Migrate to Filer Store
- Add New Filer Store
- Filer Store Replication
- Filer Active Active cross cluster continuous synchronization
- Filer as a Key-Large-Value Store
- Path Specific Configuration
- Filer Change Data Capture
- Filer Operation Serialization
FUSE Mount
- FIO benchmark
- fstab and systemd mount
- POSIX Compliance
- Distributed POSIX Locks
- P2P reading in weed mount
WebDAV
SFTP Server
Cloud Drive
- Cloud Drive Benefits
- Cloud Drive Architecture
- Configure Remote Storage
- Mount Remote Storage
- Cache Remote Storage
- Cloud Drive Quick Setup
- Gateway to Remote Object Storage
AWS S3 API
- Amazon S3 API
- Supported APIs vs Minio
- S3 Lifecycle
- S3 Lifecycle vs Volume TTL
- S3 Conditional Operations
- S3 CORS
- S3 Object Lock and Retention
- S3 Object Versioning
- S3 API Benchmark
- S3 API FAQ
- S3 Bucket Quota
- S3 Rate Limiting
- S3 API Audit log
- S3 Nginx Proxy
- Docker Compose for S3
S3 Table Bucket
- S3 Table Bucket
- S3 Table Bucket Commands
- S3 Tables Security
- SeaweedFS Iceberg Catalog
- Iceberg Table Maintenance
Iceberg Integrations
- Spark Iceberg Integration
- Trino Iceberg Integration
- Dremio Iceberg Integration
- DuckDB Iceberg Integration
- Doris Iceberg Integration
- RisingWave Iceberg Integration
- Lakekeeper Iceberg Integration
S3 Authentication & IAM
- S3 Configuration - Start Here
- S3 Credentials (
-s3.config) - OIDC Integration (
-s3.iam.config) - Kubernetes ServiceAccount Authentication (IRSA-style)
- S3 Policy Variables
- S3 Policy Conditions
- S3 Bucket Policies
- Amazon IAM API
- AWS IAM CLI
- weed shell - Shell IAM Commands
Server-Side Encryption
S3 Client Tools
- AWS CLI with SeaweedFS
- s3cmd with SeaweedFS
- rclone with SeaweedFS
- restic with SeaweedFS
- nodejs with Seaweed S3
Machine Learning
HDFS
- Hadoop Compatible File System
- run Spark on SeaweedFS
- run HBase on SeaweedFS
- run Presto on SeaweedFS
- Hadoop Benchmark
- HDFS via S3 connector
Replication and Backup
- Async Replication to another Filer [Deprecated]
- Async Backup
- Async Filer Metadata Backup
- Async Replication to Cloud [Deprecated]
- Kubernetes Backups and Recovery with K8up
Metadata Change Events
Messaging
- Structured Data Lake with SMQ and SQL
- Seaweed Message Queue
- SQL Queries on Message Queue
- SQL Quick Reference
- PostgreSQL-compatible Server weed db
- Pub-Sub to SMQ to SQL
- Kafka to Kafka Gateway to SMQ to SQL
Use Cases
Operations
- System Metrics
- weed shell
- Data Backup
- Deployment to Kubernetes and Minikube
- Deployment with seaweed-up
Rust Volume Server
Advanced
- Large File Handling
- Optimization
- Optimization for Many Small Buckets
- Volume Management
- Tiered Storage
- Cloud Tier
- Cloud Monitoring
- Load Command Line Options from a file
- SRV Service Discovery
- Volume Files Structure
Security
- Security Overview
- Security Configuration
- Cryptography and FIPS Compliance
- Run Blob Storage on Public Internet