MinIO搭建属于自己的文件存储服务

5,635 阅读6分钟

MinoIO背景:

MinIO 是GlusterFS创始人之一Anand Babu Periasamy发布的开源项目,基于Apache V2 license 100% 开放源代码。MinIO采用Golang实现,客户端支持Java、Python、Javacript、Golang语言等。在中国,阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品。

其设计的主要目标是作为私有云对象存储的标准方案非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据、容器和虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T。

FirstStep——阿里云ECS服务器安装docker:

前提条件

  • 电脑一台:本次以Windows 11为例
  • 安全终端模拟软件:本次以Xshell为例
  • 云服务器:本次以阿里云ECS服务器为例

一、查看服务器信息:

查看系统内核:

uname -r

image.png

查看系统版本:

cat /etc/os-release

image.png

二、安装docker:

1.卸载旧的版本:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

image.png

2.需要的安装包:

yum install -y yum-utils

image.png

3.设置镜像仓库(以阿里云镜像仓库为例)

yum-config-manager \
    --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo  默认国外的

yum-config-manager \
    --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  阿里云

image.png

4.更新yml软件包索引:

yum makecache fast(centos8 没有fast参数,去掉即可)
yum makecache

image.png

5.安装docker相关内容(以docker-ce社区 ee企业版为例)

yum install docker-ce docker-ce-cli containerd.io

image.png

image.png

6.启动docker并查看版本

systemctl start docker
docker version 

image.png

7.测试hello-world:

docker run hello-world

image.png

8.查看镜像:

docker images

image.png

SecondStep——minio安装:

1.docker安装指定版本minio

docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z

image.png

2.使用docker运行minio

docker run -p 9000:9000 --name minio -di --restart=always \
  -e "MINIO_ROOT_USER=root" \
  -e "MINIO_ROOT_PASSWORD=root" \
  -v /usr/local/minio/data:/data \
  -v /usr/local/minio/config:/root/.minio \
  minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
  • MINIO_ROOT_USER:设置用户名
  • MINIO_ROOT_PASSWORD:设置密码
  • /usr/local/minio/data:文件的存储地址
  • /usr/local/minio/config:minio的相关配置文件 注意!!!:此处使用的是9000端口,需在服务器安全组添加9000端口,即本文第三部分 image.png

3.查看docker运行日志:

docker logs 运行结果id

image.png

出现以上界面则代表minio运行成功

ThirdStep——打开服务器安全组9000端口:

阿里云安全组概述:

在购买的时候,阿里云会要求客户设置安全组,如果不没置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。 很多朋友购买了,安装了某些服务后发现死活连不上,也没有任何报错,最终发现原来是安全组的锅。如果你也有类似情况,不妨检查下安全组是否已经放行端口。购买时默认安全组 不知道安全组的用户在新购服务器上部署网站,常常会发现不能正常访问。这是因为在购买阿里云ECS服务器的时候。阿里云默认安全组只放行了ICMP协议、SSH 22端口、RDP3398端口三个端口,访问网站的80或443端口并没有放行。

image.png

如果需要网站访问,南无用户在购买ECS服务器的时候需要勾选http80端口和https443端口,购买后配置安全组

上一部分我们提到,我们搭建的minio服务器需要开放9000端口,于是我们以9000端口为例

首先我们找到实例,点击实例进入详情界面,再点击进入安全组,进行规则的配置

image.png

我们已经看到了默认的3条规则,我们点击添加安全组规则

image.png 现在这台服务器是专用网络,网卡类型的话就是内网,如果是经典网络的服务器,那么我们就需要选择外网入方向来设置

  • 协议类型:我们选择自定义的TCP
  • 端口范围:这里要求填写的是一个范围,所以我们要写9000/9000
  • 授权对象:这里我们要让所有人都可以访问:所以我们要写0.0.0.0/0
  • 优先级:填1到100的数字,数字越小,优先级越高 点击确定,我们在安全组里的9000端口就已经打开了,除此之外,安全组还用于设置内网互通拦截特定的IP和端口,只允许特定的IP来登录服务器,或者只允许读取访问公网上的某个特定的IP

常见默认端口:

  • 22: SSH(安全登录)、SCP(文件传输)、端口号重定向
  • 21:FTP(文件传输)协议代理服务器常用端口
  • 39000/40000:FTP被动模式常用端口
  • 80/8080/3128/8081/9098: HTTP协议代理服务器常用端口号
  • 443: HTTPS (securely transferring web pages)服务器,默认端口号为443/tcp 443/udp
  • 1080:SOCKS代理协议服务器常用端口号
  • 23: Telnet(不安全的文本传送)
  • 69(udp): TFTP (Trivial File Transfer Protocol)
  • 25: SMTP Simple Mail Transfer Protocol (E-mail),默认端口号
  • 110: POP3 Post Office Protocol (E-mail)
  • 9080: Webshpere应用程序
  • 9090: webshpere管理工具
  • 3389: windows RDP远程登录
  • 1521: Oracle数据库
  • 3306: MySQL
  • 11211:MEMCACHED
  • 5432: PostgresQL
  • 1433: MS SQL
  • 6379: Redis
  • 8888:宝塔面板初始端口
  • 888:宝塔面板phpmysql端口

image.png

MinIO使用方法:

一、浏览器访问:

在浏览器输入地址:https://服务器ip:9000,出现登录页面即代表成功:

image.png

使用上一步设置的登录账号和密码进行登录,登录成功后页面如下:

image.png 在这里我新建了一个navigation的桶,可以简单理解为存数据的地方

二、上传文件到minio文件服务

第一种:

直接在浏览器上传,比如将图片文件直接拖拽在这里

image.png 这时,我们上传了一些图片,但是我们还不能直接通过输入以下地址访问图片:

http://服务器ip:9000/桶名/文件名

我们需要配置一下规则:

image.png 点击Edit policy,更改至如下:

image.png 这个时候我们就可以这样访问图片了:

http://服务器ip:9000/navigation/111.webp