1.MinIO简介

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

2.MinIO部署

MinIO支持单机部署、集群部署两种方式。

3.MinIO下载
官方下载地址
最下面显示不同开发语言客户端MINIO SDK的集成方式。
4.linux部署单机MinIO
命令下载

wget https://dl.min.io/server/minio/release/linux-amd64/minio

也可以在官网下载好上传到服务器。
5.启动MinIO
授权执行权限:

chmod +x minio

修改用户名密码:

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

启动

nohup  ./minio server  /opt/minio/data  > /opt/minio/logs/minio.log  & 

默认端口9000

ps -ef|grep minio  查看是否启动成功

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

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

启动Minio 固定端口号 否则每次启动Minio会随机生成一个不一样的端口。
6.配置Systemd服务启动
创建service

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
#minio文件具体位置
AssertFileIsExecutable=/minio
[Service]
WorkingDirectory=/minio
# User and group 用户 组
User=root
Group=root
#创建的配置文件 minio.conf
EnvironmentFile=/minio.conf
ExecStartPre=
ExecStart=/minio server -C /minio/etc /minio/data
# Let systemd restart this service always
Restart=always
# 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=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target

将文件拷贝

cp /minio/minio.service /etc/systemd/system/

ls -lh 显示文件大小

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

相关命令

#重新执行systemd
systemctl daemon-reload
开机自动启动
systemctl enable minio.service
#启动服务
systemctl start minio.service
#停止服务
systemctl stop minio.service
#重启服务
systemctl restrat minio.service
#查看服务状态
systemctl status minio.service

术语解释

1S3
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: RAID5RAID6等)
RS(Reed-Solomon)里德-所罗门类纠删码
LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码

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

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐