Centos7搭建minio

这里写目录标题

  • 一、简介与下载
  • 二、MinIO部署--直接启动
  • 三、启动
  • 四、将Minio设置成服务 配置Systemd服务启动
        • 1. 创建minIO 配置文件
        • 2. 创建service:
        • 2. 重新加载 systemd
        • 3. 开机自动启动
        • 4. 其它
        • 5. 访问
  • 五、术语解释
  • 六、开放下载,设置永久访问链接
  • 七、结束
  • 八、扩展 多种编程语言的 API 文档

一、简介与下载

1.MinIO简介

MinIO是高性能的对象存储,单个对象最大可达5TB。适合存储图片、视频、文档、备份数据、安装包等一系列文件。是一款主要采用Golang语言实现发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript,
Golang语言。客户端与服务器之间采用http/https通信协议。

————————————————

1、在home目录下创建minio文件夹

mkdir /usr/local/soft/minio

2、进入/home/minio 文件夹

cd /usr/local/soft/minio

3、下载文件 链接: https://min.io/download#/linux

  • 3-1 直接访问上面链接 下载,离线安装
  • 3-2 在线安装 wget https://dl.min.io/server/minio/release/linux-amd64/minio

二、MinIO部署–直接启动

MinIO支持单机部署、集群部署两种方式。
最下面有不同开发语言客户端MINIO SDK的集成方式。

  1. 创建数据文件路径
mkdir /data/minio/data
  1. 创建日志文件
touch /data/minio/log/minio.log

三、启动

  1. 赋予权限

    chmod 777 minio
    或 
    chmod +x minio
    
  2. 修改用户名密码/etc/default/minio

    vim /etc/default/minio
    
    # 启动的时候看提示 新版本
    MINIO_ROOT_USER=username
    MINIO_ROOT_PASSWORD=password 
    
    # 如果MinIO版本比较旧,修改用户名密码为
    MINIO_ACCESS_KEY=username 
    MINIO_SECRET_KEY=password
    
    # 然后 刷新,重载环境变量
    
    
  3. 前台启动命令 默认端口9000

    /usr/local/soft/minio/minio server /data/minio/data 
    
    
  4. 指定端口后台启动 ,避免每次重启后,端口随机变化

    nohup /usr/local/soft/minio/minio server --console-address :33806 --address 0.0.0.0:9666 /home/minio/data > /data/minio/log/minio.log &
    
    注:--console-address ":33806"是用来指定minio端口的
    
    
    

启动日志:

WARNING: Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x.x linux kernel version for best performance
MinIO Object Storage Server
Copyright: 2015-2023 MinIO, Inc.
License: GNU AGPLv3 
Version: RELEASE.2023-07-21T21-12-44Z (go1.19.11 linux/amd64)

Status:         1 Online, 0 Offline. 
S3-API: http://192.168.0.64:9000  http://127.0.0.1:9000     
RootUser: ltkj 
RootPass: ltkj.com 

Console: http://192.168.0.64:34211 http://127.0.0.1:34211   
RootUser: ltkj 
RootPass: ltkj.com 

Command-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart
   $ mc alias set myminio http://192.168.0.64:9000 ltkj ltkj.com

Documentation: https://min.io/docs/minio/linux/index.html
Warning: The standard parity is set to 0. This can lead to data loss.


  1. 默认端口9000
    ps -ef | grep minio  # 查看是否启动成功
    

目前最新版本已经区分了Console和API两个服务的端口。原来都是共同使用9000,现在需要在启动命令中映射两个端口,然后指定哪个端口做哪项服务。启动命令如下:

nohup  ./minio server --address '0.0.0.0:9000'  --console-address '0.0.0.0:9000'  
/data/minio/data  > /data/minio/logs/minio.log  & 

启动Minio 固定端口号 否则每次启动Minio会随机生成一个不一样的端口。

四、将Minio设置成服务 配置Systemd服务启动

1. 创建minIO 配置文件
vim /etc/default/minio.conf


# 对应minio的安装目录位置
MINIO_VOLUMES="/data/minio/data" 
# 注意这里的ip要改成你们自己的ip地址, 这里的ip特别注意,需要内网ip,否则服务起不来。固定端口号设置,避免重启后 端口号随机
MINIO_OPTS="--address 0.0.0.0:9001 --console-address 0.0.0.0:9010 "

# 设置用户名和密码
## 启动的时候看提示 新版本
MINIO_ROOT_USER=root
MINIO_ROOT_PASSWORD=ltkj.com 

# 如果MinIO版本比较旧,修改用户名密码为
# MINIO_ACCESS_KEY=username 
# MINIO_SECRET_KEY=password

2. 创建service:
vim /etc/systemd/system/minio.service


[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
#minio文件具体位置
AssertFileIsExecutable=/usr/local/soft/minio/minio

[Service]
WorkingDirectory=/data/minio/data
# User and group 用户/组
User=root
Group=root
PermissionsStartOnly=true

#创建的配置文件 minio.conf
EnvironmentFile=/etc/default/minio

ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""
# $MINIO_OPTS $MINIO_VOLUMES  //这其实就是minio服务启动命令 /root/minio是服务位置 后面是端口号和数据存放目录
ExecStart=/usr/local/soft/minio/minio server $MINIO_OPTS $MINIO_VOLUMES

## 如果不用/etc/default/minio 默认配置,通过--confit-dir 指定自定义conf。 /path/to/minio 可执行文件路径,/path/to/config替换为MinIO的配置文件路径。  
## ExecStart=/path/to/minio server --config-dir=/path/to/config

StandardOutput=journal
StandardError=inherit

# Specifies the maximum file descriptor number that can be opened by this process*
LimitNOFILE=65536

# Disable timeout logic and wait until process is stopped*
TimeoutStopSec=0

# SIGTERM signal is used to stop Minio*
KillSignal=SIGTERM

SendSIGKILL=no
SuccessExitStatus=0

[Install]
WantedBy=multi-user.target
2. 重新加载 systemd
systemctl daemon-reload
3. 开机自动启动
systemctl enable minio.service
4. 其它

ls -lh 显示文件大小

ls -lh /etc/systemd/system/minio.service 

相关命令

#启动服务
systemctl start minio.service

#停止服务
systemctl stop minio.service
#重启服务
systemctl restrat minio.service
#查看服务状态
systemctl status minio.service
5. 访问

http://124.239.153.45:9010/browser
root ltkj.test
Centos7搭建minio_第1张图片

五、术语解释

1、S3
Simple Storage Service,简单存储服务,这个概念是Amazon在2006年推出的,对象存储就是从那个时候诞生
的。S3提供了一个简单Web服务接口,可用于随时在Web上的任何位置存储和检索任何数量的数据。
2、Object
存储到 Minio 的基本对象,文件等。
3、Bucket
存储对象的空间。每个 Bucket 之间的数据是相互隔离的。相当于存放文件的顶层文件夹
4、Drive
部署 Minio 时设置的磁盘,以参数的方式传入。Minio 中所有的对象数据都会存储在 Drive 里。
5、Set
一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的 Drive 分布在不
同位置。
6.纠删码
纠删码是一种恢复丢失和损坏数据的数学算法,来保证可靠性 。
纠删码技术在分布式存储系统中的应用主要有三类:
阵列纠删码(Array Code: RAID5、RAID6等)
RS(Reed-Solomon)里德-所罗门类纠删码
LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码

Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。在同一集群内,MinIO 自己会自动生成若干纠删组(Set),用于分布存放桶数据。一个纠删组中的一定数量的磁盘发生的故障(故障磁盘的数量小于等于校验盘的数量),通过纠删码校验算法可以恢复出正确的数据。
————————————————

六、开放下载,设置永久访问链接

很多情况下,我们的图片是需要浏览器直接访问的,这里通过minio的客户端进行设置。
1、下载客户端:

wget https://dl.minio.io/client/mc/release/linux-amd64/mc

2、赋予权限

chmod 777 mc

3、添加server(注意自己的端口和账户名密码)

# ./mc config host add minio http://ip:端口/ 账户 密码
./mc config host add minio http://172.16.3.28:9000/ minioadmin minioadmin

在这里插入图片描述

4、设置需要开放下载的bucket, 注意需要带minio

# ./mc  anonymous  set  download  minio/桶名称
./mc  anonymous  set  download  minio/dev

七、结束

至此就安装就结束了
文件访问地址:

# http://ip:端口/桶名/(桶名文件夹下的路径)/文件名
http://172.16.3.28:9000/dev/2022/11/07/asd.txt

八、扩展 多种编程语言的 API 文档

Object API (Amazon S3 compatible):
   Go:         https://docs.min.io/docs/golang-client-quickstart-guide
   Java:       https://docs.min.io/docs/java-client-quickstart-guide
   Python:     https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide

你可能感兴趣的:(运维,运维)