url|极光笔记丨搭建UMS私有云文件服务器( 二 )
RS最多能容忍m个数据块被删除。 数据恢复的过程如下:
(1)假设D1、D4、C2丢失,从编码矩阵中删掉丢失的数据块/编码块对应的行。(图2、3)
(2)由于B' 是可逆的,记B'的逆矩阵为 (B'^-1),则B' * (B'^-1) = I 单位矩阵。两边左乘B' 逆矩阵。 (图4、5)
(3)得到如下原始数据D的计算公式,如下图:
文章插图
(4)对D重新编码,可得到丢失的编码。
文章插图
4.4 以纠删码模式运行minIO
minIO会自动生成12块盘,命令如下:
4.5 存储形式
数据对象在minIO集群中进行存储时,先进行纠删分片,后打散存储在各硬盘上。具体为:minIO自动在集群内生成若干纠删组,每个纠删组包含一组硬盘,其数量通常为4至16块;对数据对象进行分片,默认策略是得到相同数量的数据分片和校验分片;而后通过哈希算法计算出该数据对象对应的纠删组,并将数据和校验分片存储至纠删组内的硬盘上。
文章插图
如上图所示,假设某minIO集群内纠删组包含4块硬盘,某数据对象名为MyObject,其隶属存储桶名为MyBucket,哈希计算得到对应的纠删组为Disk 1~4。那么在Disk 1~4的数据路径下,都会生成MyBucket/MyObject子路径,子路径中包含2个文件,分别为存储元数据信息的xl.json和MyObject对象在该盘上的第一个分片part.1。其中,xl表示minIO中数据对象的默认存储格式。
5.minIO golang SDK简单使用
以下上传文件的例子可以直接运行,文件会上传到minIO官方服务器
文章插图
文章插图
三、minIO在UMS系统中的实际应用1.应用系统架构
整个架构中,模块之间使用http协议通信,并且每个模块的作用如下:
(1)Web/API服务器的作用是提供UMS系统的认证和鉴权,即验证Web客户端或者开发者API请求接口的合法性;
文章插图
(2)文件管理服务器的作用是提供对外操作minIO服务器的接口,根据目前UMS系统的业务需求,只提供了获取上传文件presignedURL,设置过期时间, 设置对外访问策略,创建存储桶,生成下载文件URL的功能;那么什么是presignedURL呢?它是对象所有者使用自己的安全凭证来创建预签名的 URL,以授予有限时间内的上传或下载对象权限,从而与其他用户共享对象,注:即使是私有对象使用presignedURL也可以共享给他人,并且presignedURL最大有效期为7天。
其中文件管理服务器获取上传文件presignedURL的方法直接使用了minIO官方API,当然你也可以自己实现presignedURL方法,此外,由于下载presignedURL最大保留时间为7天,不符合UMS系统业务需求,所以,文件管理服务器自己实现了一个生成下载URL的方法,此链接的过期时间可任意设置,但前提要把存储桶的对外访问策略设置为public。由此,客户端就可以直接使用上传presignedURL上文件到minIO服务器,使用下载链接直接下载文件即可。
(3)minIO集群作用是存储实体文件,该集群采用去中心化无共享架构,各节点间为对等关系,连接至任一节点均可实现对集群的访问,minIO集群前端增加了Nginx实现反向代理;minIO节点之间的通信使用的都是rpc。此外,管理minIO服务器除了上面提到的SDK以外,官方还提供了命令行和web页面的形式,内容分别如下:
- 笔记本|双芯协同!上手Reno8 Pro花仙紫,氛围感人像神器稳了
- rest|golang笔记 | 面试题整理
- 笔记本|续航媲美MacBook Air,这款Windows笔记本太适合办公了
- 比特币|买小众低端品牌笔记本,还不如二手一线品牌高配置,有道理吗?
- 笔记本电脑|华硕笔记本电脑问题不断?消费者很糟心
- 如何在 Notion 类产品中使用卡片笔记写作法:理念与实践
- 笔记本|一台当四台用!ROG幻16翻转本首发开卖:奢华配置18999元
- 华硕笔记本电脑问题不断?消费者很糟心
- 英特尔|AMD和Intel笔记本如何选?最新CPU天梯图告诉你答案
- 笔记本|久未露面的马云,驾着13亿游艇在西班牙游玩,说好当乡村教师呢?
