去评论
海欣资源

minio安装部署教程

dscca
2022/05/12 12:57:01
1 单机安装
    通过如下步骤即可单机安装和运行minio
    从官网下载minio二进制文件:
    下载地址
    新建minio安装目录,执行如下命令:
    mkdir -p /home/minio/data
    把二进制文件上传到安装目录后,执行:
    chmod +x minio
    export MINIO_ACCESS_KEY=minioadmin
    export MINIO_SECRET_KEY=minioadmin
    ./minio server /home/data

2 minio浏览器界面操作
    通过上述简单步骤安装和启动minio服务后,minio已开启web客户端操作页面,可通过界面添加文件夹和上传文件等操作,也可通过minio官方提供的客户端,通过命令进行相关操作。
    登录minio的web页面
    界面登录的access_key和secret_key分别为minioadmin、minioadmin,服务端口为9000,服务地址如下:
    http://10.45.156.156:9000/
    登录后界面如下:

点击右下角的+按钮,可创建bucket和上传文件,如上图所示创建了test文件夹并上传了图片文件。
界面可对文件进行删除、下载、预览和分享操作,可配置桶的访问策略,如果需要网页可访问上传文件的地址,需要设置为如下权限:

3 minio集群安装
    MinIO支持以单点、分布式集群等方式进行部署。MinIO分布式集群是指在多个服务器节点均部署MinIO服务,并将其组建为分布式存储集群,对外提供标准S3接口以进行统一访问。

3.1 minio集群部署方式
集群部署方式分为以下几种:
    不分组直接部署,不支持集群扩容,一般用于一次部署场景
    按照server pools的方式部署,支持分组扩容
这里介绍第二种,支持分组扩容的方式,第一种较少使用,且无法通过minio官方方式扩容。

3.2 minio集群部署步骤
    环境说明(两节点,每个节点4个路径)

下载minio二进制文件,并上传到两个两个节点的运行目录里
    下载地址

mkdir -p /home/minio/run #创建目录
wget http://dl.minio.org.cn/server/minio/release/darwin-amd64/minio #下载运行文件
scp minio root@10.45.154.180:/home/minio/run/ #拷贝到另一个节点

    创建数据目录及配置目录,在两个节点分别创建

mkdir -p /nas/data1/minio/{data1,data2,data3,data4}
mkdir -p /etc/minio

    集群启动文件创建,两个节点都创建
    采用默认端口9000,access_key和secret_key设置为minioadmin、minioadmin
vi vim /home/minio/run/start.sh #创建启动文件

文件内容如下
#!/bin/bash
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin
/home/minio/run/minio server --config-dir /etc/minio \
http://10.45.154.{179...180}/nas/data1/minio/data{1...4}

    创建minio系统服务,两个节点都创建
vim /usr/lib/systemd/system/minio.service

文件内容如下
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/home/minio/run/
ExecStart=/home/minio/run/start.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

    启动集群,l两个节点执行同样操作
修改启动文件权限
chmod +x /usr/lib/systemd/system/minio.service
chmod +x /home/minio/run/minio
chmod +x /home/minio/run/minio-run.sh

启动集群
systemctl daemon-reload #重新加载服务
systemctl start minio   #启动服务
systemctl enable minio  #加入自启动
    通过任意节点的ip都可以进行操作,可通过界面或者接口进行操作,如果要均衡访问,可通过nginx做负载均衡
    通过如下连接访问minio的web界面
    http://10.45.154.179:9000/
    也可通过180节点访问
    http://10.45.154.180:9000/

3.3 注意事项
    集群部署时,数据目录所对应的一定要是一块物理盘,启动时minio回去格式化硬盘,不能是系统盘,若不然会提示如下错误
API: SYSTEM()
Time: 16:22:26 CST 11/03/2021
Error: Marking http://10.45.154.179:9000/minio/storage/nas/data1/minio/data4/v37 temporary offline; caused by Post "http://10.45.154.179:9000/minio/storage/nas/data1/minio/data4/v37/readall?disk-id=&file-path=format.json&volume=.minio.sys": dial tcp 10.45.154.179:9000: connect: connection refused (*fmt.wrapError)
       6: internal/rest/client.go:147:rest.(*Client).Call()
       5: cmd/storage-rest-client.go:151:cmd.(*storageRESTClient).call()
       4: cmd/storage-rest-client.go:523:cmd.(*storageRESTClient).ReadAll()
       3: cmd/format-erasure.go:406:cmd.loadFormatErasure()
       2: cmd/format-erasure.go:326:cmd.loadFormatErasureAll.func1()
       1: internal/sync/errgroup/errgroup.go:123:errgroup.(*Group).Go.func1()

注意安装系统时,不要把数据盘做raid,minio通过纠错码机制,保证数据的存储安全
    分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量
    分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致