RustFS 是一個基于 Rust 構(gòu)建的高性能分布式對象存儲系統(tǒng)。Rust 是全球最受開發(fā)者喜愛的編程語言之一,RustFS 完美結(jié)合了 MinIO 的簡潔性與 Rust 的內(nèi)存安全及高性能優(yōu)勢。它提供完整的 S3 兼容性,完全開源,并專為數(shù)據(jù)湖、人工智能(AI)和大數(shù)據(jù)負(fù)載進行了優(yōu)化。
與其他存儲系統(tǒng)不同,RustFS 采用更寬松、商業(yè)友好的 Apache 2.0 許可證,避免了 AGPL 協(xié)議的限制。以 Rust 為基石,RustFS 為下一代對象存儲提供了更快的速度和更安全的分布式特性。
特征和功能狀態(tài)
高性能:基于 Rust 構(gòu)建,確保極致的速度和資源效率。
分布式架構(gòu):可擴展且容錯的設(shè)計,適用于大規(guī)模部署。
S3 兼容性:與現(xiàn)有的 S3 兼容應(yīng)用和工具無縫集成。
數(shù)據(jù)湖支持:專為高吞吐量的大數(shù)據(jù)和 AI 工作負(fù)載優(yōu)化。
完全開源:采用 Apache 2.0 許可證,鼓勵社區(qū)貢獻(xiàn)和商業(yè)使用。
簡單易用:設(shè)計簡潔,易于部署和管理。
請按照以下步驟快速上手 RustFS:
1. 一鍵安裝腳本 (選項 1)
curl -O http://m.lncdfzh.com.cn/install_rustfs.sh && bash install_rustfs.sh
2. Docker 快速啟動 (選項 2)
RustFS 容器以非 root 用戶 rustfs (UID 10001) 運行。如果您使用 Docker 的 -v 參數(shù)掛載宿主機目錄,請務(wù)必確保宿主機目錄的所有者已更改為 1000,否則會遇到權(quán)限拒絕錯誤。
# 創(chuàng)建數(shù)據(jù)和日志目錄
mkdir -p data logs # 更改這兩個目錄的所有者
chown -R 10001:10001 data logs # 使用最新版本運行
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest # 使用指定版本運行
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0.alpha.68
您也可以使用 Docker Compose。使用根目錄下的 docker-compose.yml 文件:
docker compose --profile observability up -d
注意: 我們建議您在運行前查看 docker-compose.yaml 文件。該文件定義了包括 Grafana、Prometheus 和 Jaeger 在內(nèi)的多個服務(wù),有助于 RustFS 的可觀測性監(jiān)控。如果您還想啟動 Redis 或 Nginx 容器,可以指定相應(yīng)的 profile。
3. 源碼編譯 (選項 3) - 進階用戶
適用于希望從源碼構(gòu)建支持多架構(gòu) RustFS Docker 鏡像的開發(fā)者:
# 在本地構(gòu)建多架構(gòu)鏡像./docker-buildx.sh --build-arg RELEASE=latest# 構(gòu)建并推送到倉庫./docker-buildx.sh --push# 構(gòu)建指定版本./docker-buildx.sh --release v1.0.0 --push# 構(gòu)建并推送到自定義倉庫./docker-buildx.sh --registry your-registry.com --namespace yourname --push
docker-buildx.sh 腳本支持: - 多架構(gòu)構(gòu)建: linux/amd64, linux/arm64 - 自動版本檢測: 使用 git tags 或 commit hash - 靈活的倉庫支持: 支持 Docker Hub, GitHub Container Registry 等 - 構(gòu)建優(yōu)化: 包含緩存和并行構(gòu)建
為了方便起見,您也可以使用 Make 命令:
make docker-buildx # 本地構(gòu)建make docker-buildx-push # 構(gòu)建并推送make docker-buildx-version VERSION=v1.0.0 # 構(gòu)建指定版本make help-docker # 顯示所有 Docker 相關(guān)命令
注意 (macOS 交叉編譯): macOS 默認(rèn)的 ulimit -n 限制為 256,因此在使用 cargo zigbuild 或 ./build-rustfs.sh --platform ... 交叉編譯 Linux 版本時,可能會因 ProcessFdQuotaExceeded 失敗。構(gòu)建腳本會嘗試自動提高限制,但如果您仍然看到警告,請在構(gòu)建前在終端運行 ulimit -n 4096 (或更高)。