极光笔记丨搭建UMS私有云文件服务器

通联网络是国内著名的虚拟主机和域名注册提供商。独创的第6代虚拟主机管理系统,拥有在线数据恢复、Isapi自定义,木马查杀等30余项功能.千M硬件防火墙,为您保驾护航!双线虚拟主机确保南北畅通无阻!

极光笔记丨搭建UMS私有云文件服务器

2022年5月26日 主机租用 0

因UMS5.1版本当中短信签名,邮件支持上传本地图片/支持上传附件的产品需求,以及后续可能存在的需要大量文件存储的场景,所以需做一个私有云自己的文件服务器,并且该服务器也要兼容客户文件服务器(注:客户文件服务器一般都是兼容S3协议的)

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

minIO使用erasure code来防止硬件故障。即使损坏一半以上的硬盘,仍然可以从中恢复数据。

minIO为加密数据提供了机密性,完整性和真实性保证,而且性能开销微乎其微。使用 AES-256-GCM,ChaCha20-Poly1305 和 AES-CBC 支持服务器端和客户端加密。

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

minIO采用去中心化的无共享架构,对象数据被打散存放在不同节点的多块硬盘,对外提供统一命名空间访问,并通过Web负载均衡器或DNS轮询(DNS round-robin)在各服务器之间实现负载均衡。

硬盘(Drive):即存储数据的磁盘,在 minIO 启动时,以参数的方式传入。

组( Set ):即一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的 Drive 分布在不同位置。一个对象存储在一个 Set 上。

桶(Bucket):文件对象存储的逻辑位置,对于客户端而言,就相当于一个存放文件的顶层文件夹。

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

什么是纠删码呢?它是一种恢复丢失和损坏数据的数学算法,minIO 采用Reed-Solomon Code实现纠删码,它将对象拆分成N/2 数据块和 N/2 奇偶校验块。这就意味着如果是 12 块盘,一个对象会被分成 6 个数据块、6 个奇偶校验块,您可以丢失任意 6 块盘(不管其是存放的数据块还是奇偶校验块),您仍可以从剩下的盘中的数据进行恢复。

RS编码以word为编码和解码单位,大的数据块拆分到字长为w(取值一般为8或者16位)的word,然后对word进行编解码。 数据块的编码原理与word编码原理相同,后文中以word为例说明,变量Di, Ci将代表一个word。把输入数据视为向量D=(D1,D2,…, Dn), 编码后数据视为向量(D1, D2,…, Dn, C1, C2,.., Cm),RS编码可视为如下(图1)所示矩阵运算。图1最左边是编码矩阵(或称为生成矩阵、分布矩阵,Distribution Matrix),编码矩阵需要满足任意n*n子矩阵可逆。为方便数据存储,编码矩阵上部是单位阵(n行n列),下部是m行n列矩阵。下部矩阵可以选择范德蒙德矩阵或柯西矩阵。

(1)假设D1、D4、C2丢失,从编码矩

发表回复

您的电子邮箱地址不会被公开。