【开源存储】minio对象存储部署实践

文章目录

    • 一、前言
      • 1、介绍说明
      • 2、部署方式
      • 3、冗余模式
      • 4、约束限制
        • 4.1、规格参数
        • 4.2、API支持
          • a、minio不支持的Amazon S3 Bucket API
          • b、minio不支持的Amazon S3 Object API
    • 二、部署说明
      • 1、软件安装
      • 2、minio单机部署
      • 3、minio分布式部署
        • 3.1、前置条件
        • 3.2、开始运行
        • 3.3、操作说明
    • 三、关于MC(minio client)
      • 1、安装部署
      • 2、连接配置
      • 3、访问操作

一、前言

minio官方入门指南
minio分布式纠删介绍

1、介绍说明

minio 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
minio具备以下特点

  • 数据保护
    分布式minio采用 erasure code来防范多个节点宕机和位衰减bit rot。
    分布式minio至少需要4个节点,使用分布式minio自动引入了纠删码功能。

  • 高可用
    单机minio服务存在单点故障,相反,如果是一个N节点的分布式minio,只要有N/2节点在线,你的数据就是安全的,可以正常进行读取对象操作。不过你需要至少有N/2+1个节点来创建新的对象
    例如,一个8节点的minio集群,每个节点一块盘,就算4个节点宕机,这个集群仍然是可读的,不过你需要5个节点才能写数据。

  • 限制
    分布式minio单租户存在最少4个盘最多16个盘的限制(受限于纠删码)。这种限制确保了minio的简洁,同时仍拥有伸缩性。如果你需要搭建一个多租户环境,你可以轻松的使用编排工具(Kubernetes)来管理多个minio实例。
    注意,只要遵守分布式minio的限制,你可以组合不同的节点和每个节点几块盘。比如,你可以使用2个节点,每个节点4块盘,也可以使用4个节点,每个节点两块盘,诸如此类。

  • 一致性
    minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。

2、部署方式

minio支持单机部署及分布式部署两种方式:

  • 单机部署仅作为网关角色使用,将一个本地目录通过s3协议共享出去,不具备任何冗余功能
  • 分布式部署可以将多块硬盘(甚至在不同服务器上)组成一个对象存储服务,由于硬盘分布在不同服务器上,可以避免单点故障

3、冗余模式

minio只支持纠删码冗余模式,纠删码是一种恢复丢失和损坏数据的数学算法, minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复。
纠删码的工作原理和RAID或者复制不同,像RAID6可以在损失两块盘的情况下不丢数据,而minio纠删码可以在丢失一半的盘的情况下,仍可以保证数据安全。 而且minio纠删码是作用在对象级别,可以一次恢复一个对象,而RAID是作用在卷级别,数据恢复时间很长。 minio对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复。minio纠删码的设计目标是为了性能和尽可能的使用硬件加速。

在这里插入图片描述

4、约束限制

4.1、规格参数
规格说明参数说明
最大驱动器数量16
最小驱动器数量4
读仲裁N / 2
写仲裁N / 2+1
Web浏览器上传大小限制5 GB
最大桶数无限额
每桶最大对象数无限额
最大对象大小5 TB
最小对象大小0 B
每次PUT操作的最大对象大小5 GB
每次上传的最大Part数量10,000
Part 大小5 MB到5 GB. 最后一个part可以从0 B到5 GB
每次list parts请求可返回的part最大数量1000
每次list objects请求可返回的object最大数量1000
每次list multipart uploads请求可返回的multipart uploads最大数量1000
4.2、API支持
a、minio不支持的Amazon S3 Bucket API
  • BucketACL (可以用 bucket policies)
  • BucketCORS (所有HTTP方法的所有存储桶都默认启用CORS)
  • BucketLifecycle (minio纠删码不需要)
  • BucketReplication (可以用 mc mirror)
  • BucketVersions, BucketVersioning (可以用 s3git)
  • BucketWebsite (可以用 caddy or nginx)
  • BucketAnalytics, BucketMetrics, BucketLogging (可以用 bucket notification APIs)
  • BucketRequestPayment
  • BucketTagging
b、minio不支持的Amazon S3 Object API
  • ObjectACL (可以用 bucket policies)
  • ObjectTorrent

二、部署说明

1、软件安装

  • minio安装非常简单,直接下载二进制文件,拷贝到/usr/bin文件运行即可
yum install wget
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/bin
  • 关闭防火墙或者开放指定访问端口
直接关闭防火墙
[root@node27 ~]# systemctl stop firewalld
[root@node27 ~]# systemctl disable firewalld开启防火墙,允许9000~9010端口或是9000端口访问
[root@node27 ~]# firewall-cmd --zone=public --add-port=9000:9010/tcp --permanent
[root@node27 ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent
[root@node27 ~]# firewall-cmd --reload--zone #作用域
--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效

2、minio单机部署

Minio是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL
执行minio server </local-path>命令,可以将本地目录通过s3协议共享出去
默认访问端口为9000,访问对应IP地址即可,如http://172.16.21.27:9000

示例如下,将/disk01目录通过s3协议共享出去
minio server /disk01/

3、minio分布式部署

3.1、前置条件
  • 完成minio软件包安装
  • 分布式minio里所有的节点需要有同样的access key和secret key,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access key和secret key export成环境变量
  • 分布式minio使用的磁盘里必须是干净的(提供空目录即可),里面没有数据
  • 分布式minio里的节点时间差不能超过3秒,可以使用NTP 来保证时间一致
3.2、开始运行

启动一个分布式minio实例,只需要把硬盘位置做为参数传给minio server命令即可,然后在所有其它节点运行同样的命令
示例:存在节点27、28、29、233、234、235六个节点,每个节点有两个磁盘,分别挂载在/disk01和/disk02目录下
所有节点下执行命令如下,之后访问任意节点的9000端口即可访问到分布式minio集群数据

export minio_ACCESS_KEY=user0001;
export minio_SECRET_KEY=user0001;
minio server http://10.0.0.27/disk01 http://10.0.0.27/disk02 http://10.0.0.28/disk01 http://10.0.0.28/disk02 http://10.0.0.29/disk01 http://10.0.0.29/disk02 http://10.0.0.233/disk01 http://10.0.0.233/disk02 http://10.0.0.234/disk01 http://10.0.0.234/disk02 http://10.0.0.235/disk01 http://10.0.0.235/disk02

在这里插入图片描述

  • 若启动分布式minio实例出现1st disk is already being used in another erasure deployment.
    尝试解除磁盘挂载,重新格式化磁盘后再挂载,之后重新启动分布式minio实例

在这里插入图片描述

3.3、操作说明
  • 通过export设置设置秘钥
    启动minio服务进程服务前,手动执行export设置访问秘钥
export minio_ACCESS_KEY=user01;export minio_SECRET_KEY=user01;
  • 通过export设置设置纠删比
    启动minio服务进程服务前,手动执行export设置纠删比
export minio_STORAGE_CLASS_STANDARD=EC:3

三、关于MC(minio client)

minio Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)

1、安装部署

直接下载二进制文件,拷贝至/usr/bin/目录运行即可

yum install wget
wget https://dl.minio.io/client/mc/release/linux-amd64/mc
chmod +x mc 
mv mc /usr/bin/

2、连接配置

通用命令:mc config host add <storage-name> <s3-endpoint> <ACCESS_KEY> <SECRET_KEY>

参考示例如下:
mc config host add myminion http://10.0.0.27:9000 user0001 user0001

3、访问操作

当与minio成功连接完成后,可通过以下命令进行访问操作

mc config host {}

  • ls 列出文件和文件夹
  • mb 创建一个存储桶或一个文件夹
  • cat 显示文件和对象内容
  • pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT
  • share 生成用于共享的URL
  • cp 拷贝文件和对象
  • mirror 给存储桶和文件夹做镜像
  • find 基于参数查找文件
  • diff 对两个文件夹或者存储桶比较差异
  • rm 删除文件和对象
  • events 管理对象通知
  • watch 监听文件和对象的事件
  • policy 管理访问策略
  • session 为cp命令管理保存的会话
  • config 管理mc配置文件
  • update 检查软件更新
  • version 输出版本信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209965.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-03-栈

1-栈的结构和特点 先进后出&#xff0c;后进先出 是栈的特点&#xff1b; 从图中&#xff0c;我们看到A入栈先放入底部&#xff0c;然后依次B和C&#xff1b;出栈的顺序依次是C-B-A&#xff1b;这种结构只能在一端操作。所以当某个数据集合只涉及在一端插入和删除数据&#xf…

模型层——单表操作

单表操作 一 ORM简介 查询数据层次图解&#xff1a;如果操作mysql&#xff0c;ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分&#xff0c;就是ORM&#xff0c;它实现了数据模型与数据库的解耦&#xff0c;即数据模型的设计不需要依赖于特定的数据库…

线性规划问题

线性规划问题&#xff1a; 将约束条件及目标函数都是决策变量的线性函数的规划问题称为线性规划问题 一般线性规划问题的描述&#xff1a; 为了解决这类问题&#xff0c;首先需要确定问题的决策变量:然后确定问题的目标&#xff0c;并将目标表示为决策变量的线性函数;最后找出问…

Spring Security 6.x 系列(8)—— 源码分析之配置器SecurityConfigurer接口及其分支实现

一、前言 本章主要内容是关于配置器的接口架构设计&#xff0c;任意找一个配置器一直往上找&#xff0c;就会找到配置器的顶级接口&#xff1a;SecurityConfigurer。 查看SecurityConfigurer接口的实现类情况&#xff1a; 在 AbstractHttpConfigurer 抽象类的下面可以看到所有…

利用异或、取反、自增bypass_webshell_waf

目录 引言 利用异或 介绍 eval与assert 蚁剑连接 进阶题目 利用取反 利用自增 引言 有这样一个waf用于防御我们上传的文件&#xff1a; function fun($var): bool{$blacklist ["\$_", "eval","copy" ,"assert","usort…

pip的基本命令和使用

pip 简介 pip是Python官方的包管理器&#xff0c;可以方便地安装、升级和卸载Python包。 pip 常用命令 显示版本和路径 pip --version获取帮助 pip --help升级pip和升级包 pip install --upgrade pip # Linux/macOS pip install -U pip # windowspip install…

每日一练【盛最多水的容器】

一、题目描述 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&…

Qt Creator使用Heob检测内存泄漏

开发环境&#xff1a;win10 qt5.12.0 编译环境:MinGW 使用内存泄漏排查工具heob步骤如下: 第一步:下载heob.exe--注&#xff1a;我本机仅有heob.exe还不行&#xff0c;提示如下 所以需要下载heob和Dwarfstack&#xff0c;然后把他们放到同级目录下&#xff0c;我已经下载并且…

Mybatis中的设计模式

Mybatis中的设计模式 Mybatis中使用了大量的设计模式。 以下列举一些看源码时&#xff0c;觉得还不错的用法&#xff1a; 创建型模式 工厂方法模式 DataSourceFactory 通过不同的子类工厂&#xff0c;实例化不同的DataSource TransactionFactory 通过不同的工厂&#xff…

js moment时间范围拿到中间间隔时间

2023.11.27今天我学习了如何对只返回的开始时间和结束时间做处理&#xff0c;比如后端返回了&#xff1a; [time:{start:202301,end:202311}] 我们需要把中间的间隔渲染出来。 [202301,202302,202303,202304,202305,202306,202307,202308,202309,202310,202311] 利用moment…

01 高等数学.武忠祥.0基础

第一章 函数与极限 01映射与函数 02 函数概念 对应法则 定义域 常见函数 函数的几种特性 周期函数不一定有最小周期。 涉及额外与复习 存在与任意的关系

Star 10.4k!推荐一款国产跨平台、轻量级的文本编辑器,内置代码对比功能

notepad 相信大家从学习这一行就开始用了&#xff0c;它是开发者/互联网行业的上班族使用率最高的一款轻量级文本编辑器。但是它只能在Windows上进行使用&#xff0c;而且正常来说是收费的&#xff08;虽然用的是pj的&#xff09;。 对于想在MacOS、Linux上想使用&#xff0c;…

关于使用百度开发者平台处理语音朗读问题排查

错误信息&#xff1a;"convert_offline": false, "err_detail": "16: Open api characters limit reach 需要领取完 识别和合成都要有

Clean 架构下的现代 Android 架构指南

Clean 架构下的现代 Android 架构指南 Clean 架构是 Uncle Bob 提出的一种软件架构&#xff0c;Bob 大叔同时也是 SOLID 原则的命名者。 Clean 架构图如下&#xff1a; 这张图描述的是整个软件系统的架构&#xff0c;而不是单体软件&#xff0c;其中至少包括服务端以及客户端…

【Java】类和对象之超级详细的总结!!!

文章目录 前言1. 什么是面向对象&#xff1f;1.2面向过程和面向对象 2.类的定义和使用2.1什么是类&#xff1f;2.2类的定义格式2.3类的实例化2.3.1什么是实例化2.3.2类和对象的说明 3.this引用3.1为什么会有this3.2this的含义与性质3.3this的特性 4.构造方法4.1构造方法的概念4…

ElasticSearch学习笔记(一)

计算机软件的学习&#xff0c;最重要的是举一反三&#xff0c;只要大胆尝试&#xff0c;认真验证自己的想法就能收到事办功倍的效果。在开始之前可以看看别人的教程做个快速的入门&#xff0c;然后去官方网站看看官方的教程&#xff0c;有中文教程固然是好&#xff0c;没有中文…

dcat admin日志扩展 dcat-log-viewer 遇到的问题记录

扩展地址&#xff1a; https://github.com/duolabmeng6/dcat-log-viewer 问题描述&#xff1a; 使用很简单&#xff0c;直接安装扩展包&#xff0c;开启扩展就可以了&#xff0c;会自动生成菜单。 之前在别的系统用过&#xff0c;没问题&#xff0c;今天在一个新的系统用的时…

【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型

​ &#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 OSI参考模型与TCP/IP参考模型相同点 OSI参考模型与TCP/IP参考模型不同点 面向连接三阶段&#xff08…

单片机系统

我们来看单片机 的例子&#xff0c;读者可能会担心单片机&#xff08;又称MCU&#xff0c;或微控制器&#xff09; 过于专业而无法理解。完全没必要&#xff01;在这里我们仅借它谈论一下有关时间的话题&#xff0c;顺带提一下单片机系统的概念。 单片机顾名思义是集成到一个芯…

基于SSM框架的网上书店系统

基于SSM框架的网上书店系统 文章目录 基于SSM框架的网上书店系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 随着互联网的普及和电子商务的快速发展&#xff0c;网上书店系统成为了现代人购买图书的主要方式之一。网上书店系统不仅提供了便捷的…