标签 MinIO 下的文章

CentOS7部署MinIO服务器&VPS使用MinIO Client备份数据

CentOS7部署MinIO服务器&VPS使用MinIO Client备份数据

重要数据备份是很重要的,本博客也遇到了几次意外,但是都从备份中恢复了。以往都是定期手动备份站点目录和数据库,耗时又费力。在此探索一种新的方式,在一台存储空间较大的VPS(俗称大盘机)上部署MinIO服务端,客户机通过MinIO Client将文件备份到大盘机。

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

服务端部署

根据MinIO官方文档描述,MinIO服务端部署非常简单,几条命令即可完成安装,然后我们再创建一个systemd配置文件用于开机自启即可。

  1. 依次输入以下两行命令,下载二进制文件至/usr/local/bin,并赋予其可执行权限。

     wget -P /usr/local/bin https://dl.min.io/server/minio/release/linux-amd64/minio
     chmod +x /usr/local/bin/minio
  2. 依次输入以下两行命令,创建MinIO工作目录,尝试手动运行服务。记录回显的Endpoint、AccessKey、SecretKey等信息,尝试在浏览器中输入Endpoint中的地址,输入AccessKey和SecretKey登陆。检查正常后按Ctrl + C停止MinIO。若不成功,请检查MinIO是否正常运行,并检查系统防火墙配置是否放行9000端口。

     mkdir /srv/MinIO
     minio server /srv/MinIO
  3. CentOS7使用firewalld防火墙,使用以下第一条命令在防火墙规则中添加开放9000端口的TCP通信,另勿忘使用第二条命令重载防火墙。

     firewall-cmd --zone=public --add-port=9000/tcp --permanent
     firewall-cmd --reload
  4. 运行以下命令,在/etc/systemd/system/目录下创建minio.service配置文件,并使用vi编辑器打开。tips:Alt+.可快速输入上一命令中的变量。

     touch /etc/systemd/system/minio.service
     vi /etc/systemd/system/minio.service
  5. 在vi编辑器中输入以下内容,按ESC键,输入:wq,保存退出。

     [Unit]
     Description=MinIO object storage server
     After=network.target
    
     [Service]
     Type=simple
     ExecStart=/usr/local/bin/minio server /srv/MinIO
     Restart=on-failure
    
     [Install]
     WantedBy=multi-user.target

6.运行以下命令,启动服务,并添加开机启动,此时通过浏览器应该能正常访问到网页即证明配置完成。

```
systemctl start minio
systemctl enable minio
```

客户端配置

客户端的配置依然很简单。

  1. 使用wget下载文件到,并赋予其可执行权限。

      wget -P /usr/local/bin/ https://dl.min.io/client/mc/release/linux-amd64/mc
      chmod +x /usr/local/bin/mc
  2. 使用以下命令添加上文部署好的MinIO对象存储服务器信息。其中,Alias是云存储服务的简称。API-SIGNATURE是可选参数。默认情况下,它设置为“S3v4”。

     mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>

    ​ 例如:

      mc config host add MinIO http://10.145.87.224:9000 Do24SZ3JDWEKDWPZ5DV2O KL7Hjas76BdI4msWYEZh3FH*Sh4B+gH&SvGc3z5Ub
  3. 在我们上面添加的MinIO下,创建一个名为blog的存储桶(bucket)。

     mc mb MinIO/blog
  4. 运行以下命令将blog.lexsion目录下的文件同步到名为MinIO/blog的bucket里,并保持对目录修改的监听。此命令在本地修改/删除文件后会同步在bucket中修改/删除。测试正常后按Ctrl+C停止。

     mc mirror -w --overwrite --remove /www/wwwroot/blog.lexsion MinIO/blog
  5. 创建systemd配置文件,使用以下命令打开vi编辑器。

     vi /etc/systemd/system/minioc.service
  6. 在打开的编辑器中按i键进入编辑模式,输入如下内容,按ESC键,输入:wq按Enter键保存退出。

     [Unit]
     Description=MinIO Client Service
     After=network.target
    
     [Service]
     Type=simple
     ExecStart=/usr/local/bin/mc mirror -w --overwrite --remove /www/wwwroot/blog.lexsion MinIO/blog
     Restart=on-failure
    
     [Install]
     WantedBy=multi-user.target
  7. 运行服务,并添加到开机自启动。

     systemctl start minioc
     systemctl enable minioc

到此,本文就结束了。但是MinIO的功能远不止这些,大家有兴趣可以自行探索。

参考:

MinIO中文Docs.
https://docs.min.io/cn/
MinIO.Docs.English Ver.
https://docs.min.io/docs/
Centos7(Firewall)防火墙开启常见端口命令
http://www.5yun.org/10074.html
vim非完全学习手册
https://lexsion.com/index.php/archives/129/