经典的网络文件系统NFS
分布式文件系统是分布式系统领域发展最早、应用领域众多、不断推陈出新的基础设施之一。前面提到的NFS就是个古老并且生命力顽强的分布式文件系统,它于1984年诞生在Sun的实验室里(比HTTP还古老),因为基于TCP/IP 设计,所以成为第1个现代化的网络文件系统。时至今日,NFS已经演变成UNIX系统中强大且使用广泛的网络文件系统,并且成功进入虚拟化领域,成为虚拟化基础设施中的重要组成部分。除了虚机,当前流行的Docker容器也支持远程的NFS Volume。
如下图所示,以NFS为代表的网络文件系统的核心思想,是将某个远程 Server 上的指定文件目录映射(Mount)到本机文件系统的某个目录上,使得从客户端看来,访问远程文件与本地文件没有什么区别,并且所有针对本地文件的IO读写的程序不用修改任何代码,就可以直接用于远程文件的读写。因为对最终用户及程序开发者透明,所以NFS有扎实的群众基础,并因此而“长寿”。
那么,NFS是如何实现与Linux本地文件系统无缝对接的呢?这要从Linux 的虚拟文件系统说起。由于在 Linux世界里允许众多不同的文件系统共存,比如 EXT3、EXT4、XFS、Btrfs及特别适合Docker容器存储的Overlayfs,因此为了支持各种实