MiniIO详解 分布式文件系统 MiniIO 教程

分布式文件系统

1.分布式文件系统的前生今世

什么是对象存储?

对象存储,官方的名词解释是:对象存储是基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作对象。

我们可以把它理解为商场的存包服务,顾客将包(数据)交给服务员(API接口),服务员给顾客一个凭证(对象地址URL),顾客想要取包时,只需提供凭证,不需要知道自己的包到底是以什么形式存储在哪里,省时省心省力。

我们先不说分布式这个概念,先谈谈什么是文件系统, 我们知道计算机至少有一个操作系统, 一个系统需要对应的文件系统, 来组织管理,存储设备的空间, 文件系统就是一个软件机构 ,这个机构用来管理和存取文件 。
MiniIO详解 分布式文件系统 MiniIO 教程_第1张图片

我们在来说分布式文件系统

本地文件系统如ext4,xfs 等(这里不讨论基于内存的文件系统),它们管理本地的磁盘存储资源、提供文件到存储位置的映射,并抽象出一套文件访问接口供用户使用。但随着互联网企业的高速发展,这些企业对数据存储的要求越来越高,而且模式各异,如淘宝 拼多多的大量商品图片,其特点是文件较小,但数量巨大;而类似于腾讯视频,优酷等 这样的视频服务网站,其后台存储着大量的视频文件,大小大多在数十M到数G不等。这些应用场景都是传统文件系统不能解决的。

分布式文件系统 将数据存储在 物理上 分散的多个存储节点上,对这些节点的资源进行统一的管理与分配,并向用户提供文件系统访问接口,其主要解决了本地文件系统在文件大小、文件数量、打开文件数等的限制问题。

在说一些更细的

  • 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。

  • 是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

  • 通透性。 让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。

  • 容错。 即使系统中有某些节点脱机,整体来说系统仍然可以持续运作而不会有数据损失。

  • GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

  • 可以组建包含大量廉价服务器的海量存储系统。

  • 通过内部的冗余复制,保证文件的可以用性,在海量存储系统中,容错能力非常重要

  • 可扩展性强,增加存储节点和追踪器都比较容易 在对个文件副本之间就进行负载均衡,可以通过横向扩展来确保性能的提升

  • 进行特定的索引文件计算

    分布式文件系统解决了什么?

    • 海量数据存储问题
    • 数据高可用问题(冗余备份)问题
    • 较高的读写性能和负载均衡问题
    • 支持多平台多语言问题
    • 高并发问题

2.分布式文件系统种类

​ HDFS 大数据运维 存储大块数据 大文件 trunk 大数据必用的分布式文件系统
​ Ceph 分布式 块 文件存储 对象存储 云平台存储 私有云和公有云用的
​ Cinder Openstack自带的块存储 没人用 玩
​ GlusterFS 简单 好用 推荐
​ Moosefs 大量小块数据
​ MiniIO ***轻量级***分布式文件系统 简单 好用

MiniIO概述

需要理解并且可以表达出来

Minio纠删码

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

1.什么是纠删码erasure code?

纠删码是一种恢复丢失和损坏数据的数学算法, Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复,是不是很NB,感兴趣的同学请google。

2.为什么纠删码有用?

纠删码的工作原理和RAID或者复制不同,像RAID6可以在损失两块盘的情况下不丢数据,而Minio纠删码可以在丢失一半的盘的情况下,仍可以保证数据安全。 而且Minio纠删码是作用在对象级别,可以一次恢复一个对象,而RAID是作用在卷级别,数据恢复时间很长。 Minio对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复。Minio纠删码的设计目标是为了性能和尽可能的使用硬件加速。

3.什么是位衰减bit rot保护?

位衰减又被称为数据腐化Data Rot、无声数据损坏Silent Data Corruption,是目前硬盘数据的一种严重数据丢失问题。硬盘上的数据可能会神不知鬼不觉就损坏了,也没有什么错误日志。正所谓明枪易躲,暗箭难防,这种背地里犯的错比硬盘直接咔咔宕了还危险。 不过不用怕,Minio纠删码采用了高速 HighwayHash 基于哈希的校验和来防范位衰减。

构建MiniIO分布式文件系统

单节点部署
环境: linux centos7

[root@slave ~]#  wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
[root@slave ~]#  chmod +x minio
#这是MiniIO网页登陆账号密码
[root@slave ~]#  export MINIO_ACCESS_KEY=admin
[root@slave ~]#  export MINIO_SECRET_KEY=123456789
[root@slave ~]#  ./minio server /data
#http://192.168.55.45:9000
#这个date目录不是普通目录
#添加一块磁盘  格式化  或者磁盘分区出 sdb1  格式化 挂载到 /date
多节点部署

分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障

在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。

启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。

注意

  • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。
  • 分布式Minio使用的磁盘里必须是干净的,里面没有数据。
  • 下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
  • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
  • 在Windows下运行分布式Minio处于实验阶段,请悠着点使用。
#每一台机器统一操作
#这是MiniIO网页登陆账号密码
[root@slave ~]#  export MINIO_ACCESS_KEY=admin
[

你可能感兴趣的:(运维,分布式存储)