120 lines
2.7 KiB
Markdown
120 lines
2.7 KiB
Markdown
# SeaweedFS 文件存储服务
|
||
|
||
本目录包含基于 [SeaweedFS](https://github.com/seaweedfs/seaweedfs) 的分布式文件存储服务配置,提供S3兼容接口,用于文件的存储和管理。
|
||
|
||
## 服务组件
|
||
|
||
SeaweedFS 服务由以下组件组成:
|
||
|
||
- **Master Server**: 负责管理卷服务器和文件分配
|
||
- **Volume Server**: 负责实际存储数据
|
||
- **Filer**: 提供文件系统接口
|
||
- **S3 Gateway**: 提供S3兼容接口
|
||
|
||
## 快速开始
|
||
|
||
### 1. 初始化环境
|
||
|
||
首先执行初始化脚本,设置环境变量和创建必要的配置文件:
|
||
|
||
```bash
|
||
cd /Users/chenqiang/workspace/work/项目记录/202510铁岭县内网文件分发/demo/server/oss
|
||
./init
|
||
```
|
||
|
||
初始化过程中会提示设置以下参数:
|
||
- S3服务端口(默认:25003)
|
||
- S3访问密钥
|
||
- S3密钥(会加密存储)
|
||
|
||
### 2. 启动服务
|
||
|
||
使用提供的服务脚本启动SeaweedFS:
|
||
|
||
```bash
|
||
./service start
|
||
```
|
||
|
||
### 3. 停止服务
|
||
|
||
```bash
|
||
./service stop
|
||
```
|
||
|
||
### 4. 查看服务状态
|
||
|
||
```bash
|
||
./service status
|
||
```
|
||
|
||
## 环境变量配置
|
||
|
||
初始化后,环境变量将保存在 `.envrc` 文件中。主要配置项包括:
|
||
|
||
- `SEAWEEDFS_VERSION`: SeaweedFS 版本
|
||
- `S3_PORT`: S3服务端口
|
||
- `S3_ACCESS_KEY`: S3访问密钥
|
||
- `S3_SECRET_KEY`: S3密钥(加密存储)
|
||
- 各容器名称配置
|
||
|
||
## 数据存储
|
||
|
||
- **Master数据**: `./master_data/`
|
||
- **Volume数据**: `./volume_data/`
|
||
- **Filer数据**: `./filer_data/`
|
||
|
||
> **注意**: 数据目录会被 `.gitignore` 忽略,不会提交到代码仓库。
|
||
|
||
## S3客户端配置
|
||
|
||
使用S3兼容的客户端访问服务时,需要配置以下参数:
|
||
|
||
- **Endpoint**: `http://localhost:8333`
|
||
- **Access Key**: 初始化时设置的值
|
||
- **Secret Key**: 初始化时设置的值
|
||
- **Region**: 可以使用任意值,如 `us-east-1`
|
||
|
||
## 安全注意事项
|
||
|
||
- S3密钥使用OpenSSL加密存储在 `seaweedfs_password.enc` 文件中
|
||
- 敏感配置文件(如 `.envrc` 和 `seaweedfs_password.enc`)已添加到 `.gitignore`
|
||
- 建议定期备份数据目录
|
||
|
||
## 故障排除
|
||
|
||
### 常见问题
|
||
|
||
1. **服务启动失败**
|
||
- 检查端口是否被占用
|
||
- 查看容器日志:`docker logs seaweedfs-master` 等
|
||
|
||
2. **S3访问认证失败**
|
||
- 确认访问密钥和密钥是否正确
|
||
- 检查 `.envrc` 文件中的配置
|
||
|
||
3. **数据丢失**
|
||
- 确保定期备份数据目录
|
||
- 避免直接修改数据目录中的文件
|
||
|
||
## 维护指南
|
||
|
||
### 更新SeaweedFS版本
|
||
|
||
1. 修改 `.envrc` 中的 `SEAWEEDFS_VERSION` 值
|
||
2. 重启服务:`./service restart`
|
||
|
||
### 清理旧数据
|
||
|
||
> **警告**: 清理数据前请确保已备份重要数据!
|
||
|
||
可以通过停止服务并清空数据目录来清理所有数据:
|
||
|
||
```bash
|
||
./service stop
|
||
rm -rf master_data/* volume_data/* filer_data/*
|
||
./service start
|
||
```
|
||
|
||
## 许可证
|
||
|
||
[MIT](LICENSE) |