分布式文件系统——MinIo

1. 文件系统和分布式文件系统

1.1 文件系统

文件系统是负责管理和存储文件的系统软件,操作系统通过文件系统提供的接口去存取文件,用户通过操作系统访问磁盘上的文件。

在这里插入图片描述

1.2 分布式文件系统

一个计算机无法存储海量的文件,通过网络将若干计算机组织起来共同去存储海量的文件,去接收海量用户的请求,这些组织起来的计算机通过网络进行通信。

2. MinIo

MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合使用,它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。它一大特点就是轻量,使用简单,功能强大,支持各种平台,单个文件最大5TB,兼容 Amazon S3接口,提供了 Java、Python、GO等多版本SDK支持。

2.1 MinIo 纠删码技术

Minio使用纠删码技术来保护数据,它是一种恢复丢失和损坏数据的数学算法,它将数据分块冗余的分散存储在各各节点的磁盘上,所有的可用磁盘组成一个集合,上图由8块硬盘组成一个集合,当上传一个文件时会通过纠删码算法计算对文件进行分块存储,除了将文件本身分成4个数据块,还会生成4个校验块,数据块和校验块会分散的存储在这8块硬盘上。
使用纠删码的好处是即便丢失一半数量(N/2)的硬盘,仍然可以恢复数据。 比如上边集合中有4个以内的硬盘损害仍可保证数据恢复,不影响上传和下载,如果多于一半的硬盘坏了则无法恢复。

比如说,创建四个目录表示四个磁盘,首先在本机上演示一下,在本机上下载,有条件的话可以在Linux虚拟机上自行下载(后续项目肯定要在虚拟机上下载)下载地址:MinIO
在这里插入图片描述
CMD进入有minio.exe的目录,运行下边的命令:
minio.exe server D:\data1 D:\data2 D:\data3 D:\data4 (自己的文件地址不要错)

2.2 本机演示

账号和密码默认为minioadmin、minioadmin,可以在环境变量中设置通过'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' 进行设置。

下边输入http://localhost:9000进行登录,账号和密码为:minioadmin/minioadmin

在这里插入图片描述

登录成功:

在这里插入图片描述

下一步创建bucket,桶,它相当于存储文件的目录,可以创建若干的桶在这里插入图片描述

输入bucket的名称,点击“CreateBucket”,创建成功
在这里插入图片描述

点击“upload”上传文件。
在这里插入图片描述

下边去四个目录观察文件的存储情况
在这里插入图片描述

我们发现上传的1.mp4文件存储在了四个目录,即四个硬盘上。
下边测试minio的数据恢复过程:

1、首先删除一个目录。 删除目录后仍然可以在web控制台上传文件和下载文件。稍等片刻删除的目录自动恢复。

2、删除两个目录。 删除两个目录也会自动恢复。

3、删除三个目录 。 由于 集合中共有4块硬盘,有大于一半的硬盘损坏数据无法恢复。

posted @   LSChina  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示