深圳建网站找哪家,seo在线优化平台,做h的小说网站有哪些,教学网站模板MinIO背景介绍
MinIO创始者是Anand Babu Periasamy, Harshavardhana#xff08;戒日王#xff09;等人#xff0c; Anand是GlusterFS的初始开发者、Gluster公司的创始人与CTO#xff0c;Harshavardhana曾经是GlusterFS的开发人员#xff0c;直到2011年红帽收购了Gluster公…MinIO背景介绍
MinIO创始者是Anand Babu Periasamy, Harshavardhana戒日王等人 Anand是GlusterFS的初始开发者、Gluster公司的创始人与CTOHarshavardhana曾经是GlusterFS的开发人员直到2011年红帽收购了Gluster公司。MinIO在设计上汲取了GlusterFS的相关经验与教训系统复杂度上作了大量简化。
MinIO简介
概述
MinIO对象存储系统是为海量数据存储、人工智能、大数据分析而设计基于Apache License v2.0开源协议的对象存储系统它完全兼容Amazon S3接口单个对象最大可达5TB适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。MinIO主要采用Golang语言实现整个系统都运行在操作系统的用户态空间客户端与存储服务器之间采用http/https通信协议。
Glusterfs Glusterfs是一个开源分布式文件系统具有强大的横向扩展能力可支持数PB存储容量和数千客户端通过Infiniband RDMA 或Tcp/Ip 方式将许多廉价的x86 主机通过网络互联成一个并行的网络文件系统。具有可扩展性、高性能、高可用性等特点。 设计哲学
极简理念——采用尽可以简单可靠的集群管理方案摒弃复杂的大规模集群调度管理减少风险因素与性能瓶颈聚焦产品的核心功能打造高可靠的集群、灵活的扩展能力以及超高的性能积木式扩展——建立众多的中小规模、易管理的集群支持跨数据中心将多个集群聚合成超大资源池而非直接采用大规模、统一管理的分布式集群。
设计原则 产品特点 高级特性 官方资源
docs.min.io/
www.jianshu.com/p/a33ff57f3…
技术架构
数据组织结构
NAS系统把整个存储资源组织为目录树的形式与此不同对象存储系统把存储资源组织为租户-桶-对象的形式。数据结构组织见下图 对象类似于hash表中的表项它的名字相当于关键字它的内容相当于值。桶是若干个对象的逻辑抽象是盛装对象的容器。租户用于隔离存储资源。在租户之下可以建立桶、存储对象。用户在租户下面创建的用于访问不同桶的账号。可以使用MinIO提供的mc命令设置不用用户访问各个桶的权限。
数据分布与均衡
去中心化架构 MinIO采用去中心化的无共享架构对象数据被打散存放在不同节点的多块硬盘对外提供统一命名空间访问并通过Web负载均衡器或DNS轮询DNS round-robin在各服务器之间实现负载均衡。 统一命名空间
MinIO对象存储系统主要有两种部署方式一种是常见的本地分布式集群部署一种是联盟模式部署。
本地分布式集群部署方式即在多个本地服务器节点部署MinIO软件并将其组件成单套分布式存储集群并提供统一命名空间和标准S3访问接口。联盟部署模式即将多个MinIO集群在逻辑上组成了统一命名空间实现近乎无限的扩展与海量的数据规模管理这些集群可以都在本地或分布在不同地域的数据中心。
如下图所示4个服务器节点组成一个MinIO集群每个服务器节点中会选择相同数据的硬盘创建一个纠删组某个桶的数据会根据MinIO的分布式算法切片分散存储到对应的纠删组中详见纠删码相关内容。 分布式锁管理
与分布式数据库相类似MinIO对象存储系统也面临数据一致性问题一个客户端程序在读取一个对象的同时另一个客户端程序可能正在修改或者删除这个对象。为了避免出现数据不一致情况MinIO相关开发人员为MinIO对象存储专门设计并实现了dsync分布式锁管理器。
它采用如下分布式锁管理机制
任何一个节点的锁请求都会广播给集群内所有在线节点如果n/2 1个节点回应是则成功获得锁客户端获得锁以后可保留任意时间不需要时自己释放即可。释放操作也会广播给所有的节点从而恢复锁的可用状态。写锁仅能被一个写入者获得。
设计目标
要求设计简单因为简单的设计可以避免程序中很多非常棘手的条件分支的支持。不存在主节点因为一旦在设计上引入主节点那么如果主节点宕机整个锁管理器机制即将失效这对MinIO对象存储系统影响非常严重是不可接受的。系统必须是弹性的即使存在多个失效的节点只要它们的个数小于n/2, 整个锁管理系统是可以正常工作的。完全可以替代Golang标准库中的sync.RWMutex互斥锁。这样可以简化MinIO对象存储系统的编程。当失效节点重启以后其它节点重新连接。
不使用zookeeper/raft等技术的原因
zookeeper/raft功能丰富而MinIO对象储存的使用用例其实很有限。在MinIO中使用zookeeper/raft会使整个系统增加不必要的复杂性。
优势
实际操作极其简单有效代码不足一千行易理解易维护。超高的性能。
云网关模式
MinIO存储系统的后端可以是磁盘也可以作为云网关对接第三方的NAS系统、分布式文件系统或公有云存储资源并为业务系统转换提供标准的对象访问接口。目前MinIO支持Google 云存储、HDFS、阿里巴巴OSS、亚马逊S3, 微软Azure Blob 存储等第三方存储资源。 与Kubernetes的整合部署 分享资源 获取以上资源请访问开源项目 点击跳转