

一句话定位:RustFS 是面向 AI 时代、从零原生打造的高性能分布式对象存储,100% 兼容 S3 API,Apache 2.0 协议,底层用 Rust 构建,可作为 MinIO 的 drop-in 替代方案。
目录
- 问题背景:容器不是唯一选择
- [为什么用系统包而不是 docker](#为什么用系统包而不是 docker)
- 安装前:磁盘与文件系统
- [安装与配置 RustFS](#安装与配置 RustFS)
- [用 rc 验证实例](#用 rc 验证实例)
- 总结与下一步
1. 问题背景:容器不是唯一选择
很多团队第一次跑 RustFS 是 docker run rustfs/rustfs,图快。可一旦要上生产,容器编排、数据卷生命周期、systemd 管控、和现有运维体系(监控、补丁、开机自启)对齐,反而是个额外负担。我更倾向在裸金属或虚拟机上用系统包直接装------和装 nginx、postgresql 一个套路,出事了好排查。
RustFS 从 1.0.0-rc.1 起正式提供 rpm / deb 安装包,这意味着不再需要先下二进制、手写 systemd unit。本文以 Ubuntu 24.04 为例,走通一台单机多盘实例的完整安装。
2. 为什么用系统包而不是 docker
先说清适用边界:docker 适合本地快速试、CI 里临时起一个;长期当存储底座,系统包更稳------它天然接入系统的 systemd、日志(journald / 你指定的日志目录)、包管理器升级链路。RustFS 官方也把 rpm/deb 作为生产推荐路径之一。
另一个现实好处:RustFS 本身是单二进制、依赖极少。据社区 12TB 迁移实测,它的二进制约 93MB,对照方案约 320MB,空闲内存稳定在 100MB 量级。装成系统服务后,额外开销几乎可以忽略。
3. 安装前:磁盘与文件系统
RustFS 推荐使用 XFS 作为数据盘文件系统。先准备磁盘,以 /dev/sda 为例:
bash
sudo mkfs.xfs /dev/sda
sudo mkdir -p /data/rustfs/user1
sudo mount /dev/sda /data/rustfs/user1
blkid /dev/sda
每块数据盘都按这个流程走一遍。单机多盘时,RustFS 用省略号语法把多块盘收进同一个 RUSTFS_VOLUMES,不需要为每块盘单独起进程。
4. 安装与配置 RustFS
当前 RustFS 的 rpm/deb 安装包提供 x86 和 arm 两种架构。Ubuntu 24.04 下载 deb 包(本文以官方 RPM 教程使用的 1.0.0-rc.2 为例,实际请取 releases 页最新版本号):
bash
curl -L -o rustfs.deb \
https://github.com/rustfs/rustfs/releases/download/1.0.0-rc.2/rustfs_1.0.0.rc.2_amd64.deb
dpkg -i rustfs.deb
装好后配置文件在 /etc/default/rustfs。把下面内容写进去(单机四盘示例):
bash
RUSTFS_ACCESS_KEY=rustfs@test
RUSTFS_SECRET_KEY=rustfs@test
RUSTFS_VOLUMES="/data/rustfs{1...4}/mnmd"
RUSTFS_ADDRESS=":9000"
RUSTFS_CONSOLE_ADDRESS=":9001"
RUSTFS_CONSOLE_ENABLE=true
RUSTFS_OBS_LOGGER_LEVEL=error
RUSTFS_OBS_LOG_DIRECTORY="/var/log/rustfs/"

几点要提醒:
- 密钥别用示例值 :上面的
rustfs@test只是官方教程占位。生产请用openssl rand -base64 24生成强密钥,beta.10 之后 RustFS 已弃用硬编码默认凭证,启动时会要求显式设置RUSTFS_ACCESS_KEY/RUSTFS_SECRET_KEY。 - 固定版本号 :下载链接里把
1.0.0-rc.2换成你验证过的版本,不要用latest,避免某次升级悄悄改变行为。 /data/rustfs{1...4}:花括号省略号会按数值展开成 1、2、3、4 四块盘,挂载点要和对齐;mnmd是单机多盘的目录后缀约定。
启动服务:
bash
systemctl start rustfs
systemctl status rustfs
正常会看到 Active: active (running),主进程 /usr/bin/rustfs server,内存占用一百多 MB。浏览器打开 http://<ip>:9001 用上面那对密钥登录控制台,能看到集群状态就说明起来了。
5. 用 rc 验证实例
rc 是 RustFS 对标 MinIO mc 的原生 CLI(官方 RPM 教程使用 v0.1.31,拉取时请取 cli 仓库最新 release 版本号)。装好它,做一次"建桶---上传---列出"的最小验证:
bash
wget https://github.com/rustfs/cli/releases/download/v0.1.31/rustfs-cli-linux-amd64-gnu-v0.1.31.tar.gz
tar -zxvf rustfs-cli-linux-amd64-gnu-v0.1.31.tar.gz
chmod +x rc && cp rc /usr/local/bin
rc --version
rc alias set local http://127.0.0.1:9000 <ACCESS_KEY> <SECRET_KEY>
rc mb local/deb-demo
echo "Hello RustFS" > 1.txt
rc cp 1.txt local/deb-demo
rc ls local/deb-demo

rc 的 alias / mb / ls / cp 和 mc 几乎一一对应,原来用 mc 的脚本把二进制名换掉、endpoint 指向 RustFS 即可复用。日常桶管理、对象搬运、集群状态查看都靠它,比直接调 S3 SDK 顺手。
6. 总结与下一步
rpm/deb 安装把 RustFS 落进系统服务管理体系,适合长期当存储底座。整套动作不复杂:XFS 格式化 → dpkg -i → 写 /etc/default/rustfs → systemctl start → rc 验证。关键在两点------密钥要强、版本要固定。
下一步建议:
- 把
RUSTFS_ACCESS_KEY/RUSTFS_SECRET_KEY换成openssl rand -base64 24生成的强值; systemctl enable rustfs设开机自启;- 用
rc mb建业务桶,配 Nginx 反代收敛 9000/9001 端口; - 需要多节点时,把所有节点端点写进同一个
RUSTFS_VOLUMES(如http://node{1...4}:9000/data)即触发分布式,无需另开"集群开关"。
深入学习RustFS
技术文档: RustFS 技术文档- 提供架构、安装指南和 API 参考。
GitHub 仓库: GitHub 仓库 - 获取源代码、提交问题或贡献代码。
社区支持: GitHub Discussions- 与开发者交流经验和解决方案。