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

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

作者: 翻身小白菜 | 来源:发表于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

    相关文章

      网友评论

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

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