Sub-Store 是一个开源的分布式对象存储解决方案,旨在为多云或混合云环境提供统一的数据管理和存储服务。以下是配置Sub-Store 的基本步骤和指南
安装和准备
1 安装Sub-Store
- 下载Sub-Store:访问官方GitHub仓库(https://github.com/substore/substore)或通过包管理器安装。
- 如果使用Docker,直接从Docker Hub拉取镜像:
docker pull substore/substore:latest。
- 如果使用Docker,直接从Docker Hub拉取镜像:
- 启动Sub-Store:
docker run -d --name substore \ -p 456:456 \ -p 4561:4561 \ substore/substore:latest
端口456用于管理API,4561用于数据存储。
- 访问Sub-Store管理界面:打开浏览器,访问
http://localhost:456。
2 系统要求
- 操作系统:支持Linux(推荐Ubuntu/Debian、CentOS、Fedora等)和macOS。
- 内存:至少32GB。
- 存储:至少50GB可用空间。
- 网络:确保节点间通信畅通。
配置Sub-Store
1 配置网络
- 默认网络配置:
- Sub-Store默认使用,即所有IP地址都可以访问服务。
- 如果需要限制访问范围,可以在配置文件中指定允许的IP段。
- 配置网络接口:
- 在每个节点上,编辑
/etc/substore/config.json,设置网络接口:{ "network": { "interface": "eth", "default": "eth", "external": true } } - 根据实际网络接口名(如
eth、ens3等)进行调整。
- 在每个节点上,编辑
2 配置存储
- 添加本地存储:
- 在每个节点上,编辑
/etc/substore/config.json,添加本地存储路径:{ "storage": { "path": "/data/substore", "device": "looplzo", "mountOptions": { "loop": "/tmp/substore-loop", "lzo": "/tmp/substore-lzo" } } } - 如果使用SSD或其他高性能存储设备,可以将
path指向这些设备的挂载点。
- 在每个节点上,编辑
- 创建存储池:
- 启动后,使用CLI命令创建存储池:
substore pool create my-pool --num-rank 4 --num-mds 2 --num-lzoo 2
- 参数说明:
--num-rank:设置Reconstruct算法的工作节点数量。--num-mds:设置Metadata Server节点数量。--num-lzoo:设置LZOO存储组的节点数量。
- 启动后,使用CLI命令创建存储池:
3 配置多云存储
- 添加云存储服务:
- 在
/etc/substore/config.json中添加云存储配置。 - 添加AWS S3存储:
{ "storage": { "s3": { "bucket": "my-s3-bucket", "region": "us-west-2", "accessKey": "AKIA...", "secretKey": "..." } } } - 类似地,可以配置GCP GCS、Azure Blob Storage等。
- 在
4 配置用户和权限
- 创建用户:
- 使用CLI命令创建用户并设置权限:
substore user create admin --pass 123456 substore user create reader --pass 123456
-,默认用户权限为
reader,可以根据需求设置更高级权限(如admin)。
- 使用CLI命令创建用户并设置权限:
- 设置权限策略:
- 修改
/etc/substore/access.json,定义用户的访问权限。{ "accessControl": { "default": { "read": false, "write": false, "execute": false } } } - 根据需要调整权限设置。
- 修改
高级配置
1 多云环境配置
- 配置多云存储:
- 在
/etc/substore/config.json中添加多个云存储配置。 { "storage": { "s3": { "bucket": "s3-bucket-1", "region": "us-west-2" }, "gcs": { "bucket": "gcs-bucket-1", "project": "my-project" } } }
- 在
- 配置云存储策略:
- 在
/etc/substore/policy.json中定义多云存储的数据分布策略。{ "policy": { "default": { "cloud": "s3", "region": "us-west-2" } } } - 根据需求定义不同的策略,例如按区域或云提供商分组。
- 在
2 数据加密
- 配置加密存储:
- 在
/etc/substore/config.json中添加加密配置。{ "encryption": { "key": "my-encryption-key", "cipher": "aes-256", "mode": "aes-ofb" } } - 根据需求选择加密算法和模式。
- 在
3 性能优化
- 配置缓存:
- 在
/etc/substore/config.json中添加缓存配置。{ "cache": { "enabled": true, "path": "/data/cache", "size": "100G", "max ttl": "10h" } } - 根据需求调整缓存大小和时间到期。
- 在
故障排除
1 常见错误
- 权限错误:
- 检查
/etc/substore/access.json,确保用户权限设置正确。 - 确保云存储配置的访问密钥和秘密钥无误。
- 检查
- 网络问题:
- 检查网络接口配置,确保节点间通信正常。
- 检查防火墙设置,确保子Store服务端口(456、4561)开放。
- 存储问题:
- 确保本地存储路径和挂载点存在且可写。
- 检查存储池创建是否成功,查看日志文件。
2 日志查看
- 查看日志:
- 使用CLI命令查看子Store的日志:
substore log
- 查看容器日志:
docker logs substore
- 使用CLI命令查看子Store的日志:
高级使用
1 API集成
- 使用Sub-Store API:
- Sub-Store 提供RESTful API,可以通过API进行文件存储和管理。
- 示例:上传文件:
curl -X PUT "http://localhost:456/api/v1/objects/my-bucket/file.txt" \ --header "X-Meta-Storage-Policy: my-policy" \ --data-binary @/path/to/file.txt
- 使用SDK:
Sub-Store 提供多种SDK(如Python、Java、Go等),可以通过SDK调用API。
2 监控和管理
- 监控存储状态:
- 使用CLI命令查看存储池状态:
substore pool list substore pool show <pool-name>
- 查看用户和权限:
substore user list substore user show <username>
- 使用CLI命令查看存储池状态:
文档和资源
- 官方文档:Sub-Store GitHub文档
- 社区支持:Sub-Store社区
- 示例和教程:Sub-Store示例教程

@版权声明
转载原创文章请注明转载自原子VPN|多平台网络连接与线路优化工具,支持节点切换、网络测速及电脑手机端使用,满足不同网络环境下的连接需求,网站地址:https://yuanziapp.com.cn/