Minio基于Windows部署

轩辕暗神 1年前 ⋅ 433 阅读

1、程序下载

操作系统: 地址 Windows10、11 https://min.io/docs/minio/windows/index.html

下载: http://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe|

2、单机部署

2.1 cmd命令启动程序

进入到minio的目录下,执行:

minio.exe server D:\minio\Test1

启动后打印以下内容:

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
Formatting 1st pool, 1 set(s), 1 drives per set.
WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
Warning: Default parity set to 0. This can lead to data loss.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
MinIO Object Storage Server
Copyright: 2015-2022 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2022-12-07T00-56-37Z (go1.19.3 linux/amd64)

Status:         1 Online, 0 Offline. 
API: http://192.168.0.117:9000  http://127.0.0.1:9000     
RootUser: minioadmin 
RootPass: minioadmin 
Console: http://192.168.0.117:39153 http://127.0.0.1:39153   
RootUser: minioadmin 
RootPass: minioadmin 

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

Documentation: https://min.io/docs/minio/linux/index.html

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ You are running an older version of MinIO released 6 months ago ┃
┃ Update: Run `mc admin update`                                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

一般会有2个报错

WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.

WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables

第一个报错:因为时单机部署,且只有一块磁盘,因此这种模式无论是服务实例还是磁盘都是“单点”,无任何高可用保障,磁盘损坏就表示数据丢失,所以报错

第二个报错:没有指定用户名和登录密码。(MinIO会给定默认账户密码及端口号)

如上图Console中的任意一个地址皆可访问: http://192.168.0.117:39153 http://127.0.0.1:39153 使用默认的登录密码即可使用(defaultuser : minioadmin,defaultpassword : minioadmin)

点击Create bucket:

桶的命名规则:

●存储桶名称的长度必须介于3 (最小)到63 (最大)个字符之间。

●存储桶名称只能由小写字母、数字、点(.) 和连字符(-) 组成。

●存储桶名称不得包含两个相邻的句点,或与连字符相邻的句点。

●存储桶名称的格式不得为IP地址(例如192.168.5.4)。

●存储桶名称不得以前缀 xn 开头–.

●存储桶名称不得以后缀 -s3alias 结尾。此后缀保留用于接入点别名。

●存储桶名称在分区中必须是唯一的。

2.2 纠删码模式

Minio使用纠删码erasure code 和校验和checksum来保护数据免受硬件故障和无声数据损坏。即便您丢失一 半数量(N/2)的硬盘,您仍然可以恢复数据。

纠删码是一种恢复丢失和损坏数据的数学算法,Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2奇偶校验块。这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块) , 你们仍可以从剩下的盘中的数据进行恢复。

cmd命令启动程序:
minio.exe server D:\minio\Test1 D:\minio\Test2 D:\minio\Test3 D:\minio\Test4

或者

minio.exe server D:\minio\Test{1…4}

与单硬盘直接启动的区别在于启动时添加了多块盘,需要注意,启动命令的server后面接的每个目录都是一个物理硬盘 新建桶及上传文件不再赘述。

上传文件后,可以在每个盘中看到其文件,

测试:在本地磁盘删除一个test1.jpg文件

结果:过一会,该文件会自动恢复(因为EC码,自动恢复了)

2.3 分布式集群部署

分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。 由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。

运行分布式Minio 启动一个分布式Minio实例。你只需要把硬盘位置做为参数传给minio server命令即可,然后你需要在所有其它节点运行同样的命令。

●分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export(Linux)或者 path(Windows)成环境变量。 新版本使用MINIO_ROOT_USER & MINIO_ROOT_PASSWORD。

●分布式Minio使用的磁盘里必须是干净的,里面没有数据。

●下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径,每个IP之间可以互相通信。

●分布式Minio甲的节点时间差不能超过3秒,你可以使用NTP来保证时间一致。

●在Windows 下运行分布式Minio处于实验阶段,请悠着点使用。 4个节点(minio01、minio02、minio03、minio04),每节点4块盘(Data01…04) Windows建议写成.bat脚本文件运行,代码如下:

set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=12345678
minio.exe server --console-address “192.168.0.91:9001” --address “192.168.0.91:9091” ^
http://192.168.0.91:9091/D:/Minio/Data{01…04} ^
http://192.168.0.92:9092/D:/Minio/Data{01…04} ^
http://192.168.0.93:9093/D:/Minio/Data{01…04} ^
http://192.168.0.94:9094/E:/Minio/Data{01…04}

参数详解:

● MINIO_ROOT_USER=admin 设置登录账号(access秘钥)

● MINIO_ROOT_PASSWORD=12345678 设置登录密码(secret秘钥)

● --console-address “192.160.0.91:9001” 指定IP和API端口

● --address “192.160.0.91:9091” 指定IP和控制台(UI界面)端口

● ^ 表示连接符 后面不可接空格

● Data{01…04} 表示Data01、Data02、Data03、Data04 这四块盘,找不到会自动创建文件

在每一个节点(服务器)运行如上代码(记得修改对应的IP和端口号)

2.3.1部署客户端MC

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 操作系统 ┃ 地址 ┃
┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃
┃ Windows10 ┃ http://docs.minio.org.cn/minio/baremetal/reference/minio-cli/minio-mc.html ┃
┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃
┃配置文件路径C:\Users\当前用户\config.json ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Windows建议把mc.exe文件放在C:\Windows\System32目录下,这样mc命令就是全局命令。 查看命令使用语法:

直接数据命令回车即可,比如:mc config 使用 – help参数,比如:mc config – help 使用 mc config -h 命令查看 mc config 的帮助信息

其中,host 命令用来添加、删除和列出配置文件中的服务主机。

我们继续使用 “mc config host -h” 命令查看 mc config host 子命令的帮助信息, 查看 HOST 列表

使用 mc config host ls 命令列出 MinIO 客户端中的所有 host

添加新的 HOST

命令模板:

mc config host add<ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SRCRET-KEY> [--api API-SIGNATURE]

其中:

● ALIAS 别名就是给你的云存储服务起了一个短点的外号。

● YOUR-S3-ENDPOINT 云存储的主机和端口,如:http://127.0.0.1:9000

● YOUR-ACCESS-KEY 云存储服务的 Access Key

● YOUR-SECRET-KEY 云存储服务的 Secret Key

● API-SIGNATURE API签名是可选参数,默认情况下它被设置为 “S3v4”

示例-Amazon S3云存储

参考AWS Credentials指南获取你的AccessKeyID和SecretAccessKey:

mc config host add minio01 http://192.168.0.46:9091 admin 12345678 --api s3v4

通过mc config host ls 可以看到新增的host

其他MC命令参考官方文档。

2.4 MinIO Server 及Minio Client数据同步

功能将一个集群中的Minio服务的数据同步到另一集群的Minio服务中去。

minio server 搭建两套Minio分布式系统(参考2.2.1)

示例:

第一套Minion系统中有(后文称M1)

192.168.0.11:9091、192.168.0.12:9092

2个节点,每个节点4块盘

第二套Minion系统中有(后文称M2)

192.168.0.21:9093、192.168.0.22:9094

2个节点,每个节点4块盘

密钥均为:

● MINIO_ROOT_USER=admin 设置登录账号(access秘钥)

● MINIO_ROOT_PASSWORD=12345678 设置登录密码(secret秘钥)

若把M1中的桶同步到M2中

使用mc客户端

添加host:

mc config host add minio91 http://192.168.0.11:9091 admin 12345678
mc config host add minio93 http://192.168.0.21:9093 admin 12345678

每一套Minio系统使用Nginx负载均衡并反向代理,所以只需添加M1和M2中的任一节点即可 同步两个Minio服务的bucket:将minio91的所有桶数据同步至minio93

mc mirror --remove --overwrite --watch minio91 minio93

写如下.bat脚本,让Minio client实时监听文件改动并同步

@echo off
SET minio91_uat=minio91
SET minio93_uat=minio93
SET Description=minioc
SET After=network.target
SET Type=simple
mc mirror --remove --overwrite --watch “%minio91_uat%” “%minio93_uat%”
SET %minio93_uat%Restart=on-failure
SET %minio93_uat%WantedBy=multi-user.target
EOF    

运行时如果提示,没有指定锁对象,则在minio93中新建一个桶(与minio91的桶名一致),勾选对象锁定


全部评论: 0

    我有话说: