what is NFS?

组长教学系列

May 4, 2019
2019 科技

part_one:一台物理机器上的文件存储

  计算机里面有很多块磁盘,计算机里面的文件系统都是逻辑树状结构的,逻辑上的概念都是物理中不会出现的。一个一百兆的文件在计算机上有几种存储方法。简单地来说有两种:

1. sequence

  在disk中占有一段连续的存储空间。这样做的好处有几点:一是简单方便;二是命中率高,因为程序的局部性原理。命中率高会导致读的速度比较快。但是这样做也是有坏处的,坏处就是这样存储文件容易出现磁盘碎片。因为不太容易找到100M这么大的连续存储空间。

2. Inode=index+data_node

  这种方式会讲一个disk分成两个部分,一个部分是index表头,一个部分是很多很多的data node,这些data node的大小一都是可以设置的,一般的大小在4KB->16KB。一个100M的文件会被分成好几个部分,被存储到不同的node里面去。然后在index表头里面做一个地址的记录。这样当把这个disk挂载到某个目录上面去的时候,文件系统要显示这个disk中的所有的文件,去找的时候就会根据这个index的表头去拼出一个完整的文件。

part_two:什么是NFS?

  NFS的Network FileSystem,中文意思是分布式网络文件系统。这个出现的原因是因为,当目录下的文件非常多的时候,有可能会出现一个物理机里的磁盘存不下的情况。所以这种时候就出现了NFS。

  拿一个例子来讲,所有远程registry里面的images的layers都是乱序的,且不可能只是存在于一台物理机上面。
  1. 首先layers很多很多,不够存。
  2. 其次就是必须看见的是一个文件系统,因为layer是被image各种交叉引用的。现在有一个NFS,做了一层隔离,一个文件可能分成几块存在不同的物理机的disk上面,然后这个NFS在显示文件目录下面的挂载情况的时候会将所有的物理机磁盘里的文件拼在一起展示在挂载的文件目录里面。造成一种假象。
  3. NFS只是一种协议规范,真正实现这种规范的有GFS, GlusterFS, MooseFS等等,其中MooseFS就是所说的MFS,也就是公司现在用的这种分布式网络文件系统。

part_three: 磁盘阵列的好处

  磁盘阵列会在你将数据写入一个磁盘的时候,同时同步到另一个磁盘上去。这样读写文件的速度就会变成两倍速。一个磁盘上从头开始读。另一个磁盘上从百分之五十的地方开始读数据。那可不可以说设置两个指针,一个在文件头,一个在文件尾进行读写呢,这样做会收到磁盘吞吐量的约束,所以也是一种有问题的做法。