部署本地对象存储S3服务器MinIO

48

什么是对象存储

对象存储(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还支持一些更高级的功能,比如数据快照、版本控制、以及对象生命周期管理等。这些功能能帮助我们更好地管理数据,提供更高的灵活性和可靠性,比如在需要恢复数据时,可以轻松恢复到之前的版本,或者在数据存储达到一定时间后自动进行归档处理,本期教程结束。