# 分布式文件系统的演化

DevFeed: [分布式文件系统的演化](<https://devfeed.tech/articles/article-40973.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/deep-into-distributed-filesystem/>)

Author: Joway

Published: 2020-06-14T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [IO](<https://devfeed.tech/topics/io.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Ext4](<https://devfeed.tech/topics/ext4.md>), [hdfs](<https://devfeed.tech/topics/hdfs.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [blocks](<https://devfeed.tech/tags/blocks.md>), [client](<https://devfeed.tech/tags/client.md>), [ext4](<https://devfeed.tech/tags/ext4.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [google](<https://devfeed.tech/tags/google.md>), [hdfs](<https://devfeed.tech/tags/hdfs.md>), [io](<https://devfeed.tech/tags/io.md>), [lease](<https://devfeed.tech/tags/lease.md>), [linux](<https://devfeed.tech/tags/linux.md>), [master](<https://devfeed.tech/tags/master.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [primary](<https://devfeed.tech/tags/primary.md>), [ssd](<https://devfeed.tech/tags/ssd.md>), [tech](<https://devfeed.tech/tags/tech.md>)

## AI overview

This article explains local filesystem structure, including superblocks, inodes, block pointers, and file-size limits, then introduces the evolution and architecture of distributed filesystems. It uses GFS to describe metadata lookup, chunk locations, caching, replication, leases, and client read and write flows, and mentions HDFS as a related implementation.

## Source excerpt

文件系统是操作系统 IO 栈里非常重要的一个中间层，其存在的意义是为了让上层应用程序有一层更加符合人类直觉的抽象来进行文档的读写，而无需考虑底层存储上的细节。 本地文件系统 在讨论分布式文件系统前，我们先来回顾下本地文件系统的组成。 存储结构 在前面一张图里，我们能够看到文件系统直接和通用块层进行交互，无论底层存储介质是磁盘还是 SSD，都被该层抽象为 Block 的概念。文件系统在初始化时，会先在挂载的块存储上的第一个位置创建一个 Super Block：