Minio分布式存储系统

Minio分布式存储系统

  • Minio简介
  • 分布式系统高可用设计
    • 分布式设计
    • 数据保护
    • 高可用
    • 限制
    • 一致性
    • 安全
  • Minio纠删码
    • Minio如何使用纠删码
    • Minio优点
    • 位衰减bit rot保护
  • 应用场景

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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

你可能感兴趣的:(面试,学习路线,阿里巴巴,android,前端,后端)