RustFS从安装到使用及从MinIO迁移的完整指南
RustFS:现代化的分布式文件系统
RustFS是一个用Rust语言开发的高性能分布式文件系统,具有高可靠性、强一致性和出色的性能。本文将详细介绍RustFS的安装、使用方法,以及如何从MinIO迁移到RustFS。
一、RustFS简介
RustFS是基于Rust语言构建的新一代分布式文件系统,它利用Rust的内存安全特性和并发优势,提供了以下核心特性:
- 高性能:采用异步I/O和零拷贝技术,提供出色的读写性能
- 强一致性:实现了严格的一致性模型,确保数据可靠性
- 高可用:支持数据复制和自动故障转移
- 易于扩展:可以轻松添加新节点以扩展存储容量和性能
- 安全:基于Rust的内存安全特性,减少了常见的安全漏洞
二、RustFS安装
官方的安装文档比较全,我这里仅仅是记录下自己安装的过程以及遇到的问题。
2.1 docker-compose部署
我这边是在FnOS系统中使用docker-compose的方式部署的,下面是compose文件内容:
version: "3"
services:
# RustFS main service
rustfs:
image: rustfs/rustfs:latest
container_name: rustfs
ports:
- "19000:9000" # S3 API port
- "19001:9001" # Console port
environment:
- RUSTFS_ADDRESS=0.0.0.0:9000
- RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001
- RUSTFS_CONSOLE_ENABLE=true
- RUSTFS_EXTERNAL_ADDRESS=:9000 # Same as internal since no port mapping
- RUSTFS_CORS_ALLOWED_ORIGINS=*
- RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=*
- RUSTFS_ACCESS_KEY=rustfsadmin
- RUSTFS_SECRET_KEY=rustfsadmin
- RUSTFS_OBS_LOGGER_LEVEL=info
- RUSTFS_TLS_PATH=/opt/tls
- RUSTFS_OBS_ENDPOINT=http://otel-collector:4317
volumes:
- ./data:/data
- ./logs:/app/logs
# restart: unless-stopped
healthcheck:
test:
[
"CMD",
"sh", "-c",
"curl -f http://localhost:9000/health && curl -f http://localhost:9001/rustfs/console/health"
]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
2.2 启动报错(“Permission denied”)
通过GitHub上的issues找到了解决方法,将数据和日志目录的所有者更改为10001。
进到所在目录,执行下面的命令:
# 修改前检查
ls -l
# 修改
chown -R 10001:10001 data/ logs/
# 修改后确认
ls -l
命令执行过程:

参考地址:Operator Managed Cluster fails to run · Issue #987 · rustfs/rustfs · GitHub
2.3 部署后确认
docker启动后无报错,在浏览器输入 http://192.168.188.2:19001/

出现这个说明安装成功,账号/密码:rustfsadmin/rustfsadmin
三、从MinIO迁移到RustFS
5.1 迁移准备
- 确保RustFS服务已正常运行
- 安装MinIO客户端
mc - 备份MinIO数据(建议)
5.2 迁移方法
使用以下命令迁移:
# 使用mc客户端同步数据
mc alias set minio http://minio-server:9000 minioadmin minioadmin
mc alias set rustfs http://rustfs-server:19000 rustfsadmin rustfsadmin
# 同步数据
mc mirror --recursive minio/my-bucket rustfs/my-bucket
rustfs/my-bucket 要先在rustfs中建好存储桶my-bucket
5.3 迁移验证
# 验证文件数量
echo "MinIO文件数量:"
mc ls --recursive minio/my-bucket | wc -l
echo "RustFS文件数量:"
rishfs ls --recursive /minio-migrated/ | wc -l
# 验证文件完整性(随机选择几个文件)
mc cat minio/my-bucket/path/to/file.txt | md5sum
rishfs get /minio-migrated/path/to/file.txt - | md5sum
也可以通过web查看确认
四、总结
RustFS是一个功能强大、性能出色的分布式文件系统,适用于各种规模的存储需求。通过本文的介绍,您应该已经掌握了RustFS的安装、配置、使用以及从MinIO迁移数据的方法。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 龙儿之家!
评论
TwikooGitalk









