用 RPM/DEB 包在 Linux 上安装 RustFS:生产落地第一步

一句话定位:RustFS 是面向 AI 时代、从零原生打造的高性能分布式对象存储,100% 兼容 S3 API,Apache 2.0 协议,底层用 Rust 构建,可作为 MinIO 的 drop-in 替代方案。

目录

  1. 问题背景:容器不是唯一选择
  2. [为什么用系统包而不是 docker](#为什么用系统包而不是 docker)
  3. 安装前:磁盘与文件系统
  4. [安装与配置 RustFS](#安装与配置 RustFS)
  5. [用 rc 验证实例](#用 rc 验证实例)
  6. 总结与下一步

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

rcalias / mb / ls / cpmc 几乎一一对应,原来用 mc 的脚本把二进制名换掉、endpoint 指向 RustFS 即可复用。日常桶管理、对象搬运、集群状态查看都靠它,比直接调 S3 SDK 顺手。


6. 总结与下一步

rpm/deb 安装把 RustFS 落进系统服务管理体系,适合长期当存储底座。整套动作不复杂:XFS 格式化 → dpkg -i → 写 /etc/default/rustfssystemctl startrc 验证。关键在两点------密钥要强、版本要固定

下一步建议:

  1. RUSTFS_ACCESS_KEY / RUSTFS_SECRET_KEY 换成 openssl rand -base64 24 生成的强值;
  2. systemctl enable rustfs 设开机自启;
  3. rc mb 建业务桶,配 Nginx 反代收敛 9000/9001 端口;
  4. 需要多节点时,把所有节点端点写进同一个 RUSTFS_VOLUMES(如 http://node{1...4}:9000/data)即触发分布式,无需另开"集群开关"。

深入学习RustFS

技术文档: RustFS 技术文档- 提供架构、安装指南和 API 参考。

GitHub 仓库: GitHub 仓库 - 获取源代码、提交问题或贡献代码。

社区支持: GitHub Discussions- 与开发者交流经验和解决方案。

相关推荐
不悔哥2 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
家和802 天前
Carla仿真系列:4_在 Carla 的 Tesla 上装 4 路摄像头,并创建网格为环视拼接做准备
开源
分布式存储与RustFS2 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
感谢地心引力2 天前
我用 Doubao-Seed-2.1-pro 做了一个深度融入 AI 功能的本地知识库软件
ai·开源·seed·markdown·豆包
alsmile2 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
codeejun2 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
瑶山2 天前
开源编程Agent-OpenCode完整使用教程
开源·agent·ai编程·opencode
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
分布式存储与RustFS2 天前
对象存储正在吞掉数据湖:RustFS 1.0 GA 与 MinIO AIStor Tables 把 2026 风向说清楚
iceberg·数据湖·对象存储·minio·s3·rustfs·ai存储
m4Rk_2 天前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github