美文网首页
文件系统简述:从基础存储到大数据

文件系统简述:从基础存储到大数据

作者: 翻身小白菜 | 来源:发表于2020-07-22 22:57 被阅读0次

linux Inode文件存储

文件系统将硬盘空间以块为单位进行划分,每一个文件占据若干块。“块”大小,最常见的是4KB。为了找到文件,还需要存储文件的元信息,操作系统将这些信息存储到文件控制块FCB。通过文件控制块FCB可以找到每个文件块占据的硬盘数据。
Linux将FCB中的文件名和其他管理信息分开,其他信息组成Inode,inode中记录着文件权限、所有者、修改时间、文件大小等。


Inode是固定结构,能记录的硬盘地址索引数量固定15个。前12个索引直接指向数据块。
如果文件大小超过了12个块。后3个索引为索引表指针,分别一级间接索引表指针,二级间接索引表指针,三级间接索引表指针,索引表记录了数据块地址。
对于能存储的最大文件大小。简化起见,按每个块1KB来算。
12个指针指向数据块:12 * 1K = 12K
一级间接索引表指针,指向一个1K的数据块,该数据块中记录了数据块的索引,每个 数据块 索引占 4bytes,因此 1K 的大小能够记录 256 个记录,因此,一级间接索引表指针可以存储:256 * 1K = 256K
同理,二级间接索引表指针可以存储:2562561K=256^2K,
三级间接索引表指针可以存储:2562562561K=256^3K
即,总共可以存储:12 + 256 + 256
256 + 256256256 (K) = 16GB
(PS:由于大于 2K 的 block 将会受到 Ext2 文件系统本身的限制,因此,这个方法不能用在 2K 及 4K block 大小的计算中)

RAID独立硬盘冗余阵列

文件系统关心的问题有:

  • 如何存储大文件?
  • 文件如何不丢失?即高可用
  • 更高速度的读写?

传统的文件系统无法满足这三个需求,因此,有了 RAID独立硬盘冗余阵列 解决方案。


  1. RAID 0 如果有写3个数据块的操作,或写到三个不同的硬盘上,即,把数据并行的写在不同的硬盘上。解决数据的告诉读写问题。任何一块硬盘坏了,数据就损坏了。
    这种方案,性能提高了,但是,可用性降低
  2. RAID 1 在两个硬盘写同样的数据。数据的可用性提高了,但是速度变慢。
  3. RAID 10 两两互相备份,8台服务器分成4组。硬盘的浪费比较严重。利用率低。浪费1倍。
  4. RAID 5 所有数据进行异或运算记录,当任何块损坏,用剩下的磁盘和校验数据异或,都可以恢复。浪费一块。
    需要注意,校验信息螺旋写入的。如果写到1块盘上,任何数据的修改,都会修改这块盘中的校验信息,写压力太大,这块盘也容易坏。
  5. RAID 6 :RAID 5只可以处理一块盘坏了的情况,RAID 6扩展了RAID 5写两种校验信息,即使损坏两块盘也可以找回数据。

分布式文件系统 HDFS

随着需要存储的数据量增大,需要文件系统有更高的写入速度,和更大的管理能力,由此,产生HDFS。



NameNode负责接受客户端的读写服务,管理文件存储位置信息等。
DataNodes负责是具体的数据读取,写入,存储,冗余等。
为了保证数据的高可用,HDFS默认三备份存储数据。

  • 第一个副本:放置在上传文件的DataNode;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
  • 第二个副本:放置在于第一个副本不同的机架上,即使路由到第一个机架失败,或第一个机架故障,也可以保证数据可用。
  • 第三个副本:放置在与第二个副本相同机架的节点上。

通过跨服务器,跨机架,HDFS保证了数据的可用性。
正常运行时,DataNode会定时发送心跳包给NameNode,当DataNode超时未发送心跳,认为该DataNode异常。NameNode会检查DataNode上有哪些数据块,并告诉其他机器机器复制这些数据块。
HDFS缺省数据块64M一个块,因此,可以很好的保存大文件。

参考:
https://www.cnblogs.com/caiyao/p/4606638.html
https://www.jianshu.com/p/5f00ec80a13c
https://zhuanlan.zhihu.com/p/54961640

相关文章

  • 文件系统简述:从基础存储到大数据

    linux Inode文件存储 文件系统将硬盘空间以块为单位进行划分,每一个文件占据若干块。“块”大小,最常见的是...

  • 大数据敲门砖,想入行大数据必须学习这些知识

    基础概念 大数据的本质 一、数据的存储:分布式文件系统(分布式存储) 二、数据的计算:分部署计算 基础知识 学习大...

  • 科普--常见的磁盘文件系统

    文件系统 在计算中,文件系统或文件系统控制数据的存储和检索方式。如果没有文件系统,放置在存储介质中的信息将是一大块...

  • mySQL学习记录

    基础知识: 数据库:存储数据的仓库,本质是一个文件系统,数据库按照特定的格式将数据存储起来。常用数据库:MySQL...

  • 08_MySql基础

    MySql基础(一) 数据库 & 数据库管理系统 区别 数据库:就是存储数据的仓库,是一个文件系统 数据库管理系统...

  • linux之文件操作系统

    从磁盘到文件系统 硬盘 在整个linux操作系统中,硬盘的作用为应用程序持久化的存储数据。如数据库应用程序,存数据...

  • (九)MariaDB存储引擎简介

    存储引擎简述 简单说来,存储引擎是数据库管理系统用来从数据库创建、读取、更新数据的软件模块。 负责提供数据实体储存...

  • 大数据开发:HDFS数据节点与名称节点的通信机制

    作为Hadoop技术生态当中的分布式文件系统,HDFS在底层存储上提供了稳固的支持,从数据引入到数据落盘,离不开H...

  • 三、文件系统、目录操作

    1.文件系统 1.1文件存储 首先了解如下文件存储相关概念:inode、 dentry、 数据存储、文件系统。 1...

  • Zookeeper(二)-数据模型

    概述 zookeeper的数据结构与linux文件系统很类似,和文件系统不同的是,zk的数据存储是结构化存储,没有...

网友评论

      本文标题:文件系统简述:从基础存储到大数据

      本文链接:https://www.haomeiwen.com/subject/sigtlktx.html