Minio文件服务器单机部署并将Minio设置成Linux服务启动

(一) Minio简介

1.1 Minio介绍

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非
常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而
一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

1.2 纠删码EC(Erasure Code)

MinIO 使用纠删码机制来保证高可靠性,使用 highwayhash 来处理数据损坏( Bit Rot Protection )。
关于纠删码,简单来说就是可以通过数学计算,把丢失的数据进行还原,它可以将n份原始数据,增加m
份数据,并能通过n+m份中的任意n份数据,还原为原始数据。即如果有任意小于等于m份的数据失
效,仍然能通过剩下的数据还原出来。

1.3 存储机制

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

1.4 Minio优点

  • 部署简单: 一个single二进制文件即是一切,还可支持各种平台。
  • minio支持海量存储,可按zone扩展(原zone不受任何影响),支持单个对象最大5TB;
    兼容Amazon S3接口,充分考虑开发人员的需求和体验;
  • 低冗余且磁盘损坏高容忍,标准且最高的数据冗余系数为2(即存储一个1M的数据对象,实际占用
    磁盘空间为2M)。但在任意n/2块disk损坏的情况下依然可以读出数据(n为一个纠删码集合(Erasure
    Coding Set)中的disk数量)。并且这种损坏恢复是基于单个对象的,而不是基于整个存储卷的。
  • 读写性能优异

1.5 官网地址

Minio英文文档
Minio中文文档

如果是学习或者玩一下,想用最新版本,建议看英文文档,中文文档更新可能没用那么及时。

(二) Minio环境搭建

2.1 单机部署

minio server的standalone模式,即要管理的磁盘都在host本地。在standalone模式下,还可以分为non-erasure code modeerasure code mode

non-erasure code mode

  • 在此启动模式下,对于每一份对象数据,minio直接在data下面存储这份数据,不会建立副本,也不会
    启用纠删码机制。因此,这种模式无论是服务实例还是磁盘都是“单点”,无任何高可用保障,磁盘损坏 就表示数据丢失

erasure code mode

  • 此模式为minio server实例传入多个本地磁盘参数。一旦遇到多于一个磁盘参数,minio server会自动 启用erasure code mode。erasure code对磁盘的个数是有要求的,如不满足要求,实例启动将失 败。 erasure code启用后,要求传给minio server的endpoint(standalone模式下,即本地磁盘上的目 录)至少为4个。

2.2 基于Ubuntu18.04部署

2.2.1 下载Minio

Minio下载地址

#也可以使用命令下载 这里我使用官网下载(命令仅供参考)
wget -q http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
2.2.2 创建目录
#创建文件夹
sudo mkdir /usr/local/minio
2.2.3 将下载的Minio复制到创建的文件夹中
#复制文件
sudo cp /home/用户名/Downloads(中文版为:下载)/minio /usr/local/minio

#使下载的Minio文件为可执行文件
chmod +x minio
2.2.4 创建文件存放目录
#切换目录
cd /usr/local
#创建文件存放目录
sudo mkdir data
2.2.5 启动Minio
#进入安装目录
cd /usr/local/minio

#修改Minio的初始账号密码(也可以不修改)
#初始账号:minioadmin
#初始密码:minioadmin
export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=12345678 #注意密码至少八位

#启动Minio (需要进入minio存放目录下)
#50000 固定端口号 否则每次启动Minio会随机生成一个不一样的端口(控制台会有打印信息)
#/usr/local/java/etc 指定文件存放目录
./minio server --console-address ":50000" /usr/local/data

#在浏览器输入 http://Ip:50000 成功打开页面可以登录说明安装成功
2.2.6 将Minio设置成系统服务
#以上步骤,如果Ctrl+C退出后,这个Minio服务同时也停止了
#如果需要它在后台运行就需要把它添加到后台服务里边

#切换文件目录
cd /usr/local/minio
#创建目录
mkdir conf
#创建配置文件
mkdir minio.conf
#minio.conf文件内容

#数据存放目录
MINIO_VOLUMES="/usr/local/data"
#端口号设置
MINIO_OPTS="--console-address :9000"
#用户名
MINIO_ROOT_USER="minio"
#密码
MINIO_ROOT_PASSWORD="12345678"
#在/etc/systemd/system目录下新建一个minio.service 
#切换文件目录
cd /etc/systemd/system
#创建配置文件
mkdir minio.service
#minio.service文件内容

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
#minio文件具体位置
AssertFileIsExecutable=/usr/local/minio/minio
[Service]
# User and group 用户 组
User=root
Group=root
#创建的配置文件 minio.conf
EnvironmentFile=/usr/local/minio/conf/minio.conf
ExecStart=/usr/local/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# 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
2.2.7 正式启用和状态查看
#将服务设置为每次开机启动
systemctl enable minio.service
#重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载
systemctl daemon-reload
#启动服务
systemctl start minio
#停止服务
systemctl stop minio
#重启服务
systemctl restrat minio
#查看服务状态
systemctl status minio.service

#打开页面访问登录成功即可
http://192.168.80.137:9000

分布式集群部署也不是很难,有兴趣的可以参考官网文档或者网上教程玩一下。
在这里插入图片描述

文章仅用作记录分享,若有不当,还望指正。

最近开通个人了微信公众号,以后将会定期分享工作学习过程中遇到的问题,欢迎关注与我一道成长交流~:

微信搜索: MYY668999程序猿爱篮球 即可上车。

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
是的,部署好的Minio单机服务器可以搭建成Minio集群。下面是搭建Minio集群的步骤: 1. 首先,确保已经在每个节点上安装了Minio服务器。可以参考引用中的文章来搭建Minio单节点服务器。 2. 在每个节点上创建一个存储目录,用于存储Minio服务器的数据。可以使用以下命令创建目录: ```shell mkdir -p /data/minio ``` 3. 在每个节点上启动Minio服务器,并指定不同的端口和存储目录。例如,可以使用以下命令在节点1上启动Minio服务器: ```shell minio server --address :9000 /data/minio ``` 在节点2上启动Minio服务器: ```shell minio server --address :9001 /data/minio ``` 以此类推,可以在每个节点上启动Minio服务器。 4. 在任意一个节点上,使用`mc`命令行工具来创建一个Minio集群。可以使用以下命令: ```shell mc admin config set myminio cluster on http://<节点1IP>:9000 http://<节点2IP>:9000 http://<节点3IP>:9000 ``` 其中,`myminio`是集群的名称,`<节点1IP>`、`<节点2IP>`、`<节点3IP>`是各个节点的IP地址。 5. 在任意一个节点上,使用`mc`命令行工具来启动Minio集群。可以使用以下命令: ```shell mc admin service start myminio ``` 6. 现在,Minio集群已经搭建完成。可以使用`mc`命令行工具或者Minio的API来访问集群,并进行文件的上传、下载等操作。 请注意,搭建Minio集群需要至少3个节点,并且每个节点的存储目录需要保持一致。此外,还需要确保节点之间可以相互通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿爱篮球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值