上一篇介绍了网盘的功能以及后续开发的基本实现,本文简单介绍下网盘开发所用到的开源存储系统minio
介绍
minio是一款开源的高性能的分布式对象存储系统(非结构化的存储架构),主要是为了满足私有云和公共云环境下对大规模数据存储的需求。主要有以下特点(有几个未实践过先记录下):
- 高性能:由于存储结构是非结构化的,所以存取速度较快。
- 兼容性好:MinIO 完全兼容S3 API,使得与使用 S3 API 的现有应用程序和工具能够无缝集成。
- 可扩展性:MinIO 可以水平扩展,支持从 TB 到 PB 级的数据存储,适合于大规模部署。
- 数据保护:提供高可用性和容错能力,通过纠删码和对象锁定等特性保护数据。
- 部署方便:支持多种方式部署,包括docker一键部署、K8、虚拟机和单机部署。
另外minio在以下场景中应用比较广泛:
-
文件存储:作为一个分布式对象存储系统,文件存储是其基本能力之一。他的API能够方便我们存储文件。
-
大数据分析:MinIO 的高性能和可扩展性使其非常适合大数据分析和机器学习应用。它可以存储大量的数据集,并且支持高吞吐量的数据访问,适用于训练复杂的机器学习模型和处理大数据分析任务。
-
备份和恢复:文件存储服务的扩展能力,minio它可以在本地和远程数据中心之间进行数据复制,以确保数据的高可用性和冗余。MinIO 兼容 S3 API,使其能够与许多现有的备份工具无缝集成。
安装部署
下载文件部署minio
此种部署方式只在测试机上试过,未在生产环境中使用,目前基本用的都是docker部署。
- 下载文件
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# 将minio可执行文件移动到usr目录下并设置权限
sudo mv minio /usr/local/bin/
sudo chmod +x /usr/local/bin/minio
- 初始化目录
sudo mkdir ***
-
配置相关选项
-
运行服务
minio server ******
docker镜像部署minio(建议使用)
- 拉取minio最新版本的镜像
docker pull minio/minio
- 初始化文件存储目录
mkdir ***/data
- 初始配置文件(或用参数启动),主要配置内容如下
- MINIO_ROOT_USER:登录用户名
- MINIO_ROOT_PASSWORD:登录密码
- MINIO_VOLUMES:文件存储位置
- 启动时通过--address port配置API端口号
- 运行服务
//运行设置用户名秘密以及API端口号
docker run -d -p 9000:9000 -p 9092:9092 --name minio -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=******" -v ***/data:/data -v ***/config:/root/.minio minio/minio server /data --console-address ":9000" -address ":9092"