部署本地对象存储S3服务器MinIO
什么是对象存储
对象存储(S3)是一种存储服务,它将数据分成“对象”来存储,而不是传统的文件或块存储。每个对象都有自己的标识符,可以方便地通过网络访问。对于家庭服务器来说,你可以用S3存储照片、视频、文档等文件,通过网络随时访问,还能实现文件备份、共享、远程访问等功能。常见的S3服务包括Amazon S3和MinIO(本地搭建的S3服务),本期教程我们将通过在本地服务器上部署MinIO服务来备份博客等常用服务。
MinIO
MinIO 是一个开源的对象存储系统,完全兼容 Amazon S3 API。它允许你在本地搭建一个类似于 S3 的存储系统,适用于个人或小型企业的需求。你可以用它存储和管理大量的文件,比如照片、视频、备份等,而且可以通过 S3 接口进行访问。简单来说,MinIO 就是一个私有的 S3 服务,适合在家庭服务器上部署,提供安全、可靠的文件存储和访问。
部署方式(docker-compose)
minio支持全平台部署方式,官网提供了非常详细的安装教程,本期部署方式采用docker-compose,这样部署的方式方便后续迁移服务,下面是docker-compose通用配置文件,大家根据需要修改相关内容即可。
version: '3.8'
services:
minio:
image: quay.io/minio/minio
container_name: minio
ports:
- "9000:9000" # 访问 MinIO 的主端口
- "9001:9001" # 访问 MinIO 控制台的端口
volumes:
- ~/minio/data:/data # 将本地存储挂载到容器内
environment:
- MINIO_ROOT_USER=ROOTNAME # 设置 MinIO 管理员的用户名,修改为你想要的用户名
- MINIO_ROOT_PASSWORD=CHANGEME123 # 设置 MinIO 管理员的密码,修改为更安全的密码
command: server /data --console-address ":9001"
restart: unless-stopped
初始化
1、打开浏览器,访问 http://<你的服务器IP>:9001,输入你在 docker-compose.yml 中设置的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY,然后点击Login。
2、使用compose配置文件中的用户名和密码进行登录。
存储桶创建
1、首先需要创建存储桶,点击 Buckets➡ Creare Bucket。
2、给存储桶起一个名称后,然后点击创建即可。
3、存储桶创建完成。
4、点击存储桶,可以查看详细的信息,并且对权限等可以进行设置,比如你将存储桶用于博客图床,那么就需要将存储桶的权限设置为公开,否则访问图片的时候会提示404。
创建API密钥
1、接下来我们创建用于账户认证的APi密钥,点击Access Keys➡ Creare Bucket。
2、创建的密钥只会显示一次,建议桌面建一个文本文档保存相关密钥内容。
3、通过以上的设置我们得到了几下几个参数。
minio的web管理地址:10.0.0.78:9001
minio的数据通信地址:10.0.0.78:9000
存储桶的名称:halo-backup
密钥: xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx
如果使用对象存储备份服务
1、这里我们使用1pane演示,登录1panel,在面板设置中找到minio,点击添加。
2、填写好对应的api密钥和minio的通信地址(端口号是9000,不是9001),然后点击获取桶,如果填写正确的话可以自动获取创建的存储桶,选中即可。
3、创建完成。
4、接下来我们在1panel面板中创建一个系统快照,存储路径选择刚才添加的minio存储桶。
5、稍等片刻可以看到文件备份成功,接下来我们进入minio控制台可以看到 备份的快照文件已经出现在存储桶中。
6、文件备份成功。
总结
通过MinIO,我们成功创建了基于本地的S3对象存储,接下来我们可以使用此存储备份各种服务,当然我上面说的功能只是最简单的基础功能,MinIO还支持一些更高级的功能,比如数据快照、版本控制、以及对象生命周期管理等。这些功能能帮助我们更好地管理数据,提供更高的灵活性和可靠性,比如在需要恢复数据时,可以轻松恢复到之前的版本,或者在数据存储达到一定时间后自动进行归档处理,本期教程结束。