minio安装部署及简单使用

minio安装部署及简单使用

文章目录

  • minio安装部署及简单使用
    • 1 单机安装
    • 2 minio浏览器界面操作
    • 3 minio集群安装
      • 3.1 minio集群部署方式
      • 3.2 minio集群部署步骤
      • 3.3 注意事项

Minio遵循极简的设计理念,从安装部署到运行都体现出极简的理念。对象存储,以对象为操作单元。

1 单机安装

通过如下步骤即可单机安装和运行minio

  1. 从官网下载minio二进制文件:
    下载地址

  2. 新建minio安装目录,执行如下命令:
    mkdir -p /home/minio/data

  3. 把二进制文件上传到安装目录后,执行:

    chmod +x minio
    export MINIO_ACCESS_KEY=minioadmin
    export MINIO_SECRET_KEY=minioadmin
    ./minio server /home/data
    

2 minio浏览器界面操作

通过上述简单步骤安装和启动minio服务后,minio已开启web客户端操作页面,可通过界面添加文件夹和上传文件等操作,也可通过minio官方提供的客户端,通过命令进行相关操作。

  1. 登录minio的web页面
    界面登录的access_key和secret_key分别为minioadmin、minioadmin,服务端口为9000,服务地址如下:
    http://10.45.156.156:9000/

  2. 登录后界面如下:
    minio安装部署及简单使用_第1张图片

  3. 点击右下角的+按钮,可创建bucket和上传文件,如上图所示创建了test文件夹并上传了图片文件。

  4. 界面可对文件进行删除、下载、预览和分享操作,可配置桶的访问策略,如果需要网页可访问上传文件的地址,需要设置为如下权限:
    minio安装部署及简单使用_第2张图片

3 minio集群安装

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

3.1 minio集群部署方式

集群部署方式分为以下几种:

  1. 不分组直接部署,不支持集群扩容,一般用于一次部署场景

  2. 按照server pools的方式部署,支持分组扩容

这里介绍第二种,支持分组扩容的方式,第一种较少使用,且无法通过minio官方方式扩容。

3.2 minio集群部署步骤

  1. 环境说明(两节点,每个节点4个路径)
服务器节点 数据目录 运行目录
10.45.154.179 /nas/data1/minio/data{1…4} /home/minio/run
10.45.154.180 /nas/data1/minio/data{1…4} /home/minio/run
  1. 下载minio二进制文件,并上传到两个两个节点的运行目录里
    下载地址
mkdir -p /home/minio/run #创建目录
wget http://dl.minio.org.cn/server/minio/release/darwin-amd64/minio #下载运行文件
scp minio [email protected]:/home/minio/run/ #拷贝到另一个节点
  1. 创建数据目录及配置目录,在两个节点分别创建
mkdir -p /nas/data1/minio/{data1,data2,data3,data4}
mkdir -p /etc/minio
  1. 集群启动文件创建,两个节点都创建

采用默认端口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}
  1. 创建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
  1. 启动集群,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  #加入自启动
  1. 通过任意节点的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 来保证时间一致

你可能感兴趣的:(云存储,minio,minio安装,minio使用)