mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
b1358d47116d9d22eedab0b3b03d49f194a5af9d
Added support for both ARM64 Linux variants to the CI/CD build pipeline: 1. Enabled the previously commented `aarch64-unknown-linux-gnu` target build 2. Re-enabled the `aarch64-unknown-linux-musl` target build 3. Updated the build matrix to ensure proper runner selection: - Ubuntu runners build all Linux targets - macOS runners build only Apple Silicon targets 4. Maintained compatibility with the existing build scripts and packaging process This expansion gives users more options for deploying on ARM64 Linux platforms, supporting both glibc and musl libc environments for maximum compatibility and performance.
RustFS
English Documentation |中文文档
Prerequisites
| Package | Version | Download Link |
|---|---|---|
| Rust | 1.8.5+ | rust-lang.org/tools/install |
| protoc | 30.2+ | protoc-30.2-linux-x86_64.zip |
| flatc | 24.0+ | Linux.flatc.binary.g++-13.zip |
Building RustFS
Generate Protobuf Code
cargo run --bin gproto
Using Docker for Prerequisites
- uses: arduino/setup-protoc@v3
with:
version: "30.2"
- uses: Nugine/setup-flatc@v1
with:
version: "25.2.10"
Adding Console Web UI
- Download the latest console UI:
wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip - Create the static directory:
mkdir -p ./rustfs/static - Extract and compile RustFS:
unzip rustfs-console-latest.zip -d ./rustfs/static cargo build
Running RustFS
Configuration
Set the required environment variables:
# Basic config
export RUSTFS_VOLUMES="./target/volume/test"
export RUSTFS_ADDRESS="0.0.0.0:9000"
export RUSTFS_CONSOLE_ENABLE=true
export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9001"
# Observability config (option 1: config file)
export RUSTFS_OBS_CONFIG="./deploy/config/obs.toml"
# Observability config (option 2: environment variables)
export RUSTFS__OBSERVABILITY__ENDPOINT=http://localhost:4317
export RUSTFS__OBSERVABILITY__USE_STDOUT=true
export RUSTFS__OBSERVABILITY__SAMPLE_RATIO=2.0
export RUSTFS__OBSERVABILITY__METER_INTERVAL=30
export RUSTFS__OBSERVABILITY__SERVICE_NAME=rustfs
export RUSTFS__OBSERVABILITY__SERVICE_VERSION=0.1.0
export RUSTFS__OBSERVABILITY__ENVIRONMENT=develop
export RUSTFS__OBSERVABILITY__LOGGER_LEVEL=info
export RUSTFS__OBSERVABILITY__LOCAL_LOGGING_ENABLED=true
# Logging sinks
export RUSTFS__SINKS__FILE__ENABLED=true
export RUSTFS__SINKS__FILE__PATH="./deploy/logs/rustfs.log"
export RUSTFS__SINKS__WEBHOOK__ENABLED=false
export RUSTFS__SINKS__WEBHOOK__ENDPOINT=""
export RUSTFS__SINKS__WEBHOOK__AUTH_TOKEN=""
export RUSTFS__SINKS__KAFKA__ENABLED=false
export RUSTFS__SINKS__KAFKA__BOOTSTRAP_SERVERS=""
export RUSTFS__SINKS__KAFKA__TOPIC=""
export RUSTFS__LOGGER__QUEUE_CAPACITY=10
Start the service
./rustfs /data/rustfs
Observability Stack
Deployment
-
Navigate to the observability directory:
cd .docker/observability -
Start the observability stack:
docker compose -f docker-compose.yml up -d
Access Monitoring Dashboards
- Grafana:
http://localhost:3000(credentials:admin/admin) - Jaeger:
http://localhost:16686 - Prometheus:
http://localhost:9090
Configuring Observability
-
Copy the example configuration:
cd deploy/config cp obs.toml.example obs.toml -
Edit
obs.tomlwith the following parameters:
| Parameter | Description | Example |
|---|---|---|
| endpoint | OpenTelemetry Collector address | http://localhost:4317 |
| service_name | Service name | rustfs |
| service_version | Service version | 1.0.0 |
| environment | Runtime environment | production |
| meter_interval | Metrics export interval (seconds) | 30 |
| sample_ratio | Sampling ratio | 1.0 |
| use_stdout | Output to console | true/false |
| logger_level | Log level | info |
| local_logging_enable | stdout | true/false |
Description
2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.
ai-nativeai-storageamazon-s3bigdatacloud-nativefilesystemminiomulti-cloudobject-storageobjectstoragerusts3
Readme
Apache-2.0
110 MiB
Languages
Rust
94.9%
Shell
3.9%
Python
1%