• Minio分布式存储系统


    Minio分布式存储系统

    Minio简介

    Minio是Apache License v2.0开源的一个分布式的存储系统,它支持S3云存储的服务接口,非常适合支持大量非结构化的数据,而一个文件可以是任意大小,从几十k到最大的5TB,同时他也是一个非常轻量的服务,可以结合其他的应用进行使用。

    分布式系统高可用设计

    分布式设计

    1、Minio将多个硬盘(可以分布在不同机器)组成一个分布式的对象存储系统
    2、去中心化、分布式

    数据保护

    1、Minio采用纠删码(erasuer code)来保证集群多点或者单点故障和位衰减(bit rot)
    2、最少需要4个节点来使Minio自动引入纠删码

    高可用

    分布式Minio存储系统允许集群N/2节点宕机,但是恢复数据则需要通过N/2+1节点来进行恢复。例如:8个节点,宕机4个,则需要5个节点进行数据恢复

    限制

    分布式Minio单个租户最小需要4个节点(硬盘),最大支持16个节点(硬盘)受限于纠删码(erasuer code),我们可以使用k8s来进行minio租户的管理。

    一致性

    Minio不论是分布式或者是单机,均遵从read-after-write来保证数据的一致性

    安全

    支持TLS证书

    Minio纠删码

    Minio使用纠删码(erasuer code) 和校验和(checksum)来保护数据,避免发生硬件故障或者某种原因导致数据丢失,即使丢失N/2 的硬盘都可以将数据恢复回来。

    http://www.360doc.com/content/21/1004/21/25921839_998266807.shtml
    通过上述URL了解什么是纠删码

    Minio如何使用纠删码

    纠删码是一种数据丢失和损坏数据的一种算法,Minio使用Reed-Solomon code拆分对象为N/2数据和N/2奇偶校验块。例如:我有12块硬盘,存放了一个文件,Minio会给我分成6份数据和6个奇偶校验块,不管我是丢失了哪个硬盘,数据均可以得到恢复。

    Minio优点

    Minio可以针对某个对象进行单独恢复,而raid则需要针对卷来进行恢复,从而减少了恢复的时间周期。Minio对每个对象进行编码,存储服务一经部署,存储硬盘一般不需要进行更换或者修复,Minio的纠删码设计目标是为了性能和硬件加速。

    位衰减bit rot保护

    位衰减Bit rot又称为数据腐化(Data Rot)或者无声数据损坏(Silent Data Corruption),是目前来说硬件数据最严重的一种故障,通常会无声息的、没有任何错误日志的损坏,Minio纠删码采用了高速BLAKE2 基于哈希的校验和来防范位衰减。

    应用场景

    1、habor镜像制品仓库
    2、公司网盘系统
    3、数据库备份系统

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    97 只出现一次的数字
    关于#深度学习#的问题:深度学习代码使用环境的cuda版本是10.0(语言-python)
    React源码分析4-深度理解diff算法
    [python] 利用 Pydoc 快速生成整个 Python 项目的文档
    matplotlib入门之抛砖引玉
    源码深度剖析Spring Bean标签的解析及注册
    14:00面试,15:00就出来了,问的问题过于变态了。。。
    3.4 C++高级编程_函数模板_重载
    JSONException: A JSONObject text must begin with ‘{‘ at character 0
    胡说八道(24.6.11)——数电及STM32
  • 原文地址:https://blog.csdn.net/m0_67403073/article/details/126075352